@@ -60,12 +60,12 @@ module controlMod
60
60
! !PUBLIC TYPES:
61
61
implicit none
62
62
save
63
-
63
+
64
64
! !PUBLIC MEMBER FUNCTIONS:
65
65
public :: control_setNL ! Set namelist filename
66
66
public :: control_init ! initial run control information
67
67
public :: control_print ! print run control information
68
-
68
+
69
69
! !PRIVATE TYPES:
70
70
character (len= 7 ) :: runtyp(4 ) ! run type
71
71
character (len= SHR_KIND_CL) :: NLFilename = ' lnd.stdin' ! Namelist filename
@@ -79,14 +79,14 @@ module controlMod
79
79
80
80
!- -----------------------------------------------------------------------
81
81
subroutine control_setNL ( NLfile )
82
-
82
+
83
83
! !DESCRIPTION:
84
84
! Set the namelist filename to use
85
-
85
+
86
86
! !ARGUMENTS:
87
87
implicit none
88
88
character (len=* ), intent (IN ) :: NLFile ! Namelist filename
89
-
89
+
90
90
! !LOCAL VARIABLES:
91
91
character (len= 32 ) :: subname = ' control_setNL' ! subroutine name
92
92
logical :: lexist ! File exists
@@ -111,19 +111,19 @@ end subroutine control_setNL
111
111
112
112
!- -----------------------------------------------------------------------
113
113
subroutine control_init ( )
114
-
114
+
115
115
! !DESCRIPTION:
116
116
! Initialize CLM run control information
117
-
117
+
118
118
! !USES:
119
119
use elm_time_manager , only : set_timemgr_init, get_timemgr_defaults
120
120
use fileutils , only : getavu, relavu
121
121
use shr_string_mod , only : shr_string_getParentDir
122
122
use elm_interface_pflotranMod , only : elm_pf_readnl
123
123
use ELMBeTRNLMod , only : betr_readNL
124
-
124
+
125
125
implicit none
126
-
126
+
127
127
! !LOCAL VARIABLES:
128
128
character (len= 32 ) :: starttype ! infodata start type
129
129
integer :: i,j,n ! loop indices
@@ -306,8 +306,8 @@ subroutine control_init( )
306
306
namelist / elm_inparm/ &
307
307
do_budgets, budget_inst, budget_daily, budget_month, &
308
308
budget_ann, budget_ltann, budget_ltend
309
-
310
- namelist / elm_inparm/ &
309
+
310
+ namelist / elm_inparm/ &
311
311
use_atm_downscaling_to_topunit, precip_downscaling_method
312
312
313
313
namelist / elm_inparm/ &
@@ -318,16 +318,19 @@ subroutine control_init( )
318
318
319
319
namelist / elm_mosart/ &
320
320
lnd_rof_coupling_nstep
321
-
321
+
322
+ namelist / elm_inparm/ &
323
+ snow_shape, snicar_atm_type, use_dust_snow_internal_mixing
324
+
322
325
namelist / elm_inparm/ &
323
- snow_shape, snicar_atm_type, use_dust_snow_internal_mixing
324
-
325
- namelist / elm_inparm/ &
326
326
use_modified_infil
327
327
328
328
namelist / elm_inparm/ &
329
329
use_fan, fan_mode, fan_to_bgc_veg, nh4_ads_coef
330
330
331
+ ! NGEE Arctic options
332
+ namelist / elm_inparm/ &
333
+ use_polygonal_tundra
331
334
! ----------------------------------------------------------------------
332
335
! Default values
333
336
! ----------------------------------------------------------------------
@@ -506,7 +509,7 @@ subroutine control_init( )
506
509
end if
507
510
end if
508
511
509
- if (use_lch4 .and. use_vertsoilc) then
512
+ if (use_lch4 .and. use_vertsoilc) then
510
513
anoxia = .true.
511
514
else
512
515
anoxia = .false.
@@ -551,7 +554,7 @@ subroutine control_init( )
551
554
if (use_lnd_rof_two_way) then
552
555
if (lnd_rof_coupling_nstep < 1 ) then
553
556
call endrun(msg= ' ERROR: lnd_rof_coupling_nstep cannot be smaller than 1.' // &
554
- errMsg(__FILE__, __LINE__))
557
+ errMsg(__FILE__, __LINE__))
555
558
endif
556
559
endif
557
560
@@ -686,7 +689,7 @@ end subroutine control_init
686
689
687
690
!- -----------------------------------------------------------------------
688
691
subroutine control_spmd ()
689
-
692
+
690
693
! !DESCRIPTION:
691
694
! Distribute namelist data all processors. All program i/o is
692
695
! funnelled through the master processor. Processor 0 either
@@ -695,13 +698,13 @@ subroutine control_spmd()
695
698
! all processors and writes it to disk.
696
699
!
697
700
! !USES:
698
-
701
+
699
702
use spmdMod, only : mpicom, MPI_CHARACTER, MPI_INTEGER, MPI_LOGICAL, MPI_REAL8
700
703
use elm_varpar, only : numrad
701
-
704
+
702
705
! !ARGUMENTS:
703
706
implicit none
704
-
707
+
705
708
! !LOCAL VARIABLES:
706
709
integer ier ! error code
707
710
!- ----------------------------------------------------------------------
@@ -874,7 +877,7 @@ subroutine control_spmd()
874
877
call mpi_bcast (more_vertlayers,1 , MPI_LOGICAL, 0 , mpicom, ier)
875
878
call mpi_bcast (const_climate_hist, 1 , MPI_LOGICAL, 0 , mpicom, ier)
876
879
call mpi_bcast (use_top_solar_rad, 1 , MPI_LOGICAL, 0 , mpicom, ier) ! TOP solar radiation parameterization
877
-
880
+
878
881
! glacier_mec variables
879
882
call mpi_bcast (create_glacier_mec_landunit, 1 , MPI_LOGICAL, 0 , mpicom, ier)
880
883
call mpi_bcast (maxpatch_glcmec, 1 , MPI_INTEGER, 0 , mpicom, ier)
@@ -948,11 +951,11 @@ subroutine control_spmd()
948
951
949
952
! PETSc-based thermal model
950
953
call mpi_bcast (use_petsc_thermal_model, 1 , MPI_LOGICAL, 0 , mpicom, ier)
951
-
954
+
952
955
! Downscaling of atmospheric forcing to topounits
953
956
call mpi_bcast (use_atm_downscaling_to_topunit, 1 , MPI_LOGICAL, 0 , mpicom, ier)
954
957
call mpi_bcast (precip_downscaling_method, len (precip_downscaling_method), MPI_CHARACTER, 0 , mpicom, ier)
955
-
958
+
956
959
! soil erosion
957
960
call mpi_bcast (use_erosion, 1 , MPI_LOGICAL, 0 , mpicom, ier)
958
961
call mpi_bcast (ero_ccycle , 1 , MPI_LOGICAL, 0 , mpicom, ier)
@@ -974,28 +977,30 @@ subroutine control_spmd()
974
977
call mpi_bcast (snow_shape, len (snow_shape), MPI_CHARACTER, 0 , mpicom, ier)
975
978
call mpi_bcast (snicar_atm_type, len (snicar_atm_type), MPI_CHARACTER, 0 , mpicom, ier)
976
979
call mpi_bcast (use_dust_snow_internal_mixing, 1 , MPI_LOGICAL, 0 , mpicom, ier)
977
-
980
+
978
981
call mpi_bcast (mpi_sync_nstep_freq, 1 , MPI_INTEGER, 0 , mpicom, ier)
979
-
982
+
980
983
! use modified infiltration scheme in surface water storage
981
984
call mpi_bcast (use_modified_infil, 1 , MPI_LOGICAL, 0 , mpicom, ier)
982
985
986
+ ! NGEE Arctic options
987
+ call mpi_bcast (use_polygonal_tundra, 1 , MPI_LOGICAL, 0 , mpicom, ier)
983
988
end subroutine control_spmd
984
989
985
990
!- -----------------------------------------------------------------------
986
991
subroutine control_print ()
987
-
992
+
988
993
! !DESCRIPTION:
989
994
! Write out the clm namelist run control variables
990
-
995
+
991
996
! !USES:
992
-
997
+
993
998
use AllocationMod, only : suplnitro, suplnNon
994
999
use AllocationMod, only : suplphos, suplpNon
995
-
1000
+
996
1001
! !ARGUMENTS:
997
1002
implicit none
998
-
1003
+
999
1004
! !LOCAL VARIABLES:
1000
1005
integer i ! loop index
1001
1006
character (len= 32 ) :: subname = ' control_print' ! subroutine name
@@ -1035,7 +1040,7 @@ subroutine control_print ()
1035
1040
write (iulog,* ) ' precip_downscaling_method = ' , precip_downscaling_method
1036
1041
write (iulog,* ) ' input data files:'
1037
1042
write (iulog,* ) ' PFT physiology and parameters file = ' ,trim (paramfile)
1038
- write (iulog,* ) ' Soil order dependent parameters file = ' ,trim (fsoilordercon)
1043
+ write (iulog,* ) ' Soil order dependent parameters file = ' ,trim (fsoilordercon)
1039
1044
if (fsurdat == ' ' ) then
1040
1045
write (iulog,* ) ' fsurdat, surface dataset not set'
1041
1046
else
@@ -1056,13 +1061,13 @@ subroutine control_print ()
1056
1061
else
1057
1062
write (iulog,* ) ' atm topographic data = ' ,trim (fatmtopo)
1058
1063
end if
1059
-
1064
+
1060
1065
if (use_top_solar_rad) then
1061
1066
write (iulog,* ) ' use TOP solar radiation parameterization instead of PP'
1062
1067
else
1063
1068
write (iulog,* ) ' use_top_solar_rad is False, so do not run TOP solar radiation parameterization'
1064
1069
end if
1065
-
1070
+
1066
1071
if (use_cn) then
1067
1072
if (suplnitro /= suplnNon)then
1068
1073
write (iulog,* ) ' Supplemental Nitrogen mode is set to run over Patches: ' , &
@@ -1176,9 +1181,9 @@ subroutine control_print ()
1176
1181
write (iulog,* ) ' atm_gustiness = ' , atm_gustiness
1177
1182
write (iulog,* ) ' force_land_gustiness = ' , force_land_gustiness
1178
1183
write (iulog,* ) ' more vertical layers = ' , more_vertlayers
1179
-
1184
+
1180
1185
write (iulog,* ) ' Sub-grid topographic effects on solar radiation = ' , use_top_solar_rad ! TOP solar radiation parameterization
1181
-
1186
+
1182
1187
if (nsrest == nsrContinue) then
1183
1188
write (iulog,* ) ' restart warning:'
1184
1189
write (iulog,* ) ' Namelist not checked for agreement with initial run.'
@@ -1241,9 +1246,9 @@ subroutine control_print ()
1241
1246
write (iulog,* ) ' use_lnd_rof_two_way = ' , use_lnd_rof_two_way
1242
1247
write (iulog,* ) ' lnd_rof_coupling_nstep = ' , lnd_rof_coupling_nstep
1243
1248
write (iulog,* ) ' mpi_sync_nstep_freq = ' , mpi_sync_nstep_freq
1244
-
1249
+
1245
1250
write (iulog,* ) ' use_modified_infil = ' , use_modified_infil
1246
-
1251
+
1247
1252
1248
1253
! FAN
1249
1254
write (iulog,* ) ' use_fan = ' , use_fan
@@ -1253,6 +1258,8 @@ subroutine control_print ()
1253
1258
write (iulog,* ) ' fan_to_bgc_veg = ' , fan_to_bgc_veg
1254
1259
end if
1255
1260
1261
+ ! NGEE Arctic options
1262
+ if (use_polygonal_tundra) write (iulog, * ) ' use_polygonal_tundra =' , use_polygonal_tundra
1256
1263
end subroutine control_print
1257
1264
1258
1265
end module controlMod
0 commit comments