diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml
index 36887f941..176e745c3 100644
--- a/cime_config/config_compsets.xml
+++ b/cime_config/config_compsets.xml
@@ -92,6 +92,12 @@
HISTC_CAM70%LT_CLM60%BGC-CROP_CICE_MOM6_MOSART_DGLC%NOEVOLVE_WW3
+
+
+ BHISTC_LT_DART
+ HISTC_CAM70%LT_CLM60%BGC_CICE_MOM6_MOSART_DGLC%NOEVOLVE_SWAV
+
diff --git a/cime_config/testlist_allactive.xml b/cime_config/testlist_allactive.xml
index 300e7efd6..a4efa81ba 100644
--- a/cime_config/testlist_allactive.xml
+++ b/cime_config/testlist_allactive.xml
@@ -73,6 +73,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/README_layout b/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/README_layout
new file mode 100644
index 000000000..7103c12be
--- /dev/null
+++ b/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/README_layout
@@ -0,0 +1,62 @@
+If the coarse resolution (ne3pg3_ne3pg3_t232) is used in a BHIST MCC test,
+then the number of instances and MAX_TASKS_PER_NODE must be chosen
+in a way that's consistent with how cime set the PE layout.
+
+1) MOM6 coarse resolution is limited (2026-3) to 6 tasks.
+ The SE dycore is limited to 6 x ne^2 tasks,
+ so the ne3 grid could be given up to 54 tasks.
+ drv-tx10deg/shell_commands:ROOTPE_OCN assumes that only 6 will be given
+ to the other components, and then 6 to ocn, so tasks_per_inst = 12.
+ If more tasks are given to the other components,
+ then ROOTPE_OCN must be changed to that number.
+2) If tasks_per_inst = 12, NINST <=10, and there are 128 PEs/node,
+ then the job will fit in 1 node and be run in derecho's develop queue.
+ The default PE layout will work.
+ You can stop here.
+ For NINST > 10 the job requires multiple nodes and the default layout
+ does not work because at least one instance will be split onto 2 nodes.
+ During testing these jobs never finished, despite trying their best.
+3) The minimum number of nodes required
+ min_nodes = int[(NINST * tasks_per_inst) / PEs_per_node] +1.
+ For NINST = 14 on derecho (128 PEs/node),
+ min_nodes = 2
+4) Cime calculates PEs/instance from
+ PEs_per_inst = (PEs_per_node * min_nodes) / NINST
+ = 17
+5) Whole instances must be assigned to each node.
+ That is, no instance can be split between 2 nodes.
+ In this example, put
+ NINST_per_node = int(NINST / min_nodes)
+ = 7 instances
+ on each node by setting
+ MAX_TASKS_PER_NODE = NINST_per_node * PEs_per_inst
+ = 7 * 17 = 119.
+ in ./shell_commands.
+6) If your chosen NINST doesn't divide evenly by min_nodes,
+ then there will be "left over" instances after NINST_per_node * min_nodes
+ instances have been distributed.
+ They might fit into the last node.
+ If they don't, you'll need to add a node to the job request.
+ Alternatively, change NINST by a small number to make it divisible and try again,
+ starting at 3).
+7) Use NINST in the test modifier _C{NINST} of the test name
+
+Assuming each instance gets 6 tasks for ocn and 6 for the other components:
+NINST = 15;
+ min_nodes = [15 * 12 / 128] + 1 = 2
+ PEs_per_inst = 128 * 2 / 15 = 17
+ NINST_per_node = int(15 / 2) = 7 with 1 instance left over
+> MAX_TASKS_PER_NODE = 7 * 17 = 119
+ 128 - 119 = 9 PEs are available in the last node,
+ which is not enough for the leftover instance, so an additional node is needed.
+NINST = 40;
+ min_nodes = 40 * 12 / 128 = 4
+ PEs_per_inst = 128 * 4 / 40 = 12
+ NINST_per_node = 40 / 4 = 10
+> MAX_TASKS_PER_NODE = 10 * 12 = 120
+NINST = 80;
+ min_nodes = 80 * 12 / 128 = 8
+ PEs_per_inst = 128 * 8 / 80 = 12
+ NINST_per_node = 80 / 8 = 10
+> MAX_TASKS_PER_NODE = 10 * 12 = 120
+
diff --git a/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/include_user_mods b/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/include_user_mods
new file mode 100644
index 000000000..ae8286cb1
--- /dev/null
+++ b/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/include_user_mods
@@ -0,0 +1 @@
+../crossleap
diff --git a/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/shell_commands b/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/shell_commands
new file mode 100644
index 000000000..4a0b8a94b
--- /dev/null
+++ b/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/shell_commands
@@ -0,0 +1,7 @@
+driver=`./xmlquery --value COMP_INTERFACE`
+if [ "$driver" = "nuopc" ]; then
+ ./xmlchange GLC_NCPL=4
+fi
+
+./xmlchange JOB_PRIORITY=premium
+./xmlchange MAX_TASKS_PER_NODE=120
diff --git a/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/user_nl_cam b/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/user_nl_cam
new file mode 100644
index 000000000..efd197aa7
--- /dev/null
+++ b/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/user_nl_cam
@@ -0,0 +1 @@
+inithist='ENDOFRUN'
diff --git a/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/user_nl_clm b/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/user_nl_clm
new file mode 100644
index 000000000..1623469d7
--- /dev/null
+++ b/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/user_nl_clm
@@ -0,0 +1,2 @@
+check_finidat_year_consistency = .false.
+for_testing_allow_non_annual_changes = .true.
diff --git a/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/user_nl_mosart b/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/user_nl_mosart
new file mode 100644
index 000000000..9a24bab86
--- /dev/null
+++ b/cime_config/testmods_dirs/allactive/DART_BHIST_lowres/user_nl_mosart
@@ -0,0 +1 @@
+frivinp = "/glade/campaign/cesm/cesmdata/inputdata/rof/mosart/MOSART_routing_Global_0.5x0.5_c170601.nc"