Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
0ccaccc
Merge remote-tracking branch 'escomp/master' into feature/cism_coupli…
mvertens Jul 4, 2024
073710b
added Externals_CISM.cfg back in
mvertens Jul 4, 2024
392431a
updates from both escomp and mpetrini-norce
mvertens Jul 4, 2024
56ea0f2
fixed compilation problems
mvertens Jul 4, 2024
5df18f4
fixed compilation bugs
mvertens Jul 4, 2024
682e100
updated cism test list to have betzy tests
mvertens Aug 21, 2024
ff04187
reset dt and dt_diag for ais8 resolution
mvertens Aug 21, 2024
34c8df4
Merge pull request #3 from mvertens/feature/cism_coupling_to_ocn
mvertens Aug 21, 2024
9922d93
namelist
Nov 21, 2024
ebf96b0
New code for smoothing algorithm
Nov 21, 2024
781f1c6
updated source_cism
mvertens Nov 25, 2024
26a91ff
updated submodule source_cism for smoothing algo
mvertens Nov 25, 2024
840308b
updated to mvertens fork
mvertens Nov 25, 2024
9f8a98f
Update issue templates
hgoelzer Jan 9, 2025
9187f34
Update cism-development-issue-template.md
hgoelzer Jan 9, 2025
0fa7b3b
Merge remote-tracking branch 'escomp/master' into rpointers-update-ci…
mvdebolskiy Mar 8, 2025
12a6171
update submodule cism
mvdebolskiy Mar 8, 2025
3299323
Creating tag with updated extrap algo
micpetrini Mar 18, 2025
eb5e9da
add gnu test
mvdebolskiy Mar 20, 2025
f4ebd22
update modules
mvdebolskiy Mar 20, 2025
e33939b
Merge pull request #9 from mvdebolskiy/rpointers-update-cism-wrap
mvdebolskiy Mar 20, 2025
ca0f915
update source to point to noresm
mvdebolskiy Mar 20, 2025
9d0b1f3
Merge pull request #10 from mvdebolskiy/rpointers-update-cism-wrap
mvdebolskiy Mar 20, 2025
0c565b6
merge latest
mvdebolskiy Apr 17, 2025
0f1dace
Corrected forcing mode (cycle) in T-compset
micpetrini May 13, 2025
132cab4
added changes
micpetrini May 13, 2025
8e13682
add tests
mvdebolskiy May 14, 2025
1269afb
update submodule
mvdebolskiy May 14, 2025
bb88797
Merge branch 'smooth-merge' into smoothing_algo2
mvdebolskiy May 14, 2025
4b9437a
add test with noresm forcing
mvdebolskiy May 29, 2025
871dd94
move test
mvdebolskiy May 29, 2025
3853e97
removing useless stuff, adding one ERS test
micpetrini Jun 2, 2025
8480390
update
mvdebolskiy Jun 3, 2025
ac311cc
update tests
mvdebolskiy Jun 3, 2025
7b955a9
update tests
mvdebolskiy Jun 5, 2025
a3689e2
update tests
mvdebolskiy Jun 12, 2025
04f19ee
add new grids
mvdebolskiy Jun 12, 2025
2936dce
refactor tests
mvdebolskiy Jun 12, 2025
e63f59b
update submodules
mvdebolskiy Jun 12, 2025
5b6fd1a
update submodules
mvdebolskiy Jun 12, 2025
fe73405
update submodule
mvdebolskiy Jun 13, 2025
ba8bb01
update source
mvdebolskiy Jun 13, 2025
47f49ff
Merge pull request #8 from mpetrini-norce/smoothing_algo2
mvdebolskiy Jun 13, 2025
92efb18
updated config_archive.xml to ESCOMP cismwrap_2_2_011
mvertens Nov 25, 2025
8db0a2f
Merge pull request #15 from mvertens/feature/update_archive
mvdebolskiy Dec 5, 2025
1f1447c
Changes in wrapper to support ocean forcing for GrIS
micpetrini Jan 27, 2026
6201540
add stencil_size to namelist option
micpetrini Jan 28, 2026
b6d64fe
further changes
micpetrini Jan 29, 2026
740cf77
more changes to make force_retreat work
micpetrini Feb 10, 2026
f6efeb3
update submodules
mvdebolskiy Apr 23, 2026
bf6e564
Merge remote-tracking branch 'origin/noresm' into update-wrap-ocn
mvdebolskiy Apr 23, 2026
8b5980d
updated source_cism to cism_main_2.02.002_noresm_v1
mvertens May 4, 2026
c78c9a9
fixes for issue #12
mvertens May 4, 2026
55e09c0
pointing to correct source_cism tag
mvertens May 4, 2026
d973812
fix input file for greenland
mvdebolskiy May 4, 2026
57a8159
fixed some problems found in running aux_cism_noresm
mvertens May 5, 2026
2568fe4
updated grid sizes for antarctica
mvertens May 6, 2026
eea9378
more updates for fixing failed tests
mvertens May 6, 2026
bf2711f
updated changes from Michele that should fix most failing tests
mvertens May 7, 2026
2fe41ce
updated source_cism
mvertens May 11, 2026
47d7ef6
Merge pull request #16 from NorESMhub/update-wrap-ocn
mvertens May 11, 2026
fb9c239
update source_cism to cism_main_2.01.017_noresm_v3
mvertens May 12, 2026
8c3350b
Merge pull request #17 from NorESMhub/feature/update_source_cism
mvertens May 12, 2026
34b1489
updated testlist
mvertens May 20, 2026
3a61cc6
updated pes
mvertens May 20, 2026
c470de0
Merge pull request #19 from mvertens/feature/update_testlist
mvertens May 20, 2026
913a80b
updated source_cism to cism_main_2.01.017_noresm_v4
mvertens May 21, 2026
9c5c581
Merge pull request #20 from NorESMhub/feature/update_source_cism
mvertens May 21, 2026
1423ee8
Add frontal_melt_factor to CISM configuration
hgoelzer May 24, 2026
0f936a0
updated source_cism to cism_main_2.01.017_noresm_v5
mvertens May 26, 2026
da40d86
Merge pull request #21 from NorESMhub/hgoelzer/add_frontal_melt_param…
mvertens May 26, 2026
f028e2b
Change group from 'options' to 'parameters' for frontal_melt_factor
hgoelzer May 27, 2026
c697a61
update namelist parameters in namelist_definition_cism.xml for GrIS
hgoelzer May 28, 2026
dd85e5e
update esm_history_vars namelist setting
hgoelzer May 28, 2026
9782851
correct esm_history_vars namelist
hgoelzer May 28, 2026
2b3425f
more change to fix logging output
May 29, 2026
7d372a1
Change glimmer_set_msg_level(6) to glimmer_set_msg_level(0) in glc_In…
May 29, 2026
d9882a9
fix CISM write_log to not echo to stdout in CCSMCOUPLED mode
May 30, 2026
bd13756
update source_cism to suppress non-fatal stdout echo in CESM coupled …
mvertens May 31, 2026
d342989
Fix log unit assignment so CISM output goes to glc.log
mvertens Jun 1, 2026
46cf699
Change group from 'options' to 'parameters' for frontal_melt_factor
mvertens Jun 1, 2026
b73de20
Merge branch 'noresm' into hgoelzer/namelist_update
mvertens Jun 1, 2026
d3ad08f
updated source_cisim to cism_main_2.01.017_noresm_v7
mvertens Jun 1, 2026
d637c85
cism namelist update
mvertens Jun 1, 2026
5903806
new capability to run both noevolve and evolve ice sheets in one simu…
Jun 2, 2026
bac615d
Change group from 'options' to 'parameters' for frontal_melt_factor
hgoelzer May 27, 2026
a3e7e28
update namelist parameters in namelist_definition_cism.xml for GrIS
hgoelzer May 28, 2026
cd63db9
update esm_history_vars namelist setting
hgoelzer May 28, 2026
b8193b1
correct esm_history_vars namelist
hgoelzer May 28, 2026
ebb3d5b
updated source_cisim to cism_main_2.01.017_noresm_v7
mvertens Jun 1, 2026
d7bf160
update to noresm head
Jun 2, 2026
bd789e0
updated namelists for setting prognostic,noevolve ice sheets
Jun 2, 2026
ecb1d09
updated source_cism again
mvertens Jun 2, 2026
5d55f8d
update for correct new namelist
mvertens Jun 2, 2026
a51b316
fix compile problems
mvertens Jun 3, 2026
9aeea58
backed up to cismwrap_2_2_007_noresm_v7
mvertens Jun 3, 2026
c7db770
backed up to cismwrap_2_2_007_noresm_v7
mvertens Jun 3, 2026
d2efa11
fixed several bugs
Jun 3, 2026
c701eb2
added some debug output
mvertens Jun 3, 2026
ba23643
compute noevolve Sg_area from noevolve_internal_gridsize namelist input
Jun 4, 2026
a9c554e
refactored the implementation for noevolve
Jun 4, 2026
bfa2b5f
test of no evolve model for antartica and prognostic greenland is wor…
mvertens Jun 7, 2026
8074921
restart writes are now working - restart reads still have to be imple…
mvertens Jun 8, 2026
aadeb7b
create rpointer file for noevolve ice sheet - still need to implement…
mvertens Jun 9, 2026
d90e93f
restart for noevolve as well as refactorization to make namelist inpu…
mvertens Jun 9, 2026
708c516
bug fixes for names to get restarts working for noevolve ice sheet
mvertens Jun 10, 2026
7ef077b
fix restart issues that arise with time averaged fields
Jun 10, 2026
a1c2690
point to bug fix branch for source_cism
Jun 10, 2026
3fcaa25
noevolve namelist variables are now clearly delineated
mvertens Jun 12, 2026
bf47fe8
removed [%EVOLVE][%NOEVOLVE] suffixes
mvertens Jun 13, 2026
9f8c16a
removed almost all references to CISM_EVOLVE since it is no longer ne…
mvertens Jun 13, 2026
6cfba07
icesheet_modes now have same order as icesheet_names
Jun 13, 2026
6d70d19
fixes problems where bare icesheet names were turned into literals
Jun 13, 2026
d34118b
force TRUE for CISM_EVOLVE for current backwards compatibility
mvertens Jun 13, 2026
e7efc03
better error status if GLC_GRID and CISM compset
Jun 13, 2026
b3b868e
updated test suite and new compset aliases for noevolve greenland/ant…
mvertens Jun 17, 2026
d27c3b9
addressed issue raised in PR review
mvertens Jun 17, 2026
cdd997c
ability to run both noevolve and evolve ice sheets in one simulation
mvertens Jun 17, 2026
c914deb
Merge branch 'noresm' into feature/bugfix
mvertens Jun 17, 2026
3925091
brought in more changes to be consistent with latest mods from @hgoelzer
mvertens Jun 17, 2026
48cd5ca
update to source_cism and namelists
mvertens Jun 18, 2026
b1db640
fix restart issues that arise with time averaged fields and update na…
mvertens Jun 18, 2026
8b0df53
added namelist_definition_cism.xml back
mvertens Jun 18, 2026
f17ae22
Merge pull request #29 from NorESMhub/feature/add_namelist_definition…
mvertens Jun 18, 2026
3f7e9ab
updated source_cism to cism_main_2.01.017_noresm_v9
mvertens Jun 26, 2026
d89e2ed
Merge pull request #30 from NorESMhub/feature/update_source_cism
TomasTorsvik Jun 29, 2026
2b220f7
added .cime_model_id and updated .github externals
mvertens Sep 16, 2026
fa3cf4a
update submodules
mvdebolskiy Sep 17, 2026
b7b5cf6
update git-fleximod to v1.1.1
mvdebolskiy Sep 17, 2026
d367cb6
add fleximod gh action
mvdebolskiy Sep 17, 2026
7a63430
add to workflows and make it run on dispatch too
mvdebolskiy Sep 17, 2026
01e72bd
Merge pull request #31 from NorESMhub/feature/add_noresm_cime_model
mvdebolskiy Sep 17, 2026
760c26c
first pass at merging in merge_cismwrap_2_2_007_noresm_v12
Sep 24, 2026
eb1a1f9
made noevolve settings things consistent with ESCOMP cdeps/dglc
Sep 24, 2026
7f98b28
some refactorization of test suite
Sep 25, 2026
29ac191
fixed namelist setting for noevolve_datafiles
Sep 25, 2026
ab6dbfa
reverted to cismwrap_2_2_015 testlist and added two new tests for one…
Sep 26, 2026
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
4 changes: 0 additions & 4 deletions cime_config/SystemTests/multivssingle.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,6 @@ def _case_one_setup(self):
def _case_two_setup(self):
# Turn off the given ice sheet
self._case.set_value("GLC_USE_{}".format(self._remove_icesheet_xml_name), "FALSE")
# BACKWARDS_COMPATIBILITY(wjs,2024-04-01) Backwards compatibility with old CTSM
# versions that expect CISM_USE_ANTARCTICA (can be removed after
# https://github.com/ESCOMP/CTSM/pull/2449 is merged).
self._case.set_value("CISM_USE_{}".format(self._remove_icesheet_xml_name), "FALSE")
self._case.set_value("CISM_EVOLVE_{}".format(self._remove_icesheet_xml_name), "FALSE")

# Remove the given ice sheet from GLC_GRID and related variables
Expand Down
112 changes: 44 additions & 68 deletions cime_config/buildnml
Original file line number Diff line number Diff line change
Expand Up @@ -266,17 +266,6 @@ def _icesheet_consistency_checks(case, icesheet_names, glc_grid_names):
expect(_is_icesheet_present(case, icesheet),
"{} set to evolve but not present in compset".format(icesheet))

expect(case.get_value("CISM_EVOLVE"),
"{} set to evolve but overall CISM_EVOLVE is FALSE".format(icesheet))

if case.get_value("CISM_EVOLVE"):
found_evolving_icesheet = False
for icesheet in icesheet_names:
if _is_icesheet_evolving(case, icesheet):
found_evolving_icesheet = True
expect(found_evolving_icesheet,
"CISM_EVOLVE is TRUE, but no ice sheets are set to evolve")

####################################################################################
def _check_compset_grid_consistency(case, icesheet_names, glc_grid_names):
####################################################################################
Expand Down Expand Up @@ -305,19 +294,30 @@ def _check_compset_grid_consistency(case, icesheet_names, glc_grid_names):
grid_startswith_icesheet = [g.startswith(icesheet) for g in glc_grid_names]
num_matches = grid_startswith_icesheet.count(True)
expect(num_matches == 1,
"Inconsistency between compset and grid: "
"{} included in compset, so expect one grid starting with that name, "
"but found {} grids with that name in GLC_GRID {}".format(
icesheet, num_matches, glc_grid))
"Inconsistency between compset and grid: the compset includes the "
"'{}' ice sheet, so GLC_GRID must contain exactly one grid for it "
"(a grid name starting with '{}'), but found {}.\n"
" Ice sheets in compset : {}\n"
" Grids in GLC_GRID ({}) : {}\n"
"Fix: choose a --res whose GLC_GRID matches the ice sheets in the "
"compset (e.g. an '{}'-only grid), or change the compset so its ice "
"sheets match GLC_GRID.".format(
icesheet, icesheet, num_matches,
icesheet_names, glc_grid, glc_grid_names, icesheet))

for grid in glc_grid_names:
icesheet_is_prefix_of_grid = [grid.startswith(i) for i in icesheet_names]
num_matches = icesheet_is_prefix_of_grid.count(True)
expect(num_matches == 1,
"Inconsistency between compset and grid: "
"{} included in GLC_GRID, so expect it to be the grid for one ice sheet in this case, "
"but found {} ice sheets that are the prefix of this grid name".format(
grid, num_matches))
"Inconsistency between compset and grid: GLC_GRID contains the grid "
"'{}', but no ice sheet in the compset corresponds to it ({} matches).\n"
" Ice sheets in compset : {}\n"
" Grids in GLC_GRID ({}) : {}\n"
"Fix: either choose a --res whose GLC_GRID only includes grids for "
"the ice sheets in the compset, or use a compset that includes the "
"ice sheet for grid '{}'.".format(
grid, num_matches,
icesheet_names, glc_grid, glc_grid_names, grid))

# ------------------------------------------------------------------------
# Now check for consistency in ordering. Errors here typically indicate an
Expand Down Expand Up @@ -364,10 +364,8 @@ def _create_cism_in(case, confdir, inst_string, icesheet_names, infile, nmlgen,
# Create config dictionary
# ------------------------------------------------------------------------
config = {}
# Note that the cism_evolve value used in cism_in is the overall CISM_EVOLVE, which is
# true if *any* ice sheet is evolving.
config['cism_evolve'] = '.true.' if case.get_value('CISM_EVOLVE') else '.false.'
config['calendar'] = case.get_value("CALENDAR")
config['glc_grid'] = case.get_value("GLC_GRID")

run_type = _get_effective_run_type(case)

Expand All @@ -378,10 +376,33 @@ def _create_cism_in(case, confdir, inst_string, icesheet_names, infile, nmlgen,
nmlgen.init_defaults([infile], config,
skip_default_for_groups=_CISM_CONFIG_GROUPS+["glc_override_nml"])

# IMPORTANT: nmlgen.add_default("icesheet_names", value=icesheet_names)
# mutates its input list IN PLACE, turning the bare names ('ais', 'gris')
# into namelist literals ('"ais"', '"gris"'). So snapshot the bare names
# FIRST and use that snapshot for all per-ice-sheet logic below; otherwise
# _ICESHEET_OPTIONS lookups would be done with quoted keys and fail.
clean_icesheet_names = list(icesheet_names)

nmlgen.add_default("paramfile_base", value="cism"+inst_string, ignore_abs_path=True)
nmlgen.add_default("num_icesheets", value=len(icesheet_names))
nmlgen.add_default("num_icesheets", value=len(clean_icesheet_names))
nmlgen.add_default("icesheet_names", value=icesheet_names)

# Per-ice-sheet mode, built in the canonical _ICESHEET_OPTIONS order (ais,
# gris, ...) by iterating clean_icesheet_names. An ice sheet that is evolving
# (CISM_EVOLVE_<ICESHEET>=TRUE, from the %<ICESHEET>-EVOLVE modifier) runs the
# CISM dycore ("prognostic"); one that is not evolving (%<ICESHEET>-NOEVOLVE)
# uses the data-glacier ("noevolve") path handled by glc_noevolve_mod.
#
# The noevolve_datafiles / noevolve_global_nx / noevolve_global_ny /
# noevolve_internal_gridsize arrays are populated automatically from their
# glc_grid-keyed defaults in namelist_definition_cism.xml (in the same
# canonical order, which _check_compset_grid_consistency enforces).
icesheet_modes = [
"prognostic" if _is_icesheet_evolving(case, icesheet) else "noevolve"
for icesheet in clean_icesheet_names
]
nmlgen.add_default("icesheet_modes", value=icesheet_modes)

_set_startdate(nmlgen, case,
run_type=run_type)

Expand Down Expand Up @@ -519,26 +540,6 @@ cover in CLM.)"""
def _get_effective_run_type(case):
###############################################################################
run_type = case.get_value("RUN_TYPE")

comp_interface = case.get_value("COMP_INTERFACE")
cism_evolve = case.get_value("CISM_EVOLVE")
# NOTE: with the nuopc interface, the CISM run phase is never called when running in
# noevolve mode, so a restart file will never be written for cism - only initial
# information will be sent back to CTSM. Since we don't have a restart file to start
# from, we need to tell CISM to start in startup mode in this situation.
#
# Note that this looks at the overall cism_evolve, which is only False if no ice
# sheets are evolving: In the situation where one ice sheet is evolving but another is
# not, the overall cism_evolve will be True and restart files will still be written
# for every ice sheet (even non-evolving ones), so we can safely restart from these
# restart files (so we do not need to force run_type to "startup"). (Also note that,
# because all ice sheets share a single time manager in the CISM-wrapper layer, it
# might currently be awkward or impossible for one ice sheet to start in startup mode
# and another to start in branch mode, for example.)
if (comp_interface == 'nuopc' and not cism_evolve):
logger.debug("Interface is nuopc, cism is not evolving: CISM run_type is always startup")
run_type = "startup"

return run_type

###############################################################################
Expand All @@ -563,31 +564,6 @@ def _set_restart_options(nmlgen, case, icesheet, run_type, cism_observed_ic,
expect(False,"CISM_OBSERVED_IC=TRUE not allowed for branch runs - only for hybrid runs")
else:
restart = 0
elif run_type == 'hybrid' and not case.get_value('CISM_EVOLVE'):
# We could use the hybrid refcase's CISM restart file in this case. However, we
# often run into problems where a change in CISM makes it incompatible with old
# restart files, and this breaks configurations that are set up as hybrid runs
# (typically B and F compsets). Those hybrid cases typically use NOEVOLVE (i.e.,
# CISM_EVOLVE=FALSE), where the restart file really doesn't matter. So, rather
# than requiring ourselves to recreate all of those refcases whenever we break
# compatibility with old restart files, an easier-to-maintain solution is to just
# use observed initial conditions rather than the restart file whenever we're
# running a hybrid case with CISM_EVOLVE=FALSE.
#
# One theoretical problem with this is: If someone did a run with
# CISM_EVOLVE=TRUE, then did a hybrid case off of that with CISM_EVOLVE=FALSE,
# hoping that this would keep the ice sheet fixed at the previously-spun-up state,
# they wouldn't get what they want: instead the ice sheet would be reset to
# observed initial conditions. Thus, the user would need to explicitly set
# 'cisminputfile' and 'restart' in this case.
#
# Note that this logic is based on the overall CISM_EVOLVE, so it is not triggered
# if one ice sheet is evolving but another is not. Also note that this logic is
# currently redundant with the NUOPC-specific logic that sets run_type to
# "startup" if CISM_EVOLVE is FALSE (in _get_effective_run_type). But we're
# keeping this redundancy for the sake of MCT runs and in case the NUOPC-specific
# logic is ever changed.
restart = 0
elif run_type == 'branch' or run_type == 'hybrid':
run_refcase = case.get_value('RUN_REFCASE')
run_refdate = case.get_value('RUN_REFDATE')
Expand Down
98 changes: 5 additions & 93 deletions cime_config/config_component.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<entry_id version="3.0">

<description modifier_mode="+">
<desc glc="CISM2[%EVOLVE][%NOEVOLVE][%GRIS-EVOLVE][%GRIS-NOEVOLVE][%AIS-EVOLVE][%AIS-NOEVOLVE]">cism2:</desc>
<desc glc="CISM2[%GRIS-EVOLVE][%GRIS-NOEVOLVE][%AIS-EVOLVE][%AIS-NOEVOLVE]">cism2:</desc>
<!-- For any ice sheet present in this run, it should be specified
exactly once, as either ICESHEET-EVOLVE or ICESHEET-NOEVOLVE
for the appropriate ICESHEET (GRIS, AIS). Any ice sheet not
Expand All @@ -14,13 +14,6 @@
<desc option="GRIS-NOEVOLVE">include non-evolving Greenland Ice Sheet:</desc>
<desc option="AIS-EVOLVE">include evolving Antarctica Ice Sheet:</desc>
<desc option="AIS-NOEVOLVE">include non-evolving Antarctica Ice Sheet:</desc>

<!-- BACKWARDS_COMPATIBILITY(wjs, 2021-02-25) Backwards
compatibility with old compsets that don't explicitly set
Greenland or Antarctica, but instead use the generic %EVOLVE or
%NOEVOLVE -->
<desc option="EVOLVE">cism ice evolution turned on:</desc>
<desc option="NOEVOLVE">cism ice evolution turned off (this is the standard configuration unless you're explicitly interested in ice evolution):</desc>
</description>

<entry id="COMP_GLC">
Expand All @@ -43,13 +36,6 @@
<file>env_run.xml</file>
<values>
<value compset="_CISM[^_]*%GRIS">TRUE</value>

<!-- BACKWARDS_COMPATIBILITY(wjs, 2020-12-23) Backwards
compatibility with old compsets that don't explicitly set
Greenland or Antarctica: we assume these just use Greenland
-->
<value compset="_CISM2%EVOLVE_">TRUE</value>
<value compset="_CISM2%NOEVOLVE_">TRUE</value>
</values>
<desc>Whether to include the Greenland Ice Sheet in this CISM simulation

Expand Down Expand Up @@ -78,52 +64,6 @@
</desc>
</entry>

<!-- BACKWARDS_COMPATIBILITY(wjs,2024-04-01) Backwards compatibility with old CTSM
versions that expect CISM_USE_ANTARCTICA (can be removed after
https://github.com/ESCOMP/CTSM/pull/2449 is merged). -->
<entry id="CISM_USE_GREENLAND">
<type>logical</type>
<valid_values>TRUE,FALSE</valid_values>
<default_value>FALSE</default_value>
<group>run_component_cism</group>
<file>env_run.xml</file>
<values>
<value compset="_CISM[^_]*%GRIS">TRUE</value>

<!-- BACKWARDS_COMPATIBILITY(wjs, 2020-12-23) Backwards
compatibility with old compsets that don't explicitly set
Greenland or Antarctica: we assume these just use Greenland
-->
<value compset="_CISM2%EVOLVE_">TRUE</value>
<value compset="_CISM2%NOEVOLVE_">TRUE</value>
</values>
<desc>Whether to include the Greenland Ice Sheet in this CISM simulation

This should generally be set at create_newcase time (via the compset). In principle it
can be changed later, but great care is needed to change a number of other variables
to be consistent (GLC_GRID, GLC_DOMAIN_MESH, CISM_EVOLVE_GREENLAND, and possibly
others).
</desc>
</entry>

<entry id="CISM_USE_ANTARCTICA">
<type>logical</type>
<valid_values>TRUE,FALSE</valid_values>
<default_value>FALSE</default_value>
<group>run_component_cism</group>
<file>env_run.xml</file>
<values>
<value compset="_CISM[^_]*%AIS">TRUE</value>
</values>
<desc>Whether to include the Antarctica Ice Sheet in this CISM simulation

This should generally be set at create_newcase time (via the compset). In principle it
can be changed later, but great care is needed to change a number of other variables
to be consistent (GLC_GRID, GLC_DOMAIN_MESH, CISM_EVOLVE_ANTARCTICA, and possibly
others).
</desc>
</entry>

<entry id="CISM_PHYS">
<type>char</type>
<valid_values>cism2</valid_values>
Expand All @@ -145,12 +85,6 @@
<default_value>FALSE</default_value>
<values>
<value compset="_CISM[^_]*%GRIS-EVOLVE">TRUE</value>

<!-- BACKWARDS_COMPATIBILITY(wjs, 2021-02-25) Backwards
compatibility with old compsets that don't explicitly set
Greenland or Antarctica: we assume these just use Greenland
-->
<value compset="_CISM2%EVOLVE_">TRUE</value>
</values>
<group>run_component_cism</group>
<file>env_run.xml</file>
Expand All @@ -174,30 +108,12 @@

<entry id="CISM_EVOLVE">
<type>logical</type>
<valid_values>TRUE,FALSE</valid_values>
<default_value>FALSE</default_value>
<values>
<!-- If ANY ice sheet is evolving, then set the overall
CISM_EVOLVE to TRUE. This is needed for some logic in CMEPS.
-->
<value compset="_CISM[^_]*-EVOLVE">TRUE</value>

<!-- BACKWARDS_COMPATIBILITY(wjs, 2021-02-25) Backwards
compatibility with old compsets that don't explicitly set
Greenland or Antarctica, but instead use the generic %EVOLVE
or %NOEVOLVE -->
<value compset="_CISM[^_]*%EVOLVE">TRUE</value>
</values>
<valid_values>TRUE</valid_values>
<group>run_component_cism</group>
<default_value>TRUE</default_value>
<file>env_run.xml</file>
<desc>Whether CISM ice evolution is on or off for CISM as a whole.
This must be TRUE if CISM_EVOLVE_ICESHEET is TRUE for any ICESHEET,
and FALSE if CISM_EVOLVE_ICESHEET is FALSE for all ICESHEETs that
are present in this run.

Setting CISM_EVOLVE to FALSE in a hybrid case also forces the use
of observed initial conditions, as if you had also set
CISM_OBSERVED_IC=TRUE.
<desc>This is currently kept for backwards compatibility until
this xml variable can be removed from CTSM and CMEPS.
</desc>
</entry>

Expand All @@ -217,10 +133,6 @@
implies that CISM should instead use the observed initial conditions
that are generally used for startup runs. This variable is ignored
for startup runs; for branch runs, it must be FALSE.

Note that setting CISM_EVOLVE to FALSE in a hybrid case also forces
the use of observed initial conditions, as if you had also set
CISM_OBSERVED_IC=TRUE.
</desc>
</entry>

Expand Down
Loading