diff --git a/.gitmodules b/.gitmodules index c9571cf78..4997fec46 100644 --- a/.gitmodules +++ b/.gitmodules @@ -30,14 +30,14 @@ path = ccs_config url = https://github.com/ESMCI/ccs_config_cesm.git fxDONOTUSEurl = https://github.com/ESMCI/ccs_config_cesm.git - fxtag = ccs_config_cesm1.0.1 + fxtag = ccs_config_cesm1.0.6 fxrequired = ToplevelRequired [submodule "cime"] path = cime url = https://github.com/ESMCI/cime fxDONOTUSEurl = https://github.com/ESMCI/cime - fxtag = cime6.1.0 + fxtag = cime6.1.22 fxrequired = ToplevelRequired [submodule "fms"] @@ -45,7 +45,7 @@ url = https://github.com/ESCOMP/FMS_interface fxDONOTUSEurl = https://github.com/ESCOMP/FMS_interface fxrequired = ToplevelRequired - fxtag = fi_240516 + fxtag = fi_240828 [submodule "share"] path = share @@ -66,7 +66,7 @@ url = https://github.com/ESCOMP/CTSM fxDONOTUSEurl = https://github.com/ESCOMP/CTSM fxrequired = ToplevelRequired - fxtag = ctsm5.2.009 + fxtag = ctsm5.2.027 [submodule "cice"] path = components/cice @@ -80,7 +80,7 @@ url = https://github.com/ESCOMP/MOM_interface fxDONOTUSEurl = https://github.com/ESCOMP/MOM_interface fxrequired = ToplevelRequired - fxtag = mi_240705 + fxtag = mi_240822 [submodule "cism"] path = components/cism @@ -94,14 +94,14 @@ url = https://github.com/ESCOMP/CDEPS fxDONOTUSEurl = https://github.com/ESCOMP/CDEPS fxrequired = ToplevelRequired - fxtag = cdeps1.0.43 + fxtag = cdeps1.0.49 [submodule "cmeps"] path = components/cmeps url = https://github.com/ESCOMP/CMEPS.git fxDONOTUSEurl = https://github.com/ESCOMP/CMEPS.git fxrequired = ToplevelRequired - fxtag = cmeps1.0.6 + fxtag = cmeps1.0.16 [submodule "rtm"] path = components/rtm @@ -114,7 +114,7 @@ path = components/ww3 url = https://github.com/ESCOMP/WW3_interface fxDONOTUSEurl = https://github.com/ESCOMP/WW3_interface - fxtag = ww3i_0.0.2 + fxtag = ww3i_0.0.3 fxrequired = ToplevelRequired [submodule "mizuroute"] @@ -136,7 +136,7 @@ url = https://github.com/NCAR/ParallelIO fxDONOTUSEurl = https://github.com/NCAR/ParallelIO fxrequired = ToplevelRequired - fxtag = pio2_6_2 + fxtag = pio2_6_3 [submodule "mpi-serial"] path = libraries/mpi-serial diff --git a/.lib/git-fleximod/git_fleximod/cli.py b/.lib/git-fleximod/git_fleximod/cli.py index b6f728f88..085508390 100644 --- a/.lib/git-fleximod/git_fleximod/cli.py +++ b/.lib/git-fleximod/git_fleximod/cli.py @@ -2,7 +2,7 @@ import argparse from git_fleximod import utils -__version__ = "0.8.4" +__version__ = "0.9.0" def find_root_dir(filename=".gitmodules"): """ finds the highest directory in tree diff --git a/.lib/git-fleximod/git_fleximod/git_fleximod.py b/.lib/git-fleximod/git_fleximod/git_fleximod.py index 50e0ef83d..0851e9d09 100755 --- a/.lib/git-fleximod/git_fleximod/git_fleximod.py +++ b/.lib/git-fleximod/git_fleximod/git_fleximod.py @@ -124,8 +124,8 @@ def submodule_sparse_checkout(root_dir, name, url, path, sparsefile, tag="master # set the repository remote logger.info("Setting remote origin in {}/{}".format(root_dir, path)) - status = sprepo_git.git_operation("remote", "-v") - if url not in status: + _, remotelist = sprepo_git.git_operation("remote", "-v") + if url not in remotelist: sprepo_git.git_operation("remote", "add", "origin", url) topgit = os.path.join(gitroot, ".git") @@ -213,7 +213,7 @@ def submodules_status(gitmodules, root_dir, toplevel=False, depth=0): def git_toplevelroot(root_dir, logger): rgit = GitInterface(root_dir, logger) - superroot = rgit.git_operation("rev-parse", "--show-superproject-working-tree") + _, superroot = rgit.git_operation("rev-parse", "--show-superproject-working-tree") return superroot def submodules_update(gitmodules, root_dir, requiredlist, force): diff --git a/.lib/git-fleximod/git_fleximod/gitinterface.py b/.lib/git-fleximod/git_fleximod/gitinterface.py index 583120144..f0dc19090 100644 --- a/.lib/git-fleximod/git_fleximod/gitinterface.py +++ b/.lib/git-fleximod/git_fleximod/gitinterface.py @@ -59,11 +59,12 @@ def git_operation(self, operation, *args, **kwargs): command = self._git_command(operation, *newargs) if isinstance(command, list): try: - return utils.execute_subprocess(command, output_to_caller=True) + status, output = utils.execute_subprocess(command, status_to_caller=True, output_to_caller=True) + return status, output.rstrip() except Exception as e: sys.exit(e) else: - return command + return 0, command def config_get_value(self, section, name): if self._use_module: diff --git a/.lib/git-fleximod/git_fleximod/submodule.py b/.lib/git-fleximod/git_fleximod/submodule.py index 70a3018a4..30a53f00f 100644 --- a/.lib/git-fleximod/git_fleximod/submodule.py +++ b/.lib/git-fleximod/git_fleximod/submodule.py @@ -60,8 +60,9 @@ def status(self): if not os.path.exists(os.path.join(smpath, ".git")): rootgit = GitInterface(self.root_dir, self.logger) # submodule commands use path, not name - tags = rootgit.git_operation("ls-remote", "--tags", self.url) - result = rootgit.git_operation("submodule","status",smpath).split() + status, tags = rootgit.git_operation("ls-remote", "--tags", self.url) + status, result = rootgit.git_operation("submodule","status",smpath) + result = result.split() if result: ahash = result[0][1:] @@ -80,9 +81,9 @@ def status(self): result = f"e {self.name:>20} not checked out, aligned at tag {self.fxtag}{optional}" needsupdate = True elif self.fxtag: - ahash = rootgit.git_operation( + status, ahash = rootgit.git_operation( "submodule", "status", "{}".format(self.path) - ).rstrip() + ) ahash = ahash[1 : len(self.fxtag) + 1] if self.fxtag == ahash: result = f"e {self.name:>20} not checked out, aligned at hash {ahash}{optional}" @@ -96,14 +97,15 @@ def status(self): else: with utils.pushd(smpath): git = GitInterface(smpath, self.logger) - remote = git.git_operation("remote").rstrip() + status, remote = git.git_operation("remote") if remote == '': result = f"e {self.name:>20} has no associated remote" testfails = True needsupdate = True return result, needsupdate, localmods, testfails - rurl = git.git_operation("ls-remote","--get-url").rstrip() - line = git.git_operation("log", "--pretty=format:\"%h %d\"").partition('\n')[0] + status, rurl = git.git_operation("ls-remote","--get-url") + status, lines = git.git_operation("log", "--pretty=format:\"%h %d\"") + line = lines.partition('\n')[0] parts = line.split() ahash = parts[0][1:] atag = None @@ -120,7 +122,7 @@ def status(self): #print(f"line is {line} ahash is {ahash} atag is {atag} {parts}") - # atag = git.git_operation("describe", "--tags", "--always").rstrip() + # atag = git.git_operation("describe", "--tags", "--always") # ahash = git.git_operation("rev-list", "HEAD").partition("\n")[0] recurse = False @@ -149,10 +151,10 @@ def status(self): result = f"e {self.name:>20} has no fxtag defined in .gitmodules, module at {ahash}" testfails = False - status = git.git_operation("status", "--ignore-submodules", "-uno") - if "nothing to commit" not in status: + status, output = git.git_operation("status", "--ignore-submodules", "-uno") + if "nothing to commit" not in output: localmods = True - result = "M" + textwrap.indent(status, " ") + result = "M" + textwrap.indent(output, " ") # print(f"result {result} needsupdate {needsupdate} localmods {localmods} testfails {testfails}") return result, needsupdate, localmods, testfails @@ -171,10 +173,11 @@ def _add_remote(self, git): Returns: str: The name of the new remote if added, or the name of the existing remote that matches the submodule's URL. """ - remotes = git.git_operation("remote", "-v").splitlines() + status, remotes = git.git_operation("remote", "-v") + remotes = remotes.splitlines() upstream = None if remotes: - upstream = git.git_operation("ls-remote", "--get-url").rstrip() + status, upstream = git.git_operation("ls-remote", "--get-url") newremote = "newremote.00" tmpurl = self.url.replace("git@github.com:", "https://github.com/") line = next((s for s in remotes if self.url in s or tmpurl in s), None) @@ -214,12 +217,19 @@ def sparse_checkout(self): """ self.logger.info("Called sparse_checkout for {}".format(self.name)) rgit = GitInterface(self.root_dir, self.logger) - superroot = rgit.git_operation("rev-parse", "--show-superproject-working-tree") + status, superroot = rgit.git_operation("rev-parse", "--show-superproject-working-tree") if superroot: gitroot = superroot.strip() else: gitroot = self.root_dir.strip() - assert os.path.isdir(os.path.join(gitroot, ".git")) + # Now need to move the .git dir to the submodule location + rootdotgit = os.path.join(self.root_dir, ".git") + while os.path.isfile(rootdotgit): + with open(rootdotgit) as f: + line = f.readline().rstrip() + if line.startswith("gitdir: "): + rootdotgit = os.path.abspath(os.path.join(self.root_dir,line[8:])) + assert os.path.isdir(rootdotgit) # first create the module directory if not os.path.isdir(os.path.join(self.root_dir, self.path)): os.makedirs(os.path.join(self.root_dir, self.path)) @@ -244,8 +254,8 @@ def sparse_checkout(self): # set the repository remote self.logger.info("Setting remote origin in {}/{}".format(self.root_dir, self.path)) - status = sprepo_git.git_operation("remote", "-v") - if self.url not in status: + status, remotes = sprepo_git.git_operation("remote", "-v") + if self.url not in remotes: sprepo_git.git_operation("remote", "add", "origin", self.url) topgit = os.path.join(gitroot, ".git") @@ -256,43 +266,43 @@ def sparse_checkout(self): os.path.join(self.root_dir, f.read().split()[1]), start=os.path.join(self.root_dir, self.path), ) - topgit = os.path.join(gitpath, "modules") + rootdotgit = os.path.join(gitpath, "modules", self.name) else: - topgit = os.path.relpath( - os.path.join(self.root_dir, ".git", "modules"), + rootdotgit = os.path.relpath( + os.path.join(self.root_dir, ".git", "modules", self.name), start=os.path.join(self.root_dir, self.path), ) - with utils.pushd(sprep_repo): - if not os.path.isdir(topgit): - os.makedirs(topgit) - topgit += os.sep + self.name - if os.path.isdir(os.path.join(self.root_dir, self.path, ".git")): with utils.pushd(sprep_repo): - if os.path.isdir(os.path.join(topgit,".git")): - shutil.rmtree(os.path.join(topgit,".git")) - shutil.move(".git", topgit) + if os.path.isdir(os.path.join(rootdotgit,".git")): + shutil.rmtree(os.path.join(rootdotgit,".git")) + shutil.move(".git", rootdotgit) with open(".git", "w") as f: - f.write("gitdir: " + os.path.relpath(topgit)) - # assert(os.path.isdir(os.path.relpath(topgit, start=sprep_repo))) - gitsparse = os.path.abspath(os.path.join(topgit, "info", "sparse-checkout")) + f.write("gitdir: " + os.path.relpath(rootdotgit)) + infodir = os.path.join(rootdotgit, "info") + if not os.path.isdir(infodir): + os.makedirs(infodir) + gitsparse = os.path.abspath(os.path.join(infodir, "sparse-checkout")) if os.path.isfile(gitsparse): self.logger.warning( - "submodule {} is already initialized {}".format(self.name, topgit) + "submodule {} is already initialized {}".format(self.name, rootdotgit) ) return with utils.pushd(sprep_repo): if os.path.isfile(self.fxsparse): + shutil.copy(self.fxsparse, gitsparse) # Finally checkout the repo sprepo_git.git_operation("fetch", "origin", "--tags") - sprepo_git.git_operation("checkout", self.fxtag) - - print(f"Successfully checked out {self.name:>20} at {self.fxtag}") + status,_ = sprepo_git.git_operation("checkout", self.fxtag) + if status: + print(f"Error checking out {self.name:>20} at {self.fxtag}") + else: + print(f"Successfully checked out {self.name:>20} at {self.fxtag}") rgit.config_set_value(f'submodule "{self.name}"', "active", "true") rgit.config_set_value(f'submodule "{self.name}"', "url", self.url) rgit.config_set_value(f'submodule "{self.name}"', "path", self.path) @@ -342,7 +352,7 @@ def update(self): git.git_operation("clone", self.url, self.path) smgit = GitInterface(repodir, self.logger) if not tag: - tag = smgit.git_operation("describe", "--tags", "--always").rstrip() + status, tag = smgit.git_operation("describe", "--tags", "--always") smgit.git_operation("checkout", tag) # Now need to move the .git dir to the submodule location rootdotgit = os.path.join(self.root_dir, ".git") @@ -350,7 +360,7 @@ def update(self): with open(rootdotgit) as f: line = f.readline() if line.startswith("gitdir: "): - rootdotgit = line[8:].rstrip() + rootdotgit = line[8:] newpath = os.path.abspath(os.path.join(self.root_dir, rootdotgit, "modules", self.name)) if os.path.exists(newpath): @@ -393,15 +403,16 @@ def update(self): git = GitInterface(submoddir, self.logger) # first make sure the url is correct newremote = self._add_remote(git) - tags = git.git_operation("tag", "-l") + status, tags = git.git_operation("tag", "-l") fxtag = self.fxtag if fxtag and fxtag not in tags: git.git_operation("fetch", newremote, "--tags") - atag = git.git_operation("describe", "--tags", "--always").rstrip() + status, atag = git.git_operation("describe", "--tags", "--always") if fxtag and fxtag != atag: try: - git.git_operation("checkout", fxtag) - print(f"{self.name:>20} updated to {fxtag}") + status, _ = git.git_operation("checkout", fxtag) + if not status: + print(f"{self.name:>20} updated to {fxtag}") except Exception as error: print(error) diff --git a/.lib/git-fleximod/git_fleximod/utils.py b/.lib/git-fleximod/git_fleximod/utils.py index 1a2d5ccf2..eef15113a 100644 --- a/.lib/git-fleximod/git_fleximod/utils.py +++ b/.lib/git-fleximod/git_fleximod/utils.py @@ -307,12 +307,15 @@ def execute_subprocess(commands, status_to_caller=False, output_to_caller=False) # simple status check. If returning, it is the callers # responsibility determine if an error occurred and handle it # appropriately. - if not return_to_caller: - msg_context = ( - "Process did not run successfully; " - "returned status {0}".format(error.returncode) - ) - msg = failed_command_msg(msg_context, commands, output=error.output) + msg_context = ( + "Process did not run successfully; " + "returned status {0}".format(error.returncode) + ) + msg = failed_command_msg(msg_context, commands, output=error.output) + if return_to_caller: + logging.warning(error) + logging.warning(msg) + else: logging.error(error) logging.error(msg) log_process_output(error.output) diff --git a/.lib/git-fleximod/pyproject.toml b/.lib/git-fleximod/pyproject.toml index 850e57d59..ecd1ac0f0 100644 --- a/.lib/git-fleximod/pyproject.toml +++ b/.lib/git-fleximod/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "git-fleximod" -version = "0.8.4" +version = "0.9.0" description = "Extended support for git-submodule and git-sparse-checkout" authors = ["Jim Edwards "] maintainers = ["Jim Edwards "] diff --git a/.lib/git-fleximod/tbump.toml b/.lib/git-fleximod/tbump.toml index bd82c557a..236c90aad 100644 --- a/.lib/git-fleximod/tbump.toml +++ b/.lib/git-fleximod/tbump.toml @@ -2,7 +2,7 @@ github_url = "https://github.com/jedwards4b/git-fleximod/" [version] -current = "0.8.4" +current = "0.9.0" # Example of a semver regexp. # Make sure this matches current_version before diff --git a/ChangeLog b/ChangeLog index 63e9f3682..9f8cb6245 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,435 @@ +============================================================== +Tag name: cesm3_0_alpha03b +Originator(s): CSEG +Date: 1st September 2024 +One-line Summary: CTSM answer changing tag + +components/cam https://github.com/ESCOMP/CAM/cam6_4_016 -- +components/cice https://github.com/ESCOMP/CESM_CICE/tree/cesm_cice6_5_0_12 -- +cime https://github.com/ESMCI/cime/tree/cime6.1.22 ** +share https://github.com/ESCOMP/CESM_share/tree/share1.1.2 -- +ccs_config https://github.com/ESMCI/ccs_config_cesm/tree/ccs_config_cesm1.0.6 ** +components/cmeps https://github.com/ESCOMP/CMEPS/tree/cmeps1.0.16 ** +components/cdeps https://github.com/ESCOMP/CDEPS/tree/cdeps1.0.49 ** +components/cism https://github.com/ESCOMP/cism-wrapper/tree/cismwrap_2_2_002 -- +components/clm https://github.com/ESCOMP/ctsm/tree/ctsm5.2.027 ** +components/fms https://github.com/ESCOMP/FMS_interface/tree/fi_240822 ** +components/mizuroute https://github.com/ESCOMP/mizuRoute/tree/cesm-coupling.n02_v2.1.3 -- +components/mom https://github.com/ESCOMP/MOM_interface/mi_240822 ** +components/mosart https://github.com/ESCOMP/mosart/tree/mosart1_1_02 -- +components/rtm https://github.com/ESCOMP/rtm/tree/rtm1_0_80 -- +components/ww3 https://github.com/ESCOMP/WW3-CESM/tree/ww3i_0.0.3 ** +libraries/parallelio https://github.com/NCAR/ParallilIO/tree/pio2_6_3 ** + +ccs_config + Chris Fischer 2024-08-30 - ccs_config_cesm1.0.6 - ccs_config (cesm3_0_alpha03b) + https://github.com/ESMCI/ccs_config_cesm/tags/ccs_config_cesm1.0.6 + + Update izumi esmf library to 8.6.1. + + + James Edwards 2024-08-15 - ccs_config_cesm1.0.5 - ccs_config (cesm3_0_alpha03b) + https://github.com/ESMCI/ccs_config_cesm/tags/ccs_config_cesm1.0.5 + + Removes explicit mem check for derecho. + + +cdeps + James Edwards 2024-08-22 - cdeps1.0.49 - components/cdeps (cesm3_0_alpha03b) + https://github.com/ESCOMP/CDEPS/tags/cdeps1.0.49 + + Add nuopc_shr_methods.F90 to share - has no affect on cesm. + + + James Edwards 2024-08-21 - cdeps1.0.48 - components/cdeps (cesm3_0_alpha03b) + https://github.com/ESCOMP/CDEPS/tags/cdeps1.0.48 + + Fox download revert + Plumber updates + + + + Chris Fischer 2024-08-22 - cdeps1.0.47 - components/cdeps (cesm3_0_alpha03b) + https://github.com/ESCOMP/CDEPS/tags/cdeps1.0.47 + + Plumber updates + + + James Edwards 2024-08-15 - cdeps1.0.46 - components/cdeps (cesm3_0_alpha03b) + https://github.com/ESCOMP/CDEPS/tags/cdeps1.0.46 + + bugfix for fgrg_rofi computation + + +cesm + James Edwards 2024-08-15 - cesm3_0_alpha03b - (cesm3_0_alpha03b) + https://github.com/ESCOMP/cesm/tags/??? + + Updates to pelayouts including new --append option in config_pes.xml + Depends on cime https://github.com/ESMCI/cime/pull/4664 + + +cime + James Edwards 2024-08-15 - cime6.1.14 - cime (cesm3_0_alpha03b) + https://github.com/ESMCI/cime/tags/cime6.1.? + + cime6.1.14: Support for append attribute in config_pes.xml + cime6.1.13: Fix Pylint failure + + + Chris Fischer 2024-08-30 - cime6.1.22 - cime (cesm3_0_alpha03b) + https://github.com/ESMCI/cime/tags/cime6.1.22 + + Fix for PES append feature + + + Chris Fischer 2024-08-29 - cime6.1.20 - cime (cesm3_0_alpha03b) + https://github.com/ESMCI/cime/tags/cime6.1.20 + + cime6.1.20: Fix the restart test by using ceil instead of int. + cime6.1.19: Fix black formatting + + + Chris Fischer 2024-08-29 - cime6.1.20 - cime (cesm3_0_alpha03b) + https://github.com/ESMCI/cime/tags/cime6.1.20 + + stop_n must be int + + + James Edwards 2024-08-21 - cime6.1.18 - cime (cesm3_0_alpha03b) + https://github.com/ESMCI/cime/tags/cime6.1.18 + + move computation of REST_N from config_tests.xml to SystemTests python code for more flexibility in tests. + + + James Edwards 2024-08-21 - cime6.1.17 - cime (cesm3_0_alpha03b) + https://github.com/ESMCI/cime/tags/cime6.1.17 + + cime6.1.17: Refactor ParamGen _reduce_recursive operator + cime6.1.16: Make sure the (ERI) directory exists before linking to it + cime6.1.15: Generalize _hists_match for mom6 files + + + + James Edwards 2024-08-15 - cime6.1.12 - cime (cesm3_0_alpha03b) + https://github.com/ESMCI/cime/tags/cime6.1.12 + + cime6.1.12: Adds support for git case repository. + cime6.1.11: Fixes test_sys_create_newcase.TestCreateNewcase.test_d_create_clone_new_user + cime6.1.10: Fixes detection of pfunit_path by making sure it exists + cime6.1.9: xmlchange: Add documentation for setting values with commas + + +clm + Erik Kluzek 2024-08-26 - ctsm5.2.027 - components/clm (cesm3_0_alpha03b) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.027 + + Bring in b4b-dev branch: + + - PLUMBER2 update to ctsm5.2 datasets + - Last bit of PPE changes needed + - Fix for dust emission coupling to CAM + + (This is the tag needed for CAM to bring in dust emission updates to it) + + Depends on: cdeps1.0.47 + + + Erik Kluzek 2024-08-26 - ctsm5.2.026 - components/clm (cesm3_0_alpha03b) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.026 + + Update clm6_0 defaults turning on A/C, excess ice and Leung_2023 dust emissions + + Also new IC files for: f09 1850 + + Changes answers for all Clm60 compsets + + + Sam Rabin 2024-08-23 - ctsm5.2.025 - components/clm (cesm3_0_alpha03b) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.025 + + Minor fixes to newish, non-default fire methods + + + Sam Rabin 2024-08-22 - ctsm5.2.024 - components/clm (cesm3_0_alpha03b) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.024 + + Improvements to newish, non-default fire methods + + + Sam Rabin 2024-08-16 - ctsm5.2.023 - components/clm (cesm3_0_alpha03b) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.023 + + Minor bit-for-bit changes + + + Sam Rabin 2024-08-14 - ctsm5.2.022 - components/clm (cesm3_0_alpha03b) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.022 + + Rework crop_calendars suite and cropMonthOutput + + Changes answers, but only in our test suites, not production runs. + + + Sam Rabin 2024-08-13 - ctsm5.2.021 - components/clm (cesm3_0_alpha03b) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.021 + + Adding on-the-fly parameter settings for prescribed N and P in FATES. Updates FATES submodule to sci.1.77.2_api.36.0.0. + + + + + Erik Kluzek 2024-08-12 - ctsm5.2.020 - components/clm (cesm3_0_alpha03b) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.020 + + Update for MEGAN VOC's (MEGAN 2.1) + + changes answers when MEGAN is on. + + +cmeps + James Edwards 2024-08-21 - cmeps1.0.16 - src/drivers/nuopc/ (cesm3_0_alpha03b) + https://github.com/ESCOMP/CMEPS/tags/cmeps1.0.16 + + Fixes the case of alarms based on nsteps when components have different individual timesteps. + + + James Edwards 2024-08-21 - cmeps1.0.15 - src/drivers/nuopc/ (cesm3_0_alpha03b) + https://github.com/ESCOMP/CMEPS/tags/cmeps1.0.15 + + Fix for restart tests using DGLC. + + + James Edwards 2024-08-15 - cmeps1.0.14 - src/drivers/nuopc/ (cesm3_0_alpha03b) + https://github.com/ESCOMP/CMEPS/tags/cmeps1.0.14 + + fix bug in med_diag_mod for ice runoff + + +fms + Michael Levy 2024-08-28 - fi_240828 - libraries/fms (cesm3_0_alpha03b) + https://github.com/ESCOMP/FMS_interface/tags/fi_240828 + + Sync libraries/fms/src submodule with what is in git-fleximod + (won't change CESM checkout, except libraries/FMS will look clean to git) + + +mom + Chris Fischer 2024-08-30 - mi_240822 - components/mom (cesm3_0_alpha03b) + https://github.com/ESCOMP/MOM_interface/tags/mi_240822 + + In cime6.1.12 the location of append_status was moved in cime to avoid a circular dependency. + + +ParallelIO + James Edwards 2024-08-22 - pio2_6_3 - libraries/parallelio (cesm3_0_alpha03b) + https://github.com/NCAR/ParallelIO/tags/pio2_6_3 + + Removes an error in DEBUG mode. + + +ww3 + Alper Altuntas 2024-08-06 - ww3i_0.0.3 - components/ww3 (cesm3_0_alpha03b) + https://github.com/ESCOMP/WW3_interface/tags/ww3i_0.0.3 + + Add/remove grids, update tests and namelists + fix GNU debug failure + ice attenuation. + +============================================================== +Tag name: cesm3_0_alpha03a +Originator(s): CSEG +Date: 15 August 2024 +One-line Summary: CTSM answer changing tag + +components/cam https://github.com/ESCOMP/CAM/cam6_4_016 -- +components/cice https://github.com/ESCOMP/CESM_CICE/tree/cesm_cice6_5_0_12 -- +cime https://github.com/ESMCI/cime/tree/cime6.1.8 ** +share https://github.com/ESCOMP/CESM_share/tree/share1.1.2 -- +ccs_config https://github.com/ESMCI/ccs_config_cesm/tree/ccs_config_cesm1.0.4 ** +components/cmeps https://github.com/ESCOMP/CMEPS/tree/cmeps1.0.13 ** +components/cdeps https://github.com/ESCOMP/CDEPS/tree/cdeps1.0.45 ** +components/cism https://github.com/ESCOMP/cism-wrapper/tree/cismwrap_2_2_002 -- +components/clm https://github.com/ESCOMP/ctsm/tree/ctsm5.2.019 ** +components/fms https://github.com/ESCOMP/FMS_interface/tree/fi_240807 ** +components/mizuroute https://github.com/ESCOMP/mizuRoute/tree/cesm-coupling.n02_v2.1.3 -- +components/mom https://github.com/ESCOMP/MOM_interface/mi_240805 ** +components/mosart https://github.com/ESCOMP/mosart/tree/mosart1_1_02 -- +components/rtm https://github.com/ESCOMP/rtm/tree/rtm1_0_80 -- +components/ww3 https://github.com/ESCOMP/WW3-CESM/tree/ww3i_0.0.2 -- +libraries/parallelio https://github.com/NCAR/ParallilIO/tree/pio2_6_2 -- + +ccs_config + James Edwards 2024-08-09 - ccs_config_cesm1.0.4 - ccs_config (cesm3_0_alpha03a) + https://github.com/ESMCI/ccs_config_cesm/tags/ccs_config_cesm1.0.4 + + Completes the reformatting of config_batch.xml and cmake_macros, seperating machine specific entries into machine specific directories. Depends on cime6.1.8 + + + James Edwards 2024-08-01 - ccs_config_cesm1.0.3 - ccs_config (cesm3_0_alpha03a) + https://github.com/ESMCI/ccs_config_cesm/tags/ccs_config_cesm1.0.3 + + updates some modules and depends files for derecho + + +cdeps + Chris Fischer 2024-08-09 - cdeps1.0.45 - components/cdeps (cesm3_0_alpha03a) + https://github.com/ESCOMP/CDEPS/tags/cdeps1.0.45 + + cdeps1.0.45: Fix/cdeps build concurancy + cdeps1.0.44: Add capability to send both prescribed SST and multi-level ocean SST/SALN to mediator + + +cesm + Michael Levy 2024-08-06 - ??? - (cesm3_0_alpha03a) + https://github.com/ESCOMP/cesm/tags/??? + + Update config_pes.xml for Derecho to add support for compsets with MOM6+MARBL + Turn MARBL tracers on by default in fully-coupled compsets + Any compset that goes from _MOM6_ -> _MOM6%MARBL-BIO_ will change answers (MARBL feeds back to ocean, and also increases NTASKS_OCN) + + requires MOM tag mi_240805 (or later) to actually turn MARBL on + + +cime + James Edwards 2024-08-09 - cime6.1.8 - cime (cesm3_0_alpha03a) + https://github.com/ESMCI/cime/tags/cime6.1.8 + + Support ccs_config reformatting. + + +clm + Erik Kluzek 2024-07-23 - ctsm5.2.019 - components/clm (cesm3_0_alpha03a) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.XXX + + Add option for Leung_2023 dust emissions + + + Erik Kluzek 2024-07-23 - ctsm5.2.018 - components/clm (cesm3_0_alpha03a) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.XXX + + Fix for excess ice cold starts + + + Erik Kluzek 2024-07-23 - ctsm5.2.017 - components/clm (cesm3_0_alpha03a) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.XXX + + Move control of dust emissions to the dust_emis_inparm namelist + in drv_flds_in with CMEPS code. + + + Erik Kluzek 2024-07-23 - ctsm5.2.016 - components/clm (cesm3_0_alpha03a) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.XXX + + Crop calendar updates for clm6_0 physics. + + Changes answers for Clm60BgcCrop compsets + + + Erik Kluzek 2024-07-16 - ctsm5.2.015 - components/clm (cesm3_0_alpha03a) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.015 + + Update externals for: MOSART, RTM, CISM, CMEPS (versions from cesm3_0_alpha02a) + With CISM runoff going to the ROF model directly + + + Erik Kluzek 2024-07-16 - ctsm5.2.014 - components/clm (cesm3_0_alpha03a) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.014 + + Bring in CN-Matrix which provides faster spinup of BGC + + Answers are different only when turned on, and the main usage for it on is for spinup + + + Erik Kluzek 2024-07-16 - ctsm5.2.013 - components/clm (cesm3_0_alpha03a) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.013 + + Updates of FATES LUH2 version 2 + Changes answers just for FATES compsets + + + Erik Kluzek 2024-07-16 - ctsm5.2.012 - components/clm (cesm3_0_alpha03a) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.012 + + Relax tolerance for truncating small snocan values in CanopyFluxes + + + Erik Kluzek 2024-07-16 - ctsm5.2.011 - components/clm (cesm3_0_alpha03a) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.011 + + Merge b4b-dev: + - Remove use_dynroots + - Change NEON NIWO test to HARV + - Fix py_env_create + + + Erik Kluzek 2024-07-16 - ctsm5.2.010 - components/clm (cesm3_0_alpha03a) + https://github.com/ESCOMP/ctsm/tags/ctsm5.2.010 + + Explicit A/C adoption as a new option (turned off for now). + + +cmeps + Michael Levy 2024-08-06 - cmeps1.0.12 - src/drivers/nuopc/ (cesm3_0_alpha03a) + https://github.com/ESCOMP/CMEPS/tags/cmeps1.0.? + + Update default values for CCSM_BGC and CCSM_CO2_PPMV when running MOM6 + MARBL + Remove all POP2-specific values from config_component_cesm.xml + + + James Edwards 2024-08-01 - cmeps1.0.6 - src/drivers/nuopc/ (cesm3_0_alpha03a) + https://github.com/ESCOMP/CMEPS/tags/cmeps1.0.6 + + fix an error in the aoflux wind_gust fields + + + Chris Fischer 2024-08-09 - cmeps1.0.13 - src/drivers/nuopc/ (cesm3_0_alpha03a) + https://github.com/ESCOMP/CMEPS/tags/cmeps1.0.13 + + Simplify logic for glc_renormalize_smb. Changes answers for T compsets + + +fms + Michael Levy 2024-08-06 - fi_240807 - libraries/fms (cesm3_0_alpha03a) + https://github.com/ESCOMP/FMS_interface/tags/fi_2408?? + + Increase max number of fields per file so MOM6 can write all the MARBL diagnostics out in the test suite + + + Alper Altuntas 2024-08-06 - fi_240806 - libraries/fms (cesm3_0_alpha03a) + https://github.com/ESCOMP/FMS_interface/tags/fi_240806 + + fix issue with using compset longname in cesm testing + + +mom + Michael Levy 2024-08-02 - mi_240805 - components/mom (cesm3_0_alpha03a) + https://github.com/ESCOMP/MOM_interface/tags/mi_240802 + + Add MARBL driver + + Needs FMS tag fi_240807 for MARBL tests to run successfully; also needs CMEPS tag ??? to get CO2 right + + + Michael Levy 2024-08-02 - mi_240730 - components/mom (cesm3_0_alpha03a) + https://github.com/ESCOMP/MOM_interface/tags/mi_240730 + + Two MOM6 updates: + + 1. KE-conserving correction to velocity remap + 2. Stochastic GM+E + + Also some interface changes: + + 1. Update ocean_geometry entry for multi-instance + 2. Update compsets and grids (and test list, to reflect new compset names and remove tests on old grids) + 3. Added new stochastic_physics external that can be built with MOM6 + + bit-for-bit is a tricky question... the G_JRA compset should be bfb with the GMOM_JRA compset used in previous tags + Saying "all" because I think if you stick with an identical compset long-name then it will be bfb + + + ============================================================== Tag name: cesm3_0_beta02 Originator(s): CSEG @@ -451,7 +883,7 @@ Problems identified after tag creation: ============================================================== Tag name: cesm3_0_alpha01a Originator(s): CSEG -Date: 24 June 2024 +Date: 21 June 2024 One-line Summary: git-fleximod and remove externals for CESM3 components/cam https://github.com/ESCOMP/CAM/cam6_3_162 ** diff --git a/ccs_config b/ccs_config index 97ee0d2ca..e2a542212 160000 --- a/ccs_config +++ b/ccs_config @@ -1 +1 @@ -Subproject commit 97ee0d2ca1d1a4066a492cedcafe380ad5ccc6ad +Subproject commit e2a542212c4a1aff5ac7d55544ecc6eb8c495c93 diff --git a/cime b/cime index fcb9c6ec1..f89e7a2da 160000 --- a/cime +++ b/cime @@ -1 +1 @@ -Subproject commit fcb9c6ec1e15f2f33995cf247aef3f8ef9f121eb +Subproject commit f89e7a2dae2af669fd60aead591e17fdc4f5cbf4 diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 8b3b6ed71..2451c1302 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -43,6 +43,16 @@ 1850_CAM70%LT_CLM60%BGC-CROP_CICE_MOM6_MOSART_DGLC%NOEVOLVE_SWAV + + BLT1850_MARBL + 1850_CAM70%LT_CLM60%BGC-CROP_CICE_MOM6%MARBL-BIO_MOSART_DGLC%NOEVOLVE_SWAV + + + + BMT1850_MARBL + 1850_CAM70%MT_CLM60%BGC-CROP_CICE_MOM6%MARBL-BIO_MOSART_DGLC%NOEVOLVE_SWAV + + BLTHIST HIST_CAM70%LT_CLM60%BGC-CROP_CICE_MOM6_MOSART_DGLC%NOEVOLVE_SWAV @@ -53,6 +63,11 @@ 1850_CAM70%MT_CLM60%BGC-CROP_CICE_MOM6_MOSART_DGLC%NOEVOLVE_SWAV + + BMT1850_MARBL + 1850_CAM70%MT_CLM60%BGC-CROP_CICE_MOM6%MARBL-BIO_MOSART_DGLC%NOEVOLVE_SWAV + + BMTHIST HIST_CAM70%MT_CLM60%BGC-CROP_CICE_MOM6_MOSART_DGLC%NOEVOLVE_SWAV diff --git a/cime_config/config_pes.xml b/cime_config/config_pes.xml index ddb34f752..080f435ac 100644 --- a/cime_config/config_pes.xml +++ b/cime_config/config_pes.xml @@ -42,14 +42,14 @@ - + 5400 1816 1816 3584 - 408 + 488 4 1 5400 @@ -75,595 +75,17 @@ 0 - - 20 ypd/ 7100 pe-hrs/simyr expected - - 5400 - 1792 - 1792 - 3608 - 612 - 4 - 1 - 5400 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - 0 - 1792 - 5404 - 5400 - 5400 - 0 - - - - 13.9 ypd/ 5300 pe-hrs/simyr expected - - 2700 - 896 - 32 - 1772 - 372 - 32 - 32 - 2700 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - 896 - 928 - 2700 - 896 - 896 - 0 - - - - 10 ypd/ 5100 pe-hrs/simyr expected - - 1920 - 640 - 512 - 1152 - 384 - 64 - 64 - 1920 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - 0 - 704 - 1920 - 1856 - 1792 - 0 - - - - 2.9 ypd/ 4185 pe-hrs/simyr expected - - 448 - 208 - 16 - 224 - 64 - 16 - 16 - 448 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 16 - 0 - 224 - 448 - 0 - 0 - 0 - - - - - - - - - none - - -4 - -2 - -2 - -2 - -2 - -1 - -1 - -4 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - 0 - -2 - -4 - 0 - 0 - 0 - - - - - - - - - - -8 - -3 - -3 - -5 - -8 - 64 - 64 - -8 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - 0 - -3 - -8 - 0 - 64 - 0 - - - - - - - - none - - -8 - -8 - -8 - -8 - -8 - -8 - -8 - -8 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - none - - -16 - -16 - -16 - -16 - -16 - -16 - -10 - -16 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - none - - -16 - -13 - -13 - -2 - -4 - -16 - -1 - -16 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - -13 - 0 - -16 - 0 - -15 - 0 - - - - - - - - none - - 1800 - 720 - 720 - 1080 - 324 - 36 - 36 - 1800 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - 0 - 720 - 1800 - 0 - 1 - 0 - - - - - - - - none - - 1024 - 1024 - 1024 - 1024 - 1024 - 1024 - 160 - 1024 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - none - - 1440 - 1440 - 1440 - 512 - 2048 - 1440 - 160 - 1440 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - 0 - 0 - 1440 - 0 - 0 - 0 - - - - - - - - none - - 48 - 8 - 8 - 40 - 32 - 48 - 48 - 48 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - 8 - 48 - 0 - 0 - 0 - - - - - - - - none - - 160 - 80 - 80 - 80 - 160 - 160 - 160 - 240 - - - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 1 - - - 0 - 0 - 0 - 80 - 0 - 0 - 160 - - - - - - - - none - - 96 - 48 - 48 - 48 - 12 - 96 - 96 - 96 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 48 - 48 - 0 - 96 - 0 - 0 - 0 - - - - - - - - none - - 192 - 72 - 72 - 120 - 24 - 192 - 160 - 192 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 120 - 120 - 0 - 192 - 0 - 0 - 0 - - - - - - - - none + + - 256 - 64 - 64 - 192 - 16 - 256 - 160 - 256 + 5400 + 1816 + 1816 + 3584 + 1768 + 4 + 1 + 5400 1 @@ -677,103 +99,26 @@ 0 - 192 - 0 - 0 - 256 - 0 - 0 - 0 - - - - - - - - none - - 240 - 40 - 40 - 200 - 20 - 240 - 160 - 240 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 240 - 0 + 3584 + 3584 0 - 240 + 5400 0 0 0 - - - - - - none + + 20 ypd/ 7100 pe-hrs/simyr expected - 120 - 48 - 48 - 72 - 24 - 120 - 1 + 5400 + 1792 + 1792 + 3608 + 612 + 4 1 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 0 - 0 - 48 - 120 - 0 - 0 - 0 - 0 - - - - - - - - none - - -8 - -4 - -4 - -4 - -1 - -8 - -2 - -8 + 5400 1 @@ -789,28 +134,28 @@ 0 0 0 - -4 - -8 - 0 - 0 + 1792 + 5404 + 5400 + 5400 0 - - - - none + + + + - 60 - 40 - 40 - 20 - 12 - 60 - 60 - 60 + 5400 + 1792 + 1792 + 3608 + 3300 + 4 + 1 + 5400 1 @@ -826,29 +171,24 @@ 0 0 0 - 40 - 60 - 0 - 0 + 1792 + 5404 + 5400 + 5400 0 - - - - - - - none + + 20 ypd/ 10500 pe-hrs/simyr expected - 576 - 288 - 288 - 288 - 180 - 36 - 36 - 576 + 5400 + 1792 + 1792 + 3608 + 3300 + 4 + 1 + 5400 1 @@ -864,25 +204,24 @@ 0 0 0 - 288 - 576 - 0 - 0 + 1792 + 5404 + 5400 + 5400 0 - - - none + + 13.9 ypd/ 5300 pe-hrs/simyr expected - 1800 - 900 - 900 - 900 - 720 - 36 - 36 - 1800 + 2700 + 896 + 32 + 1772 + 372 + 32 + 32 + 2700 1 @@ -897,29 +236,25 @@ 0 0 - 0 - 900 - 1800 - 0 - 0 + 896 + 928 + 2700 + 896 + 896 0 - - - - - - about 6.5ypd expected + + 13.9 ypd/ 8000 pe-hrs/simyr expected - -16 - -13 - -13 - -2 - -4 - -16 - -1 - -16 + 2700 + 896 + 32 + 1772 + 1908 + 32 + 32 + 2700 1 @@ -934,59 +269,25 @@ 0 0 - 0 - -13 - -16 - 0 - -15 - 0 - - - - - - 1152 - 864 - 864 - 252 - 36 - 1152 - 36 - 1152 - - - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - - - 0 - 0 - 0 - 864 - 1152 - 0 - 1116 + 896 + 928 + 2700 + 896 + 896 0 - - - about 8 ypd expected + + 10 ypd/ 5500 pe-hrs/simyr expected - -20 - -17 - -17 - -3 - -4 - -20 - 1 - -20 + 1920 + 640 + 512 + 1152 + 384 + 64 + 64 + 1920 1 @@ -1002,24 +303,24 @@ 0 0 0 - -17 - -20 - 0 - 0 + 704 + 1920 + 1856 + 1792 0 - - about 15ypd expected + + 10 ypd/ 7000 pe-hrs/simyr expected - 1728 - 1440 - 1440 - 252 - 432 - 1728 - 36 - 1728 + 1920 + 640 + 512 + 1152 + 1408 + 64 + 64 + 1920 1 @@ -1035,59 +336,24 @@ 0 0 0 - 1440 - 1728 - 0 - 1692 - 0 - - - - about 25ypd expected - - -32 - -24 - -24 - -8 - 256 - -32 - 32 - -32 - - - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - - - 0 - 0 - 0 - -24 - -32 - 0 - 1408 + 704 + 1920 + 1856 + 1792 0 - - - - about 6.5ypd expected + + 2.9 ypd/ 4300 pe-hrs/simyr expected - -10 - -8 - -8 - -2 - -2 - -10 - -1 - -10 + 448 + 208 + 16 + 224 + 64 + 16 + 16 + 448 1 @@ -1101,67 +367,26 @@ 0 - 0 - 0 - -8 - -10 - 0 - -12 - 0 - - - - - - - - none - - 384 - 64 - 64 - 320 - 32 - 384 - 160 - 64 - - - 4 - 4 - 4 - 4 - 4 - 4 - 4 - 1 - - - 0 - 0 + 16 0 - 64 - 384 + 224 + 448 0 0 0 - - - - - - none + + 2.9 ypd/ 6400 pe-hrs/simyr expected - 1024 - 416 - 1024 - 1024 - 1024 - 1024 - 160 - 1024 + 448 + 208 + 16 + 224 + 320 + 16 + 16 + 448 1 @@ -1175,10 +400,10 @@ 0 - 0 + 16 0 - 0 - 0 + 224 + 448 0 0 0 @@ -1187,7 +412,6 @@ -