diff --git a/.github/workflows/srt.yml b/.github/workflows/srt.yml
index 5a45a82a..a94205d7 100644
--- a/.github/workflows/srt.yml
+++ b/.github/workflows/srt.yml
@@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: [ 3.10.9 ]
+ python-version: [ 3.x ]
env:
CC: mpicc
FC: mpifort
diff --git a/cime_config/buildnml b/cime_config/buildnml
index 0206ac7b..42569a7a 100755
--- a/cime_config/buildnml
+++ b/cime_config/buildnml
@@ -52,10 +52,11 @@ def _create_drv_namelists(case, infile, confdir, nmlgen, files):
config["mask_grid"] = case.get_value("MASK_GRID")
for val in ("HIST", "REST", "STOP"):
config[val.lower()+"_option"] = case.get_value(val+"_OPTION")
-
+
config["comp_ocn"] = case.get_value("COMP_OCN")
+
atm_grid = case.get_value("ATM_GRID")
lnd_grid = case.get_value("LND_GRID")
ice_grid = case.get_value("ICE_GRID")
@@ -113,7 +114,7 @@ def _create_drv_namelists(case, infile, confdir, nmlgen, files):
config["COMP_ROF"] = case.get_value("COMP_ROF")
config["COMP_WAV"] = case.get_value("COMP_WAV")
config["CAMDEV"] = "True" if "CAM70" in case.get_value("COMPSET") else "False"
-
+
if (
(
case.get_value("COMP_ROF") == "mosart"
@@ -135,6 +136,12 @@ def _create_drv_namelists(case, infile, confdir, nmlgen, files):
config['wav_ice_coupling'] = 'ww3' in config['COMP_WAV'] and config['COMP_ICE'] == 'cice'
+ if config["COMP_OCN"] == "blom":
+ if "ecosys" in case.get_value("BLOM_TRACER_MODULES"):
+ config["dms_from_ocn"] = "on"
+ else:
+ config["dms_from_ocn"] = "off"
+
# ----------------------------------------------------
# Initialize namelist defaults
# ----------------------------------------------------
@@ -156,7 +163,7 @@ def _create_drv_namelists(case, infile, confdir, nmlgen, files):
add_gusts = literal_to_python_value(nmlgen.get_value("add_gusts"), type_="logical")
if add_gusts:
expect("CAM70" in case.get_value("COMPSET"),"ERROR: add_gusts can only be set if CAM70 in compset {}".format(case.get_value("COMPSET")))
-
+
# --------------------------------
# Overwrite: set component coupling frequencies
# --------------------------------
@@ -206,7 +213,7 @@ def _create_drv_namelists(case, infile, confdir, nmlgen, files):
mindt = min(mindt, cpl_dt)
# Here we convert "nsteps" to "nseconds", this simplifies the fortran
-
+
for val in ("REST", "HIST", "STOP"):
if case.get_value(val+"_OPTION") == "nsteps":
nsteps = case.get_value(val+"_N")
@@ -217,7 +224,7 @@ def _create_drv_namelists(case, infile, confdir, nmlgen, files):
else:
nmlgen.set_value("stop_n", value=mindt*nsteps)
-
+
# sanity check
comp_atm = case.get_value("COMP_ATM")
if comp_atm is not None and comp_atm not in ("datm", "xatm", "satm"):
@@ -640,7 +647,7 @@ def buildnml(case, caseroot, component):
major = line[-2] if "MAJOR" in line else major
minor = line[-2] if "MINOR" in line else minor
logger.debug("ESMF version major {} minor {}".format(major, minor))
- expect(int(major) >= 8 and int(minor) >=6, "ESMF version should be 8.6.1 or newer")
+ expect(int(major) >= 8 and int(minor) >=4, "ESMF version should be 8.4.1 or newer")
confdir = os.path.join(case.get_value("CASEBUILD"), "cplconf")
if not os.path.isdir(confdir):
@@ -682,7 +689,7 @@ def buildnml(case, caseroot, component):
create_namelist_infile(case, user_nl_file, namelist_infile, infile_text)
infile = [namelist_infile]
-
+
# create the files nuopc.runconfig, nuopc.runseq, drv_in and drv_flds_in
_create_drv_namelists(case, infile, confdir, nmlgen, files)
diff --git a/cime_config/namelist_definition_drv.xml b/cime_config/namelist_definition_drv.xml
index e52f6735..80a59931 100644
--- a/cime_config/namelist_definition_drv.xml
+++ b/cime_config/namelist_definition_drv.xml
@@ -889,7 +889,7 @@
.false.
-
+
integer
@@ -2450,7 +2450,7 @@
-
+
logical
flds
ALLCOMP_attributes
@@ -2459,10 +2459,11 @@
.false.
+ .true.
-
+
logical
flds
ALLCOMP_attributes
diff --git a/mediator/esmFldsExchange_cesm_mod.F90 b/mediator/esmFldsExchange_cesm_mod.F90
index abc901ba..0f6ccf02 100644
--- a/mediator/esmFldsExchange_cesm_mod.F90
+++ b/mediator/esmFldsExchange_cesm_mod.F90
@@ -1721,7 +1721,7 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc)
else
if ( fldchk(is_local%wrap%FBImp(compocn,compocn), 'Faoo_fdms_ocn', rc=rc) .and. &
fldchk(is_local%wrap%FBexp(compatm) , 'Faoo_fdms_ocn', rc=rc)) then
- call addmap_from(compocn, 'Faoo_fdms_ocn', compocn, mapconsd, 'one', ocn2atm_map)
+ call addmap_from(compocn, 'Faoo_fdms_ocn', compatm, mapconsd, 'one', ocn2atm_map)
! custom merge in med_phases_prep_atm
end if
end if
@@ -1735,7 +1735,7 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc)
else
if ( fldchk(is_local%wrap%FBImp(compocn,compocn), 'Faoo_fbrf_ocn', rc=rc) .and. &
fldchk(is_local%wrap%FBexp(compatm) , 'Faoo_fbrf_ocn', rc=rc)) then
- call addmap_from(compocn, 'Faoo_fbrf_ocn', compocn, mapconsd, 'one', ocn2atm_map)
+ call addmap_from(compocn, 'Faoo_fbrf_ocn', compatm, mapconsd, 'one', ocn2atm_map)
! custom merge in med_phases_prep_atm
end if
end if
@@ -1749,7 +1749,7 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc)
else
if ( fldchk(is_local%wrap%FBImp(compocn,compocn), 'Faoo_fn2o_ocn', rc=rc) .and. &
fldchk(is_local%wrap%FBexp(compatm) , 'Faoo_fn2o_ocn', rc=rc)) then
- call addmap_from(compocn, 'Faoo_fn2o_ocn', compocn, mapconsd, 'one', ocn2atm_map)
+ call addmap_from(compocn, 'Faoo_fn2o_ocn', compatm, mapconsd, 'one', ocn2atm_map)
! custom merge in med_phases_prep_atm
end if
end if
@@ -1763,7 +1763,7 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc)
else
if ( fldchk(is_local%wrap%FBImp(compocn,compocn), 'Faoo_fnh3_ocn', rc=rc) .and. &
fldchk(is_local%wrap%FBexp(compatm) , 'Faoo_fnh3_ocn', rc=rc)) then
- call addmap_from(compocn, 'Faoo_fnh3_ocn', compocn, mapconsd, 'one', ocn2atm_map)
+ call addmap_from(compocn, 'Faoo_fnh3_ocn', compatm, mapconsd, 'one', ocn2atm_map)
! custom merge in med_phases_prep_atm
end if
end if