Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SNICAR snow albedo scheme updates #1861

Merged
merged 72 commits into from
Oct 19, 2023
Merged
Show file tree
Hide file tree
Changes from 64 commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
a625eac
add output for SNICAR related albedo variables
cenlinhe Jan 19, 2022
759ef18
bug fix for adding new albedo output variables
cenlinhe Jan 20, 2022
e3c5459
expand SNICAR from 5-band to 480-band with namelist control option
cenlinhe Jan 25, 2022
314c7d3
add adding-doubling solver in SNICAR with namelist option
cenlinhe Jan 26, 2022
3e9299f
add nonspherical snow grains with namelist option
cenlinhe Jan 28, 2022
e006dc5
add BC-snow internal mixing and namelist control
cenlinhe Jan 29, 2022
43e52bf
add dust-snow internal mixing and namelist control
cenlinhe Jan 29, 2022
7dc18ab
bug fix for BC/dust-snow internal mixing
cenlinhe Jan 29, 2022
9d5fee6
update 5-band input optics database & move DO_SNO_OC to namelist control
cenlinhe Feb 1, 2022
a6e168e
add DO_SNO_OC to namelist_definition_ctsm
cenlinhe Feb 1, 2022
7191233
bug fix for albsni_hst2
cenlinhe Apr 11, 2022
83991f7
correcting default values for new SNICAR namelist options
cenlinhe Apr 11, 2023
b4a30d6
Merge remote-tracking branch 'escomp/master' into snicar_allupdate
slevis-lmwg Jul 19, 2023
a6422a2
Merge remote-tracking branch 'escomp/master' into snicar_allupdate
slevis-lmwg Jul 28, 2023
32ca5ec
snicar_snw_optics: keep option 3 only
slevis-lmwg Aug 2, 2023
725f527
snicar_rt_solver: keep option 2 only
slevis-lmwg Aug 3, 2023
5f8d50d
snicar_snw_shape: replace integers with descriptive options
slevis-lmwg Aug 3, 2023
3164bc6
snicar_solarspec & snicar_dust_optics: replace integers with descript…
slevis-lmwg Aug 3, 2023
230e3fc
General clean-up of other snicar switches and comments
slevis-lmwg Aug 3, 2023
4ab6738
Some clean-up associated with snicar_numrad_snw
slevis-lmwg Aug 4, 2023
21b607d
Update namelist defaults and differentiate clm5_1 from 5_0, 4_5
slevis-lmwg Aug 4, 2023
604968e
Minor cleanup of unnecessary things
slevis-lmwg Aug 4, 2023
9cd7a55
Minor cleanup of unused things
slevis-lmwg Aug 7, 2023
a0cd959
Rename use_snicar_frc to snicar_aerforc_diag and make default .false.
slevis-lmwg Aug 7, 2023
0e6f1df
Correction of a typo in /testmods_dirs/.../user_nl_clm
slevis-lmwg Aug 8, 2023
55e91e4
Replace dimension 8 with ngmax for two arrays; wait to hear about others
slevis-lmwg Aug 8, 2023
992ef0f
Minor refactor: replace some / and ** with *, replace some ifs with m…
slevis-lmwg Aug 8, 2023
5ddaa34
Correct comments that label hydrophilic/phobic OC and BC
slevis-lmwg Aug 9, 2023
d47da29
Consolidated fsnowoptics480 with fsnowoptics
slevis-lmwg Aug 9, 2023
afbe2d6
Add quotes to correct namelist_defaults_ctsm.xml
slevis-lmwg Aug 10, 2023
9808d1a
Consolidate some repetitive code pertaining to wvl_ct
slevis-lmwg Aug 10, 2023
5ad655a
Reduce repetitive code in 'Weight output NIR albedo' section
slevis-lmwg Aug 10, 2023
40bcf15
Reduce repetitive code in 'Weight output NIR absorbed' section
slevis-lmwg Aug 10, 2023
98f229a
Replace if-statements with min/max
slevis-lmwg Aug 10, 2023
2ee70af
Replace another if-statmt with max and two ints with floats
slevis-lmwg Aug 10, 2023
2a4159d
Merge remote-tracking branch 'escomp/master' into snicar_allupdate
slevis-lmwg Aug 11, 2023
5709993
Add a clarifying comment to the code
slevis-lmwg Aug 11, 2023
a5e8c7c
Draft of ChangeLog/Sum files
slevis-lmwg Aug 11, 2023
093e54c
Update to the ChangeLog
slevis-lmwg Aug 11, 2023
f0b6d60
Update2 to the ChangeLog
slevis-lmwg Aug 11, 2023
ab5b8f4
Merge remote-tracking branch 'escomp/master' into snicar_allupdate
slevis-lmwg Aug 28, 2023
557e664
Merge remote-tracking branch 'escomp/master' into snicar_allupdate
slevis-lmwg Aug 29, 2023
d4be616
Merge tag 'ctsm5.1.dev139'
slevis-lmwg Sep 10, 2023
1b0f7a2
Rm Defaults from snicar vars in namelist_definition
slevis-lmwg Sep 22, 2023
27f3237
Rm one more Default
slevis-lmwg Sep 22, 2023
0129068
Add licencing info to subr. piecewise_linear_interp1d
slevis-lmwg Sep 25, 2023
05ea928
Add readv argument to call ncd_io in SnowSnicarMod (not tested, yet)
slevis-lmwg Sep 26, 2023
8cf2c70
Updates to last commit for test to PASS
slevis-lmwg Sep 26, 2023
ffc8eae
Replace 3600 with secsphr
slevis-lmwg Sep 27, 2023
55ad199
Replace indices 1, 2 with ivis, inir where appropriate
slevis-lmwg Sep 27, 2023
33c8524
Replace 1e5 with enh_omg_max parameter
slevis-lmwg Sep 27, 2023
eb10335
Replace hardwired numbers with parameters and other clean-up
slevis-lmwg Sep 27, 2023
3f0fe62
Changed many constants to parameters and other minor clean-up
slevis-lmwg Sep 28, 2023
00493ef
Change some arrays to parameters
slevis-lmwg Sep 28, 2023
ed2a177
Change more arrays to parameters
slevis-lmwg Sep 29, 2023
eddb844
Add case default lines and corresponding error messages
slevis-lmwg Sep 29, 2023
d6b92ec
Change two more arrays to parameters
slevis-lmwg Sep 29, 2023
99ee926
Replace suffixes 1 & 2 representing hydrophillic/phobic w hphil/hphob
slevis-lmwg Sep 29, 2023
94846be
Replace pointers with allocatables
slevis-lmwg Sep 29, 2023
b892252
Improve error checks and comments
slevis-lmwg Oct 5, 2023
20ce1ea
Remove option of running this copy of snicar in csim
slevis-lmwg Oct 5, 2023
f952e50
Replace hardwired numbers with parameters
slevis-lmwg Oct 5, 2023
eeba54f
Add comment explaining posNOTonfile=.true.
slevis-lmwg Oct 6, 2023
67bf624
Merge remote-tracking branch 'escomp/master' into snicar_allupdate
slevis-lmwg Oct 6, 2023
3838ceb
Correct syntax error
slevis-lmwg Oct 6, 2023
3a4ffdc
Merge remote-tracking branch 'escomp/master' into snicar_allupdate
slevis-lmwg Oct 17, 2023
6adba3d
Remove a bit of redundant code and change a comment
slevis-lmwg Oct 17, 2023
a2370a0
CLMBuildNamelist.pm: Put most snicar error checks in loop
slevis-lmwg Oct 18, 2023
f0260cf
Revert snicar_aerforc_diag to original use_snicar_frc
slevis-lmwg Oct 18, 2023
1890865
Removing duplicate lines of code #2129 #2107
slevis-lmwg Oct 19, 2023
44d128e
Merge branch 'master' into snicar_allupdate
slevis-lmwg Oct 19, 2023
82a335a
Merge remote-tracking branch 'escomp/master' into snicar_allupdate
slevis-lmwg Oct 19, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 74 additions & 1 deletion bld/CLMBuildNamelist.pm
Original file line number Diff line number Diff line change
Expand Up @@ -1557,6 +1557,7 @@ sub process_namelist_inline_logic {
setup_logic_irrigate($opts, $nl_flags, $definition, $defaults, $nl);
setup_logic_start_type($opts, $nl_flags, $nl);
setup_logic_decomp_performance($opts, $nl_flags, $definition, $defaults, $nl);
setup_logic_snicar_methods($opts, $nl_flags, $definition, $defaults, $nl);
setup_logic_snow($opts, $nl_flags, $definition, $defaults, $nl);
setup_logic_glacier($opts, $nl_flags, $definition, $defaults, $nl, $envxml_ref);
setup_logic_dynamic_plant_nitrogen_alloc($opts, $nl_flags, $definition, $defaults, $nl, $physv);
Expand Down Expand Up @@ -1982,10 +1983,82 @@ sub setup_logic_decomp_performance {

#-------------------------------------------------------------------------------

sub setup_logic_snicar_methods {
my ($opts, $nl_flags, $definition, $defaults, $nl) = @_;

add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'snicar_snw_shape' );
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'snicar_solarspec' );
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'snicar_dust_optics' );
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'snicar_numrad_snw' );
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'snicar_snobc_intmix' );
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'snicar_snodst_intmix' );
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'snicar_use_aerosol' );
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'snicar_aerforc_diag' );
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'do_sno_oc' );
# Error checking
my $opt1 = 'snicar_snw_shape';
my $var1 = $nl->get_value($opt1);
my $sup1a = "'sphere'"; # supported value for this option
my $sup1b = "'hexagonal_plate'"; # supported value for this option
if (($var1 ne $sup1a) && ($var1 ne $sup1b)) {
$log->warning("$opt1=$sup1a and $sup1b are supported; $var1 is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!");
}
my $opt2 = 'snicar_solarspec';
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@slevis-lmwg and I talked about this and we'd like to change this into a loop for maintainability.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@slevis-lmwg there's an example of a warning inside a loop in check_megan_spec the subroutine.

An example of a dictionary in perl is the %opts hash. You then use the keys function inside a foreach loop

so something like...

     my %supportedSettings = ( 'thing' => '.false.' );
      foreach my $key (keys %supportedSettings) {
          if ( $nl->get_value($key) ne $supportedSettings{$key} ) {
               $log->warning("....");
          }
      }

my $var2 = $nl->get_value($opt2);
my $sup2 = "'mid_latitude_winter'"; # supported value for this option
if ($var2 ne $sup2) {
$log->warning("$opt2=$sup2 is the supported option; $var2 is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!");
}
my $opt3 = 'snicar_dust_optics';
my $var3 = $nl->get_value($opt3);
my $sup3 = "'sahara'"; # supported value for this option
if ($var3 ne $sup3) {
$log->warning("$opt3=$sup3 is the supported option; $var3 is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!");
}
my $opt4 = 'snicar_numrad_snw';
my $var4 = $nl->get_value($opt4);
my $sup4 = '5'; # supported value for this option
if ($var4 ne $sup4) {
$log->warning("$opt4=$sup4 is the supported option; $var4 is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!");
}
my $opt5 = 'snicar_snobc_intmix';
my $var5 = $nl->get_value($opt5);
my $sup5 = '.false.'; # supported value for this option
if ($var5 ne $sup5) {
$log->warning("$opt5=$sup5 is the supported option; $var5 is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!");
}
my $opt6 = 'snicar_snodst_intmix';
my $var6 = $nl->get_value($opt6);
my $sup6 = '.false.'; # supported value for this option
if ($var6 ne $sup6) {
$log->warning("$opt6=$sup6 is the supported option; $var6 is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!");
}
my $opt7 = 'snicar_use_aerosol';
my $var7 = $nl->get_value($opt7);
my $sup7 = '.true.'; # supported value for this option
if ($var7 ne $sup7) {
$log->warning("$opt7=$sup7 is the supported option; $var7 is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!");
}
my $opt8 = 'do_sno_oc';
my $var8 = $nl->get_value($opt8);
my $sup8 = '.false.'; # supported value for this option
if ($var8 ne $sup8) {
$log->warning("$opt8=$sup8 is the supported option; $var8 is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!");
}
# snicar_snobc_intmix and snicar_snodst_intmix cannot both be true
if (($var5 eq $var6) && ($var5 ne $sup5)) {
$log->warning("$opt5 = $var5 and $opt6 = $var6 do not work together!");
}
}

#-------------------------------------------------------------------------------

sub setup_logic_snow {
my ($opts, $nl_flags, $definition, $defaults, $nl) = @_;

add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fsnowoptics' );
my $numrad_snw = $nl->get_value('snicar_numrad_snw');
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fsnowoptics',
'snicar_numrad_snw' => $numrad_snw);
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fsnowaging' );
}

Expand Down
20 changes: 18 additions & 2 deletions bld/namelist_files/namelist_defaults_ctsm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1555,8 +1555,24 @@ use_crop=".true.">lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_mpasa1

<!-- SNICAR (SNow, ICe, and Aerosol Radiative model) datasets -->
<!-- *********** Resolution independent: *********** -->
<fsnowoptics >lnd/clm2/snicardata/snicar_optics_5bnd_c090915.nc</fsnowoptics>
<fsnowaging >lnd/clm2/snicardata/snicar_drdt_bst_fit_60_c070416.nc</fsnowaging>
<fsnowaging>lnd/clm2/snicardata/snicar_drdt_bst_fit_60_c070416.nc</fsnowaging>

<snicar_numrad_snw>5</snicar_numrad_snw>

<fsnowoptics snicar_numrad_snw="480">lnd/clm2/snicardata/snicar_optics_480bnd_c012422.nc</fsnowoptics>
<fsnowoptics snicar_numrad_snw="5" >lnd/clm2/snicardata/snicar_optics_5bnd_c013122.nc</fsnowoptics>

<snicar_snw_shape phys="clm5_1">hexagonal_plate</snicar_snw_shape>
<snicar_snw_shape phys="clm5_0">sphere</snicar_snw_shape>
<snicar_snw_shape phys="clm4_5">sphere</snicar_snw_shape>

<snicar_aerforc_diag >.false.</snicar_aerforc_diag>
<snicar_solarspec >mid_latitude_winter</snicar_solarspec>
<snicar_dust_optics >sahara</snicar_dust_optics>
<snicar_snodst_intmix>.false.</snicar_snodst_intmix>
<snicar_snobc_intmix >.false.</snicar_snobc_intmix>
<snicar_use_aerosol >.true.</snicar_use_aerosol>
<do_sno_oc >.false.</do_sno_oc>

<!-- Nitrogen deposition streams namelist defaults -->
<stream_year_first_ndep phys="clm4_5" use_cn=".true." sim_year_range="1850-2100" >2015</stream_year_first_ndep>
Expand Down
87 changes: 67 additions & 20 deletions bld/namelist_files/namelist_definition_ctsm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,54 @@ specify spatially variable soil thickness. If not present, use bottom
of soil column (nlevsoi).
</entry>

<entry id="snicar_numrad_snw" type="integer" category="clm_physics"
group="clm_inparm" valid_values="5,480" value="5" >
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's make an issue as a cleanup to move all of these into a snicar READ-Namelist subroutine and snicar's own namelist. This makes it more modular and able to be seperable from the rest of the code. Also the clm_inparm list is huge and hard to manage.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could go into #2177 or it's own issue.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

linking new issue #2204

number of wavelength bands used in SNICAR snow albedo calculation
(snicar_numrad_snw=5 is the only supported option; others are EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="snicar_solarspec" type="char*25" category="clm_physics"
group="clm_inparm" valid_values="mid_latitude_winter,mid_latitude_summer,sub_arctic_winter,sub_arctic_summer,summit_greenland_summer,high_mountain_summer" value="mid_latitude_winter" >
type of downward solar radiation spectrum for SNICAR snow albedo calculation
(snicar_solarspec='mid_latitude_winter' is the only supported option; others are EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="snicar_dust_optics" type="char*25" category="clm_physics"
group="clm_inparm" valid_values="sahara,san_juan_mtns_colorado,greenland" value="sahara" >
dust optics type for SNICAR snow albedo calculation
(snicar_dust_optics='sahara' is the only supported option; others are EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="snicar_snw_shape" type="char*25" category="clm_physics"
group="clm_inparm" valid_values="sphere,spheroid,hexagonal_plate,koch_snowflake" value="hexagonal_plate" >
snow grain shape used in SNICAR snow albedo calculation
(snicar_dust_optics='hexagonal_plate' is supported in ctsm5.1 and 'sphere' in older model versions; others are EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="snicar_use_aerosol" type="logical" category="clm_physics"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's make an issue to make these logical variables start with the CTSM "use_" prefix convention so you can readily see they are logical's. This is good for usability.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

linking new issue #2205

group="clm_inparm" value=".true.">
Toggle to turn on/off aerosol deposition flux in snow in SNICAR
(snicar_use_aerosol='.false.' is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="snicar_snobc_intmix" type="logical" category="clm_physics"
group="clm_inparm" value=".false." >
option to activate BC-snow internal mixing in SNICAR snow albedo calculation
(snicar_snobc_intmix='.true.' is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="snicar_snodst_intmix" type="logical" category="clm_physics"
group="clm_inparm" value=".false." >
option to activate dust-snow internal mixing in SNICAR snow albedo calculation
(snicar_snodst_intmix='.true.' is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="do_sno_oc" type="logical" category="clm_physics"
group="clm_inparm" value=".false." >
option to activate organic carbon (OC) in SNICAR snow albedo calculation
(do_sno_oc='.true.' is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="rooting_profile_method_water" type="integer" category="clm_physics"
group="rooting_profile_inparm" valid_values="0,1,2" >
Index of rooting profile for water
Expand Down Expand Up @@ -1065,13 +1113,13 @@ Maximum nitrification rate constant (1/s)
<entry id="use_extralakelayers" type="logical" category="physics"
group="clm_inparm" valid_values="" value=".false.">
Toggle to use 25 lake layers instead of 10
(extralaklayers=".true." is EXPERIMENTAL NOT SUPPORTED! Nor is it Tested!)
(extralaklayers=".true." is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="use_vichydro" type="logical" category="physics"
group="clm_inparm" valid_values="" value=".false.">
Toggle to turn on the VIC hydrologic parameterizations
(vichydro=".true." is EXPERIMENTAL NOT SUPPORTED!)
(vichydro=".true." is EXPERIMENTAL, UNSUPPORTED!)
</entry>

<entry id="use_crop" type="logical" category="physics"
Expand Down Expand Up @@ -1150,10 +1198,9 @@ DependsOnLatAndVeg - Arctic vegetation depends on latitude as above, but tempera
(only used when CN is on)
</entry>

<entry id="use_snicar_frc" type="logical" category="physics"
group="clm_inparm" valid_values="" value=".false.">
Toggle to turn on calculation of SNow and Ice Aerosol Radiation model (SNICAR) radiative forcing
(snicar_frc=".true." is EXPERIMENTAL NOT SUPPORTED!)
<entry id="snicar_aerforc_diag" type="logical" category="physics"
group="clm_inparm" value=".false.">
Toggle to turn on calculation of SNow and Ice Aerosol Radiation model (SNICAR) albedo forcing diagnostics for each aerosol species
</entry>

<entry id="use_noio" type="logical" category="default_settings"
Expand Down Expand Up @@ -1722,7 +1769,7 @@ to hydrologic variables (either TWS or ZWT)
<!-- Prescribed soil moisture -->
<entry id="use_soil_moisture_streams" type="logical" category="physics"
group="clm_inparm" valid_values="" value=".false.">
Toggle to turn on use of input prescribed soil moisture streams rather than have CLM prognose it (EXPERIMENTAL)
Toggle to turn on use of input prescribed soil moisture streams rather than have CLM prognose it (EXPERIMENTAL, UNSUPPORTED!)
slevis-lmwg marked this conversation as resolved.
Show resolved Hide resolved
</entry>

<entry id="stream_year_first_soilm" type="integer" category="datasets"
Expand Down Expand Up @@ -1771,7 +1818,7 @@ prescribed data.
<entry id="use_lai_streams" type="logical" category="physics"
group="clm_inparm" valid_values="" value=".false.">
Toggle to turn on use of LAI streams in place of the LAI on the surface dataset when using Satellite Phenology mode.
(EXPERIMENTAL and NOT tested)
(EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="stream_year_first_lai" type="integer" category="datasets"
Expand Down Expand Up @@ -2224,7 +2271,7 @@ Profile over which to distribute C and N coming from surface pools (leaves, stem
<entry id="no_frozen_nitrif_denitrif" type="logical" category="clm_vertcn"
group="clm_inparm" valid_values="" >
If true, no denitrification or nitrification in frozen soil layers.
(EXPERIMENTAL and NOT tested)
(EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="nfix_timeconst" type="real" category="clm_vertcn"
Expand Down Expand Up @@ -2303,13 +2350,13 @@ tests. This namelist flag bypasses this error-check.
group="clm_inparm" valid_values="" >
If TRUE, weight btran (vegetation soil moisture availability) by unfrozen layers only, assuming that vegetation
will allocate roots preferentially to the active layer.
(EXPERIMENTAL and NOT tested)
(EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="perchroot_alt" type="logical" category="clm_permafrost"
group="clm_inparm" valid_values="" >
If TRUE, weight btran (vegetation soil moisture availability) by the active layer, as defined by the greatest thaw depth over the current and prior years.
(EXPERIMENTAL and NOT tested)
(EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<!-- stress deciduous onset trigger -->
Expand Down Expand Up @@ -2345,7 +2392,7 @@ How much Carbon to initialize vegetation pools (leafc/frootc and storage) to whe
<entry id="CNratio_floating" type="logical" category="clm_nitrogen"
group="clm_nitrogen" value=".false.">
Flexible CN ratio used for Phenology
(EXPERIMENTAL and NOT tested)
(EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="reduce_dayl_factor" type="logical" category="clm_nitrogen"
Expand All @@ -2357,21 +2404,21 @@ How much Carbon to initialize vegetation pools (leafc/frootc and storage) to whe
<entry id="vcmax_opt" type="integer" category="clm_nitrogen"
group="clm_nitrogen" valid_values="0,3,4">
Vcmax calculation for Photosynthesis
vcmax_opt = 4 As for vcmax_opt=0, but using leafN, and exponential if tree (EXPERIMENTAL NOT TESTED!)
vcmax_opt = 4 As for vcmax_opt=0, but using leafN, and exponential if tree (EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
vcmax_opt = 3 Based on leafN and VCAD (used with Luna for crop and C4 vegetation)
vcmax_opt = 0 Based on canopy top and foilage Nitrogen limitation factor from params file (clm4.5)
</entry>

<entry id="CN_evergreen_phenology_opt" type="integer" category="clm_nitrogen"
group="clm_nitrogen" valid_values="0,1">
Evergreen phenology option for CNPhenology
(EXPERIMENTAL and NOT tested)
(EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="carbon_resp_opt" type="integer" category="clm_nitrogen"
group="clm_nitrogen" valid_values="0,1">
Carbon respiration option to burn off carbon when CN ratio is too high (do NOT use when FUN is on)
(EXPERIMENTAL and NOT tested)
(EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>


Expand Down Expand Up @@ -2429,7 +2476,7 @@ then don't fix aere (see ch4Mod.F90).
<entry id="allowlakeprod" type="logical" category="clm_methane"
group="ch4par_in" valid_values="" >
If TRUE, turn on methane biogeochemistry model for lake columns, using a simplified version of the CH4 submodel.
(EXPERIMENTAL)
(EXPERIMENTAL, UNSUPPORTED!)
</entry>

<entry id="usephfact" type="logical" category="clm_methane"
Expand All @@ -2448,7 +2495,7 @@ If TRUE, maintain constant soil carbon under lakes, and use the methane submodel
CO2 (via biological assimilation, decomposition, and methanogenesis) to CH4. If FALSE, transiently decompose initial
soil carbon stock based on soil carbon dataset. NOTE: if FALSE, a new transient source of C is added to the climate system,
so the coupled system will NOT conserve carbon in this mode if the methane model is coupled to the atmosphere.
(EXPERIMENTAL and NOT tested)
(EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="finundation_method" type="char*50" category="clm_methane"
Expand All @@ -2461,22 +2508,22 @@ ZWT_inversion ---- Use inversion of Prigent Satellite data to model ZWT
TWS_inversion ---- Use inversion of Prigent Satellite data to model TWS

Inversion options require additional data on fsurdat or use of stream_fldfilename_ch4finundated files.
(h2osfc option is EXPERIMENTAL and NOT tested)
(h2osfc option is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="usefrootc" type="logical" category="clm_methane"
group="ch4par_in" valid_values="" >
If TRUE, use the fine root carbon predicted by CN when calculating the aerenchyma area, rather than the parametrization
based on annual NPP, aboveground NPP fraction, and LAI.
(EXPERIMENTAL and NOT tested)
(EXPERIMENTAL, UNSUPPORTED, and UNTESTED!)
</entry>

<entry id="ch4offline" type="logical" category="clm_methane"
group="ch4par_in" valid_values="" >
If TRUE, run the methane submodel decoupled from the atmosphere. The atmospheric methane concentration is prescribed by
atmch4, the methane flux is not passed to the atmosphere, and the CO2 flux to the atmosphere is not adjusted for
net methane production. NOTE: Currently this must be TRUE.
(EXPERIMENTAL and NOT functional)
(EXPERIMENTAL, UNSUPPORTED, and NOT functional!)
</entry>

<!-- ======================================================================================== -->
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
use_snicar_frc = .true.
snicar_aerforc_diag = .true.
Loading
Loading