Repository: ACCESS-NRI/access-om3-configs
Pull request #157: Update diag_table
Author: login: minghangli-uni
Created: 2025-01-17T01:04:37Z | Merged: 2025-03-12T04:59:33Z

See https://github.com/COSIMA/access-om3/issues/257




Diff:
diff --git a/diag_table b/diag_table
index a073cb50c..e966e8096 100644
--- a/diag_table
+++ b/diag_table
@@ -1,151 +1,422 @@
-"MOM6 diagnostic fields table"
-1 1 1 0 0 0
-### Section-1: File List
-#========================
-"access-om3.mom6.h.rho2%4yr-%2mo",                      1,  "months", 1, "days",   "time", 1, "months"
-"access-om3.mom6.h.native%4yr-%2mo",                    1,  "months", 1, "days",   "time", 1, "months"
-"access-om3.mom6.h.z%4yr-%2mo",                         1,  "months", 1, "days",   "time", 1, "months"
-"access-om3.mom6.h.sfc%4yr-%2mo",                       1,  "days",   1, "days",   "time", 1, "months"
-"access-om3.mom6.h.static",                             -1, "days",   1, "days",   "time"
-
-### Section-2: Fields List
-#=========================
-# "access-om3.mom6.h.rho2%4yr-%2mo"
-"ocean_model_rho2", "volcello","volcello","access-om3.mom6.h.rho2%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_rho2", "vmo",     "vmo",     "access-om3.mom6.h.rho2%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_rho2", "vhGM",    "vhGM",    "access-om3.mom6.h.rho2%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_rho2", "vhml",    "vhml",    "access-om3.mom6.h.rho2%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_rho2", "umo",     "umo",     "access-om3.mom6.h.rho2%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_rho2", "uhGM",    "uhGM",    "access-om3.mom6.h.rho2%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_rho2", "uhml",    "uhml",    "access-om3.mom6.h.rho2%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_rho2", "thetao",  "thetao",  "access-om3.mom6.h.rho2%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_rho2", "so",      "so",      "access-om3.mom6.h.rho2%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_rho2", "agessc",  "agessc",  "access-om3.mom6.h.rho2%4yr-%2mo", "all", "mean", "none", 2
-
-# "access-om3.mom6.h.native%4yr-%2mo"
-"ocean_model", "soga",         "soga",         "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "thetaoga",     "thetaoga",     "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "uh",           "uh",           "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "vh",           "vh",           "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "vhbt",         "vhbt",         "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "uhbt",         "uhbt",         "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "agessc",       "agessc",       "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "T_ady_2d",     "T_ady_2d",     "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "T_adx_2d",     "T_adx_2d",     "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "T_diffy_2d",   "T_diffy_2d",   "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "T_diffx_2d",   "T_diffx_2d",   "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "diftrelo",     "diftrelo",     "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "diftrblo",     "diftrblo",     "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "difmxybo",     "difmxybo",     "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "difmxylo",     "difmxylo",     "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "volcello",     "volcello",     "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "vmo",          "vmo",          "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "vhGM",         "vhGM",         "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "vhml",         "vhml",         "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "umo",          "umo",          "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "uhGM",         "uhGM",         "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "uhml",         "uhml",         "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "uo",           "uo",           "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "vo",           "vo",           "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "h",            "h",            "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "e",            "e",            "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "thetao",       "thetao",       "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "so",           "so",           "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "KE",           "KE",           "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "rhopot0",      "rhopot0",      "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "KPP_OBLdepth", "oml",          "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "tauuo",        "tauuo",        "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "tauvo",        "tauvo",        "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "friver",       "friver",       "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "prsn",         "prsn",         "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "prlq",         "prlq",         "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "evs",          "evs",          "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "hfsso",        "hfsso",        "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "rlntds",       "rlntds",       "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "hfsnthermds",  "hfsnthermds",  "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "sfdsi",        "sfdsi",        "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "rsntds",       "rsntds",       "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "hfds",         "hfds",         "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "ustar",        "ustar",        "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "hfsifrazil",   "hfsifrazil",   "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "wfo",          "wfo",          "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "vprec",        "vprec",        "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "ficeberg",     "ficeberg",     "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "fsitherm",     "fsitherm",     "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "hflso",        "hflso",        "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "pso",          "pso",          "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "seaice_melt_heat","seaice_melt_heat","access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "Heat_PmE",     "Heat_PmE",     "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "salt_flux_added","salt_flux_added","access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "heat_content_lrunoff","heat_content_lrunoff","access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "heat_content_frunoff","heat_content_frunoff","access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "heat_content_lprec","heat_content_lprec","access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "heat_content_fprec","heat_content_fprec","access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "heat_content_vprec","heat_content_vprec","access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "heat_content_cond","heat_content_cond","access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "heat_content_evap","heat_content_evap","access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "SSH",          "SSH",          "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "tos",          "tos",          "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "sos",          "sos",          "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "SSU",          "SSU",          "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "SSV",          "SSV",          "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "mass_wt",      "mass_wt",      "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "opottempmint", "opottempmint", "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "somint",       "somint",       "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "Rd_dx",        "Rd_dx",        "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "speed",        "speed",        "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "mlotst",       "mlotst",       "access-om3.mom6.h.native%4yr-%2mo", "all", "mean", "none", 2
-
-# "access-om3.mom6.h.z%4yr-%2mo"
-"ocean_model_z", "uo",      "uo",      "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "vo",      "vo",      "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "h",       "h",       "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "thetao",  "thetao",  "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "so",      "so",      "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "agessc",  "agessc",  "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "rhopot0", "rhopot0", "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "N2_int",  "N2_int",  "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "volcello","volcello","access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "vmo",     "vmo",     "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "vhGM",    "vhGM",    "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "vhml",    "vhml",    "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "umo",     "umo",     "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "uhGM",    "uhGM",    "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model_z", "uhml",    "uhml",    "access-om3.mom6.h.z%4yr-%2mo", "all", "mean", "none", 2
-
-# "access-om3.mom6.h.sfc%4yr-%2mo"
-"ocean_model", "SSH",          "SSH",          "access-om3.mom6.h.sfc%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "tos",          "tos",          "access-om3.mom6.h.sfc%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "sos",          "sos",          "access-om3.mom6.h.sfc%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "SSU",          "SSU",          "access-om3.mom6.h.sfc%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "SSV",          "SSV",          "access-om3.mom6.h.sfc%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "mass_wt",      "mass_wt",      "access-om3.mom6.h.sfc%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "opottempmint", "opottempmint", "access-om3.mom6.h.sfc%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "somint",       "somint",       "access-om3.mom6.h.sfc%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "Rd_dx",        "Rd_dx",        "access-om3.mom6.h.sfc%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "speed",        "speed",        "access-om3.mom6.h.sfc%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "mlotst",       "mlotst",       "access-om3.mom6.h.sfc%4yr-%2mo", "all", "mean", "none", 2
-"ocean_model", "KPP_OBLdepth", "oml",          "access-om3.mom6.h.sfc%4yr-%2mo", "all", "mean", "none", 2
-
-# "access-om3.mom6.h.static"
-"ocean_model", "geolon",      "geolon",      "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "geolat",      "geolat",      "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "geolon_c",    "geolon_c",    "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "geolat_c",    "geolat_c",    "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "geolon_u",    "geolon_u",    "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "geolat_u",    "geolat_u",    "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "geolon_v",    "geolon_v",    "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "geolat_v",    "geolat_v",    "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "deptho",      "deptho",      "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "wet",         "wet",         "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "wet_c",       "wet_c",       "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "wet_u",       "wet_u",       "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "wet_v",       "wet_v",       "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "Coriolis",    "Coriolis",    "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "areacello",   "areacello",   "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "areacello_cu","areacello_cu","access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "areacello_cv","areacello_cv","access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "areacello_bu","areacello_bu","access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "sin_rot",     "sin_rot",     "access-om3.mom6.h.static", "all", ".false.", "none", 2
-"ocean_model", "cos_rot",     "cos_rot",     "access-om3.mom6.h.static", "all", ".false.", "none", 2
+ACCESS-OM3
+1900 1 1 0 0 0
 
+#########################################################################################################
+#                                                                                                       #
+# DO NOT EDIT! Instead, edit diag_table_source.yaml and run make_diag_table.py to re-generate this file #
+#                                                                                                       #
+#########################################################################################################
+
+
+# static 2d grid data
+
+"access-om3.mom6.static", -1, "months", 1, "days", "time"
+"ocean_model", "areacello", "areacello", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "areacello_cu", "areacello_cu", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "areacello_cv", "areacello_cv", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "areacello_bu", "areacello_bu", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "dxt", "dxt", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "dyt", "dyt", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "geolat_c", "geolat_c", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "geolat", "geolat", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "geolat_u", "geolat_u", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "geolat_v", "geolat_v", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "geolon_c", "geolon_c", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "geolon", "geolon", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "geolon_u", "geolon_u", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "geolon_v", "geolon_v", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "deptho", "deptho", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "wet", "wet", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "wet_c", "wet_c", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "wet_u", "wet_u", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "wet_v", "wet_v", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "Coriolis", "Coriolis", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "sin_rot", "sin_rot", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "cos_rot", "cos_rot", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "dxCu", "dxCu", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "dyCu", "dyCu", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "dxCv", "dxCv", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "dyCv", "dyCv", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "dyCuo", "dyCuo", "access-om3.mom6.static", "all", "none", "none", 1
+"ocean_model", "dxCvo", "dxCvo", "access-om3.mom6.static", "all", "none", "none", 1
+
+
+# monthly 3d fields
+
+"access-om3.mom6.3d.h.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "h", "h", "access-om3.mom6.3d.h.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.e.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "e", "e", "access-om3.mom6.3d.e.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.agessc.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "agessc", "agessc", "access-om3.mom6.3d.agessc.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.difmxybo.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "difmxybo", "difmxybo", "access-om3.mom6.3d.difmxybo.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.difmxylo.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "difmxylo", "difmxylo", "access-om3.mom6.3d.difmxylo.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.diftrelo.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "diftrelo", "diftrelo", "access-om3.mom6.3d.diftrelo.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.diftrblo.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "diftrblo", "diftrblo", "access-om3.mom6.3d.diftrblo.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.rhopot0.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "rhopot0", "rhopot0", "access-om3.mom6.3d.rhopot0.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.rhopot2.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "rhopot2", "rhopot2", "access-om3.mom6.3d.rhopot2.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.thetao.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "thetao", "thetao", "access-om3.mom6.3d.thetao.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.so.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "so", "so", "access-om3.mom6.3d.so.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.T_adx.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "T_adx", "T_adx", "access-om3.mom6.3d.T_adx.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.T_ady.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "T_ady", "T_ady", "access-om3.mom6.3d.T_ady.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.S_adx.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "S_adx", "S_adx", "access-om3.mom6.3d.S_adx.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.S_ady.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "S_ady", "S_ady", "access-om3.mom6.3d.S_ady.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.T_diffx.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "T_diffx", "T_diffx", "access-om3.mom6.3d.T_diffx.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.T_diffy.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "T_diffy", "T_diffy", "access-om3.mom6.3d.T_diffy.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.S_diffx.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "S_diffx", "S_diffx", "access-om3.mom6.3d.S_diffx.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.S_diffy.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "S_diffy", "S_diffy", "access-om3.mom6.3d.S_diffy.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.umo.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "umo", "umo", "access-om3.mom6.3d.umo.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.vmo.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "vmo", "vmo", "access-om3.mom6.3d.vmo.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.uo.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "uo", "uo", "access-om3.mom6.3d.uo.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.vo.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "vo", "vo", "access-om3.mom6.3d.vo.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.uh.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "uh", "uh", "access-om3.mom6.3d.uh.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.vh.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "vh", "vh", "access-om3.mom6.3d.vh.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.uhGM.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "uhGM", "uhGM", "access-om3.mom6.3d.uhGM.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.vhGM.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "vhGM", "vhGM", "access-om3.mom6.3d.vhGM.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.uhml.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "uhml", "uhml", "access-om3.mom6.3d.uhml.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.vhml.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "vhml", "vhml", "access-om3.mom6.3d.vhml.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.thkcello.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "thkcello", "thkcello", "access-om3.mom6.3d.thkcello.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.3d.KE.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "KE", "KE", "access-om3.mom6.3d.KE.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+
+# monthly 3d squared fields
+
+"access-om3.mom6.3d.uo.1mon.pow02.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "uo", "uo", "access-om3.mom6.3d.uo.1mon.pow02.%4yr%2mo", "all", "pow02", "none", 2
+
+"access-om3.mom6.3d.vo.1mon.pow02.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "vo", "vo", "access-om3.mom6.3d.vo.1mon.pow02.%4yr%2mo", "all", "pow02", "none", 2
+
+
+# monthly 2d fields
+
+"access-om3.mom6.2d.evs.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "evs", "evs", "access-om3.mom6.2d.evs.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.ficeberg.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "ficeberg", "ficeberg", "access-om3.mom6.2d.ficeberg.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.friver.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "friver", "friver", "access-om3.mom6.2d.friver.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.fsitherm.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "fsitherm", "fsitherm", "access-om3.mom6.2d.fsitherm.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.heat_content_cond.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "heat_content_cond", "heat_content_cond", "access-om3.mom6.2d.heat_content_cond.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.heat_content_evap.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "heat_content_evap", "heat_content_evap", "access-om3.mom6.2d.heat_content_evap.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.heat_content_fprec.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "heat_content_fprec", "heat_content_fprec", "access-om3.mom6.2d.heat_content_fprec.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.heat_content_frunoff.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "heat_content_frunoff", "heat_content_frunoff", "access-om3.mom6.2d.heat_content_frunoff.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.heat_content_lrunoff.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "heat_content_lrunoff", "heat_content_lrunoff", "access-om3.mom6.2d.heat_content_lrunoff.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.heat_content_lprec.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "heat_content_lprec", "heat_content_lprec", "access-om3.mom6.2d.heat_content_lprec.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.hfrunoffds.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "hfrunoffds", "hfrunoffds", "access-om3.mom6.2d.hfrunoffds.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.hfrainds.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "hfrainds", "hfrainds", "access-om3.mom6.2d.hfrainds.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.Heat_PmE.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "Heat_PmE", "Heat_PmE", "access-om3.mom6.2d.Heat_PmE.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.net_heat_coupler.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "net_heat_coupler", "net_heat_coupler", "access-om3.mom6.2d.net_heat_coupler.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.hfds.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "hfds", "hfds", "access-om3.mom6.2d.hfds.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.hflso.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "hflso", "hflso", "access-om3.mom6.2d.hflso.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.hfsifrazil.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "hfsifrazil", "hfsifrazil", "access-om3.mom6.2d.hfsifrazil.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.hfsnthermds.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "hfsnthermds", "hfsnthermds", "access-om3.mom6.2d.hfsnthermds.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.hfsso.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "hfsso", "hfsso", "access-om3.mom6.2d.hfsso.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.prlq.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "prlq", "prlq", "access-om3.mom6.2d.prlq.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.prsn.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "prsn", "prsn", "access-om3.mom6.2d.prsn.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.wfo.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "wfo", "wfo", "access-om3.mom6.2d.wfo.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.pso.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "pso", "pso", "access-om3.mom6.2d.pso.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.rlntds.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "rlntds", "rlntds", "access-om3.mom6.2d.rlntds.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.rsntds.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "rsntds", "rsntds", "access-om3.mom6.2d.rsntds.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.sfdsi.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "sfdsi", "sfdsi", "access-om3.mom6.2d.sfdsi.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.salt_flux_added.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "salt_flux_added", "salt_flux_added", "access-om3.mom6.2d.salt_flux_added.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.somint.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "somint", "somint", "access-om3.mom6.2d.somint.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.opottempmint.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "opottempmint", "opottempmint", "access-om3.mom6.2d.opottempmint.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.Rd_dx.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "Rd_dx", "Rd_dx", "access-om3.mom6.2d.Rd_dx.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.mass_wt.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "mass_wt", "mass_wt", "access-om3.mom6.2d.mass_wt.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.mlotst.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "mlotst", "mlotst", "access-om3.mom6.2d.mlotst.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.sos.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "sos", "sos", "access-om3.mom6.2d.sos.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.speed.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "speed", "speed", "access-om3.mom6.2d.speed.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.tos.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "tos", "tos", "access-om3.mom6.2d.tos.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.SSH.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "SSH", "SSH", "access-om3.mom6.2d.SSH.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.SSU.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "SSU", "SSU", "access-om3.mom6.2d.SSU.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.SSV.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "SSV", "SSV", "access-om3.mom6.2d.SSV.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.T_adx_2d.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "T_adx_2d", "T_adx_2d", "access-om3.mom6.2d.T_adx_2d.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.T_ady_2d.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "T_ady_2d", "T_ady_2d", "access-om3.mom6.2d.T_ady_2d.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.T_diffx_2d.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "T_diffx_2d", "T_diffx_2d", "access-om3.mom6.2d.T_diffx_2d.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.T_diffy_2d.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "T_diffy_2d", "T_diffy_2d", "access-om3.mom6.2d.T_diffy_2d.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.S_adx_2d.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "S_adx_2d", "S_adx_2d", "access-om3.mom6.2d.S_adx_2d.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.S_ady_2d.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "S_ady_2d", "S_ady_2d", "access-om3.mom6.2d.S_ady_2d.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.S_diffx_2d.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "S_diffx_2d", "S_diffx_2d", "access-om3.mom6.2d.S_diffx_2d.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.S_diffy_2d.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "S_diffy_2d", "S_diffy_2d", "access-om3.mom6.2d.S_diffy_2d.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.tauuo.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "tauuo", "tauuo", "access-om3.mom6.2d.tauuo.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.tauvo.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "tauvo", "tauvo", "access-om3.mom6.2d.tauvo.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.uhbt.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "uhbt", "uhbt", "access-om3.mom6.2d.uhbt.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.vhbt.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "vhbt", "vhbt", "access-om3.mom6.2d.vhbt.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.ustar.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "ustar", "ustar", "access-om3.mom6.2d.ustar.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.umo_2d.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "umo_2d", "umo_2d", "access-om3.mom6.2d.umo_2d.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.vmo_2d.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "vmo_2d", "vmo_2d", "access-om3.mom6.2d.vmo_2d.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.pbo.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "pbo", "pbo", "access-om3.mom6.2d.pbo.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.SW_pen.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "SW_pen", "SW_pen", "access-om3.mom6.2d.SW_pen.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.salt_flux_in.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "salt_flux_in", "salt_flux_in", "access-om3.mom6.2d.salt_flux_in.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.tnkebto.1mon.mean.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "tnkebto", "tnkebto", "access-om3.mom6.2d.tnkebto.1mon.mean.%4yr%2mo", "all", "average", "none", 2
+
+
+# monthly 2d max fields
+
+"access-om3.mom6.2d.mlotst.1mon.max.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "mlotst", "mlotst", "access-om3.mom6.2d.mlotst.1mon.max.%4yr%2mo", "all", "max", "none", 2
+
+"access-om3.mom6.2d.sos.1mon.max.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "sos", "sos", "access-om3.mom6.2d.sos.1mon.max.%4yr%2mo", "all", "max", "none", 2
+
+"access-om3.mom6.2d.tos.1mon.max.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "tos", "tos", "access-om3.mom6.2d.tos.1mon.max.%4yr%2mo", "all", "max", "none", 2
+
+"access-om3.mom6.2d.SSH.1mon.max.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "SSH", "SSH", "access-om3.mom6.2d.SSH.1mon.max.%4yr%2mo", "all", "max", "none", 2
+
+
+# monthly 2d min fields
+
+"access-om3.mom6.2d.mlotst.1mon.min.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "mlotst", "mlotst", "access-om3.mom6.2d.mlotst.1mon.min.%4yr%2mo", "all", "min", "none", 2
+
+"access-om3.mom6.2d.sos.1mon.min.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "sos", "sos", "access-om3.mom6.2d.sos.1mon.min.%4yr%2mo", "all", "min", "none", 2
+
+"access-om3.mom6.2d.tos.1mon.min.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "tos", "tos", "access-om3.mom6.2d.tos.1mon.min.%4yr%2mo", "all", "min", "none", 2
+
+"access-om3.mom6.2d.SSH.1mon.min.%4yr%2mo", 1, "months", 1, "days", "time", 1, "months"
+"ocean_model", "SSH", "SSH", "access-om3.mom6.2d.SSH.1mon.min.%4yr%2mo", "all", "min", "none", 2
+
+
+# daily 2D fields
+
+"access-om3.mom6.2d.tob.1day.mean.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "tob", "tob", "access-om3.mom6.2d.tob.1day.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.mlotst.1day.mean.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "mlotst", "mlotst", "access-om3.mom6.2d.mlotst.1day.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.e_D.1day.mean.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "e_D", "e_D", "access-om3.mom6.2d.e_D.1day.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.net_heat_coupler.1day.mean.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "net_heat_coupler", "net_heat_coupler", "access-om3.mom6.2d.net_heat_coupler.1day.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.heat_content_lrunoff.1day.mean.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "heat_content_lrunoff", "heat_content_lrunoff", "access-om3.mom6.2d.heat_content_lrunoff.1day.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.Heat_PmE.1day.mean.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "Heat_PmE", "Heat_PmE", "access-om3.mom6.2d.Heat_PmE.1day.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.tos.1day.mean.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "tos", "tos", "access-om3.mom6.2d.tos.1day.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.sos.1day.mean.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "sos", "sos", "access-om3.mom6.2d.sos.1day.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.SSU.1day.mean.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "SSU", "SSU", "access-om3.mom6.2d.SSU.1day.mean.%4yr%2mo", "all", "average", "none", 2
+
+"access-om3.mom6.2d.SSV.1day.mean.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "SSV", "SSV", "access-om3.mom6.2d.SSV.1day.mean.%4yr%2mo", "all", "average", "none", 2
+
+
+# daily 2D max fields
+
+"access-om3.mom6.2d.e_D.1day.max.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "e_D", "e_D", "access-om3.mom6.2d.e_D.1day.max.%4yr%2mo", "all", "max", "none", 2
+
+"access-om3.mom6.2d.tos.1day.max.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "tos", "tos", "access-om3.mom6.2d.tos.1day.max.%4yr%2mo", "all", "max", "none", 2
+
+
+# daily 2D min fields
+
+"access-om3.mom6.2d.tos.1day.min.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "tos", "tos", "access-om3.mom6.2d.tos.1day.min.%4yr%2mo", "all", "min", "none", 2
+
+
+# daily scalar timeseries
+
+"access-om3.mom6.scalar.1day.snap.%4yr%2mo", 1, "days", 1, "days", "time", 1, "months"
+"ocean_model", "soga", "soga", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "thetaoga", "thetaoga", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "tosga", "tosga", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "sosga", "sosga", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_salt_Flux_Added", "total_salt_Flux_Added", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_salt_Flux_In", "total_salt_Flux_In", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_salt_flux", "total_salt_flux", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "net_fresh_water_global_adjustment", "net_fresh_water_global_adjustment", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "salt_flux_global_restoring_adjustment", "salt_flux_global_restoring_adjustment", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_wfo", "total_wfo", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_evs", "total_evs", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_fsitherm", "total_fsitherm", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_precip", "total_precip", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_prsn", "total_prsn", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_lprec", "total_lprec", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_ficeberg", "total_ficeberg", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_friver", "total_friver", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_net_massout", "total_net_massout", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
+"ocean_model", "total_net_massin", "total_net_massin", "access-om3.mom6.scalar.1day.snap.%4yr%2mo", "all", "none", "none", 1
diff --git a/diag_table_source.yaml b/diag_table_source.yaml
new file mode 100644
index 000000000..aeeeefe49
--- /dev/null
+++ b/diag_table_source.yaml
@@ -0,0 +1,376 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            packing: 1 # double precision
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
+            uhml: # Zonal Thickness Flux to Restratify Mixed Layer
+            vhml: # Meridional Thickness Flux to Restratify Mixed Layer
+            thkcello: # Cell Thickness
+            KE: # Layer Kinetic energy per unit mass
+
+    'monthly 3d squared fields':  # for calculating EKE etc
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: pow02  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            uo:
+            vo:
+            
+    'monthly 2d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            evs: # Evaporation/condensation at ocean surface (evaporation is negative) evap
+            ficeberg: # Frozen runoff (calving) and iceberg melt into ocean frunoff
+            friver: # Liquid runoff (rivers) into ocean lrunoff
+            fsitherm: # water flux to ocean from snow/sea ice melting(> 0) or formation(< 0) seaice_melt
+            heat_content_cond: # Heat content (relative to 0degC) of water condensing into ocean
+            heat_content_evap: # Heat content (relative to 0degC) of water evaporating from ocean
+            heat_content_fprec: # Heat content (relative to 0degC) of frozen prec entering ocean
+            heat_content_frunoff: # Heat content (relative to 0C) of solid runoff into ocean
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            heat_content_lprec: # Heat content (relative to 0degC) of liquid precip entering ocean
+            hfrunoffds: # Heat content (relative to 0C) of liquid+solid runoff into ocean
+            hfrainds: # Heat content (relative to 0degC) of liquid+frozen precip entering ocean
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
+            net_heat_coupler: # Surface ocean heat flux from SW+LW+latent+sensible+seaice_melt_heat (via the coupler)
+            hfds: # Surface ocean heat flux from SW+LW+lat+sens+mass transfer+frazil+restore+seaice_melt_heat or flux adjustments net_heat_surface
+            hflso: # Latent heat flux into ocean due to fusion and evaporation (negative means ocean heat loss)
+            hfsifrazil: # Heat from frazil formation frazil
+            hfsnthermds: # Latent heat flux into ocean due to melting of frozen precipitation latent_fprec_diag
+            hfsso: # Sensible heat flux into ocean sensible
+            prlq: # Liquid precipitation into ocean lprec
+            prsn: # Frozen precipitation into ocean fprec
+            wfo: # Net surface water flux (precip+melt+lrunoff+ice calving-evap) PRCmE
+            pso: # Pressure at ice-ocean or atmosphere-ocean interface p_surf
+            rlntds: # surface_net_downward_longwave_flux LW
+            rsntds: # Shortwave radiation flux into ocean
+            sfdsi: # Net salt flux into ocean at surface (restoring + sea-ice) salt_flux
+            salt_flux_added: # Salt flux into ocean at surface due to restoring or flux adjustment
+            somint: # Density weighted column integrated salinity salt_int
+            opottempmint: # Density weighted column integrated potential temperature  temp_int
+            Rd_dx: # Ratio between deformation radius and grid spacing
+            mass_wt: # The column mass for calculating mass-weighted average properties
+            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
+            #oml: # Thickness of the surface Ocean Boundary Layer without smoothing calculated by [CVMix] KPP KPP_OBLdepth_original
+            sos: # Sea Surface Salinity
+            speed: # Sea Surface Speed
+            tos: # Sea Surface Temperature
+            SSH: # Sea Surface Height
+            SSU: # Sea Surface Zonal Velocity
+            SSV: # Sea Surface Meridional Velocity
+            T_adx_2d: # Vertically Integrated Advective Zonal Flux of Heat
+            T_ady_2d: # Vertically Integrated Advective Meridional Flux of Heat
+            T_diffx_2d: # Vertically Integrated Diffusive Zonal Flux of Heat
+            T_diffy_2d: # Vertically Integrated Diffusive Meridional Flux of Heat    
+            S_adx_2d: # Vertically Integrated Advective Zonal Flux of Salinity
+            S_ady_2d: # Vertically Integrated Advective Meridional Flux of Salinity
+            S_diffx_2d: # Vertically Integrated Diffusive Zonal Flux of Salinity
+            S_diffy_2d: # Vertically Integrated Diffusive Meridional Flux of Salinity
+            tauuo: # surface_downward_x_stress taux
+            tauvo: # surface_downward_y_stress tauy
+            uhbt: # Barotropic zonal transport averaged over a baroclinic step
+            vhbt: # Barotropic meridional transport averaged over a baroclinic step
+            ustar: # Surface friction velocity = [(gustiness + tau_magnitude)/rho0]^(1/2)
+            umo_2d: # Ocean Mass X Transport Vertical Sum
+            vmo_2d: # Ocean Mass Y Transport Vertical Sum
+            pbo: # Sea Water Pressure at Sea Floor
+            SW_pen: # Penetrating shortwave radiation flux into ocean W m-2
+            salt_flux_in: # Salt flux into ocean at surface from coupler
+            tnkebto: # Integrated Tendency of Ocean Mesoscale Eddy KE from Parameterized Eddy Advection GMwork
+
+    'monthly 2d max fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: max  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
+            sos: # Sea Surface Salinity
+            tos: # Sea Surface Temperature
+            SSH: # Sea Surface Height
+
+    'monthly 2d min fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: min  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
+            sos: # Sea Surface Salinity
+            tos: # Sea Surface Temperature
+            SSH: # Sea Surface Height
+
+    'daily 2D fields':
+        defaults:
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            '':
+                - output_freq_units
+            output_freq_units: days  # time units for output: years, months, days, hours, minutes, or seconds
+            reduction_method: mean # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            tob: # Sea Water Potential Temperature at Sea Floor
+            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
+            e_D: # Interface Height above the Seafloor (m)
+            net_heat_coupler: # Surface ocean heat flux from SW+LW+latent+sensible+seaice_melt_heat (via the coupler)
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
+            tos: # Sea Surface Temperature
+            sos: # Sea Surface Salinity
+            SSU: # Sea Surface Zonal Velocity
+            SSV: # Sea Surface Meridional Velocity
+
+    'daily 2D max fields':
+        defaults:
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            '':
+                - output_freq_units
+            output_freq_units: days  # time units for output: years, months, days, hours, minutes, or seconds
+            reduction_method: max # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            e_D: # Interface Height above the Seafloor (m)
+            tos: # Sea Surface Temperature
+
+    'daily 2D min fields':
+        defaults:
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            '':
+                - output_freq_units
+            output_freq_units: days  # time units for output: years, months, days, hours, minutes, or seconds
+            reduction_method: min # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            tos: # Sea Surface Temperature
+
+    'daily scalar timeseries':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: scalar  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+                - output_freq
+                - '':
+                    - output_freq_units
+                - reduction_method
+                - file_name_date
+            output_freq_units: days  # time units for output: years, months, days, hours, minutes, or seconds
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            packing: 1  # double precision
+        fields:
+            soga: # Global Mean Ocean Salinity
+            thetaoga: # Global Mean Ocean Potential Temperature
+            tosga: # Global Area Average Sea Surface Temperature sst_global
+            sosga: # Global Area Average Sea Surface Salinity sss_global
+            total_salt_Flux_Added: # Area integrated surface salt flux due to restoring or flux adjustment 
+            total_salt_Flux_In: # Area integrated surface salt flux at surface from coupler
+            total_salt_flux: # Area integrated surface salt flux
+            net_fresh_water_global_adjustment: # Adjustment needed to adjust net fresh water into ocean to zero
+            salt_flux_global_restoring_adjustment: # Adjustment needed to balance net global salt flux into ocean at surface
+            total_wfo: # Area integrated net surface water flux (precip+melt+liq runoff+ice calving-evap) total_PRCmE
+            total_evs: # Area integrated evap/condense at ocean surface total_evap
+            total_fsitherm: # Area integrated sea ice melt (>0) or form (<0) total_icemelt
+            total_precip: # Area integrated liquid+frozen precip into ocean
+            total_prsn: # Area integrated frozen precip into ocean total_fprec
+            total_lprec: # Area integrated liquid precip into ocean
+            total_ficeberg: # Area integrated frozen runoff (calving) & iceberg melt into ocean total_frunoff
+            total_friver: # Area integrated liquid runoff into ocean total_lrunoff
+            total_net_massout: # Area integrated mass leaving ocean due to evap and seaice form
+            total_net_massin: # Area integrated mass entering ocean due to predip, runoff, ice melt
diff --git a/input.nml b/input.nml
index cd9f0dcb6..15c817e8c 100644
--- a/input.nml
+++ b/input.nml
@@ -14,6 +14,9 @@
 
 &diag_manager_nml
     flush_nc_files = .true.
+    max_axes = 400
+    max_files = 200
+    max_num_axis_sets = 200
 /
 
 &mpp_io_nml


Reviews:
user: login: aekiss
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-21T05:13:55Z
user: login: aekiss
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-21T05:25:17Z
user: login: aekiss
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-21T05:26:43Z
user: login: aekiss
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-21T05:29:54Z
user: login: aekiss
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-21T05:30:16Z
user: login: aekiss
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-21T05:35:08Z
user: login: aekiss
body: LGTM, thanks @minghangli-uni! Just a few suggested changes to make before merging.
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-02-21T05:51:08Z
user: login: aekiss
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-21T06:34:44Z
user: login: aekiss
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-21T06:41:56Z
user: login: minghangli-uni
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-02-24T02:51:37Z
user: login: minghangli-uni
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-02-24T21:37:33Z
user: login: minghangli-uni
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-02-24T21:37:39Z
user: login: minghangli-uni
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-02-24T22:12:47Z
user: login: dougiesquire
body: @minghangli-uni, what version of `make_diag_table` are you using to generate the `diag_table` from `diag_table_source.yaml`. I just used the latest version in https://github.com/COSIMA/make_diag_table and generated a `diag_table` that is different that you have in this PR.

You've also made some changes to  `diag_table_source.yaml` in this PR that aren't reflected in the `diag_table`.
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-02-27T01:05:06Z
user: login: aekiss
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T23:53:10Z
user: login: aekiss
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-06T00:01:08Z
user: login: aekiss
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-06T00:01:24Z
user: login: dougiesquire
body: Thanks @minghangli-uni for this big chunk of work! Code and test runs look good.

Probably want to "Squash and merge" this one
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-03-11T21:59:22Z

Review comments:
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
path: diag_table_source.yaml
user: login: aekiss
body: only necessary in configs that have GM
created_at: 2025-02-21T05:13:55Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
+            uhml: # Zonal Thickness Flux to Restratify Mixed Layer
+            vhml: # Meridional Thickness Flux to Restratify Mixed Layer
+            thkcello: # Cell Thickness
+            KE: # Layer Kinetic energy per unit mass
+
+    'monthly 3d squared fields':  # for calculating EKE etc
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: pow02  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            uo:
+            vo:
+            
+    'monthly 2d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            evs: # Evaporation/condensation at ocean surface (evaporation is negative) evap
+            ficeberg: # Frozen runoff (calving) and iceberg melt into ocean frunoff
+            friver: # Liquid runoff (rivers) into ocean lrunoff
+            fsitherm: # water flux to ocean from snow/sea ice melting(> 0) or formation(< 0) seaice_melt
+            heat_content_cond: # Heat content (relative to 0degC) of water condensing into ocean
+            heat_content_evap: # Heat content (relative to 0degC) of water evaporating from ocean
+            heat_content_fprec: # Heat content (relative to 0degC) of frozen prec entering ocean
+            heat_content_frunoff: # Heat content (relative to 0C) of solid runoff into ocean
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            heat_content_lprec: # Heat content (relative to 0degC) of liquid precip entering ocean
+            heat_content_vprec: # Heat content (relative to 0degC) of virtual precip entering ocean
+            hfrunoffds: # Heat content (relative to 0C) of liquid+solid runoff into ocean
+            hfrainds: # Heat content (relative to 0degC) of liquid+frozen precip entering ocean
+            hfevapds: # Heat content (relative to 0degC) of net mass leaving ocean ocean via evap and ice form heat_content_massout
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
path: diag_table_source.yaml
user: login: aekiss
body: some of the above may be zero? if so, delete
created_at: 2025-02-21T05:25:17Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
+            uhml: # Zonal Thickness Flux to Restratify Mixed Layer
+            vhml: # Meridional Thickness Flux to Restratify Mixed Layer
+            thkcello: # Cell Thickness
+            KE: # Layer Kinetic energy per unit mass
+
+    'monthly 3d squared fields':  # for calculating EKE etc
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: pow02  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            uo:
+            vo:
+            
+    'monthly 2d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            evs: # Evaporation/condensation at ocean surface (evaporation is negative) evap
+            ficeberg: # Frozen runoff (calving) and iceberg melt into ocean frunoff
+            friver: # Liquid runoff (rivers) into ocean lrunoff
+            fsitherm: # water flux to ocean from snow/sea ice melting(> 0) or formation(< 0) seaice_melt
+            heat_content_cond: # Heat content (relative to 0degC) of water condensing into ocean
+            heat_content_evap: # Heat content (relative to 0degC) of water evaporating from ocean
+            heat_content_fprec: # Heat content (relative to 0degC) of frozen prec entering ocean
+            heat_content_frunoff: # Heat content (relative to 0C) of solid runoff into ocean
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            heat_content_lprec: # Heat content (relative to 0degC) of liquid precip entering ocean
+            heat_content_vprec: # Heat content (relative to 0degC) of virtual precip entering ocean
+            hfrunoffds: # Heat content (relative to 0C) of liquid+solid runoff into ocean
+            hfrainds: # Heat content (relative to 0degC) of liquid+frozen precip entering ocean
+            hfevapds: # Heat content (relative to 0degC) of net mass leaving ocean ocean via evap and ice form heat_content_massout
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
+            net_heat_coupler: # Surface ocean heat flux from SW+LW+latent+sensible+seaice_melt_heat (via the coupler)
+            hfds: # Surface ocean heat flux from SW+LW+lat+sens+mass transfer+frazil+restore+seaice_melt_heat or flux adjustments net_heat_surface
+            hflso: # Latent heat flux into ocean due to fusion and evaporation (negative means ocean heat loss)
+            hfsifrazil: # Heat from frazil formation frazil
+            hfsnthermds: # Latent heat flux into ocean due to melting of frozen precipitation latent_fprec_diag
+            hfsso: # Sensible heat flux into ocean sensible
+            prlq: # Liquid precipitation into ocean lprec
+            prsn: # Frozen precipitation into ocean fprec
+            vprec: # Virtual liquid precip into ocean due to SSS restoring
path: diag_table_source.yaml
user: login: aekiss
body: aren't we doing SSS restoring via salt flux, rather than water?
created_at: 2025-02-21T05:26:43Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
+            uhml: # Zonal Thickness Flux to Restratify Mixed Layer
+            vhml: # Meridional Thickness Flux to Restratify Mixed Layer
+            thkcello: # Cell Thickness
+            KE: # Layer Kinetic energy per unit mass
+
+    'monthly 3d squared fields':  # for calculating EKE etc
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: pow02  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            uo:
+            vo:
+            
+    'monthly 2d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            evs: # Evaporation/condensation at ocean surface (evaporation is negative) evap
+            ficeberg: # Frozen runoff (calving) and iceberg melt into ocean frunoff
+            friver: # Liquid runoff (rivers) into ocean lrunoff
+            fsitherm: # water flux to ocean from snow/sea ice melting(> 0) or formation(< 0) seaice_melt
+            heat_content_cond: # Heat content (relative to 0degC) of water condensing into ocean
+            heat_content_evap: # Heat content (relative to 0degC) of water evaporating from ocean
+            heat_content_fprec: # Heat content (relative to 0degC) of frozen prec entering ocean
+            heat_content_frunoff: # Heat content (relative to 0C) of solid runoff into ocean
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            heat_content_lprec: # Heat content (relative to 0degC) of liquid precip entering ocean
+            heat_content_vprec: # Heat content (relative to 0degC) of virtual precip entering ocean
+            hfrunoffds: # Heat content (relative to 0C) of liquid+solid runoff into ocean
+            hfrainds: # Heat content (relative to 0degC) of liquid+frozen precip entering ocean
+            hfevapds: # Heat content (relative to 0degC) of net mass leaving ocean ocean via evap and ice form heat_content_massout
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
+            net_heat_coupler: # Surface ocean heat flux from SW+LW+latent+sensible+seaice_melt_heat (via the coupler)
+            hfds: # Surface ocean heat flux from SW+LW+lat+sens+mass transfer+frazil+restore+seaice_melt_heat or flux adjustments net_heat_surface
+            hflso: # Latent heat flux into ocean due to fusion and evaporation (negative means ocean heat loss)
+            hfsifrazil: # Heat from frazil formation frazil
+            hfsnthermds: # Latent heat flux into ocean due to melting of frozen precipitation latent_fprec_diag
+            hfsso: # Sensible heat flux into ocean sensible
+            prlq: # Liquid precipitation into ocean lprec
+            prsn: # Frozen precipitation into ocean fprec
+            vprec: # Virtual liquid precip into ocean due to SSS restoring
+            wfo: # Net surface water flux (precip+melt+lrunoff+ice calving-evap) PRCmE
+            pso: # Pressure at ice-ocean or atmosphere-ocean interface p_surf
+            rlntds: # surface_net_downward_longwave_flux LW
+            rsntds: # Shortwave radiation flux into ocean
+            sfdsi: # Net salt flux into ocean at surface (restoring + sea-ice) salt_flux
+            salt_flux_added: # Salt flux into ocean at surface due to restoring or flux adjustment
+            somint: # Density weighted column integrated salinity salt_int
+            opottempmint: # Density weighted column integrated potential temperature  temp_int
+            Rd_dx: # Ratio between deformation radius and grid spacing
+            mass_wt: # The column mass for calculating mass-weighted average properties
+            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
+            #oml: # Thickness of the surface Ocean Boundary Layer without smoothing calculated by [CVMix] KPP KPP_OBLdepth_original
+            sos: # Sea Surface Salinity
+            speed: # Sea Surface Speed
+            tos: # Sea Surface Temperature
+            SSH: # Sea Surface Height
+            SSU: # Sea Surface Zonal Velocity
+            SSV: # Sea Surface Meridional Velocity
+            T_adx_2d: # Vertically Integrated Advective Zonal Flux of Heat
+            T_ady_2d: # Vertically Integrated Advective Meridional Flux of Heat
+            T_diffx_2d: # Vertically Integrated Diffusive Zonal Flux of Heat
+            T_diffy_2d: # Vertically Integrated Diffusive Meridional Flux of Heat    
+            S_adx_2d: # Vertically Integrated Advective Zonal Flux of Salinity
+            S_ady_2d: # Vertically Integrated Advective Meridional Flux of Salinity
+            S_diffx_2d: # Vertically Integrated Diffusive Zonal Flux of Salinity
+            S_diffy_2d: # Vertically Integrated Diffusive Meridional Flux of Salinity
+            tauuo: # surface_downward_x_stress taux
+            tauvo: # surface_downward_y_stress tauy
+            uhbt: # Barotropic zonal transport averaged over a baroclinic step
+            vhbt: # Barotropic meridional transport averaged over a baroclinic step
+            ustar: # Surface friction velocity = [(gustiness + tau_magnitude)/rho0]^(1/2)
+            umo_2d: # Ocean Mass X Transport Vertical Sum
+            vmo_2d: # Ocean Mass Y Transport Vertical Sum
+            pbo: # Sea Water Pressure at Sea Floor
+
+    'monthly 2d max fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: max  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
path: diag_table_source.yaml
user: login: aekiss
body: ```suggestion
            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
            sos: # Sea Surface Salinity
            tos: # Sea Surface Temperature
            SSH: # Sea Surface Height
```
min and max sos, tos, SSH may be helpful for spotting locations of instability
created_at: 2025-02-21T05:29:54Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
+            uhml: # Zonal Thickness Flux to Restratify Mixed Layer
+            vhml: # Meridional Thickness Flux to Restratify Mixed Layer
+            thkcello: # Cell Thickness
+            KE: # Layer Kinetic energy per unit mass
+
+    'monthly 3d squared fields':  # for calculating EKE etc
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: pow02  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            uo:
+            vo:
+            
+    'monthly 2d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            evs: # Evaporation/condensation at ocean surface (evaporation is negative) evap
+            ficeberg: # Frozen runoff (calving) and iceberg melt into ocean frunoff
+            friver: # Liquid runoff (rivers) into ocean lrunoff
+            fsitherm: # water flux to ocean from snow/sea ice melting(> 0) or formation(< 0) seaice_melt
+            heat_content_cond: # Heat content (relative to 0degC) of water condensing into ocean
+            heat_content_evap: # Heat content (relative to 0degC) of water evaporating from ocean
+            heat_content_fprec: # Heat content (relative to 0degC) of frozen prec entering ocean
+            heat_content_frunoff: # Heat content (relative to 0C) of solid runoff into ocean
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            heat_content_lprec: # Heat content (relative to 0degC) of liquid precip entering ocean
+            heat_content_vprec: # Heat content (relative to 0degC) of virtual precip entering ocean
+            hfrunoffds: # Heat content (relative to 0C) of liquid+solid runoff into ocean
+            hfrainds: # Heat content (relative to 0degC) of liquid+frozen precip entering ocean
+            hfevapds: # Heat content (relative to 0degC) of net mass leaving ocean ocean via evap and ice form heat_content_massout
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
+            net_heat_coupler: # Surface ocean heat flux from SW+LW+latent+sensible+seaice_melt_heat (via the coupler)
+            hfds: # Surface ocean heat flux from SW+LW+lat+sens+mass transfer+frazil+restore+seaice_melt_heat or flux adjustments net_heat_surface
+            hflso: # Latent heat flux into ocean due to fusion and evaporation (negative means ocean heat loss)
+            hfsifrazil: # Heat from frazil formation frazil
+            hfsnthermds: # Latent heat flux into ocean due to melting of frozen precipitation latent_fprec_diag
+            hfsso: # Sensible heat flux into ocean sensible
+            prlq: # Liquid precipitation into ocean lprec
+            prsn: # Frozen precipitation into ocean fprec
+            vprec: # Virtual liquid precip into ocean due to SSS restoring
+            wfo: # Net surface water flux (precip+melt+lrunoff+ice calving-evap) PRCmE
+            pso: # Pressure at ice-ocean or atmosphere-ocean interface p_surf
+            rlntds: # surface_net_downward_longwave_flux LW
+            rsntds: # Shortwave radiation flux into ocean
+            sfdsi: # Net salt flux into ocean at surface (restoring + sea-ice) salt_flux
+            salt_flux_added: # Salt flux into ocean at surface due to restoring or flux adjustment
+            somint: # Density weighted column integrated salinity salt_int
+            opottempmint: # Density weighted column integrated potential temperature  temp_int
+            Rd_dx: # Ratio between deformation radius and grid spacing
+            mass_wt: # The column mass for calculating mass-weighted average properties
+            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
+            #oml: # Thickness of the surface Ocean Boundary Layer without smoothing calculated by [CVMix] KPP KPP_OBLdepth_original
+            sos: # Sea Surface Salinity
+            speed: # Sea Surface Speed
+            tos: # Sea Surface Temperature
+            SSH: # Sea Surface Height
+            SSU: # Sea Surface Zonal Velocity
+            SSV: # Sea Surface Meridional Velocity
+            T_adx_2d: # Vertically Integrated Advective Zonal Flux of Heat
+            T_ady_2d: # Vertically Integrated Advective Meridional Flux of Heat
+            T_diffx_2d: # Vertically Integrated Diffusive Zonal Flux of Heat
+            T_diffy_2d: # Vertically Integrated Diffusive Meridional Flux of Heat    
+            S_adx_2d: # Vertically Integrated Advective Zonal Flux of Salinity
+            S_ady_2d: # Vertically Integrated Advective Meridional Flux of Salinity
+            S_diffx_2d: # Vertically Integrated Diffusive Zonal Flux of Salinity
+            S_diffy_2d: # Vertically Integrated Diffusive Meridional Flux of Salinity
+            tauuo: # surface_downward_x_stress taux
+            tauvo: # surface_downward_y_stress tauy
+            uhbt: # Barotropic zonal transport averaged over a baroclinic step
+            vhbt: # Barotropic meridional transport averaged over a baroclinic step
+            ustar: # Surface friction velocity = [(gustiness + tau_magnitude)/rho0]^(1/2)
+            umo_2d: # Ocean Mass X Transport Vertical Sum
+            vmo_2d: # Ocean Mass Y Transport Vertical Sum
+            pbo: # Sea Water Pressure at Sea Floor
+
+    'monthly 2d max fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: max  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
+
+    'monthly 2d min fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: min  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            tos: # Sea Surface Temperature
path: diag_table_source.yaml
user: login: aekiss
body: ```suggestion
            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
            sos: # Sea Surface Salinity
            tos: # Sea Surface Temperature
            SSH: # Sea Surface Height
```
created_at: 2025-02-21T05:30:16Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
+            uhml: # Zonal Thickness Flux to Restratify Mixed Layer
+            vhml: # Meridional Thickness Flux to Restratify Mixed Layer
+            thkcello: # Cell Thickness
+            KE: # Layer Kinetic energy per unit mass
+
+    'monthly 3d squared fields':  # for calculating EKE etc
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: pow02  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            uo:
+            vo:
+            
+    'monthly 2d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            evs: # Evaporation/condensation at ocean surface (evaporation is negative) evap
+            ficeberg: # Frozen runoff (calving) and iceberg melt into ocean frunoff
+            friver: # Liquid runoff (rivers) into ocean lrunoff
+            fsitherm: # water flux to ocean from snow/sea ice melting(> 0) or formation(< 0) seaice_melt
+            heat_content_cond: # Heat content (relative to 0degC) of water condensing into ocean
+            heat_content_evap: # Heat content (relative to 0degC) of water evaporating from ocean
+            heat_content_fprec: # Heat content (relative to 0degC) of frozen prec entering ocean
+            heat_content_frunoff: # Heat content (relative to 0C) of solid runoff into ocean
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            heat_content_lprec: # Heat content (relative to 0degC) of liquid precip entering ocean
+            heat_content_vprec: # Heat content (relative to 0degC) of virtual precip entering ocean
+            hfrunoffds: # Heat content (relative to 0C) of liquid+solid runoff into ocean
+            hfrainds: # Heat content (relative to 0degC) of liquid+frozen precip entering ocean
+            hfevapds: # Heat content (relative to 0degC) of net mass leaving ocean ocean via evap and ice form heat_content_massout
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
+            net_heat_coupler: # Surface ocean heat flux from SW+LW+latent+sensible+seaice_melt_heat (via the coupler)
+            hfds: # Surface ocean heat flux from SW+LW+lat+sens+mass transfer+frazil+restore+seaice_melt_heat or flux adjustments net_heat_surface
+            hflso: # Latent heat flux into ocean due to fusion and evaporation (negative means ocean heat loss)
+            hfsifrazil: # Heat from frazil formation frazil
+            hfsnthermds: # Latent heat flux into ocean due to melting of frozen precipitation latent_fprec_diag
+            hfsso: # Sensible heat flux into ocean sensible
+            prlq: # Liquid precipitation into ocean lprec
+            prsn: # Frozen precipitation into ocean fprec
+            vprec: # Virtual liquid precip into ocean due to SSS restoring
+            wfo: # Net surface water flux (precip+melt+lrunoff+ice calving-evap) PRCmE
+            pso: # Pressure at ice-ocean or atmosphere-ocean interface p_surf
+            rlntds: # surface_net_downward_longwave_flux LW
+            rsntds: # Shortwave radiation flux into ocean
+            sfdsi: # Net salt flux into ocean at surface (restoring + sea-ice) salt_flux
+            salt_flux_added: # Salt flux into ocean at surface due to restoring or flux adjustment
+            somint: # Density weighted column integrated salinity salt_int
+            opottempmint: # Density weighted column integrated potential temperature  temp_int
+            Rd_dx: # Ratio between deformation radius and grid spacing
+            mass_wt: # The column mass for calculating mass-weighted average properties
+            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
+            #oml: # Thickness of the surface Ocean Boundary Layer without smoothing calculated by [CVMix] KPP KPP_OBLdepth_original
+            sos: # Sea Surface Salinity
+            speed: # Sea Surface Speed
+            tos: # Sea Surface Temperature
+            SSH: # Sea Surface Height
+            SSU: # Sea Surface Zonal Velocity
+            SSV: # Sea Surface Meridional Velocity
+            T_adx_2d: # Vertically Integrated Advective Zonal Flux of Heat
+            T_ady_2d: # Vertically Integrated Advective Meridional Flux of Heat
+            T_diffx_2d: # Vertically Integrated Diffusive Zonal Flux of Heat
+            T_diffy_2d: # Vertically Integrated Diffusive Meridional Flux of Heat    
+            S_adx_2d: # Vertically Integrated Advective Zonal Flux of Salinity
+            S_ady_2d: # Vertically Integrated Advective Meridional Flux of Salinity
+            S_diffx_2d: # Vertically Integrated Diffusive Zonal Flux of Salinity
+            S_diffy_2d: # Vertically Integrated Diffusive Meridional Flux of Salinity
+            tauuo: # surface_downward_x_stress taux
+            tauvo: # surface_downward_y_stress tauy
+            uhbt: # Barotropic zonal transport averaged over a baroclinic step
+            vhbt: # Barotropic meridional transport averaged over a baroclinic step
+            ustar: # Surface friction velocity = [(gustiness + tau_magnitude)/rho0]^(1/2)
+            umo_2d: # Ocean Mass X Transport Vertical Sum
+            vmo_2d: # Ocean Mass Y Transport Vertical Sum
+            pbo: # Sea Water Pressure at Sea Floor
+
+    'monthly 2d max fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: max  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
+
+    'monthly 2d min fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: min  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            tos: # Sea Surface Temperature
+
+    'daily scalar timeseries':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: scalar  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+                - output_freq
+                - '':
+                    - output_freq_units
+                - file_name_date
+            output_freq_units: days  # time units for output: years, months, days, hours, minutes, or seconds
+            reduction_method: mean  # mean, snap, rms, pow##, min, max, or diurnal##
path: diag_table_source.yaml
user: login: aekiss
body: ```suggestion
            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
```
snapshots of global integrals will probably give better parallel performance than averages, as they don't require collectives and synchronisation of all MPI ranks every timestep
created_at: 2025-02-21T05:35:07Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
path: diag_table_source.yaml
user: login: aekiss
body: ```suggestion
            packing: 1 # double precision
            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
```
probably a good idea to have double precision grid data
created_at: 2025-02-21T06:34:43Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
+            uhml: # Zonal Thickness Flux to Restratify Mixed Layer
+            vhml: # Meridional Thickness Flux to Restratify Mixed Layer
+            thkcello: # Cell Thickness
+            KE: # Layer Kinetic energy per unit mass
+
+    'monthly 3d squared fields':  # for calculating EKE etc
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: pow02  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            uo:
+            vo:
+            
+    'monthly 2d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            evs: # Evaporation/condensation at ocean surface (evaporation is negative) evap
+            ficeberg: # Frozen runoff (calving) and iceberg melt into ocean frunoff
+            friver: # Liquid runoff (rivers) into ocean lrunoff
+            fsitherm: # water flux to ocean from snow/sea ice melting(> 0) or formation(< 0) seaice_melt
+            heat_content_cond: # Heat content (relative to 0degC) of water condensing into ocean
+            heat_content_evap: # Heat content (relative to 0degC) of water evaporating from ocean
+            heat_content_fprec: # Heat content (relative to 0degC) of frozen prec entering ocean
+            heat_content_frunoff: # Heat content (relative to 0C) of solid runoff into ocean
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            heat_content_lprec: # Heat content (relative to 0degC) of liquid precip entering ocean
+            heat_content_vprec: # Heat content (relative to 0degC) of virtual precip entering ocean
+            hfrunoffds: # Heat content (relative to 0C) of liquid+solid runoff into ocean
+            hfrainds: # Heat content (relative to 0degC) of liquid+frozen precip entering ocean
+            hfevapds: # Heat content (relative to 0degC) of net mass leaving ocean ocean via evap and ice form heat_content_massout
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
+            net_heat_coupler: # Surface ocean heat flux from SW+LW+latent+sensible+seaice_melt_heat (via the coupler)
+            hfds: # Surface ocean heat flux from SW+LW+lat+sens+mass transfer+frazil+restore+seaice_melt_heat or flux adjustments net_heat_surface
+            hflso: # Latent heat flux into ocean due to fusion and evaporation (negative means ocean heat loss)
+            hfsifrazil: # Heat from frazil formation frazil
+            hfsnthermds: # Latent heat flux into ocean due to melting of frozen precipitation latent_fprec_diag
+            hfsso: # Sensible heat flux into ocean sensible
+            prlq: # Liquid precipitation into ocean lprec
+            prsn: # Frozen precipitation into ocean fprec
+            vprec: # Virtual liquid precip into ocean due to SSS restoring
+            wfo: # Net surface water flux (precip+melt+lrunoff+ice calving-evap) PRCmE
+            pso: # Pressure at ice-ocean or atmosphere-ocean interface p_surf
+            rlntds: # surface_net_downward_longwave_flux LW
+            rsntds: # Shortwave radiation flux into ocean
+            sfdsi: # Net salt flux into ocean at surface (restoring + sea-ice) salt_flux
+            salt_flux_added: # Salt flux into ocean at surface due to restoring or flux adjustment
+            somint: # Density weighted column integrated salinity salt_int
+            opottempmint: # Density weighted column integrated potential temperature  temp_int
+            Rd_dx: # Ratio between deformation radius and grid spacing
+            mass_wt: # The column mass for calculating mass-weighted average properties
+            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
+            #oml: # Thickness of the surface Ocean Boundary Layer without smoothing calculated by [CVMix] KPP KPP_OBLdepth_original
+            sos: # Sea Surface Salinity
+            speed: # Sea Surface Speed
+            tos: # Sea Surface Temperature
+            SSH: # Sea Surface Height
+            SSU: # Sea Surface Zonal Velocity
+            SSV: # Sea Surface Meridional Velocity
+            T_adx_2d: # Vertically Integrated Advective Zonal Flux of Heat
+            T_ady_2d: # Vertically Integrated Advective Meridional Flux of Heat
+            T_diffx_2d: # Vertically Integrated Diffusive Zonal Flux of Heat
+            T_diffy_2d: # Vertically Integrated Diffusive Meridional Flux of Heat    
+            S_adx_2d: # Vertically Integrated Advective Zonal Flux of Salinity
+            S_ady_2d: # Vertically Integrated Advective Meridional Flux of Salinity
+            S_diffx_2d: # Vertically Integrated Diffusive Zonal Flux of Salinity
+            S_diffy_2d: # Vertically Integrated Diffusive Meridional Flux of Salinity
+            tauuo: # surface_downward_x_stress taux
+            tauvo: # surface_downward_y_stress tauy
+            uhbt: # Barotropic zonal transport averaged over a baroclinic step
+            vhbt: # Barotropic meridional transport averaged over a baroclinic step
+            ustar: # Surface friction velocity = [(gustiness + tau_magnitude)/rho0]^(1/2)
+            umo_2d: # Ocean Mass X Transport Vertical Sum
+            vmo_2d: # Ocean Mass Y Transport Vertical Sum
+            pbo: # Sea Water Pressure at Sea Floor
+
+    'monthly 2d max fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: max  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            mlotst: # Mixed layer depth (delta rho = 0.03) MLD_003
+
+    'monthly 2d min fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: min  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            tos: # Sea Surface Temperature
+
+    'daily scalar timeseries':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: scalar  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+                - output_freq
+                - '':
+                    - output_freq_units
+                - file_name_date
path: diag_table_source.yaml
user: login: aekiss
body: ```suggestion
                - reduction_method
                - file_name_date
```
created_at: 2025-02-21T06:41:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
path: diag_table_source.yaml
user: login: minghangli-uni
body: We are using GM for our 0.25 config, https://github.com/ACCESS-NRI/access-om3-configs/blob/0b9b4a0f905b5254b1690f05c0687293d6eda553/MOM_input#L31-L35


Not sure if we should enable `GMwork` which represents the energy conversion due to parameterised eddies. 
```
"GMwork"  [Unused] (CMOR equivalent is "tnkebto")
    ! modules: {ocean_model,ocean_model_d2}
    ! long_name: Integrated Tendency of Ocean Mesoscale Eddy KE from Parameterized Eddy Advection
    ! units: W m-2
    ! cell_methods: xh:mean yh:mean area:mean
    ! variants: {GMwork,tnkebto}
"KHTH_u"  [Unused]
    ! modules: {ocean_model,ocean_model_z,ocean_model_d2,ocean_model_z_d2}
    ! long_name: Parameterized mesoscale eddy advection diffusivity at U-point
    ! units: m2 s-1
    ! cell_methods: xq:point yh:mean zi:point
    ! variants: {KHTH_u,KHTH_u_xyave}
"KHTH_v"  [Unused]
    ! modules: {ocean_model,ocean_model_z,ocean_model_d2,ocean_model_z_d2}
    ! long_name: Parameterized mesoscale eddy advection diffusivity at V-point
    ! units: m2 s-1
    ! cell_methods: xh:mean yq:point zi:point
    ! variants: {KHTH_v,KHTH_v_xyave}
```
created_at: 2025-02-24T02:51:37Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
+            uhml: # Zonal Thickness Flux to Restratify Mixed Layer
+            vhml: # Meridional Thickness Flux to Restratify Mixed Layer
+            thkcello: # Cell Thickness
+            KE: # Layer Kinetic energy per unit mass
+
+    'monthly 3d squared fields':  # for calculating EKE etc
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: pow02  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            uo:
+            vo:
+            
+    'monthly 2d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            evs: # Evaporation/condensation at ocean surface (evaporation is negative) evap
+            ficeberg: # Frozen runoff (calving) and iceberg melt into ocean frunoff
+            friver: # Liquid runoff (rivers) into ocean lrunoff
+            fsitherm: # water flux to ocean from snow/sea ice melting(> 0) or formation(< 0) seaice_melt
+            heat_content_cond: # Heat content (relative to 0degC) of water condensing into ocean
+            heat_content_evap: # Heat content (relative to 0degC) of water evaporating from ocean
+            heat_content_fprec: # Heat content (relative to 0degC) of frozen prec entering ocean
+            heat_content_frunoff: # Heat content (relative to 0C) of solid runoff into ocean
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            heat_content_lprec: # Heat content (relative to 0degC) of liquid precip entering ocean
+            heat_content_vprec: # Heat content (relative to 0degC) of virtual precip entering ocean
+            hfrunoffds: # Heat content (relative to 0C) of liquid+solid runoff into ocean
+            hfrainds: # Heat content (relative to 0degC) of liquid+frozen precip entering ocean
+            hfevapds: # Heat content (relative to 0degC) of net mass leaving ocean ocean via evap and ice form heat_content_massout
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
path: diag_table_source.yaml
user: login: minghangli-uni
body: We are using [heat_content_evap](https://github.com/ACCESS-NRI/MOM6/blob/776be843e904d85c7035ffa00233b962a03bfbb4/src/parameterizations/vertical/MOM_diabatic_aux.F90#L1019-L1028), `hfevapds` is not activated, so I will remove it.

`heat_content_vprec` should be removed as SSS restoring is being done via salt flux. 

The remaining diagnostics are non-zero, so they will be kept.
created_at: 2025-02-24T21:37:33Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
+            uhml: # Zonal Thickness Flux to Restratify Mixed Layer
+            vhml: # Meridional Thickness Flux to Restratify Mixed Layer
+            thkcello: # Cell Thickness
+            KE: # Layer Kinetic energy per unit mass
+
+    'monthly 3d squared fields':  # for calculating EKE etc
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: pow02  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            uo:
+            vo:
+            
+    'monthly 2d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            evs: # Evaporation/condensation at ocean surface (evaporation is negative) evap
+            ficeberg: # Frozen runoff (calving) and iceberg melt into ocean frunoff
+            friver: # Liquid runoff (rivers) into ocean lrunoff
+            fsitherm: # water flux to ocean from snow/sea ice melting(> 0) or formation(< 0) seaice_melt
+            heat_content_cond: # Heat content (relative to 0degC) of water condensing into ocean
+            heat_content_evap: # Heat content (relative to 0degC) of water evaporating from ocean
+            heat_content_fprec: # Heat content (relative to 0degC) of frozen prec entering ocean
+            heat_content_frunoff: # Heat content (relative to 0C) of solid runoff into ocean
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            heat_content_lprec: # Heat content (relative to 0degC) of liquid precip entering ocean
+            heat_content_vprec: # Heat content (relative to 0degC) of virtual precip entering ocean
+            hfrunoffds: # Heat content (relative to 0C) of liquid+solid runoff into ocean
+            hfrainds: # Heat content (relative to 0degC) of liquid+frozen precip entering ocean
+            hfevapds: # Heat content (relative to 0degC) of net mass leaving ocean ocean via evap and ice form heat_content_massout
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
+            net_heat_coupler: # Surface ocean heat flux from SW+LW+latent+sensible+seaice_melt_heat (via the coupler)
+            hfds: # Surface ocean heat flux from SW+LW+lat+sens+mass transfer+frazil+restore+seaice_melt_heat or flux adjustments net_heat_surface
+            hflso: # Latent heat flux into ocean due to fusion and evaporation (negative means ocean heat loss)
+            hfsifrazil: # Heat from frazil formation frazil
+            hfsnthermds: # Latent heat flux into ocean due to melting of frozen precipitation latent_fprec_diag
+            hfsso: # Sensible heat flux into ocean sensible
+            prlq: # Liquid precipitation into ocean lprec
+            prsn: # Frozen precipitation into ocean fprec
+            vprec: # Virtual liquid precip into ocean due to SSS restoring
path: diag_table_source.yaml
user: login: minghangli-uni
body: Are you suggesting removing vprec only, is that correct?
created_at: 2025-02-24T21:37:39Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
+            uhml: # Zonal Thickness Flux to Restratify Mixed Layer
+            vhml: # Meridional Thickness Flux to Restratify Mixed Layer
+            thkcello: # Cell Thickness
+            KE: # Layer Kinetic energy per unit mass
+
+    'monthly 3d squared fields':  # for calculating EKE etc
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: pow02  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            uo:
+            vo:
+            
+    'monthly 2d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            evs: # Evaporation/condensation at ocean surface (evaporation is negative) evap
+            ficeberg: # Frozen runoff (calving) and iceberg melt into ocean frunoff
+            friver: # Liquid runoff (rivers) into ocean lrunoff
+            fsitherm: # water flux to ocean from snow/sea ice melting(> 0) or formation(< 0) seaice_melt
+            heat_content_cond: # Heat content (relative to 0degC) of water condensing into ocean
+            heat_content_evap: # Heat content (relative to 0degC) of water evaporating from ocean
+            heat_content_fprec: # Heat content (relative to 0degC) of frozen prec entering ocean
+            heat_content_frunoff: # Heat content (relative to 0C) of solid runoff into ocean
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            heat_content_lprec: # Heat content (relative to 0degC) of liquid precip entering ocean
+            heat_content_vprec: # Heat content (relative to 0degC) of virtual precip entering ocean
+            hfrunoffds: # Heat content (relative to 0C) of liquid+solid runoff into ocean
+            hfrainds: # Heat content (relative to 0degC) of liquid+frozen precip entering ocean
+            hfevapds: # Heat content (relative to 0degC) of net mass leaving ocean ocean via evap and ice form heat_content_massout
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
path: diag_table_source.yaml
user: login: minghangli-uni
body: <img width="1134" alt="Screenshot 2025-02-25 at 00 24 17" src="https://github.com/user-attachments/assets/abd5008a-a35b-441c-b921-27a1885f60a2" />
<img width="1134" alt="Screenshot 2025-02-25 at 00 24 44" src="https://github.com/user-attachments/assets/90982d11-d1a0-4d96-bd56-36cfaa7962a3" />
<img width="1134" alt="Screenshot 2025-02-25 at 00 25 40" src="https://github.com/user-attachments/assets/7268043c-5f44-4e53-9db4-8e42c96c7d60" />


created_at: 2025-02-24T22:12:46Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
+            uhml: # Zonal Thickness Flux to Restratify Mixed Layer
+            vhml: # Meridional Thickness Flux to Restratify Mixed Layer
+            thkcello: # Cell Thickness
+            KE: # Layer Kinetic energy per unit mass
+
+    'monthly 3d squared fields':  # for calculating EKE etc
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: pow02  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            uo:
+            vo:
+            
+    'monthly 2d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            evs: # Evaporation/condensation at ocean surface (evaporation is negative) evap
+            ficeberg: # Frozen runoff (calving) and iceberg melt into ocean frunoff
+            friver: # Liquid runoff (rivers) into ocean lrunoff
+            fsitherm: # water flux to ocean from snow/sea ice melting(> 0) or formation(< 0) seaice_melt
+            heat_content_cond: # Heat content (relative to 0degC) of water condensing into ocean
+            heat_content_evap: # Heat content (relative to 0degC) of water evaporating from ocean
+            heat_content_fprec: # Heat content (relative to 0degC) of frozen prec entering ocean
+            heat_content_frunoff: # Heat content (relative to 0C) of solid runoff into ocean
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            heat_content_lprec: # Heat content (relative to 0degC) of liquid precip entering ocean
+            heat_content_vprec: # Heat content (relative to 0degC) of virtual precip entering ocean
+            hfrunoffds: # Heat content (relative to 0C) of liquid+solid runoff into ocean
+            hfrainds: # Heat content (relative to 0degC) of liquid+frozen precip entering ocean
+            hfevapds: # Heat content (relative to 0degC) of net mass leaving ocean ocean via evap and ice form heat_content_massout
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
+            net_heat_coupler: # Surface ocean heat flux from SW+LW+latent+sensible+seaice_melt_heat (via the coupler)
+            hfds: # Surface ocean heat flux from SW+LW+lat+sens+mass transfer+frazil+restore+seaice_melt_heat or flux adjustments net_heat_surface
+            hflso: # Latent heat flux into ocean due to fusion and evaporation (negative means ocean heat loss)
+            hfsifrazil: # Heat from frazil formation frazil
+            hfsnthermds: # Latent heat flux into ocean due to melting of frozen precipitation latent_fprec_diag
+            hfsso: # Sensible heat flux into ocean sensible
+            prlq: # Liquid precipitation into ocean lprec
+            prsn: # Frozen precipitation into ocean fprec
+            vprec: # Virtual liquid precip into ocean due to SSS restoring
path: diag_table_source.yaml
user: login: aekiss
body: oops, yes, only proposing to remove vprec
created_at: 2025-03-05T23:53:10Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
path: diag_table_source.yaml
user: login: aekiss
body: ok leave them in then
created_at: 2025-03-06T00:01:08Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,330 @@
+#######################################################################################################
+# This yaml file is used by make_diag_table.py to create a diag_table file specifying MOM5 diagnostics.
+# Latest version: https://github.com/COSIMA/make_diag_table
+#
+# Define the diagnostics you want in the diag_table section below.
+#
+# The MOM diag_table format is defined here:
+# https://github.com/mom-ocean/MOM5/blob/master/src/shared/diag_manager/diag_table.F90
+# https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html
+#######################################################################################################
+
+
+# Define global default settings which will be applied to all diagnostics,
+# unless overridden in diag_table section below, either in defaults or individual fields.
+# You're unlikely to need to change any of the global_defaults.
+global_defaults:
+# global_section:
+    title: ACCESS-OM3  # any string
+    base_date: [ 1900, 1, 1, 0, 0, 0 ]  # reference time used for the time units. six integers: year, month, day, hour, minute, second
+# file section:
+    file_name:  # String, or list of components, for file name (without trailing ".nc").
+    # If a list, its elements are a mixture of strings and dictionaries.
+    # String list elements are concatenated, each preceded by file_name_separator.
+    # Dictionary list elements must have one key-value pair; the value is a list
+    # containing 1 or more strings to be concatenated, each preceded by the key
+    # (a string) instead of file_name_separator. The key may be an empty string,
+    # which is useful if file_name_date begins with %, since FMS prepends _ .
+    # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+    # If file_name_date is used, it must be the last item.
+    # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+    # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+    # A separator is not used prior to the first item.
+        - file_name_prefix
+        - file_name_dimension
+        - field_name  # substituted by field name in diag_table section below
+        - output_freq
+        - '':
+            - output_freq_units
+        - reduction_method
+        - file_name_date
+    output_freq: 1  # integer: output sampling frequency in output_freq_units (0: every timestep; -1: only at end of run)
+    output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+    file_format: 1  # integer, must be 1, specifying NetCDF (the only format currently supported)
+    time_axis_units: days  # time units for the output file time axis: years, months, days, hours, minutes, or seconds
+    time_axis_name: time  # must be "time" (case-insensitive)
+    new_file_freq: 1  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+    new_file_freq_units: months  # time units for new_file_freq: years, months, days, hours, minutes, or seconds (optional; required if and only if new_file_freq specified)
+    start_time:  # Time to start the file for the first time. The format of this string is the same as base_date (optional; requires new_file_freq, new_file_freq_units)
+    file_duration:  # integer: How long file should receive data after start time (optional; requires new_file_freq, new_file_freq_units, start_time)
+    file_duration_units:  # units for file_duration: years, months, days, hours, minutes, or seconds (optional; required if and only if file_duration specified)
+# field section:
+    module_name: ocean_model
+    field_name:  # set via keys in the fields section of the diag_table section below
+    output_name:  # same as field_name unless overridden
+    # file_name:  # same as file_name in file section above unless overridden in diag_table section below
+    time_sampling: all  # Currently not used.  Please use the string "all".
+    reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+    # reduction_method options:
+    #     mean or average or true: Average from the last time written to the current time. Becomes "average" in diag_table.
+    #     snap or none or false: No reduction.  Write snapshot of current time step value only. Becomes "none" in diag_table.
+    #     rms: Calculate the root mean square from the last time written to the current time.
+    #     pow##: Calculate the mean of the power ## from the last time written to the current time.
+    #     min: Minimum value from last write to current time.
+    #     max: Maximum value from last write to current time.
+    #     diurnal##: ## diurnal averages
+    regional_section: none  # string: bounds of the regional section to capture ("none" indicates a global region). String format: lat_min, lat_max, lon_min, lon_max, vert_min, vert_max. Use vert_min = -1 and vert_max = -1 to get the entire vertical axis.
+    packing: 2
+    # packing is the Fortran number KIND of the data written:
+    #     1: double precision
+    #     2: float (single precision)
+    #     4: packed 16-bit integers
+    #     8: packed 1-byte (not tested)
+# extra things for constructing filename:
+    file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+    file_name_prefix: access-om3.mom6
+    file_name_date: "%4yr%2mo"  # "%4yr%2mo" # run date/time of file opening; format: %, 1 digit (#digits), one of (yr, mo, dy, hr, mi, sc); date/time components will be separated by _ in filename.
+    file_name_separator: "."  # used to separate filename components; best not to use "_" to avoid confusion with fields and dates
+    file_name_omit_empty: true  # whether to omit empty filename components to avoid duplicate file_name_separator
+    file_name_substitutions:  # string replacements for filename components
+        years: yr
+        months: mon
+        days: day
+        hours: hr
+        none: snap  # careful! will apply to both reduction_method and regional_section
+        'False': snap
+        average: mean
+        'True': mean
+        None: ""  # for empty items
+# %yr, %mo, %dy, %hr %mi, %sc are expanded to the current year, month, day, hour, minute and second respectively,
+
+#######################################################################################################
+# diag_table section - this defines the diagnostics that will appear in diag_table.
+# 
+# Top-level categories in diag_table have arbitrary names (they're just used for
+# comments in the output diag_table). Make as many of these as you like to group
+# similar diagnostics with shared defaults. Note that each of the top-level
+# categories can have only have one instance of each field name, so if you need
+# multiple outputs of the same field (e.g. as both averages and snapshots), you’ll
+# need to make additional categories.
+# 
+# Within each top-level category there's an optional defaults section and a
+# fields section. The defaults section overrides items in global_defaults for
+# all fields in the category. The field section specifies diagnostic field
+# names. To add a new diagnostic, all you need to do is add its name to the
+# field section in the appropriate category. Each field name can be followed by
+# a dictionary overriding the category and global defaults for that field only.
+# 
+# Some of the available diagnostics are listed here:
+# https://raw.githubusercontent.com/COSIMA/access-om2/master/MOM_diags.txt
+# https://github.com/COSIMA/access-om2/wiki/Technical-documentation#MOM5-diagnostics-list
+diag_table:
+    'static 2d grid data':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: static  # descriptor for filename, e.g. 3d, 2d, scalar
+            file_name:  # String, or list of components, for file name (without trailing ".nc").
+            # If a list, its elements are a mixture of strings and dictionaries.
+            # String list elements are concatenated, each preceded by file_name_separator.
+            # Dictionary list elements must have one key-value pair; the value is a list
+            # containing 1 or more strings to be concatenated, each preceded by the key
+            # (a string) instead of file_name_separator. The key may be an empty string,
+            # which is useful if file_name_date begins with %, since FMS prepends _ .
+            # All filename list string elements (other than field_name) must exist as keys in global_defaults.
+            # If file_name_date is used, it must be the last item.
+            # Key values are looked up, converted to strings and then substituted using file_name_substitutions.
+            # Empty strings (and their preceding separator) are ignored if file_name_omit_empty is true.
+            # A separator is not used prior to the first item.
+                - file_name_prefix
+                - file_name_dimension
+            reduction_method: snap  # mean, snap, rms, pow##, min, max, or diurnal##
+            output_freq: -1  # Output frequency in output_freq_units (0: every timestep; -1: only at end of run)
+            output_freq_units: months  # time units for output: years, months, days, hours, minutes, or seconds
+            new_file_freq:  # optional integer: frequency (in new_file_freq_units) for closing the existing file, and creating a new file
+        fields:
+            areacello: # Surface area of tracer (T) cells
+            areacello_cu: # Surface area of x-direction flow (U) cells
+            areacello_cv: # Surface area of y-direction flow (V) cells
+            areacello_bu: # Surface area of B-grid flow (Q) cells
+            dxt: # Delta(x) at thickness/tracer points (meter)
+            dyt: # Delta(y) at thickness/tracer points (meter)
+            geolat_c: # Latitude of corner (Bu) points
+            geolat: # Latitude of tracer (T) points
+            geolat_u: # Latitude of zonal velocity (Cu) points
+            geolat_v: # Latitude of meridional velocity (Cv) points
+            geolon_c: # Longitude of corner (Bu) points
+            geolon: # Longitude of tracer (T) points
+            geolon_u: # Longitude of zonal velocity (Cu) points
+            geolon_v: # Longitude of meridional velocity (Cv) points
+            deptho: # Depth of the ocean at tracer points
+            wet: # 0 if land, 1 if ocean at tracer points
+            wet_c: # 0 if land, 1 if ocean at corner (Bu) points
+            wet_u: # 0 if land, 1 if ocean at zonal velocity (Cu) points
+            wet_v: # 0 if land, 1 if ocean at meridional velocity (Cv) points
+            Coriolis: # Coriolis parameter at corner (Bu) points
+            sin_rot: # sine of the clockwise angle of the ocean grid north to true north
+            cos_rot: # cosine of the clockwise angle of the ocean grid north to true north
+            dxCu: # dxCu is delta x at u points [L ~> m]
+            dyCu: # dyCu is delta y at u points [L ~> m]
+            dxCv: # dxCv is delta x at v points [L ~> m]
+            dyCv: # dyCv is delta y at v points [L ~> m]
+            dyCuo: # Open meridional grid spacing at u points (meter)
+            dxCvo: # Open zonal grid spacing at v points (meter)
+    'monthly 3d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            h: # Layer Thickness
+            e: # Interface Height Relative to Mean Sea Level
+            agessc: # Sea water age since surface contact
+            difmxybo: # Biharmonic Horizontal Viscosity at h Points Ahh
+            difmxylo: # Laplacian Horizontal Viscosity at h Points Khh
+            diftrelo: # Epipycnal tracer diffusivity at tracer cell center KHTR_h
+            diftrblo: # Ocean Tracer Diffusivity due to Parameterized Mesoscale Advection KHTH_t
+            rhopot0: # Potential density referenced to surface
+            rhopot2: # Potential density referenced to 2000 dbar
+            thetao: # Potential Temperature
+            so: # Salinity
+            T_adx: # Temperature x flux (advection)
+            T_ady: # Temperature y flux (advection)
+            S_adx: # Salinity x flux (advection)
+            S_ady: # Salinity y flux (advection)
+            T_diffx: # Diffusive Zonal Flux of temperature
+            T_diffy: # Diffusive Meridional Flux of temperature
+            S_diffx: # Diffusive Zonal Flux of salinity
+            S_diffy: # Diffusive Meridional Flux of salinity
+            umo: # Ocean Mass X Transport
+            vmo: # Ocean Mass Y Transport
+            uo: # u velocity
+            vo: # v velocity
+            uh: # Zonal Thickness Flux
+            vh: # Meridional Thickness Flux
+            uhGM: # Time Mean Diffusive Zonal Thickness Flux
+            vhGM: # Time Mean Diffusive Meridional Thickness Flux
+            uhml: # Zonal Thickness Flux to Restratify Mixed Layer
+            vhml: # Meridional Thickness Flux to Restratify Mixed Layer
+            thkcello: # Cell Thickness
+            KE: # Layer Kinetic energy per unit mass
+
+    'monthly 3d squared fields':  # for calculating EKE etc
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 3d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: pow02  # mean, snap, rms, pow##, min, max, or diurnal##
+        fields:
+            uo:
+            vo:
+            
+    'monthly 2d fields':
+        defaults:  # these can be overridden for individual fields below
+            file_name_dimension: 2d  # descriptor for filename, e.g. 3d, 2d, scalar
+            reduction_method: mean
+        fields:
+            evs: # Evaporation/condensation at ocean surface (evaporation is negative) evap
+            ficeberg: # Frozen runoff (calving) and iceberg melt into ocean frunoff
+            friver: # Liquid runoff (rivers) into ocean lrunoff
+            fsitherm: # water flux to ocean from snow/sea ice melting(> 0) or formation(< 0) seaice_melt
+            heat_content_cond: # Heat content (relative to 0degC) of water condensing into ocean
+            heat_content_evap: # Heat content (relative to 0degC) of water evaporating from ocean
+            heat_content_fprec: # Heat content (relative to 0degC) of frozen prec entering ocean
+            heat_content_frunoff: # Heat content (relative to 0C) of solid runoff into ocean
+            heat_content_lrunoff: # Heat content (relative to 0C) of liquid runoff into ocean
+            heat_content_lprec: # Heat content (relative to 0degC) of liquid precip entering ocean
+            heat_content_vprec: # Heat content (relative to 0degC) of virtual precip entering ocean
+            hfrunoffds: # Heat content (relative to 0C) of liquid+solid runoff into ocean
+            hfrainds: # Heat content (relative to 0degC) of liquid+frozen precip entering ocean
+            hfevapds: # Heat content (relative to 0degC) of net mass leaving ocean ocean via evap and ice form heat_content_massout
+            Heat_PmE: # Heat flux into ocean from mass flux into ocean
path: diag_table_source.yaml
user: login: aekiss
body: sounds good, thanks for checking
created_at: 2025-03-06T00:01:24Z
author_association: CONTRIBUTOR

PR comments:
user: login: minghangli-uni
created_at: 2025-01-17T01:07:35Z
body: Hi @aekiss , can you please review it when you are available? 
author_association: COLLABORATOR
user: login: anton-seaice
created_at: 2025-01-17T03:32:29Z
body: !test repro
author_association: COLLABORATOR
user: login: github-actions[bot]
created_at: 2025-01-17T03:36:38Z
body: :x: The Bitwise Reproducibility Check Failed :x:

When comparing:

- `dev-025deg_jra55do_ryf_iss257` (checksums created using commit [4a663e3](https://github.com/ACCESS-NRI/access-om3-configs/tree/4a663e368c8b2a720fb3197d21ff0743b2cabf50)), against
- `dev-025deg_jra55do_ryf` (checksums in commit [f37396e](https://github.com/ACCESS-NRI/access-om3-configs/tree/f37396e0047d59ddafefb435c08073a0256cfcef))



<details>
<summary> Further information</summary>

The experiment can be found on Gadi at `/scratch/tm70/repro-ci/experiments/access-om3-configs/4a663e368c8b2a720fb3197d21ff0743b2cabf50`, and the test results at https://github.com/ACCESS-NRI/access-om3-configs/runs/35754730407.

The checksums generated by this `!test` command are found in the `testing/checksum` directory of https://github.com/ACCESS-NRI/access-om3-configs/actions/runs/12822161716/artifacts/2444836580.

The checksums compared against are found here https://github.com/ACCESS-NRI/access-om3-configs/tree/f37396e0047d59ddafefb435c08073a0256cfcef/testing/checksum

</details>


author_association: NONE
user: login: anton-seaice
created_at: 2025-01-17T03:43:10Z
body: Hi @minghangli-uni - test run failed with:

```
FATAL from PE     0: diag_axis_mod::diag_axis_init: num_axis_sets (26) exceeds max_num_axis_sets (25).  Increase max_num_axis_sets via diag_manager_nml.
```

Looks like it happened on most PEs
author_association: COLLABORATOR
user: login: minghangli-uni
created_at: 2025-01-17T04:03:36Z
body: !test repro
author_association: COLLABORATOR
user: login: github-actions[bot]
created_at: 2025-01-17T04:14:38Z
body: :white_check_mark: The Bitwise Reproducibility Check Succeeded :white_check_mark:

When comparing:

- `dev-025deg_jra55do_ryf_iss257` (checksums created using commit [ccc44fb](https://github.com/ACCESS-NRI/access-om3-configs/tree/ccc44fb4ac8bce98dcc997ef86ed8e2d302ec227)), against
- `dev-025deg_jra55do_ryf` (checksums in commit [f37396e](https://github.com/ACCESS-NRI/access-om3-configs/tree/f37396e0047d59ddafefb435c08073a0256cfcef))



<details>
<summary> Further information</summary>

The experiment can be found on Gadi at `/scratch/tm70/repro-ci/experiments/access-om3-configs/ccc44fb4ac8bce98dcc997ef86ed8e2d302ec227`, and the test results at https://github.com/ACCESS-NRI/access-om3-configs/runs/35755655798.

The checksums generated by this `!test` command are found in the `testing/checksum` directory of https://github.com/ACCESS-NRI/access-om3-configs/actions/runs/12822441249/artifacts/2444929021.

The checksums compared against are found here https://github.com/ACCESS-NRI/access-om3-configs/tree/f37396e0047d59ddafefb435c08073a0256cfcef/testing/checksum

</details>


author_association: NONE
user: login: anton-seaice
created_at: 2025-01-23T03:24:30Z
body: Re-running the CI after ACCESS-NRI/access-om3-configs#346 means the tests now pass
author_association: COLLABORATOR
user: login: aekiss
created_at: 2025-01-28T04:14:37Z
body: Thanks @minghangli-uni, I think the `diag_table_source.yaml` that was used should also be part of this PR for provenance and ease of updates.
author_association: CONTRIBUTOR
user: login: minghangli-uni
created_at: 2025-01-28T04:27:39Z
body: Thanks @aekiss . The `diag_table_source.yaml` configuration file has been attached.
author_association: COLLABORATOR
user: login: anton-seaice
created_at: 2025-01-31T05:06:05Z
body: We could set 'prsn', 'prlq', 'vprec', 'evs', 'fsitherm','friver', 'ficeberg' to save daily output whilst we are confirming the freshwater conservation. Is it ok to do in this PR ?

based on this code snippet
```
  ! adjust the NET fresh-water flux to zero, if flagged
  if (CS%adjust_net_fresh_water_to_zero) then
    sign_for_net_FW_bug = 1.
    if (CS%use_net_FW_adjustment_sign_bug) sign_for_net_FW_bug = -1.
    do j=js,je ; do i=is,ie
      net_FW(i,j) = US%RZ_T_to_kg_m2s * &
                    (((fluxes%lprec(i,j)   + fluxes%fprec(i,j) + fluxes%seaice_melt(i,j)) + &
                      (fluxes%lrunoff(i,j) + fluxes%frunoff(i,j))) + &
                      (fluxes%evap(i,j)    + fluxes%vprec(i,j)) ) * US%L_to_m**2*G%areaT(i,j)
      net_FW2(i,j) = net_FW(i,j) / (US%L_to_m**2*G%areaT(i,j))
    enddo ; enddo
```
author_association: COLLABORATOR
user: login: minghangli-uni
created_at: 2025-01-31T05:21:26Z
body: > We could set 'prsn', 'prlq', 'vprec', 'evs', 'fsitherm','friver', 'ficeberg' to save daily output whilst we are confirming the freshwater conservation. Is it ok to do in this PR ?

I am not sure. They are mainly for testing freshwater conservation, it may not be necessary for everyone and might impact performance for others using the same configuration. To confirm freshwater conservation, I’d suggest adding these parameters in daily format for your test rather than including them here for general use? 

Any thoughts @aekiss ?
author_association: COLLABORATOR
user: login: dougiesquire
created_at: 2025-02-20T03:32:59Z
body: > To confirm freshwater conservation, I’d suggest adding these parameters in daily format for your test rather than including them here for general use?

Yeah I think I agree. We can't cater for everyone and I think the list here, which I understand was mostly taken from OM2, was arrived at after iteration with users. It probably provides a pretty good starting point.

@minghangli-uni, could you please rebase this onto the latest `dev-025deg_jra55do_ryf`?
author_association: COLLABORATOR
user: login: minghangli-uni
created_at: 2025-02-24T21:47:19Z
body: Hi @aekiss , I've added another two `SW_pen`, and `salt_flux_in` to the monthly 2d mean fields, and three new daily blocks - daily 2D fields, daily 2D max fields, and daily 2D min fields, to be consistent with OM2. 





author_association: COLLABORATOR
user: login: minghangli-uni
created_at: 2025-02-27T01:36:53Z
body: @dougiesquire I am using the latest version. I think the difference you came across is between `mean` and `average`? I made that temporary change in my script a while ago to align with the example in [mom6 diagnostics](https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html#:~:text=means%201%2Dbyte.-,Example,%C2%B6,-%22OM4%20%201/4). But it seems that [`average` performs the same function](https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html#:~:text=reduction_method%3A%20%E2%80%9Cnone%E2%80%9D%20means%20sample%20or%20snapshot.%20%E2%80%9Caverage%E2%80%9D%20or%20%E2%80%9Cmean%E2%80%9D%20performs%20a%20time%2Daverage.%20%E2%80%9Cmin%E2%80%9D%20or%20%E2%80%9Cmax%E2%80%9D%20diagnose%20the%20minium%20or%20maxium%20over%20each%20time%20period.). 

I havent updated it yet. I am waiting for Andrew's comments before making changes to the diag_table.


author_association: COLLABORATOR
user: login: aekiss
created_at: 2025-03-05T23:58:50Z
body: `mean` and `average` are [equivalent](https://github.com/COSIMA/make_diag_table/blob/master/diag_table_source.yaml#L59) in terms of the data reduction method, but I used `mean` because it's also used in constructing the filename and it's a bit shorter.
author_association: CONTRIBUTOR
user: login: minghangli-uni
created_at: 2025-03-06T00:12:28Z
body: > but I used mean because it's also used in constructing the filename and it's a bit shorter.

If so we may need some changes here?

https://github.com/COSIMA/make_diag_table/blob/1fd3c24bcc38cecffebe4012f56629eb5bc57071/make_diag_table.py#L149-L150

I can create a quick PR for this. 
author_association: COLLABORATOR
user: login: dougiesquire
created_at: 2025-03-06T00:26:32Z
body: > > but I used mean because it's also used in constructing the filename and it's a bit shorter.
> 
> If so we may need some changes here?
> 
> https://github.com/COSIMA/make_diag_table/blob/1fd3c24bcc38cecffebe4012f56629eb5bc57071/make_diag_table.py#L149-L150
> 
> I can create a quick PR for this.

But we [want `mean` in the filename](https://github.com/COSIMA/access-om3/issues/190#issuecomment-2272409582)? Isn't that what @aekiss is saying is currently done?
author_association: COLLABORATOR
user: login: dougiesquire
created_at: 2025-03-06T00:29:25Z
body: > But we https://github.com/COSIMA/access-om3/issues/190#issuecomment-2272409582? Isn't that what @aekiss is saying is currently done?

Sorry scratch that, I think I'm either misunderstanding what @aekiss is saying, or it's wrong. It looks like `average` is used in the filename.
author_association: COLLABORATOR
user: login: minghangli-uni
created_at: 2025-03-06T00:31:18Z
body: No, the current latest version will force `mean` to be `average`. 
author_association: COLLABORATOR
user: login: aekiss
created_at: 2025-03-06T03:28:12Z
body: The filename is set by `fname = set_filename(f)` before we set `f['reduction_method'] = 'average'`
https://github.com/COSIMA/make_diag_table/blob/1fd3c24bcc38cecffebe4012f56629eb5bc57071/make_diag_table.py#L130-L150
so `diag_table` ends up with lines like
```
"ocean_model", "surface_salt", "surface_salt", "ocean-2d-surface_salt-1-daily-mean-ym%4yr%2mo", "all", "average", "none", 2
```
with the reduction method being "average" but the filename containing "mean", which is what we want - see
https://github.com/ACCESS-NRI/access-om2-configs/blob/release-025deg_jra55_ryf/ocean/diag_table#L326

author_association: CONTRIBUTOR
user: login: dougiesquire
created_at: 2025-03-06T03:30:50Z
body: Great! So no change is needed 🙂 Thanks @aekiss 
author_association: COLLABORATOR
user: login: minghangli-uni
created_at: 2025-03-06T03:38:21Z
body: I was thinking of this [average performs the same function](https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html#:~:text=reduction_method%3A%20%E2%80%9Cnone%E2%80%9D%20means%20sample%20or%20snapshot.%20%E2%80%9Caverage%E2%80%9D%20or%20%E2%80%9Cmean%E2%80%9D%20performs%20a%20time%2Daverage.%20%E2%80%9Cmin%E2%80%9D%20or%20%E2%80%9Cmax%E2%80%9D%20diagnose%20the%20minium%20or%20maxium%20over%20each%20time%20period.) and the [examples like this](https://mom6.readthedocs.io/en/main/api/generated/pages/Diagnostics.html#:~:text=%22ocean_month%22%2C%20%201%2C%20%20%22months%22%2C%20%201%2C%20%20%22days%22%2C%20%20%22time%22%0A%22ocean_model%22%2C%20%20%22thetao%22%2C%20%20%22thetao%22%2C%20%20%22ocean_month%22%2C%20%20%22all%22%2C%20%20%22mean%22%2C%20%20%22none%22%2C2).

Good to know we don't need to change anything!

author_association: COLLABORATOR
user: login: dougiesquire
created_at: 2025-03-06T21:59:26Z
body: @minghangli-uni let us know when you think this is ready as I'd like to give it a hoon
author_association: COLLABORATOR
user: login: minghangli-uni
created_at: 2025-03-06T22:20:32Z
body: All set! Just rebased it onto the latest 0.25ryf config.
author_association: COLLABORATOR
user: login: minghangli-uni
created_at: 2025-03-31T04:26:50Z
body: !cherry-pick [4217eff](https://github.com/ACCESS-NRI/access-om3-configs/commit/4217eff613d289c80cbfff1a485dfe558e504541) into dev-MC_1deg_jra_ryf dev-MC_1deg_jra_iaf
author_association: COLLABORATOR
user: login: minghangli-uni
created_at: 2025-03-31T04:30:20Z
body: !cherry-pick [4217eff](https://github.com/ACCESS-NRI/access-om3-configs/commit/4217eff613d289c80cbfff1a485dfe558e504541) into dev-MC_1deg_jra_ryf
author_association: COLLABORATOR
user: login: minghangli-uni
created_at: 2025-03-31T04:32:44Z
body: !cherry-pick 4217eff into dev-MC_1deg_jra_ryf dev-MC_1deg_jra_iaf
author_association: COLLABORATOR
user: login: github-actions[bot]
created_at: 2025-03-31T04:32:55Z
body: > !cherry-pick 4217eff into dev-MC_1deg_jra_ryf dev-MC_1deg_jra_iaf

Automatic cherry-pick failed. Could not find commit(s)  `4217eff` in [dev-025deg_jra55do_ryf](git://github.com/ACCESS-NRI/access-om3-configs.git/tree/dev-025deg_jra55do_ryf).
author_association: NONE
user: login: minghangli-uni
created_at: 2025-03-31T04:45:25Z
body: Automatic cherry-picking doesn’t seem to work well if the branch name is changed.
author_association: COLLABORATOR