From 4319e26a3ca9c3356ac02b56f1b9499ea279bf1e Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" Submodulesobject
Do NOT override this method, this method is the framework that controls the build phase. build_phase is the extension point that subclasses should use.
diff --git a/versions/master/html/CIME_api/CIME.XML.html b/versions/master/html/CIME_api/CIME.XML.html index 65ced41acbb..5b1304a2681 100644 --- a/versions/master/html/CIME_api/CIME.XML.html +++ b/versions/master/html/CIME_api/CIME.XML.html @@ -781,6 +781,14 @@Bases: EnvBase
Set the value of an entry-id field to value +Returns the value or None if not found +subgroup is ignored in the general routine and applied in specific methods
+copy_globs()
copy_local_macros_to_dir()
copyifnewer()
deprecate_action()
does_file_have_string()
expect()
file_contains_python_function()
TestTestStatus
TestTestStatus.setUp()
TestTestStatus.test_current_is()
TestTestStatus.test_get_latest_phase()
TestTestStatus.test_psdump_corePhasesPass()
TestTestStatus.test_psdump_oneCorePhaseFails()
TestTestStatus.test_psdump_oneCorePhaseFailsAbsentFromXFails()
Bases: object
TestStatus
TestStatus.current_is()
TestStatus.flush()
TestStatus.get_comment()
TestStatus.get_latest_phase()
TestStatus.get_name()
TestStatus.get_overall_test_status()
TestStatus.get_status()
copy_globs()
copy_local_macros_to_dir()
copyifnewer()
deprecate_action()
does_file_have_string()
expect()
file_contains_python_function()
$ ./bless_test_results --help
-ERROR: xmllint not found in PATH, xmllint is required for cime. PATH=/opt/hostedtoolcache/Python/3.11.3/x64/bin:/opt/hostedtoolcache/Python/3.11.3/x64:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ERROR: xmllint not found in PATH, xmllint is required for cime. PATH=/opt/hostedtoolcache/Python/3.11.4/x64/bin:/opt/hostedtoolcache/Python/3.11.4/x64:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$ ./case.build --help
usage: case.build [-h] [-d] [-v] [-s] [--ninja] [--separate-builds]
- [--dry-run]
+ [--skip-submit] [--dry-run]
[--sharedlib-only | -m | -b {cpl,atm,lnd,ice,ocn,rof,glc,wav,esp,iac,csmshare,mct,pio,gptl} [{cpl,atm,lnd,ice,ocn,rof,glc,wav,esp,iac,csmshare,mct,pio,gptl} ...]
| --skip-provenance-check | --clean-all | --clean
[{cpl,atm,lnd,ice,ocn,rof,glc,wav,esp,iac,csmshare,mct,pio,gptl} ...]
@@ -207,6 +207,7 @@
-s, --silent Print only warnings and error messages
--ninja Use ninja backed for CMake (instead of gmake). The ninja backend is better at scanning fortran dependencies but seems to be less reliable across different platforms and compilers.
--separate-builds Build each component one at a time, separately, with output going to separate logs
+ --skip-submit Sets the current test phase to RUN, skipping the SUBMIT phase. This may be useful if rebuilding the model while this test is in the batch queue. ONLY USE IF A TEST CASE, OTHERWISE IGNORED.
--dry-run Just print the cmake and ninja commands.
--sharedlib-only Only build shared libraries.
-m, --model-only Assume shared libraries are already built.
diff --git a/versions/master/html/Tools_user/compare_test_results.html b/versions/master/html/Tools_user/compare_test_results.html
index 84cc85213dc..fc40e9376b6 100644
--- a/versions/master/html/Tools_user/compare_test_results.html
+++ b/versions/master/html/Tools_user/compare_test_results.html
@@ -147,7 +147,7 @@
$ ./compare_test_results --help
-ERROR: xmllint not found in PATH, xmllint is required for cime. PATH=/opt/hostedtoolcache/Python/3.11.3/x64/bin:/opt/hostedtoolcache/Python/3.11.3/x64:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ERROR: xmllint not found in PATH, xmllint is required for cime. PATH=/opt/hostedtoolcache/Python/3.11.4/x64/bin:/opt/hostedtoolcache/Python/3.11.4/x64:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
diff --git a/versions/master/html/Tools_user/create_test.html b/versions/master/html/Tools_user/create_test.html
index da2dceec56c..685bffa89a5 100644
--- a/versions/master/html/Tools_user/create_test.html
+++ b/versions/master/html/Tools_user/create_test.html
@@ -154,7 +154,7 @@
[--clean] [-m MACHINE] [--mpilib MPILIB] [-c COMPARE]
[-g GENERATE] [--xml-machine XML_MACHINE]
[--xml-compiler XML_COMPILER] [--xml-category XML_CATEGORY]
- [--xml-testlist XML_TESTLIST] [--driver {mct,nuopc,moab}]
+ [--xml-testlist XML_TESTLIST] [--driver {mct,nuopc}]
[--compiler COMPILER] [-n] [-p PROJECT] [-t TEST_ID]
[-j PARALLEL_JOBS] [--proc-pool PROC_POOL]
[--walltime WALLTIME] [-q QUEUE] [-f TESTFILE] [-o]
@@ -223,8 +223,7 @@
The default is all if any --xml- argument is used.
--xml-testlist XML_TESTLIST
Use this testlist to lookup tests.The default is specified in config_files.xml
- --driver {mct,nuopc,moab}
- Override driver specified in tests and use this one.
+ --driver {mct,nuopc} Override driver specified in tests and use this one.
--compiler COMPILER Compiler for building cime. Default will be the name in the
Testname or the default defined for the machine.
-n, --namelists-only Only perform namelist actions for tests
diff --git a/versions/master/html/Tools_user/query_config.html b/versions/master/html/Tools_user/query_config.html
index d7145bd69ad..cdf906b629f 100644
--- a/versions/master/html/Tools_user/query_config.html
+++ b/versions/master/html/Tools_user/query_config.html
@@ -147,7 +147,7 @@
$ ./query_config --help
-ERROR: xmllint not found in PATH, xmllint is required for cime. PATH=/opt/hostedtoolcache/Python/3.11.3/x64/bin:/opt/hostedtoolcache/Python/3.11.3/x64:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ERROR: xmllint not found in PATH, xmllint is required for cime. PATH=/opt/hostedtoolcache/Python/3.11.4/x64/bin:/opt/hostedtoolcache/Python/3.11.4/x64:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
diff --git a/versions/master/html/_modules/CIME/SystemTests/system_tests_common.html b/versions/master/html/_modules/CIME/SystemTests/system_tests_common.html
index 311a3f53dfc..09f80e66e0d 100644
--- a/versions/master/html/_modules/CIME/SystemTests/system_tests_common.html
+++ b/versions/master/html/_modules/CIME/SystemTests/system_tests_common.html
@@ -240,6 +240,7 @@ Source code for CIME.SystemTests.system_tests_common
ninja=False,
dry_run=False,
separate_builds=False,
+ skip_submit=False,
):
"""
Do NOT override this method, this method is the framework that
@@ -250,6 +251,9 @@ Source code for CIME.SystemTests.system_tests_common
self._ninja = ninja
self._dry_run = dry_run
self._user_separate_builds = separate_builds
+
+ was_run_pend = self._test_status.current_is(RUN_PHASE, TEST_PEND_STATUS)
+
for phase_name, phase_bool in [
(SHAREDLIB_BUILD_PHASE, not model_only),
(MODEL_BUILD_PHASE, not sharedlib_only),
@@ -288,6 +292,15 @@ Source code for CIME.SystemTests.system_tests_common
comments=("time={:d}".format(int(time_taken))),
)
+ # Building model while job is queued and awaiting run
+ if (
+ skip_submit
+ and was_run_pend
+ and self._test_status.current_is(SUBMIT_PHASE, TEST_PEND_STATUS)
+ ):
+ with self._test_status:
+ self._test_status.set_status(SUBMIT_PHASE, TEST_PASS_STATUS)
+
return success
[docs] def build_phase(self, sharedlib_only=False, model_only=False):
diff --git a/versions/master/html/_modules/CIME/Tools/standard_script_setup.html b/versions/master/html/_modules/CIME/Tools/standard_script_setup.html
index 17e11420e3a..d76beeb9a3c 100644
--- a/versions/master/html/_modules/CIME/Tools/standard_script_setup.html
+++ b/versions/master/html/_modules/CIME/Tools/standard_script_setup.html
@@ -127,7 +127,6 @@ Source code for CIME.Tools.standard_script_setup
import CIME.utils
-
CIME.utils.stop_buffering_output()
import logging, argparse
diff --git a/versions/master/html/_modules/CIME/XML/env_batch.html b/versions/master/html/_modules/CIME/XML/env_batch.html
index 2ca7e949dda..af072f38c91 100644
--- a/versions/master/html/_modules/CIME/XML/env_batch.html
+++ b/versions/master/html/_modules/CIME/XML/env_batch.html
@@ -693,7 +693,6 @@ Source code for CIME.XML.env_batch
flag, name = self._get_argument(case, arg)
except ValueError:
continue
-
if self._batchtype == "cobalt" and job == "case.st_archive":
if flag == "-n":
name = "task_count"
@@ -1050,7 +1049,20 @@ Source code for CIME.XML.env_batch
return
- submitargs = case.get_value("BATCH_COMMAND_FLAGS", subgroup=job)
+ submitargs = case.get_value("BATCH_COMMAND_FLAGS", subgroup=job, resolved=False)
+
+ project = case.get_value("PROJECT", subgroup=job)
+
+ if not project:
+ # If there is no project then we need to remove the project flag
+ if (
+ batch_system == "pbs" or batch_system == "cobalt"
+ ) and " -A " in submitargs:
+ submitargs = submitargs.replace("-A", "")
+ elif batch_system == "lsf" and " -P " in submitargs:
+ submitargs = submitargs.replace("-P", "")
+ elif batch_system == "slurm" and " --account " in submitargs:
+ submitargs = submitargs.replace("--account", "")
if dep_jobs is not None and len(dep_jobs) > 0:
logger.debug("dependencies: {}".format(dep_jobs))
diff --git a/versions/master/html/_modules/CIME/XML/env_build.html b/versions/master/html/_modules/CIME/XML/env_build.html
index 57a2a3556f3..9416c153199 100644
--- a/versions/master/html/_modules/CIME/XML/env_build.html
+++ b/versions/master/html/_modules/CIME/XML/env_build.html
@@ -104,7 +104,22 @@ Source code for CIME.XML.env_build
initialize an object interface to file env_build.xml in the case directory
"""
schema = os.path.join(utils.get_schema_path(), "env_entry_id.xsd")
- EnvBase.__init__(self, case_root, infile, schema=schema, read_only=read_only)
+ self._caseroot = case_root
+ EnvBase.__init__(self, case_root, infile, schema=schema, read_only=read_only)
+
+[docs] def set_value(self, vid, value, subgroup=None, ignore_type=False):
+ """
+ Set the value of an entry-id field to value
+ Returns the value or None if not found
+ subgroup is ignored in the general routine and applied in specific methods
+ """
+ # Do not allow any of these to be the same as CASEROOT
+ if vid in ("EXEROOT", "OBJDIR", "LIBROOT"):
+ utils.expect(value != self._caseroot, f"Cannot set {vid} to CASEROOT")
+
+ return super(EnvBuild, self).set_value(
+ vid, value, subgroup=subgroup, ignore_type=ignore_type
+ )
diff --git a/versions/master/html/_modules/CIME/XML/grids.html b/versions/master/html/_modules/CIME/XML/grids.html
index 1e62acc293c..71aaefe6d82 100644
--- a/versions/master/html/_modules/CIME/XML/grids.html
+++ b/versions/master/html/_modules/CIME/XML/grids.html
@@ -111,6 +111,10 @@ Source code for CIME.XML.grids
infile = files.get_value("GRIDS_SPEC_FILE")
logger.debug(" Grid specification file is {}".format(infile))
schema = files.get_schema("GRIDS_SPEC_FILE")
+ expect(
+ os.path.isfile(infile) and os.access(infile, os.R_OK),
+ f" grid file not found {infile}",
+ )
try:
GenericXML.__init__(self, infile, schema)
except:
diff --git a/versions/master/html/_modules/CIME/XML/machines.html b/versions/master/html/_modules/CIME/XML/machines.html
index 177d4dda17d..9db19b5cc7a 100644
--- a/versions/master/html/_modules/CIME/XML/machines.html
+++ b/versions/master/html/_modules/CIME/XML/machines.html
@@ -127,9 +127,12 @@ Source code for CIME.XML.machines
logger.debug("Verifying using schema {}".format(schema))
self.machines_dir = os.path.dirname(infile)
+ if os.path.exists(infile):
+ checked_files.append(infile)
+ else:
+ expect(False, f"file not found {infile}")
GenericXML.__init__(self, infile, schema)
- checked_files.append(infile)
# Append the contents of $HOME/.cime/config_machines.xml if it exists.
#
diff --git a/versions/master/html/_modules/CIME/build.html b/versions/master/html/_modules/CIME/build.html
index 0c69af45b5f..8ec5ca0c3ee 100644
--- a/versions/master/html/_modules/CIME/build.html
+++ b/versions/master/html/_modules/CIME/build.html
@@ -334,8 +334,8 @@ Source code for CIME.build
)
ocn_model = case.get_value("COMP_OCN")
- atm_model = case.get_value("COMP_ATM")
- if ocn_model == "mom" or atm_model == "fv3gfs":
+ atm_dycore = case.get_value("CAM_DYCORE")
+ if ocn_model == "mom" or (atm_dycore and atm_dycore == "fv3"):
cmake_args += " -DUSE_FMS=TRUE "
cmake_args += " -DINSTALL_SHAREDPATH={} ".format(
@@ -352,6 +352,7 @@ Source code for CIME.build
for var in _CMD_ARGS_FOR_BUILD:
cmake_args += xml_to_make_variable(case, var, cmake=True)
+ atm_model = case.get_value("COMP_ATM")
if atm_model == "scream":
cmake_args += xml_to_make_variable(case, "HOMME_TARGET", cmake=True)
@@ -847,8 +848,9 @@ Source code for CIME.build
libs.append("CDEPS")
ocn_model = case.get_value("COMP_OCN")
- atm_model = case.get_value("COMP_ATM")
- if ocn_model == "mom" or atm_model == "fv3gfs":
+
+ atm_dycore = case.get_value("CAM_DYCORE")
+ if ocn_model == "mom" or (atm_dycore and atm_dycore == "fv3"):
libs.append("FMS")
files = Files(comp_interface=comp_interface)
@@ -1202,6 +1204,7 @@ Source code for CIME.build
ninst_build = case.get_value("NINST_BUILD")
smp_value = case.get_value("SMP_VALUE")
clm_use_petsc = case.get_value("CLM_USE_PETSC")
+ mpaso_use_petsc = case.get_value("MPASO_USE_PETSC")
cism_use_trilinos = case.get_value("CISM_USE_TRILINOS")
mali_use_albany = case.get_value("MALI_USE_ALBANY")
mach = case.get_value("MACH")
@@ -1226,7 +1229,7 @@ Source code for CIME.build
# the future there may be others -- so USE_PETSC will be true if
# ANY of those are true.
- use_petsc = clm_use_petsc
+ use_petsc = bool(clm_use_petsc) or bool(mpaso_use_petsc)
case.set_value("USE_PETSC", use_petsc)
# Set the overall USE_TRILINOS variable to TRUE if any of the
diff --git a/versions/master/html/_modules/CIME/case/case_st_archive.html b/versions/master/html/_modules/CIME/case/case_st_archive.html
index d6145b37a95..8e9edd79080 100644
--- a/versions/master/html/_modules/CIME/case/case_st_archive.html
+++ b/versions/master/html/_modules/CIME/case/case_st_archive.html
@@ -450,8 +450,10 @@ Source code for CIME.case.case_st_archive
histfiles = set()
rest_hist_varname = archive.get_entry_value("rest_history_varname", archive_entry)
if rest_hist_varname != "unset":
- cmd = "ncdump -v {} {} ".format(
- rest_hist_varname, os.path.join(rundir, restfile)
+ ncdump = shutil.which("ncdump")
+ expect(ncdump, "ncdump not found in path")
+ cmd = "{} -v {} {} ".format(
+ ncdump, rest_hist_varname, os.path.join(rundir, restfile)
)
if testonly:
out = "{} =".format(rest_hist_varname)
diff --git a/versions/master/html/_modules/CIME/scripts/create_newcase.html b/versions/master/html/_modules/CIME/scripts/create_newcase.html
index 4a5f2949b7c..a2003d6b807 100644
--- a/versions/master/html/_modules/CIME/scripts/create_newcase.html
+++ b/versions/master/html/_modules/CIME/scripts/create_newcase.html
@@ -325,6 +325,8 @@ Source code for CIME.scripts.create_newcase
parser.add_argument(
"--driver",
+ # use get_cime_default_driver rather than config.driver_default as it considers
+ # environment, user config then config.driver_default
default=get_cime_default_driver(),
choices=drv_choices,
help=drv_help,
diff --git a/versions/master/html/_modules/CIME/scripts/create_test.html b/versions/master/html/_modules/CIME/scripts/create_test.html
index 2e8eeabcb23..fff75423828 100644
--- a/versions/master/html/_modules/CIME/scripts/create_test.html
+++ b/versions/master/html/_modules/CIME/scripts/create_test.html
@@ -305,7 +305,7 @@ Source code for CIME.scripts.create_test
parser.add_argument(
"--driver",
- choices=("mct", "nuopc", "moab"),
+ choices=model_config.driver_choices,
help="Override driver specified in tests and use this one.",
)
diff --git a/versions/master/html/_modules/CIME/scripts/query_config.html b/versions/master/html/_modules/CIME/scripts/query_config.html
index 74f2b1427a0..003dd466ac1 100644
--- a/versions/master/html/_modules/CIME/scripts/query_config.html
+++ b/versions/master/html/_modules/CIME/scripts/query_config.html
@@ -94,7 +94,7 @@ Source code for CIME.scripts.query_config
from CIME.Tools.standard_script_setup import *
import re
-from CIME.utils import expect
+from CIME.utils import expect, get_cime_default_driver, deprecate_action
from CIME.XML.files import Files
from CIME.XML.component import Component
from CIME.XML.compsets import Compsets
@@ -400,8 +400,16 @@ Source code for CIME.scripts.query_config
parser.add_argument(
"--comp_interface",
- choices=supported_comp_interfaces,
+ choices=supported_comp_interfaces, # same as config.driver_choices
default="mct",
+ action=deprecate_action(", use --driver argument"),
+ help="DEPRECATED: Use --driver argument",
+ )
+
+ parser.add_argument(
+ "--driver",
+ choices=config.driver_choices,
+ default=get_cime_default_driver(),
help="Coupler/Driver interface",
)
@@ -418,7 +426,7 @@ Source code for CIME.scripts.query_config
args.machines,
args.long,
args.xml,
- files[args.comp_interface],
+ files[args.driver],
)
diff --git a/versions/master/html/_modules/CIME/test_status.html b/versions/master/html/_modules/CIME/test_status.html
index 3e96d272eb5..26b994174ce 100644
--- a/versions/master/html/_modules/CIME/test_status.html
+++ b/versions/master/html/_modules/CIME/test_status.html
@@ -360,6 +360,17 @@ Source code for CIME.test_status
[docs] def get_comment(self, phase):
return self._phase_statuses[phase][1] if phase in self._phase_statuses else None
+[docs] def current_is(self, phase, status):
+ try:
+ latest = self.get_latest_phase()
+ except KeyError:
+ return False
+
+ return latest == phase and self.get_status(phase) == status
+
+
+
[docs] def phase_statuses_dump(
self, prefix="", skip_passes=False, skip_phase_list=None, xfails=None
):
diff --git a/versions/master/html/_modules/CIME/tests/test_unit_test_status.html b/versions/master/html/_modules/CIME/tests/test_unit_test_status.html
index 6ce95fc9bde..2438f4c4480 100644
--- a/versions/master/html/_modules/CIME/tests/test_unit_test_status.html
+++ b/versions/master/html/_modules/CIME/tests/test_unit_test_status.html
@@ -127,6 +127,20 @@ Source code for CIME.tests.test_unit_test_status
with self._ts:
self._ts.set_status(phase, status)
+[docs] def test_get_latest_phase(self):
+ assert self._ts.get_latest_phase() == test_status.RUN_PHASE
+
+[docs] def test_current_is(self):
+ assert self._ts.current_is(test_status.RUN_PHASE, test_status.TEST_PASS_STATUS)
+
+ assert not self._ts.current_is(
+ test_status.RUN_PHASE, test_status.TEST_PEND_STATUS
+ )
+
+ assert not self._ts.current_is(
+ test_status.SUBMIT_PHASE, test_status.TEST_PASS_STATUS
+ )
+
# ------------------------------------------------------------------------
# Tests of TestStatus.phase_statuses_dump
# ------------------------------------------------------------------------
diff --git a/versions/master/html/_modules/CIME/tests/test_unit_xml_machines.html b/versions/master/html/_modules/CIME/tests/test_unit_xml_machines.html
index 6c43c647964..b12b77edff8 100644
--- a/versions/master/html/_modules/CIME/tests/test_unit_xml_machines.html
+++ b/versions/master/html/_modules/CIME/tests/test_unit_xml_machines.html
@@ -226,8 +226,8 @@ Source code for CIME.tests.test_unit_xml_machines
[docs]class TestUnitXMLMachines(unittest.TestCase):
[docs] def setUp(self):
Machines._FILEMAP = {}
-
- self.machine = Machines()
+ # read_only=False for github testing
+ self.machine = Machines(machine="centos7-linux")
self.machine.read_fd(io.StringIO(MACHINE_TEST_XML))
diff --git a/versions/master/html/_modules/CIME/utils.html b/versions/master/html/_modules/CIME/utils.html
index 66e20b3af64..abb91ca042f 100644
--- a/versions/master/html/_modules/CIME/utils.html
+++ b/versions/master/html/_modules/CIME/utils.html
@@ -94,6 +94,7 @@ Source code for CIME.utils
import importlib.util
import errno, signal, warnings, filecmp
import stat as statlib
+from argparse import Action
from contextlib import contextmanager
from distutils import file_util
@@ -107,6 +108,14 @@ Source code for CIME.utils
GLOBAL = {}
+[docs]def deprecate_action(message):
+ class ActionStoreDeprecated(Action):
+ def __call__(self, parser, namespace, values, option_string=None):
+ raise DeprecationWarning(f"{option_string} is deprecated{message}")
+
+ return ActionStoreDeprecated
+
+
[docs]def import_from_file(name, file_path):
loader = importlib.machinery.SourceFileLoader(name, file_path)
diff --git a/versions/master/html/_modules/Tools/standard_script_setup.html b/versions/master/html/_modules/Tools/standard_script_setup.html
index 4816f2c80bc..f43f9125887 100644
--- a/versions/master/html/_modules/Tools/standard_script_setup.html
+++ b/versions/master/html/_modules/Tools/standard_script_setup.html
@@ -127,7 +127,6 @@ Source code for Tools.standard_script_setup
import CIME.utils
-
CIME.utils.stop_buffering_output()
import logging, argparse
diff --git a/versions/master/html/_sources/users_guide/create-a-case.rst.txt b/versions/master/html/_sources/users_guide/create-a-case.rst.txt
index 71b39b5cbd8..c9257da19a6 100644
--- a/versions/master/html/_sources/users_guide/create-a-case.rst.txt
+++ b/versions/master/html/_sources/users_guide/create-a-case.rst.txt
@@ -207,6 +207,17 @@ As an example, the directory could contain the following files: ::
> shell_commands (this would contain ./xmlchange commands)
> SourceMods/src.cam/dyncomp.F90
+It is important to note that the file containing the **xmlchange**
+commands must be named ``shell_commands`` in order for it to be recognised
+and run upon case creation.
+
+The structure of the component directories do not need to be the
+same as in the component source code. As an example, should the user
+want to modify the ``src/dynamics/eul/dyncomp.F90`` file within the
+CAM source code, the modified file should be put into the directory
+``SourceMods/src.cam`` directly. There is no need to mimic the source
+code structure, such as ``SourceMods/src.cam/dynamics/eul``.
+
When the user calls **create_newcase** with the ``--user-mods-dir`` pointing to the
full pathname of the directory containing these changes, then the ``CASEROOT`` will be
created with these changes applied.
diff --git a/versions/master/html/genindex.html b/versions/master/html/genindex.html
index e926854ffcc..15b591d8bc0 100644
--- a/versions/master/html/genindex.html
+++ b/versions/master/html/genindex.html
@@ -1170,8 +1170,6 @@ C
- module
-
-
-
CIME.tests.test_sys_create_newcase
@@ -1179,6 +1177,8 @@
C
- module
+
+
-
CIME.tests.test_sys_full_system
@@ -1933,6 +1933,8 @@
C
- createUserMod() (CIME.tests.test_unit_user_mod_support.TestUserModSupport method)
- cs_status() (in module CIME.cs_status)
+
+ - current_is() (CIME.test_status.TestStatus method)
- CustomAssertionsTestStatus (class in CIME.tests.custom_assertions_test_status)
@@ -1975,10 +1977,12 @@ D
- day() (CIME.date.date method)
- delete_old_test_data() (in module CIME.jenkins_generic_job)
+
+ - delete_variable() (CIME.namelist.Namelist method)
- - delete_variable() (CIME.namelist.Namelist method)
+
- deprecate_action() (in module CIME.utils)
- dict_to_namelist() (CIME.XML.namelist_definition.NamelistDefinition method)
@@ -2385,6 +2389,8 @@ G
- get_latest_cpl_log() (CIME.case.case.Case method)
- get_latest_hist_files() (CIME.XML.archive_base.ArchiveBase method)
+
+ - get_latest_phase() (CIME.test_status.TestStatus method)
- get_lids() (in module CIME.utils)
@@ -3747,6 +3753,8 @@ S
- (CIME.XML.env_base.EnvBase method)
- (CIME.XML.env_batch.EnvBatch method)
+
+ - (CIME.XML.env_build.EnvBuild method)
- (CIME.XML.env_mach_pes.EnvMachPes method)
@@ -4136,6 +4144,8 @@ T
- test_create_macros_copy_user() (CIME.tests.test_unit_case_setup.TestCaseSetup method)
- test_create_test_longname() (CIME.tests.test_sys_cime_case.TestCimeCase method)
+
+ - test_current_is() (CIME.tests.test_unit_test_status.TestTestStatus method)
- test_d_create_clone_new_user() (CIME.tests.test_sys_create_newcase.TestCreateNewcase method)
@@ -4234,6 +4244,8 @@ T
- test_get_grid_info_extra_gridmaps() (CIME.tests.test_unit_grids.TestGrids method)
- test_get_grid_info_extra_required_gridmaps() (CIME.tests.test_unit_grids.TestGrids method)
+
+ - test_get_latest_phase() (CIME.tests.test_unit_test_status.TestTestStatus method)
- test_get_mpirun() (CIME.tests.test_unit_xml_env_mach_specific.TestXMLEnvMachSpecific method)
@@ -4304,11 +4316,11 @@ T
- test_jenkins_generic_job_kill() (CIME.tests.test_sys_jenkins_generic_job.TestJenkinsGenericJob method)
- test_jenkins_generic_job_realistic_dash() (CIME.tests.test_sys_jenkins_generic_job.TestJenkinsGenericJob method)
-
- - test_k_append_config() (CIME.tests.test_sys_create_newcase.TestCreateNewcase method)
+ - test_k_append_config() (CIME.tests.test_sys_create_newcase.TestCreateNewcase method)
+
- test_ka_createnewcase_extra_machines_dir() (CIME.tests.test_sys_create_newcase.TestCreateNewcase method)
- test_keepexe() (CIME.tests.test_unit_user_mod_support.TestUserModSupport method)
diff --git a/versions/master/html/objects.inv b/versions/master/html/objects.inv
index 9b35fb4442c135cbd1dd2ff51a30aedc2544b7c4..dad181ab27f8d7aed2723db98a1385aaa60a2bf3 100644
GIT binary patch
delta 16291
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