Skip to content

Commit a0ea6a1

Browse files
committed
Add name of CNCLM51 nml file to GEOS_SurfaceGridComp.rc (catch_wrap_state.F90, GEOS_CatchCNGridComp.F90, CNCLM_init_mod.F90)
1 parent 3438674 commit a0ea6a1

File tree

4 files changed

+54
-40
lines changed

4 files changed

+54
-40
lines changed

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOS_CatchCNGridComp.F90

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,12 @@ subroutine SetServices ( GC, RC )
4848

4949
! Local Variables
5050

51-
type(MAPL_MetaComp), pointer :: MAPL=>null()
52-
character(len=ESMF_MAXSTR) :: CATCHCN_VERSION
53-
type(ESMF_GridComp), pointer :: gcs(:)
54-
type(T_CATCHCN_STATE), pointer :: CATCHCN_INTERNAL_STATE
55-
class(T_CATCH_STATE), pointer :: statePtr
56-
type(CATCHCN_WRAP) :: wrap
51+
type(MAPL_MetaComp), pointer :: MAPL=>null()
52+
character(len=ESMF_MAXSTR) :: CATCHCN_VERSION
53+
type(ESMF_GridComp), pointer :: gcs(:)
54+
type(T_CATCHCN_STATE), pointer :: CATCHCN_INTERNAL_STATE
55+
class(T_CATCH_STATE), pointer :: statePtr
56+
type(CATCHCN_WRAP) :: wrap
5757

5858
character(len=ESMF_MAXSTR) :: SURFRC
5959
type(ESMF_Config) :: SCF, CF
@@ -96,6 +96,8 @@ subroutine SetServices ( GC, RC )
9696
call ESMF_ConfigDestroy(SCF, _RC)
9797

9898
call MAPL_Get (MAPL, CF=CF, _RC)
99+
100+
call ESMF_ConfigSetAttribute(CF, value=CATCHCN_INTERNAL_STATE%CN_CLM51_NML_FILE, Label='CN_CLM51_NML_FILE:', _RC)
99101
call ESMF_ConfigSetAttribute(CF, value=CATCHCN_INTERNAL_STATE%ATM_CO2, Label='ATM_CO2:', _RC)
100102
call ESMF_ConfigSetAttribute(CF, value=CATCHCN_INTERNAL_STATE%N_CONST_LAND4SNWALB, Label='N_CONST_LAND4SNWALB:', _RC)
101103
call ESMF_ConfigSetAttribute(CF, value=CATCHCN_INTERNAL_STATE%RUN_IRRIG, Label='RUN_IRRIG:', _RC)
@@ -105,19 +107,21 @@ subroutine SetServices ( GC, RC )
105107

106108
call MAPL_GetResource ( MAPL, LSM_CHOICE, Label="LSM_CHOICE:", DEFAULT=2, RC=STATUS)
107109
VERIFY_(STATUS)
110+
108111
tmp = ''
109112
if (NUM_LDAS_ENSEMBLE >1) then
110113
!catchcn_exxxx
111114
tmp(1:ens_id_width)=COMP_NAME(8:8+ens_id_width-1)
112-
endif
115+
endif
116+
113117
if ( LSM_CHOICE == 2 ) then
114118
CATCHCN = MAPL_AddChild('CATCHCNCLM40'//trim(tmp), 'setservices_', parentGC=GC, sharedObj='libGEOScatchCNCLM40_GridComp.so', RC=STATUS)
115119
VERIFY_(STATUS)
116120
else if ( LSM_CHOICE == 4 ) then
117121
CATCHCN = MAPL_AddChild('CATCHCNCLM51'//trim(tmp), 'setservices_', parentGC=GC, sharedObj='libGEOScatchCNCLM51_GridComp.so', RC=STATUS)
118122
VERIFY_(STATUS)
119123
else
120-
_ASSERT( .false., " LSM_CHOICE should equal 2 (CLM40) or 4 (CLM51)")
124+
_ASSERT( .false., " LSM_CHOICE for CatchCN should equal 2 (CLM40) or 4 (CLM51)")
121125
endif
122126

123127
wrap%ptr =>CATCHCN_INTERNAL_STATE

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM51_GridComp/CLM51/CNCLM_init_mod.F90

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,15 @@ module CNCLM_initMod
8181
use CNFUNMod , only : readCNFUNParams => readParams, &
8282
CNFUNInit
8383
use CNNDynamicsMod , only : CNNDynamicsReadNML
84-
use SurfaceAlbedoMod , only: SurfaceAlbedo_readnl
85-
use SoilBiogeochemPrecisionControlMod , only: SoilBiogeochemPrecisionControlInit
84+
use SurfaceAlbedoMod , only : SurfaceAlbedo_readnl
85+
use SoilBiogeochemPrecisionControlMod , only : SoilBiogeochemPrecisionControlInit
8686
use SoilBiogeochemNitrifDenitrifMod , only : readSoilBiogeochemNitrifDenitrifParams => readParams
8787
use SoilStateInitTimeConstMod , only : readParams_SoilStateInitTimeConst => readParams, &
8888
SoilStateInitTimeConst
8989
use clm_varpar , only : numpft, num_zon, num_veg, var_pft, var_col, &
9090
nlevgrnd, nlevsoi
9191

92-
use MAPL , only : NetCDF4_FileFormatter, pFIO_READ
92+
use MAPL ! , only : NetCDF4_FileFormatter, pFIO_READ
9393
use ESMF
9494

9595
implicit none
@@ -127,10 +127,10 @@ subroutine CN_init(nch,ityp,fveg,cncol,cnpft,lats,lons,dtcn,paramfile,water_inst
127127
type(water_type), intent(out) :: water_inst
128128
type(cn_vegetation_type), intent(out) :: bgc_vegetation_inst
129129
!LOCAL
130-
131-
character(300) :: NLFilename
130+
131+
character(256) :: NLFilename ! length of 256 for consistency with SHR_KIND_CL of CLM51/shr_kind_mod.F90
132132
type(Netcdf4_fileformatter) :: ncid
133-
integer :: rc, status, ndt
133+
integer :: rc, status, ndt
134134

135135
!-----------------------------------------
136136

@@ -171,7 +171,8 @@ subroutine CN_init(nch,ityp,fveg,cncol,cnpft,lats,lons,dtcn,paramfile,water_inst
171171

172172
! read parameters and configurations from namelist file
173173

174-
NLFilename = trim('./CN_CLM51.nml')
174+
call MAPL_GetResource( MAPL, NLFilename, Label="CN_CLM51_NML_FILE:", DEFAULT='./CN_CLM51.nml', RC=STATUS)
175+
VERIFY_(STATUS)
175176

176177
call CNPhenologyReadNML ( NLFilename )
177178
call dynSubgridControl_init ( )

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/Shared/catch_wrap_state.F90

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,12 @@ module catch_wrap_stateMod
3939
end type CATCH_WRAP
4040

4141
type, extends(T_CATCH_STATE) :: T_CATCHCN_STATE
42-
! resource parameters from GEOS_SurfaceGridComp.rc:
43-
integer :: ATM_CO2, PRESCRIBE_DVG
44-
real :: CO2
45-
integer :: CO2_YEAR_IN
46-
real :: DTCN
42+
! resource parameters from GEOS_SurfaceGridComp.rc:
43+
character(256) :: CN_CLM51_NML_FILE ! length of 256 for consistency with SHR_KIND_CL of CLM51/shr_kind_mod.F90
44+
integer :: ATM_CO2, PRESCRIBE_DVG
45+
real :: CO2
46+
integer :: CO2_YEAR_IN
47+
real :: DTCN
4748
end type T_CATCHCN_STATE
4849

4950
type CATCHCN_WRAP
@@ -67,9 +68,9 @@ subroutine surface_params_to_wrap_state(statePtr, scf, rc)
6768
! For documentation, see GEOS_SurfaceGridComp.rc. !
6869
! ************************************************* !
6970

70-
call MAPL_GetResource( SCF, statePtr%SURFLAY, label='SURFLAY:', DEFAULT=50., __RC__ )
71-
call MAPL_GetResource( SCF, statePtr%USE_ASCATZ0, label='USE_ASCATZ0:', DEFAULT=0, __RC__ )
72-
call MAPL_GetResource( SCF, statePtr%CHOOSEMOSFC, label='CHOOSEMOSFC:', DEFAULT=1, __RC__ )
71+
call MAPL_GetResource( SCF, statePtr%SURFLAY, label='SURFLAY:', DEFAULT=50., __RC__ )
72+
call MAPL_GetResource( SCF, statePtr%USE_ASCATZ0, label='USE_ASCATZ0:', DEFAULT=0, __RC__ )
73+
call MAPL_GetResource( SCF, statePtr%CHOOSEMOSFC, label='CHOOSEMOSFC:', DEFAULT=1, __RC__ )
7374

7475
! MOSFC_EXTRA_DERIVS_OFFL_LAND: Resource parameter for *offline* (LDAS) mode.
7576
!
@@ -95,14 +96,14 @@ subroutine surface_params_to_wrap_state(statePtr, scf, rc)
9596
if (statePtr%CHOOSEMOSFC==0) then
9697

9798
! Louis
98-
call MAPL_GetResource( SCF, statePtr%MOSFC_EXTRA_DERIVS_OFFL_LAND, label='MOSFC_EXTRA_DERIVS_OFFL_LAND:', DEFAULT=1, __RC__ )
99+
call MAPL_GetResource( SCF, statePtr%MOSFC_EXTRA_DERIVS_OFFL_LAND, label='MOSFC_EXTRA_DERIVS_OFFL_LAND:', DEFAULT=1, __RC__ )
99100
! make sure parameter value is allowed
100101
ii = statePtr%MOSFC_EXTRA_DERIVS_OFFL_LAND ; _ASSERT(ii>=0 .and. ii<=3, 'unknown MOSFC_EXTRA_DERIVS_OFFL_LAND for Louis ')
101102

102103
elseif (statePtr%CHOOSEMOSFC==1) then
103104

104105
! Helfand
105-
call MAPL_GetResource( SCF, statePtr%MOSFC_EXTRA_DERIVS_OFFL_LAND, label='MOSFC_EXTRA_DERIVS_OFFL_LAND:', DEFAULT=0, __RC__ )
106+
call MAPL_GetResource( SCF, statePtr%MOSFC_EXTRA_DERIVS_OFFL_LAND, label='MOSFC_EXTRA_DERIVS_OFFL_LAND:', DEFAULT=0, __RC__ )
106107
! make sure parameter value is allowed (analytical derivs not implemented for Helfand)
107108
ii = statePtr%MOSFC_EXTRA_DERIVS_OFFL_LAND ; _ASSERT(ii==0 .or. ii==2, 'unknown MOSFC_EXTRA_DERIVS_OFFL_LAND for Helfand')
108109

@@ -125,8 +126,8 @@ subroutine surface_params_to_wrap_state(statePtr, scf, rc)
125126

126127
! -------------------------
127128

128-
call MAPL_GetResource( SCF, statePtr%USE_FWET_FOR_RUNOFF, label='USE_FWET_FOR_RUNOFF:', DEFAULT=.FALSE., __RC__ )
129-
call MAPL_GetResource( SCF, statePtr%Z0_FORMULATION, label='Z0_FORMULATION:', DEFAULT=4, __RC__ )
129+
call MAPL_GetResource( SCF, statePtr%USE_FWET_FOR_RUNOFF, label='USE_FWET_FOR_RUNOFF:', DEFAULT=.FALSE., __RC__ )
130+
call MAPL_GetResource( SCF, statePtr%Z0_FORMULATION, label='Z0_FORMULATION:', DEFAULT=4, __RC__ )
130131

131132
if (.NOT. statePtr%USE_FWET_FOR_RUNOFF) then
132133
FWETC_default = 0.02
@@ -136,22 +137,23 @@ subroutine surface_params_to_wrap_state(statePtr, scf, rc)
136137
FWETL_default = 0.025 ! NOT ready for science!
137138
endif
138139

139-
call MAPL_GetResource( SCF, statePtr%FWETC, label='FWETC:', DEFAULT=FWETC_default, __RC__ )
140-
call MAPL_GetResource( SCF, statePtr%FWETL, label='FWETL:', DEFAULT=FWETL_default, __RC__ )
141-
call MAPL_GetResource( SCF, statePtr%SNOW_ALBEDO_INFO, label='SNOW_ALBEDO_INFO:', DEFAULT=0, __RC__ )
142-
call MAPL_GetResource( SCF, statePtr%N_CONST_LAND4SNWALB, label='N_CONST_LAND4SNWALB:', DEFAULT=0, __RC__ )
143-
call MAPL_GetResource( SCF, statePtr%AEROSOL_DEPOSITION, label='AEROSOL_DEPOSITION:', DEFAULT=0, __RC__ )
144-
call MAPL_GetResource( SCF, statePtr%RUN_IRRIG, label='RUN_IRRIG:', DEFAULT=0, __RC__ )
145-
call MAPL_GetResource( SCF, statePtr%IRRIG_METHOD, label='IRRIG_METHOD:', DEFAULT=0, __RC__ )
140+
call MAPL_GetResource( SCF, statePtr%FWETC, label='FWETC:', DEFAULT=FWETC_default, __RC__ )
141+
call MAPL_GetResource( SCF, statePtr%FWETL, label='FWETL:', DEFAULT=FWETL_default, __RC__ )
142+
call MAPL_GetResource( SCF, statePtr%SNOW_ALBEDO_INFO, label='SNOW_ALBEDO_INFO:', DEFAULT=0, __RC__ )
143+
call MAPL_GetResource( SCF, statePtr%N_CONST_LAND4SNWALB, label='N_CONST_LAND4SNWALB:', DEFAULT=0, __RC__ )
144+
call MAPL_GetResource( SCF, statePtr%AEROSOL_DEPOSITION, label='AEROSOL_DEPOSITION:', DEFAULT=0, __RC__ )
145+
call MAPL_GetResource( SCF, statePtr%RUN_IRRIG, label='RUN_IRRIG:', DEFAULT=0, __RC__ )
146+
call MAPL_GetResource( SCF, statePtr%IRRIG_METHOD, label='IRRIG_METHOD:', DEFAULT=0, __RC__ )
146147

147148
select type (statePtr)
148149
type is (T_CATCHCN_STATE) ! CATCHCN
149-
150-
call MAPL_GetResource( SCF, statePtr%DTCN, label='DTCN:', DEFAULT=5400., __RC__ )
151-
call MAPL_GetResource( SCF, statePtr%ATM_CO2, label='ATM_CO2:', DEFAULT=2, __RC__ )
152-
call MAPL_GetResource( SCF, statePtr%PRESCRIBE_DVG, label='PRESCRIBE_DVG:', DEFAULT=0, __RC__ )
153-
call MAPL_GetResource( SCF, statePtr%CO2, label='CO2:', DEFAULT=350.e-6, __RC__ )
154-
call MAPL_GetResource( SCF, statePtr%CO2_YEAR_IN, label='CO2_YEAR:', DEFAULT=-9999, __RC__ )
150+
151+
call MAPL_GetResource( SCF, statePtr%CN_CLM51_NML_FILE, label='CN_CLM51_NML_FILE:', DEFAULT='./CN_CLM51.nml', __RC__ )
152+
call MAPL_GetResource( SCF, statePtr%DTCN, label='DTCN:', DEFAULT=5400., __RC__ )
153+
call MAPL_GetResource( SCF, statePtr%ATM_CO2, label='ATM_CO2:', DEFAULT=2, __RC__ )
154+
call MAPL_GetResource( SCF, statePtr%PRESCRIBE_DVG, label='PRESCRIBE_DVG:', DEFAULT=0, __RC__ )
155+
call MAPL_GetResource( SCF, statePtr%CO2, label='CO2:', DEFAULT=350.e-6, __RC__ )
156+
call MAPL_GetResource( SCF, statePtr%CO2_YEAR_IN, label='CO2_YEAR:', DEFAULT=-9999, __RC__ )
155157

156158
end select
157159

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Shared/GEOS_SurfaceGridComp.rc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,13 @@
219219
# GEOSagcm=>DTCN: 5400
220220
# GEOSldas=>DTCN: 5400
221221

222+
# ---- Name of nml file for Catchment-CN5.1
223+
#
224+
# Include path (abs or relative) in string; './' is the "run" directory. String max length is 256 chars.
225+
#
226+
# GEOSagcm=>CN_CLM51_NML_FILE: './CN_CLM51.nml'
227+
# GEOSldas=>CN_CLM51_NML_FILE: './CN_CLM51.nml'
228+
222229
# ---- Atmospheric CO2
223230
#
224231
# 0: Use a fixed value defined by "CO2" resource parameter [ppm]

0 commit comments

Comments
 (0)