diff --git a/.gitmodules b/.gitmodules
index 2943501f0..3584de532 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.15
+        fxtag = ccs_config_cesm1.0.16
         fxrequired = ToplevelRequired
 
 [submodule "cime"]
         path = cime
         url = https://github.com/ESMCI/cime
         fxDONOTUSEurl = https://github.com/ESMCI/cime
-        fxtag = cime6.1.46
+        fxtag = cime6.1.56
         fxrequired = ToplevelRequired
 
 [submodule "fms"]
@@ -51,14 +51,14 @@
         path = share
         url = https://github.com/ESCOMP/CESM_share
         fxDONOTUSEurl = https://github.com/ESCOMP/CESM_share
-        fxtag = share1.1.5
+        fxtag = share1.1.7
         fxrequired = ToplevelRequired
 
 [submodule "cam"]
         path = components/cam
         url = https://www.github.com/ESCOMP/CAM
         fxDONOTUSEurl = https://www.github.com/ESCOMP/CAM
-        fxtag = cam6_4_047
+        fxtag = cam6_4_048
         fxrequired = ToplevelRequired
 
 [submodule "clm"]
@@ -66,14 +66,14 @@
         url = https://github.com/ESCOMP/CTSM
         fxDONOTUSEurl = https://github.com/ESCOMP/CTSM
         fxrequired = ToplevelRequired
-        fxtag = ctsm5.3.014
+        fxtag = ctsm5.3.016
 
 [submodule "cice"]
         path = components/cice
         url = https://github.com/ESCOMP/CESM_CICE
         fxDONOTUSEurl = https://github.com/ESCOMP/CESM_CICE
         fxrequired = ToplevelRequired
-        fxtag = cesm3_cice6_6_0_2
+        fxtag = cesm3_cice6_6_0_5
 
 [submodule "mom"]
         path = components/mom
@@ -86,7 +86,7 @@
         path = components/cism
         url = https://github.com/ESCOMP/cism-wrapper.git
         fxDONOTUSEurl = https://github.com/ESCOMP/cism-wrapper.git
-        fxtag = cismwrap_2_2_002
+        fxtag = cismwrap_2_2_005
         fxrequired = ToplevelRequired
 
 [submodule "cdeps"]
@@ -94,21 +94,21 @@
         url = https://github.com/ESCOMP/CDEPS
         fxDONOTUSEurl = https://github.com/ESCOMP/CDEPS
         fxrequired = ToplevelRequired
-        fxtag = cdeps1.0.57
+        fxtag = cdeps1.0.61
 
 [submodule "cmeps"]
         path = components/cmeps
         url = https://github.com/ESCOMP/CMEPS.git
         fxDONOTUSEurl = https://github.com/ESCOMP/CMEPS.git
         fxrequired = ToplevelRequired
-        fxtag = cmeps1.0.25
+        fxtag = cmeps1.0.33
 
 [submodule "rtm"]
         path = components/rtm
         url = https://github.com/ESCOMP/RTM
         fxDONOTUSEurl = https://github.com/ESCOMP/RTM
         fxrequired = ToplevelRequired
-        fxtag = rtm1_0_83
+        fxtag = rtm1_0_84
 
 [submodule "ww3"]
         path = components/ww3
@@ -122,14 +122,14 @@
         url = https://github.com/ESCOMP/mizuRoute
         fxDONOTUSEurl = https://github.com/ESCOMP/mizuRoute
         fxrequired = ToplevelRequired
-        fxtag = cesm-coupling.n02_v2.1.3
+        fxtag = cesm-coupling.n03_v2.2.0
 
 [submodule "mosart"]
         path = components/mosart
         url = https://github.com/ESCOMP/MOSART
         fxDONOTUSEurl = https://github.com/ESCOMP/MOSART
         fxrequired = ToplevelRequired
-        fxtag = mosart1.1.05
+        fxtag = mosart1.1.06
 
 [submodule "parallelio"]
         path = libraries/parallelio
@@ -157,4 +157,4 @@
         url = https://github.com/NCAR/CUPiD.git
         fxDONOTUSEurl = https://github.com/NCAR/CUPiD.git
         fxrequired = ToplevelRequired
-        fxtag = v0.1.1
+        fxtag = v0.1.2
diff --git a/.lib/git-fleximod/git_fleximod/cli.py b/.lib/git-fleximod/git_fleximod/cli.py
index ac9493cfc..131466b9b 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.9.3"
+__version__ = "0.9.4"
 
 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 13f35df95..2c2601fa1 100755
--- a/.lib/git-fleximod/git_fleximod/git_fleximod.py
+++ b/.lib/git-fleximod/git_fleximod/git_fleximod.py
@@ -181,6 +181,8 @@ def init_submodule_from_gitmodules(gitmodules, name, root_dir, logger):
     url = gitmodules.get(name, "url")
     assert path and url, f"Malformed .gitmodules file {path} {url}"
     tag = gitmodules.get(name, "fxtag")
+    if not tag:
+        tag = gitmodules.get(name, "hash")
     fxurl = gitmodules.get(name, "fxDONOTUSEurl")
     fxsparse = gitmodules.get(name, "fxsparse")
     fxrequired = gitmodules.get(name, "fxrequired")
@@ -250,7 +252,6 @@ def submodules_update(gitmodules, root_dir, requiredlist, force):
                 newrequiredlist = ["AlwaysRequired"]
                 if optional:
                     newrequiredlist.append("AlwaysOptional")
-
                 submodules_update(gitsubmodules, repodir, newrequiredlist, force=force)
 
 def local_mods_output():
diff --git a/.lib/git-fleximod/pyproject.toml b/.lib/git-fleximod/pyproject.toml
index 1d0419ad2..65924ff9a 100644
--- a/.lib/git-fleximod/pyproject.toml
+++ b/.lib/git-fleximod/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "git-fleximod"
-version = "0.9.3"
+version = "0.9.4"
 description = "Extended support for git-submodule and git-sparse-checkout"
 authors = ["Jim Edwards <jedwards@ucar.edu>"]
 maintainers = ["Jim Edwards <jedwards@ucar.edu>"]
diff --git a/.lib/git-fleximod/tbump.toml b/.lib/git-fleximod/tbump.toml
index b432206a5..be0b799d3 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.9.3"
+current = "0.9.4"
 
 # Example of a semver regexp.
 # Make sure this matches current_version before
diff --git a/ccs_config b/ccs_config
index 26aacc140..a712a9204 160000
--- a/ccs_config
+++ b/ccs_config
@@ -1 +1 @@
-Subproject commit 26aacc1403c01f44df4ab05d275c0fccd5ae3dce
+Subproject commit a712a920453dc0cb2831dce576e78c389b567f7e
diff --git a/cime b/cime
index 85922c028..ac8e58310 160000
--- a/cime
+++ b/cime
@@ -1 +1 @@
-Subproject commit 85922c028ff8a5b9f5573888f4240cdc4b8104a3
+Subproject commit ac8e583108b1ce1f592a6f6436c71d6dc087f447
diff --git a/components/cice b/components/cice
index 604b66adc..787d3ccf3 160000
--- a/components/cice
+++ b/components/cice
@@ -1 +1 @@
-Subproject commit 604b66adc0a381000099e93429a1d6e1613eb0db
+Subproject commit 787d3ccf3b242214b0add3e474672f0609efcf2d
diff --git a/components/rtm b/components/rtm
index a2cd8249e..6899b5581 160000
--- a/components/rtm
+++ b/components/rtm
@@ -1 +1 @@
-Subproject commit a2cd8249e40e8c61d68fe13145c4cf9d5e098f68
+Subproject commit 6899b55816ee4d9b7cf983d74ba2997b97a13c4d
diff --git a/components/ww3 b/components/ww3
index d16f7c8fd..fc5aa8434 160000
--- a/components/ww3
+++ b/components/ww3
@@ -1 +1 @@
-Subproject commit d16f7c8fdefb51385703f5821942a0c124812323
+Subproject commit fc5aa843472c36993ab479263f7c384bfc7ab4af