diff --git a/components/eamxx/cime_config/namelist_defaults_scream.xml b/components/eamxx/cime_config/namelist_defaults_scream.xml
index f09d10b0b32..ef11b40431a 100644
--- a/components/eamxx/cime_config/namelist_defaults_scream.xml
+++ b/components/eamxx/cime_config/namelist_defaults_scream.xml
@@ -232,6 +232,7 @@ be lost if SCREAM_HACK_XML is not enabled.
7.0
0.1
0.1
+ false
diff --git a/components/eamxx/src/physics/shoc/eamxx_shoc_process_interface.cpp b/components/eamxx/src/physics/shoc/eamxx_shoc_process_interface.cpp
index 657f9487611..9a99d0f1599 100644
--- a/components/eamxx/src/physics/shoc/eamxx_shoc_process_interface.cpp
+++ b/components/eamxx/src/physics/shoc/eamxx_shoc_process_interface.cpp
@@ -91,6 +91,25 @@ void SHOCMacrophysics::set_grids(const std::shared_ptr grids
add_field("ustar", scalar2d, m/s, grid_name, ps);
add_field("obklen", scalar2d, m, grid_name, ps);
+ // Extra SHOC output diagnostics
+ if (m_params.get("extra_shoc_diags", false)) {
+
+ // Diagnostic output - mid point grid
+ add_field("brunt", scalar3d_mid, pow(s,-1), grid_name, ps);
+ add_field("shoc_mix", scalar3d_mid, m, grid_name, ps);
+ add_field("isotropy", scalar3d_mid, s, grid_name, ps);
+
+ // Diagnostic output - interface grid
+ add_field("wthl_sec", scalar3d_int, K*(m/s), grid_name, ps);
+ add_field("thl_sec", scalar3d_int, pow(K,2), grid_name, ps);
+ add_field("wqw_sec", scalar3d_int, (kg/kg)*(m/s), grid_name, ps);
+ add_field("qw_sec", scalar3d_int, pow(kg/kg,2), grid_name, ps);
+ add_field("uw_sec", scalar3d_int, pow(m/s,2), grid_name, ps);
+ add_field("vw_sec", scalar3d_int, pow(m/s,2), grid_name, ps);
+ add_field("w3", scalar3d_int, pow(m/s,3), grid_name, ps);
+
+ } // Extra SHOC output diagnostics
+
// Tracer group
add_group("tracers", grid_name, ps, Bundling::Required);
@@ -495,6 +514,41 @@ void SHOCMacrophysics::run_impl (const double dt)
default_policy,
shoc_postprocess);
Kokkos::fence();
+
+ // Extra SHOC output diagnostics
+ if (m_params.get("extra_shoc_diags", false)) {
+
+ const auto& shoc_mix = get_field_out("shoc_mix").get_view();
+ Kokkos::deep_copy(shoc_mix,history_output.shoc_mix);
+
+ const auto& brunt = get_field_out("brunt").get_view();
+ Kokkos::deep_copy(brunt,history_output.brunt);
+
+ const auto& w3 = get_field_out("w3").get_view();
+ Kokkos::deep_copy(w3,history_output.w3);
+
+ const auto& isotropy = get_field_out("isotropy").get_view();
+ Kokkos::deep_copy(isotropy,history_output.isotropy);
+
+ const auto& wthl_sec = get_field_out("wthl_sec").get_view();
+ Kokkos::deep_copy(wthl_sec,history_output.wthl_sec);
+
+ const auto& wqw_sec = get_field_out("wqw_sec").get_view();
+ Kokkos::deep_copy(wqw_sec,history_output.wqw_sec);
+
+ const auto& uw_sec = get_field_out("uw_sec").get_view();
+ Kokkos::deep_copy(uw_sec,history_output.uw_sec);
+
+ const auto& vw_sec = get_field_out("vw_sec").get_view();
+ Kokkos::deep_copy(vw_sec,history_output.vw_sec);
+
+ const auto& qw_sec = get_field_out("qw_sec").get_view();
+ Kokkos::deep_copy(qw_sec,history_output.qw_sec);
+
+ const auto& thl_sec = get_field_out("thl_sec").get_view();
+ Kokkos::deep_copy(thl_sec,history_output.thl_sec);
+
+ } // Extra SHOC output diagnostics
}
// =========================================================================================
void SHOCMacrophysics::finalize_impl()