Skip to content

Commit

Permalink
Complete build-namelist work needed for ESCOMP#2103 and ESCOMP#2028 h…
Browse files Browse the repository at this point in the history
…aving res be CLM_USRDAT when clm_usr_name option is set and setting fsurdat and flanduse in namelist defaults for NEON sites
  • Loading branch information
ekluzek committed Aug 14, 2023
1 parent df4c392 commit 7f2475c
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 8 deletions.
13 changes: 9 additions & 4 deletions bld/CLMBuildNamelist.pm
Original file line number Diff line number Diff line change
Expand Up @@ -684,18 +684,22 @@ sub setup_cmdl_resolution {
$val = &quote_string( $nl_flags->{'res'} );
if ( ! $definition->is_valid_value( $var, $val ) ) {
my @valid_values = $definition->get_valid_values( $var );
if ( ! defined($opts->{'clm_usr_name'}) || $nl_flags->{'res'} ne $opts->{'clm_usr_name'} ) {
if ( $nl_flags->{'res'} ne "CLM_USRDAT" ) {
$log->fatal_error("$var has a value ($val) that is NOT valid. Valid values are: @valid_values");
}
}
}
# For NEON sites
$nl_flags->{'neon'} = ".false.";
$nl_flags->{'neonsite'} = "";
if ( $nl_flags->{'res'} eq "CLM_USRDAT" ) {
if ( ! defined($opts->{'clm_usr_name'}) ) {
$log->fatal_error("Resolution is CLM_USRDAT, but --clm_usr_name option is NOT set, and it is required for CLM_USRDAT resolutions");
}
}
#
# For NEON sites
#
$nl_flags->{'neon'} = ".false.";
$nl_flags->{'neonsite'} = "";
if ( $nl_flags->{'res'} eq "CLM_USRDAT" ) {
if ( $opts->{'clm_usr_name'} eq "NEON" ) {
$nl_flags->{'neon'} = ".true.";
$nl_flags->{'neonsite'} = $envxml_ref->{'NEONSITE'};
Expand Down Expand Up @@ -2263,6 +2267,7 @@ sub setup_logic_demand {
$settings{'use_lch4'} = $nl_flags->{'use_lch4'};
$settings{'use_nitrif_denitrif'} = $nl_flags->{'use_nitrif_denitrif'};
$settings{'use_crop'} = $nl_flags->{'use_crop'};
$settings{'neon'} = $nl_flags->{'neon'};

my $demand = $nl->get_value('clm_demand');
if (defined($demand)) {
Expand Down
6 changes: 6 additions & 0 deletions bld/namelist_files/namelist_defaults_ctsm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1288,6 +1288,12 @@ lnd/clm2/surfdata_map/NEON/surfdata_1x1_NEON_TOOL_hist_78pfts_CMIP6_simyr2000_c2

<!-- Dynamic PFT surface datasets (relative to {csmdata}) -->

<!-- When NEON landuse datasets are available uncomment the following for something like this...
Also change the setting for clm_demand in the namelist_defaults_overall.xml file
<flanduse_timeseries hgrid="CLM_USRDAT" neon=".true." sim_year_range="1850-2100">
>lnd/clm2/surfdata_map/NEON/landuse.timeseries_NEON_${NEONSITE}_hist_78pfts_simyr2018-2023_c230931.nc</flanduse_timeseries>
-->

<flanduse_timeseries hgrid="0.9x1.25" sim_year_range="1850-2000" irrigate=".true." use_vichydro=".true."
use_crop=".false." >lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc</flanduse_timeseries>
<flanduse_timeseries hgrid="0.9x1.25" sim_year_range="1850-2000" irrigate=".true."
Expand Down
6 changes: 4 additions & 2 deletions bld/namelist_files/namelist_defaults_overall.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ determine default values for namelists.


<!-- For transient cases, turn on demand to set flanduse_timeseries -->
<clm_demand sim_year_range="1850-2000">flanduse_timeseries</clm_demand>
<clm_demand sim_year_range="1850-2100">flanduse_timeseries</clm_demand>
<clm_demand sim_year_range="1850-2100" neon=".true." >null</clm_demand> <!-- NEON sites don't have transient PFT datasets yet -->
<clm_demand sim_year_range="constant" >null</clm_demand>
<clm_demand sim_year_range="1850-2000" >flanduse_timeseries</clm_demand>
<clm_demand sim_year_range="1850-2100" >flanduse_timeseries</clm_demand>


<!-- Default location of {csmdata} -->
Expand Down
6 changes: 5 additions & 1 deletion bld/namelist_files/use_cases/2018-PD_transient.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
<?xml version="1.0"?>

<!-- This use-case is mainly in use for NEON sites -->

<namelist_defaults>

<use_case_desc>Simulate transient land-use, and aerosol deposition changes from 2018 to current day with a mix of historical data, and future scenario data</use_case_desc>
<use_case_desc use_cn=".true.">Simulate transient Nitrogen-deposition, aerosol deposition, urban, and fire related (pop-density, lightning) changes from 2018 to current day with a mix of historical data, and future scenario data</use_case_desc>
<use_case_desc use_cn=".false." use_fates=".true.">Simulate transient Nitrogen-deposition, aerosol deposition, urban, and fire related (pop-density, lightning) changes from 2018 to current day with a mix of historical data, and future scenario data</use_case_desc>
<use_case_desc use_cn=".false." use_fates=".false.">Simulate transient urban and aerosol deposition changes from 2018 to current day with a mix of historical data, and future scenario data</use_case_desc>

<!-- Have a minimal list of things set here, sim_year, sim_year_range, and ssp_rcp, other things should be dependent on these and
set in a namelist_defaults xml file -->
Expand Down
3 changes: 3 additions & 0 deletions bld/namelist_files/use_cases/2018_control.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
<?xml version="1.0"?>


<!-- This use-case is mainly in use for NEON sites -->

<namelist_defaults>

<use_case_desc>Conditions to simulate 2018 land-use</use_case_desc>
Expand Down
2 changes: 1 addition & 1 deletion bld/unit_testers/build-namelist_test.pl
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ sub cat_and_create_namelistinfile {
#
# Now run the site
#
my $options = "-res CLM_USRDAT -clm_usr_name NEON -no-megan -bgc bgc -sim_year 2018 -infile $namelistfile";
my $options = "--res CLM_USRDAT --clm_usr_name NEON --no-megan --bgc bgc --use_case 2018_control --infile $namelistfile";
eval{ system( "$bldnml -envxml_dir . $options > $tempfile 2>&1 " ); };
is( $@, '', "options: $options" );
$cfiles->checkfilesexist( "$options", $mode );
Expand Down

0 comments on commit 7f2475c

Please sign in to comment.