diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index 3b169159b8..6c06a46cea 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -747,14 +747,13 @@ sub setup_cmdl_fates_mode { # want to set a catch to fail and warn users if they explicitly set incompatible user namelist # options -# my $var = "use_somevar"; -# $val = $nl_flags->{$var}; -# if ( defined($nl->get_value($var)) ) { -# if ( &value_is_true($nl->get_value($var)) ) { -# $log->fatal_error("$var was set to .true., which is incompatible when -bgc fates option is used."); -# } -# } - + my $var = "use_crop"; + $val = $nl_flags->{$var}; + if ( defined($nl->get_value($var)) ) { + if ( &value_is_true($nl->get_value($var)) ) { + $log->fatal_error("$var was set to .true., which is incompatible when -bgc fates option is used."); + } + } # The following variables may be set by the user and are compatible with use_fates # no need to set defaults, covered in a different routine @@ -870,12 +869,13 @@ sub setup_cmdl_bgc { my $var = "soil_decomp_method"; add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, 'phys'=>$nl_flags->{'phys'}, 'use_cn'=>$nl_flags->{'use_cn'}, 'use_fates'=>$nl_flags->{'use_fates'} ); + my $soil_decomp_method = remove_leading_and_trailing_quotes( $nl->get_value( $var ) ); if ( &value_is_true($nl_flags->{'use_cn'}) || &value_is_true($nl_flags->{'use_fates'})) { - if ( remove_leading_and_trailing_quotes( $nl->get_value($var)) eq "None" ) { + if ( $soil_decomp_method eq "None" ) { $log->fatal_error("$var must NOT be None if use_cn or use_fates are on"); } - } elsif ( remove_leading_and_trailing_quotes($nl->get_value($var)) ne "None" ) { + } elsif ( $soil_decomp_method ne "None" ) { $log->fatal_error("$var must be None if use_cn or use_fates are not"); } # @@ -885,13 +885,13 @@ sub setup_cmdl_bgc { my %settings = ( 'bgc_mode'=>$nl_flags->{'bgc_mode'} ); foreach my $var ( @list ) { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, - 'phys'=>$nl_flags->{'phys'}, 'use_cn'=>$nl_flags->{'use_cn'}, 'use_fates'=>$nl_flags->{'use_fates'} ); + 'phys'=>$nl_flags->{'phys'}, 'soil_decomp_method'=>$soil_decomp_method ); $nl_flags->{$var} = $nl->get_value($var); } - if ( remove_leading_and_trailing_quotes( $nl->get_value($var)) eq "None" ) { + if ( $soil_decomp_method eq "None" ) { foreach my $var ( @list ) { if ( &value_is_true($nl_flags->{$var}) ) { - $log->fatal_error("When soil_decomp_method is NONE $var can NOT be TRUE"); + $log->fatal_error("When soil_decomp_method is None $var can NOT be TRUE"); } } } else { @@ -1304,9 +1304,10 @@ sub setup_cmdl_vichydro { $var = "use_vichydro"; $val = $nl->get_value($var); + my $set = undef; if ($nl_flags->{'vichydro'} eq 1) { my $group = $definition->get_group_name($var); - my $set = ".true."; + $set = ".true."; if ( defined($val) && $set ne $val ) { $log->fatal_error("$var contradicts the command-line -vichydro option" ); } @@ -1315,7 +1316,10 @@ sub setup_cmdl_vichydro { my @valid_values = $definition->get_valid_values( $var ); $log->fatal_error("$var has a value ($val) that is NOT valid. Valid values are: @valid_values"); } + } else { + $set = ".false."; } + $nl_flags->{$var} = $set; } @@ -2165,6 +2169,7 @@ sub setup_logic_demand { $settings{'hgrid'} = $nl_flags->{'res'}; $settings{'sim_year'} = $nl_flags->{'sim_year'}; $settings{'sim_year_range'} = $nl_flags->{'sim_year_range'}; + $settings{'use_vichydro'} = $nl_flags->{'use_vichydro'}; $settings{'mask'} = $nl_flags->{'mask'}; $settings{'crop'} = $nl_flags->{'crop'}; $settings{'ssp_rcp'} = $nl_flags->{'ssp_rcp'}; @@ -2202,7 +2207,22 @@ sub setup_logic_demand { if ( $item eq "finidat" ) { $log->fatal_error( "Do NOT put findat in the clm_demand list, set the clm_start_type=startup so initial conditions are required"); } + # For landuse.timeseries try with crop and irrigate on first, if found use it, otherwise try with exact settings + # Logic for this is identical for fsurdat + if ( $item eq "flanduse_timeseries" ) { + $settings{'irrigate'} = ".true."; + $settings{'use_crop'} = ".true."; + $settings{'nofail'} = 1; + } add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $item, %settings ); + if ( $item eq "flanduse_timeseries" ) { + $settings{'nofail'} = 0; + $settings{'irrigate'} = $nl_flags->{'irrigate'}; + $settings{'use_crop'} = $nl_flags->{'use_crop'}; + if ( ! defined($nl->get_value( $item )) ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $item, %settings ); + } + } } } @@ -2231,10 +2251,27 @@ sub setup_logic_surface_dataset { if ($flanduse_timeseries ne "null" && &value_is_true($nl_flags->{'use_cndv'}) ) { $log->fatal_error( "dynamic PFT's (setting flanduse_timeseries) are incompatible with dynamic vegetation (use_cndv=.true)." ); } - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fsurdat', - 'hgrid'=>$nl_flags->{'res'}, 'ssp_rcp'=>$nl_flags->{'ssp_rcp'}, - 'sim_year'=>$nl_flags->{'sim_year'}, 'irrigate'=>$nl_flags->{'irrigate'}, - 'use_crop'=>$nl_flags->{'use_crop'}, 'glc_nec'=>$nl_flags->{'glc_nec'}); + # + # Always get the crop version of the datasets now and let the code turn it into the form desired + # Provided this isn't with FATES on + # + my $var = "fsurdat"; + if ( ! &value_is_true($nl_flags->{'use_fates'}) ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + 'hgrid'=>$nl_flags->{'res'}, 'ssp_rcp'=>$nl_flags->{'ssp_rcp'}, + 'sim_year'=>$nl_flags->{'sim_year'}, 'irrigate'=>".true.", 'use_vichydro'=>$nl_flags->{'use_vichydro'}, + 'use_crop'=>".true.", 'glc_nec'=>$nl_flags->{'glc_nec'}, 'nofail'=>1); + } + # If didn't find the crop version check for the exact match + if ( ! defined($nl->get_value($var) ) ) { + if ( ! &value_is_true($nl_flags->{'use_fates'}) ) { + $log->verbose_message( "Crop version of $var NOT found, searching for an exact match" ); + } + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + 'hgrid'=>$nl_flags->{'res'}, 'ssp_rcp'=>$nl_flags->{'ssp_rcp'}, 'use_vichydro'=>$nl_flags->{'use_vichydro'}, + 'sim_year'=>$nl_flags->{'sim_year'}, 'irrigate'=>$nl_flags->{'irrigate'}, + 'use_crop'=>$nl_flags->{'use_crop'}, 'glc_nec'=>$nl_flags->{'glc_nec'}); + } } #------------------------------------------------------------------------------- @@ -2919,7 +2956,7 @@ sub setup_logic_hydrology_switches { } # Test bad configurations my $lower = $nl->get_value( 'lower_boundary_condition' ); - my $use_vic = $nl->get_value( 'use_vichydro' ); + my $use_vic = $nl_flags->{'use_vichydro'}; my $use_bed = $nl->get_value( 'use_bedrock' ); my $soilmtd = $nl->get_value( 'soilwater_movement_method' ); if ( defined($soilmtd) && defined($lower) && $soilmtd == 0 && $lower != 4 ) { diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index 02e6860bc8..8a10a96ebf 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -101,11 +101,9 @@ attributes from the config_cache.xml file (with keys converted to upper-case). .false. -Medlyn2011 -Ball-Berry1987 -Medlyn2011 -Ball-Berry1987 -Ball-Berry1987 +Medlyn2011 +Medlyn2011 +Ball-Berry1987 lnd/clm2/isotopes/atm_delta_C13_CMIP6_1850-2015_yearly_v2.0_c190528.nc @@ -483,7 +481,7 @@ attributes from the config_cache.xml file (with keys converted to upper-case). -lnd/clm2/paramdata/ctsm51_params.c210803.nc +lnd/clm2/paramdata/ctsm51_params.c210923.nc lnd/clm2/paramdata/clm50_params.c210803.nc lnd/clm2/paramdata/clm45_params.c210803.nc @@ -1043,13 +1041,19 @@ p lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_48x96_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc - + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr2000_c190304.nc + lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr2000_c190304.nc lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_4x5_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc - + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_10x15_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc + lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_10x15_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc @@ -1080,13 +1084,13 @@ lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C96_hist_78pfts_CMIP6_simyr2000 lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C48_hist_78pfts_CMIP6_simyr2000_c200317.nc lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C24_hist_78pfts_CMIP6_simyr2000_c200317.nc - + lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr2000_c190214.nc - + lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_1.9x2.5_hist_78pfts_CMIP6_simyr2000_c190304.nc lnd/clm2/surfdata_map/release-clm5.0.24/surfdata_0.125x0.125_hist_78pfts_CMIP6_simyr2005_c190624.nc - + lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_10x15_hist_78pfts_CMIP6_simyr2000_c190214.nc lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_4x5_hist_78pfts_CMIP6_simyr2000_c190214.nc @@ -1198,11 +1202,17 @@ lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne0np4.CONUS.ne30x8_hist_78pfts -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc +lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc +lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc +lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc lnd/clm2/surfdata_map/landuse.timeseries_4x5_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc @@ -1219,11 +1229,11 @@ lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne0np4.CONUS.ne30x8_hist_78pfts -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc lnd/clm2/surfdata_map/landuse.timeseries_4x5_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc @@ -2527,15 +2537,14 @@ lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne0np4.CONUS.ne30x8_hist_78pfts -.false. -.true. -.false. CENTURYKoven2013 CENTURYKoven2013 None -.false. -.true. -.false. + +.false. +.true. +.false. +.true. 0 diff --git a/bld/namelist_files/use_cases/1850_noanthro_control.xml b/bld/namelist_files/use_cases/1850_noanthro_control.xml index 59d06b83b5..636164a729 100644 --- a/bld/namelist_files/use_cases/1850_noanthro_control.xml +++ b/bld/namelist_files/use_cases/1850_noanthro_control.xml @@ -54,7 +54,7 @@ .false. -0.0 -0.0 +0.0 +0.0 diff --git a/bld/unit_testers/build-namelist_test.pl b/bld/unit_testers/build-namelist_test.pl index 21b7ccf4af..cfcd0abe5d 100755 --- a/bld/unit_testers/build-namelist_test.pl +++ b/bld/unit_testers/build-namelist_test.pl @@ -163,9 +163,9 @@ sub cat_and_create_namelistinfile { # # Figure out number of tests that will run # -my $ntests = 1839; +my $ntests = 1843; if ( defined($opts{'compare'}) ) { - $ntests += 1251; + $ntests += 1254; } plan( tests=>$ntests ); @@ -462,6 +462,7 @@ sub cat_and_create_namelistinfile { "-bgc sp -use_case 2000_control -res 0.9x1.25 -namelist '&a use_soil_moisture_streams = T/'", "-bgc bgc -use_case 1850-2100_SSP5-8.5_transient -namelist '&a start_ymd=19101023/'", "-bgc bgc -use_case 2000_control -namelist \"&a fire_method='nofire'/\" -crop", + "-res 0.9x1.25 -bgc sp -use_case 1850_noanthro_control -drydep -fire_emis", "-res 0.9x1.25 -bgc bgc -use_case 1850_noanthro_control -drydep -fire_emis -light_res 360x720", ) { my $file = $startfile; @@ -638,12 +639,6 @@ sub cat_and_create_namelistinfile { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - # This one should fail now, because we don't have non irrigated non-crop datasets - "-irrigate=F without -crop" =>{ options=>"-bgc bgc -no-crop -envxml_dir .", - namelst=>"irrigate=.false.", - GLC_TWO_WAY_COUPLING=>"FALSE", - phys=>"clm4_5", - }, "grainproductWOcrop" =>{ options=>"-bgc bgc -no-crop -envxml_dir .", namelst=>"use_grainproduct=.true.", GLC_TWO_WAY_COUPLING=>"FALSE", @@ -944,6 +939,11 @@ sub cat_and_create_namelistinfile { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, + "useFATESWcrop" =>{ options=>"-bgc fates -envxml_dir . -no-megan -crop", + namelst=>"", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, "useFATESWcreatecrop" =>{ options=>"-bgc fates -envxml_dir . -no-megan", namelst=>"create_crop_landunit=.true.", GLC_TWO_WAY_COUPLING=>"FALSE", diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 3630c098a1..342329a329 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -614,7 +614,7 @@ - + diff --git a/cime_config/testdefs/testmods_dirs/clm/smallville_dynlakes_monthly/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/smallville_dynlakes_monthly/user_nl_clm index fea34bced5..923abcdaec 100644 --- a/cime_config/testdefs/testmods_dirs/clm/smallville_dynlakes_monthly/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/smallville_dynlakes_monthly/user_nl_clm @@ -6,9 +6,3 @@ do_transient_lakes = .true. ! PCT_CROP is also changed so that PCT_LAKE + PCT_CROP <= 100. (Here, PCT_CROP increases and decreases at the same time as PCT_LAKE in order to exercise the simultaneous increase or decrease of two landunits, but that isn't a critical part of this test.) ! Note that the use of this file means that this testmod can only be used with the 1x1_smallvilleIA grid. flanduse_timeseries = '$DIN_LOC_ROOT/lnd/clm2/surfdata_map/landuse.timeseries_1x1_smallvilleIA_hist_78pfts_simyr1850-1855_dynLakes_c200928.nc' - -! BUG(wjs, 2020-09-25, ESCOMP/CTSM#43) Dynamic lakes don't work when methane is active, -! so for now disable methane for this test. -! This also requires use_nitrif_denitrif to be off as well -use_lch4 = .false. -use_nitrif_denitrif = .true. diff --git a/doc/ChangeLog b/doc/ChangeLog index 691a4b908e..b1fb1aaf5d 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,4 +1,129 @@ =============================================================== +Tag name: ctsm5.1.dev058 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Thu Oct 7 20:47:14 MDT 2021 +One-line Summary: Some miscellaneous small answer changes + +Purpose and description of changes +---------------------------------- + +Change ceta from 450 to 358 for CTSM5.1 See Leo VanKamenhout's work on this in +https://github.com/ESCOMP/CTSM/pull/250. Note, this is used in the PPE work. +See van Kampenhout et al. (2017). Turn Medlyn on for PHS off for clm51 and clm50. +Make max CO2 partial pressure consistent in Photosynthesis. +Change surface datasets to only use 78PFT versions +Fix GSSUN and GSSHA history variables so now not just writing missing values. +Changes FATES to run with use_nitrif_dentrif=T by default. Change dynlakes test +to methane/use_nitrif_=T. + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? +(Details of any changes will be given in the "Answer changes" section below.) + + [Put an [X] in the box for any configuration with significant answer changes.] + +[x] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): + Fixes #1504 -- Transient Sp cases fail when using mismatched crop surface/landuse-timeseries datasets #1504 + Fixes #1503 -- VIC cases can't use crop surface datasets because of missing vic data #1503 + Fixes #1462 -- GSSUN and GSSHA are not set on history files #1462 + Fixes #1394 -- Max partial pressure of CO2 be should be 1.e-6 rather than 10.e-6 which it is for ci_func_PHS #1394 + Fixes #1460 -- Initialize t_soisno to 272K instead of 274K to avoid deep soil carbon in permafrost regions #1460 + Fixes #1465 -- Change FATES to run with use_nitrif_dentrif TRUE #1465 + Worked on #1356 -- Remove the CN (non CENTURY) version of Carbon-Nitrogen soil biogeochemistry code and its testing #1356 + Fixes #1496 -- SP NoAnthro case fails... #1496 + +Notes of particular relevance for users +--------------------------------------- + +Changes made to namelist defaults (e.g., changed parameter values): + stomatalcond_method is now Medlyn2011 for clm5_0 and clm5_1 + use_nitrif_denitrif is now TRUE when using FATES + +Changes to the datasets (e.g., parameter, surface or initial files): + New parameter file for clm5_1 (changes ceta) + +Notes of particular relevance for developers: +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + Surface datasets are now labeled with use_vichydro=TRUE in the xml. This also means that some files + listed in the XML are listed twice for VIC both on and off (that's important for FATES since it still + requires non-crop datasets (see #1505) + + Also the logic for finding both fsurdat and flanduse_timeseries files needs to be the same in first + asking for a crop version and then an exact match if it isn't found (unless it's FATES and then you just + do the exact match). + +Changes to tests or testing: + Dynamic lakes test now has methane on, which works because we turn off methane conservation check after restart + See #43 for more information on this. + + +Testing summary: regular +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + build-namelist tests (if CLMBuildNamelist.pm has changed): + + cheyenne - OK (306 tests different than baseline) + + python testing (if python code has changed; see instructions in python/README.md; document testing done): + + cheyenne - PASS + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: previous + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes + + Summarize any changes to answers, i.e., + - what code configurations: Most + - what platforms/compilers: all + - nature of change: + similar climate most changes are near roundoff level + + All clm5_1 physics change answers because of change in ceta parameter. + When PHS off for clm5_1 and clm5_0 changes answers because of Medlyn photosynthesis over Ball-Berry. + Photosynthesis potentially changes all the time because a maximum parameter was off. + Answer should be close to roundoff for Sp and Bgc cases without Crop because we now use crop surface datasets. + FATES changes answers since user_nitrif_dentrif is now on by default + COLDSTART BGC cases will change answers because of a change in initial soil temperature + clm4_5 and clm5_0 vichydro results are identical + clm4_5 and clm5_0 single point urban tests are identical + Some tests are still identical mostly crop-cases non-cold-start + In some cases GSSUN and GSSHA will be different. + +Other details +------------- + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + + #1497 -- Miscellaneous small answer changes + +=============================================================== +=============================================================== Tag name: ctsm5.1.dev057 Originator(s): Sam Rabin Date: Mon Sep 20 10:07:26 MDT 2021 diff --git a/doc/ChangeSum b/doc/ChangeSum index eb50772bc5..6c2d4103f7 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,5 +1,6 @@ Tag Who Date Summary ============================================================================================================================ + ctsm5.1.dev058 erik 10/07/2021 Some miscellaneous small answer changes ctsm5.1.dev057 samrabin 09/20/2021 Consolidate duplicated crop phenology code ctsm5.1.dev056 glemieux 09/17/2021 FATES Satellite Phenology mode implemented ctsm5.1.dev055 slevis 09/10/2021 Updates to master_list_file.rst diff --git a/src/biogeophys/PhotosynthesisMod.F90 b/src/biogeophys/PhotosynthesisMod.F90 index f57dee019a..5b2c68a0fb 100644 --- a/src/biogeophys/PhotosynthesisMod.F90 +++ b/src/biogeophys/PhotosynthesisMod.F90 @@ -1898,17 +1898,13 @@ subroutine Photosynthesis ( bounds, fn, filterp, & end if ! - ! Turn this off right now as it causes an apparant change in - ! answers (See ESCOMP/#CTSM/1446) for history variables ! This sets the variables GSSUN and GSSHA ! - if ( .false. )then - ! Write stomatal conductance to the appropriate phase - if (phase=='sun') then - gs_mol_sun(p,iv) = gs_mol(p,iv) - else if (phase=='sha') then - gs_mol_sha(p,iv) = gs_mol(p,iv) - end if + ! Write stomatal conductance to the appropriate phase + if (phase=='sun') then + gs_mol_sun(p,iv) = gs_mol(p,iv) + else if (phase=='sha') then + gs_mol_sha(p,iv) = gs_mol(p,iv) end if ! Use time period 1 hour before and 1 hour after local noon inclusive (11AM-1PM) @@ -4245,7 +4241,6 @@ subroutine ci_func_PHS(x,cisun, cisha, fvalsun, fvalsha, p, iv, c, bsun, bsha, b real(r8) :: aquad, bquad, cquad ! terms for quadratic equations real(r8) :: r1, r2 ! roots of quadratic equation real(r8) :: term ! intermediate in Medlyn stomatal model - real(r8), parameter :: max_cs = 10.e-06_r8 ! Max CO2 partial pressure at leaf surface (Pa) for PHS ! !------------------------------------------------------------------------------ diff --git a/src/biogeophys/TemperatureType.F90 b/src/biogeophys/TemperatureType.F90 index f3a940dcb9..f2d9317f82 100644 --- a/src/biogeophys/TemperatureType.F90 +++ b/src/biogeophys/TemperatureType.F90 @@ -732,7 +732,7 @@ subroutine InitCold(this, bounds, & end if else if (col%itype(c) == icol_road_perv .or. col%itype(c) == icol_road_imperv) then - this%t_soisno_col(c,1:nlevgrnd) = 274._r8 + this%t_soisno_col(c,1:nlevgrnd) = 272._r8 else if (col%itype(c) == icol_sunwall .or. col%itype(c) == icol_shadewall & .or. col%itype(c) == icol_roof) then ! Set sunwall, shadewall, roof to fairly high temperature to avoid initialization