Skip to content

Commit 9bb28f8

Browse files
authored
Merge branch 'feature/sdrabenh/gcm_v12' into feature/v12-remove-old-dyn
2 parents c1edf91 + 005310b commit 9bb28f8

File tree

11 files changed

+681
-594
lines changed

11 files changed

+681
-594
lines changed

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSgwd_GridComp/GEOS_GwdGridComp.F90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ subroutine Initialize ( GC, IMPORT, EXPORT, CLOCK, RC )
323323
call MAPL_GetResource( MAPL, self%GEOS_PGWV, Label="GEOS_PGWV:", default=GEOS_PGWV, _RC)
324324
call MAPL_GetResource( MAPL, self%GEOS_BGSTRESS, Label="GEOS_BGSTRESS:", default=0.000 , _RC)
325325
call MAPL_GetResource( MAPL, self%GEOS_EFFGWBKG, Label="GEOS_EFFGWBKG:", default=0.000 , _RC)
326-
call MAPL_GetResource( MAPL, self%NCAR_EFFGWBKG, Label="NCAR_EFFGWBKG:", default=0.400 , _RC)
326+
call MAPL_GetResource( MAPL, self%NCAR_EFFGWBKG, Label="NCAR_EFFGWBKG:", default=0.500 , _RC)
327327
call MAPL_GetResource( MAPL, self%TAU1, Label="RAYLEIGH_TAU1:", default=0.000 , _RC)
328328
endif
329329

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSmoist_GridComp/ConvPar_GF2020.F90

Lines changed: 87 additions & 121 deletions
Large diffs are not rendered by default.

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSmoist_GridComp/GEOS_GFDL_1M_InterfaceMod.F90

Lines changed: 107 additions & 108 deletions
Large diffs are not rendered by default.

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSmoist_GridComp/GEOS_GF_InterfaceMod.F90

Lines changed: 25 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ module GEOS_GF_InterfaceMod
3838
real :: SCLM_DEEP
3939
real :: GF_MIN_AREA
4040
logical :: FIX_CNV_CLOUD
41+
logical :: REPORT_GF_NEGATIVES
4142

4243
public :: GF_Setup, GF_Initialize, GF_Run
4344

@@ -117,16 +118,18 @@ subroutine GF_Initialize (MAPL, CLOCK, RC)
117118
else
118119
call MAPL_GetResource(MAPL, USE_GF2020 , 'USE_GF2020:' ,default= 1, RC=STATUS );VERIFY_(STATUS)
119120
endif
121+
call MAPL_GetResource(MAPL, REPORT_GF_NEGATIVES, 'REPORT_GF_NEGATIVES:', default=.FALSE., RC=STATUS) ; VERIFY_(STATUS)
120122
IF (USE_GF2020==1) THEN
121-
call MAPL_GetResource(MAPL, ZERO_DIFF , 'ZERO_DIFF:' ,default= 0, RC=STATUS );VERIFY_(STATUS)
123+
call MAPL_GetResource(MAPL, ZERO_DIFF_LAND , 'ZERO_DIFF_LAND:' ,default= 0, RC=STATUS );VERIFY_(STATUS)
124+
call MAPL_GetResource(MAPL, ZERO_DIFF_VVEL , 'ZERO_DIFF_VVEL:' ,default= 0, RC=STATUS );VERIFY_(STATUS)
125+
call MAPL_GetResource(MAPL, ZERO_DIFF_ENTR , 'ZERO_DIFF_ENTR:' ,default= 0, RC=STATUS );VERIFY_(STATUS)
122126
call MAPL_GetResource(MAPL, ICUMULUS_GF(DEEP) , 'DEEP:' ,default= 1, RC=STATUS );VERIFY_(STATUS)
123127
call MAPL_GetResource(MAPL, ICUMULUS_GF(SHAL) , 'SHALLOW:' ,default= 0, RC=STATUS );VERIFY_(STATUS)
124128
call MAPL_GetResource(MAPL, ICUMULUS_GF(MID) , 'CONGESTUS:' ,default= 1, RC=STATUS );VERIFY_(STATUS)
125129
call MAPL_GetResource(MAPL, CLOSURE_CHOICE(DEEP) , 'CLOSURE_DEEP:' ,default= 0, RC=STATUS );VERIFY_(STATUS)
126130
call MAPL_GetResource(MAPL, CLOSURE_CHOICE(SHAL) , 'CLOSURE_SHALLOW:' ,default= 7, RC=STATUS );VERIFY_(STATUS)
127131
call MAPL_GetResource(MAPL, CLOSURE_CHOICE(MID) , 'CLOSURE_CONGESTUS:' ,default= 3, RC=STATUS );VERIFY_(STATUS)
128-
call MAPL_GetResource(MAPL, ENTRVERSION , 'ENTRVERSION:' ,default= 1, RC=STATUS );VERIFY_(STATUS)
129-
if (INT(ZERO_DIFF) == 0) then
132+
if (INT(ZERO_DIFF_ENTR) == 0) then
130133
call MAPL_GetResource(MAPL, ENTRVERSION , 'ENTRVERSION:' ,default= 0, RC=STATUS );VERIFY_(STATUS)
131134
call MAPL_GetResource(MAPL, MIN_ENTR_RATE , 'MIN_ENTR_RATE:' ,default= 0.3e-4,RC=STATUS );VERIFY_(STATUS)
132135
call MAPL_GetResource(MAPL, CUM_ENTR_RATE(DEEP) , 'ENTR_DP:' ,default= 2.0e-4,RC=STATUS );VERIFY_(STATUS)
@@ -166,16 +169,16 @@ subroutine GF_Initialize (MAPL, CLOCK, RC)
166169
call MAPL_GetResource(MAPL, BETA_SH , 'BETA_SH:' ,default= 2.2, RC=STATUS );VERIFY_(STATUS)
167170
call MAPL_GetResource(MAPL, USE_LINEAR_SUBCL_MF , 'USE_LINEAR_SUBCL_MF:' ,default= 0, RC=STATUS );VERIFY_(STATUS)
168171
call MAPL_GetResource(MAPL, CAP_MAXS , 'CAP_MAXS:' ,default= 50., RC=STATUS );VERIFY_(STATUS)
169-
call MAPL_GetResource(MAPL, GF_ENV_SETTING , 'GF_ENV_SETTING:' ,default= 'CURRENT', RC=STATUS); VERIFY_(STATUS)
172+
call MAPL_GetResource(MAPL, GF_ENV_SETTING , 'GF_ENV_SETTING:' ,default= 'DYNAMICS', RC=STATUS); VERIFY_(STATUS)
170173
call MAPL_GetResource(MAPL, STOCH_TOP , 'STOCH_TOP:' ,default= 2.50, RC=STATUS); VERIFY_(STATUS)
171174
call MAPL_GetResource(MAPL, STOCH_BOT , 'STOCH_BOT:' ,default= 0.75, RC=STATUS); VERIFY_(STATUS)
172175
call MAPL_GetResource(MAPL, STOCHASTIC_CNV , 'STOCHASTIC_CNV:' ,default= .FALSE.,RC=STATUS); VERIFY_(STATUS)
173-
if (INT(ZERO_DIFF) == 0) then
176+
if (INT(ZERO_DIFF_ENTR) == 0) then
174177
call MAPL_GetResource(MAPL, GF_MIN_AREA , 'GF_MIN_AREA:' ,default= 0.0, RC=STATUS );VERIFY_(STATUS)
175-
SGS_W_TIMESCALE = 3 ! Hours
178+
SGS_W_TIMESCALE = 6 ! Hours
176179
call MAPL_GetResource(MAPL, SGS_W_TIMESCALE , 'SGS_W_TIMESCALE:' ,default= SGS_W_TIMESCALE, RC=STATUS );VERIFY_(STATUS)
177180
call MAPL_GetResource(MAPL, TAU_MID , 'TAU_MID:' ,default= 3600., RC=STATUS );VERIFY_(STATUS)
178-
call MAPL_GetResource(MAPL, TAU_DEEP , 'TAU_DEEP:' ,default= 10800., RC=STATUS );VERIFY_(STATUS)
181+
call MAPL_GetResource(MAPL, TAU_DEEP , 'TAU_DEEP:' ,default= 21600., RC=STATUS );VERIFY_(STATUS)
179182
else
180183
call MAPL_GetResource(MAPL, GF_MIN_AREA , 'GF_MIN_AREA:' ,default= 1.e6, RC=STATUS );VERIFY_(STATUS)
181184
call MAPL_GetResource(MAPL, TAU_MID , 'TAU_MID:' ,default= 3600., RC=STATUS );VERIFY_(STATUS)
@@ -206,7 +209,6 @@ subroutine GF_Initialize (MAPL, CLOCK, RC)
206209
call MAPL_GetResource(MAPL, QRC_CRIT_OCN , 'QRC_CRIT_OCN:' ,default= 2.0e-4,RC=STATUS );VERIFY_(STATUS)
207210
call MAPL_GetResource(MAPL, QRC_CRIT_LND , 'QRC_CRIT_LND:' ,default= 2.0e-4,RC=STATUS );VERIFY_(STATUS)
208211
call MAPL_GetResource(MAPL, C1 , 'C1:' ,default= 0.0, RC=STATUS );VERIFY_(STATUS)
209-
if (INT(ZERO_DIFF) == 0) then
210212
call MAPL_GetResource(MAPL, CUM_HEI_DOWN_LAND(DEEP) , 'HEI_DOWN_LAND_DP:' ,default= 0.3, RC=STATUS );VERIFY_(STATUS)
211213
call MAPL_GetResource(MAPL, CUM_HEI_DOWN_LAND(SHAL) , 'HEI_DOWN_LAND_SH:' ,default= 0.0, RC=STATUS );VERIFY_(STATUS)
212214
call MAPL_GetResource(MAPL, CUM_HEI_DOWN_LAND(MID) , 'HEI_DOWN_LAND_MD:' ,default= 0.3, RC=STATUS );VERIFY_(STATUS)
@@ -231,32 +233,6 @@ subroutine GF_Initialize (MAPL, CLOCK, RC)
231233
call MAPL_GetResource(MAPL, CUM_MAX_EDT_OCEAN(DEEP) , 'MAX_EDT_OCEAN_DP:' ,default= 0.3, RC=STATUS );VERIFY_(STATUS)
232234
call MAPL_GetResource(MAPL, CUM_MAX_EDT_OCEAN(SHAL) , 'MAX_EDT_OCEAN_SH:' ,default= 0.0, RC=STATUS );VERIFY_(STATUS)
233235
call MAPL_GetResource(MAPL, CUM_MAX_EDT_OCEAN(MID) , 'MAX_EDT_OCEAN_MD:' ,default= 0.3, RC=STATUS );VERIFY_(STATUS)
234-
else
235-
call MAPL_GetResource(MAPL, CUM_HEI_DOWN_LAND(DEEP) , 'HEI_DOWN_LAND_DP:' ,default= 0.5, RC=STATUS );VERIFY_(STATUS)
236-
call MAPL_GetResource(MAPL, CUM_HEI_DOWN_LAND(SHAL) , 'HEI_DOWN_LAND_SH:' ,default= 0.0, RC=STATUS );VERIFY_(STATUS)
237-
call MAPL_GetResource(MAPL, CUM_HEI_DOWN_LAND(MID) , 'HEI_DOWN_LAND_MD:' ,default= 0.5, RC=STATUS );VERIFY_(STATUS)
238-
call MAPL_GetResource(MAPL, CUM_HEI_DOWN_OCEAN(DEEP) , 'HEI_DOWN_OCEAN_DP:' ,default= 0.5, RC=STATUS );VERIFY_(STATUS)
239-
call MAPL_GetResource(MAPL, CUM_HEI_DOWN_OCEAN(SHAL) , 'HEI_DOWN_OCEAN_SH:' ,default= 0.0, RC=STATUS );VERIFY_(STATUS)
240-
call MAPL_GetResource(MAPL, CUM_HEI_DOWN_OCEAN(MID) , 'HEI_DOWN_OCEAN_MD:' ,default= 0.5, RC=STATUS );VERIFY_(STATUS)
241-
call MAPL_GetResource(MAPL, CUM_HEI_UPDF_LAND(DEEP) , 'HEI_UPDF_LAND_DP:' ,default= 0.65, RC=STATUS );VERIFY_(STATUS)
242-
call MAPL_GetResource(MAPL, CUM_HEI_UPDF_LAND(SHAL) , 'HEI_UPDF_LAND_SH:' ,default= 0.2, RC=STATUS );VERIFY_(STATUS)
243-
call MAPL_GetResource(MAPL, CUM_HEI_UPDF_LAND(MID) , 'HEI_UPDF_LAND_MD:' ,default= 0.65, RC=STATUS );VERIFY_(STATUS)
244-
call MAPL_GetResource(MAPL, CUM_HEI_UPDF_OCEAN(DEEP) , 'HEI_UPDF_OCEAN_DP:' ,default= 0.65, RC=STATUS );VERIFY_(STATUS)
245-
call MAPL_GetResource(MAPL, CUM_HEI_UPDF_OCEAN(SHAL) , 'HEI_UPDF_OCEAN_SH:' ,default= 0.2, RC=STATUS );VERIFY_(STATUS)
246-
call MAPL_GetResource(MAPL, CUM_HEI_UPDF_OCEAN(MID) , 'HEI_UPDF_OCEAN_MD:' ,default= 0.65, RC=STATUS );VERIFY_(STATUS)
247-
call MAPL_GetResource(MAPL, CUM_MIN_EDT_LAND(DEEP) , 'MIN_EDT_LAND_DP:' ,default= 0.1, RC=STATUS );VERIFY_(STATUS)
248-
call MAPL_GetResource(MAPL, CUM_MIN_EDT_LAND(SHAL) , 'MIN_EDT_LAND_SH:' ,default= 0.0, RC=STATUS );VERIFY_(STATUS)
249-
call MAPL_GetResource(MAPL, CUM_MIN_EDT_LAND(MID) , 'MIN_EDT_LAND_MD:' ,default= 0.1, RC=STATUS );VERIFY_(STATUS)
250-
call MAPL_GetResource(MAPL, CUM_MIN_EDT_OCEAN(DEEP) , 'MIN_EDT_OCEAN_DP:' ,default= 0.1, RC=STATUS );VERIFY_(STATUS)
251-
call MAPL_GetResource(MAPL, CUM_MIN_EDT_OCEAN(SHAL) , 'MIN_EDT_OCEAN_SH:' ,default= 0.0, RC=STATUS );VERIFY_(STATUS)
252-
call MAPL_GetResource(MAPL, CUM_MIN_EDT_OCEAN(MID) , 'MIN_EDT_OCEAN_MD:' ,default= 0.1, RC=STATUS );VERIFY_(STATUS)
253-
call MAPL_GetResource(MAPL, CUM_MAX_EDT_LAND(DEEP) , 'MAX_EDT_LAND_DP:' ,default= 0.9, RC=STATUS );VERIFY_(STATUS)
254-
call MAPL_GetResource(MAPL, CUM_MAX_EDT_LAND(SHAL) , 'MAX_EDT_LAND_SH:' ,default= 0.0, RC=STATUS );VERIFY_(STATUS)
255-
call MAPL_GetResource(MAPL, CUM_MAX_EDT_LAND(MID) , 'MAX_EDT_LAND_MD:' ,default= 0.9, RC=STATUS );VERIFY_(STATUS)
256-
call MAPL_GetResource(MAPL, CUM_MAX_EDT_OCEAN(DEEP) , 'MAX_EDT_OCEAN_DP:' ,default= 0.9, RC=STATUS );VERIFY_(STATUS)
257-
call MAPL_GetResource(MAPL, CUM_MAX_EDT_OCEAN(SHAL) , 'MAX_EDT_OCEAN_SH:' ,default= 0.0, RC=STATUS );VERIFY_(STATUS)
258-
call MAPL_GetResource(MAPL, CUM_MAX_EDT_OCEAN(MID) , 'MAX_EDT_OCEAN_MD:' ,default= 0.9, RC=STATUS );VERIFY_(STATUS)
259-
endif
260236
call MAPL_GetResource(MAPL, SCLM_DEEP , 'SCLM_DEEP:' ,default= 1.0, RC=STATUS); VERIFY_(STATUS)
261237
call MAPL_GetResource(MAPL, FIX_CNV_CLOUD , 'FIX_CNV_CLOUD:' ,default= .FALSE., RC=STATUS); VERIFY_(STATUS)
262238
ELSE
@@ -585,12 +561,8 @@ subroutine GF_Run (GC, IMPORT, EXPORT, CLOCK, RC)
585561
endif
586562

587563
IF (USE_GF2020==1) THEN
588-
!- Determine which W is proper import
589-
IF (all(W == 0.0)) THEN
590-
TMP3D = -1*OMEGA/(MAPL_GRAV*PL/(MAPL_RDRY*T*(1.0+MAPL_VIREPS*Q)))
591-
ELSE
592-
TMP3D = W
593-
ENDIF
564+
! Convert OMEGA (Pa/s) to W (m/s)
565+
TMP3D = -1*OMEGA/(MAPL_GRAV*PL/(MAPL_RDRY*T*(1.0+MAPL_VIREPS*Q)))
594566
!- call GF2020 interface routine
595567
! PLE and PL are passed in Pa
596568
call GF2020_Interface( IM,JM,LM,LONS,LATS,GF_DT &
@@ -677,11 +649,19 @@ subroutine GF_Run (GC, IMPORT, EXPORT, CLOCK, RC)
677649
call MAPL_GetPointer(EXPORT, DQLCNDT_FILL, 'DQLCNDT_FILL_DC', RC=STATUS); VERIFY_(STATUS)
678650
call MAPL_GetPointer(EXPORT, DQILSDT_FILL, 'DQILSDT_FILL_DC', RC=STATUS); VERIFY_(STATUS)
679651
call MAPL_GetPointer(EXPORT, DQICNDT_FILL, 'DQICNDT_FILL_DC', RC=STATUS); VERIFY_(STATUS)
680-
call FILLQ2ZERO( Q , MASS, DT=MOIST_DT, DQDT= DQVDT_FILL, WARNING_LABEL="QV After GF DeepCu", VM=VMG, RC=STATUS); VERIFY_(STATUS)
681-
call FILLQ2ZERO( QLLS , MASS, DT=MOIST_DT, DQDT=DQLLSDT_FILL, WARNING_LABEL="QLLS After GF DeepCu", VM=VMG, RC=STATUS); VERIFY_(STATUS)
682-
call FILLQ2ZERO( QLCN , MASS, DT=MOIST_DT, DQDT=DQLCNDT_FILL, WARNING_LABEL="QLCN After GF DeepCu", VM=VMG, RC=STATUS); VERIFY_(STATUS)
683-
call FILLQ2ZERO( QILS , MASS, DT=MOIST_DT, DQDT=DQILSDT_FILL, WARNING_LABEL="QILS After GF DeepCu", VM=VMG, RC=STATUS); VERIFY_(STATUS)
684-
call FILLQ2ZERO( QICN , MASS, DT=MOIST_DT, DQDT=DQICNDT_FILL, WARNING_LABEL="QICN After GF DeepCu", VM=VMG, RC=STATUS); VERIFY_(STATUS)
652+
if (REPORT_GF_NEGATIVES) then
653+
call FILLQ2ZERO( Q , MASS, DT=MOIST_DT, DQDT= DQVDT_FILL, WARNING_LABEL="QV After GF DeepCu", VM=VMG, RC=STATUS); VERIFY_(STATUS)
654+
call FILLQ2ZERO( QLLS , MASS, DT=MOIST_DT, DQDT=DQLLSDT_FILL, WARNING_LABEL="QLLS After GF DeepCu", VM=VMG, RC=STATUS); VERIFY_(STATUS)
655+
call FILLQ2ZERO( QLCN , MASS, DT=MOIST_DT, DQDT=DQLCNDT_FILL, WARNING_LABEL="QLCN After GF DeepCu", VM=VMG, RC=STATUS); VERIFY_(STATUS)
656+
call FILLQ2ZERO( QILS , MASS, DT=MOIST_DT, DQDT=DQILSDT_FILL, WARNING_LABEL="QILS After GF DeepCu", VM=VMG, RC=STATUS); VERIFY_(STATUS)
657+
call FILLQ2ZERO( QICN , MASS, DT=MOIST_DT, DQDT=DQICNDT_FILL, WARNING_LABEL="QICN After GF DeepCu", VM=VMG, RC=STATUS); VERIFY_(STATUS)
658+
else
659+
call FILLQ2ZERO( Q , MASS, DT=MOIST_DT, DQDT= DQVDT_FILL, VM=VMG, RC=STATUS); VERIFY_(STATUS)
660+
call FILLQ2ZERO( QLLS , MASS, DT=MOIST_DT, DQDT=DQLLSDT_FILL, VM=VMG, RC=STATUS); VERIFY_(STATUS)
661+
call FILLQ2ZERO( QLCN , MASS, DT=MOIST_DT, DQDT=DQLCNDT_FILL, VM=VMG, RC=STATUS); VERIFY_(STATUS)
662+
call FILLQ2ZERO( QILS , MASS, DT=MOIST_DT, DQDT=DQILSDT_FILL, VM=VMG, RC=STATUS); VERIFY_(STATUS)
663+
call FILLQ2ZERO( QICN , MASS, DT=MOIST_DT, DQDT=DQICNDT_FILL, VM=VMG, RC=STATUS); VERIFY_(STATUS)
664+
endif
685665

686666
if (DEBUG_TQ_ERRORS) then
687667
do L=1,LM

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSmoist_GridComp/GEOS_MoistGridComp.F90

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,6 @@ subroutine SetServices ( GC, RC )
108108
logical :: LSHALLOW
109109
logical :: LCLDMICR
110110

111-
integer :: pdfRestartSkip, gfEnvRestartSkip, PDFSHAPE
112-
113-
CHARACTER(len=10) :: GF_ENV_SETTING
114-
115111
!=============================================================================
116112

117113
! Begin...
@@ -178,20 +174,6 @@ subroutine SetServices ( GC, RC )
178174
adjustl(CLDMICR_OPTION)=="MGB2_2M"
179175
_ASSERT( LCLDMICR, 'Unsupported Cloud Microphysics Option' )
180176

181-
call MAPL_GetResource( CF, GF_ENV_SETTING, Label="GF_ENV_SETTING:", default='DYNAMICS', RC=STATUS) ; VERIFY_(STATUS)
182-
if (trim(GF_ENV_SETTING)=='DYNAMICS') then
183-
pdfRestartSkip = MAPL_RestartOptional
184-
else
185-
pdfRestartSkip = MAPL_RestartSkip
186-
endif
187-
188-
call MAPL_GetResource( CF, PDFSHAPE, Label="PDFSHAPE:", default=1, RC=STATUS) ; VERIFY_(STATUS)
189-
if (PDFSHAPE.eq.5) then
190-
gfEnvRestartSkip = MAPL_RestartOptional
191-
else
192-
gfEnvRestartSkip = MAPL_RestartSkip
193-
endif
194-
195177
call MAPL_GetResource( CF, DEBUG_MST, Label="DEBUG_MST:", default=.false., RC=STATUS) ; VERIFY_(STATUS)
196178

197179
call MAPL_GetResource( CF, DEBUG_TQ_ERRORS, Label="DEBUG_TQ_ERRORS:", default=.false., RC=STATUS) ; VERIFY_(STATUS)

0 commit comments

Comments
 (0)