From 27cba7c152a7b0f24d9c83f2592a3e2cd4cb08eb Mon Sep 17 00:00:00 2001 From: Yi-Cheng Teng - NOAA GFDL <143743249+yichengt900@users.noreply.github.com> Date: Wed, 4 Sep 2024 11:55:16 -0400 Subject: [PATCH] Turn on PHA_MLD_CALC and associated runtime parameters to allow MOM6 to calculate a photoacclimation MLD (#85) * Update BGC tag * Update MOM6 tag to have new mom6 mld interface * Update model configs to reflect new interface changes * Update MOM6 tag again * Update FMS and coupler to 2024.03, also update xmls * update ci build driver * Revert "Update MOM6 tag again" This reverts commit a5d46153ffdbf066f9156d1104d612156f702044. * Revert "update ci build driver" This reverts commit 3f172eef0e5d32eab45a121deb8e9f17ace0b98a. * Revert "Update FMS and coupler to 2024.03, also update xmls" This reverts commit c8c77ff25670433b0bfe73e26a36257e366aa56d. * added scale_burial option in COBALT_input * Changed FRE STEM name * Created new diag_table to preserve old diag_table --- exps/NEP10.COBALT/INPUT/MOM_override | 6 + exps/NWA12.COBALT/INPUT/MOM_override | 6 + exps/OM4.single_column.COBALT/MOM_override | 7 + src/MOM6 | 2 +- src/ocean_BGC | 2 +- xmls/NWA12/CEFI_NWA12_cobalt.xml | 15 +- xmls/NWA12/CEFI_NWA12_cobalt_fms2_yaml.xml | 13 +- .../NWA12/diag_tables/diag_table_MOM6_2024-09 | 441 ++++++++++++++++++ 8 files changed, 485 insertions(+), 7 deletions(-) create mode 100644 xmls/NWA12/diag_tables/diag_table_MOM6_2024-09 diff --git a/exps/NEP10.COBALT/INPUT/MOM_override b/exps/NEP10.COBALT/INPUT/MOM_override index 75b0159b9..5f76de6cf 100644 --- a/exps/NEP10.COBALT/INPUT/MOM_override +++ b/exps/NEP10.COBALT/INPUT/MOM_override @@ -13,3 +13,9 @@ #override MLE%MLD_DECAYING_TFILTER = 2.592E+06 #override MLE%MIN_WSTAR2 = 1.0E-09 #override MLE_USE_PBL_MLD = True +#override PHA_MLD_CALC = True +#override PHA_MLD_USE_DELTA_RHO = True +#override PHA_MLD_HREF = 10.0 +#override PHA_MLD_DRHO = 0.03 +#override HREF_FOR_MLD = 10.0 +#override DIAG_MLD_DENSITY_DIFF = 0.03 diff --git a/exps/NWA12.COBALT/INPUT/MOM_override b/exps/NWA12.COBALT/INPUT/MOM_override index 99dc27f38..6e54b28fb 100644 --- a/exps/NWA12.COBALT/INPUT/MOM_override +++ b/exps/NWA12.COBALT/INPUT/MOM_override @@ -12,3 +12,9 @@ #override REMAP_AUXILIARY_VARS = True #override DIABATIC_FIRST = False #override EQN_OF_STATE = "WRIGHT_FULL" +#override PHA_MLD_CALC = True +#override PHA_MLD_USE_DELTA_RHO = True +#override PHA_MLD_HREF = 10.0 +#override PHA_MLD_DRHO = 0.03 +#override HREF_FOR_MLD = 10.0 +#override DIAG_MLD_DENSITY_DIFF = 0.03 diff --git a/exps/OM4.single_column.COBALT/MOM_override b/exps/OM4.single_column.COBALT/MOM_override index 480a6f13b..75ec70e6e 100644 --- a/exps/OM4.single_column.COBALT/MOM_override +++ b/exps/OM4.single_column.COBALT/MOM_override @@ -37,3 +37,10 @@ #override DO_GEOTHERMAL = True #override GEOTHERMAL_SCALE = 0.0 #override GENERIC_TRACER_IC_FILE = "MOM_IC.nc" +!MOM6 photo_acc MLD +#override PHA_MLD_CALC = True +#override PHA_MLD_USE_DELTA_RHO = True +#override PHA_MLD_HREF = 10.0 +#override PHA_MLD_DRHO = 0.03 +#override HREF_FOR_MLD = 10.0 +#override DIAG_MLD_DENSITY_DIFF = 0.03 diff --git a/src/MOM6 b/src/MOM6 index 45b388b4a..d54abcebc 160000 --- a/src/MOM6 +++ b/src/MOM6 @@ -1 +1 @@ -Subproject commit 45b388b4a1b8fa4281934822d81eb2d167601ee9 +Subproject commit d54abcebc07375fe6a69e472c65143351bb54969 diff --git a/src/ocean_BGC b/src/ocean_BGC index 09bb183df..c10390de4 160000 --- a/src/ocean_BGC +++ b/src/ocean_BGC @@ -1 +1 @@ -Subproject commit 09bb183dfc448370ca023a946054a30b763b5102 +Subproject commit c10390de4308bcd35059a137a408cd33c1dfa499 diff --git a/xmls/NWA12/CEFI_NWA12_cobalt.xml b/xmls/NWA12/CEFI_NWA12_cobalt.xml index 22856d516..b27776751 100644 --- a/xmls/NWA12/CEFI_NWA12_cobalt.xml +++ b/xmls/NWA12/CEFI_NWA12_cobalt.xml @@ -52,7 +52,7 @@ frecheck -r layout -p ncrc6.intel23 -x CEFI_NWA12_cobalt.xml CEFI_NWA12_COBALT_V - + @@ -557,7 +557,7 @@ $baseDate ./diag_tables/diag_table_COBALT_2023-04 - ./diag_tables/diag_table_MOM6_2023-03 + ./diag_tables/diag_table_MOM6_2024-09 ./diag_tables/diag_table.SIS ./diag_tables/diag_table_COBALT_neus ./diag_tables/diag_table_MOM6_neus @@ -591,6 +591,12 @@ DT_OBC_SEG_UPDATE_OBGC = 1800 #override REMAP_AUXILIARY_VARS = True #override DIABATIC_FIRST = False #override EQN_OF_STATE = "WRIGHT_FULL" +#override PHA_MLD_CALC = True +#override PHA_MLD_USE_DELTA_RHO = True +#override PHA_MLD_HREF = 10.0 +#override PHA_MLD_DRHO = 0.03 +#override HREF_FOR_MLD = 10.0 +#override DIAG_MLD_DENSITY_DIFF = 0.03 MOM_OVERRIDE_EOF truncate -s 0 $work/INPUT/COBALT_override @@ -605,7 +611,10 @@ COBALT_OVERRIDE_EOF truncate -s 0 $work/INPUT/COBALT_input cat > $work/INPUT/COBALT_input << COBALT_INPUT_EOF ! Put the contents of your COBALT_input file here -do_case2_mod = True +do_case2_mod = True +scale_burial = 1.0 +z_burial = 20.0 +z_denit = 20.0 COBALT_INPUT_EOF ]]> diff --git a/xmls/NWA12/CEFI_NWA12_cobalt_fms2_yaml.xml b/xmls/NWA12/CEFI_NWA12_cobalt_fms2_yaml.xml index 28d00f176..ab8133ed5 100644 --- a/xmls/NWA12/CEFI_NWA12_cobalt_fms2_yaml.xml +++ b/xmls/NWA12/CEFI_NWA12_cobalt_fms2_yaml.xml @@ -52,7 +52,7 @@ frecheck -r layout -p ncrc6.intel23 -x CEFI_NWA12_cobalt_fms2_yaml.xml CEFI_NWA1 - + @@ -557,7 +557,7 @@ $baseDate ./diag_tables/diag_table_COBALT_2023-04 - ./diag_tables/diag_table_MOM6_2023-03 + ./diag_tables/diag_table_MOM6_2024-09 ./diag_tables/diag_table.SIS ./diag_tables/diag_table_COBALT_neus ./diag_tables/diag_table_MOM6_neus @@ -591,6 +591,12 @@ DT_OBC_SEG_UPDATE_OBGC = 1800 #override REMAP_AUXILIARY_VARS = True #override DIABATIC_FIRST = False #override EQN_OF_STATE = "WRIGHT_FULL" +#override PHA_MLD_CALC = True +#override PHA_MLD_USE_DELTA_RHO = True +#override PHA_MLD_HREF = 10.0 +#override PHA_MLD_DRHO = 0.03 +#override HREF_FOR_MLD = 10.0 +#override DIAG_MLD_DENSITY_DIFF = 0.03 MOM_OVERRIDE_EOF truncate -s 0 $work/INPUT/COBALT_override @@ -606,6 +612,9 @@ truncate -s 0 $work/INPUT/COBALT_input cat > $work/INPUT/COBALT_input << COBALT_INPUT_EOF ! Put the contents of your COBALT_input file here do_case2_mod = True +scale_burial = 1.0 +z_burial = 20.0 +z_denit = 20.0 COBALT_INPUT_EOF #hack to test yaml diag_table, convert the diag_table to yaml format diff --git a/xmls/NWA12/diag_tables/diag_table_MOM6_2024-09 b/xmls/NWA12/diag_tables/diag_table_MOM6_2024-09 new file mode 100644 index 000000000..63334def6 --- /dev/null +++ b/xmls/NWA12/diag_tables/diag_table_MOM6_2024-09 @@ -0,0 +1,441 @@ +# MOM6 ocean diagnostics files + +"ocean_daily", 1, "days", 1, "days", "time" +"ocean_month_snap", 1, "months", 1, "days", "time" +"ocean_month", 1, "months", 1, "days", "time" +"ocean_month_z", 1, "months", 1, "days", "time" +"ocean_annual", 12, "months", 1, "days", "time" +"ocean_annual_z", 12, "months", 1, "days", "time" +"ocean_static", -1, "months", 1, "days", "time" # ocean_static is a protected name. Do not change this line. + +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table G1: static information + "ocean_model", "areacello", "areacello", "ocean_static", "all", "none", "none", 2 + "ocean_model", "deptho", "deptho", "ocean_static", "all", "none", "none", 2 +#"ocean_model", "basin", "basin", "ocean_static", "all", "none", "none", 2 # in /archive/gold/datasets/OM4_025/ +# "ocean_model", "hfgeou", "hfgeou", "ocean_static", "all", "none", "none", 2 # for static geothermal heat + "ocean_model", "sftof", "sftof", "ocean_static", "all", "none", "none", 2 + +# Extra static geometry data beyond CMIP6/OMIP Table 2.1 + "ocean_model", "Coriolis", "Coriolis", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolon", "geolon", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolat", "geolat", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolon_c", "geolon_c", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolat_c", "geolat_c", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolon_u", "geolon_u", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolat_u", "geolat_u", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolon_v", "geolon_v", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolat_v", "geolat_v", "ocean_static", "all", "none", "none", 2 + "ocean_model", "wet", "wet", "ocean_static", "all", "none", "none", 2 + "ocean_model", "wet_c", "wet_c", "ocean_static", "all", "none", "none", 2 + "ocean_model", "wet_u", "wet_u", "ocean_static", "all", "none", "none", 2 + "ocean_model", "wet_v", "wet_v", "ocean_static", "all", "none", "none", 2 + "ocean_model", "dxt", "dxt", "ocean_static", "all", "none", "none", 2 + "ocean_model", "dyt", "dyt", "ocean_static", "all", "none", "none", 2 + "ocean_model", "dxCu", "dxCu", "ocean_static", "all", "none", "none", 2 + "ocean_model", "dyCu", "dyCu", "ocean_static", "all", "none", "none", 2 + "ocean_model", "dxCv", "dxCv", "ocean_static", "all", "none", "none", 2 + "ocean_model", "dyCv", "dyCv", "ocean_static", "all", "none", "none", 2 + "ocean_model", "areacello_cu","areacello_cu","ocean_static", "all", "none", "none", 2 + "ocean_model", "areacello_cv","areacello_cv","ocean_static", "all", "none", "none", 2 + "ocean_model", "areacello_bu","areacello_bu","ocean_static", "all", "none", "none", 2 + +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table H1: scalar fields such as tracers, cell mass/volume, sea level, MLD +# Generally save annuals, and sometimes monthly and daily. + "ocean_model_z", "volcello", "volcello", "ocean_annual_z", "all", "mean", "none",2 # Cell measure for 3d data + "ocean_model_z", "volcello", "volcello", "ocean_month_z", "all", "mean", "none",2 # Cell measure for 3d data + "ocean_model", "volcello", "volcello", "ocean_annual", "all", "mean", "none",2 # Cell measure for 3d data +# "ocean_model", "volcello", "volcello", "ocean_month", "all", "mean", "none",2 # Cell measure for 3d data + "ocean_model", "pbo", "pbo", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "pbo", "pbo", "ocean_month", "all", "mean", "none",2 +# "ocean_model", "pso", "pso", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "pso", "pso", "ocean_month", "all", "mean", "none",2 + "ocean_model", "masscello", "masscello", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "masscello", "masscello", "ocean_month", "all", "mean", "none",2 + "ocean_model", "thkcello", "thkcello", "ocean_annual", "all", "mean", "none",2 # Only needed in native space a static field needs to be provided for CMIP6 +#"ocean_model", "thkcello", "thkcello", "ocean_month", "all", "mean", "none",2 + "ocean_model", "ssh", "ssh", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "zos", "zos", "ocean_month", "all", "mean", "none",2 + "ocean_model", "ssh", "ssh", "ocean_month", "all", "mean", "none",2 +# "ocean_model", "zos", "zos", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "ssh", "ssh", "ocean_daily", "all", "mean", "none",2 +# "ocean_model", "zos", "zosmin", "ocean_daily", "all", "min", "none",2 +# "ocean_model", "zos", "zosmax", "ocean_daily", "all", "max", "none",2 + "ocean_model", "ssh", "sshmin", "ocean_daily", "all", "min", "none",2 + "ocean_model", "ssh", "sshmax", "ocean_daily", "all", "max", "none",2 + "ocean_model", "zossq", "zossq", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "zossq", "zossq", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "zostoga", "zostoga", "ocean_month", "all", "mean", "none",2 # to be done offline + "ocean_model", "thetao", "thetao", "ocean_annual", "all", "mean", "none",2 # if use pre-TEOS10 +#"ocean_model", "thetao", "thetao", "ocean_month", "all", "mean", "none",2 # if use pre-TEOS10 + "ocean_model_z", "thetao", "thetao", "ocean_annual_z", "all", "mean", "none",2 # if use pre-TEOS10 + "ocean_model_z", "thetao", "thetao", "ocean_month_z", "all", "mean", "none",2 # if use pre-TEOS10 + "ocean_model_z", "thetao_xyave", "thetao_xyave", "ocean_annual_z", "all", "mean", "none",2 # if use pre-TEOS10 +#"ocean_model", "bigthetao", "bigthetao", "ocean_annual", "all", "mean", "none",2 # if use TEOS10 +#"ocean_model", "bigthetao", "bigthetao", "ocean_month", "all", "mean", "none",2 # if use TEOS10 + "ocean_model", "tos", "tos", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "tos", "tos", "ocean_month", "all", "mean", "none",2 + "ocean_model", "tos", "tos", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "tos", "tosmin", "ocean_daily", "all", "min" , "none",2 + "ocean_model", "tos", "tosmax", "ocean_daily", "all", "max" , "none",2 + "ocean_model", "tossq", "tossq", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "tossq", "tossq", "ocean_month", "all", "mean", "none",2 + "ocean_model", "tossq", "tossq", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "tob", "tob", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "tob", "tob", "ocean_month", "all", "mean", "none",2 + "ocean_model", "tob", "tob", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "so", "so", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "so", "so", "ocean_month", "all", "mean", "none",2 + "ocean_model_z", "so", "so", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "so", "so", "ocean_month_z", "all", "mean", "none",2 + "ocean_model_z", "so_xyave", "so_xyave", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model", "sos", "sos", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "sos", "sos", "ocean_month", "all", "mean", "none",2 + "ocean_model", "sos", "sos", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "sossq", "sossq", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "sossq", "sossq", "ocean_month", "all", "mean", "none",2 + "ocean_model", "sossq", "sossq", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "sob", "sob", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "sob", "sob", "ocean_month", "all", "mean", "none",2 + "ocean_model", "sob", "sob", "ocean_daily", "all", "mean", "none",2 + # not registered + #"ocean_model_z", "obvfsq", "obvfsq", "ocean_annual_z", "all", "mean", "none",2 + #"ocean_model_z", "obvfsq", "obvfsq", "ocean_month_z", "all", "mean", "none",2 +# "ocean_model", "mlotst", "mlotst", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "mlotst", "mlotst", "ocean_month", "all", "mean", "none",2 +# "ocean_model", "mlotstsq", "mlotstsq", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "mlotstsq", "mlotstsq", "ocean_month", "all", "mean", "none",2 + "ocean_model", "mlotst", "mlotstmin", "ocean_annual", "all", "min", "none",2 + "ocean_model", "mlotst", "mlotstmin", "ocean_month", "all", "min", "none",2 + "ocean_model", "mlotst", "mlotstmax", "ocean_annual", "all", "max", "none",2 + "ocean_model", "mlotst", "mlotstmax", "ocean_month", "all", "max", "none",2 +#"ocean_model", "msftbarot", "msftbarot", "ocean_month", "all", "mean", "none",2 # to be done offline + + +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table I1: components of vector fields +# (umo,vmo) =net mass transport from residual mean velocity (model resolved + SGS) +# (uhml,vhml)=parameterized mixed layer restratification mass transport +# (uhGM,vhGM)=parameterized eddy-induced mass transport from GM +# (T_adx_2d,T_ady_2d) = heat transport by residual mean advection (yet to code neutral diffusion diagnostic) +# Offline calculations needed for meridional overturning streamfunctions. +#"ocean_model", "uo", "uo", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","uo", "uo", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","uo", "uo", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "uo", "uo", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "vo", "vo", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","vo", "vo", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","vo", "vo", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "vo", "vo", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "umo", "umo", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","umo", "umo", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","umo", "umo", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "vmo", "vmo", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","vmo", "vmo", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","vmo", "vmo", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "wmo", "wmo", "ocean_annual", "all", "mean", "none",2 # calculated offline +#"ocean_model", "wmo", "wmo", "ocean_month", "all", "mean", "none",2 # calculated offline +#"ocean_model", "uhml", "uhml", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","uhml", "uhml", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","uhml", "uhml", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "vhml", "vhml", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","vhml", "vhml", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","vhml", "vhml", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "uhGM", "uhGM", "ocean_annual", "all", "mean", "none",2 +#"ocean_model_z","uhGM", "uhGM", "ocean_annual_z", "all", "mean", "none",2 +#"ocean_model_z","uhGM", "uhGM", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "vhGM", "vhGM", "ocean_annual", "all", "mean", "none",2 +#"ocean_model_z","vhGM", "vhGM", "ocean_annual_z", "all", "mean", "none",2 +#"ocean_model_z","vhGM", "vhGM", "ocean_month_z", "all", "mean", "none",2 + "ocean_model_z","uh", "uh", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","vh", "vh", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","T_adx", "T_adx", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","T_ady", "T_ady", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model", "T_adx_2d", "T_adx_2d", "ocean_month", "all", "mean", "none",2 + "ocean_model", "T_ady_2d", "T_ady_2d", "ocean_month", "all", "mean", "none",2 + "ocean_model", "T_adx_2d", "T_adx_2d", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "T_ady_2d", "T_ady_2d", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","S_adx", "S_adx", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","S_ady", "S_ady", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model", "S_adx_2d", "S_adx_2d", "ocean_month", "all", "mean", "none",2 + "ocean_model", "S_ady_2d", "S_ady_2d", "ocean_month", "all", "mean", "none",2 + + +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table J1: in support of mass transport through straits +# net transport of mass through straits is either done offline using +# umo_2d and vmo_2d or via the Sections output just below. + "ocean_model", "umo_2d", "umo_2d", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "vmo_2d", "vmo_2d", "ocean_annual", "all", "mean", "none",2 + + "ocean_model", "umo_2d", "umo_2d", "ocean_month", "all", "mean", "none",2 + "ocean_model", "vmo_2d", "vmo_2d", "ocean_month", "all", "mean", "none",2 + +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table K1: surface mass fluxes + "ocean_model", "prlq", "prlq", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "prsn", "prsn", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "evs", "evs", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "friver", "friver", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "ficeberg", "ficeberg", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "fsitherm", "fsitherm", "ocean_annual", "all", "mean", "none",2 # need code to split ice melt from prlq + "ocean_model", "wfo", "wfo", "ocean_annual", "all", "mean", "none",2 + + "ocean_model", "prlq", "prlq", "ocean_month", "all", "mean", "none",2 # MOM6 has ice melt/form added to prlq + "ocean_model", "prsn", "prsn", "ocean_month", "all", "mean", "none",2 + "ocean_model", "evs", "evs", "ocean_month", "all", "mean", "none",2 + "ocean_model", "friver", "friver", "ocean_month", "all", "mean", "none",2 + "ocean_model", "ficeberg", "ficeberg", "ocean_month", "all", "mean", "none",2 + "ocean_model", "fsitherm", "fsitherm", "ocean_month", "all", "mean", "none",2 # need code to split ice melt from prlq + "ocean_model", "wfo", "wfo", "ocean_month", "all", "mean", "none",2 + +# extra mass flux information beyond CMIP6/OMIP Table K1 + "ocean_model", "net_massout", "net_massout", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "net_massin", "net_massin", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "net_massout", "net_massout", "ocean_month", "all", "mean", "none",2 + "ocean_model", "net_massin", "net_massin", "ocean_month", "all", "mean", "none",2 + + +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table K2: surface salt fluxes + "ocean_model", "sfdsi", "sfdsi", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "sfriver", "sfriver", "ocean_annual", "all", "mean", "none",2 # to be coded if rivers have salt + + "ocean_model", "sfdsi", "sfdsi", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "sfriver", "sfriver", "ocean_month", "all", "mean", "none",2 # to be coded if rivers have salt + + +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table K3: boundary heat fluxes +# "ocean_model", "hfgeou", "hfgeou", "ocean_annual", "all", "mean", "none",2 # geothermal heat flux is static + "ocean_model", "hfrainds", "hfrainds", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hfevapds", "hfevapds", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hfrunoffds", "hfrunoffds", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hfsnthermds", "hfsnthermds", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hfsifrazil", "hfsifrazil", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "hfibthermds", "hfibthermds", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "hfsolidrunoffds", "hfsolidrunoffds", "ocean_annual", "all", "mean", "none",2 # =0 if ice = 0C # not registered + "ocean_model", "rlntds", "rlntds", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hflso", "hflso", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hfsso", "hfsso", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "rsntds", "rsntds", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "rsdo", "rsdo", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hfds", "hfds", "ocean_annual", "all", "mean", "none",2 + +# "ocean_model", "hfgeou", "hfgeou", "ocean_month", "all", "mean", "none",2 # geothermal heat flux is static + "ocean_model", "hfrainds", "hfrainds", "ocean_month", "all", "mean", "none",2 # heat content of lprec fprec condensate + "ocean_model", "hfevapds", "hfevapds", "ocean_month", "all", "mean", "none",2 # heat content of mass leaving ocean + "ocean_model", "hfrunoffds", "hfrunoffds", "ocean_month", "all", "mean", "none",2 # heat content of lrunoff frunoff + "ocean_model", "hfsnthermds", "hfsnthermds", "ocean_month", "all", "mean", "none",2 # latent heat to melt snow + "ocean_model", "hfsifrazil", "hfsifrazil", "ocean_month", "all", "mean", "none",2 # frazil formation +#"ocean_model", "hfsithermds", "hfsithermds", "ocean_month", "all", "mean", "none",2 # computed in SIS2 + "ocean_model", "hfibthermds", "hfibthermds", "ocean_month", "all", "mean", "none",2 # latent heat to melt icebergs +# "ocean_model", "hfsolidrunoffds", "hfsolidrunoffds", "ocean_month", "all", "mean", "none",2 # ne 0 since ice has SST + "ocean_model", "rlntds", "rlntds", "ocean_month", "all", "mean", "none",2 # longwave down + "ocean_model", "hflso", "hflso", "ocean_month", "all", "mean", "none",2 # latent heat for evap+melt + "ocean_model", "hfsso", "hfsso", "ocean_month", "all", "mean", "none",2 # sensible from air-sea and ice-sea + "ocean_model", "rsntds", "rsntds", "ocean_month", "all", "mean", "none",2 # shortwave + "ocean_model", "hfds", "hfds", "ocean_month", "all", "mean", "none",2 # total heat entering ocean surface + "ocean_model", "rsdo", "rsdo", "ocean_month_z", "all", "mean", "none",2 # penetrative shortwave flux at interface + +# Extra heat flux terms beyond Table K3 from CMIP6/OMIP + "ocean_model", "net_heat_coupler", "net_heat_coupler", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "heat_content_massin", "heat_content_massin", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "heat_content_massout", "heat_content_massout", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "heat_content_surfwater", "heat_content_surfwater", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "heat_content_fprec", "heat_content_fprec", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "heat_content_cond", "heat_content_cond", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "LwLatSens", "LwLatSens", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "Heat_PmE", "Heat_PmE", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "nonpenSW", "nonpenSW", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "internal_heat", "internal_heat", "ocean_annual", "all", "mean", "none",2 + + "ocean_model", "net_heat_coupler", "net_heat_coupler", "ocean_month", "all", "mean", "none",2 + "ocean_model", "heat_content_massin", "heat_content_massin", "ocean_month", "all", "mean", "none",2 + "ocean_model", "heat_content_massout", "heat_content_massout", "ocean_month", "all", "mean", "none",2 + "ocean_model", "heat_content_surfwater", "heat_content_surfwater", "ocean_month", "all", "mean", "none",2 + "ocean_model", "heat_content_fprec", "heat_content_fprec", "ocean_month", "all", "mean", "none",2 + "ocean_model", "heat_content_cond", "heat_content_cond", "ocean_month", "all", "mean", "none",2 + "ocean_model", "LwLatSens", "LwLatSens", "ocean_month", "all", "mean", "none",2 + "ocean_model", "Heat_PmE", "Heat_PmE", "ocean_month", "all", "mean", "none",2 +# "ocean_model", "nonpenSW", "nonpenSW", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "internal_heat", "internal_heat", "ocean_month", "all", "mean", "none",2 + + +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table K4: boundary momentum fluxes + "ocean_model", "tauuo", "tauuo", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "tauvo", "tauvo", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "tauuo", "tauuo", "ocean_month", "all", "mean", "none",2 + "ocean_model", "tauvo", "tauvo", "ocean_month", "all", "mean", "none",2 + +# extra mechanical forcing beyond CMIP6/OMIP Table K4 + "ocean_model", "ustar", "ustar", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "ustar", "ustar", "ocean_month", "all", "mean", "none",2 + + +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP/BGC : this table should be computed in generic tracer code +#"ocean_model", "fgcfc11", "fgcfc11", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "fgcfc12", "fgcfc12", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "fgsf6", "fgsf6", "ocean_month", "all", "mean", "none",2 + + +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table L1: table of heat and salt tendencies + "ocean_model", "opottempmint", "opottempmint", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "ocontempmint", "ocontempmint", "ocean_annual", "all", "mean", "none",2 # to be coded if use TEOS10 + "ocean_model", "somint", "somint", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z", "rsdoabsorb", "rsdoabsorb", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "opottemptend", "opottemptend", "ocean_annual_z", "all", "mean", "none",2 +#"ocean_model_z", "opottemprmadvect", "opottemprmadvect", "ocean_annual_z", "all", "mean", "none",2 # T_advection_xy+Th_tendency_vert_remap +# "ocean_model", "opottemppmdiff", "opottemppmdiff", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z", "opottempdiff", "opottempdiff", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "osalttend", "osalttend", "ocean_annual_z", "all", "mean", "none",2 +#"ocean_model_z", "osaltrmadvect", "osaltrmadvect", "ocean_annual_z", "all", "mean", "none",2 # S_advection_xy+Sh_tendency_vert_remap + "ocean_model_z", "osaltpmdiff", "osaltpmdiff", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "osaltdiff", "osaltdiff", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "frazil_heat_tendency", "frazil_heat_tendency", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "T_advection_xy", "T_advection_xy", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "S_advection_xy", "S_advection_xy", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "Th_tendency_vert_remap", "Th_tendency_vert_remap", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "Sh_tendency_vert_remap", "Sh_tendency_vert_remap", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","boundary_forcing_heat_tendency", "boundary_forcing_heat_tendency", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","boundary_forcing_salt_tendency", "boundary_forcing_salt_tendency", "ocean_annual_z", "all", "mean", "none",2 + +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table M1: vertical tracer diffusivities and potential energy dissipation +"ocean_model_z", "difvho", "difvho", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "difvso", "difvso", "ocean_annual_z", "all", "mean", "none",2 +#"ocean_model", "tnpeo", "tnpeo", "ocean_annual", "all", "mean", "none",2 # code needed + + +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table N1: lateral viscosity and diffusivities and impact on kinetic energy +#"ocean_model", "diftrblo", "diftrblo", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "diftrelo", "diftrelo", "ocean_annual", "all", "mean", "none",2 # when neutral tracer diffusion + "ocean_model", "difmxylo", "difmxylo", "ocean_annual", "all", "mean", "none",2 # save if use Laplacian visc + "ocean_model", "difmxybo", "difmxybo", "ocean_annual", "all", "mean", "none",2 + #"ocean_model", "dispkexyfo", "dispkexyfo", "ocean_annual", "all", "mean", "none",2 # not registered +#"ocean_model", "tnkebto", "tnkebto", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","difmxybo", "difmxybo", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","dispkexyfo", "dispkexyfo", "ocean_annual_z", "all", "mean", "none",2 + + +############################################################################################# +###### Diagnostics in addition to CMIP6/OMIP request######################################### + +# ----------------------------------------------------------------------------------------- +# High-frequency + "ocean_model", "SSU", "ssu", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "SSV", "ssv", "ocean_daily", "all", "mean", "none",2 +#"ocean_model", "tos", "tos_max", "ocean_daily", "all", "max", "none",2 +#"ocean_model", "tos", "tos_min", "ocean_daily", "all", "min", "none",2 + "ocean_model", "ePBL_h_ML", "omldamax", "ocean_daily", "all", "max", "none",2 + +# ----------------------------------------------------------------------------------------- +# various fields + + "ocean_model", "e", "e", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "e", "e", "ocean_month", "all", "mean", "none",2 + "ocean_model", "speed", "speed", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "speed", "speed", "ocean_month", "all", "mean", "none",2 + "ocean_model", "KE", "KE", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "KE", "KE", "ocean_month", "all", "mean", "none",2 + "ocean_model", "mass_wt", "mass_wt", "ocean_annual", "all", "mean", "none",2 + +"ocean_model_z", "Kd_interface", "Kd_interface", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "Kd_shear", "Kd_shear", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "Kd_itides", "Kd_itides", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "Kd_BBL", "Kd_BBL", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "Kd_ePBL", "Kd_ePBL", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "Kd_heat", "Kd_heat", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "Kd_salt", "Kd_salt", "ocean_annual_z", "all", "mean", "none",2 + +# "ocean_model", "TKE_tidal", "TKE_tidal", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "TKE_itidal", "TKE_itidal", "ocean_annual", "all", "mean", "none",2 + + "ocean_model", "MLD_003", "MLD_DBM", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "MLD_003", "MLD_DBM", "ocean_month", "all", "mean", "none",2 + "ocean_model", "MLD_003", "MLD_DBM_min", "ocean_annual", "all", "min", "none",2 + "ocean_model", "MLD_003", "MLD_DBM_max", "ocean_annual", "all", "max", "none",2 + + "ocean_model", "MLD_user", "MLD_003", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "MLD_user", "MLD_003", "ocean_month", "all", "mean", "none",2 + "ocean_model", "MLD_user", "MLD_003_min", "ocean_annual", "all", "min", "none",2 + "ocean_model", "MLD_user", "MLD_003_max", "ocean_annual", "all", "max", "none",2 + "ocean_model", "MLD_restrat", "MLD_restrat", "ocean_month", "all", "mean", "none",2 + "ocean_model", "udml_restrat", "udml_restrat", "ocean_month", "all", "mean", "none",2 + "ocean_model", "vdml_restrat", "vdml_restrat", "ocean_month", "all", "mean", "none",2 + "ocean_model", "uml_restrat", "uml_restrat", "ocean_month", "all", "mean", "none",2 + "ocean_model", "vml_restrat", "vml_restrat", "ocean_month", "all", "mean", "none",2 + + "ocean_model", "MLD_EN1", "MLD_EN1", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "MLD_EN1", "MLD_EN1", "ocean_month", "all", "mean", "none",2 + +#"ocean_model", "MSTAR_LT", "MSTAR_LT", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "MSTAR", "MSTAR", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "MSTAR_LT", "MSTAR_LT", "ocean_month", "all", "mean", "none",2 + "ocean_model", "MSTAR", "MSTAR", "ocean_month", "all", "mean", "none",2 + + +#"ocean_model", "vintage", "vintage", "ocean_annual", "all", "mean", "none",2 + +# MEKE not used +# "ocean_model", "MEKE_Ue", "MEKE_Ue", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "MEKE_Le", "MEKE_Le", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "MEKE_KH", "MEKE_KH", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "subML_N2", "subML_N2", "ocean_annual", "all", "mean", "none",2 + + "ocean_model", "tos", "tos_max", "ocean_annual", "all", "max", "none",2 + "ocean_model", "tos", "tos_min", "ocean_annual", "all", "min", "none",2 + + "ocean_model_z", "rhopot0", "rhopot0", "ocean_month_z", "all", "mean", "none",2 + "ocean_model_z", "rhopot0", "rhopot0", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "rhoinsitu", "rhoinsitu", "ocean_month_z", "all", "mean", "none",2 + "ocean_model_z", "rhoinsitu", "rhoinsitu", "ocean_annual_z", "all", "mean", "none",2 + + +# ----------------------------------------------------------------------------------------- +# Monthly snapshots + "ocean_model", "mass_wt", "mass_wt", "ocean_month_snap", "all", "none", "none",2 + "ocean_model", "opottempmint","opottempmint","ocean_month_snap", "all", "none", "none",2 + "ocean_model", "somint", "somint", "ocean_month_snap", "all", "none", "none",2 + +# ----------------------------------------------------------------------------------------- +# tracer concentration time tendencies due to various processes + +# vertical diffusion tendencies for T and S +"ocean_model","diabatic_diff_temp_tendency","diabatic_diff_temp_tendency","ocean_annual","all","mean","none",2 +"ocean_model","diabatic_diff_saln_tendency","diabatic_diff_saln_tendency","ocean_annual","all","mean","none",2 + +# neutral diffusion tendencies for T and S +#"ocean_model","ndiff_tracer_conc_tendency_T","ndiff_tracer_conc_tendency_T" ,"ocean_annual","all","mean","none",2 +#"ocean_model","ndiff_tracer_conc_tendency_S","ndiff_tracer_conc_tendency_S" ,"ocean_annual","all","mean","none",2 +# "ocean_model","opottemppmdiff_2d" ,"opottemppmdiff_2d" ,"ocean_annual","all","mean","none",2 +# "ocean_model","osaltpmdiff_2d" ,"osaltpmdiff_2d" ,"ocean_annual","all","mean","none",2 + +# net tendencies and lateral advection tendencies for T and S + "ocean_model", "T_tendency", "T_tendency", "ocean_annual","all","mean","none",2 + "ocean_model", "S_tendency", "S_tendency", "ocean_annual","all","mean","none",2 + "ocean_model", "opottemptend_2d", "opottemptend_2d", "ocean_annual","all","mean","none",2 + "ocean_model", "osalttend_2d", "osalttend_2d", "ocean_annual","all","mean","none",2 + "ocean_model", "T_advection_xy_2d", "T_advection_xy_2d", "ocean_annual","all","mean","none",2 + "ocean_model", "S_advection_xy_2d", "S_advection_xy_2d", "ocean_annual","all","mean","none",2 + +# tendencies from vertical remapping for T and S +"ocean_model","T_tendency_vert_remap", "T_tendency_vert_remap", "ocean_annual","all","mean","none",2 +"ocean_model","S_tendency_vert_remap", "S_tendency_vert_remap", "ocean_annual","all","mean","none",2 +"ocean_model","Th_tendency_vert_remap_2d", "Th_tendency_vert_remap_2d", "ocean_annual","all","mean","none",2 +"ocean_model","Sh_tendency_vert_remap_2d", "Sh_tendency_vert_remap_2d", "ocean_annual","all","mean","none",2 + +# tendencies from boundary terms which have a 3d contribution +"ocean_model","frazil_heat_tendency_2d" ,"frazil_heat_tendency_2d", "ocean_annual","all","mean","none",2 +"ocean_model","boundary_forcing_heat_tendency_2d" ,"boundary_forcing_heat_tendency_2d","ocean_annual","all","mean","none",2 +"ocean_model","boundary_forcing_salt_tendency_2d" ,"boundary_forcing_salt_tendency_2d","ocean_annual","all","mean","none",2 + + + + +