diff --git a/.gitmodules b/.gitmodules index c1414bf042..4cf2b13fd0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -36,7 +36,7 @@ fxDONOTUSEurl = https://github.com/NGEET/fates [submodule "cism"] path = components/cism url = https://github.com/ESCOMP/CISM-wrapper -fxtag = cismwrap_2_2_005 +fxtag = cismwrap_2_2_006 fxrequired = ToplevelRequired # Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed fxDONOTUSEurl = https://github.com/ESCOMP/CISM-wrapper @@ -68,7 +68,7 @@ fxDONOTUSEurl = https://github.com/ESCOMP/mizuRoute [submodule "ccs_config"] path = ccs_config url = https://github.com/ESMCI/ccs_config_cesm.git -fxtag = ccs_config_cesm1.0.23 +fxtag = ccs_config_cesm1.0.43 fxrequired = ToplevelRequired # Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed fxDONOTUSEurl = https://github.com/ESMCI/ccs_config_cesm.git @@ -76,7 +76,7 @@ fxDONOTUSEurl = https://github.com/ESMCI/ccs_config_cesm.git [submodule "cime"] path = cime url = https://github.com/ESMCI/cime -fxtag = cime6.1.72 +fxtag = cime6.1.102 fxrequired = ToplevelRequired # Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed fxDONOTUSEurl = https://github.com/ESMCI/cime @@ -84,7 +84,7 @@ fxDONOTUSEurl = https://github.com/ESMCI/cime [submodule "cmeps"] path = components/cmeps url = https://github.com/ESCOMP/CMEPS.git -fxtag = cmeps1.0.39 +fxtag = cmeps1.0.47 fxrequired = ToplevelRequired # Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed fxDONOTUSEurl = https://github.com/ESCOMP/CMEPS.git @@ -92,7 +92,7 @@ fxDONOTUSEurl = https://github.com/ESCOMP/CMEPS.git [submodule "cdeps"] path = components/cdeps url = https://github.com/ESCOMP/CDEPS.git -fxtag = cdeps1.0.70 +fxtag = cdeps1.0.73 fxrequired = ToplevelRequired # Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed fxDONOTUSEurl = https://github.com/ESCOMP/CDEPS.git @@ -108,7 +108,7 @@ fxDONOTUSEurl = https://github.com/ESCOMP/CESM_share [submodule "parallelio"] path = libraries/parallelio url = https://github.com/NCAR/ParallelIO -fxtag = pio2_6_3 +fxtag = pio2_6_4 fxrequired = ToplevelRequired # Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed fxDONOTUSEurl = https://github.com/NCAR/ParallelIO @@ -116,7 +116,7 @@ fxDONOTUSEurl = https://github.com/NCAR/ParallelIO [submodule "mpi-serial"] path = libraries/mpi-serial url = https://github.com/ESMCI/mpi-serial -fxtag = MPIserial_2.5.1 +fxtag = MPIserial_2.5.4 fxrequired = ToplevelRequired # Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed fxDONOTUSEurl = https://github.com/ESMCI/mpi-serial @@ -128,3 +128,13 @@ fxtag = v2.2.6 fxrequired = ToplevelOptional # Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed fxDONOTUSEurl = https://github.com/ESMCI/doc-builder + +# FTorch is an optional library useful for AI and Machine Learning +# In order to use it -- it must be checked out with git-fleximod +[submodule "FTorch"] +path = libraries/FTorch +url = https://github.com/ESCOMP/FTorch_interface +fxtag = v0.0.5 +fxrequired = ToplevelOptional +# Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed +fxDONOTUSEurl = https://github.com/ESCOMP/FTorch_interface diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index f7c5299070..408ff9b573 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -4043,6 +4043,7 @@ sub setup_logic_dry_deposition { if ($opts->{'drydep'} ) { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'drydep_list'); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'dep_data_file'); + &remove_newlines( $nl, $definition, "drydep_list" ); } if ( &value_is_true( $nl_flags->{'use_fates'}) ) { foreach my $var ( @list ) { @@ -4174,6 +4175,7 @@ sub setup_logic_megan { $log->fatal_error("MEGAN can NOT be on when FATES is also on.\n" . " Use the '-no-megan' option when '-bgc fates' is activated"); } + &remove_newlines( $nl, $definition, "megan_specifier" ); } } @@ -5743,7 +5745,21 @@ sub quote_string { $str = "\'$str\'"; } return $str; - } +} + +#------------------------------------------------------------------------------- + +sub remove_newlines { + # Check for and remove line returns in the string, so that it will validate later + my ($nl, $definition, $var) = @_; + + my $value = $nl->get_value($var); + if ( $value =~ /\n/) { + $value =~ s/\n//g; + my $group = $definition->get_group_name($var); + $nl->set_variable_value($group, $var, $value); + } +} #------------------------------------------------------------------------------- diff --git a/bld/namelist_files/namelist_defaults_drydep.xml b/bld/namelist_files/namelist_defaults_drydep.xml index 2ca89e4620..d38e93bd5d 100644 --- a/bld/namelist_files/namelist_defaults_drydep.xml +++ b/bld/namelist_files/namelist_defaults_drydep.xml @@ -15,15 +15,51 @@ attributes from the config_cache.xml file (with keys converted to upper-case). -'O3','NO2','HNO3','NO','HO2NO2','CH3OOH','CH2O','CO','H2O2','CH3COOOH','PAN','MPAN','C2H5OOH','ONIT','POOH','C3H7OOH','ROOH','CH3COCHO','CH3COCH3','Pb','ONITR','MACROOH','XOOH','ISOPOOH','CH3OH','C2H5OH','CH3CHO','GLYALD','HYAC','HYDRALD','ALKOOH','MEKOOH','TOLOOH','TERPOOH','CH3COOH','CB1','CB2','OC1','OC2','SOA','SO2','SO4','NH3','NH4NO3' +'BIGALK','C2H4','C2H5OH','C2H5OOH','C2H6','C3H6', + 'C3H7OOH','C3H8','CH2O','CH3CHO','CH3COCH3','CH3COCHO','CH3COOH', + 'CH3COOOH','CH3OH','CH3OOH','CO','DMS','EOOH','GLYALD','GLYOXAL', + 'H2O2','H2SO4','HNO3','HO2NO2','HYAC','HYDRALD','ISOP','ISOPOOH', + 'MACR','MACROOH','MPAN','MVK','N2O5','NH3','NH4','NO','NO2', + 'NOA','O3','O3S','ONITR','PAN','POOH','ROOH','SO2','SOAG','XOOH' -atm/cam/chem/trop_mozart/dvel/dep_data_c201019.nc +atm/cam/chem/trop_mozart/dvel/dep_data_c20221208.nc - + -'ISOP = isoprene', 'C10H16 = pinene_a + carene_3 + thujene_a', 'CH3OH = methanol', 'C2H5OH = ethanol', 'CH2O = formaldehyde', 'CH3CHO = acetaldehyde', 'CH3COOH = acetic_acid', 'CH3COCH3 = acetone' + +'ISOP = isoprene', +'TERP = carene_3 + pinene_a + thujene_a + bornene + terpineol_4 + terpineol_a + terpinyl_ACT_a +', + ' myrtenal + sabinene + pinene_b + camphene + fenchene_a + limonene + phellandrene_a + terpinene_a +', + ' terpinene_g + terpinolene + phellandrene_b + linalool + ionone_b + geranyl_acetone + neryl_acetone +', + ' jasmone + verbenene + ipsenol + myrcene + ocimene_t_b + ocimene_al + ocimene_c_b + 2met_nonatriene +', + ' farnescene_a + caryophyllene_b + acoradiene + aromadendrene + bergamotene_a + bergamotene_b +', + ' bisabolene_a + bisabolene_b + bourbonene_b + cadinene_d + cadinene_g + cedrene_a + copaene_a +', + ' cubebene_a + cubebene_b + elemene_b + farnescene_b + germacrene_B + germacrene_D + gurjunene_b +', + ' humulene_a + humulene_g + isolongifolene + longifolene + longipinene + muurolene_a + muurolene_g +', + ' selinene_b + selinene_d + nerolidol_c + nerolidol_t', +'BIGALK = tricyclene + camphor + fenchone + thujone_a + thujone_b + cineole_1_8 + borneol + bornyl_ACT +', + ' cedrol + decanal + heptanal + heptane + hexane + nonanal + octanal + octanol + oxopentanal + pentane +', + ' hexanal + hexanol_1 + pentanal + heptanone', +'CH3OH = methanol', 'CH3COCH3 = acetone', 'CH3CHO = acetaldehyde', 'C2H5OH = ethanol', +'CH2O = formaldehyde', 'CH3COOH = acetic_acid', 'CO = carbon_monoxide', +'C2H6 = ethane', 'C2H4 = ethene', 'C3H8 = propane', 'C3H6 = propene', +'SOAE = 0.5954*isoprene + 5.1004*(carene_3 + pinene_a + thujene_a + bornene +', + ' terpineol_4 + terpineol_a + terpinyl_ACT_a + myrtenal + sabinene + pinene_b + camphene +', + ' fenchene_a + limonene + phellandrene_a + terpinene_a + terpinene_g + terpinolene +', + ' phellandrene_b + linalool + ionone_b + geranyl_acetone + neryl_acetone + jasmone +', + ' verbenene + ipsenol + myrcene + ocimene_t_b + ocimene_al + ocimene_c_b + 2met_nonatriene) + ', + ' 12.3942*(farnescene_a + caryophyllene_b + acoradiene + aromadendrene + bergamotene_a +', + ' bergamotene_b + bisabolene_a + bisabolene_b + bourbonene_b + cadinene_d + cadinene_g +', + ' cedrene_a + copaene_a + cubebene_a + cubebene_b + elemene_b + farnescene_b +', + ' germacrene_B + germacrene_D + gurjunene_b + humulene_a + humulene_g + isolongifolene +', + ' longifolene + longipinene + muurolene_a + muurolene_g + selinene_b + selinene_d +', + ' nerolidol_c + nerolidol_t)' + atm/cam/chem/trop_mozart/emis/megan21_emis_factors_78pft_c20161108.nc atm/cam/chem/trop_mozart/emis/megan21_emis_factors_78pft_c20161108.nc diff --git a/bld/unit_testers/build-namelist_test.pl b/bld/unit_testers/build-namelist_test.pl index 2c95d2e624..ab7cb4edf9 100755 --- a/bld/unit_testers/build-namelist_test.pl +++ b/bld/unit_testers/build-namelist_test.pl @@ -163,10 +163,10 @@ sub cat_and_create_namelistinfile { # # Figure out number of tests that will run # -my $ntests = 3264; +my $ntests = 3276; if ( defined($opts{'compare'}) ) { - $ntests += 1980; + $ntests += 1987; } plan( tests=>$ntests ); diff --git a/ccs_config b/ccs_config index c1f57b1db9..fc14c83fd6 160000 --- a/ccs_config +++ b/ccs_config @@ -1 +1 @@ -Subproject commit c1f57b1db90529fdc3766777103c8d6a9cd4ccb2 +Subproject commit fc14c83fd69c1c30612038026d9b3c9af014acfe diff --git a/cime b/cime index 71d2b71216..1006c39f59 160000 --- a/cime +++ b/cime @@ -1 +1 @@ -Subproject commit 71d2b71216cc39abfb8224cc55861bd6424c95f9 +Subproject commit 1006c39f59577d47994fb3fb897566b2b8fa12ed diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index 0c8160058e..77083c778d 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -36,6 +36,27 @@ + + + FAIL + #2686 + + + + + + FAIL + #2686 + + + + + + FAIL + #2686 + + + FAIL @@ -114,9 +135,9 @@ - + FAIL - #1733 + #1733 and #3180 @@ -138,6 +159,13 @@ + + FAIL + #3182 + + + FAIL diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index e61018a80c..9b97da53fe 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -1346,6 +1346,7 @@ + @@ -1733,7 +1734,6 @@ - @@ -2330,7 +2330,7 @@ - + @@ -2339,7 +2339,6 @@ - @@ -2348,7 +2347,6 @@ - @@ -2855,6 +2853,7 @@ + @@ -3074,15 +3073,6 @@ - - - - - - - - - @@ -3142,9 +3132,10 @@ - + + @@ -3186,7 +3177,7 @@ - + @@ -3355,6 +3346,7 @@ + @@ -3364,6 +3356,7 @@ + @@ -3374,7 +3367,6 @@ - @@ -3515,6 +3507,7 @@ + @@ -3772,6 +3765,7 @@ + @@ -3831,6 +3825,7 @@ + @@ -3919,6 +3914,7 @@ + @@ -3931,6 +3927,7 @@ + @@ -3984,12 +3981,6 @@ - - - - - - @@ -4009,6 +4000,7 @@ + diff --git a/cime_config/testdefs/testmods_dirs/clm/Fates/shell_commands b/cime_config/testdefs/testmods_dirs/clm/Fates/shell_commands index 41a2342a51..bb35d021c6 100644 --- a/cime_config/testdefs/testmods_dirs/clm/Fates/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/Fates/shell_commands @@ -1,2 +1,5 @@ ./xmlchange CLM_BLDNML_OPTS="-no-megan" --append ./xmlchange BFBFLAG="TRUE" + +# The following is done as documented in #3184 where more memory is needed for FATES single processor cases +./xmlchange MEM_PER_TASK=20 diff --git a/cime_config/testdefs/testmods_dirs/clm/Fates/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/Fates/user_nl_clm index 374b17b302..9d4b7b7baf 100644 --- a/cime_config/testdefs/testmods_dirs/clm/Fates/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/Fates/user_nl_clm @@ -24,6 +24,6 @@ hist_fincl1 = 'FATES_NCOHORTS', 'FATES_TRIMMING', 'FATES_AREA_PLANTS', 'FATES_DEMOTION_CARBONFLUX', 'FATES_PROMOTION_CARBONFLUX', 'FATES_MORTALITY_CFLUX_CANOPY', 'FATES_MORTALITY_CFLUX_USTORY', 'FATES_NEP', 'FATES_HET_RESP', 'FATES_FIRE_CLOSS', 'FATES_FIRE_FLUX_EL', -'FATES_CBALANCE_ERROR', 'FATES_ERROR_EL', 'FATES_LEAF_ALLOC', +'FATES_CBALANCE_ERROR', 'FATES_LEAF_ALLOC', 'FATES_SEED_ALLOC', 'FATES_STEM_ALLOC', 'FATES_FROOT_ALLOC', 'FATES_CROOT_ALLOC', 'FATES_STORE_ALLOC' diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdST3/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdST3/user_nl_clm index 860656e8d8..eca76c4b9c 100644 --- a/cime_config/testdefs/testmods_dirs/clm/FatesColdST3/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdST3/user_nl_clm @@ -1,2 +1 @@ use_fates_ed_st3= .true. -hist_fexcl1 = 'FATES_ERROR_EL' diff --git a/components/cdeps b/components/cdeps index 44dfda49db..9e57b278de 160000 --- a/components/cdeps +++ b/components/cdeps @@ -1 +1 @@ -Subproject commit 44dfda49db77cd38cd493a03d4b4c81ad54af525 +Subproject commit 9e57b278de18cf69351bc693fe1988143e859fa7 diff --git a/components/cism b/components/cism index 41843ef8fe..0a4e6cfe88 160000 --- a/components/cism +++ b/components/cism @@ -1 +1 @@ -Subproject commit 41843ef8fed91fcf60e2ea217c4f6f2ee5133c5d +Subproject commit 0a4e6cfe8828cd28cdab06f83a7c1eb464c1ca8c diff --git a/components/cmeps b/components/cmeps index 189b02e2b3..dfe357ec28 160000 --- a/components/cmeps +++ b/components/cmeps @@ -1 +1 @@ -Subproject commit 189b02e2b36b9a5a064150179721de45af3bbacf +Subproject commit dfe357ec28da465b1d0e435594c6bd6700ce62f3 diff --git a/doc/ChangeLog b/doc/ChangeLog index b14ed335bc..c2ad536725 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,4 +1,136 @@ =============================================================== +Tag name: ctsm5.3.051 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Fri 30 May 2025 12:19:19 AM MDT +One-line Summary: Update submodules to cesm3_0_beta06 versions and update MEGAN/drydep test namelist + +Purpose and description of changes +---------------------------------- + +Update submodules to versions from cesm3_0_beta06 including some needed updates in cime and ccs_config. +Also update the MEGAN and drydep test namelists so they are testing what's used in coupled simualtions. + +Add FTorch as an optional library that can be checked out with git-fleximod. + +This also brings in updates on derecho_intel so that intel-oneapi is used, which changes answers. + + +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.] + +[ ] clm6_0 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed +---------- + +List of CTSM issues fixed (include CTSM Issue # and description) [one per line]: + + Fixes #2710 MEGAN/drydep test namelists + Fixes #2476 Update to intel-oneapi + Fixes #3135 FTorch + Fixes #3108 derecho_gnu mpi-serial tests + Address some things in #3156 General testing changes to make + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): + Single point cases may fail due to lack of memory -- especially FATES cases + See: https://github.com/ESCOMP/CTSM/issues/3181 + +Notes of particular relevance for developers: +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + +Changes to tests or testing: + Change some of the tests for CESM: prealpha, prebeta, and aux_cime_baseliens + Increase memory per task for FATES tests so will work for single point cases + +Testing summary: regular, fates, ctsm_sci +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + build-namelist tests (if CLMBuildNamelist.pm has changed): + + derecho - PASS + + python testing (if python code has changed; see instructions in python/README.md; document testing done): + + derecho - PASS (but just before tagging I saw problems with this and previous tags) + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + derecho ----- OK + izumi ------- OK + + fates tests: fates-sci.1.84.0_api.40.0.0-ctsm5.3.050 + + derecho ----- OK + izumi ------- OK + + any other testing (give details below): + + ctsm_sci + derecho ---- OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes, MEGAN/drydep namelist different, derecho_intel/dercho_nvhpc change answers + + Summarize any changes to answers, i.e., + - what code configurations: When MEGAN/drydep test namelist turned on, also future scenario SSP cases + - what platforms/compilers: derecho_intel or derecho_nvhpc + - nature of change: + compiler changes should be roundoff + MEGAN/drydep and SSP cases will be greater than that + +Other details +------------- + +List any git submodules updated (cime, rtm, mosart, cism, fates, etc.): + +cism to cismwrap_2_2_006 + +fxtag = ccs_config_cesm1.0.23 +ccs_config to ccs_config_cesm1.0.43 + +CIME to cime6.1.102 + +CMEPS to cmeps1.0.47 + +CDEPS to cdeps1.0.73 + +PIO to pio2_6_4 + +MPISerial to MPIserial_2.5.4 + + FTorch to v0.0.5 + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + https://github.com/ESCOMP/CTSM/pull/3111 -- bring in the answer changing part for derecho_intel + https://github.com/ESCOMP/CTSM/pull/3159 -- update to cesm3_0_alpha06f externals + https://github.com/ESCOMP/CTSM/pull/3125 -- update to cesm3_0_alpha06g externals and needed fixes + +=============================================================== +=============================================================== Tag name: ctsm5.3.050 Originator(s): samrabin (Sam Rabin) Date: Thu May 29 11:26:21 MDT 2025 diff --git a/doc/ChangeSum b/doc/ChangeSum index d5ac32d2ed..9fe2515894 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,5 +1,6 @@ Tag Who Date Summary ============================================================================================================================ + ctsm5.3.051 erik 05/30/2025 Update submodules to cesm3_0_beta06 versions and update MEGAN/drydep test namelist ctsm5.3.050 samrabin 05/29/2025 Fix Linux Podman; prefer Linux Docker; update docs docs. ctsm5.3.049 samrabin 05/27/2025 Switch docs to use Podman ctsm5.3.048 samrabin 05/26/2025 Automatically publish docs to this repo diff --git a/libraries/mpi-serial b/libraries/mpi-serial index 39416b7546..3092629c7d 160000 --- a/libraries/mpi-serial +++ b/libraries/mpi-serial @@ -1 +1 @@ -Subproject commit 39416b754652bd281a89e86b37734aa5f3ffafd6 +Subproject commit 3092629c7d9ee6b10e58e1aa0aa1d263bde168df diff --git a/libraries/parallelio b/libraries/parallelio index 6539ef05ae..a844617662 160000 --- a/libraries/parallelio +++ b/libraries/parallelio @@ -1 +1 @@ -Subproject commit 6539ef05ae7584ec570a56fdab9f7dfb336c2b80 +Subproject commit a844617662cbb2b1a6445bd7560f9095ccefd180