Skip to content

Commit 888e5c0

Browse files
committed
Merge remote-tracking branch 'origin/feature/wmputman/LM_v12rc20_WMP' into feature/sdrabenh/gcm_v12
2 parents 5120dca + b1184ba commit 888e5c0

File tree

2 files changed

+30
-10
lines changed

2 files changed

+30
-10
lines changed

DynCore_GridCompMod.F90

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7551,9 +7551,15 @@ subroutine ADD_INCS ( MAPL,STATE,IMPORT,DT,IS_WEIGHTED,RC )
75517551
do L=1,KM
75527552
do J=js,je
75537553
do I=is,ie
7554-
if (STATE%VARS%PT(I,J,L) > 333.0) then
7555-
print *, "Temperature spike detected : ", STATE%VARS%PT(I,J,L)
7556-
print *, " Total Physics Increment : ", (DT*TEND(I,J,L)*(MAPL_CP/CVM(I,J,L)))/DPNEW(I,J,L)
7554+
if ( (STATE%VARS%PT(I,J,L) > 333.0) .OR. (STATE%VARS%PT(I,J,L)/=STATE%VARS%PT(I,J,L)) .OR. &
7555+
(Q(I,J,L,sphum ) < 0.0) .OR. (Q(I,J,L,sphum )/=Q(I,J,L,sphum )) .OR. &
7556+
(Q(I,J,L,liq_wat) < 0.0) .OR. (Q(I,J,L,liq_wat)/=Q(I,J,L,liq_wat)) .OR. &
7557+
(Q(I,J,L,ice_wat) < 0.0) .OR. (Q(I,J,L,ice_wat)/=Q(I,J,L,ice_wat)) .OR. &
7558+
(Q(I,J,L,rainwat) < 0.0) .OR. (Q(I,J,L,rainwat)/=Q(I,J,L,rainwat)) .OR. &
7559+
(Q(I,J,L,snowwat) < 0.0) .OR. (Q(I,J,L,snowwat)/=Q(I,J,L,snowwat)) .OR. &
7560+
(Q(I,J,L,graupel) < 0.0) .OR. (Q(I,J,L,graupel)/=Q(I,J,L,graupel)) ) then
7561+
print *, "T or Q spike detected : ", STATE%VARS%PT(I,J,L)
7562+
print *, " Temp ANA|PHY Increment : ", (DT*TEND(I,J,L)*(MAPL_CP/CVM(I,J,L)))/DPNEW(I,J,L)
75577563
print *, " IN ADD_INCS inside DYN "
75587564
II=I-is+1
75597565
JJ=J-js+1

FV_StateMod.F90

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,8 @@ subroutine FV_Setup(GC,LAYOUT_FILE, RC)
550550
! Cubed-Sphere Global Resolution Specific adjustments
551551
FV_Atm(1)%flagstruct%compute_coords_locally = .TRUE.
552552
FV_Atm(1)%flagstruct%hydrostatic = .true.
553+
! Rayleigh Damping
554+
FV_Atm(1)%flagstruct%rf_cutoff = 0.35e2
553555
FV_Atm(1)%flagstruct%tau = 5.0
554556
FV_Atm(1)%flagstruct%RF_fast = .false.
555557
if (FV_Atm(1)%flagstruct%ntiles == 6) then
@@ -559,90 +561,102 @@ subroutine FV_Setup(GC,LAYOUT_FILE, RC)
559561
FV_Atm(1)%flagstruct%hydrostatic = .true.
560562
FV_Atm(1)%flagstruct%k_split = CEILING(DT/3600.0 )
561563
FV_Atm(1)%flagstruct%tau = 5.0
564+
FV_Atm(1)%flagstruct%rf_cutoff = 0.35e2
562565
FV_Atm(1)%flagstruct%RF_fast = .false.
563566
endif
564567
if (FV_Atm(1)%flagstruct%npx*CEILING(FV_Atm(1)%flagstruct%stretch_fac) >= 24) then
565568
FV_Atm(1)%flagstruct%hydrostatic = .true.
566-
FV_Atm(1)%flagstruct%k_split = CEILING(DT/3600.0 )
569+
FV_Atm(1)%flagstruct%k_split = CEILING(DT/1800.0 )
567570
FV_Atm(1)%flagstruct%tau = 5.0
571+
FV_Atm(1)%flagstruct%rf_cutoff = 0.35e2
568572
FV_Atm(1)%flagstruct%RF_fast = .false.
569573
endif
570574
if (FV_Atm(1)%flagstruct%npx*CEILING(FV_Atm(1)%flagstruct%stretch_fac) >= 48) then
571575
FV_Atm(1)%flagstruct%hydrostatic = .true.
572-
FV_Atm(1)%flagstruct%k_split = CEILING(DT/1800.0 )
576+
FV_Atm(1)%flagstruct%k_split = CEILING(DT/1200.0 )
573577
FV_Atm(1)%flagstruct%tau = 5.0
578+
FV_Atm(1)%flagstruct%rf_cutoff = 0.35e2
574579
FV_Atm(1)%flagstruct%RF_fast = .false.
575580
endif
576581
if (FV_Atm(1)%flagstruct%npx*CEILING(FV_Atm(1)%flagstruct%stretch_fac) >= 90) then
577582
FV_Atm(1)%flagstruct%hydrostatic = .true.
578-
FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 900.0 )
583+
FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 600.0 )
579584
FV_Atm(1)%flagstruct%tau = 5.0
585+
FV_Atm(1)%flagstruct%rf_cutoff = 0.35e2
580586
FV_Atm(1)%flagstruct%RF_fast = .false.
581587
endif
582588
if (FV_Atm(1)%flagstruct%npx*CEILING(FV_Atm(1)%flagstruct%stretch_fac) >= 180) then
583589
FV_Atm(1)%flagstruct%hydrostatic = .true.
584-
FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 600.0 )
590+
FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 450.0 )
585591
FV_Atm(1)%flagstruct%tau = 5.0
592+
FV_Atm(1)%flagstruct%rf_cutoff = 0.70e2
586593
FV_Atm(1)%flagstruct%RF_fast = .false.
587594
endif
588595
if (FV_Atm(1)%flagstruct%npx*CEILING(FV_Atm(1)%flagstruct%stretch_fac) >= 360) then
589596
FV_Atm(1)%flagstruct%hydrostatic = .false.
590597
FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 300.0 )
591598
FV_Atm(1)%flagstruct%tau = 4.0
599+
FV_Atm(1)%flagstruct%rf_cutoff = 1.50e2
592600
FV_Atm(1)%flagstruct%RF_fast = .true.
593601
endif
594602
if (FV_Atm(1)%flagstruct%npx*CEILING(FV_Atm(1)%flagstruct%stretch_fac) >= 720) then
595603
FV_Atm(1)%flagstruct%hydrostatic = .false.
596604
FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 150.0 )
597605
if (FV_Atm(1)%flagstruct%stretch_fac > 1) FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 120.0 )
598606
FV_Atm(1)%flagstruct%tau = 3.0
607+
FV_Atm(1)%flagstruct%rf_cutoff = 3.00e2
599608
FV_Atm(1)%flagstruct%RF_fast = .true.
600609
endif
601610
if (FV_Atm(1)%flagstruct%npx*CEILING(FV_Atm(1)%flagstruct%stretch_fac) >= 1120) then
602611
FV_Atm(1)%flagstruct%hydrostatic = .false.
603612
FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 100.0 )
604613
if (FV_Atm(1)%flagstruct%stretch_fac > 1) FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 90.0 )
605614
FV_Atm(1)%flagstruct%tau = 2.5
615+
FV_Atm(1)%flagstruct%rf_cutoff = 5.00e2
606616
FV_Atm(1)%flagstruct%RF_fast = .true.
607617
endif
608618
if (FV_Atm(1)%flagstruct%npx*CEILING(FV_Atm(1)%flagstruct%stretch_fac) >= 1440) then
609619
FV_Atm(1)%flagstruct%hydrostatic = .false.
610620
FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 75.0 )
611621
if (FV_Atm(1)%flagstruct%stretch_fac > 1) FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 60.0 )
612622
FV_Atm(1)%flagstruct%tau = 2.0
623+
FV_Atm(1)%flagstruct%rf_cutoff = 7.50e2
613624
FV_Atm(1)%flagstruct%RF_fast = .true.
614625
endif
615626
if (FV_Atm(1)%flagstruct%npx*CEILING(FV_Atm(1)%flagstruct%stretch_fac) >= 2880) then
616627
FV_Atm(1)%flagstruct%hydrostatic = .false.
617628
FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 37.5 )
618629
if (FV_Atm(1)%flagstruct%stretch_fac > 1) FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 30.0 )
619-
FV_Atm(1)%flagstruct%tau = 1.5
630+
FV_Atm(1)%flagstruct%tau = 1.0
631+
FV_Atm(1)%flagstruct%rf_cutoff = 10.0e2
620632
FV_Atm(1)%flagstruct%RF_fast = .true.
621633
endif
622634
if (FV_Atm(1)%flagstruct%npx*CEILING(FV_Atm(1)%flagstruct%stretch_fac) >= 4320) then
623635
FV_Atm(1)%flagstruct%hydrostatic = .false.
624636
FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 28.125)
625637
if (FV_Atm(1)%flagstruct%stretch_fac > 1) FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 15.0 )
626638
FV_Atm(1)%flagstruct%tau = 1.0
639+
FV_Atm(1)%flagstruct%rf_cutoff = 12.5e2
627640
FV_Atm(1)%flagstruct%RF_fast = .true.
628641
endif
629642
if (FV_Atm(1)%flagstruct%npx*CEILING(FV_Atm(1)%flagstruct%stretch_fac) >= 5760) then
630643
FV_Atm(1)%flagstruct%hydrostatic = .false.
631644
FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 18.75)
632645
if (FV_Atm(1)%flagstruct%stretch_fac > 1) FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 7.5 )
633646
FV_Atm(1)%flagstruct%tau = 1.0
647+
FV_Atm(1)%flagstruct%rf_cutoff = 15.0e2
634648
FV_Atm(1)%flagstruct%RF_fast = .true.
635649
endif
636650
if (FV_Atm(1)%flagstruct%npx*CEILING(FV_Atm(1)%flagstruct%stretch_fac) >= 10800) then
637651
FV_Atm(1)%flagstruct%hydrostatic = .false.
638652
FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 9.375)
639653
if (FV_Atm(1)%flagstruct%stretch_fac > 1) FV_Atm(1)%flagstruct%k_split = CEILING(DT/ 3.25)
640654
FV_Atm(1)%flagstruct%tau = 1.0
655+
FV_Atm(1)%flagstruct%rf_cutoff = 20.0e2
641656
FV_Atm(1)%flagstruct%RF_fast = .true.
642657
endif
643658
FV_Atm(1)%flagstruct%k_split = MAX(FV_Atm(1)%flagstruct%k_split,1)
644-
! Rayleigh Damping & Divergence Damping
645-
FV_Atm(1)%flagstruct%rf_cutoff = 0.35e2
659+
! Divergence Damping
646660
! 6th order divergence default damping options
647661
FV_Atm(1)%flagstruct%nord = 2
648662
FV_Atm(1)%flagstruct%dddmp = 0.2 ! Smagorinsky damping coef

0 commit comments

Comments
 (0)