From 9ba32febd857ea0cf2c6c1858aed5b97488fbb6c Mon Sep 17 00:00:00 2001 From: Graeme MacGilchrist Date: Wed, 19 Apr 2023 17:49:20 -0400 Subject: [PATCH 01/12] Adding additional diagnostics --- ocean_only/flow_downslope/common/diag_table | 1 + ocean_only/flow_downslope/layer/MOM_parameter_doc.layout | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ocean_only/flow_downslope/common/diag_table b/ocean_only/flow_downslope/common/diag_table index fb83473337..2731aa3d4f 100644 --- a/ocean_only/flow_downslope/common/diag_table +++ b/ocean_only/flow_downslope/common/diag_table @@ -13,6 +13,7 @@ "ocean_model","e","e","prog","all",.false.,"none",2 "ocean_model","temp","temp","prog","all",.false.,"none",2 "ocean_model","salt","salt","prog","all",.false.,"none",2 +"ocean_model","rhopot0","rhopot0","prog","all",.false.,"none",2 #============================================================================================= # diff --git a/ocean_only/flow_downslope/layer/MOM_parameter_doc.layout b/ocean_only/flow_downslope/layer/MOM_parameter_doc.layout index 52683bc4e0..5512423585 100644 --- a/ocean_only/flow_downslope/layer/MOM_parameter_doc.layout +++ b/ocean_only/flow_downslope/layer/MOM_parameter_doc.layout @@ -36,13 +36,13 @@ MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" ! 4,6 ! 1,2 ! 3,6 -NIPROC = 2 ! +NIPROC = 1 ! ! The number of processors in the x-direction. With STATIC_MEMORY_ this is set ! in MOM_memory.h at compile time. NJPROC = 1 ! ! The number of processors in the y-direction. With STATIC_MEMORY_ this is set ! in MOM_memory.h at compile time. -LAYOUT = 2, 1 ! +LAYOUT = 1, 1 ! ! The processor layout that was actually used. IO_LAYOUT = 1, 1 ! default = 1 ! The processor layout to be used, or 0,0 to automatically set the io_layout to From a00965aa300b14fd2435dc5220c869802e91d7fe Mon Sep 17 00:00:00 2001 From: Graeme MacGilchrist Date: Fri, 21 Apr 2023 13:03:06 -0400 Subject: [PATCH 02/12] Updates fds run for more diags and coords --- ocean_only/flow_downslope/common/MOM_input | 25 ++++++++- ocean_only/flow_downslope/common/diag_table | 29 ++++++++++- .../layer/MOM_parameter_doc.all | 51 +++++++++++++++++-- .../layer/MOM_parameter_doc.short | 31 ++++++++++- 4 files changed, 126 insertions(+), 10 deletions(-) diff --git a/ocean_only/flow_downslope/common/MOM_input b/ocean_only/flow_downslope/common/MOM_input index 37c41d72f9..b1d5f01fe4 100644 --- a/ocean_only/flow_downslope/common/MOM_input +++ b/ocean_only/flow_downslope/common/MOM_input @@ -44,7 +44,7 @@ IC_OUTPUT_FILE = "Initial_state" ! default = "MOM_IC" ! The file into which to write the initial conditions. ! === module MOM_fixed_initialization === -INPUTDIR = "INPUT" ! default = "." +INPUTDIR = "." ! default = "." ! The directory in which input files are found. ! === module MOM_grid_init === @@ -210,6 +210,29 @@ S_RANGE = 1.0 ! [1e-3] default = 2.0 ! Initial salinity range ! === module MOM_diag_mediator === +NUM_DIAG_COORDS = 2 ! default = 1 + ! The number of diagnostic vertical coordinates to use. For each coordinate, an + ! entry in DIAG_COORDS must be provided. +DIAG_COORDS = "z Z ZSTAR", "rho0 RHO0 RHO" ! + ! A list of string tuples associating diag_table modules to a coordinate + ! definition used for diagnostics. Each string is of the form + ! "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". +DIAG_COORD_P_REF_RHO0 = 0.0 +DIAG_COORD_NEEDS_SORTING_RHO0 = True +DIAG_COORD_DEF_RHO0 = "FILE:targetlayers_rho0.nc,interfaces=interfaces" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO2 + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz ! === module MOM_lateral_mixing_coeffs === diff --git a/ocean_only/flow_downslope/common/diag_table b/ocean_only/flow_downslope/common/diag_table index 2731aa3d4f..7cf18ca9bf 100644 --- a/ocean_only/flow_downslope/common/diag_table +++ b/ocean_only/flow_downslope/common/diag_table @@ -1,6 +1,8 @@ "MOM resting experiment" 1 1 1 0 0 0 -"prog", 1 ,"hours",1,"days","Time" +"prog",6,"hours",1,"hours","Time" +"prog_z",6,"hours",1,"hours","Time" +"prog_rho0",6,"hours",1,"hours","Time" #This is the field section of the diag_table. @@ -9,12 +11,35 @@ "ocean_model","u","u","prog","all",.false.,"none",2 "ocean_model","v","v","prog","all",.false.,"none",2 -"ocean_model","h","h","prog","all",.false.,"none",1 +"ocean_model","h","h","prog","all",.false.,"none",2 "ocean_model","e","e","prog","all",.false.,"none",2 "ocean_model","temp","temp","prog","all",.false.,"none",2 "ocean_model","salt","salt","prog","all",.false.,"none",2 +"ocean_model","rhoinsitu","rhoinsitu","prog","all",.false.,"none",2 "ocean_model","rhopot0","rhopot0","prog","all",.false.,"none",2 +"ocean_model","rhopot2","rhopot2","prog","all",.false.,"none",2 +# z output +"ocean_model_z","temp","temp","prog_z","all",.false.,"none",2 +"ocean_model_z","salt","salt","prog_z","all",.false.,"none",2 +"ocean_model_z","u","u","prog_z","all",.false.,"none",2 +"ocean_model_z","v","v","prog_z","all",.false.,"none",2 +"ocean_model_z","h","h","prog_z","all",.false.,"none",2 +"ocean_model_z","e","e","prog_z","all",.false.,"none",2 +"ocean_model_z","rhopot0","rhopot0","prog_z","all",.false.,"none",2 +"ocean_model_z","rhopot2","rhopot2","prog_z","all",.false.,"none",2 +"ocean_model_z","rhoinsitu","rhoinsitu","prog_z","all",.false.,"none",2 + +# rho0 output +"ocean_model_rho0","temp","temp","prog_rho0","all",.false.,"none",2 +"ocean_model_rho0","salt","salt","prog_rho0","all",.false.,"none",2 +"ocean_model_rho0","u","u","prog_rho0","all",.false.,"none",2 +"ocean_model_rho0","v","v","prog_rho0","all",.false.,"none",2 +"ocean_model_rho0","h","h","prog_rho0","all",.false.,"none",2 +"ocean_model_rho0","e","e","prog_rho0","all",.false.,"none",2 +"ocean_model_rho0","rhopot0","rhopot0","prog_rho0","all",.false.,"none",2 +"ocean_model_rho0","rhopot2","rhopot2","prog_rho0","all",.false.,"none",2 +"ocean_model_rho0","rhoinsitu","rhoinsitu","prog_rho0","all",.false.,"none",2 #============================================================================================= # #====> This file can be used with diag_manager/v2.0a (or higher) <==== diff --git a/ocean_only/flow_downslope/layer/MOM_parameter_doc.all b/ocean_only/flow_downslope/layer/MOM_parameter_doc.all index 2edaa5030f..37af2b9674 100644 --- a/ocean_only/flow_downslope/layer/MOM_parameter_doc.all +++ b/ocean_only/flow_downslope/layer/MOM_parameter_doc.all @@ -193,7 +193,7 @@ REFERENCE_HEIGHT = 0.0 ! [m] default = 0.0 ! A reference value for geometric height fields, such as bathyT. ! === module MOM_fixed_initialization === -INPUTDIR = "INPUT" ! default = "." +INPUTDIR = "." ! default = "." ! The directory in which input files are found. ! === module MOM_grid_init === @@ -521,7 +521,7 @@ SPONGE = False ! [Boolean] default = False ! properties of those sponges are specified via SPONGE_CONFIG. ! === module MOM_diag_mediator === -NUM_DIAG_COORDS = 1 ! default = 1 +NUM_DIAG_COORDS = 2 ! default = 1 ! The number of diagnostic vertical coordinates to use. For each coordinate, an ! entry in DIAG_COORDS must be provided. REMAPPING_2018_ANSWERS = False ! [Boolean] default = False @@ -537,10 +537,10 @@ REMAPPING_ANSWER_DATE = 99991231 ! default = 99991231 ! takes precedence. USE_GRID_SPACE_DIAGNOSTIC_AXES = False ! [Boolean] default = False ! If true, use a grid index coordinate convention for diagnostic axes. -DIAG_COORDS = "z Z ZSTAR" ! default = "z Z ZSTAR" +DIAG_COORDS = "z Z ZSTAR", "rho0 RHO0 RHO" ! ! A list of string tuples associating diag_table modules to a coordinate - ! definition used for diagnostics. Each string is of the form "MODULE_SUFFIX - ! PARAMETER_SUFFIX COORDINATE_NAME". + ! definition used for diagnostics. Each string is of the form + ! "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". DIAG_MISVAL = 1.0E+20 ! [various] default = 1.0E+20 ! Set the default missing value to use for diagnostics. DIAG_AS_CHKSUM = False ! [Boolean] default = False @@ -563,6 +563,47 @@ DIAG_COORD_DEF_Z = "WOA09" ! default = "WOA09" ! the filename and two variable names, separated ! by a comma or space, for sigma-2 and dz. e.g. ! HYBRID:vgrid.nc,sigma2,dz +INTERPOLATION_SCHEME = "PPM_H4" ! default = "PPM_H4" + ! This sets the interpolation scheme to use to determine the new grid. These + ! parameters are only relevant when REGRIDDING_COORDINATE_MODE is set to a + ! function of state. Otherwise, it is not used. It can be one of the following + ! schemes: + ! P1M_H2 (2nd-order accurate) + ! P1M_H4 (2nd-order accurate) + ! P1M_IH4 (2nd-order accurate) + ! PLM (2nd-order accurate) + ! PPM_CW (3rd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! P3M_IH4IH3 (4th-order accurate) + ! P3M_IH6IH5 (4th-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +DIAG_COORD_DEF_RHO0 = "FILE:targetlayers_rho0.nc,interfaces=interfaces" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO0 + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_P_REF_RHO0 = 0.0 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the diagnostic coordinate density. + ! (1 Pa = 1e4 dbar, so 2e7 is commonly used.) This is only used for the RHO + ! coordinate. +DIAG_COORD_REGRID_COMPRESSIBILITY_FRACTION_RHO0 = 0.0 ! [nondim] default = 0.0 + ! When interpolating potential density profiles we can add some artificial + ! compressibility solely to make homogeneous regions appear stratified. +DIAG_COORD_NEEDS_SORTING_RHO0 = True ! [Boolean] default = False + ! Specifies whether the variable from which the coordinate is derived (e.g. + ! density) should be vertically sorted (to be monotonically increasing) prior to + ! regridding. The sorting is carried over to all remapped fields. ! === module MOM_MEKE === USE_MEKE = False ! [Boolean] default = False diff --git a/ocean_only/flow_downslope/layer/MOM_parameter_doc.short b/ocean_only/flow_downslope/layer/MOM_parameter_doc.short index b06735dbf8..7131928288 100644 --- a/ocean_only/flow_downslope/layer/MOM_parameter_doc.short +++ b/ocean_only/flow_downslope/layer/MOM_parameter_doc.short @@ -35,8 +35,6 @@ NJGLOBAL = 4 ! ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. ! === module MOM_fixed_initialization === -INPUTDIR = "INPUT" ! default = "." - ! The directory in which input files are found. ! === module MOM_grid_init === GRID_CONFIG = "cartesian" ! @@ -201,6 +199,35 @@ S_RANGE = 1.0 ! [1e-3] default = 2.0 ! Initial salinity range ! === module MOM_diag_mediator === +NUM_DIAG_COORDS = 2 ! default = 1 + ! The number of diagnostic vertical coordinates to use. For each coordinate, an + ! entry in DIAG_COORDS must be provided. +DIAG_COORDS = "z Z ZSTAR", "rho0 RHO0 RHO" ! + ! A list of string tuples associating diag_table modules to a coordinate + ! definition used for diagnostics. Each string is of the form + ! "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". +DIAG_COORD_DEF_RHO0 = "FILE:targetlayers_rho0.nc,interfaces=interfaces" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO0 + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_P_REF_RHO0 = 0.0 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the diagnostic coordinate density. + ! (1 Pa = 1e4 dbar, so 2e7 is commonly used.) This is only used for the RHO + ! coordinate. +DIAG_COORD_NEEDS_SORTING_RHO0 = True ! [Boolean] default = False + ! Specifies whether the variable from which the coordinate is derived (e.g. + ! density) should be vertically sorted (to be monotonically increasing) prior to + ! regridding. The sorting is carried over to all remapped fields. ! === module MOM_lateral_mixing_coeffs === From 36e82e811a73aff1e37242909741f48e2d0d72b4 Mon Sep 17 00:00:00 2001 From: Graeme MacGilchrist Date: Fri, 21 Apr 2023 13:38:36 -0400 Subject: [PATCH 03/12] Adds new diag coords --- ocean_only/flow_downslope/common/MOM_input | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ocean_only/flow_downslope/common/MOM_input b/ocean_only/flow_downslope/common/MOM_input index b1d5f01fe4..7b4f531921 100644 --- a/ocean_only/flow_downslope/common/MOM_input +++ b/ocean_only/flow_downslope/common/MOM_input @@ -218,7 +218,7 @@ DIAG_COORDS = "z Z ZSTAR", "rho0 RHO0 RHO" ! ! definition used for diagnostics. Each string is of the form ! "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". DIAG_COORD_P_REF_RHO0 = 0.0 -DIAG_COORD_NEEDS_SORTING_RHO0 = True +! DIAG_COORD_NEEDS_SORTING_RHO0 = True DIAG_COORD_DEF_RHO0 = "FILE:targetlayers_rho0.nc,interfaces=interfaces" ! default = "WOA09" ! Determines how to specify the coordinate resolution. Valid options are: ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO2 From c0aa145d31dbe7aefa511179189f184f5c883e1b Mon Sep 17 00:00:00 2001 From: Graeme MacGilchrist Date: Fri, 21 Apr 2023 13:38:55 -0400 Subject: [PATCH 04/12] Adds new diag coords --- ocean_only/flow_downslope/layer/MOM_parameter_doc.all | 2 +- ocean_only/flow_downslope/layer/MOM_parameter_doc.short | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/ocean_only/flow_downslope/layer/MOM_parameter_doc.all b/ocean_only/flow_downslope/layer/MOM_parameter_doc.all index 37af2b9674..2e580b6e77 100644 --- a/ocean_only/flow_downslope/layer/MOM_parameter_doc.all +++ b/ocean_only/flow_downslope/layer/MOM_parameter_doc.all @@ -600,7 +600,7 @@ DIAG_COORD_P_REF_RHO0 = 0.0 ! [Pa] default = 2.0E+07 DIAG_COORD_REGRID_COMPRESSIBILITY_FRACTION_RHO0 = 0.0 ! [nondim] default = 0.0 ! When interpolating potential density profiles we can add some artificial ! compressibility solely to make homogeneous regions appear stratified. -DIAG_COORD_NEEDS_SORTING_RHO0 = True ! [Boolean] default = False +DIAG_COORD_NEEDS_SORTING_RHO0 = False ! [Boolean] default = False ! Specifies whether the variable from which the coordinate is derived (e.g. ! density) should be vertically sorted (to be monotonically increasing) prior to ! regridding. The sorting is carried over to all remapped fields. diff --git a/ocean_only/flow_downslope/layer/MOM_parameter_doc.short b/ocean_only/flow_downslope/layer/MOM_parameter_doc.short index 7131928288..bd4391e157 100644 --- a/ocean_only/flow_downslope/layer/MOM_parameter_doc.short +++ b/ocean_only/flow_downslope/layer/MOM_parameter_doc.short @@ -224,10 +224,6 @@ DIAG_COORD_P_REF_RHO0 = 0.0 ! [Pa] default = 2.0E+07 ! The pressure that is used for calculating the diagnostic coordinate density. ! (1 Pa = 1e4 dbar, so 2e7 is commonly used.) This is only used for the RHO ! coordinate. -DIAG_COORD_NEEDS_SORTING_RHO0 = True ! [Boolean] default = False - ! Specifies whether the variable from which the coordinate is derived (e.g. - ! density) should be vertically sorted (to be monotonically increasing) prior to - ! regridding. The sorting is carried over to all remapped fields. ! === module MOM_lateral_mixing_coeffs === From 0a5fef057b64c99de0d37bcc604b760a22e3595d Mon Sep 17 00:00:00 2001 From: Graeme MacGilchrist Date: Fri, 21 Apr 2023 13:39:13 -0400 Subject: [PATCH 05/12] Pushing recent commits to github --- ocean_only/flow_downslope/gmac_analysis.ipynb | 794 ++++++++ .../flow_downslope/gmac_targetlayers.ipynb | 73 + .../Zsetup_2D/gmac_analysis.ipynb | 1601 +++++++++++++++++ src/MOM6 | 2 +- 4 files changed, 2469 insertions(+), 1 deletion(-) create mode 100644 ocean_only/flow_downslope/gmac_analysis.ipynb create mode 100644 ocean_only/flow_downslope/gmac_targetlayers.ipynb create mode 100644 ocean_only/rotating_gravity_current/Zsetup_2D/gmac_analysis.ipynb diff --git a/ocean_only/flow_downslope/gmac_analysis.ipynb b/ocean_only/flow_downslope/gmac_analysis.ipynb new file mode 100644 index 0000000000..fc0160637b --- /dev/null +++ b/ocean_only/flow_downslope/gmac_analysis.ipynb @@ -0,0 +1,794 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import xarray as xr" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:  (xq: 81, zl: 40, Time: 12, xh: 80, zi: 41)\n",
+       "Coordinates:\n",
+       "  * xq       (xq) float64 0.0 10.0 20.0 30.0 40.0 ... 770.0 780.0 790.0 800.0\n",
+       "  * zl       (zl) float64 1.035e+03 1.035e+03 1.035e+03 ... 1.036e+03 1.036e+03\n",
+       "  * Time     (Time) object 0001-01-01 01:00:00 ... 0001-01-01 12:00:00\n",
+       "  * xh       (xh) float64 5.0 15.0 25.0 35.0 45.0 ... 765.0 775.0 785.0 795.0\n",
+       "  * zi       (zi) float64 1.035e+03 1.035e+03 1.035e+03 ... 1.036e+03 1.036e+03\n",
+       "Data variables:\n",
+       "    u        (Time, zl, xq) float32 nan 0.02345 0.03627 ... 1.958e-05 nan\n",
+       "    v        (Time, zl, xh) float32 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
+       "    h        (Time, zl, xh) float64 1e-10 1e-10 1e-10 ... 100.0 100.0 100.0\n",
+       "    e        (Time, zi, xh) float32 -4.376 -3.228 -2.34 ... -4e+03 -4e+03 -4e+03\n",
+       "    temp     (Time, zl, xh) float32 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
+       "    salt     (Time, zl, xh) float32 34.0 34.0 34.0 34.0 ... 35.0 35.0 35.0 35.0\n",
+       "    rhopot0  (Time, zl, xh) float32 1.034e+03 1.034e+03 ... 1.035e+03 1.035e+03
" + ], + "text/plain": [ + "\n", + "Dimensions: (xq: 81, zl: 40, Time: 12, xh: 80, zi: 41)\n", + "Coordinates:\n", + " * xq (xq) float64 0.0 10.0 20.0 30.0 40.0 ... 770.0 780.0 790.0 800.0\n", + " * zl (zl) float64 1.035e+03 1.035e+03 1.035e+03 ... 1.036e+03 1.036e+03\n", + " * Time (Time) object 0001-01-01 01:00:00 ... 0001-01-01 12:00:00\n", + " * xh (xh) float64 5.0 15.0 25.0 35.0 45.0 ... 765.0 775.0 785.0 795.0\n", + " * zi (zi) float64 1.035e+03 1.035e+03 1.035e+03 ... 1.036e+03 1.036e+03\n", + "Data variables:\n", + " u (Time, zl, xq) float32 nan 0.02345 0.03627 ... 1.958e-05 nan\n", + " v (Time, zl, xh) float32 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", + " h (Time, zl, xh) float64 1e-10 1e-10 1e-10 ... 100.0 100.0 100.0\n", + " e (Time, zi, xh) float32 -4.376 -3.228 -2.34 ... -4e+03 -4e+03 -4e+03\n", + " temp (Time, zl, xh) float32 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", + " salt (Time, zl, xh) float32 34.0 34.0 34.0 34.0 ... 35.0 35.0 35.0 35.0\n", + " rhopot0 (Time, zl, xh) float32 1.034e+03 1.034e+03 ... 1.035e+03 1.035e+03" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds = xr.open_dataset('layer/prog.nc').mean(['yh','yq'])\n", + "ds" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbEAAAEiCAYAAAB3IuxcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA0TUlEQVR4nO3de5gcVZ3/8fcnARII4RpFbhLuaFCDRhBBN4iirgqIsqKIoCjyA5eFrJewqyLC4yrrbXcVJCgQVEBuStBFRNaAiIKEaxABxXAzggGBcAlJZr6/P85pqXS6q2tmunt6Zj6v56mnu26nvt09Od/UqVOnFBGYmZmNROOGOwAzM7PBchIzM7MRy0nMzMxGLCcxMzMbsZzEzMxsxHISMzOzEctJzACQdIekmcMdh5nZQDiJjRGSnipM/ZKeLcwfHBHTImL+cMfZjJIvSXo0T6dIUmH9VEm/kPSMpN9LemPd/u+TdJ+kpyX9SNJGhXX/JOm6vO/8CrFMkHSmpCcl/UXSrLr1cyTdlb/nwyqUN13Sgnz8BZKmF9btLOkKSUsktbyps+x7kLSppHmS/iwpJE0d4udsGneT8o7L5TyRy51QWLeRpB/m3+c+Se9r9VnNwElszIiIdWsTcD/wjsKy7w93fBUcAewPvAJ4OfB24KOF9ecBNwMbA/8OXCTpBQCSpgGnA4cAmwDPAKcW9n0M+DrwxYqxfA7YHtgK2Av4pKS3FNbfChwF3NSqIElrAZcC3wM2BOYCl+blACuAC4DDK8bW9HsA+oGfAu+qWNbnaPI5K8Rd/znfDMwG9gamAtsAJxY2+SawnPT7HAycln83s3IR4WmMTcAi4I3NlpEqrwtJFdRS4HZgB+B44BHgAWCfwr7rA98BFgMPAScD49sc83XAEYX5w4Hf5Pc7AM8Bkwvrfwkcmd9/ATi3sG5bUoU5ue4YHwbmV4jlobrPfxJwfoPtrgUOa1HWPrk8FZbdD7ylbrvt0j/X0rJKv4fCsjWAAKYO9nNWjbuw7lzgC4X5vYG/5PeT8u+xQ2H9d4EvDue/E08jY/KZmDXzDlJFsiHpf/ZXkM7cNwc+TzqzqZkLrCRVtLuQKrgPNyo0N+s9XjK9uEk800hnODW35mW1dfdGxNKS9X/fNyL+SK40y76AJvFvCGxWEstATQNui4hiU+Ftgyyv1fdQStJsST/O71t9ztK4Je0p6fG62OrL2kTSxqTfoS8i7h5M3Da2rTHcAVjP+mVEXAEg6ULgANL/jPsknQ/MkbQBMAF4K7BBRDwLPC3pa6Tmv9PrC42Ic0n/Kx+odYEnCvNPAOvm62L162rrN2+yb2395EHGUdt/qGXVymtnbGXfQ6mIKDantvqcpXFHxLXABiWx1d5PblWWWRmfiVkzDxfePwssiYi+wjykymcrYE1gce1sipS8XtjmeJ4C1ivMrwc8lc8E6tfV1i9tsm/9+qYkfavQAebfclm1/QdUVi6v2MHmxUOJrYF2l1Xbv1FZAz1Wo9+PvH0747YxxknMhuoB0nWYKRGxQZ7Wi4iGTUGSDq6ryOunZs2Jd5A6ddS8Ii+rrdtG0uSS9X/fV9I2pDPIYvNVQxFxZDzfAeYLEfE30rW/ZrG0Km/dwnR/3u/lxZ6WpI4rlcqr0+p7qKzC5xxo3I1+v4cj4lHS77CGpO2HGreNPU5iNiQRsRj4GfAVSetJGidpW0n/0GT779dV5PXT/U0OdQ4wS9LmkjYD/hU4O5d5N3ALcIKkiZLeSapQL877fh94h6TXSZpEuqZ3Se3akaTxkiaSmtfH5TLWLPnY5wCflrShpJ2Aj9RiyeWtlcsTsGYur9m/tflAH3BM7tL+sbz8/3JZymWtlecnFrumF1X4Hshl1fafkOcH8zlL425S1uGSXpqvt32a53+/p4FLgM9LmiRpD2A/0jVZs3LD3bPEU/cnqvVO/F5h3RuBRYX5Wu+2LfL8+sBpwIOkaxk3Awe1OWYBp5C6wz+W3xd7xk0lVazPAnc1+HzvI/Wee5rUNXyjwrrD8ucpTmeXxDIBOBN4ktTsOqtu/fwG5c0sKW8XYEGO/SZgl7rPVV/WopKyWn0P9WVFYd2/AZcP4HOWxf06UnNvcftZuZwngbOACYV1GwE/yr/P/cD7hvvfiaeRMSnCD8U0M7ORyc2JZmY2YvVMEsvD0DwiaWFh2UaSrpR0T37dMC/fVdItebo1t/3X9llLadifu5WG3Wk4OoGk4yX9QWl4oDd3/hOamQ2fNtax83O9WVvfsCdyt+rYnmlOlPR6UlfbcyJi57zsFOCxiPiipNnAhhHxKUnrAMsjYqWkTUk3Rm6W508kjRbx6XwxfaOIWFJ3rJeShufZlXRD589JowX0YWY2CrWxjp0PfDwibiw5Vtfq2J45E4uIa0gX7Iv2I40GQX7dP2/7TESszMsnki5Q13wI+I+8XX99AiuUe35EPBcRfwL+QPqyzcxGpTbWsVV0rY7tmSTWxCaRunCTX/9+2ippN0l3kMb1OzL/D2GDvPokSTdJulDSJg3K3Zx0f1PNg1Qc1cDMbBQZUB1b2O+s3JT4mbp7BWu6VseO2GGnIuJ6YJqklwBzJV1O+jxbAL+KiFlKj474Mmn08qJGX3rD/2lIOoI0hBKT1tGrdtqu4SDdZmarWHDbc0si4gWtt2zuzXtNikcfa90Ct+C25+4AlhUWzYmIOUM5dqM6NiKWAQdHxEP5pvqLSfXrOXW7V65jh6rXk9jDkjaNiMW5XfaR+g0i4k5JTwM7k+5ZeQb4YV59IY0fYfEgsGVhfgvgz40CyH8IcwBmvGJi3HBFswElzMyeN37Te+4bahlLHlvJdT9tfQIzcbM/LYuIGYM4xEDr2Bsj4qG8fKmkc0nNhPVJrHIdO1S93pw4Dzg0vz+UdJMqkraWtEZ+vxWwI+kG0AAuA2bmffYGftek3IPySANbk56ZdEOnPoSZ2WAE0E+0nIZgQHWspDUkTcnL1yQ912/haqV2sY7tmTMxSeeRks8USQ8CJ5AeUniBpMNJd/EfmDffE5gtaQXpQX9HFTpwfAr4rqSvA38FPpjL3xeYERGfjYg7JF1ASnArgaPdM9HMelE//W0ppx11rNKwbVfkBDae1OvwjFz+sNSxPdPFfiRwc6KZVTV+03sWDLKJ7+92ecVacfXlL2q53fqbPzDkY41UPXMmNhL00c+T/c+23tDMrE2G2Fw46jmJmZn1qAD6nMRKOYmZmfWoAFZEe66JjVZOYmZmPcwprJyTmJlZjwrCzYktOImZmfWqgD7nsFJOYgOwMoLH+le23tDMrA3Szc5WxknMzKxnib6GwxBajZOYmVmPSr0TncTKOImZmfWodJ+Yk1gZJzEzsx7W7zOxUk5iA9CHeLx/zeEOw8zGCJ+JteYkZmbWowLR1/NPzBpeTmJmZj0qdexwEivjJGZm1rNEn5NYKScxM7MelW52dhIr4yRmZtbD3LGjnJPYAKyM8TzaN2m4wzCzMSLCzYmtOImZmfWwfp+JlXISMzPrUYFYHq6my/jbMTPrUe7Y0ZqTmJlZD+vzsFOlnMQGoI9xPN6/znCHYWZjhEfsaM1JzMysh/W7d2IpJzEzsx7Vj1ge44c7jJ7mJGZm1sPcsaOck5iZWY+KwDc7t+AkNgArYxyPrVx3uMMwszFDvtm5BScxM7MeFfhMrBUnMTOzHuYu9uVafjuSPiZpw24EY2ZmzwvEihjfchrLqqT4FwG/lXSBpLdIcgOtmVkXBOk+sVbTWNby00fEp4Htge8AhwH3SPqCpG07HJuZ2Rgn+ipMY1mla2IREZL+AvwFWAlsCFwk6cqI+GQnA+wlfYzjiT4PO2Vm3VE7E7PmWiYxSccAhwJLgG8Dn4iIFZLGAfcAYyaJmZl121g/02qlSoqfAhwQEW+OiAsjYgVARPQDb29XIJLOlPSIpIWFZRtJulLSPfl1w7x8V0m35OlWSe8s7DNf0l2F9S9scKw1Jc2VdLukOyUd367PYWbWLhFq2zWxdtWxhX3nFcuqW9e1OrbKp986Iu4rLpD0XYCIuLONsZwNvKVu2WzgqojYHrgqzwMsBGZExPS8z+mSimeVB0fE9Dw90uBYBwITIuJlwKuAj0qa2rZPYmbWBgHt7J14Nm2qYyUdADxVcqyu1bFVkti04oyk8TmotoqIa4DH6hbvB8zN7+cC++dtn4mIlXn5RNJvPaDDAZPyj7I2sBx4chBhm5l1kOiLcS2nKtpVx0paF5gFnFx2OLpUxza9JpZP//4NWFtS7eDKwczpRDANbBIRiwEiYnGxaVDSbsCZwFbAIYUvHOAsSX3AxcDJEVGf5C4i/XiLgXWA4yKi/setHecI4AiA9TZdm8dWTmrPJzMzayF17Kh0TWyKpBsL83Mioko9PZg69iTgK8AzJeVWrmOHqmkKj4j/iIjJwH9GxHp5mhwRG0fEsF9DiojrI2Ia8GrgeEkT86qD8yns6/J0SIPddwX6gM2ArYF/lbRNk+PMiYgZETFjnQ0ntP1zmJmV6WNcywlYUqun8jTkE41Gdayk6cB2EfHDFrtXrmOHqmkSk7RTfnuhpFfWT50IpoGHJW2a49kUWO36Vr4u9zSwc55/KL8uBc4lfZn13gf8NCJW5GtmvwJmdOQTmJkNUiD6o/U0BAOtY3cHXiVpEXAtsIOk+Q3K7VodW9aYOiu/fqXB9OVOBNPAPFL3fvLrpQCStq5dZJS0FbAjsEjSGpKm5OVrknpPNuo9cz/wBiWTgNcAv+/oJzEzG6CItnbsaGRAdWxEnBYRm0XEVGBP4O6ImNmg3K7VsU2viUXEEfl1r04cuJ6k84CZpLbdB4ETgC8CF0g6nPSlHJg33xOYLWkF0A8cFRFL8pd1RU5g44GfA2fk8vcl9bb5LPBN4CxSghNwVkTc1o3PaWY2EEM80/q7dtSxLcofljq2ys3OB5JOC5dK+jTwSuCkiLi5nYFExHubrNq7wbbfBb7bYPnTNOk5GRHzSP/rICKe4vkfy8ysJ6XmxPaM2NGOOrZum0Xkyzh5fljq2CrDTn0mIi6UtCfwZlJT4reA3ToaWQ9aGeN4fMXawx2GmY0hHrGjXJUU35df3wacFhGXAmt1LiQzM4Pnu9h3sGPHiFflTOwhSacDbwS+JGkC1ZKfmZkNSfuaE0erKknsn0jDjnw5Ih7P3TA/0dmwzMws9U50EivTMolFxDOSLgU2kfTivNjd0c3MusBnYuWq9E78Z1JXzIdJXS0hNdW+vINx9aT+GMfSlRNbb2hm1ga1m52tuSrNif8C7BgRj3Y6GDMzW1W/eyeWqpLEHgCe6HQgZma2qgEMADxmVUli9wLzJf0EeK62MCK+2rGozMwM8DWxVqoksfvztBa+P8zMrGsixEonsVJVeieeCCBpUh7WyczMusTNieWq9E7cHfgOsC7wYkmvAD4aEUd1Orhe0xfiyeXunWhm3eFrYq1VOU/9OmnMxEcBIuJW4PUdjMnMzDIPO1WuyjUxIuIBaZUvqq/ZtmZm1h6+T6y1Sl3sJb0WCElrAccAd3Y2LDMzI3DHjhaqJLEjgf8CNgceBH4GHN3JoMzMzNfEqqjSO3EJcHAXYul5fTGOp1b4LgMz6x4nsXKl56mS9pJ0iaQ78nSRpJndCc3MbGyrXRNzx47mmiYxSW8DzgQuA95HOhv7X+BMSf/YnfDMzMa2CLWcxrKy5sRPAPvnLvU1t0i6EfgfUkIzM7MO8gDA5cqS2IvqEhgAEXGbpE06GJOZmZEeitnX796JZcqSWNkQU2Ny+Kn+EE8vnzDcYZjZmOFrXq2UJbFtJc1rsFzANh2Kx8zMCsb6Na9WypLYfiXrvtzuQMzMbFW+T6y1pkksIq7uZiBmZlYn0nUxa67S2IlmZjY83DuxnJOYmVmPCuTeiS04iQ1AhFi2wl+ZmXWPmxPLNa2RJV1Guq7YUETs25GIzMzs79w7sVzZaYV7IJqZDaMIJ7FW3DvRzKyHuYt9uZYXeCRtD/wH8FJgYm15RPiGZzOzDuvvdxIrU6WXwlnACcDXgL2AD8LY7PPZ3y+WLV9zuMMwszEi8Cj1rVTpu7l2RFwFKCLui4jPAW/obFhmZgapd12raSyrksSWSRoH3CPpY5LeCbyw3YFIOlPSI5IWFpZtJOlKSffk1w3z8l0l3ZKnW3NMtX3mS7qrsL5hrJJeLunX+WGft0ua2Gg7M7NhE+17nli76tjCvvOKZTVY35U6tkoSOxZYBzgGeBVwCHBoB2I5G3hL3bLZwFURsT1wVZ4HWAjMiIjpeZ/TJRWbRg+OiOl5eqT+QHnb7wFHRsQ0YCawoo2fxcysPdp3KnY2bapjJR0APNXsQN2sY1smsYj4bUQ8FREPRsQHI+KAiPhNuwOJiGuAx+oW7wfMze/nAvvnbZ+JiJV5+UQGfka9D3Bb7XlpEfFoRPQNJm4zs05q15lYu+pYSesCs4CTSw7XtTq27Gbnr0fEsc1ueu7Szc6bRMTifLzFxaZBSbsBZwJbAYcUvnCAsyT1ARcDJ0esds/7DkBIugJ4AXB+RJzSyQ9iZjZQQcd7Jw6mjj0J+ArwTEm5Xatjy3onfje/9uRNzxFxPTBN0kuAuZIuj4hlpKbEhyRNJiWxQ4Bz6nZfA9gTeDXph7hK0oLcgWUVko4AjgAYP2V9Vj43vnMfysysKIBqZ1pTJN1YmJ8TEXOGdOgGdSywE7BdRBwnaWrJ7pXr2KFq2pwYEQvy2+kRcXVxAqa3O5AmHpa0KUB+Xe36VkTcSXrS9M55/qH8uhQ4F9i1QbkPAldHxJKIeAb4X+CVjQKIiDkRMSMiZoyfPKkNH8nMrLqI1hOwpFZP5alqAhtoHbs78CpJi4BrgR0kzW9QbuU6dqiqdOxo1InjsPoFkp5sMS2VdPcA45tXOP6hwKX5WFvXLjJK2grYEVgkaQ1JU/LyNYG3ky5Q1rsCeLmkdXI5/wD8boCxmZl1Xmf72A+ojo2I0yJis4iYSjrTujsiZjYot2t1bNk1sfcC7wO2ljSvsGoy8GiDXf4YEbuUHUzSzSXrziP1YJki6UHSDdZfBC6QdDhwP3Bg3nxPYLakFUA/cFRELJE0CbgiJ7DxwM+BM3L5+5J623w2Iv4m6avAb0l/Av8bET8pi93MrPvad7NzO+rYFuUPSx2r1fs8/D2grYCtSUNOzS6sWkrqdbKybvttIuLe0oNV2KaXTdhm89j85KOHOwwzGwH+dPC/L4iIGUMpY8LWW8Smn/9Yy+3u+8DxQz7WcJO0ERAR8beB7Fc2APB9wH2kNtCWqiSnkZzAAAjRv8IdO8ysi0bxkBySXgycAuwNPJ4WaT3g/4DZEbGoVRktr4lJOiDfzf1E4drWkw2220nS5ZJ+ImlbSWdLelzSDbl3i5mZDZgqTCPWD4AfAi+KiO0jYjtgU+BHwPlVCqjSseMUYN+IWD8i1ouIyRGxXoPt5gCnku7S/j/gp8CGpHsKvlElGDMzqzO6B0+cEhE/KN4IHRF9EXE+sHGVAqoksYdzF8tWJkfEZRFxHrAiIs6P5DJSMjMzs4Ea3UlsgaRTJe0mabM87SbpVKBpR8CiKo9iuVHSD0ind8/VFkbEJXXbFS8WfbVu3VpVgjEzs4LqNzuPVB8ADgdOBDYntY0+AFwGfKdKAVWS2HqkO673KSwLoD6JfVPSunmcxVNrCyVtR+rqbmZmAxT9wx1B50TEcuA0SbdHxLXFdZL2AH7VqoyWSSwiPlgxmNObLP8DaST8ka8feK5KC6yZWZuM7jOxmv9m9RE9/qfBstW0TGKSdgBOIw0UubOkl5M6epSNYFzb96aI6MhQI2ZmY4FG9jWvUpJ2B14LvEDSrMKq9Vj1ElVTVU4rzgCOJz8LJiJuAw6qGmPF7czMrF6VTh0jO8mtBaxLOqGaXJieBN5dpYAq18TWiYgbpFXy0cpmG9fxUE5mZoOmUd2cmAeUv1rS2RFxX376SERE0wdu1quSxJZI2pac7yW9G1jcaqd81/VX81AiRET9w9jMzKyVkX2mVdXkPLbuRgCSlgCHRkSjAdxXUSWJHU26kXknSQ8BfwIObraxpI8CnweeJXWFEOln2KbCsXpbCC13xw4z66JR3DuxYA4wKyJ+ASBpZl722lY7VkliERFvzCPEj4uIpZK2Ltn+48C0ViMem5lZC6P/PrGaSbUEBhAR83POaanKacXFudCn84MmAS4q2f6PlD+22szMKlK0nkaBeyV9RtLUPH2a1OrXUtnzxHYCpgHrSzqgsGo9YGJJmccD10m6nlVH+DimSkBmZlYwOpJUKx8ijdpxCekS1DVApXuUy5oTdyQ9GXkD4B2F5UuBj5TsdzppAODbGSutuWZmNmj5GWLHSFof6C+0+rVU9jyxS4FLJe0eEb8eQDwrI2JW681GoIBxy8dE+7SZ9Qj1j/46R9KrgTNJ94gh6QngQxGxoNW+Va6JPSDph5IekfSwpIslbVGy/S8kHSFpU0kb1aZKn8TMzJ43+m92rvkOcFRETI2IqaRe8WdV2bFK78SzgHOBA/P8+/OyNzXZ/n359fjCstHRxd7MrNtGR5JqZWlE/LI2ExHXSqrUpFglib0wIooZ8WxJxzbbOCLKut+bmdkAjJLeh63cIOl04DxS2n4PMF/SKwEi4qZmO1ZJYn+V9P5cOMB7gUeHFq+ZmVUyNpLY9Px6Qt3y15K+gTc027FKEvsQ8A3ga7mw6/IyMzPrtDGQxCJir8HuW5rEJO0PbAd8MyL2HexBRgu5d6KZdZFizPROXJ90Fvb6vOhq4PMR8USrfctudj6VdLPzdcBJknaNiJMqBNPo+WFPAPdFRNXR783MDMbEmRipe/1C4J/y/CGkDoQHNN0jKzsTez3wiojok7QO8EugZRIDTiU9jfM20p3XO+f3G0s6MiJ+VqEMMzNjzHTs2DYi3lWYP1HSLVV2LLtPbHlE9AFExDNUf8DlImCXiJgREa8CdiFl2DcCp1Qsw8zMYKzcJ/aspD1rM5L2ID0JpaWyM7GdJN1WKxPYNs+LNLL9y5vtFxF31GYi4neSdomIe+serGlmZmVGzwC/rRwJnJOvjQl4DDisyo5lSewlgwzmLkmnAefn+fcAd0uaAKwYZJm9IWDc8uEOwszGlDGQxCLiVuAV+WHKRMSTVfctGzvxvkHGcxhwFHAsKaNeS3rG2Apg0N0ozczGIo2BYdTzSc67gKnAGrVWu4j4fKt9q9wnNlAvjYivAF8pBPiOiLgMeKoDxzMzs5HtUlIv9gUUHuFVRSeS2BmSDo2I2wEkHQQcB1zWgWOZmY1uY6A5EdgiIt4ymB1bjmIv6V+qLCt4NzBX0kskfYQ0GvE+gwnOzGxMq/BU51HS8eM6SS8bzI5VHsVyaINlhzXbOCLuBQ4CLiYltH2q3HVtZmYNjOIu9pJul7QQ2Bu4SdJdkm7Ly29rtT+Uj9jxXtJjVbaWNK+wajINBgCWdDurfp0bAeOB6yVR0iV/xFA/jHfvRDPrEjHqO3a8nXQytYA0xOGAlV0Tuw5YDEyh0EkDWEoagaNRMGZm1k4j+EyrlVoveEnnkR779duBltG0OTEi7ouI+RGxO2kUjjUj4mrgTmDtJts3nVoFIunM/PTohYVlG0m6UtI9+XXDvHxXSbfk6VZJ7yzsMz+fktbWv7DkmC+W9JSkj7eKz8ys69p4TaxddWxh33nFspocs2oduxfwa0l/HGhzYpWOHR8BLgJOz4u2AH7UYLumDy2ruM3ZQH3vlNnAVRGxPXBVnoc0jNWMiJie9zldUvGs8uCImJ6nR0qO+TXg8lZxm5kNm/ZdEzubNtWxkg6g2i1TVevYtwLbkp4b9g5Sy947KuxXqYv90cCuwPUAEXFPk7Obl7TInALWb7YyIq6RNLVu8X7AzPx+LjAf+FQey7FmIoM44c6PmbkXeHqg+5qZdU2bmhPbVcdKWheYBRwBXNDseAOpY4cwuEalJPZcRCyv3UGds3Gjr3WnCmX1DSA2gE0iYjFARCwuJk9Ju5GG798KOKTuMS9nSeoj9ZA8OSJWiVfSJOBTwJtIo4k0JekI0o/FmpM3ZNyAbsMzMxuais2FUyTdWJifExFzKuw3mDr2JFI/iWfqCyvsW7mOHaoqSexqSf8GrC3pTaQhpVa7cXkomXQwIuJ6YJqkl5DuS7s8IpaRmhIfkjSZlMQOAc6p2/1E4GsR8VSrQYnzH8IcgLVftOUovsRqZj0ngGq9E5dExIy2HrpBHUs6WdkuIo5rcFZXVLmOHaoqSWw2cDhwO/BR4H+Bb3cyqIKHJW2a/4ewKbDa9a2IuFPS06Tnlt0YEQ/l5UslnUtqCq1PYrsB75Z0CrAB0C9pWUR8o5MfxsxsoDp8M/NA69hXA6+StIiUP14oaX5EzKzbrWt1bMskFhH9wBl56rZ5pJutv5hfLwWQtDXwQESslLQVsCOwKDd1bhARSyStSbo4+PP6QiPidbX3kj4HPOUEZmY9qbNJbEB1bETcCJyWt5kK/LhBAutqHdsyiTW4iRnSQI03kq43rXbj82Dk+wRmktp2HwROIH2xF0g6HLgfODBvvicwW9IK0sn2UTlxTQKuyAlsPCmBnZHL35fU2+az7YjXzKwb2nUm1o46tkX5w1LHqq7Pw+obpNPBPuDcvOig/PoksGdEVOoGORqs/aItY9tDZg13GGY2Atzx5VkLhnqdau0XbRnbHdy6zln41aEfa6Sqck1sj4jYozB/u6RfRcQekt7fqcB6kcLDTplZF43wsRG7ocoAwOvmrpZAupMbWDfPrmy8i5mZDZUYM6PYD1qVM7HDSfdd1RLXUuDwfP3pPzoWmZmZjfkk1UppEpM0HnhdRLxM0vqka2iPFzZpere2mZm1gZNYqdLmxIjoIw1LQkQ8UZfAzMys00bx88TaoUpz4q8kfQP4AYUxsCKi5YC/o447dphZN/maV0tVkthr8+vnC8uCNNqwmZl10Ch/KOaQVRmxY69uBGJmZg34TKxUlTMxJL0NmEYakh+AiPh88z3MzKwd3JxYrsqwU98C1iE9efPbwLuBGzocl5mZueNGS1Vudn5tRHwA+FtEnAjsDmzZ2bDMzAxw78QWqjQnPptfn5G0GfAosHXnQupd6ofxz43xvxgz65raiB3WXNMzMUk/y29/LGkD4D+Bm4BFwPkdj8zMzFB/tJzGsrIzsRcARMRJef5iST8GJkbEEx2PzMxsrHNzYUtlSWx9SQc0WiGJiLikQzGZmVnm5sRypUmM9GRkNVgXgJOYmVmnOYmVKkti90XEh7oWyQjg54mZWbf5TKxcWRJrdAZmZmbdEh52qpWyJHZI16IwM7PGfCZWqmkSi4iF3QzEzMxW5fvEWqs0dqKZmQ2TcBYrU+XJznMj4v1diqe39cP4ZW6gNrPu8ZlYuSpPdn6BpLW6FI+ZmdVUGTdxjCe5Ks2Ji0hPd57Hqk92/mqngjIzs0R9wx1Bb6uSxP6cp3HA5M6GY2ZmRW5OLFflyc4nAkiaFBFPt9rezMzaJHDHjhZaPk9M0u6SfgfcmedfIenUjkdmZmYoWk9jWZXmxK8DbwbmAUTErZJe38mgepUiGL98jP/FmFl3ucopVek+sYh4QFplFCpfajQz6zDf7NxalST2gKTXApG72h9Dblo0M7MOCj/0spWW18SAI4Gjgc2BB4Hped7MzDrN94mVqnIm1h8RB3c8EjMzW42bE8tVSWLXS7oFOBP4acQY7u/pYafMrJsCcHNiqSrNiTsAc4APAH+Q9AVJO3Q2LDMzA9yc2ELLJBbJlRHxXuDDwKHADZKulrR7uwKRdKakRyQtLCzbSNKVku7Jrxvm5btKuiVPt0p6Z2Gf+ZLuKqx/YYNjvUnSAkm359c3tOtzmJm1k/qj5VSpnDbVsYV95xXLqlvXtTq2ys3OG0v6F0k3Ah8H/hmYAvwrcG4bYzkbeEvdstnAVRGxPXBVngdYCMyIiOl5n9MlFZtGD46I6Xl6pMGxlgDviIiXkZLyd9v3MczM2qeNNzufTZvqWEkHAE+VHKtrdWyV5sRfA+sB+0fE2yLikohYGRE3At9qVyARcQ3wWN3i/YC5+f1cYP+87TMRsTIvn8gAT6gj4uaI+HOevQOYKGnCYOI2M+uYNo5i3646VtK6wCzg5JJjda2OrdKxY8dmnTki4kttjqfeJhGxOB9rcbFpUNJupM4mWwGHFL5wgLMk9QEXAye36IzyLuDmiHiu/eGbmQ1eutm5oxe9BlPHngR8BXim4jE6WsdWSWJTJH0SmEbKyABExLBeR4qI64Fpkl4CzJV0eUQsIzUlPiRpMimJHQKc06gMSdOALwH7NDuOpCOAIwAmTlif8ctWNtvUzKz9qnWInpIv+dTMiYg5QzlsozoW2AnYLiKOkzS1VRlV6tihqtKc+H3g98DWwImk54v9tlMB1XlY0qYA+XW161sRcSfpOWc75/mH8utS0jW7XRsVLGkL4IfAByLij80CiIg5ETEjImasueakIX4cM7OBUUTLCVhSq6fyVDWBDbSO3R14laRFwLXADpLmN4y7Yh07VFWS2MYR8R1gRURcHREfAl7TqYDqzCNdFCS/XgogaevaRUZJWwE7AoskrSFpSl6+JvB20gXKVUjaAPgJcHxE/KrTH8LMbFAi0n1irabBG1AdGxGnRcRmETEV2BO4OyJm1hfazTq2ShJbkV8XS3qbpF2ALdodiKTzSJ1IdpT0oKTDgS8Cb5J0D/CmPA/py7s134T9Q+CoiFgCTACukHQbcAvwEHBGLn9fSZ/P+38M2A74TFlXfDOz4dau3oltqmPLyh+WOlatBuCQ9Hbgl8CWwP+Qeip+LiIu60RAvWy9yZvHrrscNdxhmNkIcNUvP70gImYMpYyqdU47jjVSVXmy84/z2yeAvQAkHdvBmHpXP4xb5qfQmFmXBMgj3ZWq0pzYyKy2RmFmZo1FtJ7GsEoPxWxArTcxM7MhG9s5qqXBJjF/rWZmXaB+tyeWaZrEJC2lcbISsHbHIjIzsySoerPzmNU0iUXE5G4GYmZmqxLR6WGnRrzBNieOSYp+xi1bPtxhmNlY4iRWyknMzKyXOYmVchIzM+tVAepzEivjJGZm1st8JlbKSczMrGf5ZuZWnMQGoj/QshWttzMza4fASawFJzEzs17m+8RKOYmZmfUw3ydWzknMzKxXBdDnU7EyTmJmZj3LHTtacRIbiP6AZ5cNdxRmNpY4iZVyEjMz62VOYqWcxMzMelWQWoCsKScxM7OeFRDu2FHGSczMrFe5d2JLTmJmZr3M18RKOYkNRPTDsueGOwozG0ucxEo5iZmZ9SzfJ9aKk5iZWa8KoN/XxMo4iZmZ9TInsVJOYmZmPSt8n1gLTmID0d9P/zPPDHcUZjZWBITvEyvlJGZm1st8JlbKSczMrJe5d2IpJzEzs14V4Y4dLTiJmZn1sOjrG+4QepqTmJlZz/LNzq04iQ1A9Af9zz473GGY2VjhR7G05CRmZtbL3MW+1LjhDqBG0pmSHpG0sLBsI0lXSronv26Yl+8q6ZY83SrpnYV95ku6q7D+hU2Od7ykP+Rt39z5T2hmNjBBagFqNVXRrjq2sO+8YlkN1nelju2ZJAacDbylbtls4KqI2B64Ks8DLARmRMT0vM/pkopnlQdHxPQ8PVJ/IEkvBQ4CpuX9T5U0vp0fxsxsyCI/FLPVVM3ZtKmOlXQA8FSzA3Wzju2ZJBYR1wCP1S3eD5ib388F9s/bPhMRK/PyiaT/sAzEfsD5EfFcRPwJ+AOw62DiNjPrpOjrazlVKqdNdaykdYFZwMklh+taHdvr18Q2iYjFABGxuNg0KGk34ExgK+CQwhcOcJakPuBi4OSI1br3bA78pjD/YF62GklHAEfk2ed+Hhc1PX3ukinAkmGOAXojjl6IAXojjl6IAXojjl6IAWDHoRawlL9d8fO4aEqFTSdKurEwPyci5lTYbzB17EnAV4CyMfgq17FD1etJrKmIuB6YJuklwFxJl0fEMlJT4kOSJpOS2CHAOXW7q1GRTY4zB5gDIOnGiJjRtg8xCL0QQ6/E0Qsx9EocvRBDr8TRCzHU4hhqGRFR3/zXNY3qWGAnYLuIOE7S1JLdK9exQ9UzzYlNPCxpU4D8utr1rYi4E3ga2DnPP5RflwLn0vgU9kFgy8L8FsCf2xq5mVnvG2gduzvwKkmLgGuBHSTNb1Bu1+rYXk9i84BD8/tDgUsBJG1du8goaSvSafsiSWtImpKXrwm8nXSBslG5B0maIGlrYHvgho5+EjOz3jOgOjYiTouIzSJiKrAncHdEzGxSblfq2J5pTpR0HjATmCLpQeAE4IvABZIOB+4HDsyb7wnMlrQC6AeOioglkiYBV+QENh74OXBGLn9fUm+bz0bEHZIuAH4HrASOjogqV0ertDF3Wi/EAL0RRy/EAL0RRy/EAL0RRy/EAL0TB9CeOrZF+e2oYwf+uVbv82BmZjYy9HpzopmZWVNOYmZmNmI5iVUg6S156JQ/SJrdeo8hHavy0DB5XduHdpG0paRfSLpT0h2S/mWY4pgo6YY87M0dkk4cjjhyueMl3Szpx8MYwyJJtysNBXTjcMQhaQNJF0n6ff772H0YYthRzw+JdIukJyUdOwxxHJf/LhdKOi//vXb972LMiwhPJROpg8gfgW2AtYBbgZd28HivB14JLCwsOwWYnd/PBr6U3780xzMB2DrHOb4NMWwKvDK/nwzcnY/V7TgErJvfrwlcD7ym23HksmeRbtn48XD8JrnsRcCUumXd/k3mAh/O79cCNhiO76IQz3jgL6QbcrsWB+nG3T8Ba+f5C4DDhvO7GKuTz8Ra2xX4Q0TcGxHLgfNJQ6p0RAxgaBg6NLRLRCyOiJvy+6XAnaR/tN2OIyKiNj7bmnmKbschaQvgbcC3C4u7GkOJrsUhaT3Sf7K+AxARyyPi8W7G0MDewB8j4r5hiGMNYG2lrujrkO6D6pW/izHDSay1zYEHCvMdGz6lxCpDwwC1oWE6HpvSXfm7kM6Cuh5Hbsa7hXQT5pWRRhHodhxfBz5J6mpcMxy/SQA/k7RAaTi0bsexDfBX0rBuN0v6ttJtLcP290kaZPa8/L5rcUQaVOHLpG7pi4EnIuJn3YzBEiex1ro2fMogdDQ2pYE+LwaOjYgnhyOOiOiLNJL2FsCuknbuZhyS3g48EhELqu7S7hgK9oiIVwJvBY6W9Poux7EGqan7tIjYhTSKQ9k14k7/fa4F7Atc2GrTdseRr3XtR2oa3AyYJOn93YzBEiex1nphiKpmQ8N0LDalG8YvBr4fEZcMVxw1udlqPumxDt2MYw9gX6Vhds4H3iDpe12OAYCI+HN+fQT4Iak5qptxPAg8mM+GAS4iJbXh+rt4K3BTRDyc57sZxxuBP0XEXyNiBXAJ8Noux2A4iVXxW2B7pWFY1iI1X8zrcgwNh4ahQ0O7SBLpusedEfHVYYzjBZI2yO/XJlUcv+9mHBFxfERsEWmYnYOA/4uI93czBgBJk5QGtSY34e1DGlKtm9/FX4AHJNVGZ9+bNCJDV7+LgvfyfFNi7XjdiuN+4DWS1sn/XvYmXTseru9i7BruniUjYQL+kdRD74/Av3f4WOeR2thXkP73djiwMemBdffk140K2/97jusu4K1timFPUlPHbcAtefrHYYjj5cDNOY6FwGfz8q7GUSh7Js/3Tuz2d7ENqXfbrcAdtb/DYYhjOnBj/k1+BGw4HL8HqSPFo8D6hWXd/i5OJP2naiHwXVLPw2H52xzLk4edMjOzEcvNiWZmNmI5iZmZ2YjlJGZmZiOWk5iZmY1YTmJmZjZiOYnZkEmaqsKo+20sd4ak/26xzQaSjmr3sVuRdN0Q9j1b0rurLh+qWqz5d3rfIPY/TNI32h2XWTs4iVnPiogbI+KYFpttAHQ9iUXEa7t9zMEqxDoVGHASM+tlTmLWLuMlnZGfr/SzPMLGKvKZxrck/VLS3Xlcwtpzw85SelbWzZL2ystn6vnnd31O6Vlr8yXdK6mW3L4IbKv0XKn/rDveVKVnXq0Wl6Tpkn4j6TZJP6w99ymX/zVJ1+R9Xy3pEqXnQ51cKPupQozz9fwztr6fR3BA0mcl/VbpeVNzasurkLR3/i5uz597Ql6+SNKJkm7K63bKy1+g9PyqmySdLuk+SVOKsebv6nX5uzqu/gxL0o8lzczvP5h/o6tJQ29ROM7F+XP9VtLf15kNBycxa5ftgW9GxDTgceBdTbabCvwD6dEm35I0ETgaICJeRhpKaG5eXm8n4M2kMQNPUBrfcTbpURzTI+ITA4jrHOBTEfFy4HbghMI+yyPi9cC3SMMGHQ3sDBwmaeMGx9gFOJb0zKhteL7S/0ZEvDoidgbWBt7e5DtZRf7sZwPvyd/JGsD/K2yyJNJAwKcBH8/LTiANifVK0riKL25Q9Gzgl/m7+lrJ8TcljUaxB/Cm/Llq/gv4WkS8mvRdfnv1Esy6x0nM2uVPEXFLfr+AlKwauSAi+iPiHuBeUmLakzRsDxHxe+A+YIcG+/4k0vOYlpAGVt1kMHFJWh/YICKuzsvnkp6TVVMbG/N24I5Iz1d7LsdbHMS15oaIeDAi+klDdE3Ny/eSdL2k24E3ANMqxAuwY4777ibx1QZkLn7Pe5IGKCYifgr8reKxGtkNmB9pcNvlwA8K694IfEPp8TjzgPWUx3Q0Gw5rDHcANmo8V3jfRzrzaKR+nLOg8WMqqhyjyt9v1bga7dNft39/k2OuFlc+mzoVmBERD0j6HNDo7LKRVt9H7XjF76ByU2XBSlb9j2wxvmbj0Y0Ddo+IZwdxPLO285mYdduBksZJ2pbU9HYXcA1wMICkHUhNYXdVLG8pMKAzgYh4AvibpNflRYcAV5fsMhi1hLBE6blsA+l1+HvSGeN2eb5KfNcC/wQgaR/SwLz16r+rRcD0/HtsyfNPGr4emClp49xke2Bhn58BH6vNSJpe5QOZdYrPxKzb7iJVyJsAR0bEMkmnkq6P3U46OzgsIp6r0g8iIh6V9CulLv6XN7ku1sih+ZjrkJoJPziYD1MS1+OSziA1SS4iPdKn6r7LJH0QuFDSGnnfb7XY7UTgPEnvIX2/i0lJq+g2YKWkW0nX3L4O/CnHuBC4KR9/cT5z/HUu5yZgfC7jGOCbkm4j1R/XAEdW/Wxm7eZR7K1rJJ1NepTJRcMdy2iTey/2RcRKSbuTnr48fZjDMus4n4mZjQ4vBi6QNA5YDnxkmOMx6wqfiZmZ2Yjljh1mZjZiOYnZqJFH6Hg2j0jRcDxHFcZjrB+xokMxHZs7j7SjrPdI+oPyKCZm5iRmo88fyzo0VByPsZ2OBQaUxCSNb7Q8In4AfLgNMZmNGk5iNupJ2iaPQ/hqFcZjrNtmK0lX5bEUr5L04rz8bEmnSfqF0piN/5DHMrwz97as7b+PpF/nsQsvlLSu0viOmwG/kPSLZtvl5YuUxlq8lnQv3TGSfpfjOb8b35PZSOQkZqOapB2Bi4EPRkTZvVrfAM7JYyl+Hyg+AmZD0rBRxwGXAV8jDSH1MqWBhKcAnwbemMcuvBGYFRH/DfwZ2Csi9mq2XeE4yyJiz4g4nzTO4S45Ht+HZdaEu9jbaPYC0gC+74qIO1psuztwQH7/XeCUwrrLIiLyzdgPR8TtAJLuII1duAVpkNxf5Ru01yLdKFzvNS22K45ReBvwfUk/An7UInazMctJzEazJ4AHSKOxt0pi9Yr3nrQaS7EPuDIi3tuiTLXY7unC+7eRBv3dF/iMpGkRsbJq8GZjhZsTbTRbDuwPfECtn2h8HXBQfn8waSzCqn4D7FEb61DSOnkMSFh1vMKy7f4u37C8ZUT8Avgk6cGf6w4gHrMxw2diNqpFxNNKD9+8UtLTpLOzRo4BzpT0CeCvDGAsxYj4q6TDSGMXTsiLPw3cDcwBLpe0OF8Xa7Zd0Xjge/mRMSI9v+vxqvGYjSUescNGDUlTSWMz7jzcsXSK0pOXPx4RlR6waTbauTnRRpM+YP38wMZRJ49QfypDe+Cl2ajiMzEzMxuxfCZmZmYjlpOYmZmNWE5iZmY2YjmJmZnZiOUkZmZmI9b/B7yA6lSfUTIcAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ds['rhopot0'].isel(Time=0).plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "om4labs", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/ocean_only/flow_downslope/gmac_targetlayers.ipynb b/ocean_only/flow_downslope/gmac_targetlayers.ipynb new file mode 100644 index 0000000000..4088b77125 --- /dev/null +++ b/ocean_only/flow_downslope/gmac_targetlayers.ipynb @@ -0,0 +1,73 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import xarray as xr" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "layername = 'rho0'\n", + "units = 'kg m-3'\n", + "nk = 20\n", + "lmin = 1034\n", + "lmax = 1035\n", + "data = np.linspace(lmin,lmax,nk)\n", + "layers = xr.DataArray(\n", + " data=data,\n", + " dims=['z_i'],\n", + " coords={'z_i':data},\n", + " name='interfaces',\n", + " attrs={'units':units}\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "layers.to_netcdf('common/targetlayers_'+layername+'.nc')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "om4labs", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/ocean_only/rotating_gravity_current/Zsetup_2D/gmac_analysis.ipynb b/ocean_only/rotating_gravity_current/Zsetup_2D/gmac_analysis.ipynb new file mode 100644 index 0000000000..04578a06c9 --- /dev/null +++ b/ocean_only/rotating_gravity_current/Zsetup_2D/gmac_analysis.ipynb @@ -0,0 +1,1601 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Basic analysis of shortened RGC experiment" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "import xarray as xr\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "ds_z = xr.open_dataset('prog_z.nc').mean(['yh','yq'])\n", + "ds_rho0 = xr.open_dataset('prog_rho0.nc').mean(['yh','yq'])" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:    (xh: 80, z_l: 30, z_i: 31, Time: 128, xq: 81)\n",
+       "Coordinates:\n",
+       "  * xh         (xh) float64 0.5 1.5 2.5 3.5 4.5 5.5 ... 75.5 76.5 77.5 78.5 79.5\n",
+       "  * z_l        (z_l) float64 41.66 125.0 208.3 ... 2.291e+03 2.375e+03 2.458e+03\n",
+       "  * z_i        (z_i) float64 0.0 83.33 166.7 ... 2.333e+03 2.416e+03 2.5e+03\n",
+       "  * Time       (Time) object 0001-01-01 06:00:00 ... 0001-02-02 00:00:00\n",
+       "  * xq         (xq) float64 0.0 1.0 2.0 3.0 4.0 5.0 ... 76.0 77.0 78.0 79.0 80.0\n",
+       "Data variables:\n",
+       "    temp       (Time, z_l, xh) float32 -0.05994 -0.05979 ... -0.8865 -0.8863\n",
+       "    salt       (Time, z_l, xh) float32 34.48 34.48 34.48 ... 34.91 34.91 34.91\n",
+       "    u          (Time, z_l, xq) float32 0.0 -9.926e-07 ... 0.0002102 0.0\n",
+       "    v          (Time, z_l, xh) float32 2.878e-05 8.53e-05 ... 0.0001362\n",
+       "    h          (Time, z_l, xh) float32 40.38 40.47 40.6 ... 83.2 83.26 83.31\n",
+       "    e          (Time, z_i, xh) float32 -0.005484 -0.005476 ... -2.5e+03 -2.5e+03\n",
+       "    tr_RGC1    (Time, z_l, xh) float32 0.9995 0.9995 0.9995 ... 0.0 0.0 0.0\n",
+       "    rhopot0    (Time, z_l, xh) float32 1.028e+03 1.028e+03 ... 1.028e+03\n",
+       "    rhopot2    (Time, z_l, xh) float32 1.037e+03 1.037e+03 ... 1.037e+03\n",
+       "    rhoinsitu  (Time, z_l, xh) float32 1.028e+03 1.028e+03 ... 1.04e+03 1.04e+03
" + ], + "text/plain": [ + "\n", + "Dimensions: (xh: 80, z_l: 30, z_i: 31, Time: 128, xq: 81)\n", + "Coordinates:\n", + " * xh (xh) float64 0.5 1.5 2.5 3.5 4.5 5.5 ... 75.5 76.5 77.5 78.5 79.5\n", + " * z_l (z_l) float64 41.66 125.0 208.3 ... 2.291e+03 2.375e+03 2.458e+03\n", + " * z_i (z_i) float64 0.0 83.33 166.7 ... 2.333e+03 2.416e+03 2.5e+03\n", + " * Time (Time) object 0001-01-01 06:00:00 ... 0001-02-02 00:00:00\n", + " * xq (xq) float64 0.0 1.0 2.0 3.0 4.0 5.0 ... 76.0 77.0 78.0 79.0 80.0\n", + "Data variables:\n", + " temp (Time, z_l, xh) float32 -0.05994 -0.05979 ... -0.8865 -0.8863\n", + " salt (Time, z_l, xh) float32 34.48 34.48 34.48 ... 34.91 34.91 34.91\n", + " u (Time, z_l, xq) float32 0.0 -9.926e-07 ... 0.0002102 0.0\n", + " v (Time, z_l, xh) float32 2.878e-05 8.53e-05 ... 0.0001362\n", + " h (Time, z_l, xh) float32 40.38 40.47 40.6 ... 83.2 83.26 83.31\n", + " e (Time, z_i, xh) float32 -0.005484 -0.005476 ... -2.5e+03 -2.5e+03\n", + " tr_RGC1 (Time, z_l, xh) float32 0.9995 0.9995 0.9995 ... 0.0 0.0 0.0\n", + " rhopot0 (Time, z_l, xh) float32 1.028e+03 1.028e+03 ... 1.028e+03\n", + " rhopot2 (Time, z_l, xh) float32 1.037e+03 1.037e+03 ... 1.037e+03\n", + " rhoinsitu (Time, z_l, xh) float32 1.028e+03 1.028e+03 ... 1.04e+03 1.04e+03" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds_z" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ds_z['temp'].isel(Time=0).plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEiCAYAAADjxEWuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAArz0lEQVR4nO3de7ylc93/8dd7BpPT5DBDMqahUEiDIaJySuouVHclHXArN7cS6i6TUt0lbip3fqGmEsohlVNHp5BCGofMjEPEYJiMKcwkDbP35/fH97vMNXvWWvvae+113O/n43E9Zl3nz1p7z/rs63tURGBmZjbQmHYHYGZmnckJwszMqnKCMDOzqpwgzMysKicIMzOrygnCzMyqcoLoMpLmSNq13XGYWe9zgugwkv5RWPolPVtYf39EbBkR17U7zlqU/K+kv+XlZEkq7J8i6VpJ/5R0j6Q9B5x/gKSHJD0j6VJJ6xT2vUfSjfnc60rEMk7SWZIWSfqrpGMK+zaTdJmkJyT9XdIVkjYf5HpTJd2a73+rpKmFfQfmbYskzcvve6U61xr25zCU9zlY3DWud3S+ztP5uuMK+9aRdEmO6yFJB9S7lnW5iPDSoQswF9iz3XEMMeb/BO4FJgEbAncBhxX23wR8HVgVeBfwFDAx79sSWAy8AVgDOB+4sHDunsB7gOOB60rEciJwA7A28Crgr8Deed8OwCHAOsDKwJeAe+pcaxXgIeBoYBxwZF5fJe8/HHh9Pm5D4Fbg2DrXG/bnMMT3WTfuKtd6M/B4jmFt4DrgpML+C4Af5bh2AZ4Gtmz3752X5ixtD8BLnR9OlQRR3AZ8Afgx8MP8hTIL2AyYDiwAHgH2Kpz7YuB7wHzgUeDLwNgRjvlG4NDC+iHAzfn1ZsASYM3C/hvICQT4CnB+Yd/LgeeKx+ftHy6ZIB4d8P6/VOuLNieKANatsX+vfD0Vtj1c+SKucvwxwM9q7BuRz6HM+xxG3OcDXyms7wH8Nb9ePcexWWH/D4oJxEtvLS5i6n5vJ/0nXRu4HbiCVHS4IfA/wLcLx54DLAVeAWxD+vL4cLWL5iKOp+osk2vEsyXwp8L6n/K2yr4HImJxnf0vnBsRfyF/IdX7AGrEvzbw0jqxDPQG0hfh32rs3xK4M/K3YnbnINebU+daw/4cJB0r6ef59WDvs27cknaR9NSA2AZea31J6+b790XEn2vcy3pMzTJS6xo3RMQVAJJ+DLyT9Bddn6QLgRmS1iIVL7wFWCsingWekXQqcCjLJxEAIuJ80l+TQ7UGqdih4mlgjVwPMXBfZf+GNc6t7F9zmHFUzq97LUmTgNNJf/XXu16p2CQdDEyjRvKtc61Sn0NEnDTgWlD7fQ52rd8Ba9WJrfJ6zcGuZb3HTxDd7/HC62eBhRHRV1iH9B/7ZaSy9vmVpwBSYlhvhOP5BzC+sD4e+Ef+C3bgvsr+xTXOHbi/JknfKlTmfyZfq3J+zWtJmghcCZwRERcUthcbC0wuG5uk/YCTgLdExMIa4Y7k5zDY+xzqZ1rt50c+ftg/H+tOThCjxyOkcu8JEbFWXsZHRNXiAUnvH/AlOXCpVcQ0B3hNYf01LCtqmQNsImnNOvtfOFfSJqQnn2KRRlURcVhErJGXr0TEk6S6llqxVIpnrgQuj4gTBlxvjcLycD5v62KLLGDrAdfbG/gO8PaImFUn3BH7HEq8z0HjrhLbwGs9nove/gysJGnTGveyXtPuShAvtRfKVVL/sLBvT2BuYX0lUsXrpLx+GfAN0l99Y0iVn28c4ZgPA+4mFZe8lPTlUWzFdDPwVeBFwDtYsfXOIlJroNVJle/FVkxj83mHAb/Nr1euE8tJwPWk+plXkr5IK617xgO3AN8s+b4qrYE+Tvqy/ijLt2LaHfgb8IaS1xv25zDE91k37irX2pvUCmqLfL3fsHwrpgtJLZlWB3bGrZh6eml7AF7q/HBGPkG8GDgTmJf/Y98O7D/CMQs4Gfh7Xk5m+RY0U0hNJ58lNYcd+P4OILWyeYaU0NYp7Dsov5/icnadWMYBZ+Uv28eBYwr7DsznP0MqOqksk+tcbxtS89VngduAbQr7riU1AChe61d1rtXI5/CZ4rXrvc8Scb+eVARYPP6YfJ1FwPeBcYV96wCX5rgeBg5o9/8TL81blH/oZmZmy3EdhJmZVeUEYWZmVTlBmJlZVU4QZmZWlROEmZlV1bNDbUyYMCGmTJnS7jDMhm3REvc/a5X7Zv9rYURMHO75b95t9fjb3/sGPxC49c4lV0TE3sO9Vyv1bIKYMmUKM2fObHcYZsN21YOvancIo8Zem9zzUCPnL/z7Um789YaDHwi86KUPTmjkXq3UswnCzKxVAuin9/qUOUGYmY2AfvrbHcKIc4IwM2tQEPT14KgUThBmZiPARUxmZraCAPqcIMysUb+Zu3nNfX0x9K5JY9XZZd/13lPZ2EfiGmWvNxwBPB+d/XMYDicIM7MR0HvpwQnCzKxhQbiIyczMqgjo67384ARhZtao1FGu9zhBmJk1TPShdgcx4pwgzMwalFoxOUGYWQn1mrLW0+lNVodjJN7TSH8uI3291A/CCcLMzKro9xOEmZkN5CcIMzOrKhB9PThBpxOEmVmDUiW1E4SZma1AIz6+UydwgjAza1DqKNd7CaL33pGZWRv05c5ygy2NkPRuSXMk9UuaNkKh1+QnCLMGDLe/g/WWiJYVMc0G3gl8uxU3c4IwMxsB/S1o5hoRdwNIrWlS6wRhZtagQDwXvfd12nvvyMysxYZYST1B0szC+oyImFFZkXQ18JIq5x0XEZcNP8qhc4IwMxsBfeWH2lgYETUrmCNiz5GJqHFOEGZmDerVntS9947MzNqgP8aUWhoh6R2S5gE7Ab+QdMWIBF+DnyDMhuD6uZsttz62TXFYZ+lHPBfN/22IiEuAS5p+o8wJwsxsBPRiT2onCDOzBkXgsZjMzKwataSjXKs5QZiZNSjwE4SZmdXQi81cnSDMzBoUiOdb0Iqp1ZwgzAYxsGmr2UABDfdx6EROEGZmDWt8rodOVDNBSDqtxPmLIuKzIxiPmVnXGY1PEPsCxw9y/rGAE4SZjXqj6gkCODUizql3sqS16+zbCDiXNGxtP2lI229IWgf4ETAFmAu8JyKezOdMBw4B+oAjI+KKvH074GxgVeCXwMcjIkq8PzOzpotQTz5B1HxHEfF/g508yDFLgU9ExKuAHYEjJG1Beuq4JiI2Ba7J6+R9+wNbAnsDZ0iqNAs4EzgU2DQvew8Wm5lZqwTwfIwttXSTQVOepJMljZe0sqRrJC2U9IHBzouI+RFxW369GLgb2JBUdFV5MjkH2C+/3he4MCKWRMSDwP3ADpI2AMZHxE35qeHcwjlmZh0gzUldZukmZVox7RURn5L0DmAe8G7gWuCHZW8iaQqwDfAHYP2ImA8piUhaLx+2IXBz4bR5edvz+fXA7dXucyjpSYPJkyeXDc9sBW7aakORKql7rw6iTDpbOf/7VuCCiPj7UG4gaQ3gp8BREbGo3qFVtkWd7StujJgREdMiYtrEiROHEqaZWUP6GFNq6SZlniAul3QP8CzwX5ImAv8qc3FJK5OSw3kRcXHe/LikDfLTwwbAgrx9HrBR4fRJwGN5+6Qq283MOkKg0fcEIWkM8DPS7EXTIuJ54J+k+oK6JAn4HnB3RHy9sOty4MD8+kDgssL2/SWNk7QxqTL6llwctVjSjvmaHyqcY2bWdhG9WUld9wkiIvolfS0idipsewZ4psS1dwY+CMySdEfe9hngJOAiSYcAD5PqNIiIOZIuAu4itYA6IiL68nmHs6yZ66/yYmbWMVrxBCHpFODtwHPAX4CDI+KpZt2vTBHTlZLeBVw8lL4HEfE7qtcfAOxR45wTgBOqbJ8JbFX23mZmrZSKmFpSv3AVMD0ilkr6X2A68Olm3axMgjgGWB3ok/Qs6Us/ImJ8s4IyM+s2rehJHRFXFlZvBv69mfcbNEFExJrNDMCsE42hv90hWBdpUzPX/yCNStE0gyaIXDH8fmDjiPhSHkJjg4i4pZmBmZl1jyEVMU2QNLOwPiMiZrxwJelq0hBFAx0XEZflY44j1dWeN8yASylTxHQGaSyl3YEvAf8ATge2b2JcZmZdI7ViKp0gFkbEtNrXij3rnSzpQOBtwB7NHpOuTIJ4bURsK+l2gIh4UtIqzQzKzKzbtKKSWtLepErpN0bEP5t9vzIJ4vk8aF4A5I5yLqA1M8ta2FHum8A44KpU+s/NEXFYs25WJkGcBlwCrCfpBFKt+eeaFZCZWTfqb00rplc0/SYFZVoxnSfpVlLfBQH7RcTdTY/MzKxL9OpgfWVaMf0gIj4I3FNlm5mZMfqmHK3YsriS6yO2a044Zu1xw9yWPrlbj4kQS3swQdR8R5KmS1oMbC1pkaTFeX0BHizPzGw5/aFSSzepN+XoibkX9SkRMT4i1szLuhExvYUxmpl1tEodxKhJEAXHSfqApM8BSNpI0g5NjsvMrKuM1gRxOmk+iAPyeqUntZmZsawfRK8lCPekNjNrVNCTldTuSW1m1qBR2w+C6j2pP9vUqMxawE1bbSSNygThntRmZvW1cCymlirzBAHwOHBDPn5VSdtGxG3NC8vMrLvEaEwQkr4EHESaILsy9niQ5ocwMzNaM1hfq5V5gngP8PKIeK7ZwZiZdaMI6Osfna2YZgNrkYbYMDOzFYzeOogTgdslzQaWVDZGxD5Ni8rMrMuMyjoI4Bzgf4FZuP+D9ZCx8q+zjYzR3A9iYUSc1vRIzMy6VaR6iGbLjYb2Jf2xvgA4KCIea9b9ytSq3CrpREk7Sdq2sjQrIDOzbtSPSi0NOiUito6IqcDPgeMbDryOMk8Q2+R/dyxsczNXM7MsUEtaMUXEosLq6izretAUZXpS79bMAMzMesEQipgmSJpZWJ8RETPKnpyHPPoQ8DTQ1O/nejPKvW2wk8scY2Y2GkSo1EKq151WWJZLDpKuljS7yrJvuk8cFxEbAecBH23me6r3BHGKpEehbqHZV0jlYGZmo1bEyDVzjYg9Sx56PvAL4PMjcuMq6iWIx4GvD3L+fSMYi1nT3fjQJu0OwXpUK5q5Sto0Iirfu/sA9zTzfjUTRETs2swbm5n1kv7+lvSDOEnS5qRmrg8BhzXzZmVHczUzsxoCtaQndUS8q+k3KXCCMDMbAS3oJ9dydRvuShoj6XXDubCksyQtyGM4VbZ9QdKjku7Iy1sL+6ZLul/SvZLeXNi+naRZed9pknqvP7uZdbcYUiumrlE3QUREP/C1YV77bGDvKttPjYipefklgKQtgP2BLfM5Z+R5sAHOBA4FNs1LtWuambVXlFy6SJmuf1dKetdQ/3KPiN8Cfy95+L7AhRGxJCIeBO4HdpC0ATA+Im6KiADOBfYbShxmZq3Qi08QZeogjiF16e6T9CypX0RExPhh3vOjkj4EzAQ+ERFPAhsCNxeOmZe3PZ9fD9xuZtYxgpa1YmqpMkNtrDmC9zsT+BLp8/wSqfjqP6jeGS/qbK9K0qGk4igmT57caKzWA9zvwVoigC57Oihj0CImJR+Q9Lm8vpGkHYZzs4h4PCL6ct3Gd4DKdeYBGxUOnQQ8lrdPqrK91vVnVLqvT5w4cTghmpkNS0S5pZuUqYM4A9gJOCCv/wM4fTg3y3UKFe8gTWcKcDmwv6RxkjYmVUbfEhHzgcWSdsx1IB8CLhvOvc3MmqoHK6nL1EG8NiK2lXQ7QEQ8KWmVwU6SdAGwK2nkwnmk8UJ2lTSV9DHNBf4zX3OOpIuAu4ClwBER0ZcvdTipRdSqwK/yYmbWQbqvArqMMgni+dzkNAAkTaTE1KMR8b4qm79X5/gTgBOqbJ8JbFUiTjOz9giIHqykLlPEdBpwCbBeHof8d8CJTY3KzKzbjMYipog4T9KtwB6kVkX7RcTdTY/MzKyr9N4TxKAJQtIPIuKDFIaVLWwz62hju+1PNutePfirVqYOYsviSq6P2K454ZiZdakeTBD1phydLmkxsLWkRZIW5/UFuKmpmdkylY5yZZYuUjNBRMSJuRf1KRExPiLWzMu6ETG9hTGamXW86C+3dJMyldTTJW0IvKx4fB6Mz8zMoKVPB5I+CZwCTIyIhYMc+xLSqBUB/DEi/lr2PmUqqU8iDcV9F1DpvBaAE4SZWaYW1UFI2gh4E/BwiWM/DBwP/IbUzOr/SfqfiDirzL3KVFK/A9g8IpaUuaCZ2ajT2j4OpwKfolxd8H8D20TE3wAkrQvcCIxYgngAWBlwgrCu8IeHNm53CDbqtKYCWtI+wKMR8aeSU/TMAxYX1hcDj5S9X5kE8U/gDknXUEgSEXFk2ZuYmfW88k8QEyTNLKzPiIgZlRVJVwMvqXLeccBngL2GENWjwB8kXZYj3Be4RdIxABHx9Xonl0kQl+fFzMxqKd9CaWFETKu1MyL2rLZd0quBjYHK08Mk4DZJO9SpeP5LXioqxVKl5vkp04rpHEmrApMj4t4yFzUzG1VaMGFQRMwC1qusS5oLTKvXiikivtjIPctMGPR24A7g13l9qiQ/UZiZFSjKLS2NSZom6RJJt0m6s7KUPb9MEdMXSG1orwOIiDvypD5mZlbR4i//iJhS4rDzSC2ZZjGUQrCsTIJYGhFPD6gx78FRR8zMes4TETHsEp8yCWK2pAOAsZI2BY4ktaM160hjWv0cbwaoMycM+ryk7wIDW6FeXObkMgniY6TmVUuA84ErgC8PPU4zsx7VuZMBHQy8ktSXrVLEFMDIJIiI+CcpQRw3zADNzHpfZyaI10TEq4d7cplWTFdJWquwvrakK4Z7QzOzXtSJrZiAmyVtMdyTyxQxTYiIpyorEfGkpPXqHG9mNvp05hPELsCBkh4kVRMIiIjYuszJZRJEv6TJEfEwgKSX0akfhZlZu3Tmt+LejZxcJkEcB/xO0vV5/Q3AoY3c1Myslyg6sxVTRDwkaRdg04j4vqSJwBplzy9TSf1rSdsCO5IeT44ebIIKM7NRpwOfICR9HpgGbA58n9Sa6YfAzmXOL/MEQU4IPx9mjGZNd9vDk194PbaNcdjo1aHdb94BbAPcBhARj0kqNVAflEwQZmY2iM5MEM9FREgpfUlafSgnD9rM1czMBlGyiWsbnjIukvRtYC1JHwGuBr5T9uSaTxCS1ql3YkT8vXSIZma9rjOfICYCPwEWkeohjgeqzjdRTb0ipltJb7la1XwAm5SP0cyst2nIY6W2xJsi4tPAVZUNkr4GfLrMyTUTRER4SG8zsy4k6XDgv4BNBsz/sCbw+7LXqVfEtG29EyPitrI3MTPreZ1VxHQ+8CvgRODYwvbFQ6keqFfE9LU6+wLYvexNzEbanx7eaLl1N221tmpPBXRNEfE08DTwvkauU6+IabdGLmxmNqq0IEFI+gLwEeCJvOkzEfHLZt1v0H4QklYDjgEmR8ShedKgzSPCHefMzEgteVpYSX1qRHy1FTcq0w/i+8BzwOvy+jw8YZCZ2fKi5NJFyiSIl0fEycDzABHxLNWbvi5H0lmSFkiaXdi2Tp5f4r7879qFfdMl3S/pXklvLmzfTtKsvO80DZgc28ys7VrbUe6jku7M37FrD3748JVJEM9JWpWc+yS9nMLcpnWczYpDzR4LXBMRm5LmSD02X3MLYH9gy3zOGZIq9Y5nkkaP3TQvDQ1fa2bWFOWfICZImllYlhsdW9LVkmZXWfYlfR++HJgKzKd+Y6KGlRmL6fPAr4GNJJ1HGgXwoMFOiojfSpoyYPO+wK759TnAdaQOG/sCF0bEEuBBSfcDO0iaC4yPiJsAJJ0L7EdqvmVm1jnKPx0sjIhpNS8TUaqns6Tv0ORBVMsM932VpNtYNtz3xxsY7nv9iJifrzu/MDPdhsDNhePm5W3P59cDt1eVM/GhAJMnT651mPWAMZ3UptCM1jRzlbRB5TuUNFLr7HrHN6rMnNTvAJZGxC9yy6WlkvYb4ThqDedRa3tVETEjIqZFxLSJEyeOWHBmZnUF0F9yaczJuU72TmA34OiGr1hHqSKmiLikshIRT+VJKC4dxv0er2RASRsAC/L2eUCx59Mk4LG8fVKV7WZmHaUVTxAR8cHm32WZMpXU1Y4Z7jwSlwMH5tcHApcVtu8vaZykjUmV0bfkR6nFknbMrZc+VDjHzKxz9GAz1zJf9DMlfR04nfT2PkYa6bUuSReQKqQnSJpHquw+iTQ++SHAw8C7ASJijqSLgLuApcAREdGXL3U4qUXUqqTKaVdQm1nH6cVqsTIJ4mPA54Af5fUrgc8OdlJE1BoDZI8ax58AnFBl+0xgqxJxmpm1z2hMEBHxDMuPBmhmZkVdWHxUhuektq5x7yMvfeH1Km2Mw2wgMXqLmMzMbBC9mCDK9IPYucw2M7NRrQdbMZVp5vr/Sm4zMxu9ejBB1JtydCfSEN8TJR1T2DUeT+BlZrZMh80oN1Lq1UGsAqyRj1mzsH0R8O/NDMrMrNu0cMKglqk35ej1wPWSzo6Ih1oYk5lZ9xllTxAV/5R0CmmuhhdVNkbE7k2Lysysy4y2IqaK80i9qN8GHEYaQ+mJumeYNcEYzyVonaoLK6DLKNOKad2I+B7wfERcHxH/QZobwszMKkZTK6aC5/O/8yX9G2m47Ul1jjczG1VGc0/qL0t6MfAJUv+H8TR5kgozs26j/t7LEGUG66vMefo0aQYjMzMr6sLiozLK1EGYmdkgFOWWhu8jfUzSvZLmSDq58SvW5sH6zMxGQgueICTtBuwLbB0RSySt18z7OUFYR5s7b4MXXq/cxjjMBtOiSurDgZMiYglARCxo5s0GTRCSxgHvAqYUj4+I/2leWGZmXSSGNNTGBEkzC+szImJGyXM3A14v6QTgX8AnI+KP5QMdmjJPEJeRKqhvBZY0KxAzs65W/gliYURMq7VT0tXAS6rsOo70nb02qS/a9sBFkjaJiKY8v5RJEJMiYu9m3NzMrBeMZD+IiNiz5n2kw4GLc0K4RVI/MIEmjW5RphXTjZJe3Yybm5n1jIhyS2MuBXYHkLQZadTthY1etJZ680HMIj00rQQcLOkBUhGTgIiIrZsVlJlZt2lRJfVZwFmSZgPPAQc2q3gJ6hcxva1ZNzUz6ykt6igXEc8BH2j+nZJ680E8BCDpBxHxweI+ST8APlj1RLMGPPboS5dbH+sRXK1LqK/dEYy8MpXUWxZXJI0FtmtOOGZm3akXB+urWUktabqkxcDWkhZJWpzXF5CavpqZGeQippZUUrdUzQQRESdGxJrAKRExPiLWzMu6ETG9hTGamXW8Vo3F1Eplipg+I+mdwC6kPHlDRFza1KjMzLpNl335l1EmQZwOvAK4IK8fJulNEXFE88IyM+seo3nCoDcCW1Xa2ko6B5jV1KjMzLpJxOicMAi4F5gMPJTXNwLubFpENur8tdC0dWCl2BjcztW6RO/lh1IJYl3gbkm35PXtgZskXQ4QEfs0Kzgzs24xWouYjm96FGZm3SyA0VjEFBHXS3oZsGlEXC1pVWCliFjc/PDMzLpE7+WHwUdzlfQR4CfAt/OmSaQRBYdN0lxJsyTdUZk4Q9I6kq6SdF/+d+3C8dMl3Z/nYX1zI/c2M2sG9UeppZuUGe77CGBnYBFARNwHjMQ8qLtFxNTCxBnHAtdExKbANXkdSVsA+5OG/NgbOCMP92Fm1jF6saNcmQSxJI8gCICklWjOw9S+wDn59TnAfoXtF0bEkoh4ELgf2KEJ9zczG54YwtJFyiSI6yV9BlhV0puAHwM/a/C+AVwp6VZJh+Zt60fEfID8b+UpZUPgkcK58/I2M7OOkDrKRamlm5RpxXQscAipc9x/Ar8EvtvgfXeOiMckrQdcJemeOsdWawhf9VPOyeZQgMmTJzcYojXLE48tn9/Hyn0drAf0tzuAkVemFVO/pEuBSyNiROY9jYjH8r8LJF1CKjJ6XNIGETFf0gakUWMhPTFsVDh9EvBYjevOAGYATJs2rbtStZl1tVY8HUj6EbB5Xl0LeCoipjbrfvWG+5akL0haCNwD3CvpCUkN9YuQtLqkNSuvgb2A2cDlwIH5sANZNqT45cD+ksZJ2hjYFLgFM7NOEZH6QZRZGrpNvDc37pkK/BS4eCTCr6XeE8RRpNZL2+fKYSRtApwp6eiIOHWY91wfuESpWGEl4PyI+LWkPwIXSToEeBh4N0BEzJF0EXAXsBQ4IiJ6cO4mM+tmrWyhpPQF+h5g92bep16C+BDwpohYWNkQEQ9I+gBwJTCsBBERDwCvqbL9b8AeNc45AThhOPczM2uJ1lZAvx54PHc7aJp6CWLlYnKoiIgnJK3cxJjMzLpLgMpXUk+odBDOZuT6UwAkXQ28pMp5x0VEpej9fSybgqFp6iWI54a5z8xs9Cn/BLGw0EG4ymViz3on575o7wS2Kx/c8NRLEK+RtKjKdgEvalI81qOeemxZQ7SVS3W/MesyrSth2hO4JyLmNftGNRNERHg4CzOzktTfso4Q+9OC4iUo11HOzMzqCVrWUS4iDmrNnZwgzMwaJrpvGI0ynCDMzEaCE4SZmVXlBGFmZisIUJ8ThFlNz8x/2XLrfYW/qMZUHZR3RR7Z1bqWnyDMzGxF4QRhZmZVBE4QZmZWw2icMMjMzAbnfhBmZraiAPp67xHCCcLMrGGupDYDYMn8TV543U+xKevyo7SOcYtVG02cIMzMrConCDMzW0EA/U4QZma2goBwJbWZmQ3kVkxmZlZTD9ZBeHJgM7OREFFuaYCkqZJulnSHpJmSdhih6KtygjAza1jJ5ND4U8bJwBcjYipwfF5vGhcxjTL9f91s6OcMGGRmrJb9XTG24YjMekAA/S2pgwhgfH79YuCxZt7MCcLMbCS0JkEcBVwh6aukEqDXNfNmThBmZg2LofSDmCBpZmF9RkTMqKxIuhp4SZXzjgP2AI6OiJ9Keg/wPWDPYQY9KCcIM7NGBUT5fhALI2JazUtF1PzCl3Qu8PG8+mPgu6VjHAZXUpuZjYT+KLc05jHgjfn17sB9jV6wHj9BmJmNhNb0g/gI8A1JKwH/Ag5t5s2cIMzMGhXRkkrqiPgdsF3Tb5T1bIL4860P8KYx715xh8YMWFXVfRo7oAHn2Or7tMoqyx+3UuG8cQP2jRv3wst40covvO5fbfnjlq62bN8/Ji3b99Q+zyx33E07ffuF12uPWY1mGTiMt5mtKPr62h3CiOvZBGFm1jqeMMjMzKrxcN9mZlZTDw733TWFy5L2lnSvpPslHdvueMzMKgKI/ii1dJOuSBCSxgKnA28BtgDeJ2mL9kZlZpZFnjCozNJFuqWIaQfg/oh4AEDShcC+wF1tjcrMLHMrpvbZEHiksD4PeO3AgyQdyrKOI0uujp/MXuFKA5/waiX054ceZBUTgIUjciWAc1e8eFviGJ5OiAE6I45OiAE6I45OiAFg80ZOXsyTV1wdPyn7X7IT3m8p3ZIgVGXbCoV5ecCrGQCSZtYb76QVOiGGTomjE2LolDg6IYZOiaMTYqjE0cj5EbH3SMXSSbqiDoL0xLBRYX0STR4H3cxstOuWBPFHYFNJG0taBdgfuLzNMZmZ9bSuKGKKiKWSPgpcQZrE7KyImDPIaTMG2d8KnRADdEYcnRADdEYcnRADdEYcnRADdE4cHUXRg93Dzcyscd1SxGRmZi3mBGFmZlX1XIJo15Acks6StEDS7MK2dSRdJem+/O/aTY5hI0nXSrpb0hxJH291HJJeJOkWSX/KMXyx1TEMiGespNsl/bxdcUiaK2mWpDsqzSnb8LuxlqSfSLon/37s1OLfi83z+68siyQd1aafx9H5d3O2pAvy72xbfj87XU8liDYPyXE2MLAt9LHANRGxKXBNXm+mpcAnIuJVwI7AEfn9tzKOJcDuEfEaYCqwt6QdWxxD0ceBuwvr7Ypjt4iYWmjz3+o4vgH8OiJeCbyG9Jm0LIaIuDe//6mkCW/+CVzSyhgAJG0IHAlMi4itSI1e9m91HF0jInpmAXYCriisTwemt/D+U4DZhfV7gQ3y6w2Ae1v8eVwGvKldcQCrAbeRer23PAZSf5lrSHP3/rxdPxNgLjBhwLaWxQGMBx4kN0ppRwwD7rsX8Pt2xMCyURnWIbXi/HmOp63/Vzt16aknCKoPybFhm2IBWD8i5gPkf9dr1Y0lTQG2Af7Q6jhysc4dwALgqohoeQzZ/wGfYvkBVdoRRwBXSro1DwfT6jg2AZ4Avp+L274rafUWx1C0P3BBft3SGCLiUeCrwMPAfODpiLiy1XF0i15LEKWG5Oh1ktYAfgocFRGLWn3/iOiLVJQwCdhB0latjkHS24AFEXFrq+9dxc4RsS2p6PMISW9o8f1XArYFzoyIbYBnaFMRSu7oug/w4zbdf23SQJ8bAy8FVpf0gXbE0g16LUF02pAcj0vaACD/u6DZN5S0Mik5nBcRF7crDoCIeAq4jlQ30+oYdgb2kTQXuBDYXdIP2xAHEfFY/ncBqdx9hxbHMQ+Yl5/kAH5CShjt+L14C3BbRDye11sdw57AgxHxREQ8D1wMvK4NcXSFXksQnTYkx+XAgfn1gaQ6gaaRJOB7wN0R8fV2xCFpoqS18utVSf8h72llDAARMT0iJkXEFNLvwW8i4gOtjkPS6pLWrLwmlXfPbmUcEfFX4BFJlRFL9yANld/SzyJ7H8uKl2hDDA8DO0paLf9/2YNUYd+Oz6LztbsSZKQX4K3An4G/AMe18L4XkMo0nyf9xXYIsC6pkvS+/O86TY5hF1KR2p3AHXl5ayvjALYGbs8xzAaOz9tb+lkMiGlXllVSt/pnsgnwp7zMqfxOtiGOqcDM/HO5FFi7DTGsBvwNeHFhW8t/L4Avkv5omQ38ABjXzt/PTl481IaZmVXVa0VMZmY2QpwgzMysKicIMzOrygnCzMyqcoIwM7OqnCBGEUlTVBhtdgSvO03SaYMcs5ak/xrpew9G0o0NnHu2pH8vu71RlVjzz+mAYZx/kKRvjnRcNno5QVjDImJmRBw5yGFrAS1PEBHxulbfc7gKsU4BhpwgzEaaE8ToM1bSd/J4+Ffm3s7LyX8hf0vSDZL+nMc1qsz18P08t8HtknbL23fVsvkWvqA0N8Z1kh6QVEkcJwEvz3MBnDLgflPyHAUrxCVpqqSbJd0p6ZLKOP35+qdK+m0+d3tJF+fx/L9cuPY/CjFep2VzIpyXe9Ii6XhJf1SaH2BGZXsZkvbIn8Ws/L7H5e1zJX1R0m153yvz9olK8w3cJunbkh6SNKEYa/6sXp8/q6MHPhlI+rmkXfPrg/PP6HrS8CIU7vPT/L7+KOmFfWZlOUGMPpsCp0fElsBTwLtqHDcFeCPwb8C3JL0IOAIgIl5NGjLhnLx9oFcCbyaNOfR5pfGhjgX+EmlOgP8eQlznAp+OiK2BWcDnC+c8FxFvAL5FGhrhCGAr4CBJ61a5xzbAUaS5QjZh2RfqNyNi+0jzA6wKvK3GZ7Kc/N7PBt6bP5OVgMMLhyyMNEjfmcAn87bPk4b92JY0LtPkKpc+Frghf1an1rn/BqRewTuThnUvzn3yDeDUiNie9Fl+t8x7Mityghh9HoyIO/LrW0mJoJqLIqI/Iu4DHiB96e9CGpqAiLgHeAjYrMq5v4iIJRGxkDTo2frDiUvSi4G1IuL6vP0coDgSamWcrVnAnIiYHxFLcrzFQRsrbomIeRHRTxqGZErevpukP0iaRZo7YssS8QJsnuP+c434KoMlFj/nXUiDBxIRvwaeLHmval4LXBdp4LnngB8V9u0JfFNp2PXLgfGVMaHMylqp3QFYyy0pvO4j/cVczcAxWILqw6mXuUeZ37OycVU7p3/A+f017rlCXPkp4AzSDGOPSPoCUO2pqJrBPo/K/YqfQeniq4KlLP/HXDG+WmPljAF2iohnh3E/M8BPEFbbuyWNkfRyUnHMvcBvgfcDSNqMVDxyb8nrLQaG9BdsRDwNPCnp9XnTB4Hr65wyHJUv24VK82gMpXXSPaQnnVfk9TLx/Q54D4CkvUiD5g008LOaC0zNP4+NSEV3kCaD2lXSurkY792Fc64EPlpZkTS1zBsyK/IThNVyL+nLbn3gsIj4l6QzSPURs0h/1R4UEUvK1OlGxN8k/V6pme2vatRDVHNgvudqpKKjg4fzZurE9ZSk75CKqeaShowve+6/JB0M/FjSSvncbw1y2heBCyS9l/T5ziclhKI7gaWS/kSq4/g/0pShs0gjkN6W7z8/P/HclK9zG2mOZUjzLp8u6U7S//PfAoeVfW9mgEdztRVJOps0PPZP2h1Lr8mtnPoiYqmknUizvE1tc1hmVfkJwqy1JgMXSRoDPAd8pM3xmNXkJwgzM6vKldRmZlaVE4S1Re49/WzuLVx1jCgVxnga2Ju4STEdlSvDR+Ja75V0v3IPc7Nu5ARh7fSXehW0Jcd4GklHkeZNLk3S2GrbI+JHwIdHICaztnGCsI4iaZM8ttH2KozxNOCYl0m6Jo/PdI2kyXn72ZLOlHSt0jhQb8zjI92dW2ZVzt9L0k15PKQfS1pDacyolwLXSrq21nF5+1yl8Zt+R+ovcqSku3I8F7biczJrBScI6xiSNgd+ChwcEfX6I3wTODePz3QeUBxqfG3ScBlHAz8DTiUNnfFqpYH/JgCfBfbM4yHNBI6JiNOAx4DdImK3WscV7vOviNglIi4kjZ20TY7HfQ2sZ7iZq3WKiaQB994VEXMGOXYn4J359Q+Akwv7fhYRkTvzPR4RswAkzSGNhzSJNKjd73MHv1VIHc0G2nGQ44rjHt0JnCfpUuDSQWI36xpOENYpngYeIY1MOliCGKjYVnuw8Zn6gKsi4n2DXFODHPdM4fW/kQbp2wf4nKQtI2Jp2eDNOpWLmKxTPAfsB3xIg8+mdiOwf379ftL4RmXdDOxcGT9J0mp5XClYfgykese9IHd42ygirgU+RZoYaY0hxGPWsfwEYR0jIp5RmpzoKknPkJ4qqjkSOEvSfwNPMITxmSLiCUkHkcZDGpc3fxb4MzAD+JWk+bkeotZxRWOBH+ahyUWag+GpsvGYdTL3pLa2kDSFNN7TVu2OpVmUZn37ZESUmoDIrNO4iMnapQ94cZ7Qpufk0VrPoLEJgczayk8QZmZWlZ8gzMysKicIMzOrygnCzMyqcoIwM7OqnCDMzKyq/w//PUu3eLHKWgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ds_z['temp'].isel(Time=-1).plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/graemem/opt/anaconda3/envs/om4labs/lib/python3.8/site-packages/nc_time_axis/__init__.py:295: CFWarning: this date/calendar/year zero convention is not supported by CF\n", + " cftime.num2date(dt, self.date_unit, calendar=self.calendar)\n", + "/Users/graemem/opt/anaconda3/envs/om4labs/lib/python3.8/site-packages/nc_time_axis/__init__.py:344: CFWarning: this date/calendar/year zero convention is not supported by CF\n", + " return cftime.date2num(ticks, self.date_unit, calendar=self.calendar)\n", + "/Users/graemem/opt/anaconda3/envs/om4labs/lib/python3.8/site-packages/nc_time_axis/__init__.py:118: CFWarning: this date/calendar/year zero convention is not supported by CF\n", + " dt = cftime.num2date(x, self.time_units, calendar=self.calendar)\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ds_rho0['e'].isel(rho0_i=5).plot()\n", + "# plt.gca().set_ylim([-100,10])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.DataArray 'rhopot0' (rho0_l: 30)>\n",
+       "array([1027.7295, 1027.7295, 1027.7295, 1027.7295, 1027.7295, 1027.7295,\n",
+       "       1027.7773, 1027.7948, 1027.82  , 1027.8435, 1027.8661, 1027.8884,\n",
+       "       1027.909 , 1027.9277, 1027.9459, 1027.9626, 1027.9779, 1027.9923,\n",
+       "       1028.0051, 1028.017 , 1028.0275, 1028.0367, 1028.0448, 1028.052 ,\n",
+       "       1028.059 , 1028.0667, 1028.0728, 1028.0758, 1028.0758, 1028.0758],\n",
+       "      dtype=float32)\n",
+       "Coordinates:\n",
+       "    xh       float64 79.5\n",
+       "  * rho0_l   (rho0_l) float64 1.013e+03 1.027e+03 ... 1.028e+03 1.029e+03\n",
+       "    Time     object 0001-01-15 00:00:00
" + ], + "text/plain": [ + "\n", + "array([1027.7295, 1027.7295, 1027.7295, 1027.7295, 1027.7295, 1027.7295,\n", + " 1027.7773, 1027.7948, 1027.82 , 1027.8435, 1027.8661, 1027.8884,\n", + " 1027.909 , 1027.9277, 1027.9459, 1027.9626, 1027.9779, 1027.9923,\n", + " 1028.0051, 1028.017 , 1028.0275, 1028.0367, 1028.0448, 1028.052 ,\n", + " 1028.059 , 1028.0667, 1028.0728, 1028.0758, 1028.0758, 1028.0758],\n", + " dtype=float32)\n", + "Coordinates:\n", + " xh float64 79.5\n", + " * rho0_l (rho0_l) float64 1.013e+03 1.027e+03 ... 1.028e+03 1.029e+03\n", + " Time object 0001-01-15 00:00:00" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds_rho0['rhopot0'].isel(Time=-1,xh=-1)" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1027.7, 1029.0)" + ] + }, + "execution_count": 99, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ds_rho0['h'].cumsum('rho0_l').plot(robust=True)\n", + "plt.gca().set_ylim([1027.7,1029])" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1027.7, 1029.0)" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaYAAAEiCAYAAACyUHbNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA7/0lEQVR4nO3deZxcVZ3//9c7CSSQAEkgYceAbAKyaEQQnZFVZGRRlAEXFnFQkEHEDVRE+DL+wrjiihGRKIhGhIGREVkUQRQ1IZAQEQPIEhIIhDVhS7rfvz/OKfp2par6dld3daX788zjPqrq3nPv/VR1p06fc8/9HNkmhBBCaBcjBjuAEEIIoSgqphBCCG0lKqYQQghtJSqmEEIIbSUqphBCCG0lKqYQQghtJSqmAICk+ZLeOthxhBBCVEzDhKRlhaVT0guF1++zvaPtmwY7znqUnCdpaV7+W5IK26dI+p2k5yX9XdJ+Vfu/V9KDkpZL+h9JEwvbjpD0x7zvTSViGS3pIknPSnpU0mlV26dLuid/zseWON6ukmbn88+WtGth206SfiPpCUk93nRY4nOYJOmnkp6W9JSkS5t4n3XjrnO8j+fjPJOPO7qwbaKkK/PP50FJ7+3pvYahKyqmYcL2uMoCPAQcXFhX98upjZwAHAbsAuwMvAP4cGH7ZcAcYH3gc8DlkiYBSNoR+D7wAWBD4Hngu4V9nwS+AUwrGcsXgW2AVwF7A5+WdGBh+53AScDtPR1I0prAVcAlwARgBnBVXg+wApgJHF8ytrqfQ3YF8GiOfTLwlQbH+iJ13meJuKvf59uA04F9gSnAVsDZhSLfAV4m/XzeB3wv/9zCcGQ7lmG2AA8A+9VbR/pC+gXpS+c5YB6wLXAGsAR4GDigsO96wA+BxcAjwLnAyH6O+Y/ACYXXxwO35efbAi8B6xS23wJ8JD//EvDTwrZXk74E16k6x4eAm0rE8kjV+/9/wM9qlPsDcGwPxzogH0+FdQ8BB1aV2zr9d214rJ4+hwPyz7nUz6bR+ywbd2HbT4EvFV7vCzyan4/NP49tC9t/AkwbzP8nsQzeEi2mUM/BpC+HCaS/wH9DamFvCpxDaoFUzABWkr48dyN9aX2o1kFzl9rTDZYt6sSzI6klUnFnXlfZdr/t5xpsf2Vf2/eRvwgbfQB14p8AbNIglt7aEZhru9hNN7ePx+vpc9gDuAeYkbtD/yrpXysFJZ0u6Vf5eU/vs2Hckt4s6emq2KqPtaGk9Uk/hw7b/6hzrjDMRMUU6rnF9m9sryS1niaR/oJdAfwMmCJpvKQNgbcDp9pebnsJ8HXgyFoHtf1T2+MbLA/ViWcc8Ezh9TPAuHydqXpbZfs6dfat3t4b4wr7N3usyvH6M7ZGx9qM9EfD74CNgK+Sut82ALA9zfY7Cseq7F/rWA3PZfsPtsc3iK3yfJ0ScYdhJiqmUM9jhecvAE/Y7ii8hvSF8ipgDWBxpdVDak1N7ud4lgHrFl6vCyzLf7FXb6tsf67OvtXb65J0QWGQyGfzsSr79+pY+XjFQShbNBNbDT0d6wXgAds/tL3C9s9I3bJ71TlWZf9ax+pt3LV+fuTy/fkZhCEgKqbQrIdJ1zU2KLR61rVdsxtG0vuqvpyrl3pdefNJAx8qdsnrKtu2krROg+2v7CtpK2A0UOw6qsn2R9w1SORLtp8iXUurF0tPxxtXWB7K++1cHGFIGtxR6nhVevoc5gKlphMo8T57G3etn99jtpeSfg6jJG1T51xhmImKKTTF9mLgOuCrktaVNELSq4vXLqrKX1r15Vy91OvK+zFwmqRNJW0CfAK4OB/zH8AdwFmSxkh6J+lL8pd530uBgyW9RdJY0jWyKyrXYiSNlDQGGAWMyMdYo8Hb/jHweUkTJG0P/Ecllny8NfPxBKyRj1fv/9pNQAdwSh6efXJe/9t8LOVjrZlfjykOsy4q8TlcCUyQdEx+z+8mXTO8tQ/vs2HcdY51vKQd8vWrz9P181tOGi14jqSxkvYCDiVd4wzD0WCPvoil9QvlRuVdUti2H6kLqPJ6FOkv783y6/WA7wELSdcG5gBH9nPMAv6bNLT7yfy8OCJsCunL8gXSBf7q9/de0qix5aRhzhML247N76e4XNwgltHARcCzpC7P06q231TjeG9tcLzdgNk59tuB3areV/WxHmhwrJ4+h7eQRlkuA2YBbyls+yzw6168z0Zxv4XU1Vosf1o+zrPAj4DRhW0Tgf/JP5+HgPcO9v+TWAZvUf6lCCGEENpCdOWFEEJoK21TMeUUJUsk3VVYN1HS9ZIW5McJef3+SilQ5uXHfQr7/LukuUq53/67wfnOkHSvUuqYtw3suwshhFBW21RMpAuhB1atOx240fY2wI35NcATpJQ6rwWOIV8kzTfrfRnY12lU2IaS9q0+kaQdSPfZ7JjP+V1JI/v9HYUQQui1tqmYbN9MuqhddCgpqwD58bBcdo7tRXn9fKAyUmkr4B+2H8/bbgAOr3G6Q0mpVV6y/U/gXmD3/novIYQQ+q5tKqY6NnQajkx+rHXT5uHAHNsvkSqY7ZUyLI8iVWSb19hnU9L9NxUL87oQQmhbt1y9ue/47auG/Ii1UYMdQDNy9uHzSGlWsP2UpBOBnwOdpMSfW9Xatca6mj9sSSeQMlszduzY12+//fb9EHkIYaibPXv2E7Yn9VyyHElr77T9mowbO4LbZmuE7c7+Ona7afeK6TFJG9teLGljUmZrACRtRrph8GinpJwA2P5f4H9zmRNINwFWW0j3ltRmwKIa5bA9HZgOMHXqVM+aNau5dxRCGBYkPdifxzv39PWXrzVGPLhwJScdt14Htf/AHhLavSvvatLgBvLjVQCSxgPXAGfY7nbXuqTJ+XECaU6cC+sc98h8x/qWpDln/jIQbyCEEJolafLlv1rGiceux+c/PpGvfu8pckaQIaltWkySLgPeCmwgaSFwFmnitpmSjifdDf6eXPxk0hQLZ0o6M687wCmz9fmSKjm5znFOpS/pEGCq7S/Yni9pJvA30nQNH3VXgtIQQmgrJx233mNvfuNajB49gtGj4ah3rsN736UXGKKtpsj80AvRlRdCKEvSbNtT++E42+71hjH3/P6qzajkzH3xxU7e9I6HuXP+yxs4JcIdUtqmxRRCCGFV7zxo7D2nfGjCK5USwJgxI/j4hydwx10vPcEQbDW1+zWmEEIYtm65enN3dMC/7LnWKtved/g63Db7xco0LkNKtJhCCKENSdJb3jiGC768Yc3tI0aIcz6zPhde+sx9DLFWU7SYQgihDc38wUadO2w3mu23WbNumX3fsjbPLevktl9vMaQGC0TFFEIIbeir33uaL3xiYo/lvvTZDfivb1Rnc1u9RcUUQght6M+3v3j75Mkj6Ozh37Zbj+JX1y2/bbDj7U9xjSmEENpUR4msQx1D8JafqJhCCKFNddZO4dnrMqubqJhCCKFNddJziykqphBCCC2zokRX3oroygshhNAqHSVaQ2XKrG6iYgohhDYV15hCCCG0lTLddNGVF0IIoWWiKy+EEEJb6ShR55Qps7qJiimEENrUihK5WVe0II5Wi4ophBDaVGeJ1lCZMqubqJhCCKFNdZRoMXW0II5Wi4ophBDaVJmKqedbcFc/UTGFEEKbWuGeJ4CI4eIhhBBapqPEzEQxXDyEEELLdLpEV97Qq5eiYgohhHb1skf2WGYoduXFDLYhhNCmOhlRammGpImSrpe0ID9OqFPuIklLJN3V1AlLiIophBDaVAcqtTTpdOBG29sAN+bXtVwMHNjsycpom4qpVm1cryaXtL+k2ZLm5cd9CvscldfPlXStpA1qnGsNSTNyubslndGadxlCCOWt8MhSS5MOBWbk5zOAw2oVsn0z8GSzJyujbSomatfG9WryJ4CDbb8WOAb4CYCkUcD5wN62dwbmAifXONd7gNF5/9cDH5Y0pV/fTQghNKmDESUWAUyWNKuwnNCL02xoezFAfpw8EO+lN9pm8IPtm2tUDocCb83PZwA3AZ+xPadQZj4wRtJo0r1mAsZKWgqsC9xb63S5zChgLeBl4Nn+eSchhNA/Okrcx5STuC6xvWe9MpJuADaqselzfY1tILVNxVRHt5pcUq2a/HBgju2XACSdCMwDlgMLgI/W2OdyUqW3GFgb+Ljtmk3U/JfHCQBbbLFFc+8mhBB6oczAhjKZH2zvV2+bpMckbZy/YzcGlvQixAHRTl15vSZpR+A84MP59RrAicBuwCakrrxa1492J6WY2gTYEviEpK1qncP2dNtTbU+dNGlS/7+JEEKo42WP7HHph2tMV5MuiZAfr2r2gM1q9xZT3Zpc0mbAlcDRtu/Lq3cFqLyWNJPaI0zeC1xrewWwRNKtwFTg/obRrLiLzke3be4dNenRjmVNH6N4p/jIqhE9xb9UyubganTneXGumPtXrlu1retsK+j6z3X/S90bxi96jVee3/t817ZHnh/frdyiZV3Hf/qZsV3neXaNbuVGPd31a7/mM13rxz3S/X2MfrorPeaaz6585fnIF1Z2K6cVXeX0QvdJCPRy4fWK4vPux2Bl12t3dNQvV7hnpVu5qrssu21z77Opdds/DJrOEl15/XCD7TRgpqTjgYdI1+CRtAlwoe2D8uvLSJdWNpC0EDjL9g+bPnsN7V4xVWryaRRqcknjgWuAM2zfWij/CLCDpEm2Hwf2B+6ucdyHgH0kXULqytsD+MYAvYcQQuiTcimJmmN7KbBvjfWLgIMKr49q8lSltU1XXq6N/wRsJ2lhrr2nAftLWkCqZKbl4icDWwNnSrojL5PzB3k2cLOkuaQW1Jfy8Q+RdE7e/zvAOOAu4K/Aj2zPbckbDSGEklo0XLzttE2LqUFtXKsmPxc4t85xLgAuqLH+alILDNvLyM3VEEJoV70YlTektE3FFEIIobvOUvMxNZ35oe1ExRRCCG0qWkwhhBDaSpnrRytLTI2xuomKKYQQ2lQrRuW1o6iYQgihTbXoPqa20+O7lnRjmXUhhBD6VwwXryJpDOnm0w3ydBOVjsx1Sal8QgghDKAycy31w3xMbadRV96HgVNJldBsuiqmZ0k3qIYQQhhApbryWhBHq9WtmGyfD5wv6T9tf6uFMYUQQqDcqLyO4Tgqz/a3JO0E7ACMKaz/8UAGFkIIw13cx1SHpLNIGWV3AP4PeDvwByAqphBCGECdJVpDZcqsbsokcX03KV/do7aPA3YBRg9oVCGEEEpOrd5cLm5JEyVdL2lBfpxQo8zmkn4n6W5J8yV9rKmT9qDMO3rBdiewUtK6pDmRak6qF0IIof+s9MgSS9OTRJwO3Gh7G+BGas9htxL4hO3XkKYJ+qikHZo9cT1l3tGsPP/RD0ij824H/jJQAYUQQkg6rFJLkw4FZuTnM4DDqgvYXmz79vz8OdI8d5s2e+J6ygx+OCk/vUDStcC6MXdRCCEMvF5cY5osaVZh9XTb00ueZkPbiyFVQJImNyosaQqwG/DnksfvtV6lJLL9wADFEUIIoUq54eIALLG9Z70ykm4ANqqx6XO9iUfSOOCXwKm2n+3Nvr0RufJCCKFN9deoPNv71dsm6TFJG+fW0sakcQS1yq1BqpQutX1FjydtQttMrR5CCKG7To8otTTpauCY/PwY4KrqApIE/BC42/bXmj1hT8okcf2KpB0HOpAQQgjddaJSS5OmAftLWgDsn18jaRNJ/5fL7AV8ANhH0h15OajZE9dTpivv78B0SaOAHwGX2X5moAIKIYSQrOgscY2pyWR5tpeS7lWtXr8IOCg//wO0Lltsjy0m2xfa3gs4GpgCzJX0U0l7D3RwIYQwnHVapZahplTnpKSRwPZ5eQK4EzhN0s8GMLYQQhjWWtSV13bK5Mr7GnAw8FvgS7YrN9eeJ+meQrmrS5zvSdvH9iXQEEIYbla2oCuvHZW5xnQX8Hnbz9fYtnvh+WuADzU4joh5nEIIobRyQ8GHYYsJeJ/ti4orJN1oe9+qQRCfs/37RgeSdHaDbRcB7yDdKLZTXjcR+Dnp2tYDwBG2n5JUGTmyJvAy8Cnbv837HAV8FjCwCHi/7SdqnG9n4PukGXk7gTfYfrFR/CGE0EpluumGYlde3WtMksbkimEDSRNyBtqJOR3FKlOr257Z08l6KHMxcGDVunrJBZ8ADrb9WtK4+5/kmEcB5wN7294ZmAucXOO9jQIuAT5ie0fStB4reoo/hBBaaWXniFLLUFN2avXbC+trTq0uaW1SJWDgW8CRwLtIw83Psb2sUSC2b86VXtGhpEoDUnLBm4DP2J5TKDMfGCNpNKnlI2CspKWk1tC9NU53ADDX9p353EsbxRZCCIMh5mOqYvt821sCn7S9ZWHZxfa3a+xyMbAhsCVwDTAV+AqpovheH+PrllwQqJVc8HBgju2XbK8ATgTmkbrxdiDdrVxtW8CSfiPpdkmf7mN8IYQwYIbrcPG6LSZJ++TrNo9Ielf19hq5kra1fUROXbEY2M+2Jd1CGl7e73JGivNILaBKLqcTSZlv7ye13M4Azq3adRTwZuANwPPAjZJm276xxjlOAE4A2GLTSC0YQmid4XqNqdE37b+ShogfXGObgZpJ/HJl9H+2XXjd11np6yYXlLQZcCVwtO378upd8znvy2VmUnvSq4XA7yuDInLajdeRrmNVv5/pwHSAqbuM6ev7CCGEXitz/aizc+h9LdWtmGyflR+PK3msWZLG2V5m+4OVlZJeDTzXx/gqyQWnUUgumCcuvAY4w/athfKPADtImmT7cVLep7trHPc3wKfzdbGXSZXw1/sYYwghDIi4xlSHpI9JWlfJhfmazAHV5Wx/qNYAh9x6eUuJ81wG/AnYTtJCScdTJ7kgaZDF1sCZhYSCk3Nup7OBmyXNJbWgvpSPf4ikc3JMTwFfA/4K3AHcbvuanmIMIYRWimtM9X3Q9vmS3kYafHAcKZnrdT3tKGm67RMq3XqN2D6qzqZayQXPZdXrRpVtFwAX1Fh/NakFVnl9CWnIeAghtKWOElNadPb89braKTMAvlIdHwT8KA+xLltFT+1TVCGEEFrSYsr3p14vaUF+nFCjzBhJf5F0p6T5jZIl9IcyFdNsSdeRKqbfSFqHdL9QGTVnQgwhhNAzW6WWJtVLZFD0ErCP7V1Il0gOlLRHsyeup0xX3vE5kPttPy9pfVJ3Xo9sV2dyCCGEUFKLBj/UTGRQLJAvx1TGEKyRlwHrQ+yxYrLdKekx0mi3MtnIpwKfA16Vj690GO/cbLAhhDCcdLRmuHi3RAaSaiUyqEx/NJs08Ow7tv/c7InrKVPRnAf8O/A3oCOvNnBznV0uBT5Fyr4wBBOyhxBCa5QZ15DLTJY0q7B6er4HEwBJNwAb1dj9c+VjcQewa75d50pJO9m+q+z+vVGmK+8wYDvbL5U85uN5BFwIIYQm9CLzwxLbe9YrY3u/etsk1U1kUOdYT0u6iZR0e9AqpvtJ/YllK6azJF1Iuoj2yj41UhiFEEJooEVdeTUTGRRJmgSsyJXSWsB+pHRwA6JMxfQ8cIek6ormlDrljyNNwb4GXV15dVMYhRBCqK0XXXnNmAbMzEkNHgLeAyBpE+BC2wcBGwMz8nWmEcBM279q+sx1lKmYut2YWsIueZ6kEEIITSgzFLzZ4eJ52p9aiQwWkW4TwvZcUnLsligzKm9GbrptYfueEse8TdIOtv/WfHghhDB8lenK8xBM4lomV97BpHxy1+bXu0pq1IJ6M6nr7x5JcyXNy3nrQggh9IJdbhlqynTlfRHYnXTTFbbvkLRlg/JxU20IIfSDcl15LQikxcpUTCttP5Pm/3tF3Y/C9oNNRxVCCKEl15jaUZmK6S5J7wVGStoGOAX448CGFUIIoUy6oaFYMZVJ4vqfwI6koeKXAc8Cpw5gTCGEECD1TZVZhpgyo/KeJ6WtKJ26IoQQQvNKdeWVnoVo9dGwxSTpmDxj7fK8zJJ0dA/7PCfp2arlYUlXStqqf8MPIYShq7NTpZahpm6LKVdApwKnAbeTsoS/DviyJGz/uM6uXwMWAT/N+xxJSh54D3ARXenVQwghNFLm+tEwu8Z0EvBO27+z/Yztp23/Fjg8b6vnQNvft/2c7WdzhtuDbP8cWGVmxBBCCLUN1/uYGlVM69p+oHplXrdug/06JR0haURejiju3rcwQwhh+HGnSi1DTaOK6YU+bnsf8AFS6vTH8vP357RGJ/c6whBCGK5iVN4qXlMnlZCARoMYnrZ9cLcdpC1tvwD8oQ8xhhDCsBQ32K7qNX085v9KervtZwEkvQb4BbBTH48XQgjDU5nW0HBqMTWRWuhLpMrp34DtgB+TuvdCCCH0RgtG5UmaCPwcmAI8ABxh+6k6ZUcCs4BHbL+jqRM3UCbzQ6/Yvgb4OnAdcDFwmO07+vs8IYQw5LXmGtPpwI22tyHNPH56g7IfA+5u+ow96LeKSdK3JH1T0jeBfUgj9/4J/Gde19P+F0laIumuwrqJkq6XtCA/Tsjr95c0O0+pMVvSPoV9jqpMtSHpWkkbNDjnFpKWSfpkM+89hBAGhFVuac6hwIz8fAZwWK1CkjYD/g24sNkT9qQ/W0yzgNmF5cvALwuve3Ixq06ZUa8mfwI4OM+UewzwEwBJo4Dzgb1t7wzMpfFIwK8Dvy4RWwghtJw7yy3A5JyZp7Kc0IvTbGh7MUB+nFyn3DeATwOdZQ8saSNJh0g6WNJGZfdrlPlhHrUbiQKcv/hfYXtGjbKl2b5Z0pSq1YfSlSliBmlOqM/YnlMoMx8YI2k06QMTMFbSUlKr7d5a55N0GHA/sLyZuEMIYcCUv8a0xPae9YpIuoGUgadaqRyokt6RzzFb0ltL7vMh4AvAb0nfy9+SdI7ti3rat9GovF5d2JI03XbDWrpMmSrdanJJtWryw4E5tl/K5zgRmEeqcBYAH60Rx1jgM8D+QMNuvPyXxwkAW2xaZpaQEELoH+qnUXm296t7DukxSRvn79iNSfegVtsLOETSQcAYYF1Jl9h+f4PTfgrYzfbSfJ71SVMm9b1i6sOovMMkvdhgu4C9e3nMhiTtCJwHHJBfrwGcCOxGag19CzgDOLdq17OBr9teVjUB4ipySqXpAFN3GTMEB2aGENpWa4aLX026JDItP161yinsM0jfpeQW0yd7qJQAFgLPFV4/BzxcJqAemwCS9iB9wb8GWBMYCSy3XZ2W6FMlzndLmaAK6tbk+ULclcDRtu/Lq3cFqLyWNJPaI0zeCLxb0n8D40lplF60/e1exhdCCAOnTLqh5lMSTQNmSjoeeAh4D4CkTYALbR/Ux+M+AvxZ0lWk6vNQ4C+STgOw/bV6O5bpm/o2KUP4L4CpwNHA1tWFmr3GVEfNmlzSeOAa4AzbtxbKPwLsIGmS7cdJXXWrDG20/ZbKc0lfBJZFpRRCaDstaDHlrrZ9a6xfBKxSKdm+iXS9vyf35aWi0hJbp6cdS100sX2vpJG2O4AfSer3qdUlXUYa6LCBpIXAWdSpyUkj7bYGzpR0Zl53gO1Fks4Gbpa0AngQODYf/xBgqu0v9HfsIYQwIFbjzA+2z+7rvmUqpuclrQnckbu+FgNj+3rCemwfVWdTrZr8XFa9blTZdgFwQY31V5NaYNXrv9irQEMIoUXUmq68ASFpKmnU36so1DXVI7prKVMxfYB0Xelk4OPA5qSRcLUCGQlMs13melMIIYRGVuMWE3ApaezBPHpx7xOUqJgKo/NeII1ma1S2Q9LrJckeitNXhRBCKOnx3FPVa41usJ1p+4h6N9o2aI7NAa6S9AsKN6/avqIvAYYQwnC1OnflAWdJupCUteelysoydUGjFtPH8mNvM8hOBJaS8uW9EgsQFVMIIfTG6t2VdxywPbAGXV15peqCRjfYLs5PT7L9meI2SeeRMifU2u+4EgGHEELoyepdMe2S85n2WpkkrvvXWPf2eoUlbSvpxkqWcEk7S/p8X4ILIYThTC63tKnbJO3Qlx3rVkySTszXl7bLU0hUln+SsnbX8wNS6ooVALbnkm7QDSGE0BudJZf29GbSbUb35LpjnqRGdccrGl1j+ilpSoj/j+5pfZ6z/WSD/da2/ZeqHHQrywQTQgihS38lcR0k1dMYlVa3xWT7GdsP5BtfF5JaQAbGSdqiwTGfkPTqXBZJ7ybdlBtCCKE3WjNR4IDItxptDuyTnz9PyTkAyyRxPRn4IvAY3UdW1Bsu/lFSNu7tJT1CmsX2fWWCCSGE0EVluunatCtP0lmk/KrbAT8ijc67hDSFRkNlMj+cCmxXmVOjBNveL895NML2c5K2LLlvCCGEitW7K++dpCmIboeUFFZSjwlcoVyz6mHgmV4E88scxHLblbk4Lu/F/iGEEGjNqDxJEyVdL2lBfpxQp9wDeQDDHZJmlTj0yzkDUOWyTukcq2VaTPcDN0m6hu5373abS0PS9sCOwHqS3lXYtC5pxsMQQgi90ZoW0+nAjbanSTo9v655nyqwt+0nSh53pqTvA+Ml/QfwQdKo7R6VqZgeysuaealnO1KWiPHAwYX1zwH/USaYEEIIXVp0jelQ0pRDADNIcy3Vq5h6YxKpt+xZUv3wBaDuFO9FZZK4ng2pGWZ7eYNyV5Fy5O1p+09lTh5CCGHQbVjJ9JNnC59cp5yB6yQZ+L7t6T0cd/+cNej6ygpJX6VEpVdmVN6ewA+BccAWknYBPmz7pDq73Cvps8AUus/B8cGezhVCCKGgfFfe5KrrPtOLFYekG4CNauz9uV5Es1cewDAZuF7S323fXF1I0onAScBWVTfUrgPcWl2+ljJded8A3kaeZM/2nZL+pUH5q4BbgBuAjjJBhBBCWFWprrxUMS2xvWfdInbdLjRJj0naOLeWNgaW1DnGovy4RNKVwO7AKhUTfU/O8IqyU6s/XJXJoVGFs3Z10tcQQgh90JrBD1cDxwDT8uNV1QWqbv8ZCxwAnFMzHPsZ0kjuerOS96jUcHFJbwIsaU1JnwTublD+V5IO6mtAIYQQkhYlcZ0G7C9pASlp9zQASZtI+r9cZkPgD5LuBP4CXGP72qbPXEeZFtNHgPOBTUmpia4j9R/W8zHgs5JeBl4GRLrpdt0mYw0hhGGlFaPycvKEfWusXwQclJ/fD+zS3JnKK1MxbWe7W0ohSXtR5yKW7VJ39oYQQujB6p35oc/KdOV9q+Q6AJS8X9KZ+fXmknbva4AhhDBsueQyxNRtMeVh4m8CJkk6rbBpXWBkg2N+l9S43Af4f8Ay4DvAG5qONoQQhpHVfNqLPmvUlbcm6d6lUaTx5xXPAu9usN8bbb9O0hwA209JapQxIoQQQi2rcXbxZtStmGz/Hvi9pIttP5izwtr2sh6OuULSSLoS902ixEcn6SJSSqMltnfK6yYCPyfdrPsAcESu6CojR9YkDbD4lO3f5n2OAj6bz78IeH91bqdG+4cQQrso02LyEGwxlbnGtE5u/dwFzJc0W9JODcp/E7iSdCfyfwF/AL5U4jwXs+qMh5XkgtsAN9J1s9YTwMG2X0sad/8TAEmjSCMI97a9M2kK+JNrnKvm/iGE0FbiGlNd04HTbP8OQNJb87o31Sps+1JJs0nDDwUcZrvRfU+V/W6WNKVqdc3kgrbnFMrMB8ZIGk1qmQkYK2kp6XrYvTXOVXN/2y9Vlw0hhMFSZrh4qSHlq5kyFdPYSqUEYPumRvNqSNoDmG/7O/n1OpLeaPvPfYivTHLBw4E5lUol52maBywHFpBm1G2k2/4hhNA2hunghzJdefdLOlPSlLx8njRdej3fI43Eq1ie1/U7STsC5wEfzq/XAE4kzZq4Cakr74yy+9cpc4KkWZJmPb40Uv+FEFpHJZehpkzF9EHSvBpX5GUD4LgG5ZVnLQTAdiclc/LV8FhOKkh1ckFJm5GuZR1t+768etd8zvtyDDOp0+VYZ/9V2J5ue6rtqZPWbzRKPoQQ+llcY+pO0hhSOqKtSV1jn7C9osQx75d0Cl2tpJNIs+D2Rc3kgpLGA9cAZ9guZqB4BNhB0iTbj5PyPq1yfavB/iGE0DaG6zWmRi2mGcBUUqX0duDLJY/5EVIr5RFSbr03Aif0tJOky4A/AdtJWijpeOokFySNtNsaODPPP3+HpMk5t9PZwM15HpBdySMCJR0i6ZxG+5d8fyGE0BrRYlrFDnk4NZJ+SMoo2yPbS4AjexuI7Xop0mslFzwXOLfOcS4ALqix/mq65pSqu38IIbSLMvcx9UN28bbTqMX0Sred7ZUtiCWEEEKBOsstTZ1DmijpekkL8uOEOuXGS7pc0t8l3Z3T1g2IRhXTLpKezctzwM6V55KeHaiAQgghZK3pyquXyKDa+cC1trcnTYHR4/2pfdUoJVEMQQshhEHUoq68mokMup1DWhf4F+BYANuV+fYGRF+Hca+iKgP5Kmx/rb/OFUIIw0JrkriWSWSwFfA48CNJuwCzgY/ZXt702Wvot4qJ7hnIQwghNKkXLabJkmYVVk+3Pf2VMtINwEY1dv9cyVBGAa8D/tP2nyWdT+ryO7Pk/r3SbxWT7bP761ghhBDoTUqiJbbrDkawvV+9bZIek7Rxbi11S2RQsBBYWEgtdzn1r0U1rceKSdJ5tqv7G2ut+2aj49g+pW8hhhDC8KQSc1qUKdODmokMimw/KulhSdvZvod0G8/fmj1xPWVaTPtTdSGMdMNt9brZ/RJRCCEEoGWZH6YBM3NSg4eA9wBI2gS40PZBudx/ApfmiV/vp3FquqY0Skl0Iimd0FY5i0LFOsAqaXxsz6jaf+xAXRgLIYRhoQXZxW0vpXYig0XAQYXXd5CyAQ24Ri2mnwK/Bv4/uvclPmf7yXo75Zuufkialn2LPILjw7ZP6od4Qwhh2IjMD1VsP2P7gZwqaHNgH9sPAiMkbdngmN8A3gYszce5kzT+PYQQQi+0IvNDO+px2gtJZ5GuJ1XmNVoTuKTRPrYfrloVExmFEEJvRRLXut5Jmnjvdkj9jpIa3bP0sKQ3Ac4XyU5hAFNXhBDCUDVcu/LKVEwv27aU3n6jadWzj5ByKm1KGvt+HT1Pbx5CCKGKOksMFy9RZnVTpmKaKen7wHhJ/0Ga0fYH9QrbfgJ4Xz/FF0IIw1cLRuW1ox4rJttfkbQ/8CywHfAF29fXKy9pBimH0tP59QTgq7Y/2D8hh9B/Ogv/A56frG7bXh7XtXHUC105jUe9NLpbuZEvdX0zjFjR/Ur0iBVd29RRKNfR/dukuI3CX8DV3TTdyjW6sbKwqeENmHW2qebaEobghfg+++vlTR9iuM5gWyolUa6I6lZGVXauVEp536ck7daH2EIIYXgbgq2hMsqkJHqOVT+eZ4BZwCds31+1bYSkCbafyvtPLHOeEEII3cU1pvq+Biwi3XAr0rTpGwH3ABfRNY9HxVeBP0q6nFShHQH8Vz/FG0IIw0aMyqvvQNtvLLyeLuk22+dI+mx1Yds/zunX9yFVZO+yPWDJ/kKoWHNk1+1y49fryoa1bM3u14ReXnuNV56v7Ozz1ZR+pjrPw2rrmH44Rgx+qKtT0hGkNOcA7y5sq/mR5IooKqMQQmjCcO3K6zHzA2no9wdIc3Q8lp+/X9JawMkDGFsIIQxrcrllqGnYYpI0EjjR9sF1ivyh/0MKIYQARFdeLbY7JL2+VcGE0Bvj1nip2+viNaaiznXjmk1ovQf74RitGPyQR07/HJgCPAAcURlVXSizXS5TsRXpntZvNHf22sp05c2RdLWkD0h6V2Xp70AkXSRpiaS7CusmSrpe0oL8OCGv31/SbEnz8uM+hX2OyuvnSrpW0gZ1zneGpHsl3SPpbf39fkIIoWkdLrc053TgRtvbADdSY8p02/fY3tX2rsDrgeeBK5s9cT1lKqaJpCks9gEOzss7BiCWi4EDq9bV+8CeAA62/VrS2JefAEgaRcrTt7ftnYG51LgOJmkH0rD3HfM5v5u7LUMIoW206BrToUBlotcZwGE9lN8XuC9PgzQgyqQkGrDpc6vOc7OkKVWrD6XrPqkZwE3AZ2zPKZSZD4yRNJqUEEXAWElLgXWBe2uc7lDgZ7ZfAv4p6V5gd+BP/fNuQgihHzRKJ9W9zOR8m07FdNvTS55lQ9uL06G8WNLkHsofCVxW8th9UibzwxjgeFLrYkxlfYty35X5wA4H5uRKpjIl/DxgObCA2pnNNwVuK7xemNeFNjd+jRdeeT5u1Mvdto1S1zWmTsd1pbD660WuvCW296xbRrqBlBih2ud6FU+ayugQuubnGxBluvJ+QnpDbwN+D2wGPDeQQZUlaUfgPODD+fUawImk+aM2IXXl1foAa31r1fzTRNIJkmZJmvX40pjvMITQOrJLLT2xvZ/tnWosVwGPSdoYID8uaXCotwO3236sX95gHXUrpny9BmBr22cCy23PAP4NeO1ABlVQ9wOTtBnp4tvRtu/Lq3cFsH2fbQMzgTfVOO5C0nTxFZuR0i6twvZ021NtT520flyGCiG0UGfJpTlX05Wn4hjgqgZlj2KAu/GgcYvpL/lxRX58WtJOwHqkYYWtUPMDkzQeuAY4w/athfKPADtImpRf70/t2XOvBo6UNFrSlsA2dL3fEEJoC+p0qaVJ04D9JS0gfWdOA5C0iaT/eyUWae28/YpmT9iTMimJpudh2p8nfaGPA87s70AkXUYa6LCBpIXAWaQPaKak44GHgPfk4icDWwNnSqrEckCe9v1s4GZJK0i3Ehybj38IMNX2F2zPlzSTlDZpJfBR29FPF0JoL+UHPzRxCi8ljbSrXr8IOKjw+nlg/aZOVlKjimmypNPy88rIvO/kx56mV+8120fV2VTrAzsXOLfOcS4ALqix/mpSxVp5/V9E1vMQQhuL7OKrGklqHZUeKBBCf1hD3RuvHYUe583WfLLmeoCRhc724raRMa1qWF21oMXUjhpVTIttn9OySEIIIXSjElkdhmJ28UYVU9wIEkIIgymSuK5ilWs7IYQQWqfMPUplyqxu6lZMtp+sty2EEEILlEnQOsy68kIYFONHPl9324gGOVo6PaJUuRBWF9FiCiGE0F5Kjcob+DBaLSqmEEJoVzFcPIQQQjuJ4eIhhBDaS7SYQgghtJWomEIIIbSVMsPFo2IKoe9GVg0fGlnMiVfYNGnUsy2KKIT21orh4pImAj8nTWf0AHCE7adqlPs48CHS/9Z5wHG2X2zq5HWUmcE2hBDCYLDLLc05HbjR9jbAjfl1N5I2BU4hTR20EynJ95HNnrieqJhCCKFddXSWW5pzKDAjP58BHFan3ChgrTy7+drUmfW7P0TFFEII7ao1LaYNbS9Op/NiYPKqYfgR4CukCVsXA8/Yvq7ZE9cT15hCCKFdlR+VN1nSrMLa6banV15IugHYqMbenysTRp7F/FBgS+Bp4BeS3m/7kjL791ZUTCGE0K7K3DybKqYltvesX8T71dsm6TFJG9teLGljYEmNYvsB/7T9eN7nCuBNwIBUTNGVF0II7aqzo9zSnKuBY/LzY4CrapR5CNhD0tqSRJoW6e5mT1xPtJhCy6wzotzI0jWqMoN3OuasDMNU+RZTM6YBMyUdT6qA3gMgaRPgQtsH2f6zpMuB24GVwBxger0DNisqphBCaFctyPxgeyk1Joa1vQg4qPD6LOCspk5WUlRMIYTQrjpLDAX30Jt7LCqmEEJoV1ExhRBCaCuRxDWEEEJbGaYVU9sMF5d0kaQlku4qrJso6XpJC/LjhLx+f0mzJc3Lj/vk9etIuqOwPCHpGzXOtYakGXn/uyWd0bI3GkIIJbmjo9Qy1LRTi+li4NvAjwvrKskFp0k6Pb/+DPAEcLDtRZJ2An4DbGr7OWDXys6SZgNX1DjXe4DRtl8raW3gb5Ius/1A/7+tUDFxxIpur+v1jK/y11JhtPjQ600PoYHWDBdvO23TYrJ9M/Bk1eqayQVtz8lDGQHmA2MkjS7uKGkbUs6nW2qdDhibkxGuBbwMxFwLIYT20ppceW2nbSqmOnpMLggcDsyx/VLV+qOAn9s1f2qXA8tJyQgfAr5iu7pSBEDSCZJmSZr1+NKh12QOIbSxjo5yyxDTTl15vSZpR+A84IAam48EPlBn192BDmATYAJwi6QbbN9fXTAnQpwOMHWXMUPvT5MQQttyieHiHoLDxdu9xfRYTipIdXJBSZsBVwJH276vuJOkXYBRtmfXOe57gWttr7C9BLgVmDoQbyCEEPosuvLaUs3kgpLGA9cAZ9i+tcZ+RwGXNTjuQ8A+SsYCewB/76+gQwihXwzTrry2qZgkXQb8CdhO0sKcUHAasL+kBcD++TXAycDWwJmFoeHF609HUFUxSTpE0jn55XeAccBdwF+BH9meO1DvLYQQ+sKdLrUMNW1zjcn2UXU21UoueC5wboNjbVVj3dWkFhi2l5Ez6IYQQtsqc/1oCF5japuKKbTOi4VpJMao+19b649Yq9QxOnHhebn/GCuq/gM9764uiGLTfb0R3Ub+M6JwI9OSzhdKnSuEoaBMa6j2wOPVW1RMIYTQhtZj4ute7FzOGDX+Y3GZn2YSm+zRorBaom2uMYUQQugyhe25n/kNy9jmXubxOIte16KwWiIqphBCaEN38scRL7CcZX6mbpmlPMqajMH2nBaGNuCiYgohhDZk20/x+O4LmFdvO/fzNx7loVe1OLQBFxVTCCG0Kdt/HcUaPOnHVtm2iAeYwGRsPzQIoQ2oGPwQQght7DEe3upFlt8/wZOR0gjVDq/kYe5lGc+MH9zoBka0mEIIoY3Z/ud6rM+jdDWMHmQBmzAFu8EFqNVYtJhCCKHNPcSC9cex3tLJ3owOVrCER1jG06N73nP1FBVTL7zoTv6+Ynmv9hlJ/978NkI9l2lX46punB1XeN5RuPm2s8FnNrnkDcAhDCW2n9xWO/Mw9/Iiz7Ml2zPXf3p5sOMaKFExhRDCamAB89Yax3ovjGIUC7lvSF+G0VBMZzFQJD0H3DPIYWxAmlp+sLVDHO0QA7RHHO0QA7RHHO0QA8B2ttfpzwPurn39V367g+27+/O47SYqpl6QNMv2oM7b1A4xtEsc7RBDu8TRDjG0SxztEEM7xbE6GtLNwRBCCKufqJhCCCG0laiYemf6YAdAe8QA7RFHO8QA7RFHO8QA7RFHO8QA7RPHaieuMYUQQmgr0WIKIYTQVqJiCiGE0FaiYipB0oGS7pF0r6TTW3jeiyQtkXRXYd1ESddLWpAfJwxwDJtL+p2kuyXNl/SxQYpjjKS/SLozx3H2YMSRzzlS0hxJvxrEGB6QNE/SHZJmDUYcksZLulzS3/Pvx56DEMN2+TOoLM9KOnUQ4vh4/r28S9Jl+fe15b8XQ0VUTD2QNBL4DvB2YAfgKEk7tOj0FwMHVq07HbjR9jbAjfn1QFoJfML2a4A9gI/m99/qOF4C9rG9C7ArcKCkPQYhDoCPAcUbHAcjBoC9be9auFem1XGcD1xre3tgF9Jn0tIYbN+TP4NdgdcDzwNXtjIOSZsCpwBTbe8EjASObGUMQ47tWBoswJ7AbwqvzwDOaOH5pwB3FV7fA2ycn28M3NPiz+MqYP/BjANYG7gdeGOr4wA2I33J7AP8arB+JsADwAZV61oWB7Au8E/yAKrBiKFGTAcAtw7CZ7Ep8DAwkZTm7Vc5lkH9v7o6L9Fi6lnll65iYV43WDa0vRggP05u1YklTQF2A/48GHHkLrQ7gCXA9bYHI45vAJ8GOgvrBuNnYuA6SbMlnTAIcWwFPA78KHdrXihpbItjqHYkcFl+3rI4bD8CfAV4CFgMPGP7ulbGMNRExdSzWvm8h90Ye0njgF8Cp9p+djBisN3h1GWzGbC7pJ1aeX5J7wCW2J7dyvPWsZft15G6mD8q6V9afP5RwOuA79neDVjOIHZVSVoTOAT4xSCcewJwKLAlsAkwVtL7Wx3HUBIVU88WApsXXm8GLBqkWAAek7QxQH5cMtAnlLQGqVK61PYVgxVHhe2ngZtI199aGcdewCGSHgB+Buwj6ZIWxwCA7UX5cQnpmsruLY5jIbAwt1oBLidVVIP1e/F24Hb7lTnIWxnHfsA/bT9uewVwBfCmFscwpETF1LO/AttI2jL/VXYkcPUgxnM1cEx+fgzpms+AkSTgh8Ddtr82iHFMkjQ+P1+L9GXw91bGYfsM25vZnkL6Pfit7fe3MgYASWMlrVN5TrqecVcr47D9KPCwpO3yqn2Bv7UyhipH0dWNR4vjeAjYQ9La+f/LvqSBIIP1Waz+Bvsi1+qwAAcB/wDuAz7XwvNeRuqzXkH6C/V4YH3SxfcF+XHiAMfwZlLX5VzgjrwcNAhx7AzMyXHcBXwhr29pHIV43krX4IdWfxZbAXfmZX7ld3IQ4tgVmJV/Jv8DTBiMnwdpMMxSYL3CulZ/FmeT/lC6C/gJMHqwfjeHwhIpiUIIIbSV6MoLIYTQVqJiCiGE0FaiYgohhNBWomIKIYTQVqJiCiGE0FaiYgpNkzRFhQzo/XjcqZK+2UOZ8ZJO6u9z90TSH5vY92JJ7y67vlmVWPPP6b192P9YSd/u77hCqCcqptC2bM+yfUoPxcYDLa+YbL+p1efsq0KsU4BeV0whtFpUTKG/jJT0gzwnzXU5O0M3uUVwgaRbJP0j556rzLX0ozy/0BxJe+f1b1XXnEdfVJqf6iZJ90uqVFjTgFfnuXi+XHW+KXmeoFXikrSrpNskzZV0ZWWunHz8r0u6Oe/7BklX5Dl1zi0ce1khxpvUNS/RpfnufyR9QdJflebomV5ZX4akffNnMS+/79F5/QOSzpZ0e962fV4/SWnOn9slfV/Sg5I2KMaaP6u35M/q49UtIUm/kvTW/Py4/DP6PSkVE4Xz/DK/r79KemVbCP0lKqbQX7YBvmN7R+Bp4PA65aYA/wr8G3CBpDHARwFsv5aUWmZGXl9te+BtpLxwZynl8DsduM9pTp5P9SKuHwOfsb0zMA84q7DPy7b/BbiAlEbmo8BOwLGS1q9xjt2AU0nzdW1F1xf5t22/wWmOnrWAd9T5TLrJ7/1i4N/zZzIKOLFQ5AmnBK7fAz6Z151FSpH0OlLuvC1qHPp04Jb8WX29wfk3JmUy2Is0xUlx/rHzga/bfgPps7ywzHsKoTeiYgr95Z+278jPZ5MqoFpm2u60vQC4n1TZvJmUxgXbfwceBLatse81tl+y/QQpIeaGfYlL0nrAeNu/z+tnAMXs3JVciPOA+bYX234px1tM6FvxF9sLbXeSUjZNyev3lvRnSfNI8zftWCJegO1y3P+oE18lkW7xc34zKbEstq8Fnip5rlreCNzklJT0ZeDnhW37Ad9Wmn7kamDdSt6+EPrLqMEOIAwZLxWed5BaCLVU58AytacWKXOOMr+/ZeOqtU9n1f6ddc65Sly51fNd0qymD0v6IlCrFVhLT59H5XzFz6B0N2HBSrr/cVqMr16ushHAnrZf6MP5QiglWkyh1d4jaYSkV5O6ve4BbgbeByBpW1I31D0lj/cc0Ku/2G0/Azwl6S151QeA3zfYpS8qX/JPKM1l1ZvRdn8ntey2zq/LxPcH4AgASQeQEqpWq/6sHgB2zT+PzUldpJAmgnyrpPVzd+l7CvtcB5xceSFp1zJvKITeiBZTaLV7SF+yGwIfsf2ipO+SrjfNI/0Vf6ztl8qMFbC9VNKtSsPVf13nOlMtx+Rzrk3qojuuL2+mQVxPS/oBqTvwAdL0KWX3fVHSccAvJI3K+17Qw25nA5dJ+nfS57uYVBEVzQVWSrqTdA3rG6Tp0eeRsmLfns+/OLfw/pSPczswMh/jFOA7kuaSvj9uBj5S9r2FUEZkFw8tI+li0lQRlw92LENNHrXXYXulpD1JM8vuOshhhdAn0WIKYWjYApgpaQTwMvAfgxxPCH0WLaYQQghtJQY/hBBCaCtRMYUhI2d6eCFnNqiZv0+F/HvVmQ8GKKZT8wCL/jjWv0u6VzkbRghDVVRMYai5r9FF/5L59/rTqUCvKiZJI2utt/1z4EP9EFMIbS0qpjDkSdoq5517gwr596rKvErSjTl33o2StsjrL5b0PUm/U8rR9685d93deZRhZf8DJP0p56r7haRxSvn8NgF+J+l39crl9Q8o5db7A+ler1Mk/S3H87NWfE4htIuomMKQJmk74JfAcbYb3Uv0beDHOXfepUBxuo0JpJRCHwf+F/g6Kb3Qa5WSwW4AfB7YL+eqmwWcZvubwCJgb9t71ytXOM+Ltt9s+2ekvHa75XjiPqEwrMRw8TCUTSIlYT3c9vweyu4JvCs//wnw34Vt/2vb+Qbgx2zPA5A0n5SrbjNSotNb803Ba5JuTq22Rw/lijnp5gKXSvof4H96iD2EISUqpjCUPQM8TMqS3VPFVK14H0VPufM6gOttH9XDMdVDueWF5/9GStx6CHCmpB1trywbfAirs+jKC0PZy8BhwNHqeebWPwJH5ufvI+WeK+s2YK9KbjtJa+ecf9A9P12jcq/IN8lubvt3wKdJkyGO60U8IazWosUUhjTby5UmJLxe0nJSK6qWU4CLJH0KeJxe5M6z/bikY0m56kbn1Z8H/gFMB34taXG+zlSvXNFI4JI8PYdI8x89XTaeEFZ3kfkhDBmSppBy8e002LEMFKUZZj9pu9SkgyGsjqIrLwwlHcB6eRK7ISdnDv8uzU0CGELbixZTCCGEthItphBCCG0lKqYQQghtJSqmEEIIbSUqphBCCG0lKqYQQght5f8Hk0/QIG5jj9oAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ds_rho0['temp'].isel(Time=0).plot(robust=True)\n", + "plt.gca().set_ylim([1027.7,1029])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "om4labs", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/MOM6 b/src/MOM6 index 588cf03ade..772b76cc5f 160000 --- a/src/MOM6 +++ b/src/MOM6 @@ -1 +1 @@ -Subproject commit 588cf03adeed355e3db9a12a73c726f3b88b4c35 +Subproject commit 772b76cc5f9d8d1165de9185f1b83ca1ec9473e2 From 339ca3f6a9a19d0cef1e4229a12743ad327a6758 Mon Sep 17 00:00:00 2001 From: Graeme MacGilchrist Date: Tue, 23 Jul 2024 16:48:22 +0100 Subject: [PATCH 06/12] improves visualization of diagnostics --- ocean_only/flow_downslope/common/MOM_input | 2 +- ocean_only/flow_downslope/gmac_analysis.ipynb | 700 +++++++++--------- .../flow_downslope/z/MOM_parameter_doc.all | 51 +- .../flow_downslope/z/MOM_parameter_doc.layout | 4 +- .../flow_downslope/z/MOM_parameter_doc.short | 31 +- src/MOM6 | 2 +- src/SIS2 | 2 +- src/icebergs | 2 +- src/mkmf | 2 +- 9 files changed, 436 insertions(+), 360 deletions(-) diff --git a/ocean_only/flow_downslope/common/MOM_input b/ocean_only/flow_downslope/common/MOM_input index 7b4f531921..b1d5f01fe4 100644 --- a/ocean_only/flow_downslope/common/MOM_input +++ b/ocean_only/flow_downslope/common/MOM_input @@ -218,7 +218,7 @@ DIAG_COORDS = "z Z ZSTAR", "rho0 RHO0 RHO" ! ! definition used for diagnostics. Each string is of the form ! "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". DIAG_COORD_P_REF_RHO0 = 0.0 -! DIAG_COORD_NEEDS_SORTING_RHO0 = True +DIAG_COORD_NEEDS_SORTING_RHO0 = True DIAG_COORD_DEF_RHO0 = "FILE:targetlayers_rho0.nc,interfaces=interfaces" ! default = "WOA09" ! Determines how to specify the coordinate resolution. Valid options are: ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO2 diff --git a/ocean_only/flow_downslope/gmac_analysis.ipynb b/ocean_only/flow_downslope/gmac_analysis.ipynb index fc0160637b..92fa3b28e2 100644 --- a/ocean_only/flow_downslope/gmac_analysis.ipynb +++ b/ocean_only/flow_downslope/gmac_analysis.ipynb @@ -2,16 +2,18 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 64, "metadata": {}, "outputs": [], "source": [ - "import xarray as xr" + "import xarray as xr\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 149, "metadata": {}, "outputs": [ { @@ -48,6 +50,7 @@ "}\n", "\n", "html[theme=dark],\n", + "body[data-theme=dark],\n", "body.vscode-dark {\n", " --xr-font-color0: rgba(255, 255, 255, 1);\n", " --xr-font-color2: rgba(255, 255, 255, 0.54);\n", @@ -277,6 +280,11 @@ " grid-column: 4;\n", "}\n", "\n", + ".xr-index-preview {\n", + " grid-column: 2 / 5;\n", + " color: var(--xr-font-color2);\n", + "}\n", + "\n", ".xr-var-name,\n", ".xr-var-dims,\n", ".xr-var-dtype,\n", @@ -298,14 +306,16 @@ "}\n", "\n", ".xr-var-attrs,\n", - ".xr-var-data {\n", + ".xr-var-data,\n", + ".xr-index-data {\n", " display: none;\n", " background-color: var(--xr-background-color) !important;\n", " padding-bottom: 5px !important;\n", "}\n", "\n", ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n", - ".xr-var-data-in:checked ~ .xr-var-data {\n", + ".xr-var-data-in:checked ~ .xr-var-data,\n", + ".xr-index-data-in:checked ~ .xr-index-data {\n", " display: block;\n", "}\n", "\n", @@ -315,13 +325,16 @@ "\n", ".xr-var-name span,\n", ".xr-var-data,\n", + ".xr-index-name div,\n", + ".xr-index-data,\n", ".xr-attrs {\n", " padding-left: 25px !important;\n", "}\n", "\n", ".xr-attrs,\n", ".xr-var-attrs,\n", - ".xr-var-data {\n", + ".xr-var-data,\n", + ".xr-index-data {\n", " grid-column: 1 / -1;\n", "}\n", "\n", @@ -359,7 +372,8 @@ "}\n", "\n", ".xr-icon-database,\n", - ".xr-icon-file-text2 {\n", + ".xr-icon-file-text2,\n", + ".xr-no-icon {\n", " display: inline-block;\n", " vertical-align: middle;\n", " width: 1em;\n", @@ -368,405 +382,399 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
<xarray.Dataset>\n",
-       "Dimensions:  (xq: 81, zl: 40, Time: 12, xh: 80, zi: 41)\n",
+       "
<xarray.Dataset> Size: 112kB\n",
+       "Dimensions:    (xh: 80, rho0_l: 19, rho0_i: 20, Time: 2, xq: 81)\n",
        "Coordinates:\n",
-       "  * xq       (xq) float64 0.0 10.0 20.0 30.0 40.0 ... 770.0 780.0 790.0 800.0\n",
-       "  * zl       (zl) float64 1.035e+03 1.035e+03 1.035e+03 ... 1.036e+03 1.036e+03\n",
-       "  * Time     (Time) object 0001-01-01 01:00:00 ... 0001-01-01 12:00:00\n",
-       "  * xh       (xh) float64 5.0 15.0 25.0 35.0 45.0 ... 765.0 775.0 785.0 795.0\n",
-       "  * zi       (zi) float64 1.035e+03 1.035e+03 1.035e+03 ... 1.036e+03 1.036e+03\n",
+       "  * xh         (xh) float64 640B 5.0 15.0 25.0 35.0 ... 765.0 775.0 785.0 795.0\n",
+       "  * rho0_l     (rho0_l) float64 152B 1.034e+03 1.034e+03 ... 1.035e+03 1.035e+03\n",
+       "  * rho0_i     (rho0_i) float64 160B 1.034e+03 1.034e+03 ... 1.035e+03 1.035e+03\n",
+       "  * Time       (Time) object 16B 0001-01-01 06:00:00 0001-01-01 12:00:00\n",
+       "  * xq         (xq) float64 648B 0.0 10.0 20.0 30.0 ... 770.0 780.0 790.0 800.0\n",
        "Data variables:\n",
-       "    u        (Time, zl, xq) float32 nan 0.02345 0.03627 ... 1.958e-05 nan\n",
-       "    v        (Time, zl, xh) float32 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
-       "    h        (Time, zl, xh) float64 1e-10 1e-10 1e-10 ... 100.0 100.0 100.0\n",
-       "    e        (Time, zi, xh) float32 -4.376 -3.228 -2.34 ... -4e+03 -4e+03 -4e+03\n",
-       "    temp     (Time, zl, xh) float32 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
-       "    salt     (Time, zl, xh) float32 34.0 34.0 34.0 34.0 ... 35.0 35.0 35.0 35.0\n",
-       "    rhopot0  (Time, zl, xh) float32 1.034e+03 1.034e+03 ... 1.035e+03 1.035e+03
    • xh
      PandasIndex
      PandasIndex(Index([  5.0,  15.0,  25.0,  35.0,  45.0,  55.0,  65.0,  75.0,  85.0,  95.0,\n",
      +       "       105.0, 115.0, 125.0, 135.0, 145.0, 155.0, 165.0, 175.0, 185.0, 195.0,\n",
      +       "       205.0, 215.0, 225.0, 235.0, 245.0, 255.0, 265.0, 275.0, 285.0, 295.0,\n",
      +       "       305.0, 315.0, 325.0, 335.0, 345.0, 355.0, 365.0, 375.0, 385.0, 395.0,\n",
      +       "       405.0, 415.0, 425.0, 435.0, 445.0, 455.0, 465.0, 475.0, 485.0, 495.0,\n",
      +       "       505.0, 515.0, 525.0, 535.0, 545.0, 555.0, 565.0, 575.0, 585.0, 595.0,\n",
      +       "       605.0, 615.0, 625.0, 635.0, 645.0, 655.0, 665.0, 675.0, 685.0, 695.0,\n",
      +       "       705.0, 715.0, 725.0, 735.0, 745.0, 755.0, 765.0, 775.0, 785.0, 795.0],\n",
      +       "      dtype='float64', name='xh'))
    • rho0_l
      PandasIndex
      PandasIndex(Index([1034.0263157894738,  1034.078947368421, 1034.1315789473683,\n",
      +       "       1034.1842105263158, 1034.2368421052631, 1034.2894736842104,\n",
      +       "        1034.342105263158, 1034.3947368421054, 1034.4473684210525,\n",
      +       "                   1034.5, 1034.5526315789475, 1034.6052631578946,\n",
      +       "        1034.657894736842, 1034.7105263157896, 1034.7631578947369,\n",
      +       "       1034.8157894736842, 1034.8684210526317,  1034.921052631579,\n",
      +       "       1034.9736842105262],\n",
      +       "      dtype='float64', name='rho0_l'))
    • rho0_i
      PandasIndex
      PandasIndex(Index([            1034.0, 1034.0526315789473, 1034.1052631578948,\n",
      +       "        1034.157894736842, 1034.2105263157894, 1034.2631578947369,\n",
      +       "       1034.3157894736842, 1034.3684210526317,  1034.421052631579,\n",
      +       "       1034.4736842105262, 1034.5263157894738,  1034.578947368421,\n",
      +       "       1034.6315789473683, 1034.6842105263158, 1034.7368421052631,\n",
      +       "       1034.7894736842106,  1034.842105263158, 1034.8947368421052,\n",
      +       "       1034.9473684210527,             1035.0],\n",
      +       "      dtype='float64', name='rho0_i'))
    • Time
      PandasIndex
      PandasIndex(CFTimeIndex([0001-01-01 06:00:00, 0001-01-01 12:00:00],\n",
      +       "            dtype='object', length=2, calendar='julian', freq=None))
    • xq
      PandasIndex
      PandasIndex(Index([  0.0,  10.0,  20.0,  30.0,  40.0,  50.0,  60.0,  70.0,  80.0,  90.0,\n",
      +       "       100.0, 110.0, 120.0, 130.0, 140.0, 150.0, 160.0, 170.0, 180.0, 190.0,\n",
      +       "       200.0, 210.0, 220.0, 230.0, 240.0, 250.0, 260.0, 270.0, 280.0, 290.0,\n",
      +       "       300.0, 310.0, 320.0, 330.0, 340.0, 350.0, 360.0, 370.0, 380.0, 390.0,\n",
      +       "       400.0, 410.0, 420.0, 430.0, 440.0, 450.0, 460.0, 470.0, 480.0, 490.0,\n",
      +       "       500.0, 510.0, 520.0, 530.0, 540.0, 550.0, 560.0, 570.0, 580.0, 590.0,\n",
      +       "       600.0, 610.0, 620.0, 630.0, 640.0, 650.0, 660.0, 670.0, 680.0, 690.0,\n",
      +       "       700.0, 710.0, 720.0, 730.0, 740.0, 750.0, 760.0, 770.0, 780.0, 790.0,\n",
      +       "       800.0],\n",
      +       "      dtype='float64', name='xq'))
  • " ], "text/plain": [ - "\n", - "Dimensions: (xq: 81, zl: 40, Time: 12, xh: 80, zi: 41)\n", + " Size: 112kB\n", + "Dimensions: (xh: 80, rho0_l: 19, rho0_i: 20, Time: 2, xq: 81)\n", "Coordinates:\n", - " * xq (xq) float64 0.0 10.0 20.0 30.0 40.0 ... 770.0 780.0 790.0 800.0\n", - " * zl (zl) float64 1.035e+03 1.035e+03 1.035e+03 ... 1.036e+03 1.036e+03\n", - " * Time (Time) object 0001-01-01 01:00:00 ... 0001-01-01 12:00:00\n", - " * xh (xh) float64 5.0 15.0 25.0 35.0 45.0 ... 765.0 775.0 785.0 795.0\n", - " * zi (zi) float64 1.035e+03 1.035e+03 1.035e+03 ... 1.036e+03 1.036e+03\n", + " * xh (xh) float64 640B 5.0 15.0 25.0 35.0 ... 765.0 775.0 785.0 795.0\n", + " * rho0_l (rho0_l) float64 152B 1.034e+03 1.034e+03 ... 1.035e+03 1.035e+03\n", + " * rho0_i (rho0_i) float64 160B 1.034e+03 1.034e+03 ... 1.035e+03 1.035e+03\n", + " * Time (Time) object 16B 0001-01-01 06:00:00 0001-01-01 12:00:00\n", + " * xq (xq) float64 648B 0.0 10.0 20.0 30.0 ... 770.0 780.0 790.0 800.0\n", "Data variables:\n", - " u (Time, zl, xq) float32 nan 0.02345 0.03627 ... 1.958e-05 nan\n", - " v (Time, zl, xh) float32 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", - " h (Time, zl, xh) float64 1e-10 1e-10 1e-10 ... 100.0 100.0 100.0\n", - " e (Time, zi, xh) float32 -4.376 -3.228 -2.34 ... -4e+03 -4e+03 -4e+03\n", - " temp (Time, zl, xh) float32 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", - " salt (Time, zl, xh) float32 34.0 34.0 34.0 34.0 ... 35.0 35.0 35.0 35.0\n", - " rhopot0 (Time, zl, xh) float32 1.034e+03 1.034e+03 ... 1.035e+03 1.035e+03" + " temp (Time, rho0_l, xh) float32 12kB 1.0 1.0 1.0 1.0 ... 0.0 0.0 0.0\n", + " salt (Time, rho0_l, xh) float32 12kB 35.0 35.0 35.0 ... 34.97 34.97\n", + " u (Time, rho0_l, xq) float32 12kB 0.0 -0.002137 ... 3.396e-05 0.0\n", + " v (Time, rho0_l, xh) float32 12kB 1.084e-14 ... -3.928e-15\n", + " h (Time, rho0_l, xh) float32 12kB 0.0 0.0 0.0 ... 210.5 210.5 210.5\n", + " e (Time, rho0_i, xh) float32 13kB 0.0 0.0 0.0 ... -4e+03 -4e+03\n", + " rhopot0 (Time, rho0_l, xh) float32 12kB 1.035e+03 1.035e+03 ... 1.035e+03\n", + " rhopot2 (Time, rho0_l, xh) float32 12kB 1.035e+03 1.035e+03 ... 1.035e+03\n", + " rhoinsitu (Time, rho0_l, xh) float32 12kB 1.035e+03 1.035e+03 ... 1.035e+03" ] }, - "execution_count": 2, + "execution_count": 149, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "ds = xr.open_dataset('layer/prog.nc').mean(['yh','yq'])\n", + "zcoord = 'rho0'\n", + "ds = xr.open_dataset('z/prog_'+zcoord+'.nc').mean(['yh','yq'])\n", "ds" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 150, + "metadata": {}, + "outputs": [], + "source": [ + "tmp = 0.5*(ds['e'].isel({zcoord+'_i':slice(0,-1)}).values + ds['e'].isel({zcoord+'_i':slice(1,None)}).values)\n", + "ds['eh'] = ds['temp'].copy(data=tmp)\n", + "ds['eh'] = ds['eh'].where(np.isfinite(ds['eh']),ds['eh'].min(zcoord+'_l'))" + ] + }, + { + "cell_type": "code", + "execution_count": 151, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/89/8wbtnb1d5y30tjpcqtlr5f840000gq/T/ipykernel_971/2478410361.py:7: UserWarning: The input coordinates to pcolormesh are interpreted as cell centers, but are not monotonically increasing or decreasing. This may lead to incorrectly calculated cell edges, in which case, please supply explicit cell edges to pcolormesh.\n", + " plt.pcolormesh(x,e,s)\n" + ] + }, { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 3, + "execution_count": 151, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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AUDaEdnV6mEymfD222+jsbERCQkJLhc/ADz55JOYMGEC7rrrLtl5V6rL119/DYPBgOjoaEydOhWnTp1yqTq89957iI+PxwMPPIBevXrhlltuwd///nfpuqvU43LNzc1444038Nhjj0Gj0bhMHUaOHIlPP/0UJ06cAAAcPHgQu3btwvjx4wG45teCOmbz3l7u5Pvvv4fJZJI2SG0THh5usVGqWrXFaa0Op0+flsr4+fmhe/fuFmWcUU8hBNLT0zFy5EgMHjxYirEtpvYxqqkehw4dQkJCApqamhAUFIRNmzZh0KBB0n9sao+/zdtvv439+/dj7969Ftdc5WsxfPhw/POf/8QNN9yA7777DsuXL8eIESNw5MgRl6nDqVOn8MorryA9PR2LFy/GV199hblz50Kr1eKRRx5xmXpcbvPmzfjpp5+QmpoqxdcWz+XUVofnnnsO9fX1GDBgALy9vWEymZCVlYWHH35YirEtpvYxqqke1Dkenfy0uXybDODSD+f259TuWurgrHrOmTMH//nPf7Br1y6La2qvx4033oiysjL89NNPKCwsREpKCkpKSqTrao8fAKqrq/H000+jqKgI/v7+HZZTe13GjRsn/XnIkCFISEhATEwMNm7ciFtvvRWA+utgNpsRHx+P7OxsAMAtt9yCI0eO4JVXXsEjjzwilVN7PS732muvYdy4cTAYDLLzaq9DQUEB3njjDbz11lu46aabUFZWhnnz5sFgMCAlJUUqp/Z6UOd4dLdXaGgovL29LTLyc+fOWWT3atU2u+VKddDr9WhubkZdXV2HZbrKU089hffeew/bt29H3759pfOuUg8/Pz9cf/31iI+PR05ODoYOHYo///nPLhM/cKlp/ty5c4iLi4OPjw98fHxQUlKCVatWwcfHR4rFFepyucDAQAwZMgRff/21y3w9evfujUGDBsnODRw4EFVVVVKMgPrr0eb06dP45JNP8Pjjj0vnXKUOzz77LBYuXIipU6diyJAhmDFjBubPn4+cnBwpRkD99aDO8ejkx8/PD3FxcSguLpadLy4uxogRI5wUlW2io6Oh1+tldWhubkZJSYlUh7i4OPj6+srK1NTU4PDhw11WTyEE5syZg3fffRfbtm1DdHS0S9ajPSEEjEajS8V/55134tChQygrK5OO+Ph4TJ8+HWVlZejfv7/L1OVyRqMRx44dQ+/evV3m63HbbbdZLPlw4sQJ9OvXD4Dr/btYv349evXqhQkTJkjnXKUOP//8M7y85D8Svb29panurlIP6qSuHV+tPm1T3V977TVx9OhRMW/ePBEYGCgqKyudHZrk/Pnz4sCBA+LAgQMCgMjLyxMHDhyQpuO/9NJLIiQkRLz77rvi0KFD4uGHH7Y6/bJv377ik08+Efv37xd33HFHl06//P3vfy9CQkLEZ599JpsS+/PPP0tl1F6PRYsWiR07doiKigrxn//8RyxevFh4eXmJoqIil4j/Si6f7SWEa9TlmWeeEZ999pk4deqU2LNnj/jNb34junXrJv3bdYU6fPXVV8LHx0dkZWWJr7/+Wrz55psiICBAvPHGG1IZV6iHEEKYTCYRGRkpnnvuOYtrrlCHlJQU0adPH2mq+7vvvitCQ0NFRkaGS9WDOsfjkx8hhPjLX/4i+vXrJ/z8/MT//M//SNOv1WL79u0CgMWRkpIihLg0BXPp0qVCr9cLrVYrRo0aJQ4dOiR7xsWLF8WcOXNEjx49hE6nE7/5zW9EVVVVl9XBWvwAxPr166Uyaq/HY489Jn2fhIWFiTvvvFNKfFwh/itpn/y4Ql3a1ljx9fUVBoNBTJkyRRw5csSl6iCEEO+//74YPHiw0Gq1YsCAAeJvf/ub7Lqr1OPjjz8WAER5ebnFNVeoQ0NDg3j66adFZGSk8Pf3F/379xdLliwRRqPRpepBnaMRQginNDkREREROYFHj/khIiIiz8Pkh4iIiDwKkx8iIiLyKEx+iIiIyKMw+SEiIiKPwuSHiIiIPAqTHyIiIvIoTH6IiIjIozD5ISIiIo/C5IeIiIg8CpMfIiIi8ij/H6f07ZlYJQeMAAAAAElFTkSuQmCC", "text/plain": [ - "
    " + "
    " ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], "source": [ - "ds['rhopot0'].isel(Time=0).plot()" + "t = -1\n", + "dsnow = ds.isel(Time=t)\n", + "e = dsnow['eh']\n", + "# e = e.where(np.isfinite(e),0)\n", + "s = dsnow['rhopot0']\n", + "x = dsnow['xh']#(dsnow['xh']*xr.ones_like(ds[zcoord+'_l'])).values\n", + "plt.pcolormesh(x,e,s)\n", + "plt.colorbar()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -785,7 +793,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.11.9" }, "orig_nbformat": 4 }, diff --git a/ocean_only/flow_downslope/z/MOM_parameter_doc.all b/ocean_only/flow_downslope/z/MOM_parameter_doc.all index 1a08bd4d60..25b4295816 100644 --- a/ocean_only/flow_downslope/z/MOM_parameter_doc.all +++ b/ocean_only/flow_downslope/z/MOM_parameter_doc.all @@ -198,7 +198,7 @@ REFERENCE_HEIGHT = 0.0 ! [m] default = 0.0 ! A reference value for geometric height fields, such as bathyT. ! === module MOM_fixed_initialization === -INPUTDIR = "INPUT" ! default = "." +INPUTDIR = "." ! default = "." ! The directory in which input files are found. ! === module MOM_grid_init === @@ -641,15 +641,15 @@ SPONGE = False ! [Boolean] default = False ! properties of those sponges are specified via SPONGE_CONFIG. ! === module MOM_diag_mediator === -NUM_DIAG_COORDS = 1 ! default = 1 +NUM_DIAG_COORDS = 2 ! default = 1 ! The number of diagnostic vertical coordinates to use. For each coordinate, an ! entry in DIAG_COORDS must be provided. USE_GRID_SPACE_DIAGNOSTIC_AXES = False ! [Boolean] default = False ! If true, use a grid index coordinate convention for diagnostic axes. -DIAG_COORDS = "z Z ZSTAR" ! default = "z Z ZSTAR" +DIAG_COORDS = "z Z ZSTAR", "rho0 RHO0 RHO" ! ! A list of string tuples associating diag_table modules to a coordinate - ! definition used for diagnostics. Each string is of the form "MODULE_SUFFIX - ! PARAMETER_SUFFIX COORDINATE_NAME". + ! definition used for diagnostics. Each string is of the form + ! "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". DIAG_MISVAL = 1.0E+20 ! [various] default = 1.0E+20 ! Set the default missing value to use for diagnostics. DIAG_AS_CHKSUM = False ! [Boolean] default = False @@ -672,6 +672,47 @@ DIAG_COORD_DEF_Z = "WOA09" ! default = "WOA09" ! the filename and two variable names, separated ! by a comma or space, for sigma-2 and dz. e.g. ! HYBRID:vgrid.nc,sigma2,dz +INTERPOLATION_SCHEME = "PPM_H4" ! default = "PPM_H4" + ! This sets the interpolation scheme to use to determine the new grid. These + ! parameters are only relevant when REGRIDDING_COORDINATE_MODE is set to a + ! function of state. Otherwise, it is not used. It can be one of the following + ! schemes: + ! P1M_H2 (2nd-order accurate) + ! P1M_H4 (2nd-order accurate) + ! P1M_IH4 (2nd-order accurate) + ! PLM (2nd-order accurate) + ! PPM_CW (3rd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! P3M_IH4IH3 (4th-order accurate) + ! P3M_IH6IH5 (4th-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +DIAG_COORD_DEF_RHO0 = "FILE:targetlayers_rho0.nc,interfaces=interfaces" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO0 + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_P_REF_RHO0 = 0.0 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the diagnostic coordinate density. + ! (1 Pa = 1e4 dbar, so 2e7 is commonly used.) This is only used for the RHO + ! coordinate. +DIAG_COORD_REGRID_COMPRESSIBILITY_FRACTION_RHO0 = 0.0 ! [nondim] default = 0.0 + ! When interpolating potential density profiles we can add some artificial + ! compressibility solely to make homogeneous regions appear stratified. +DIAG_COORD_NEEDS_SORTING_RHO0 = True ! [Boolean] default = False + ! Specifies whether the variable from which the coordinate is derived (e.g. + ! density) should be vertically sorted (to be monotonically increasing) prior to + ! regridding. The sorting is carried over to all remapped fields. ! === module MOM_MEKE === USE_MEKE = False ! [Boolean] default = False diff --git a/ocean_only/flow_downslope/z/MOM_parameter_doc.layout b/ocean_only/flow_downslope/z/MOM_parameter_doc.layout index 52683bc4e0..5512423585 100644 --- a/ocean_only/flow_downslope/z/MOM_parameter_doc.layout +++ b/ocean_only/flow_downslope/z/MOM_parameter_doc.layout @@ -36,13 +36,13 @@ MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" ! 4,6 ! 1,2 ! 3,6 -NIPROC = 2 ! +NIPROC = 1 ! ! The number of processors in the x-direction. With STATIC_MEMORY_ this is set ! in MOM_memory.h at compile time. NJPROC = 1 ! ! The number of processors in the y-direction. With STATIC_MEMORY_ this is set ! in MOM_memory.h at compile time. -LAYOUT = 2, 1 ! +LAYOUT = 1, 1 ! ! The processor layout that was actually used. IO_LAYOUT = 1, 1 ! default = 1 ! The processor layout to be used, or 0,0 to automatically set the io_layout to diff --git a/ocean_only/flow_downslope/z/MOM_parameter_doc.short b/ocean_only/flow_downslope/z/MOM_parameter_doc.short index df60f4a864..f38f5e1abc 100644 --- a/ocean_only/flow_downslope/z/MOM_parameter_doc.short +++ b/ocean_only/flow_downslope/z/MOM_parameter_doc.short @@ -33,8 +33,6 @@ NJGLOBAL = 4 ! ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. ! === module MOM_fixed_initialization === -INPUTDIR = "INPUT" ! default = "." - ! The directory in which input files are found. ! === module MOM_grid_init === GRID_CONFIG = "cartesian" ! @@ -228,6 +226,35 @@ S_RANGE = 1.0 ! [1e-3] default = 2.0 ! Initial salinity range ! === module MOM_diag_mediator === +NUM_DIAG_COORDS = 2 ! default = 1 + ! The number of diagnostic vertical coordinates to use. For each coordinate, an + ! entry in DIAG_COORDS must be provided. +DIAG_COORDS = "z Z ZSTAR", "rho0 RHO0 RHO" ! + ! A list of string tuples associating diag_table modules to a coordinate + ! definition used for diagnostics. Each string is of the form + ! "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". +DIAG_COORD_DEF_RHO0 = "FILE:targetlayers_rho0.nc,interfaces=interfaces" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO0 + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_P_REF_RHO0 = 0.0 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the diagnostic coordinate density. + ! (1 Pa = 1e4 dbar, so 2e7 is commonly used.) This is only used for the RHO + ! coordinate. +DIAG_COORD_NEEDS_SORTING_RHO0 = True ! [Boolean] default = False + ! Specifies whether the variable from which the coordinate is derived (e.g. + ! density) should be vertically sorted (to be monotonically increasing) prior to + ! regridding. The sorting is carried over to all remapped fields. ! === module MOM_lateral_mixing_coeffs === diff --git a/src/MOM6 b/src/MOM6 index 772b76cc5f..c4a72dfb05 160000 --- a/src/MOM6 +++ b/src/MOM6 @@ -1 +1 @@ -Subproject commit 772b76cc5f9d8d1165de9185f1b83ca1ec9473e2 +Subproject commit c4a72dfb0535b13bc995ddd7bb560dc4d268bb81 diff --git a/src/SIS2 b/src/SIS2 index 54314f8d26..3dfbfc1958 160000 --- a/src/SIS2 +++ b/src/SIS2 @@ -1 +1 @@ -Subproject commit 54314f8d262b6a0f4957aae5765b251d47a53115 +Subproject commit 3dfbfc195808097702e440c6e0373fdb97e5a8eb diff --git a/src/icebergs b/src/icebergs index 0908ff0f78..729b231d17 160000 --- a/src/icebergs +++ b/src/icebergs @@ -1 +1 @@ -Subproject commit 0908ff0f7804ddb7b61ea8372bfd90eb6d08472a +Subproject commit 729b231d173787a60e95f23854c671f90310641e diff --git a/src/mkmf b/src/mkmf index ae738def18..3fe7c00f63 160000 --- a/src/mkmf +++ b/src/mkmf @@ -1 +1 @@ -Subproject commit ae738def1894051ec8f698644dd38006c7b9eec6 +Subproject commit 3fe7c00f63cd6d07aa10a1c0a02069cc14067c85 From da00fafadaf64d15da0c0d8c7ca9e746f25e46fc Mon Sep 17 00:00:00 2001 From: Graeme MacGilchrist Date: Mon, 14 Oct 2024 14:34:56 +0100 Subject: [PATCH 07/12] includes example for temperature remapping --- ocean_only/flow_downslope/common/MOM_input | 11 +- ocean_only/flow_downslope/common/diag_table | 327 ++- ocean_only/flow_downslope/gmac_analysis.ipynb | 134 +- .../flow_downslope/gmac_targetlayers.ipynb | 73 - .../EPBL_diagscalar-histogram/INPUT | 1 + .../EPBL_diagscalar-histogram/MOM_input | 1 + .../EPBL_diagscalar-histogram/MOM_override | 3 + .../EPBL_diagscalar-histogram/MOM_override2 | 5 + .../MOM_parameter_doc.all | 1823 +++++++++++++++++ .../MOM_parameter_doc.debugging | 86 + .../MOM_parameter_doc.layout | 56 + .../MOM_parameter_doc.short | 410 ++++ .../EPBL_diagscalar-histogram/data_table | 1 + .../EPBL_diagscalar-histogram/diag_table | 1 + .../EPBL_diagscalar-histogram/input.nml | 1 + ocean_only/single_column/KPP/diag_table | 1 + 16 files changed, 2746 insertions(+), 188 deletions(-) delete mode 100644 ocean_only/flow_downslope/gmac_targetlayers.ipynb create mode 120000 ocean_only/single_column/EPBL_diagscalar-histogram/INPUT create mode 120000 ocean_only/single_column/EPBL_diagscalar-histogram/MOM_input create mode 100644 ocean_only/single_column/EPBL_diagscalar-histogram/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar-histogram/MOM_override2 create mode 100644 ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.all create mode 100644 ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.debugging create mode 100644 ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.layout create mode 100644 ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.short create mode 120000 ocean_only/single_column/EPBL_diagscalar-histogram/data_table create mode 120000 ocean_only/single_column/EPBL_diagscalar-histogram/diag_table create mode 120000 ocean_only/single_column/EPBL_diagscalar-histogram/input.nml diff --git a/ocean_only/flow_downslope/common/MOM_input b/ocean_only/flow_downslope/common/MOM_input index b1d5f01fe4..6241c86323 100644 --- a/ocean_only/flow_downslope/common/MOM_input +++ b/ocean_only/flow_downslope/common/MOM_input @@ -210,16 +210,15 @@ S_RANGE = 1.0 ! [1e-3] default = 2.0 ! Initial salinity range ! === module MOM_diag_mediator === -NUM_DIAG_COORDS = 2 ! default = 1 +NUM_DIAG_COORDS = 1 ! default = 1 ! The number of diagnostic vertical coordinates to use. For each coordinate, an ! entry in DIAG_COORDS must be provided. -DIAG_COORDS = "z Z ZSTAR", "rho0 RHO0 RHO" ! +DIAG_COORDS = "scalar SCALAR SCALAR" ! ! A list of string tuples associating diag_table modules to a coordinate ! definition used for diagnostics. Each string is of the form ! "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". DIAG_COORD_P_REF_RHO0 = 0.0 -DIAG_COORD_NEEDS_SORTING_RHO0 = True -DIAG_COORD_DEF_RHO0 = "FILE:targetlayers_rho0.nc,interfaces=interfaces" ! default = "WOA09" +DIAG_COORD_DEF_SCALAR = "FILE:targetlayers_scalar.nc,interfaces=interfaces" ! default = "WOA09" ! Determines how to specify the coordinate resolution. Valid options are: ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO2 ! UNIFORM[:N] - uniformly distributed @@ -234,6 +233,8 @@ DIAG_COORD_DEF_RHO0 = "FILE:targetlayers_rho0.nc,interfaces=interfaces" ! defaul ! by a comma or space, for sigma-2 and dz. e.g. ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_HISTOGRAM_EXTENSIVE_DIAGS_SCALAR = True + ! === module MOM_lateral_mixing_coeffs === ! === module MOM_set_visc === @@ -408,7 +409,7 @@ BUOY_CONFIG = "NONE" ! default = "zero" DT_FORCING = 1800.0 ! [s] default = 300.0 ! The time step for changing forcing, coupling with other components, or ! potentially writing certain diagnostics. The default value is given by DT. -DAYMAX = 12.0 ! [hours] +DAYMAX = 96.0 ! [hours] ! The final time of the whole simulation, in units of TIMEUNIT seconds. This ! also sets the potential end time of the present run segment if the end time is ! not set via ocean_solo_nml in input.nml. diff --git a/ocean_only/flow_downslope/common/diag_table b/ocean_only/flow_downslope/common/diag_table index 7cf18ca9bf..72afb94da1 100644 --- a/ocean_only/flow_downslope/common/diag_table +++ b/ocean_only/flow_downslope/common/diag_table @@ -1,76 +1,251 @@ -"MOM resting experiment" -1 1 1 0 0 0 -"prog",6,"hours",1,"hours","Time" -"prog_z",6,"hours",1,"hours","Time" -"prog_rho0",6,"hours",1,"hours","Time" - -#This is the field section of the diag_table. - -# Prognostic Ocean fields: -#========================= - -"ocean_model","u","u","prog","all",.false.,"none",2 -"ocean_model","v","v","prog","all",.false.,"none",2 -"ocean_model","h","h","prog","all",.false.,"none",2 -"ocean_model","e","e","prog","all",.false.,"none",2 -"ocean_model","temp","temp","prog","all",.false.,"none",2 -"ocean_model","salt","salt","prog","all",.false.,"none",2 -"ocean_model","rhoinsitu","rhoinsitu","prog","all",.false.,"none",2 -"ocean_model","rhopot0","rhopot0","prog","all",.false.,"none",2 -"ocean_model","rhopot2","rhopot2","prog","all",.false.,"none",2 - -# z output -"ocean_model_z","temp","temp","prog_z","all",.false.,"none",2 -"ocean_model_z","salt","salt","prog_z","all",.false.,"none",2 -"ocean_model_z","u","u","prog_z","all",.false.,"none",2 -"ocean_model_z","v","v","prog_z","all",.false.,"none",2 -"ocean_model_z","h","h","prog_z","all",.false.,"none",2 -"ocean_model_z","e","e","prog_z","all",.false.,"none",2 -"ocean_model_z","rhopot0","rhopot0","prog_z","all",.false.,"none",2 -"ocean_model_z","rhopot2","rhopot2","prog_z","all",.false.,"none",2 -"ocean_model_z","rhoinsitu","rhoinsitu","prog_z","all",.false.,"none",2 - -# rho0 output -"ocean_model_rho0","temp","temp","prog_rho0","all",.false.,"none",2 -"ocean_model_rho0","salt","salt","prog_rho0","all",.false.,"none",2 -"ocean_model_rho0","u","u","prog_rho0","all",.false.,"none",2 -"ocean_model_rho0","v","v","prog_rho0","all",.false.,"none",2 -"ocean_model_rho0","h","h","prog_rho0","all",.false.,"none",2 -"ocean_model_rho0","e","e","prog_rho0","all",.false.,"none",2 -"ocean_model_rho0","rhopot0","rhopot0","prog_rho0","all",.false.,"none",2 -"ocean_model_rho0","rhopot2","rhopot2","prog_rho0","all",.false.,"none",2 -"ocean_model_rho0","rhoinsitu","rhoinsitu","prog_rho0","all",.false.,"none",2 -#============================================================================================= -# -#====> This file can be used with diag_manager/v2.0a (or higher) <==== -# -# -# FORMATS FOR FILE ENTRIES (not all input values are used) -# ------------------------ -# -#"file_name", output_freq, "output_units", format, "time_units", "time_long_name", ... -# (opt) new_file_frequecy, (opt) "new_file_freq_units", "new_file_start_date" -# -# -#output_freq: > 0 output frequency in "output_units" -# = 0 output frequency every time step -# =-1 output frequency at end of run -# -#output_units = units used for output frequency -# (years, months, days, minutes, hours, seconds) -# -#time_units = units used to label the time axis -# (days, minutes, hours, seconds) -# -# -# FORMAT FOR FIELD ENTRIES (not all input values are used) -# ------------------------ -# -#"module_name", "field_name", "output_name", "file_name" "time_sampling", time_avg, "other_opts", packing -# -#time_avg = .true. or .false. -# -#packing = 1 double precision -# = 2 float -# = 4 packed 16-bit integers -# = 8 packed 1-byte (not tested?) +CONFIG NAME +0001 1 1 0 0 0 + +#==================================================================================================== +# MOM6 +#==================================================================================================== +# MOM6 ocean diagnostics files + +"ocean_natv_thck", 6, "hours", 1, "hours", "time" +"ocean_natv_heat", 6, "hours", 1, "hours", "time" +"ocean_natv_salt", 6, "hours", 1, "hours", "time" +"ocean_natv_snap", 6, "hours", 1, "hours", "time" +"ocean_sclr_thck", 6, "hours", 1, "hours", "time" +"ocean_sclr_heat", 6, "hours", 1, "hours", "time" +"ocean_sclr_salt", 6, "hours", 1, "hours", "time" +"ocean_sclr_snap", 6, "hours", 1, "hours", "time" +"ocean_surf", 6, "hours", 1, "hours", "time" +"ocean_static", -1, "hours", 1, "hours", "time" # ocean_static is a protected name. Do not change this line. + +# --------------------------- # +# Static grid variables # +# --------------------------- # +"ocean_model", "areacello", "areacello", "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", "area_t", "area_t", "ocean_static", "all", "none", "none", 2 +"ocean_model", "area_u", "area_u", "ocean_static", "all", "none", "none", 2 +"ocean_model", "area_v", "area_v", "ocean_static", "all", "none", "none", 2 +"ocean_model", "area_q", "area_q", "ocean_static", "all", "none", "none", 2 +"ocean_model", "depth_ocean", "depth_ocean", "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", "Coriolis", "Coriolis", "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", "dxCvo", "dxCvo", "ocean_static", "all", "none", "none", 2 +"ocean_model", "dyCuo", "dyCuo", "ocean_static", "all", "none", "none", 2 + +############## +### NATIVE ### +# ------------------------------------------------- # +# Heat + budget terms [get from Andrew Shao github] # +# ------------------------------------------------- # + +# MEAN +"ocean_model", "temp", "temp" "ocean_natv_heat", "all", "mean", "none", 2 + +"ocean_model", "opottemptend", "opottemptend", "ocean_natv_heat", "all", "mean", "none", 1 +"ocean_model", "opottempdiff", "opottempdiff", "ocean_natv_heat", "all", "mean", "none", 1 +"ocean_model", "opottemppmdiff", "opottemppmdiff", "ocean_natv_heat", "all", "mean", "none", 1 +"ocean_model", "boundary_forcing_heat_tendency","boundary_forcing_heat_tendency", "ocean_natv_heat", "all", "mean", "none", 1 +"ocean_model", "frazil_heat_tendency", "frazil_heat_tendency", "ocean_natv_heat", "all", "mean", "none", 1 +"ocean_model", "T_advection_xy", "T_advection_xy", "ocean_natv_heat", "all", "mean", "none", 1 +"ocean_model", "Th_tendency_vert_remap", "Th_tendency_vert_remap", "ocean_natv_heat", "all", "mean", "none", 1 +"ocean_model", "internal_heat_heat_tendency", "internal_heat_heat_tendency", "ocean_natv_heat", "all", "mean", "none", 1 + +# SNAP +#"ocean_model", "temp", "temp" "ocean_natv_snap", "all", "none", "none", 2 + +# ------------------- # +# Salt + budget terms # +# ------------------- # + +"ocean_model", "salt", "salt", "ocean_natv_salt", "all", "mean", "none", 2 + +"ocean_model", "osalttend", "osalttend", "ocean_natv_salt", "all", "mean", "none", 1 +"ocean_model", "osaltdiff", "osaltdiff", "ocean_natv_salt", "all", "mean", "none", 1 +"ocean_model", "osaltpmdiff", "osaltpmdiff", "ocean_natv_salt", "all", "mean", "none", 1 +"ocean_model", "boundary_forcing_salt_tendency","boundary_forcing_salt_tendency", "ocean_natv_salt", "all", "mean", "none", 1 +"ocean_model", "S_advection_xy", "S_advection_xy", "ocean_natv_salt", "all", "mean", "none", 1 +"ocean_model", "Sh_tendency_vert_remap", "Sh_tendency_vert_remap", "ocean_natv_salt", "all", "mean", "none", 1 + +# SNAP +#"ocean_model", "salt", "salt" "ocean_natv_snap", "all", "none", "none", 2 + +# ------------------------------------------------- # +# Thickness + budget terms # +# ------------------------------------------------- # + +# MEAN +"ocean_model", "thkcello", "thkcello", "ocean_natv_thck", "all", "mean", "none", 2 + +"ocean_model", "dhdt", "dhdt", "ocean_natv_thck", "all", "mean", "none", 1 +"ocean_model", "dynamics_h_tendency", "dynamics_h_tendency", "ocean_natv_thck", "all", "mean", "none", 1 +"ocean_model", "vert_remap_h_tendency", "vert_remap_h_tendency", "ocean_natv_thck", "all", "mean", "none", 1 +"ocean_model", "boundary_forcing_h_tendency", "boundary_forcing_h_tendency", "ocean_natv_thck", "all", "mean", "none", 1 +"ocean_model", "internal_heat_h_tendency", "internal_heat_h_tendency", "ocean_natv_thck", "all", "mean", "none", 1 + +# SNAP +#"ocean_model", "thkcello", "thkcello" "ocean_natv_snap", "all", "none", "none", 2 +#"ocean_model", "e", "e" "ocean_natv_snap", "all", "none", "none", 2 + +# ----------------------------------------- # +# Other terms necessary for WMT calculation # +# ----------------------------------------- # + +# MEAN +"ocean_model", "rhoinsitu", "rhoinsitu", "ocean_natv_thck", "all", "mean", "none", 2 +"ocean_model", "rhopot0", "rhopot0", "ocean_natv_thck", "all", "mean", "none", 2 +"ocean_model", "rhopot2", "rhopot2", "ocean_natv_thck", "all", "mean", "none", 2 +"ocean_model", "drho_dT", "drho_dT", "ocean_natv_thck", "all", "mean", "none", 2 +"ocean_model", "drho_dS", "drho_dS", "ocean_natv_thck", "all", "mean", "none", 2 +"ocean_model", "umo", "umo", "ocean_natv_thck", "all", "mean", "none", 2 +"ocean_model", "vmo", "vmo", "ocean_natv_thck", "all", "mean", "none", 2 +"ocean_model", "e", "e", "ocean_natv_thck", "all", "mean", "none", 2 +"ocean_model", "rsdoabsorb", "rsdoabsorb", "ocean_natv_heat", "all", "mean", "none",2 + +# SNAP +#"ocean_model", "rhopot2", "rhopot2" "ocean_natv_snap", "all", "none", "none", 2 + +# -------------- # +# Lateral fluxes # +# -------------- # +# heat and salinity transport by residual mean advection +"ocean_model", "T_adx", "T_adx", "ocean_natv_heat", "all", "mean", "none",2 +"ocean_model", "T_ady", "T_ady", "ocean_natv_heat", "all", "mean", "none",2 +"ocean_model", "S_adx", "S_adx", "ocean_natv_salt", "all", "mean", "none",2 +"ocean_model", "S_ady", "S_ady", "ocean_natv_salt", "all", "mean", "none",2 + +############## +### SCALAR ### +# ------------------------------------------------- # +# Heat + budget terms [get from Andrew Shao github] # +# ------------------------------------------------- # + +# MEAN +"ocean_model_scalar", "temp", "temp" "ocean_sclr_heat", "all", "mean", "none", 2 + +"ocean_model_scalar", "opottemptend", "opottemptend", "ocean_sclr_heat", "all", "mean", "none", 1 +"ocean_model_scalar", "opottempdiff", "opottempdiff", "ocean_sclr_heat", "all", "mean", "none", 1 +"ocean_model_scalar", "opottemppmdiff", "opottemppmdiff", "ocean_sclr_heat", "all", "mean", "none", 1 +"ocean_model_scalar", "boundary_forcing_heat_tendency","boundary_forcing_heat_tendency", "ocean_sclr_heat", "all", "mean", "none", 1 +"ocean_model_scalar", "frazil_heat_tendency", "frazil_heat_tendency", "ocean_sclr_heat", "all", "mean", "none", 1 +"ocean_model_scalar", "T_advection_xy", "T_advection_xy", "ocean_sclr_heat", "all", "mean", "none", 1 +"ocean_model_scalar", "Th_tendency_vert_remap", "Th_tendency_vert_remap", "ocean_sclr_heat", "all", "mean", "none", 1 +"ocean_model_scalar", "internal_heat_heat_tendency", "internal_heat_heat_tendency", "ocean_sclr_heat", "all", "mean", "none", 1 + +# SNAP +#"ocean_model_scalar", "temp", "temp" "ocean_sclr_snap", "all", "none", "none", 2 + +# ------------------- # +# Salt + budget terms # +# ------------------- # + +"ocean_model_scalar", "salt", "salt", "ocean_sclr_salt", "all", "mean", "none", 2 + +"ocean_model_scalar", "osalttend", "osalttend", "ocean_sclr_salt", "all", "mean", "none", 1 +"ocean_model_scalar", "osaltdiff", "osaltdiff", "ocean_sclr_salt", "all", "mean", "none", 1 +"ocean_model_scalar", "osaltpmdiff", "osaltpmdiff", "ocean_sclr_salt", "all", "mean", "none", 1 +"ocean_model_scalar", "boundary_forcing_salt_tendency","boundary_forcing_salt_tendency", "ocean_sclr_salt", "all", "mean", "none", 1 +"ocean_model_scalar", "S_advection_xy", "S_advection_xy", "ocean_sclr_salt", "all", "mean", "none", 1 +"ocean_model_scalar", "Sh_tendency_vert_remap", "Sh_tendency_vert_remap", "ocean_sclr_salt", "all", "mean", "none", 1 + +# SNAP +#"ocean_model_scalar", "salt", "salt" "ocean_sclr_snap", "all", "none", "none", 2 + +# ------------------------ # +# Thickness + budget terms # +# ------------------------ # + +# MEAN +"ocean_model_scalar", "thkcello", "thkcello", "ocean_sclr_thck", "all", "mean", "none", 2 + +"ocean_model_scalar", "dhdt", "dhdt", "ocean_sclr_thck", "all", "mean", "none", 1 +"ocean_model_scalar", "dynamics_h_tendency", "dynamics_h_tendency", "ocean_sclr_thck", "all", "mean", "none", 1 +"ocean_model_scalar", "vert_remap_h_tendency", "vert_remap_h_tendency", "ocean_sclr_thck", "all", "mean", "none", 1 +"ocean_model_scalar", "boundary_forcing_h_tendency", "boundary_forcing_h_tendency", "ocean_sclr_thck", "all", "mean", "none", 1 +"ocean_model_scalar", "internal_heat_h_tendency", "internal_heat_h_tendency", "ocean_sclr_thck", "all", "mean", "none", 1 + +# SNAP +#"ocean_model_scalar", "thkcello", "thkcello" "ocean_sclr_snap", "all", "none", "none", 2 +#"ocean_model_scalar", "e", "e" "ocean_sclr_snap", "all", "none", "none", 2 + +# ----------------------------------------- # +# Other terms necessary for WMT calculation # +# ----------------------------------------- # + +# MEAN +"ocean_model_scalar", "rhoinsitu", "rhoinsitu", "ocean_sclr_thck", "all", "mean", "none", 2 +"ocean_model_scalar", "rhopot0", "rhopot0", "ocean_sclr_thck", "all", "mean", "none", 2 +"ocean_model_scalar", "rhopot2", "rhopot2", "ocean_sclr_thck", "all", "mean", "none", 2 +"ocean_model_scalar", "drho_dT", "drho_dT", "ocean_sclr_thck", "all", "mean", "none", 2 +"ocean_model_scalar", "drho_dS", "drho_dS", "ocean_sclr_thck", "all", "mean", "none", 2 +#"ocean_model_scalar", "umo", "umo", "ocean_sclr_thck", "all", "mean", "none", 2 +#"ocean_model_scalar", "vmo", "vmo", "ocean_sclr_thck", "all", "mean", "none", 2 +"ocean_model_scalar", "e", "e", "ocean_sclr_thck", "all", "mean", "none", 2 +"ocean_model_scalar", "rsdoabsorb", "rsdoabsorb", "ocean_sclr_heat", "all", "mean", "none",2 + +# SNAP +"ocean_model_scalar", "rhopot2", "rhopot2" "ocean_sclr_snap", "all", "none", "none", 2 + + +# -------------- # +# Lateral fluxes # +# -------------- # +# heat and salinity transport by residual mean advection +#"ocean_model_scalar", "T_adx", "T_adx", "ocean_sclr_heat", "all", "mean", "none",2 +#"ocean_model_scalar", "T_ady", "T_ady", "ocean_sclr_heat", "all", "mean", "none",2 +#"ocean_model_scalar", "S_adx", "S_adx", "ocean_sclr_salt", "all", "mean", "none",2 +#"ocean_model_scalar", "S_ady", "S_ady", "ocean_sclr_salt", "all", "mean", "none",2 + +#################################### +### SURFACE VARIABLES AND FLUXES ### + +"ocean_model", "tos", "tos" "ocean_surf", "all", "mean", "none", 2 +"ocean_model", "sos", "sos" "ocean_surf", "all", "mean", "none", 2 + +# MASS +"ocean_model", "prlq", "prlq", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "prsn", "prsn", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "evs", "evs", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "friver", "friver", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "ficeberg", "ficeberg", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "fsitherm", "fsitherm", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "wfo", "wfo", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "net_massout", "net_massout", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "net_massin", "net_massin", "ocean_surf", "all", "mean", "none",2 + +# HEAT +"ocean_model", "hfds", "hfds", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "heat_content_surfwater", "heat_content_surfwater", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "hfrainds", "hfrainds", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "hfevapds", "hfevapds", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "hfrunoffds", "hfrunoffds", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "hfsnthermds", "hfsnthermds", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "hfsifrazil", "hfsifrazil", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "hfsithermds", "hfsithermds", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "hfibthermds", "hfibthermds", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "hfsolidrunoffds", "hfsolidrunoffds", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "rlntds", "rlntds", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "hflso", "hflso", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "hfsso", "hfsso", "ocean_surf", "all", "mean", "none",2 +"ocean_model", "rsdo", "rsdo", "ocean_surf", "all", "mean", "none",2 + +# SALT +"ocean_model", "sfdsi", "sfdsi", "ocean_surf", "all", "mean", "none",2 +#"ocean_model", "sfriver", "sfriver", "ocean_surf", "all", "mean", "none",2 + + diff --git a/ocean_only/flow_downslope/gmac_analysis.ipynb b/ocean_only/flow_downslope/gmac_analysis.ipynb index 92fa3b28e2..c870f01126 100644 --- a/ocean_only/flow_downslope/gmac_analysis.ipynb +++ b/ocean_only/flow_downslope/gmac_analysis.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 64, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 149, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -399,27 +399,27 @@ " e (Time, rho0_i, xh) float32 13kB 0.0 0.0 0.0 ... -4e+03 -4e+03\n", " rhopot0 (Time, rho0_l, xh) float32 12kB 1.035e+03 1.035e+03 ... 1.035e+03\n", " rhopot2 (Time, rho0_l, xh) float32 12kB 1.035e+03 1.035e+03 ... 1.035e+03\n", - " rhoinsitu (Time, rho0_l, xh) float32 12kB 1.035e+03 1.035e+03 ... 1.035e+03
  • " ], "text/plain": [ " Size: 112kB\n", @@ -709,7 +709,7 @@ " rhoinsitu (Time, rho0_l, xh) float32 12kB 1.035e+03 1.035e+03 ... 1.035e+03" ] }, - "execution_count": 149, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -722,35 +722,35 @@ }, { "cell_type": "code", - "execution_count": 150, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "tmp = 0.5*(ds['e'].isel({zcoord+'_i':slice(0,-1)}).values + ds['e'].isel({zcoord+'_i':slice(1,None)}).values)\n", "ds['eh'] = ds['temp'].copy(data=tmp)\n", - "ds['eh'] = ds['eh'].where(np.isfinite(ds['eh']),ds['eh'].min(zcoord+'_l'))" + "# ds['eh'] = ds['eh'].where(np.isfinite(ds['eh']),ds['eh'].min(zcoord+'_l'))" ] }, { "cell_type": "code", - "execution_count": 151, + "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/var/folders/89/8wbtnb1d5y30tjpcqtlr5f840000gq/T/ipykernel_971/2478410361.py:7: UserWarning: The input coordinates to pcolormesh are interpreted as cell centers, but are not monotonically increasing or decreasing. This may lead to incorrectly calculated cell edges, in which case, please supply explicit cell edges to pcolormesh.\n", + "/var/folders/89/8wbtnb1d5y30tjpcqtlr5f840000gq/T/ipykernel_18491/2478410361.py:7: UserWarning: The input coordinates to pcolormesh are interpreted as cell centers, but are not monotonically increasing or decreasing. This may lead to incorrectly calculated cell edges, in which case, please supply explicit cell edges to pcolormesh.\n", " plt.pcolormesh(x,e,s)\n" ] }, { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 151, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, @@ -775,11 +775,78 @@ "plt.pcolormesh(x,e,s)\n", "plt.colorbar()" ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ds['e'].isel(Time=0).plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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iAg8ePAADg4O6NixI44dOwZ7e3sAT6f8Nm/ejC+++AI5OTmoX78+Ro8ejZCQEJVYEhMTkZ6ervz8oraJiIgMleL/D13qV0WSKGmnMSpXGRkZsLGxQSf04wuviYioRPkiDwexE+np6WX2EunC30sXExxQQ4cXXmdmKtCo8Z0yjbUiMuiRLiIiItK/wqcQdalfFTHpIiIiIlkKxNNDl/pVUaV9epGIiIioIuFIFxEREcnChfTaYdJFREREsiggoQDFv2FFk/pVEacXiYiIiPSAI11EREQki0I8PXSpXxUx6SIiIiJZCnScXtSlriFj0kVERESyMOnSDtd0EREREekBR7qIiIhIFoWQoBA6PL2oQ11DxqSLiIiIZOH0onY4vUhERESkBxzpIiIiIlkKYIQCHcZtCkoxFkPCpIuIiIhkETqu6RJVdE0XpxeJiIiI9IAjXURERCQLF9Jrh0kXERERyVIgjFAgdFjTVUVfA8TpRSIiIiI94EgXERERyaKABIUO4zYKVM2hLiZdREREJAvXdGmHSRcRERHJovuarqo50sU1XURERER6wJEuIiIikuXpmi4dXnjN6UUiIiKiF1Po+BqgqrqQntOLRERERHrAkS4iIiKShQvptcOki4iIiGRRwIj7dGmB04tEREREesCRLiIiIpKlQEgoEDpsjqpDXUPGpIuIiIhkKdDx6cUCTi8SERERUVnhSBcRERHJohBGUOjw9KKCTy8SERERvRinF7XDpIuIiIhkUUC3xfCK0gvFoHBNFxEREZEecKSLiIiIZNF9c9SqOebDpIuIiIhk0f01QFUz6aqavSYiIiLSM450ERERkSwKSFBAl4X03JGeiIiI6IU4vaidqtlrIiIiIj3jSBcRERHJovvmqFVzzIdJFxEREcmiEBIUumyOqkNdQ1Y1U00iIiIiPeNIFxEREcmi0HF6kZujEhEREWlAIYyg0OEJRF3qGjImXURERCRLASQU6LDXli51DVnVTDWJiIiI9IwjXURERCQLpxe1w6SLiIiIZCmAblOEBaUXikGpmqkmERERkZ5xpIuIiIhk4fSidph0ERERkSx84bV2qmaviYiIyOAsW7YM7u7uMDc3h4+PDw4fPlzi9evXr4eXlxcsLS3h5OSEESNG4N69e3qKtigmXURERCSLgASFDofQYhH+5s2bMWnSJEybNg1xcXHo0KED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06bYa5ycnJCUlKRTYERERESViezpRT8/P7Rq1apIeW5uLn788UcAgCRJqF+/vu7RERERUYXD6UXtyE66RowYgfT09CLlmZmZGDFiRKkERURERBUXt4zQjuykSwgBSSr6Zf3zzz+wsbEplaCIiIiIKhuN13S1bNkSkiRBkiR07doVxsb/q1pQUICkpCT07NmzTIIkIiKiikPoOEVYVUe6NE66+vfvDwCIj49Hjx49YGVlpTxnamoKNzc3vPnmm2rrPvt0oyYkSUJsbCzXhREREVVAAoAQutWvijROumbMmAEAcHNzw6BBg2Bubq5xIw8fPkRERIRG049CCAQFBaGgoEDj+xMRERFVdLK3jNB209N33nkH9vb2Gl07fvx4rdogIiKisqeABEmHV/lU1dcAaZR02dra4tKlS6hTpw5q1aqldiF9ofv37xcpk/suxszMTFnXExERkf5wc1TtaJR0LVy4EDVq1FD+uaSki4iIiCo3hZAg6ZA4VdV9ujRKup6dUgwMDNS6MSEErl+/DhcXFxgbGyM3Nxfbt29HTk4OevfujTp16mh9byIiIqKKTPY+XbGxsTh79qzy886dO9G/f39MnToVubm5xdZLTEyEu7s7GjZsiMaNGyMpKQlt27bFyJEj8eGHH6Jx48a4fPmydr0gIiIivRFC96Mqkp10jRkzBpcuXQIAXLt2DYMGDYKlpSW2bNmCkJCQYutNmTIFXl5eiI+Px+uvv47XX38d9erVw4MHD/DgwQO0a9cOM2fO1L4nREREpBfckV47spOuS5cuwdvbGwCwZcsW+Pn5YcOGDVizZg22bt1abL1jx47hiy++QPPmzTFr1iwkJCTgk08+gYmJCUxNTTFlyhQcOnRI644QERERVWSyt4wQQiifRvz999/x+uuvAwBcXFxw9+7dYutlZWUpN0mtXr06qlevDicnJ+X5evXq4c6dO3LDISIiIj3j04vakT3S5evri1mzZuGnn35CTEwM+vTpAwBISkqCg4NDsfWcnZ2RnJys/Dxv3jyVfbv+/fdf1KpVS244REREpGeK/38NkC5HVSQ76YqIiEBsbCzGjRuHadOmoWHDhgCAn3/+GW3bti22Xrdu3XDx4kXl5w8//FC5DQUAREVFoVWrVnLDISIiIjIIkhCl8wzBkydPUK1aNZiYmGhVPykpCebm5ipTjlVdRkYGbGxs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VwJpy8LCAiNGjMCIESN0ug8RERGVgyqwI31ZkL056pdffonPP/8cjx490qrB8PBwrF69ukj56tWrMXfuXK3uSURERHpUBXakLwuyR7q++eYbXL16FQ4ODnBzc4OJiYnK+djY2BLrf/fdd9iwYUOR8qZNm+Kdd97BlClT5IZEREREVOHJTrr69++vU4OpqalwcnIqUm5nZ4eUlBSd7k1ERERljwvptSM76ZoxY4ZODbq4uODo0aNFXo599OhRODs763RvIiIi0gNuGaEV2UkXADx8+BA///wzrl69ik8//RS2traIjY2Fg4MD6tatW2LdUaNGYdKkScjLy0OXLl0AAH/88QdCQkLw8ccfaxMOERERUYUnO+n6+++/0a1bN9jY2OD69esYPXo0bG1tsX37dty4cQM//vhjifVDQkJw//59BAUFITc3FwBgbm6OKVOmIDQ0VLteEBERkf7oOL1YVUe6ZD+9GBwcjMDAQFy+fBnm5ubK8l69euHQoUMvrC9JEubOnYt///0XJ06cwJkzZ3D//n18/vnnckMhIiKi8sCnF7Uie6Tr5MmT+O6774qU161bF6mpqRrfx8rKCq+88orc5omIiKi8cU2XVmQnXebm5sjIyChSnpiYCDs7O43ucfLkSWzZsgXJycnKKcZC27ZtkxsSERERUYUne3qxX79+mDlzJvLy8gA8nS5MTk7GZ599hjfffPOF9Tdt2oR27drhwoUL2L59O/Ly8nDhwgXs378fNjY28ntAREREelW4ZYQuR1UkO+maP38+/v33X9jb2+Px48fw8/NDw4YNUaNGDcyePfuF9efMmYOFCxfi119/hampKRYtWoSEhAQEBATA1dVVq04QERERVXSypxetra1x5MgR7N+/H7GxsVAoFGjVqhW6deumUf2rV6+iT58+AAAzMzNkZ2dDkiRMnjwZXbp0wRdffCE3JCIiIqIKT3bS9eOPP2LQoEHo0qWLcp8tAMjNzcWmTZswbNiwEuvb2toiMzMTwNPF9+fOnUPz5s3x8OFDrd/nSERERHrEhfRakT29OGLECKSnpxcpz8zMxIgRI15Yv0OHDoiOjgYABAQEYOLEiRg9ejTeffdddO3aVW44REREpGdc06Ud2SNdQghIklSk/J9//tFoIfzSpUvx5MkTAEBoaChMTExw5MgRDBw4ENOnT5cbDhEREZFB0Djp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FluvcPMyhUIht0kiIiIig6dx0rV48WIATzdAfX5n+oKCAhw6dAiNGjXS6F6XLl3CwYMHkZaWViQJK3xvIhEREVVQnF7UisZJ18KFCwE8HelasWKFylSgqakp3NzcsGLFihfe5/vvv8eHH36IOnXqwNHRUWWXe0mSmHQREREZgiqaOOlC46QrKSkJANC5c2ds27YNtWrV0qrBWbNmYfbs2ZgyZYpW9YmIiIgMkezNUQ8cOIBatWohNzcXiYmJyM/Pl1X/wYMHePvtt+U2S0RERBVE4UJ6XY6qSHbS9fjxY4wcORKWlpZo2rSp8o3eEyZMwFdfffXC+m+//TaioqLkR0pEREQVA3ek14rspxc/++wznDlzBgcPHkTPnj2V5d26dcOMGTPw2WeflVi/YcOGmD59Ok6cOIHmzZvDxMRE5fyECRPkhkRERER6xC0jtCM76dqxYwc2b96M1q1bqyyCb9KkCa5evfrC+itXroSVlRViYmIQExOjck6SJCZdREREVCnJTrr+/fffIhujAkB2drZKElacwgX5REREZKC4ZYRWZK/peuWVV/Dbb78pPxcmWt9//z3atGlTepERERFRhcSF9NqRPdIVHh6Onj174sKFC8jPz8eiRYtw/vx5HD9+vMh0YaHg4GB8+eWXqF69OoKDg0u8/4IFC+SGRERERFThyU662rZti6NHj2L+/Pnw8PBAVFQUWrVqhePHj6N58+Zq68TFxSEvL0/55+JoMj1JRERE5YzTi1qRnXQBQPPmzbF27VqNrz9w4IDaPxMREZEBYtKlFdlJV0ZGhtpySZJgZmZW4kuviYiIiKoq2UlXzZo1S5wGrFevHgIDAzFjxgwYGclep09EREQVHPfp0o7spGvNmjWYNm0aAgMD8eqrr0IIgZMnT2Lt2rX4z3/+g3///Rfz58+HmZkZpk6dWhYxExERUXni9KJWZCdda9euxTfffIOAgABl2RtvvIHmzZvju+++wx9//AFXV1fMnj2bSRcRERHR/5M9/3f8+HG0bNmySHnLli1x/PhxAED79u2V72QkIiKiykUSQuejKpKddNWrVw8//PBDkfIffvgBLi4uAIB79+6hVq1aukdHREREFQ9feK0V2dOL8+fPx9tvv409e/bglVdegSRJOHnyJC5evIiff/4ZAHDy5EkMGjSo1IMlIiKi8seF9NqRnXS98cYbuHTpElasWIHExEQIIdCrVy/s2LEDbm5uAIAPP/ywtOMkIiIiMmiykq68vDz4+/vju+++Q3h4eFnFRERERBUZn17Uiqyky8TEBOfOnePreoiIiKowTi9qR/ZC+mHDhqldSE9ERERExZO9pis3NxerVq1CdHQ0fH19Ub16dZXzCxYsKLXgiIiIqALi9KJWZCdd586dQ6tWrQAAly5dUjnHaUciIqLKj9OL2pGddB04cKAs4iAiIiKq1GQnXURERFTFcXpRK1olXSdPnsSWLVuQnJyM3NxclXPbtm0rlcCIiIio4qqqU4S6kP304qZNm9CuXTtcuHAB27dvR15eHi5cuID9+/fDxsamLGIkIiIiMniyk645c+Zg4cKF+PXXX2FqaopFixYhISEBAQEBcHV1LYsYiYiIqCIRQvejCpKddF29ehV9+vQBAJiZmSE7OxuSJGHy5MlYuXJlqQdIREREFUvh04u6HFWR7KTL1tYWmZmZAIC6devi3LlzAICHDx/i0aNHpRsdERERVTyiFI4qSOOk6/3330dmZiY6dOiA6OhoAEBAQAAmTpyI0aNH491330XXrl3LLFAiIiIiQ6bx04tr167FV199haVLl+LJkycAgNDQUJiYmODIkSMYOHAgpk+fXmaBEhERUcUgKZ4eutSvijROusT/L3qztbVVlhkZGSEkJAQhISGlHxkRERFVTNynSyuy1nTxNT9ERERE2pG1OepLL730wsTr/v37OgVEREREFRvfvagdWUnXF198wQ1QiYiIqjpd99qqovt0yUq63nnnHdjb25dVLERERESVlsZJF9dzEREREcDpRW3JfnqRiIiIqjg+vagVjZMuhaKKbqpBREREVApkrekiIiIi4vSidph0ERERkTx8elErTLqIiIhIFo50aUfWjvREREREpB2OdBEREZE8fHpRK0y6iIiISBZOL2qH04tEREREemDQSdehQ4fQt29fODs7Q5Ik7NixQ+W8EAJhYWFwdnaGhYUFOnXqhPPnz6tcM2bMGHh4eMDCwgJ2dnbo168fLl68qLa9nJwceHt7Q5IkxMfHFxtXXl4epkyZgubNm6N69epwdnbGsGHDcPv2bV27TEREVP4UQvejCjLopCs7OxteXl5YunSp2vPz5s3DggULsHTpUpw8eRKOjo7o3r07MjMzldf4+PggMjISCQkJ2LdvH4QQ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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "(ds['e'].isel(Time=0)>0).plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "om4labs", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -793,10 +860,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9" - }, - "orig_nbformat": 4 + "version": "3.11.5" + } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/ocean_only/flow_downslope/gmac_targetlayers.ipynb b/ocean_only/flow_downslope/gmac_targetlayers.ipynb deleted file mode 100644 index 4088b77125..0000000000 --- a/ocean_only/flow_downslope/gmac_targetlayers.ipynb +++ /dev/null @@ -1,73 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import xarray as xr" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "layername = 'rho0'\n", - "units = 'kg m-3'\n", - "nk = 20\n", - "lmin = 1034\n", - "lmax = 1035\n", - "data = np.linspace(lmin,lmax,nk)\n", - "layers = xr.DataArray(\n", - " data=data,\n", - " dims=['z_i'],\n", - " coords={'z_i':data},\n", - " name='interfaces',\n", - " attrs={'units':units}\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "layers.to_netcdf('common/targetlayers_'+layername+'.nc')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "om4labs", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.12" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/ocean_only/single_column/EPBL_diagscalar-histogram/INPUT b/ocean_only/single_column/EPBL_diagscalar-histogram/INPUT new file mode 120000 index 0000000000..51db2b9899 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar-histogram/INPUT @@ -0,0 +1 @@ +../EPBL_diagscalar/INPUT \ No newline at end of file diff --git a/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_input b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_input new file mode 120000 index 0000000000..733780a07d --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_input @@ -0,0 +1 @@ +../EPBL_diagscalar/MOM_input \ No newline at end of file diff --git a/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_override b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_override new file mode 100644 index 0000000000..875579f76d --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_override @@ -0,0 +1,3 @@ +! Generated by create_data.m +F_0 = 7.59943e-05 +INPUTDIR = "INPUT/BATS" diff --git a/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_override2 b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_override2 new file mode 100644 index 0000000000..1ec7f4382c --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_override2 @@ -0,0 +1,5 @@ +! Generated by run_suite.csh +!#override DAYMAX = 365 +!#override ALE_COORDINATE_CONFIG = "FILE:INPUT/vgrid_cm4_4.nc,dz" ! 4 meter surface +!#override ALE_COORDINATE_CONFIG = "FILE:INPUT/vgrid_cm4.nc,dz" ! 2 meter surface +#override DIAG_COORD_HISTOGRAM_EXTENSIVE_DIAGS_SCALAR = True diff --git a/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.all b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.all new file mode 100644 index 0000000000..a31a328a92 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.all @@ -0,0 +1,1823 @@ +! This file was written by the model and records all non-layout or debugging parameters used at run-time. + +! === module MOM === +SPLIT = False ! [Boolean] default = True + ! Use the split time stepping if true. +USE_RK2 = False ! [Boolean] default = False + ! If true, use RK2 instead of RK3 in the unsplit time stepping. +CALC_RHO_FOR_SEA_LEVEL = False ! [Boolean] default = False + ! If true, the in-situ density is used to calculate the effective sea level that + ! is returned to the coupler. If false, the Boussinesq parameter RHO_0 is used. +ENABLE_THERMODYNAMICS = True ! [Boolean] default = True + ! If true, Temperature and salinity are used as state variables. +USE_EOS = True ! [Boolean] default = True + ! If true, density is calculated from temperature and salinity with an equation + ! of state. If USE_EOS is true, ENABLE_THERMODYNAMICS must be true as well. +DIABATIC_FIRST = False ! [Boolean] default = False + ! If true, apply diabatic and thermodynamic processes, including buoyancy + ! forcing and mass gain or loss, before stepping the dynamics forward. +USE_CONTEMP_ABSSAL = False ! [Boolean] default = False + ! If true, the prognostics T&S are the conservative temperature and absolute + ! salinity. Care should be taken to convert them to potential temperature and + ! practical salinity before exchanging them with the coupler and/or reporting + ! T&S diagnostics. +ADIABATIC = False ! [Boolean] default = False + ! There are no diapycnal mass fluxes if ADIABATIC is true. This assumes that KD + ! = 0.0 and that there is no buoyancy forcing, but makes the model faster by + ! eliminating subroutine calls. +DO_DYNAMICS = True ! [Boolean] default = True + ! If False, skips the dynamics calls that update u & v, as well as the gravity + ! wave adjustment to h. This may be a fragile feature, but can be useful during + ! development +OFFLINE_TRACER_MODE = False ! [Boolean] default = False + ! If true, barotropic and baroclinic dynamics, thermodynamics are all bypassed + ! with all the fields necessary to integrate the tracer advection and diffusion + ! equation are read in from files stored from a previous integration of the + ! prognostic model. NOTE: This option only used in the ocean_solo_driver. +USE_REGRIDDING = True ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). If False, use the + ! layered isopycnal algorithm. +REMAP_UV_USING_OLD_ALG = False ! [Boolean] default = False + ! If true, uses the old remapping-via-a-delta-z method for remapping u and v. If + ! false, uses the new method that remaps between grids described by an old and + ! new thickness. +REMAP_AUXILIARY_VARS = False ! [Boolean] default = False + ! If true, apply ALE remapping to all of the auxiliary 3-dimensional variables + ! that are needed to reproduce across restarts, similarly to what is already + ! being done with the primary state variables. The default should be changed to + ! true. +BULKMIXEDLAYER = False ! [Boolean] default = False + ! If true, use a Kraus-Turner-like bulk mixed layer with transitional buffer + ! layers. Layers 1 through NKML+NKBL have variable densities. There must be at + ! least NKML+NKBL+1 layers if BULKMIXEDLAYER is true. BULKMIXEDLAYER can not be + ! used with USE_REGRIDDING. The default is influenced by ENABLE_THERMODYNAMICS. +THICKNESSDIFFUSE = False ! [Boolean] default = False + ! If true, isopycnal surfaces are diffused with a Laplacian coefficient of KHTH. +APPLY_INTERFACE_FILTER = False ! [Boolean] default = False + ! If true, model interface heights are subjected to a grid-scale dependent + ! spatial smoothing, often with biharmonic filter. +USE_POROUS_BARRIER = True ! [Boolean] default = True + ! If true, use porous barrier to constrain the widths and face areas at the + ! edges of the grid cells. +BATHYMETRY_AT_VEL = False ! [Boolean] default = False + ! If true, there are separate values for the basin depths at velocity points. + ! Otherwise the effects of topography are entirely determined from thickness + ! points. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that is actually used will + ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode + ! or the coupling timestep in coupled mode.) +DT_THERM = 3600.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. Ideally DT_THERM should be + ! an integer multiple of DT and less than the forcing or coupling time-step, + ! unless THERMO_SPANS_COUPLING is true, in which case DT_THERM can be an integer + ! multiple of the coupling timestep. By default DT_THERM is set to DT. +THERMO_SPANS_COUPLING = False ! [Boolean] default = False + ! If true, the MOM will take thermodynamic and tracer timesteps that can be + ! longer than the coupling timestep. The actual thermodynamic timestep that is + ! used in this case is the largest integer multiple of the coupling timestep + ! that is less than or equal to DT_THERM. +HMIX_SFC_PROP = 1.0 ! [m] default = 1.0 + ! If BULKMIXEDLAYER is false, HMIX_SFC_PROP is the depth over which to average + ! to find surface properties like SST and SSS or density (but not surface + ! velocities). +HMIX_UV_SFC_PROP = 0.0 ! [m] default = 0.0 + ! If BULKMIXEDLAYER is false, HMIX_UV_SFC_PROP is the depth over which to + ! average to find surface flow properties, SSU, SSV. A non-positive value + ! indicates no averaging. +HFREEZE = -1.0 ! [m] default = -1.0 + ! If HFREEZE > 0, melt potential will be computed. The actual depth over which + ! melt potential is computed will be min(HFREEZE, OBLD), where OBLD is the + ! boundary layer depth. If HFREEZE <= 0 (default), melt potential will not be + ! computed. +INTERPOLATE_P_SURF = False ! [Boolean] default = False + ! If true, linearly interpolate the surface pressure over the coupling time + ! step, using the specified value at the end of the step. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the accumulated heat deficit + ! is returned in the surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = False ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = False ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice model may ask for more + ! salt than is available and drive the salinity negative otherwise.) +SALINITY_UNDERFLOW = 0.0 ! [PPT] default = 0.0 + ! A tiny value of salinity below which the it is set to 0. For reference, one + ! molecule of salt per square meter of ocean is of order 1e-29 ppt. +TEMPERATURE_UNDERFLOW = 0.0 ! [degC] default = 0.0 + ! A tiny magnitude of temperatures below which they are set to 0. +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a constant. This is only used + ! if ENABLE_THERMODYNAMICS is true. The default value is from the TEOS-10 + ! definition of conservative temperature. +USE_PSURF_IN_EOS = True ! [Boolean] default = True + ! If true, always include the surface pressure contributions in equation of + ! state calculations. +P_REF = 2.0E+07 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the coordinate density. (1 Pa = 1e4 + ! dbar, so 2e7 is commonly used.) This is only used if USE_EOS and + ! ENABLE_THERMODYNAMICS are true. +FIRST_DIRECTION = 0 ! default = 0 + ! An integer that indicates which direction goes first in parts of the code that + ! use directionally split updates, with even numbers (or 0) used for x- first + ! and odd numbers used for y-first. +ALTERNATE_FIRST_DIRECTION = False ! [Boolean] default = False + ! If true, after every dynamic timestep alternate whether the x- or y- direction + ! updates occur first in directionally split parts of the calculation. If this + ! is true, FIRST_DIRECTION applies at the start of a new run or if the next + ! first direction can not be found in the restart file. +CHECK_BAD_SURFACE_VALS = False ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +DEFAULT_ANSWER_DATE = 99991231 ! default = 99991231 + ! This sets the default value for the various _ANSWER_DATE parameters. +SURFACE_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the expressions for the surface properties. Values below + ! 20190101 recover the answers from the end of 2018, while higher values use + ! updated and more robust forms of the same expressions. +USE_DIABATIC_TIME_BUG = False ! [Boolean] default = False + ! If true, uses the wrong calendar time for diabatic processes, as was done in + ! MOM6 versions prior to February 2018. This is not recommended. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "MOM_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. +WRITE_GEOM = 1 ! default = 1 + ! If =0, never write the geometry and vertical grid files. If =1, write the + ! geometry and vertical grid files only for a new simulation. If =2, always + ! write the geometry and vertical grid files. Other values are invalid. +USE_DBCLIENT = False ! [Boolean] default = False + ! If true, initialize a client to a remote database that can be used for online + ! analysis and machine-learning inference. +ICE_SHELF = False ! [Boolean] default = False + ! If true, enables the ice shelf model. +USE_PARTICLES = False ! [Boolean] default = False + ! If true, use the particles package. +USE_UH_PARTICLES = False ! [Boolean] default = False + ! If true, use the uh velocity in the particles package. +ENSEMBLE_OCEAN = False ! [Boolean] default = False + ! If False, The model is being run in serial mode as a single realization. If + ! True, The current model realization is part of a larger ensemble and at the + ! end of step MOM, we will perform a gather of the ensemble members for + ! statistical evaluation and/or data assimilation. +HOMOGENIZE_FORCINGS = False ! [Boolean] default = False + ! If True, homogenize the forces and fluxes. + +! === module MOM_domains === +REENTRANT_X = True ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = True ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = False ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the domain. With + ! TRIPOLAR_N, NIGLOBAL must be even. +NIGLOBAL = 2 ! + ! The total number of thickness grid points in the x-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NJGLOBAL = 2 ! + ! The total number of thickness grid points in the y-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NIHALO = 2 ! default = 4 + ! The number of halo points on each side in the x-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. +NJHALO = 2 ! default = 4 + ! The number of halo points on each side in the y-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. + +! === module MOM_hor_index === +! Sets the horizontal array index types. + +! === module MOM_grid === +! Parameters providing information about the lateral grid. +REFERENCE_HEIGHT = 0.0 ! [m] default = 0.0 + ! A reference value for geometric height fields, such as bathyT. + +! === module MOM_fixed_initialization === +INPUTDIR = "INPUT/Labrador" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +GRID_CONFIG = "cartesian" ! + ! A character string that determines the method for defining the horizontal + ! grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +AXIS_UNITS = "degrees" ! default = "degrees" + ! The units for the Cartesian axes. Valid entries are: + ! degrees - degrees of latitude and longitude + ! m or meter(s) - meters + ! k or km or kilometer(s) - kilometers +SOUTHLAT = 30.0 ! [degrees] + ! The southern latitude of the domain or the equivalent starting value for the + ! y-axis. +LENLAT = 1.0 ! [degrees] + ! The latitudinal or y-direction length of the domain. +WESTLON = 0.0 ! [degrees] default = 0.0 + ! The western longitude of the domain or the equivalent starting value for the + ! x-axis. +LENLON = 1.0 ! [degrees] + ! The longitudinal or x-direction length of the domain. +RAD_EARTH = 6.378E+06 ! [m] default = 6.378E+06 + ! The radius of the Earth. +TOPO_CONFIG = "flat" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! bbuilder - build topography from list of functions. + ! benchmark - use the benchmark test case topography. + ! Neverworld - use the Neverworld test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a slope and channel configuration for the + ! ISOMIP test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! Kelvin - flat but with rotated land mask. + ! seamount - Gaussian bump for spontaneous motion test case. + ! dumbbell - Sloshing channel with reservoirs on both ends. + ! shelfwave - exponential slope for shelfwave test case. + ! Phillips - ACC-like idealized topography used in the Phillips config. + ! dense - Denmark Strait-like dense water formation and overflow. + ! USER - call a user modified routine. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! The minimum depth of the ocean. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. + +! === module MOM_open_boundary === +! Controls where open boundaries are located, what kind of boundary condition to impose, and what data to apply, +! if any. +OBC_NUMBER_OF_SEGMENTS = 0 ! default = 0 + ! The number of open boundary segments. +MASKING_DEPTH = -9999.0 ! [m] default = -9999.0 + ! The depth below which to mask points as land points, for which all fluxes are + ! zeroed out. MASKING_DEPTH is ignored if it has the special default value. +CHANNEL_CONFIG = "none" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +SUBGRID_TOPO_AT_VEL = False ! [Boolean] default = False + ! If true, use variables from TOPO_AT_VEL_FILE as parameters for porous barrier. +ROTATION = "betaplane" ! default = "2omegasinlat" + ! This specifies how the Coriolis parameter is specified: + ! 2omegasinlat - Use twice the planetary rotation rate + ! times the sine of latitude. + ! betaplane - Use a beta-plane or f-plane. + ! USER - call a user modified routine. +F_0 = 7.59943E-05 ! [s-1] default = 0.0 + ! The reference value of the Coriolis parameter with the betaplane option. +BETA = 0.0 ! [m-1 s-1] default = 0.0 + ! The northward gradient of the Coriolis parameter with the betaplane option. +BETA_LAT_REF = 0.0 ! [degrees] default = 0.0 + ! The reference latitude (origin) of the beta-plane +GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = False + ! If true, use an older algorithm to calculate the sine and cosines needed + ! rotate between grid-oriented directions and true north and east. Differences + ! arise at the tripolar fold. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +G_EARTH = 9.8 ! [m s-2] default = 9.8 + ! The gravitational acceleration of the Earth. +RHO_0 = 1035.0 ! [kg m-3] default = 1035.0 + ! The mean ocean density used with BOUSSINESQ true to calculate accelerations + ! and the mass for conservation properties, or with BOUSSINSEQ false to convert + ! some parameters from vertical units of m to kg m-2. +BOUSSINESQ = True ! [Boolean] default = True + ! If true, make the Boussinesq approximation. +ANGSTROM = 1.0E-10 ! [m] default = 1.0E-10 + ! The minimum layer thickness, usually one-Angstrom. +H_TO_M = 1.0 ! [m H-1] default = 1.0 + ! A constant that translates the model's internal units of thickness into m. +NK = 75 ! [nondim] + ! The number of model layers. + +! === module MOM_tracer_registry === + +! === module MOM_EOS === +EQN_OF_STATE = "WRIGHT" ! default = "WRIGHT" + ! EQN_OF_STATE determines which ocean equation of state should be used. + ! Currently, the valid choices are "LINEAR", "UNESCO", "JACKETT_MCD", "WRIGHT", + ! "WRIGHT_REDUCED", "WRIGHT_FULL", "NEMO", "ROQUET_RHO", "ROQUET_SPV" and + ! "TEOS10". This is only used if USE_EOS is true. +USE_WRIGHT_2ND_DERIV_BUG = False ! [Boolean] default = False + ! If true, use a bug in the calculation of the second derivatives of density + ! with temperature and with temperature and pressure that causes some terms to + ! be only 2/3 of what they should be. +EOS_QUADRATURE = False ! [Boolean] default = False + ! If true, always use the generic (quadrature) code code for the integrals of + ! density. +TFREEZE_FORM = "LINEAR" ! default = "LINEAR" + ! TFREEZE_FORM determines which expression should be used for the freezing + ! point. Currently, the valid choices are "LINEAR", "MILLERO_78", "TEOS_POLY", + ! "TEOS10" +TFREEZE_S0_P0 = 0.0 ! [degC] default = 0.0 + ! When TFREEZE_FORM=LINEAR, this is the freezing potential temperature at S=0, + ! P=0. +DTFREEZE_DS = -0.054 ! [degC ppt-1] default = -0.054 + ! When TFREEZE_FORM=LINEAR, this is the derivative of the freezing potential + ! temperature with salinity. +DTFREEZE_DP = 0.0 ! [degC Pa-1] default = 0.0 + ! When TFREEZE_FORM=LINEAR, this is the derivative of the freezing potential + ! temperature with pressure. + +! === module MOM_restart === +PARALLEL_RESTARTFILES = False ! [Boolean] default = False + ! If true, the IO layout is used to group processors that write to the same + ! restart file or each processor writes its own (numbered) restart file. If + ! false, a single restart file is generated combining output from all PEs. +RESTARTFILE = "MOM.res" ! default = "MOM.res" + ! The name-root of the restart file. +MAX_FIELDS = 100 ! default = 100 + ! The maximum number of restart fields that can be used. +RESTART_CHECKSUMS_REQUIRED = True ! [Boolean] default = True + ! If true, require the restart checksums to match and error out otherwise. Users + ! may want to avoid this comparison if for example the restarts are made from a + ! run with a different mask_table than the current run, in which case the + ! checksums will not match and cause crash. + +! === module MOM_tracer_flow_control === +USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False + ! If true, use the USER_tracer_example tracer package. +USE_DOME_TRACER = False ! [Boolean] default = False + ! If true, use the DOME_tracer tracer package. +USE_ISOMIP_TRACER = False ! [Boolean] default = False + ! If true, use the ISOMIP_tracer tracer package. +USE_RGC_TRACER = False ! [Boolean] default = False + ! If true, use the RGC_tracer tracer package. +USE_IDEAL_AGE_TRACER = False ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_REGIONAL_DYES = False ! [Boolean] default = False + ! If true, use the regional_dyes tracer package. +USE_OIL_TRACER = False ! [Boolean] default = False + ! If true, use the oil_tracer tracer package. +USE_ADVECTION_TEST_TRACER = False ! [Boolean] default = False + ! If true, use the advection_test_tracer tracer package. +USE_OCMIP2_CFC = False ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. +USE_CFC_CAP = False ! [Boolean] default = False + ! If true, use the MOM_CFC_cap tracer package. +USE_generic_tracer = False ! [Boolean] default = False + ! If true and _USE_GENERIC_TRACER is defined as a preprocessor macro, use the + ! MOM_generic_tracer packages. +USE_PSEUDO_SALT_TRACER = False ! [Boolean] default = False + ! If true, use the pseudo salt tracer, typically run as a diagnostic. +USE_BOUNDARY_IMPULSE_TRACER = False ! [Boolean] default = False + ! If true, use the boundary impulse tracer. +USE_DYED_OBC_TRACER = False ! [Boolean] default = False + ! If true, use the dyed_obc_tracer tracer package. +USE_NW2_TRACERS = False ! [Boolean] default = False + ! If true, use the NeverWorld2 tracers. + +! === module MOM_coord_initialization === +COORD_CONFIG = "none" ! default = "none" + ! This specifies how layers are to be defined: + ! ALE or none - used to avoid defining layers in ALE mode + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! BFB - Custom coords for buoyancy-forced basin case + ! based on SST_S, T_BOT and DRHO_DT. + ! linear - linear based on interfaces not layers + ! layer_ref - linear based on layer densities + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +GFS = 9.8 ! [m s-2] default = 9.8 + ! The reduced gravity at the free surface. +LIGHTEST_DENSITY = 1035.0 ! [kg m-3] default = 1035.0 + ! The reference potential density used for layer 1. +REGRIDDING_COORDINATE_MODE = "Z*" ! default = "LAYER" + ! Coordinate mode for vertical regridding. Choose among the following + ! possibilities: LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stretched geopotential z* + ! SIGMA_SHELF_ZSTAR - stretched geopotential z* ignoring shelf + ! SIGMA - terrain following coordinates + ! RHO - continuous isopycnal + ! SCALAR - any scalar variable ** for diagnostic grids only ** + ! HYCOM1 - HyCOM-like hybrid coordinate + ! HYBGEN - Hybrid coordinate from the Hycom hybgen code + ! ADAPTIVE - optimize for smooth neutral density surfaces +REGRIDDING_COORDINATE_UNITS = "m" ! default = "m" + ! Units of the regridding coordinate. +ALE_COORDINATE_CONFIG = "FILE:./INPUT/vgrid_cm4.nc,dz" ! default = "UNIFORM" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter ALE_RESOLUTION + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! WOA09INT[:N] - layers spanned by the WOA09 depths + ! WOA23INT[:N] - layers spanned by the WOA23 depths + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +!ALE_RESOLUTION = 4*2.0, 2*2.01, 2*2.02, 2.05, 2.07, 2.09, 2.13, 2.18, 2.24, 2.3, 2.4, 2.5, 2.62, 2.78, 2.95, 3.17, 3.42, 3.71, 4.07, 4.48, 4.97, 5.55, 6.23, 7.04, 7.99, 9.11, 10.43, 11.98, 13.8, 15.94, 18.42, 21.32, 24.66, 28.51, 32.91, 37.92, 43.56, 49.87, 56.88, 64.55, 72.91, 81.87, 91.4, 101.39, 111.73, 122.29, 132.93, 143.47, 153.78, 163.7, 173.07, 181.78, 189.76, 196.89, 203.17, 208.58, 213.14, 216.87, 219.87, 222.19, 223.94, 225.18, 226.04, 226.59, 226.9, 227.07, 227.14, 2*227.16, 227.17 ! [m] + ! The distribution of vertical resolution for the target + ! grid used for Eulerian-like coordinates. For example, + ! in z-coordinate mode, the parameter is a list of level + ! thicknesses (in m). In sigma-coordinate mode, the list + ! is of non-dimensional fractions of the water column. +MIN_THICKNESS = 0.001 ! [m] default = 0.001 + ! When regridding, this is the minimum layer thickness allowed. +REMAPPING_SCHEME = "PLM" ! default = "PLM" + ! This sets the reconstruction scheme used for vertical remapping for all + ! variables. It can be one of the following schemes: + ! PCM (1st-order accurate) + ! PLM (2nd-order accurate) + ! PLM_HYBGEN (2nd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! PPM_HYBGEN (3rd-order accurate) + ! WENO_HYBGEN (3rd-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +VELOCITY_REMAPPING_SCHEME = "PLM" ! default = "PLM" + ! This sets the reconstruction scheme used for vertical remapping of velocities. + ! By default it is the same as REMAPPING_SCHEME. It can be one of the following + ! schemes: + ! PCM (1st-order accurate) + ! PLM (2nd-order accurate) + ! PLM_HYBGEN (2nd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! PPM_HYBGEN (3rd-order accurate) + ! WENO_HYBGEN (3rd-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +FATAL_CHECK_RECONSTRUCTIONS = False ! [Boolean] default = False + ! If true, cell-by-cell reconstructions are checked for consistency and if + ! non-monotonicity or an inconsistency is detected then a FATAL error is issued. +FATAL_CHECK_REMAPPING = False ! [Boolean] default = False + ! If true, the results of remapping are checked for conservation and new extrema + ! and if an inconsistency is detected then a FATAL error is issued. +REMAP_BOUND_INTERMEDIATE_VALUES = False ! [Boolean] default = False + ! If true, the values on the intermediate grid used for remapping are forced to + ! be bounded, which might not be the case due to round off. +REMAP_BOUNDARY_EXTRAP = False ! [Boolean] default = False + ! If true, values at the interfaces of boundary cells are extrapolated instead + ! of piecewise constant +INIT_BOUNDARY_EXTRAP = False ! [Boolean] default = False + ! If true, values at the interfaces of boundary cells are extrapolated instead + ! of piecewise constant during initialization.Defaults to REMAP_BOUNDARY_EXTRAP. +REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True + ! This selects the remapping algorithm used in OM4 that does not use the full + ! reconstruction for the top- and lower-most sub-layers, but instead assumes + ! they are always vanished (untrue) and so just uses their edge values. We + ! recommend setting this option to false. +REMAPPING_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the expressions and order of arithmetic to use for remapping. + ! Values below 20190101 result in the use of older, less accurate expressions + ! that were in use at the end of 2018. Higher values result in the use of more + ! robust and accurate forms of mathematically equivalent expressions. +PARTIAL_CELL_VELOCITY_REMAP = False ! [Boolean] default = False + ! If true, use partial cell thicknesses at velocity points that are masked out + ! where they extend below the shallower of the neighboring bathymetry for + ! remapping velocity. +REMAP_AFTER_INITIALIZATION = True ! [Boolean] default = True + ! If true, applies regridding and remapping immediately after initialization so + ! that the state is ALE consistent. This is a legacy step and should not be + ! needed if the initialization is consistent with the coordinate mode. +REGRID_TIME_SCALE = 0.0 ! [s] default = 0.0 + ! The time-scale used in blending between the current (old) grid and the target + ! (new) grid. A short time-scale favors the target grid (0. or anything less + ! than DT_THERM) has no memory of the old grid. A very long time-scale makes the + ! model more Lagrangian. +REGRID_FILTER_SHALLOW_DEPTH = 0.0 ! [m] default = 0.0 + ! The depth above which no time-filtering is applied. Above this depth final + ! grid exactly matches the target (new) grid. +REGRID_FILTER_DEEP_DEPTH = 0.0 ! [m] default = 0.0 + ! The depth below which full time-filtering is applied with time-scale + ! REGRID_TIME_SCALE. Between depths REGRID_FILTER_SHALLOW_DEPTH and + ! REGRID_FILTER_SHALLOW_DEPTH the filter weights adopt a cubic profile. +REMAP_VEL_MASK_BBL_THICK = -0.001 ! [m] default = -0.001 + ! A thickness of a bottom boundary layer below which velocities in thin layers + ! are zeroed out after remapping, following practice with Hybgen remapping, or a + ! negative value to avoid such filtering altogether. + +! === module MOM_state_initialization === +FATAL_INCONSISTENT_RESTART_TIME = False ! [Boolean] default = False + ! If true and a time_in value is provided to MOM_initialize_state, verify that + ! the time read from a restart file is the same as time_in, and issue a fatal + ! error if it is not. Otherwise, simply set the time to time_in if present. +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, initialize the layer thicknesses, temperatures, and salinities from a + ! Z-space file on a latitude-longitude grid. + +! === module MOM_initialize_layers_from_Z === +TEMP_SALT_Z_INIT_FILE = "WOA_column.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize temperatures (T) and + ! salinities (S). If T and S are not in the same file, TEMP_Z_INIT_FILE and + ! SALT_Z_INIT_FILE must be set. +TEMP_Z_INIT_FILE = "WOA_column.nc" ! default = "WOA_column.nc" + ! The name of the z-space input file used to initialize temperatures, only. +SALT_Z_INIT_FILE = "WOA_column.nc" ! default = "WOA_column.nc" + ! The name of the z-space input file used to initialize temperatures, only. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in SALT_Z_INIT_FILE. +Z_INIT_HOMOGENIZE = True ! [Boolean] default = False + ! If True, then horizontally homogenize the interpolated initial conditions. +Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. +Z_INIT_REMAPPING_SCHEME = "PPM_IH4" ! default = "PPM_IH4" + ! The remapping scheme to use if using Z_INIT_ALE_REMAPPING is True. +Z_INIT_REMAP_GENERAL = False ! [Boolean] default = False + ! If false, only initializes to z* coordinates. If true, allows initialization + ! directly to general coordinates. +Z_INIT_REMAP_FULL_COLUMN = False ! [Boolean] default = False + ! If false, only reconstructs profiles for valid data points. If true, inserts + ! vanished layers below the valid data. +Z_INIT_REMAP_OLD_ALG = False ! [Boolean] default = False + ! If false, uses the preferred remapping algorithm for initialization. If true, + ! use an older, less robust algorithm for remapping. +TEMP_SALT_INIT_VERTICAL_REMAP_ONLY = False ! [Boolean] default = False + ! If true, initial conditions are on the model horizontal grid. Extrapolation + ! over missing ocean values is done using an ICE-9 procedure with vertical ALE + ! remapping . +Z_INIT_REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True + ! If true, use the OM4 remapping-via-subcells algorithm for initialization. See + ! REMAPPING_USE_OM4_SUBCELLS for more details. We recommend setting this option + ! to false. +HOR_REGRID_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic for horizontal regridding. Dates + ! before 20190101 give the same answers as the code did in late 2018, while + ! later versions add parentheses for rotational symmetry. Dates after 20230101 + ! use reproducing sums for global averages. +LAND_FILL_TEMP = 0.0 ! [degC] default = 0.0 + ! A value to use to fill in ocean temperatures on land points. +LAND_FILL_SALIN = 35.0 ! [ppt] default = 35.0 + ! A value to use to fill in ocean salinities on land points. +HORIZ_INTERP_TOL_TEMP = 0.001 ! [degC] default = 0.001 + ! The tolerance in temperature changes between iterations when interpolating + ! from an input dataset using horiz_interp_and_extrap_tracer. This routine + ! converges slowly, so an overly small tolerance can get expensive. +HORIZ_INTERP_TOL_SALIN = 0.001 ! [ppt] default = 0.001 + ! The tolerance in salinity changes between iterations when interpolating from + ! an input dataset using horiz_interp_and_extrap_tracer. This routine converges + ! slowly, so an overly small tolerance can get expensive. +DEPRESS_INITIAL_SURFACE = False ! [Boolean] default = False + ! If true, depress the initial surface to avoid huge tsunamis when a large + ! surface pressure is applied. +TRIM_IC_FOR_P_SURF = False ! [Boolean] default = False + ! If true, cuts way the top of the column for initial conditions at the depth + ! where the hydrostatic pressure matches the imposed surface pressure which is + ! read from file. +REGRID_ACCELERATE_INIT = False ! [Boolean] default = False + ! If true, runs REGRID_ACCELERATE_ITERATIONS iterations of the regridding + ! algorithm to push the initial grid to be consistent with the initial + ! condition. Useful only for state-based and iterative coordinates. +VELOCITY_CONFIG = "zero" ! default = "zero" + ! A string that determines how the initial velocities are specified for a new + ! run: + ! file - read velocities from the file specified + ! by (VELOCITY_FILE). + ! zero - the fluid is initially at rest. + ! uniform - the flow is uniform (determined by + ! parameters INITIAL_U_CONST and INITIAL_V_CONST). + ! rossby_front - a mixed layer front in thermal wind balance. + ! soliton - Equatorial Rossby soliton. + ! USER - call a user modified routine. +ODA_INCUPD = False ! [Boolean] default = False + ! If true, oda incremental updates will be applied everywhere in the domain. +SPONGE = False ! [Boolean] default = False + ! If true, sponges may be applied anywhere in the domain. The exact location and + ! properties of those sponges are specified via SPONGE_CONFIG. + +! === module MOM_diag_mediator === +NUM_DIAG_COORDS = 1 ! default = 1 + ! The number of diagnostic vertical coordinates to use. For each coordinate, an + ! entry in DIAG_COORDS must be provided. +DIAG_REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True + ! If true, use the OM4 remapping-via-subcells algorithm for diagnostics. See + ! REMAPPING_USE_OM4_SUBCELLS for details. We recommend setting this option to + ! false. +USE_INDEX_DIAGNOSTIC_AXES = False ! [Boolean] default = False + ! If true, use a grid index coordinate convention for diagnostic axes. +DIAG_COORDS = "scalar SCALAR SCALAR" ! default = "z Z ZSTAR" + ! A list of string tuples associating diag_table modules to a coordinate + ! definition used for diagnostics. Each string is of the form "MODULE_SUFFIX + ! PARAMETER_SUFFIX COORDINATE_NAME". +DIAG_MISVAL = 1.0E+20 ! [various] default = 1.0E+20 + ! Set the default missing value to use for diagnostics. +DIAG_AS_CHKSUM = False ! [Boolean] default = False + ! Instead of writing diagnostics to the diag manager, write a text file + ! containing the checksum (bitcount) of the array. +AVAILABLE_DIAGS_FILE = "available_diags.000000" ! default = "available_diags.000000" + ! A file into which to write a list of all available ocean diagnostics that can + ! be included in a diag_table. +DIAG_COORD_INTERP_SCHEME_SCALAR = "P1M_H2" ! default = "PPM_H4" + ! This sets the interpolation scheme to use to determine the new grid. These + ! parameters are only relevant when REGRIDDING_COORDINATE_MODE is set to a + ! function of state. Otherwise, it is not used. It can be one of the following + ! schemes: + ! P1M_H2 (2nd-order accurate) + ! P1M_H4 (2nd-order accurate) + ! P1M_IH4 (2nd-order accurate) + ! PLM (2nd-order accurate) + ! PPM_CW (3rd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! P3M_IH4IH3 (4th-order accurate) + ! P3M_IH6IH5 (4th-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +REGRIDDING_ANSWER_DATE = 20181231 ! default = 20181231 + ! The vintage of the expressions and order of arithmetic to use for regridding. + ! Values below 20190101 result in the use of older, less accurate expressions + ! that were in use at the end of 2018. Higher values result in the use of more + ! robust and accurate forms of mathematically equivalent expressions. +DIAG_COORD_DEF_SCALAR = "FILE:targetlayers_scalar.nc,interfaces=interfaces" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_SCALAR + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! WOA09INT[:N] - layers spanned by the WOA09 depths + ! WOA23INT[:N] - layers spanned by the WOA23 depths + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_P_REF_SCALAR = 0.0 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the diagnostic coordinate density. + ! (1 Pa = 1e4 dbar, so 2e7 is commonly used.) This is only used for the RHO + ! coordinate. +DIAG_COORD_REGRID_COMPRESSIBILITY_FRACTION_SCALAR = 0.0 ! [nondim] default = 0.0 + ! When interpolating potential density profiles we can add some artificial + ! compressibility solely to make homogeneous regions appear stratified. +DIAG_COORD_HISTOGRAM_EXTENSIVE_DIAGS_SCALAR = True ! [nondim] default = False + ! If true, extensive diagnostics are remapped using a histogram procedureThis is + ! therefore suitable for coordinates that are non-monotonic in the vertical + ! dimension. This should only be set True for **diagnostic**coordinates. + +! === module MOM_MEKE === +USE_MEKE = False ! [Boolean] default = False + ! If true, turns on the MEKE scheme which calculates a sub-grid mesoscale eddy + ! kinetic energy budget. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = False ! [Boolean] default = False + ! If true, the variable mixing code will be called. This allows diagnostics to + ! be created even if the scheme is not used. If KHTR_SLOPE_CFF>0 or + ! KhTh_Slope_Cff>0, this is set to true regardless of what is in the parameter + ! file. +USE_VISBECK = False ! [Boolean] default = False + ! If true, use the Visbeck et al. (1997) formulation for + ! thickness diffusivity. +RESOLN_SCALED_KH = False ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away when the first + ! baroclinic deformation radius is well resolved. +DEPTH_SCALED_KHTH = False ! [Boolean] default = False + ! If true, KHTH is scaled away when the depth is shallowerthan a reference + ! depth: KHTH = MIN(1,H/H0)**N * KHTH, where H0 is a reference depth, controlled + ! via DEPTH_SCALED_KHTH_H0, and the exponent (N) is controlled via + ! DEPTH_SCALED_KHTH_EXP. +RESOLN_SCALED_KHTH = False ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away when the first + ! baroclinic deformation radius is well resolved. +RESOLN_SCALED_KHTR = False ! [Boolean] default = False + ! If true, the epipycnal tracer diffusivity is scaled away when the first + ! baroclinic deformation radius is well resolved. +RESOLN_USE_EBT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic wave speed instead of first baroclinic + ! wave for calculating the resolution fn. +KHTH_USE_EBT_STRUCT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic structure as the vertical structure of + ! thickness diffusivity. +KD_GL90_USE_EBT_STRUCT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic structure as the vertical structure of + ! diffusivity in the GL90 scheme. +KHTH_SLOPE_CFF = 0.0 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula for the interface depth + ! diffusivity +KHTR_SLOPE_CFF = 0.0 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula for the epipycnal tracer + ! diffusivity +USE_STORED_SLOPES = False ! [Boolean] default = False + ! If true, the isopycnal slopes are calculated once and stored for re-use. This + ! uses more memory but avoids calling the equation of state more times than + ! should be necessary. +VERY_SMALL_FREQUENCY = 1.0E-17 ! [s-1] default = 1.0E-17 + ! A miniscule frequency that is used to avoid division by 0. The default value + ! is roughly (pi / (the age of the universe)). +USE_STANLEY_ISO = False ! [Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in isopycnal slope + ! code. +USE_QG_LEITH_GM = False ! [Boolean] default = False + ! If true, use the QG Leith viscosity as the GM coefficient. + +! === module MOM_set_visc === +SET_VISC_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the set viscosity + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. +BOTTOMDRAGLAW = True ! [Boolean] default = True + ! If true, the bottom stress is calculated with a drag law of the form + ! c_drag*|u|*u. The velocity magnitude may be an assumed value or it may be + ! based on the actual velocity in the bottommost HBBL, depending on LINEAR_DRAG. +DRAG_AS_BODY_FORCE = False ! [Boolean] default = False + ! If true, the bottom stress is imposed as an explicit body force applied over a + ! fixed distance from the bottom, rather than as an implicit calculation based + ! on an enhanced near-bottom viscosity. The thickness of the bottom boundary + ! layer is HBBL. +CHANNEL_DRAG = False ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each layer proportional to the + ! fraction of the bottom it overlies. +LINEAR_DRAG = False ! [Boolean] default = False + ! If LINEAR_DRAG and BOTTOMDRAGLAW are defined the drag law is + ! cdrag*DRAG_BG_VEL*u. +PRANDTL_TURB = 1.0 ! [nondim] default = 1.0 + ! The turbulent Prandtl number applied to shear instability. +DYNAMIC_VISCOUS_ML = False ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to determine the mixed layer + ! thickness for viscosity. +OMEGA = 7.2921E-05 ! [s-1] default = 7.2921E-05 + ! The rotation rate of the earth. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a viscosity increased by + ! KV_EXTRA_BBL if BOTTOMDRAGLAW is not defined, or the thickness over which + ! near-bottom velocities are averaged for the drag law if BOTTOMDRAGLAW is + ! defined but LINEAR_DRAG is not. +CDRAG = 0.0 ! [nondim] default = 0.003 + ! CDRAG is the drag coefficient relating the magnitude of the velocity field to + ! the bottom stress. CDRAG is only used if BOTTOMDRAGLAW is defined. +BBL_USE_TIDAL_BG = False ! [Boolean] default = False + ! Flag to use the tidal RMS amplitude in place of constant background velocity + ! for computing u* in the BBL. This flag is only used when BOTTOMDRAGLAW is true + ! and LINEAR_DRAG is false. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with LINEAR_DRAG) or an + ! unresolved velocity that is combined with the resolved velocity to estimate + ! the velocity magnitude. DRAG_BG_VEL is only used when BOTTOMDRAGLAW is + ! defined. +BBL_USE_EOS = True ! [Boolean] default = True + ! If true, use the equation of state in determining the properties of the bottom + ! boundary layer. Otherwise use the layer target potential densities. The + ! default of this parameter is the value of USE_EOS. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be used with + ! BOTTOMDRAGLAW. This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +HTBL_SHELF_MIN = 0.1 ! [m] default = 0.1 + ! The minimum top boundary layer thickness that can be used with BOTTOMDRAGLAW. + ! This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum near-top + ! viscosity. +HTBL_SHELF = 10.0 ! [m] default = 10.0 + ! The thickness over which near-surface velocities are averaged for the drag law + ! under an ice shelf. By default this is the same as HBBL +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. The molecular value, ~1e-6 + ! m2 s-1, may be used. +KV_BBL_MIN = 1.0E-04 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the bottom boundary layer. +KV_TBL_MIN = 1.0E-04 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the top boundary layer. +CORRECT_BBL_BOUNDS = False ! [Boolean] default = False + ! If true, uses the correct bounds on the BBL thickness and viscosity so that + ! the bottom layer feels the intended drag. + +! === module MOM_thickness_diffuse === +KHTH = 0.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +READ_KHTH = False ! [Boolean] default = False + ! If true, read a file (given by KHTH_FILE) containing the spatially varying + ! horizontal isopycnal height diffusivity. +KHTH_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum horizontal thickness diffusivity. +KHTH_MAX = 0.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. +KHTH_MAX_CFL = 0.8 ! [nondimensional] default = 0.8 + ! The maximum value of the local diffusive CFL ratio that is permitted for the + ! thickness diffusivity. 1.0 is the marginally unstable value in a pure layered + ! model, but much smaller numbers (e.g. 0.1) seem to work better for ALE-based + ! models. +KH_ETA_CONST = 0.0 ! [m2 s-1] default = 0.0 + ! The background horizontal diffusivity of the interface heights (without + ! considering the layer density structure). If diffusive CFL limits are + ! encountered, the diffusivities of the isopycnals and the interfaces heights + ! are scaled back proportionately. +KH_ETA_VEL_SCALE = 0.0 ! [m s-1] default = 0.0 + ! A velocity scale that is multiplied by the grid spacing to give a contribution + ! to the horizontal diffusivity of the interface heights (without considering + ! the layer density structure). +DETANGLE_INTERFACES = False ! [Boolean] default = False + ! If defined add 3-d structured enhanced interface height diffusivities to + ! horizontally smooth jagged layers. +KHTH_SLOPE_MAX = 0.01 ! [nondim] default = 0.01 + ! A slope beyond which the calculated isopycnal slope is not reliable and is + ! scaled away. +KD_SMOOTH = 1.0E-06 ! [m2 s-1] default = 1.0E-06 + ! A diapycnal diffusivity that is used to interpolate more sensible values of T + ! & S into thin layers. +KHTH_USE_FGNV_STREAMFUNCTION = False ! [Boolean] default = False + ! If true, use the streamfunction formulation of Ferrari et al., 2010, which + ! effectively emphasizes graver vertical modes by smoothing in the vertical. +USE_STANLEY_GM = False ! [Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in GM code. +MEKE_GM_SRC_ALT = False ! [Boolean] default = False + ! If true, use the GM energy conversion form S^2*N^2*kappa rather than the + ! streamfunction for the GM source term. +MEKE_GEOMETRIC = False ! [Boolean] default = False + ! If true, uses the GM coefficient formulation from the GEOMETRIC framework + ! (Marshall et al., 2012). +USE_KH_IN_MEKE = False ! [Boolean] default = False + ! If true, uses the thickness diffusivity calculated here to diffuse MEKE. +USE_GME = False ! [Boolean] default = False + ! If true, use the GM+E backscatter scheme in association with the Gent and + ! McWilliams parameterization. +USE_GM_WORK_BUG = False ! [Boolean] default = False + ! If true, compute the top-layer work tendency on the u-grid with the incorrect + ! sign, for legacy reproducibility. +STOCH_EOS = False ! [Boolean] default = False + ! If true, stochastic perturbations are applied to the EOS in the PGF. +STANLEY_COEFF = -1.0 ! [nondim] default = -1.0 + ! Coefficient correlating the temperature gradient and SGS T variance. + +! === module MOM_porous_barriers === +PORBAR_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the porous barrier weight function calculations. Values below + ! 20220806 recover the old answers in which the layer averaged weights are not + ! strictly limited by an upper-bound of 1.0 . +PORBAR_MASKING_DEPTH = 0.0 ! [m] default = 0.0 + ! If the effective average depth at the velocity cell is shallower than this + ! number, then porous barrier is not applied at that location. + ! PORBAR_MASKING_DEPTH is assumed to be positive below the sea surface. +PORBAR_ETA_INTERP = "MAX" ! default = "MAX" + ! A string describing the method that decides how the interface heights at the + ! velocity points are calculated. Valid values are: + ! MAX (the default) - maximum of the adjacent cells + ! MIN - minimum of the adjacent cells + ! ARITHMETIC - arithmetic mean of the adjacent cells + ! HARMONIC - harmonic mean of the adjacent cells + +! === module MOM_dynamics_unsplit === +UNSPLIT_DT_VISC_BUG = False ! [Boolean] default = False + ! If false, use the correct timestep in the viscous terms applied in the first + ! predictor step with the unsplit time stepping scheme, and in the calculation + ! of the turbulent mixed layer properties for viscosity with unsplit or + ! unsplit_RK2. If true, an older incorrect value is used. +TIDES = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing. +CALCULATE_SAL = False ! [Boolean] default = False + ! If true, calculate self-attraction and loading. + +! === module MOM_continuity_PPM === +MONOTONIC_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses the Colella and Woodward monotonic limiter. The + ! default (false) is to use a simple positive definite limiter. +SIMPLE_2ND_PPM_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses a simple 2nd order (arithmetic mean) + ! interpolation of the edge values. This may give better PV conservation + ! properties. While it formally reduces the accuracy of the continuity solver + ! itself in the strongly advective limit, it does not reduce the overall order + ! of accuracy of the dynamic core. +UPWIND_1ST_CONTINUITY = True ! [Boolean] default = False + ! If true, CONTINUITY_PPM becomes a 1st-order upwind continuity solver. This + ! scheme is highly diffusive but may be useful for debugging or in single-column + ! mode where its minimal stencil is useful. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.75E-09 + ! The tolerance for the differences between the barotropic and baroclinic + ! estimates of the sea surface height due to the fluxes through each face. The + ! total tolerance for SSH is 4 times this value. The default is + ! 0.5*NK*ANGSTROM, and this should not be set less than about + ! 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 3.0E+08 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies between the barotropic + ! solution and the sum of the layer thicknesses. +CONT_PPM_AGGRESS_ADJUST = False ! [Boolean] default = False + ! If true, allow the adjusted velocities to have a relative CFL change up to + ! 0.5. +CONT_PPM_VOLUME_BASED_CFL = False ! [Boolean] default = False + ! If true, use the ratio of the open face lengths to the tracer cell areas when + ! estimating CFL numbers. The default is set by CONT_PPM_AGGRESS_ADJUST. +CONTINUITY_CFL_LIMIT = 0.5 ! [nondim] default = 0.5 + ! The maximum CFL of the adjusted velocities. +CONT_PPM_BETTER_ITER = True ! [Boolean] default = True + ! If true, stop corrective iterations using a velocity based criterion and only + ! stop if the iteration is better than all predecessors. +CONT_PPM_USE_VISC_REM_MAX = True ! [Boolean] default = True + ! If true, use more appropriate limiting bounds for corrections in strongly + ! viscous columns. +CONT_PPM_MARGINAL_FACE_AREAS = True ! [Boolean] default = True + ! If true, use the marginal face areas from the continuity solver for use as the + ! weights in the barotropic solver. Otherwise use the transport averaged areas. +VISC_REM_CONT_HVEL_FIX = False ! [Boolean] default = False + ! If true, velocity cell thickness h_[uv] from the continuity solver is not + ! multiplied by visc_rem_[uv]. Default of this flag is set by VISC_REM_BUG. + +! === module MOM_CoriolisAdv === +NOSLIP = False ! [Boolean] default = False + ! If true, no slip boundary conditions are used; otherwise free slip boundary + ! conditions are assumed. The implementation of the free slip BCs on a C-grid is + ! much cleaner than the no slip BCs. The use of free slip BCs is strongly + ! encouraged, and no slip BCs are not used with the biharmonic viscosity. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used to estimate the + ! Coriolis term, and the one that dissipates energy relative to the other one is + ! used. +CORIOLIS_SCHEME = "SADOURNY75_ENERGY" ! default = "SADOURNY75_ENERGY" + ! CORIOLIS_SCHEME selects the discretization for the Coriolis terms. Valid + ! values are: + ! SADOURNY75_ENERGY - Sadourny, 1975; energy cons. + ! ARAKAWA_HSU90 - Arakawa & Hsu, 1990 + ! SADOURNY75_ENSTRO - Sadourny, 1975; enstrophy cons. + ! ARAKAWA_LAMB81 - Arakawa & Lamb, 1981; En. + Enst. + ! ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with + ! Arakawa & Hsu and Sadourny energy +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by the four estimates of + ! (f+rv)v from the four neighboring v-points, and similarly at v-points. This + ! option is always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. +KE_SCHEME = "KE_ARAKAWA" ! default = "KE_ARAKAWA" + ! KE_SCHEME selects the discretization for acceleration due to the kinetic + ! energy gradient. Valid values are: + ! KE_ARAKAWA, KE_SIMPLE_GUDONOV, KE_GUDONOV +PV_ADV_SCHEME = "PV_ADV_CENTERED" ! default = "PV_ADV_CENTERED" + ! PV_ADV_SCHEME selects the discretization for PV advection. Valid values are: + ! PV_ADV_CENTERED - centered (aka Sadourny, 75) + ! PV_ADV_UPWIND1 - upwind, first order + +! === module MOM_PressureForce === +ANALYTIC_FV_PGF = True ! [Boolean] default = True + ! If true the pressure gradient forces are calculated with a finite volume form + ! that analytically integrates the equations of state in pressure to avoid any + ! possibility of numerical thermobaric instability, as described in Adcroft et + ! al., O. Mod. (2008). + +! === module MOM_PressureForce_FV === +RHO_PGF_REF = 1035.0 ! [kg m-3] default = 1035.0 + ! The reference density that is subtracted off when calculating pressure + ! gradient forces. Its inverse is subtracted off of specific volumes when in + ! non-Boussinesq mode. The default is RHO_0. +MASS_WEIGHT_IN_PRESSURE_GRADIENT = False ! [Boolean] default = False + ! If true, use mass weighting when interpolating T/S for integrals near the + ! bathymetry in FV pressure gradient calculations. +USE_INACCURATE_PGF_RHO_ANOM = False ! [Boolean] default = False + ! If true, use a form of the PGF that uses the reference density in an + ! inaccurate way. This is not recommended. +RECONSTRUCT_FOR_PRESSURE = True ! [Boolean] default = True + ! If True, use vertical reconstruction of T & S within the integrals of the FV + ! pressure gradient calculation. If False, use the constant-by-layer algorithm. + ! The default is set by USE_REGRIDDING. +PRESSURE_RECONSTRUCTION_SCHEME = 1 ! default = 1 + ! Order of vertical reconstruction of T/S to use in the integrals within the FV + ! pressure gradient calculation. + ! 0: PCM or no reconstruction. + ! 1: PLM reconstruction. + ! 2: PPM reconstruction. +BOUNDARY_EXTRAPOLATION_PRESSURE = True ! [Boolean] default = True + ! If true, the reconstruction of T & S for pressure in boundary cells is + ! extrapolated, rather than using PCM in these cells. If true, the same order + ! polynomial is used as is used for the interior cells. +USE_STANLEY_PGF = False ! [Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in PGF code. + +! === module MOM_Zanna_Bolton === +USE_ZB2020 = False ! [Boolean] default = False + ! If true, turns on Zanna-Bolton-2020 (ZB) subgrid momentum parameterization of + ! mesoscale eddies. + +! === module MOM_hor_visc === +HOR_VISC_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the horizontal + ! viscosity calculations. Values below 20190101 recover the answers from the + ! end of 2018, while higher values use updated and more robust forms of the same + ! expressions. +USE_CONT_THICKNESS = False ! [Boolean] default = False + ! If true, use thickness at velocity points from continuity solver. This option + ! currently only works with split mode. +LAPLACIAN = False ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +BIHARMONIC = False ! [Boolean] default = True + ! If true, use a biharmonic horizontal viscosity. BIHARMONIC may be used with + ! LAPLACIAN. +USE_LEITHY = False ! [Boolean] default = False + ! If true, use a biharmonic Leith nonlinear eddy viscosity together with a + ! harmonic backscatter. +USE_LAND_MASK_FOR_HVISC = True ! [Boolean] default = True + ! If true, use the land mask for the computation of thicknesses at velocity + ! locations. This eliminates the dependence on arbitrary values over land or + ! outside of the domain. +FRICTWORK_BUG = True ! [Boolean] default = True + ! If true, retain an answer-changing bug in calculating the FrictWork, which + ! cancels the h in thickness flux and the h at velocity point. This isnot + ! recommended. + +! === module MOM_vert_friction === +VERT_FRICTION_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the viscous + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use expressions that do not use an arbitrary hard-coded + ! maximum viscous coupling coefficient between layers. Values below 20230601 + ! recover a form of the viscosity within the mixed layer that breaks up the + ! magnitude of the wind stress in some non-Boussinesq cases. +DIRECT_STRESS = False ! [Boolean] default = False + ! If true, the wind stress is distributed over the topmost HMIX_STRESS of fluid + ! (like in HYCOM), and an added mixed layer viscosity or a physically based + ! boundary layer turbulence parameterization is not needed for stability. +FIXED_DEPTH_LOTW_ML = False ! [Boolean] default = False + ! If true, use a Law-of-the-wall prescription for the mixed layer viscosity + ! within a boundary layer that is the lesser of HMIX_FIXED and the total depth + ! of the ocean in a column. +LOTW_VISCOUS_ML_FLOOR = False ! [Boolean] default = False + ! If true, use a Law-of-the-wall prescription to set a lower bound on the + ! viscous coupling between layers within the surface boundary layer, based the + ! distance of interfaces from the surface. This only acts when there are large + ! changes in the thicknesses of successive layers or when the viscosity is set + ! externally and the wind stress has subsequently increased. +VON_KARMAN_CONST = 0.41 ! [nondim] default = 0.41 + ! The value the von Karman constant as used for mixed layer viscosity. +HARMONIC_VISC = True ! [Boolean] default = False + ! If true, use the harmonic mean thicknesses for calculating the vertical + ! viscosity. +HARMONIC_BL_SCALE = 0.0 ! [nondim] default = 0.0 + ! A scale to determine when water is in the boundary layers based solely on + ! harmonic mean thicknesses for the purpose of determining the extent to which + ! the thicknesses used in the viscosities are upwinded. +HMIX_FIXED = 0.01 ! [m] + ! The prescribed depth over which the near-surface viscosity and diffusivity are + ! elevated when the bulk mixed layer is not used. +USE_GL90_IN_SSW = False ! [Boolean] default = False + ! If true, use simpler method to calculate 1/N^2 in GL90 vertical viscosity + ! coefficient. This method is valid in stacked shallow water mode. +KV_ML_INVZ2 = 0.0 ! [m2 s-1] default = 0.0 + ! An extra kinematic viscosity in a mixed layer of thickness HMIX_FIXED, with + ! the actual viscosity scaling as 1/(z*HMIX_FIXED)^2, where z is the distance + ! from the surface, to allow for finite wind stresses to be transmitted through + ! infinitesimally thin surface layers. This is an older option for numerical + ! convenience without a strong physical basis, and its use is now discouraged. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity components are truncated. +CFL_BASED_TRUNCATIONS = True ! [Boolean] default = True + ! If true, base truncations on the CFL number, and not an absolute speed. +CFL_TRUNCATE = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that will cause velocity components to be + ! truncated; instability can occur past 0.5. +CFL_REPORT = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that causes accelerations to be reported; the + ! default is CFL_TRUNCATE. +CFL_TRUNCATE_RAMP_TIME = 0.0 ! [s] default = 0.0 + ! The time over which the CFL truncation value is ramped up at the beginning of + ! the run. +CFL_TRUNCATE_START = 0.0 ! [nondim] default = 0.0 + ! The start value of the truncation CFL number used when ramping up CFL_TRUNC. +STOKES_MIXING_COMBINED = False ! [Boolean] default = False + ! Flag to use Stokes drift Mixing via the Lagrangian current (Eulerian plus + ! Stokes drift). Still needs work and testing, so not recommended for use. +VEL_UNDERFLOW = 1.0E-30 ! [m s-1] default = 0.0 + ! A negligibly small velocity magnitude below which velocity components are set + ! to 0. A reasonable value might be 1e-30 m/s, which is less than an Angstrom + ! divided by the age of the universe. + +! === module MOM_mixed_layer_restrat === +MIXEDLAYER_RESTRAT = False ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying flow is imposed in the + ! mixed layer. Can be used in ALE mode without restriction but in layer mode can + ! only be used if BULKMIXEDLAYER is true. + +! === module MOM_diagnostics === +DIAG_EBT_MONO_N2_COLUMN_FRACTION = 0.0 ! [nondim] default = 0.0 + ! The lower fraction of water column over which N2 is limited as monotonic for + ! the purposes of calculating the equivalent barotropic wave speed. +DIAG_EBT_MONO_N2_DEPTH = -1.0 ! [m] default = -1.0 + ! The depth below which N2 is limited as monotonic for the purposes of + ! calculating the equivalent barotropic wave speed. +INTERNAL_WAVE_SPEED_TOL = 0.001 ! [nondim] default = 0.001 + ! The fractional tolerance for finding the wave speeds. +INTERNAL_WAVE_SPEED_MIN = 0.0 ! [m s-1] default = 0.0 + ! A floor in the first mode speed below which 0 used instead. +INTERNAL_WAVE_SPEED_BETTER_EST = True ! [Boolean] default = True + ! If true, use a more robust estimate of the first mode wave speed as the + ! starting point for iterations. +INTWAVE_REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True + ! If true, use the OM4 remapping-via-subcells algorithm for calculating EBT + ! structure. See REMAPPING_USE_OM4_SUBCELLS for details. We recommend setting + ! this option to false. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +USE_LEGACY_DIABATIC_DRIVER = True ! [Boolean] default = True + ! If true, use a legacy version of the diabatic subroutine. This is temporary + ! and is needed to avoid change in answers. +ENERGETICS_SFC_PBL = True ! [Boolean] default = False + ! If true, use an implied energetics planetary boundary layer scheme to + ! determine the diffusivity and viscosity in the surface boundary layer. +EPBL_IS_ADDITIVE = True ! [Boolean] default = True + ! If true, the diffusivity from ePBL is added to all other diffusivities. + ! Otherwise, the larger of kappa-shear and ePBL diffusivities are used. +PRANDTL_EPBL = 1.0 ! [nondim] default = 1.0 + ! The Prandtl number used by ePBL to convert vertical diffusivities into + ! viscosities. +INTERNAL_TIDES = False ! [Boolean] default = False + ! If true, use the code that advances a separate set of equations for the + ! internal tide energy density. +MASSLESS_MATCH_TARGETS = True ! [Boolean] default = True + ! If true, the temperature and salinity of massless layers are kept consistent + ! with their target densities. Otherwise the properties of massless layers + ! evolve diffusively to match massive neighboring layers. +AGGREGATE_FW_FORCING = True ! [Boolean] default = True + ! If true, the net incoming and outgoing fresh water fluxes are combined and + ! applied as either incoming or outgoing depending on the sign of the net. If + ! false, the net incoming fresh water flux is added to the model and thereafter + ! the net outgoing is removed from the topmost non-vanished layers of the + ! updated state. +MIX_BOUNDARY_TRACERS = True ! [Boolean] default = True + ! If true, mix the passive tracers in massless layers at the bottom into the + ! interior as though a diffusivity of KD_MIN_TR were operating. +MIX_BOUNDARY_TRACER_ALE = False ! [Boolean] default = False + ! If true and in ALE mode, mix the passive tracers in massless layers at the + ! bottom into the interior as though a diffusivity of KD_MIN_TR were operating. +KD_MIN_TR = 2.0E-06 ! [m2 s-1] default = 2.0E-06 + ! A minimal diffusivity that should always be applied to tracers, especially in + ! massless layers near the bottom. The default is 0.1*KD. +KD_BBL_TR = 0.0 ! [m2 s-1] default = 0.0 + ! A bottom boundary layer tracer diffusivity that will allow for explicitly + ! specified bottom fluxes. The entrainment at the bottom is at least + ! sqrt(Kd_BBL_tr*dt) over the same distance. +TRACER_TRIDIAG = False ! [Boolean] default = False + ! If true, use the passive tracer tridiagonal solver for T and S +MINIMUM_FORCING_DEPTH = 0.001 ! [m] default = 0.001 + ! The smallest depth over which forcing can be applied. This only takes effect + ! when near-surface layers become thin relative to this scale, in which case the + ! forcing tendencies scaled down by distributing the forcing over this depth + ! scale. +EVAP_CFL_LIMIT = 0.8 ! [nondim] default = 0.8 + ! The largest fraction of a layer than can be lost to forcing (e.g. evaporation, + ! sea-ice formation) in one time-step. The unused mass loss is passed down + ! through the column. +MLD_EN_VALS = 3*0.0 ! [J/m2] default = 0.0 + ! The energy values used to compute MLDs. If not set (or all set to 0.), the + ! default will overwrite to 25., 2500., 250000. +DIAG_MLD_DENSITY_DIFF = 0.1 ! [kg/m3] default = 0.1 + ! The density difference used to determine a diagnostic mixed layer depth, + ! MLD_user, following the definition of Levitus 1982. The MLD is the depth at + ! which the density is larger than the surface density by the specified amount. +DIAG_DEPTH_SUBML_N2 = 50.0 ! [m] default = 50.0 + ! The distance over which to calculate a diagnostic of the stratification at the + ! base of the mixed layer. + +! === module MOM_CVMix_KPP === +! This is the MOM wrapper to CVMix:KPP +! See http://cvmix.github.io/ +USE_KPP = True ! [Boolean] default = False + ! If true, turns on the [CVMix] KPP scheme of Large et al., 1994, to calculate + ! diffusivities and non-local transport in the OBL. +KPP% +PASSIVE = True ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +APPLY_NONLOCAL_TRANSPORT = False ! [Boolean] default = False + ! If True, applies the non-local transport to all tracers. If False, calculates + ! the non-local transport and tendencies but purely for diagnostic purposes. +N_SMOOTH = 0 ! default = 0 + ! The number of times the 1-1-4-1-1 Laplacian filter is applied on OBL depth. +RI_CRIT = 0.3 ! [nondim] default = 0.3 + ! Critical bulk Richardson number used to define depth of the surface Ocean + ! Boundary Layer (OBL). +VON_KARMAN = 0.4 ! [nondim] default = 0.4 + ! von Karman constant. +ENHANCE_DIFFUSION = True ! [Boolean] default = True + ! If True, adds enhanced diffusion at the based of the boundary layer. +INTERP_TYPE = "quadratic" ! default = "quadratic" + ! Type of interpolation to determine the OBL depth. + ! Allowed types are: linear, quadratic, cubic. +INTERP_TYPE2 = "LMD94" ! default = "LMD94" + ! Type of interpolation to compute diff and visc at OBL_depth. + ! Allowed types are: linear, quadratic, cubic or LMD94. +COMPUTE_EKMAN = False ! [Boolean] default = False + ! If True, limit OBL depth to be no deeper than Ekman depth. +COMPUTE_MONIN_OBUKHOV = False ! [Boolean] default = False + ! If True, limit the OBL depth to be no deeper than Monin-Obukhov depth. +CS = 98.96 ! [nondim] default = 98.96 + ! Parameter for computing velocity scale function. +CS2 = 6.32739901508 ! [nondim] default = 6.32739901508 + ! Parameter for computing non-local term. +DEEP_OBL_OFFSET = 0.0 ! [m] default = 0.0 + ! If non-zero, the distance above the bottom to which the OBL is clipped if it + ! would otherwise reach the bottom. The smaller of this and 0.1D is used. +FIXED_OBLDEPTH = False ! [Boolean] default = False + ! If True, fix the OBL depth to FIXED_OBLDEPTH_VALUE rather than using the OBL + ! depth from CVMix. This option is just for testing purposes. +FIXED_OBLDEPTH_VALUE = 30.0 ! [m] default = 30.0 + ! Value for the fixed OBL depth when fixedOBLdepth==True. This parameter is for + ! just for testing purposes. It will over-ride the OBLdepth computed from CVMix. +SURF_LAYER_EXTENT = 0.1 ! [nondim] default = 0.1 + ! Fraction of OBL depth considered in the surface layer. +MINIMUM_OBL_DEPTH = 0.0 ! [m] default = 0.0 + ! If non-zero, a minimum depth to use for KPP OBL depth. Independent of this + ! parameter, the OBL depth is always at least as deep as the first layer. +MINIMUM_VT2 = 1.0E-10 ! [m2/s2] default = 1.0E-10 + ! Min of the unresolved velocity Vt2 used in Rib CVMix calculation. + ! Scaling: MINIMUM_VT2 = const1*d*N*ws, with d=1m, N=1e-5/s, ws=1e-6 m/s. +NLT_SHAPE = "CVMix" ! default = "CVMix" + ! MOM6 method to set nonlocal transport profile. Over-rides the result from + ! CVMix. Allowed values are: + ! CVMix - Uses the profiles from CVMix specified by MATCH_TECHNIQUE + ! LINEAR - A linear profile, 1-sigma + ! PARABOLIC - A parablic profile, (1-sigma)^2 + ! CUBIC - A cubic profile, (1-sigma)^2(1+2*sigma) + ! CUBIC_LMD - The original KPP profile +MATCH_TECHNIQUE = "SimpleShapes" ! default = "SimpleShapes" + ! CVMix method to set profile function for diffusivity and NLT, as well as + ! matching across OBL base. Allowed values are: + ! SimpleShapes = sigma*(1-sigma)^2 for both diffusivity and NLT + ! MatchGradient = sigma*(1-sigma)^2 for NLT; diffusivity profile from + ! matching + ! MatchBoth = match gradient for both diffusivity and NLT + ! ParabolicNonLocal = sigma*(1-sigma)^2 for diffusivity; (1-sigma)^2 for NLT +KPP_ZERO_DIFFUSIVITY = False ! [Boolean] default = False + ! If True, zeroes the KPP diffusivity and viscosity; for testing purpose. +KPP_IS_ADDITIVE = True ! [Boolean] default = True + ! If true, adds KPP diffusivity to diffusivity from other schemes. + ! If false, KPP is the only diffusivity wherever KPP is non-zero. +KPP_SHORTWAVE_METHOD = "MXL_SW" ! default = "MXL_SW" + ! Determines contribution of shortwave radiation to KPP surface buoyancy flux. + ! Options include: + ! ALL_SW: use total shortwave radiation + ! MXL_SW: use shortwave radiation absorbed by mixing layer + ! LV1_SW: use shortwave radiation absorbed by top model layer +CVMix_ZERO_H_WORK_AROUND = 0.0 ! [m] default = 0.0 + ! A minimum thickness used to avoid division by small numbers in the vicinity of + ! vanished layers. This is independent of MIN_THICKNESS used in other parts of + ! MOM. +USE_KPP_LT_K = False ! [Boolean] default = False + ! Flag for Langmuir turbulence enhancement of turbulentmixing coefficient. +STOKES_MIXING = False ! [Boolean] default = False + ! Flag for Langmuir turbulence enhancement of turbulentmixing coefficient. +USE_KPP_LT_VT2 = False ! [Boolean] default = False + ! Flag for Langmuir turbulence enhancement of Vt2in Bulk Richardson Number. +ANSWER_DATE = 20240101 ! default = 20240101 + ! The vintage of the order of arithmetic in the CVMix KPP calculations. Values + ! below 20240501 recover the answers from early in 2024, while higher values use + ! expressions that have been refactored for rotational symmetry. +%KPP + +! === module MOM_CVMix_conv === +! Parameterization of enhanced mixing due to convection via CVMix +USE_CVMix_CONVECTION = False ! [Boolean] default = False + ! If true, turns on the enhanced mixing due to convection via CVMix. This scheme + ! increases diapycnal diffs./viscs. at statically unstable interfaces. Relevant + ! parameters are contained in the CVMix_CONVECTION% parameter block. + +! === module MOM_set_diffusivity === +FLUX_RI_MAX = 0.2 ! [nondim] default = 0.2 + ! The flux Richardson number where the stratification is large enough that N2 > + ! omega2. The full expression for the Flux Richardson number is usually + ! FLUX_RI_MAX*N2/(N2+OMEGA2). +SET_DIFF_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the set diffusivity + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. + +! === module MOM_tidal_mixing === +! Vertical Tidal Mixing Parameterization +USE_CVMix_TIDAL = False ! [Boolean] default = False + ! If true, turns on tidal mixing via CVMix +INT_TIDE_DISSIPATION = False ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to drive diapycnal mixing, + ! along the lines of St. Laurent et al. (2002) and Simmons et al. (2004). +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind work to penetrate below + ! the base of the mixed layer with a vertical decay scale determined by the + ! minimum of: (1) The depth of the mixed layer, (2) an Ekman length scale. +ML_RAD_EFOLD_COEFF = 0.2 ! [nondim] default = 0.2 + ! A coefficient that is used to scale the penetration depth for turbulence below + ! the base of the mixed layer. This is only used if ML_RADIATION is true. +ML_RAD_BUG = False ! [Boolean] default = False + ! If true use code with a bug that reduces the energy available in the + ! transition layer by a factor of the inverse of the energy deposition + ! lenthscale (in m). +ML_RAD_KD_MAX = 0.001 ! [m2 s-1] default = 0.001 + ! The maximum diapycnal diffusivity due to turbulence radiated from the base of + ! the mixed layer. This is only used if ML_RADIATION is true. +ML_RAD_COEFF = 0.2 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain the energy available for + ! mixing below the base of the mixed layer. This is only used if ML_RADIATION is + ! true. +ML_RAD_APPLY_TKE_DECAY = True ! [Boolean] default = True + ! If true, apply the same exponential decay to ML_rad as is applied to the other + ! surface sources of TKE in the mixed layer code. This is only used if + ! ML_RADIATION is true. +MSTAR = 1.2 ! [nondim] default = 1.2 + ! The ratio of the friction velocity cubed to the TKE input to the mixed layer. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +ML_OMEGA_FRAC = 1.0 ! [nondim] default = 0.0 + ! When setting the decay scale for turbulence, use this fraction of the absolute + ! rotation rate blended with the local value of f, as sqrt((1-of)*f^2 + + ! of*4*omega^2). +BBL_EFFIC = 0.2 ! [nondim] default = 0.2 + ! The efficiency with which the energy extracted by bottom drag drives BBL + ! diffusion. This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_MAX_DECAY = 200.0 ! [m] default = 200.0 + ! The maximum decay scale for the BBL diffusion, or 0 to allow the mixing to + ! penetrate as far as stratification and rotation permit. The default for now + ! is 200 m. This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_AS_MAX = True ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the BBL mixing and the other + ! diffusivities. Otherwise, diffusivity from the BBL_mixing is simply added. +USE_LOTW_BBL_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, uses a simple, imprecise but non-coordinate dependent, model of BBL + ! mixing diffusivity based on Law of the Wall. Otherwise, uses the original BBL + ! scheme. +DZ_BBL_AVG_MIN = 0.0 ! [m] default = 0.0 + ! A minimal distance over which to average to determine the average bottom + ! boundary layer density. +SIMPLE_TKE_TO_KD = False ! [Boolean] default = False + ! If true, uses a simple estimate of Kd/TKE that will work for arbitrary + ! vertical coordinates. If false, calculates Kd/TKE and bounds based on exact + ! energetics for an isopycnal layer-formulation. + +! === module MOM_bkgnd_mixing === +! Adding static vertical background mixing coefficients +KD = 2.0E-05 ! [m2 s-1] default = 0.0 + ! The background diapycnal diffusivity of density in the interior. Zero or the + ! molecular value, ~1e-7 m2 s-1, may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +BRYAN_LEWIS_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, use a Bryan & Lewis (JGR 1979) like tanh profile of background + ! diapycnal diffusivity with depth. This is done via CVMix. +HORIZ_VARYING_BACKGROUND = False ! [Boolean] default = False + ! If true, apply vertically uniform, latitude-dependent background diffusivity, + ! as described in Danabasoglu et al., 2012 +PRANDTL_BKGND = 1.0 ! [nondim] default = 1.0 + ! Turbulent Prandtl number used to convert vertical background diffusivities + ! into viscosities. +HENYEY_IGW_BACKGROUND = False ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near surface background + ! diffusivity, as described in Harrison & Hallberg, JPO 2008. +KD_TANH_LAT_FN = False ! [Boolean] default = False + ! If true, use a tanh dependence of Kd_sfc on latitude, like CM2.1/CM2M. There + ! is no physical justification for this form, and it can not be used with + ! HENYEY_IGW_BACKGROUND. +KD_MAX = -1.0 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal diffusivity from TKE-based + ! parameterizations, or a negative value for no limit. +KD_ADD = 0.0 ! [m2 s-1] default = 0.0 + ! A uniform diapycnal diffusivity that is added everywhere without any filtering + ! or scaling. +USER_CHANGE_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, call user-defined code to change the diffusivity. +DISSIPATION_MIN = 0.0 ! [W m-3] default = 0.0 + ! The minimum dissipation by which to determine a lower bound of Kd (a floor). +DISSIPATION_N0 = 0.0 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression used to set a minimum + ! dissipation by which to determine a lower bound of Kd (a floor): A in eps_min + ! = A + B*N. +DISSIPATION_N1 = 0.0 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to set a minimum + ! dissipation by which to determine a lower bound of Kd (a floor): B in eps_min + ! = A + B*N +DISSIPATION_KD_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum vertical diffusivity applied as a floor. +DOUBLE_DIFFUSION = False ! [Boolean] default = False + ! If true, increase diffusivites for temperature or salinity based on the + ! double-diffusive parameterization described in Large et al. (1994). + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) shear mixing + ! parameterization. +VERTEX_SHEAR = False ! [Boolean] default = False + ! If true, do the calculations of the shear-driven mixing at the cell vertices + ! (i.e., the vorticity points). +RINO_CRIT = 0.25 ! [nondim] default = 0.25 + ! The critical Richardson number for shear mixing. +SHEARMIX_RATE = 0.089 ! [nondim] default = 0.089 + ! A nondimensional rate scale for shear-driven entrainment. Jackson et al find + ! values in the range of 0.085-0.089. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to estimate the Richardson + ! number driven mixing. +KD_KAPPA_SHEAR_0 = 2.0E-05 ! [m2 s-1] default = 2.0E-05 + ! The background diffusivity that is used to smooth the density and shear + ! profiles before solving for the diffusivities. The default is the greater of + ! KD and 1e-7 m2 s-1. +KD_SEED_KAPPA_SHEAR = 1.0 ! [m2 s-1] default = 1.0 + ! A moderately large seed value of diapycnal diffusivity that is used as a + ! starting turbulent diffusivity in the iterations to find an energetically + ! constrained solution for the shear-driven diffusivity. +KD_TRUNC_KAPPA_SHEAR = 2.0E-07 ! [m2 s-1] default = 2.0E-07 + ! The value of shear-driven diffusivity that is considered negligible and is + ! rounded down to 0. The default is 1% of KD_KAPPA_SHEAR_0. +FRI_CURVATURE = -0.97 ! [nondim] default = -0.97 + ! The nondimensional curvature of the function of the Richardson number in the + ! kappa source term in the Jackson et al. scheme. +TKE_N_DECAY_CONST = 0.24 ! [nondim] default = 0.24 + ! The coefficient for the decay of TKE due to stratification (i.e. proportional + ! to N*tke). The values found by Jackson et al. are 0.24-0.28. +TKE_SHEAR_DECAY_CONST = 0.14 ! [nondim] default = 0.14 + ! The coefficient for the decay of TKE due to shear (i.e. proportional to + ! |S|*tke). The values found by Jackson et al. are 0.14-0.12. +KAPPA_BUOY_SCALE_COEF = 0.82 ! [nondim] default = 0.82 + ! The coefficient for the buoyancy length scale in the kappa equation. The + ! values found by Jackson et al. are in the range of 0.81-0.86. +KAPPA_N_OVER_S_SCALE_COEF2 = 0.0 ! [nondim] default = 0.0 + ! The square of the ratio of the coefficients of the buoyancy and shear scales + ! in the diffusivity equation, Set this to 0 (the default) to eliminate the + ! shear scale. This is only used if USE_JACKSON_PARAM is true. +LZ_RESCALE = 1.0 ! [nondim] default = 1.0 + ! A coefficient to rescale the distance to the nearest solid boundary. This + ! adjustment is to account for regions where 3 dimensional turbulence prevents + ! the growth of shear instabilies [nondim]. +KAPPA_SHEAR_TOL_ERR = 0.1 ! [nondim] default = 0.1 + ! The fractional error in kappa that is tolerated. Iteration stops when changes + ! between subsequent iterations are smaller than this everywhere in a column. + ! The peak diffusivities usually converge most rapidly, and have much smaller + ! errors than this. +TKE_BACKGROUND = 0.0 ! [m2 s-2] default = 0.0 + ! A background level of TKE used in the first iteration of the kappa equation. + ! TKE_BACKGROUND could be 0. +KAPPA_SHEAR_ELIM_MASSLESS = True ! [Boolean] default = True + ! If true, massless layers are merged with neighboring massive layers in this + ! calculation. The default is true and I can think of no good reason why it + ! should be false. This is only used if USE_JACKSON_PARAM is true. +MAX_KAPPA_SHEAR_IT = 13 ! default = 13 + ! The maximum number of iterations that may be used to estimate the + ! time-averaged diffusivity. +KAPPA_SHEAR_MAX_KAP_SRC_CHG = 10.0 ! [nondim] default = 10.0 + ! The maximum permitted increase in the kappa source within an iteration + ! relative to the local source; this must be greater than 1. The lower limit + ! for the permitted fractional decrease is (1 - 0.5/kappa_src_max_chg). These + ! limits could perhaps be made dynamic with an improved iterative solver. +KAPPA_SHEAR_ITER_BUG = False ! [Boolean] default = False + ! If true, use an older, dimensionally inconsistent estimate of the derivative + ! of diffusivity with energy in the Newton's method iteration. The bug causes + ! undercorrections when dz > 1 m. +KAPPA_SHEAR_ALL_LAYER_TKE_BUG = False ! [Boolean] default = False + ! If true, report back the latest estimate of TKE instead of the time average + ! TKE when there is mass in all layers. Otherwise always report the time + ! averaged TKE, as is currently done when there are some massless layers. +USE_RESTRICTIVE_TOLERANCE_CHECK = False ! [Boolean] default = False + ! If true, uses the more restrictive tolerance check to determine if a timestep + ! is acceptable for the KS_it outer iteration loop. False uses the original + ! less restrictive check. + +! === module MOM_CVMix_shear === +! Parameterization of shear-driven turbulence via CVMix (various options) +USE_LMD94 = False ! [Boolean] default = False + ! If true, use the Large-McWilliams-Doney (JGR 1994) shear mixing + ! parameterization. +USE_PP81 = False ! [Boolean] default = False + ! If true, use the Pacanowski and Philander (JPO 1981) shear mixing + ! parameterization. + +! === module MOM_CVMix_ddiff === +! Parameterization of mixing due to double diffusion processes via CVMix +USE_CVMIX_DDIFF = False ! [Boolean] default = False + ! If true, turns on double diffusive processes via CVMix. Note that double + ! diffusive processes on viscosity are ignored in CVMix, see + ! http://cvmix.github.io/ for justification. + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +RECLAIM_FRAZIL = False ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any overlying layers down + ! to the freezing point, thereby avoiding the creation of thin ice when the SST + ! is above the freezing point. +SALT_EXTRACTION_LIMIT = 0.9999 ! [nondim] default = 0.9999 + ! An upper limit on the fraction of the salt in a layer that can be lost to the + ! net surface salt fluxes within a timestep. +PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False + ! If true, use a pressure dependent freezing temperature when making frazil. The + ! default is false, which will be faster but is inappropriate with ice-shelf + ! cavities. +IGNORE_FLUXES_OVER_LAND = False ! [Boolean] default = False + ! If true, the model does not check if fluxes are being applied over land + ! points. This is needed when the ocean is coupled with ice shelves and sea ice, + ! since the sea ice mask needs to be different than the ocean mask to avoid sea + ! ice formation under ice shelves. This flag only works when use_ePBL = True. +DO_RIVERMIX = False ! [Boolean] default = False + ! If true, apply additional mixing wherever there is runoff, so that it is mixed + ! down to RIVERMIX_DEPTH if the ocean is that deep. +USE_RIVER_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%runoff_Hflx field to set the heat carried by runoff, + ! instead of using SST*CP*liq_runoff. +USE_CALVING_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%calving_Hflx field to set the heat carried by runoff, + ! instead of using SST*CP*froz_runoff. +DO_BRINE_PLUME = False ! [Boolean] default = False + ! If true, use a brine plume parameterization from Nguyen et al., 2009. +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine + ! the e-folding depth of incoming short wave radiation. +CHL_FROM_FILE = True ! [Boolean] default = True + ! If true, chl_a is read from a file. +CHL_FILE = "forcing_monthly.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in the variable CHL_A. It + ! is used when VAR_PEN_SW and CHL_FROM_FILE are true. +CHL_VARNAME = "CHL_A" ! default = "CHL_A" + ! Name of CHL_A variable in CHL_FILE. + +! === module MOM_energetic_PBL === +EKMAN_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A nondimensional scaling factor controlling the inhibition of the diffusive + ! length scale by rotation. Making this larger decreases the PBL diffusivity. +EPBL_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the energetic PBL + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. + ! Values below 20240101 use A**(1./3.) to estimate the cube root of A in several + ! expressions, while higher values use the integer root function cuberoot(A) and + ! therefore can work with scaled variables. +EPBL_ORIGINAL_PE_CALC = True ! [Boolean] default = True + ! If true, the ePBL code uses the original form of the potential energy change + ! code. Otherwise, the newer version that can work with successive increments + ! to the diffusivity in upward or downward passes is used. +MKE_TO_TKE_EFFIC = 0.0 ! [nondim] default = 0.0 + ! The efficiency with which mean kinetic energy released by mechanically forced + ! entrainment of the mixed layer is converted to turbulent kinetic energy. +EPBL_MSTAR_SCHEME = "CONSTANT" ! default = "CONSTANT" + ! EPBL_MSTAR_SCHEME selects the method for setting mstar. Valid values are: + ! CONSTANT - Use a fixed mstar given by MSTAR + ! OM4 - Use L_Ekman/L_Obukhov in the stabilizing limit, as in OM4 + ! REICHL_H18 - Use the scheme documented in Reichl & Hallberg, 2018. +NSTAR = 0.2 ! [nondim] default = 0.2 + ! The portion of the buoyant potential energy imparted by surface fluxes that is + ! available to drive entrainment at the base of mixed layer when that energy is + ! positive. +MSTAR_CONV_ADJ = 0.0 ! [nondim] default = 0.0 + ! Coefficient used for reducing mstar during convection due to reduction of + ! stable density gradient. +USE_MLD_ITERATION = False ! [Boolean] default = True + ! A logical that specifies whether or not to use the distance to the bottom of + ! the actively turbulent boundary layer to help set the EPBL length scale. +EPBL_TRANSITION_SCALE = 0.1 ! [nondim] default = 0.1 + ! A scale for the mixing length in the transition layer at the edge of the + ! boundary layer as a fraction of the boundary layer thickness. +EPBL_MIN_MIX_LEN = 0.0 ! [meter] default = 0.0 + ! The minimum mixing length scale that will be used by ePBL. The default (0) + ! does not set a minimum. +MIX_LEN_EXPONENT = 2.0 ! [nondim] default = 2.0 + ! The exponent applied to the ratio of the distance to the MLD and the MLD depth + ! which determines the shape of the mixing length. This is only used if + ! USE_MLD_ITERATION is True. +EPBL_VEL_SCALE_SCHEME = "CUBE_ROOT_TKE" ! default = "CUBE_ROOT_TKE" + ! Selects the method for translating TKE into turbulent velocities. Valid values + ! are: + ! CUBE_ROOT_TKE - A constant times the cube root of remaining TKE. + ! REICHL_H18 - Use the scheme based on a combination of w* and v* as + ! documented in Reichl & Hallberg, 2018. +WSTAR_USTAR_COEF = 1.0 ! [nondim] default = 1.0 + ! A ratio relating the efficiency with which convectively released energy is + ! converted to a turbulent velocity, relative to mechanically forced TKE. Making + ! this larger increases the BL diffusivity +EPBL_VEL_SCALE_FACTOR = 1.0 ! [nondim] default = 1.0 + ! An overall nondimensional scaling factor for wT. Making this larger increases + ! the PBL diffusivity. +VSTAR_SURF_FAC = 1.2 ! [nondim] default = 1.2 + ! The proportionality times ustar to set vstar at the surface. +USE_LA_LI2016 = False ! [Boolean] default = False + ! A logical to use the Li et al. 2016 (submitted) formula to determine the + ! Langmuir number. +EPBL_LT = False ! [Boolean] default = False + ! A logical to use a LT parameterization. +!EPBL_USTAR_MIN = 1.45842E-18 ! [m s-1] + ! The (tiny) minimum friction velocity used within the ePBL code, derived from + ! OMEGA and ANGSTROM. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = False ! [Boolean] default = False + ! If defined, vertically restructure the near-surface layers when they have too + ! much lateral variations to allow for sensible lateral barotropic transports. + +! === module MOM_opacity === +OPACITY_SCHEME = "MANIZZA_05" ! default = "MANIZZA_05" + ! This character string specifies how chlorophyll concentrations are translated + ! into opacities. Currently valid options include: + ! MANIZZA_05 - Use Manizza et al., GRL, 2005. + ! MOREL_88 - Use Morel, JGR, 1988. +BLUE_FRAC_SW = 0.5 ! [nondim] default = 0.5 + ! The fraction of the penetrating shortwave radiation that is in the blue band. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. +OPTICS_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the optics + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. +PEN_SW_FLUX_ABSORB = 2.5E-11 ! [degC m s-1] default = 2.5E-11 + ! A minimum remaining shortwave heating rate that will be simply absorbed in the + ! next sufficiently thick layers for computational efficiency, instead of + ! continuing to penetrate. The default, 2.5e-11 degC m s-1, is about 1e-4 W m-2 + ! or 0.08 degC m century-1, but 0 is also a valid value. +PEN_SW_ABSORB_MINTHICK = 1.0 ! [m] default = 1.0 + ! A thickness that is used to absorb the remaining penetrating shortwave heat + ! flux when it drops below PEN_SW_FLUX_ABSORB. +OPACITY_LAND_VALUE = 10.0 ! [m-1] default = 10.0 + ! The value to use for opacity over land. The default is 10 m-1 - a value for + ! muddy water. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PLM" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + ! PPM - Piecewise Parabolic Method (Colella-Woodward) + +! === module MOM_tracer_hor_diff === +KHTR = 600.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_USE_EBT_STRUCT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic structure as the vertical structure of + ! the tracer diffusivity. +KHTR_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 0.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 0.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over grid-spacing in passivity, + ! where passivity is the ratio between along isopycnal mixing of tracers to + ! thickness mixing. A non-zero value enables this parameterization. +KHTR_PASSIVITY_MIN = 0.5 ! [nondim] default = 0.5 + ! The minimum passivity which is the ratio between along isopycnal mixing of + ! tracers to thickness mixing. +DIFFUSE_ML_TO_INTERIOR = False ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface boundary layer and the + ! interior. +CHECK_DIFFUSIVE_CFL = False ! [Boolean] default = False + ! If true, use enough iterations the diffusion to ensure that the diffusive + ! equivalent of the CFL limit is not violated. If false, always use the greater + ! of 1 or MAX_TR_DIFFUSION_CFL iteration. +MAX_TR_DIFFUSION_CFL = -1.0 ! [nondim] default = -1.0 + ! If positive, locally limit the along-isopycnal tracer diffusivity to keep the + ! diffusive CFL locally at or below this value. The number of diffusive + ! iterations is often this value or the next greater integer. +RECALC_NEUTRAL_SURF = False ! [Boolean] default = False + ! If true, then recalculate the neutral surfaces if the + ! diffusive CFL is exceeded. If false, assume that the + ! positions of the surfaces do not change + +! === module MOM_neutral_diffusion === +! This module implements neutral diffusion of tracers +USE_NEUTRAL_DIFFUSION = False ! [Boolean] default = False + ! If true, enables the neutral diffusion module. + +! === module MOM_hor_bnd_diffusion === +! This module implements horizontal diffusion of tracers near boundaries +USE_HORIZONTAL_BOUNDARY_DIFFUSION = False ! [Boolean] default = False + ! If true, enables the horizonal boundary tracer's diffusion module. +OBSOLETE_DIAGNOSTIC_IS_FATAL = True ! [Boolean] default = True + ! If an obsolete diagnostic variable appears in the diag_table, cause a FATAL + ! error rather than issue a WARNING. + +! === module MOM_sum_output === +CALCULATE_APE = True ! [Boolean] default = True + ! If true, calculate the available potential energy of the interfaces. Setting + ! this to false reduces the memory footprint of high-PE-count models + ! dramatically. +WRITE_STOCKS = True ! [Boolean] default = True + ! If true, write the integrated tracer amounts to stdout when the energy files + ! are written. +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very large value if the velocity + ! is truncated more than MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +MAX_ENERGY = 0.0 ! [m2 s-2] default = 0.0 + ! The maximum permitted average energy per unit mass; the model will be stopped + ! if there is more energy than this. If zero or negative, this is set to + ! 10*MAXVEL^2. +ENERGYFILE = "ocean.stats" ! default = "ocean.stats" + ! The file to use to write the energies and globally summed diagnostics. +DATE_STAMPED_STDOUT = True ! [Boolean] default = True + ! If true, use dates (not times) in messages to stdout +TIMEUNIT = 8.64E+04 ! [s] default = 8.64E+04 + ! The time unit in seconds a number of input fields +READ_DEPTH_LIST = False ! [Boolean] default = False + ! Read the depth list from a file if it exists or create that file otherwise. +DEPTH_LIST_MIN_INC = 1.0E-10 ! [m] default = 1.0E-10 + ! The minimum increment between the depths of the entries in the depth-list + ! file. +ENERGYSAVEDAYS = 10.0 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the energies of the run and + ! other globally summed diagnostics. +ENERGYSAVEDAYS_GEOMETRIC = 0.0 ! [days] default = 0.0 + ! The starting interval in units of TIMEUNIT for the first call to save the + ! energies of the run and other globally summed diagnostics. The interval + ! increases by a factor of 2. after each call to write_energy. + +! === module ocean_stochastics_init === +DO_SPPT = False ! [Boolean] default = False + ! If true, then stochastically perturb the thermodynamic tendemcies of T,S, amd + ! h. Amplitude and correlations are controlled by the nam_stoch namelist in the + ! UFS model only. +PERT_EPBL = False ! [Boolean] default = False + ! If true, then stochastically perturb the kinetic energy production and + ! dissipation terms. Amplitude and correlations are controlled by the nam_stoch + ! namelist in the UFS model only. + +! === module MOM_surface_forcing === +VARIABLE_WINDS = True ! [Boolean] default = True + ! If true, the winds vary in time after the initialization. +VARIABLE_BUOYFORCE = True ! [Boolean] default = True + ! If true, the buoyancy forcing varies in time after the initialization of the + ! model. +BUOY_CONFIG = "data_override" ! default = "zero" + ! The character string that indicates how buoyancy forcing is specified. Valid + ! options include (file), (data_override), (zero), (const), (linear), (MESO), + ! (SCM_CVmix_tests), (BFB), (dumbbell), (USER) and (NONE). +WIND_CONFIG = "data_override" ! default = "zero" + ! The character string that indicates how wind forcing is specified. Valid + ! options include (file), (data_override), (2gyre), (1gyre), (gyres), (zero), + ! (const), (Neverworld), (scurves), (ideal_hurr), (SCM_ideal_hurr), + ! (SCM_CVmix_tests) and (USER). +RESTOREBUOY = False ! [Boolean] default = False + ! If true, the buoyancy fluxes drive the model back toward some specified + ! surface state with a rate given by FLUXCONST. +LATENT_HEAT_FUSION = 3.34E+05 ! [J/kg] default = 3.34E+05 + ! The latent heat of fusion. +LATENT_HEAT_VAPORIZATION = 2.5E+06 ! [J/kg] default = 2.5E+06 + ! The latent heat of fusion. +GUST_CONST = 0.0 ! [Pa] default = 0.0 + ! The background gustiness in the winds. +USTAR_GUSTLESS_BUG = False ! [Boolean] default = False + ! If true include a bug in the time-averaging of the gustless wind friction + ! velocity +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from an input file +GUST_2D_FILE = "forcing_monthly.nc" ! + ! The file in which the wind gustiness is found in variable gustiness. + +! === module MOM_restart === +USE_WAVES = False ! [Boolean] default = False + ! If true, enables surface wave modules. + +! === module MOM_main (MOM_driver) === +DT_FORCING = 3600.0 ! [s] default = 3600.0 + ! The time step for changing forcing, coupling with other components, or + ! potentially writing certain diagnostics. The default value is given by DT. +DAYMAX = 365.0 ! [days] + ! The final time of the whole simulation, in units of TIMEUNIT seconds. This + ! also sets the potential end time of the present run segment if the end time is + ! not set via ocean_solo_nml in input.nml. +SINGLE_STEPPING_CALL = True ! [Boolean] default = True + ! If true, advance the state of MOM with a single step including both dynamics + ! and thermodynamics. If false the two phases are advanced with separate calls. +RESTART_CONTROL = 0 ! default = 1 + ! An integer whose bits encode which restart files are written. Add 2 (bit 1) + ! for a time-stamped file, and odd (bit 0) for a non-time-stamped file. A + ! non-time-stamped restart file is saved at the end of the run segment for any + ! non-negative value. +RESTINT = 3650.0 ! [days] default = 0.0 + ! The interval between saves of the restart file in units of TIMEUNIT. Use 0 + ! (the default) to not save incremental restart files at all. +WRITE_CPU_STEPS = 1000 ! default = 1000 + ! The number of coupled timesteps between writing the cpu time. If this is not + ! positive, do not check cpu time, and the segment run-length can not be set via + ! an elapsed CPU time. + +! === module MOM_write_cputime === +MAXCPU = 2.88E+04 ! [wall-clock seconds] default = -1.0 + ! The maximum amount of cpu time per processor for which MOM should run before + ! saving a restart file and quitting with a return value that indicates that a + ! further run is required to complete the simulation. If automatic restarts are + ! not desired, use a negative value for MAXCPU. MAXCPU has units of wall-clock + ! seconds, so the actual CPU time used is larger by a factor of the number of + ! processors used. +CPU_TIME_FILE = "CPU_stats" ! default = "CPU_stats" + ! The file into which CPU time is written. + +! === module MOM_file_parser === +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +DOCUMENT_FILE = "MOM_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their settings, units and + ! defaults are documented. Blank will disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are documented in MOM_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are documented in + ! MOM_parameter_doc.short . diff --git a/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.debugging b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.debugging new file mode 100644 index 0000000000..9c06fa662f --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.debugging @@ -0,0 +1,86 @@ +! This file was written by the model and records the debugging parameters used at run-time. + +! === module MOM_unit_scaling === +! Parameters for doing unit scaling of variables. +Z_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! depths and heights. Valid values range from -300 to 300. +L_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! lateral distances. Valid values range from -300 to 300. +T_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! time. Valid values range from -300 to 300. +R_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! density. Valid values range from -300 to 300. +Q_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! heat content. Valid values range from -300 to 300. +C_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! temperature. Valid values range from -300 to 300. +S_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! salinity. Valid values range from -300 to 300. + +! === module MOM === +VERBOSITY = 2 ! default = 2 + ! Integer controlling level of messaging + ! 0 = Only FATAL messages + ! 2 = Only FATAL, WARNING, NOTE [default] + ! 9 = All) +DO_UNIT_TESTS = False ! [Boolean] default = False + ! If True, exercises unit tests at model start up. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +DEBUG_TRUNCATIONS = False ! [Boolean] default = False + ! If true, calculate all diagnostics that are useful for debugging truncations. +ROTATE_INDEX = False ! [Boolean] default = False + ! Enable rotation of the horizontal indices. +DEBUG_CHKSUMS = False ! [Boolean] default = False + ! If true, checksums are performed on arrays in the various vec_chksum routines. +DEBUG_REDUNDANT = False ! [Boolean] default = False + ! If true, debug redundant data points during calls to the various vec_chksum + ! routines. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +H_RESCALE_POWER = 0 ! [nondim] default = 0 + ! An integer power of 2 that is used to rescale the model's intenal units of + ! thickness. Valid values range from -300 to 300. + +! === module MOM_vert_friction === +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations leading to zonal + ! velocity truncations are written. Undefine this for efficiency if this + ! diagnostic is not needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations leading to meridional + ! velocity truncations are written. Undefine this for efficiency if this + ! diagnostic is not needed. + +! === module MOM_PointAccel === +MAX_TRUNC_FILE_SIZE_PER_PE = 50 ! default = 50 + ! The maximum number of columns of truncations that any PE will write out during + ! a run. +DEBUG_FULL_COLUMN = False ! [Boolean] default = False + ! If true, write out the accelerations in all massive layers; otherwise just + ! document the ones with large velocities. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +DEBUG_CONSERVATION = False ! [Boolean] default = False + ! If true, monitor conservation and extrema. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +WRITE_TRACER_MIN_MAX = False ! [Boolean] default = False + ! If true, write the maximum and minimum values of temperature, salinity and + ! some tracer concentrations to stdout when the energy files are written. + +! === module MOM_file_parser === +REPORT_UNUSED_PARAMS = True ! [Boolean] default = True + ! If true, report any parameter lines that are not used in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused parameters. diff --git a/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.layout b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.layout new file mode 100644 index 0000000000..d0bf972496 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.layout @@ -0,0 +1,56 @@ +! This file was written by the model and records the layout parameters used at run-time. + +! === module MOM === +GLOBAL_INDEXING = False ! [Boolean] default = False + ! If true, use a global lateral indexing convention, so that corresponding + ! points on different processors have the same index. This does not work with + ! static memory. + +! === module MOM_domains === +!SYMMETRIC_MEMORY_ = True ! [Boolean] + ! If defined, the velocity point data domain includes every face of the + ! thickness points. In other words, some arrays are larger than others, + ! depending on where they are on the staggered grid. Also, the starting index + ! of the velocity-point arrays is usually 0, not 1. This can only be set at + ! compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +THIN_HALO_UPDATES = True ! [Boolean] default = True + ! If true, optional arguments may be used to specify the width of the halos that + ! are updated with each call. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables will have sizes that are + ! statically determined at compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially faster, but does not allow + ! the PE count to be changed at run time. This can only be set at compile time. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. This feature masks out + ! processors that contain only land points. The first line of mask_table is the + ! number of regions to be masked out. The second line is the layout of the model + ! and must be consistent with the actual model layout. The following (n_mask) + ! lines give the logical positions of the processors that are masked out. The + ! mask_table can be created by tools like check_mask. The following example of + ! mask_table masks out 2 processors, (1,2) and (3,6), out of the 24 in a 4x6 + ! layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +NIPROC = 1 ! + ! The number of processors in the x-direction. With STATIC_MEMORY_ this is set + ! in MOM_memory.h at compile time. +NJPROC = 1 ! + ! The number of processors in the y-direction. With STATIC_MEMORY_ this is set + ! in MOM_memory.h at compile time. +LAYOUT = 1, 1 ! + ! The processor layout that was actually used. +IO_LAYOUT = 1, 1 ! default = 1 + ! The processor layout to be used, or 0,0 to automatically set the io_layout to + ! be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the lateral grid. +NIBLOCK = 1 ! default = 1 + ! The number of blocks in the x-direction on each processor (for openmp). +NJBLOCK = 1 ! default = 1 + ! The number of blocks in the y-direction on each processor (for openmp). diff --git a/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.short b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.short new file mode 100644 index 0000000000..8a1d5126ba --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar-histogram/MOM_parameter_doc.short @@ -0,0 +1,410 @@ +! This file was written by the model and records the non-default parameters used at run-time. + +! === module MOM === +SPLIT = False ! [Boolean] default = True + ! Use the split time stepping if true. +USE_REGRIDDING = True ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). If False, use the + ! layered isopycnal algorithm. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that is actually used will + ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode + ! or the coupling timestep in coupled mode.) +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the accumulated heat deficit + ! is returned in the surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a constant. This is only used + ! if ENABLE_THERMODYNAMICS is true. The default value is from the TEOS-10 + ! definition of conservative temperature. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. + +! === module MOM_domains === +REENTRANT_Y = True ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +NIGLOBAL = 2 ! + ! The total number of thickness grid points in the x-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NJGLOBAL = 2 ! + ! The total number of thickness grid points in the y-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NIHALO = 2 ! default = 4 + ! The number of halo points on each side in the x-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. +NJHALO = 2 ! default = 4 + ! The number of halo points on each side in the y-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. + +! === module MOM_fixed_initialization === +INPUTDIR = "INPUT/Labrador" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +GRID_CONFIG = "cartesian" ! + ! A character string that determines the method for defining the horizontal + ! grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +SOUTHLAT = 30.0 ! [degrees] + ! The southern latitude of the domain or the equivalent starting value for the + ! y-axis. +LENLAT = 1.0 ! [degrees] + ! The latitudinal or y-direction length of the domain. +LENLON = 1.0 ! [degrees] + ! The longitudinal or x-direction length of the domain. +TOPO_CONFIG = "flat" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! bbuilder - build topography from list of functions. + ! benchmark - use the benchmark test case topography. + ! Neverworld - use the Neverworld test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a slope and channel configuration for the + ! ISOMIP test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! Kelvin - flat but with rotated land mask. + ! seamount - Gaussian bump for spontaneous motion test case. + ! dumbbell - Sloshing channel with reservoirs on both ends. + ! shelfwave - exponential slope for shelfwave test case. + ! Phillips - ACC-like idealized topography used in the Phillips config. + ! dense - Denmark Strait-like dense water formation and overflow. + ! USER - call a user modified routine. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! The minimum depth of the ocean. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +ROTATION = "betaplane" ! default = "2omegasinlat" + ! This specifies how the Coriolis parameter is specified: + ! 2omegasinlat - Use twice the planetary rotation rate + ! times the sine of latitude. + ! betaplane - Use a beta-plane or f-plane. + ! USER - call a user modified routine. +F_0 = 7.59943E-05 ! [s-1] default = 0.0 + ! The reference value of the Coriolis parameter with the betaplane option. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +NK = 75 ! [nondim] + ! The number of model layers. + +! === module MOM_EOS === + +! === module MOM_tracer_flow_control === + +! === module MOM_coord_initialization === +REGRIDDING_COORDINATE_MODE = "Z*" ! default = "LAYER" + ! Coordinate mode for vertical regridding. Choose among the following + ! possibilities: LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stretched geopotential z* + ! SIGMA_SHELF_ZSTAR - stretched geopotential z* ignoring shelf + ! SIGMA - terrain following coordinates + ! RHO - continuous isopycnal + ! SCALAR - any scalar variable ** for diagnostic grids only ** + ! HYCOM1 - HyCOM-like hybrid coordinate + ! HYBGEN - Hybrid coordinate from the Hycom hybgen code + ! ADAPTIVE - optimize for smooth neutral density surfaces +ALE_COORDINATE_CONFIG = "FILE:./INPUT/vgrid_cm4.nc,dz" ! default = "UNIFORM" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter ALE_RESOLUTION + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! WOA09INT[:N] - layers spanned by the WOA09 depths + ! WOA23INT[:N] - layers spanned by the WOA23 depths + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +!ALE_RESOLUTION = 4*2.0, 2*2.01, 2*2.02, 2.05, 2.07, 2.09, 2.13, 2.18, 2.24, 2.3, 2.4, 2.5, 2.62, 2.78, 2.95, 3.17, 3.42, 3.71, 4.07, 4.48, 4.97, 5.55, 6.23, 7.04, 7.99, 9.11, 10.43, 11.98, 13.8, 15.94, 18.42, 21.32, 24.66, 28.51, 32.91, 37.92, 43.56, 49.87, 56.88, 64.55, 72.91, 81.87, 91.4, 101.39, 111.73, 122.29, 132.93, 143.47, 153.78, 163.7, 173.07, 181.78, 189.76, 196.89, 203.17, 208.58, 213.14, 216.87, 219.87, 222.19, 223.94, 225.18, 226.04, 226.59, 226.9, 227.07, 227.14, 2*227.16, 227.17 ! [m] + ! The distribution of vertical resolution for the target + ! grid used for Eulerian-like coordinates. For example, + ! in z-coordinate mode, the parameter is a list of level + ! thicknesses (in m). In sigma-coordinate mode, the list + ! is of non-dimensional fractions of the water column. + +! === module MOM_state_initialization === +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, initialize the layer thicknesses, temperatures, and salinities from a + ! Z-space file on a latitude-longitude grid. + +! === module MOM_initialize_layers_from_Z === +TEMP_SALT_Z_INIT_FILE = "WOA_column.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize temperatures (T) and + ! salinities (S). If T and S are not in the same file, TEMP_Z_INIT_FILE and + ! SALT_Z_INIT_FILE must be set. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in SALT_Z_INIT_FILE. +Z_INIT_HOMOGENIZE = True ! [Boolean] default = False + ! If True, then horizontally homogenize the interpolated initial conditions. +Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. + +! === module MOM_diag_mediator === +DIAG_COORDS = "scalar SCALAR SCALAR" ! default = "z Z ZSTAR" + ! A list of string tuples associating diag_table modules to a coordinate + ! definition used for diagnostics. Each string is of the form "MODULE_SUFFIX + ! PARAMETER_SUFFIX COORDINATE_NAME". +DIAG_COORD_INTERP_SCHEME_SCALAR = "P1M_H2" ! default = "PPM_H4" + ! This sets the interpolation scheme to use to determine the new grid. These + ! parameters are only relevant when REGRIDDING_COORDINATE_MODE is set to a + ! function of state. Otherwise, it is not used. It can be one of the following + ! schemes: + ! P1M_H2 (2nd-order accurate) + ! P1M_H4 (2nd-order accurate) + ! P1M_IH4 (2nd-order accurate) + ! PLM (2nd-order accurate) + ! PPM_CW (3rd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! P3M_IH4IH3 (4th-order accurate) + ! P3M_IH6IH5 (4th-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +DIAG_COORD_DEF_SCALAR = "FILE:targetlayers_scalar.nc,interfaces=interfaces" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_SCALAR + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! WOA09INT[:N] - layers spanned by the WOA09 depths + ! WOA23INT[:N] - layers spanned by the WOA23 depths + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_P_REF_SCALAR = 0.0 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the diagnostic coordinate density. + ! (1 Pa = 1e4 dbar, so 2e7 is commonly used.) This is only used for the RHO + ! coordinate. +DIAG_COORD_HISTOGRAM_EXTENSIVE_DIAGS_SCALAR = True ! [nondim] default = False + ! If true, extensive diagnostics are remapped using a histogram procedureThis is + ! therefore suitable for coordinates that are non-monotonic in the vertical + ! dimension. This should only be set True for **diagnostic**coordinates. + +! === module MOM_lateral_mixing_coeffs === + +! === module MOM_set_visc === +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a viscosity increased by + ! KV_EXTRA_BBL if BOTTOMDRAGLAW is not defined, or the thickness over which + ! near-bottom velocities are averaged for the drag law if BOTTOMDRAGLAW is + ! defined but LINEAR_DRAG is not. +CDRAG = 0.0 ! [nondim] default = 0.003 + ! CDRAG is the drag coefficient relating the magnitude of the velocity field to + ! the bottom stress. CDRAG is only used if BOTTOMDRAGLAW is defined. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with LINEAR_DRAG) or an + ! unresolved velocity that is combined with the resolved velocity to estimate + ! the velocity magnitude. DRAG_BG_VEL is only used when BOTTOMDRAGLAW is + ! defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be used with + ! BOTTOMDRAGLAW. This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. The molecular value, ~1e-6 + ! m2 s-1, may be used. + +! === module MOM_thickness_diffuse === + +! === module MOM_porous_barriers === + +! === module MOM_dynamics_unsplit === + +! === module MOM_continuity_PPM === +UPWIND_1ST_CONTINUITY = True ! [Boolean] default = False + ! If true, CONTINUITY_PPM becomes a 1st-order upwind continuity solver. This + ! scheme is highly diffusive but may be useful for debugging or in single-column + ! mode where its minimal stencil is useful. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.75E-09 + ! The tolerance for the differences between the barotropic and baroclinic + ! estimates of the sea surface height due to the fluxes through each face. The + ! total tolerance for SSH is 4 times this value. The default is + ! 0.5*NK*ANGSTROM, and this should not be set less than about + ! 10^-15*MAXIMUM_DEPTH. + +! === module MOM_CoriolisAdv === +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used to estimate the + ! Coriolis term, and the one that dissipates energy relative to the other one is + ! used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by the four estimates of + ! (f+rv)v from the four neighboring v-points, and similarly at v-points. This + ! option is always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_PressureForce === + +! === module MOM_PressureForce_FV === + +! === module MOM_Zanna_Bolton === + +! === module MOM_hor_visc === +BIHARMONIC = False ! [Boolean] default = True + ! If true, use a biharmonic horizontal viscosity. BIHARMONIC may be used with + ! LAPLACIAN. + +! === module MOM_vert_friction === +HARMONIC_VISC = True ! [Boolean] default = False + ! If true, use the harmonic mean thicknesses for calculating the vertical + ! viscosity. +HMIX_FIXED = 0.01 ! [m] + ! The prescribed depth over which the near-surface viscosity and diffusivity are + ! elevated when the bulk mixed layer is not used. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity components are truncated. +VEL_UNDERFLOW = 1.0E-30 ! [m s-1] default = 0.0 + ! A negligibly small velocity magnitude below which velocity components are set + ! to 0. A reasonable value might be 1e-30 m/s, which is less than an Angstrom + ! divided by the age of the universe. + +! === module MOM_diagnostics === + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ENERGETICS_SFC_PBL = True ! [Boolean] default = False + ! If true, use an implied energetics planetary boundary layer scheme to + ! determine the diffusivity and viscosity in the surface boundary layer. + +! === module MOM_CVMix_KPP === +! This is the MOM wrapper to CVMix:KPP +! See http://cvmix.github.io/ +USE_KPP = True ! [Boolean] default = False + ! If true, turns on the [CVMix] KPP scheme of Large et al., 1994, to calculate + ! diffusivities and non-local transport in the OBL. +KPP% +PASSIVE = True ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +%KPP + +! === module MOM_set_diffusivity === +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind work to penetrate below + ! the base of the mixed layer with a vertical decay scale determined by the + ! minimum of: (1) The depth of the mixed layer, (2) an Ekman length scale. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +ML_OMEGA_FRAC = 1.0 ! [nondim] default = 0.0 + ! When setting the decay scale for turbulence, use this fraction of the absolute + ! rotation rate blended with the local value of f, as sqrt((1-of)*f^2 + + ! of*4*omega^2). + +! === module MOM_bkgnd_mixing === +! Adding static vertical background mixing coefficients +KD = 2.0E-05 ! [m2 s-1] default = 0.0 + ! The background diapycnal diffusivity of density in the interior. Zero or the + ! molecular value, ~1e-7 m2 s-1, may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) shear mixing + ! parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to estimate the Richardson + ! number driven mixing. + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +RECLAIM_FRAZIL = False ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any overlying layers down + ! to the freezing point, thereby avoiding the creation of thin ice when the SST + ! is above the freezing point. +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine + ! the e-folding depth of incoming short wave radiation. +CHL_FILE = "forcing_monthly.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in the variable CHL_A. It + ! is used when VAR_PEN_SW and CHL_FROM_FILE are true. + +! === module MOM_energetic_PBL === +USE_MLD_ITERATION = False ! [Boolean] default = True + ! A logical that specifies whether or not to use the distance to the bottom of + ! the actively turbulent boundary layer to help set the EPBL length scale. + +! === module MOM_opacity === +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 600.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. + +! === module MOM_sum_output === +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very large value if the velocity + ! is truncated more than MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +ENERGYSAVEDAYS = 10.0 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the energies of the run and + ! other globally summed diagnostics. + +! === module ocean_stochastics_init === + +! === module MOM_surface_forcing === +BUOY_CONFIG = "data_override" ! default = "zero" + ! The character string that indicates how buoyancy forcing is specified. Valid + ! options include (file), (data_override), (zero), (const), (linear), (MESO), + ! (SCM_CVmix_tests), (BFB), (dumbbell), (USER) and (NONE). +WIND_CONFIG = "data_override" ! default = "zero" + ! The character string that indicates how wind forcing is specified. Valid + ! options include (file), (data_override), (2gyre), (1gyre), (gyres), (zero), + ! (const), (Neverworld), (scurves), (ideal_hurr), (SCM_ideal_hurr), + ! (SCM_CVmix_tests) and (USER). +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from an input file +GUST_2D_FILE = "forcing_monthly.nc" ! + ! The file in which the wind gustiness is found in variable gustiness. + +! === module MOM_main (MOM_driver) === +DAYMAX = 365.0 ! [days] + ! The final time of the whole simulation, in units of TIMEUNIT seconds. This + ! also sets the potential end time of the present run segment if the end time is + ! not set via ocean_solo_nml in input.nml. +RESTART_CONTROL = 0 ! default = 1 + ! An integer whose bits encode which restart files are written. Add 2 (bit 1) + ! for a time-stamped file, and odd (bit 0) for a non-time-stamped file. A + ! non-time-stamped restart file is saved at the end of the run segment for any + ! non-negative value. +RESTINT = 3650.0 ! [days] default = 0.0 + ! The interval between saves of the restart file in units of TIMEUNIT. Use 0 + ! (the default) to not save incremental restart files at all. + +! === module MOM_write_cputime === +MAXCPU = 2.88E+04 ! [wall-clock seconds] default = -1.0 + ! The maximum amount of cpu time per processor for which MOM should run before + ! saving a restart file and quitting with a return value that indicates that a + ! further run is required to complete the simulation. If automatic restarts are + ! not desired, use a negative value for MAXCPU. MAXCPU has units of wall-clock + ! seconds, so the actual CPU time used is larger by a factor of the number of + ! processors used. diff --git a/ocean_only/single_column/EPBL_diagscalar-histogram/data_table b/ocean_only/single_column/EPBL_diagscalar-histogram/data_table new file mode 120000 index 0000000000..e0e40d76fc --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar-histogram/data_table @@ -0,0 +1 @@ +../EPBL_diagscalar/data_table \ No newline at end of file diff --git a/ocean_only/single_column/EPBL_diagscalar-histogram/diag_table b/ocean_only/single_column/EPBL_diagscalar-histogram/diag_table new file mode 120000 index 0000000000..d6a3946702 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar-histogram/diag_table @@ -0,0 +1 @@ +../EPBL_diagscalar/diag_table \ No newline at end of file diff --git a/ocean_only/single_column/EPBL_diagscalar-histogram/input.nml b/ocean_only/single_column/EPBL_diagscalar-histogram/input.nml new file mode 120000 index 0000000000..154340b5dd --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar-histogram/input.nml @@ -0,0 +1 @@ +../EPBL_diagscalar/input.nml \ No newline at end of file diff --git a/ocean_only/single_column/KPP/diag_table b/ocean_only/single_column/KPP/diag_table index 8079b6d8eb..f42f9562a5 100644 --- a/ocean_only/single_column/KPP/diag_table +++ b/ocean_only/single_column/KPP/diag_table @@ -21,6 +21,7 @@ "ocean_model","e","e","prog","all",.false.,"none",2 "ocean_model","temp","temp","prog","all",.false.,"none",2 "ocean_model","salt","salt","prog","all",.false.,"none",2 +"ocean_model","rhopot0","rhopot0","prog","all",.false.,"none",2 #"ocean_model","Rml","Rml","prog","all",.false.,"none",2 #"ocean_model","h_ML","h_ML","prog","all",.false.,"none",2 From 34b03a3d002482e028581024ca19d445ef632d9e Mon Sep 17 00:00:00 2001 From: Graeme MacGilchrist Date: Mon, 14 Oct 2024 14:39:39 +0100 Subject: [PATCH 08/12] adds example with scalar diagnostic, core folder --- .../EPBL_diagscalar/INPUT/.gitignore | 2 + .../EPBL_diagscalar/INPUT/Arabian/ICs.nc | Bin 0 -> 3532 bytes .../INPUT/Arabian/MOM_override | 3 + .../INPUT/Arabian/WOA_column.nc | Bin 0 -> 15052 bytes .../EPBL_diagscalar/INPUT/Arabian/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/Arabian/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/Arabian/itides.nc | Bin 0 -> 600 bytes .../EPBL_diagscalar/INPUT/BATS/ICs.nc | Bin 0 -> 3532 bytes .../EPBL_diagscalar/INPUT/BATS/MOM_override | 3 + .../EPBL_diagscalar/INPUT/BATS/WOA_column.nc | Bin 0 -> 15052 bytes .../EPBL_diagscalar/INPUT/BATS/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/BATS/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/BATS/itides.nc | Bin 0 -> 600 bytes .../INPUT/BATS/targetlayers_rho0.nc | Bin 0 -> 8935 bytes .../INPUT/BATS/targetlayers_scalar.nc | Bin 0 -> 8935 bytes .../EPBL_diagscalar/INPUT/COARE/ICs.nc | Bin 0 -> 3532 bytes .../EPBL_diagscalar/INPUT/COARE/MOM_override | 3 + .../EPBL_diagscalar/INPUT/COARE/WOA_column.nc | Bin 0 -> 15052 bytes .../EPBL_diagscalar/INPUT/COARE/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/COARE/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/COARE/itides.nc | Bin 0 -> 600 bytes .../EPBL_diagscalar/INPUT/Chagos/ICs.nc | Bin 0 -> 3532 bytes .../EPBL_diagscalar/INPUT/Chagos/MOM_override | 3 + .../INPUT/Chagos/WOA_column.nc | Bin 0 -> 15052 bytes .../EPBL_diagscalar/INPUT/Chagos/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/Chagos/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/Chagos/itides.nc | Bin 0 -> 600 bytes .../EPBL_diagscalar/INPUT/Kerguelen/ICs.nc | Bin 0 -> 3532 bytes .../INPUT/Kerguelen/MOM_override | 3 + .../INPUT/Kerguelen/WOA_column.nc | Bin 0 -> 15052 bytes .../INPUT/Kerguelen/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/Kerguelen/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/Kerguelen/itides.nc | Bin 0 -> 600 bytes .../EPBL_diagscalar/INPUT/Kuroshio/ICs.nc | Bin 0 -> 3532 bytes .../INPUT/Kuroshio/MOM_override | 3 + .../INPUT/Kuroshio/WOA_column.nc | Bin 0 -> 15052 bytes .../EPBL_diagscalar/INPUT/Kuroshio/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/Kuroshio/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/Kuroshio/itides.nc | Bin 0 -> 600 bytes .../EPBL_diagscalar/INPUT/Labrador/ICs.nc | Bin 0 -> 3532 bytes .../INPUT/Labrador/MOM_override | 3 + .../INPUT/Labrador/WOA_column.nc | Bin 0 -> 15052 bytes .../EPBL_diagscalar/INPUT/Labrador/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/Labrador/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/Labrador/itides.nc | Bin 0 -> 600 bytes .../INPUT/Labrador/targetlayers_scalar.nc | Bin 0 -> 8935 bytes .../EPBL_diagscalar/INPUT/Mariana/ICs.nc | Bin 0 -> 3532 bytes .../INPUT/Mariana/MOM_override | 3 + .../INPUT/Mariana/WOA_column.nc | Bin 0 -> 15052 bytes .../EPBL_diagscalar/INPUT/Mariana/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/Mariana/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/Mariana/itides.nc | Bin 0 -> 600 bytes .../EPBL_diagscalar/INPUT/Nazca/ICs.nc | Bin 0 -> 3532 bytes .../EPBL_diagscalar/INPUT/Nazca/MOM_override | 3 + .../EPBL_diagscalar/INPUT/Nazca/WOA_column.nc | Bin 0 -> 15052 bytes .../EPBL_diagscalar/INPUT/Nazca/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/Nazca/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/Nazca/itides.nc | Bin 0 -> 600 bytes .../EPBL_diagscalar/INPUT/Nino/ICs.nc | Bin 0 -> 3532 bytes .../EPBL_diagscalar/INPUT/Nino/MOM_override | 3 + .../EPBL_diagscalar/INPUT/Nino/WOA_column.nc | Bin 0 -> 15052 bytes .../EPBL_diagscalar/INPUT/Nino/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/Nino/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/Nino/itides.nc | Bin 0 -> 600 bytes .../EPBL_diagscalar/INPUT/Norwegian/ICs.nc | Bin 0 -> 3532 bytes .../INPUT/Norwegian/MOM_override | 3 + .../INPUT/Norwegian/WOA_column.nc | Bin 0 -> 15052 bytes .../INPUT/Norwegian/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/Norwegian/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/Norwegian/itides.nc | Bin 0 -> 600 bytes .../INPUT/Norwegian/targetlayers_scalar.nc | Bin 0 -> 8935 bytes .../EPBL_diagscalar/INPUT/PAPA/ICs.nc | Bin 0 -> 3532 bytes .../EPBL_diagscalar/INPUT/PAPA/MOM_override | 3 + .../EPBL_diagscalar/INPUT/PAPA/WOA_column.nc | Bin 0 -> 15052 bytes .../EPBL_diagscalar/INPUT/PAPA/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/PAPA/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/PAPA/itides.nc | Bin 0 -> 600 bytes .../INPUT/St_Peter_Rock/ICs.nc | Bin 0 -> 3532 bytes .../INPUT/St_Peter_Rock/MOM_override | 3 + .../INPUT/St_Peter_Rock/WOA_column.nc | Bin 0 -> 15052 bytes .../INPUT/St_Peter_Rock/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/St_Peter_Rock/forcing_monthly.nc | Bin 0 -> 3280 bytes .../INPUT/St_Peter_Rock/itides.nc | Bin 0 -> 600 bytes .../EPBL_diagscalar/INPUT/Walvis/ICs.nc | Bin 0 -> 3532 bytes .../EPBL_diagscalar/INPUT/Walvis/MOM_override | 3 + .../INPUT/Walvis/WOA_column.nc | Bin 0 -> 15052 bytes .../EPBL_diagscalar/INPUT/Walvis/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/Walvis/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/Walvis/itides.nc | Bin 0 -> 600 bytes .../EPBL_diagscalar/INPUT/Weddell/ICs.nc | Bin 0 -> 3532 bytes .../INPUT/Weddell/MOM_override | 3 + .../INPUT/Weddell/WOA_column.nc | Bin 0 -> 15052 bytes .../EPBL_diagscalar/INPUT/Weddell/forcing.nc | Bin 0 -> 75468 bytes .../INPUT/Weddell/forcing_monthly.nc | Bin 0 -> 3280 bytes .../EPBL_diagscalar/INPUT/Weddell/itides.nc | Bin 0 -> 600 bytes .../INPUT/Weddell/targetlayers_scalar.nc | Bin 0 -> 8935 bytes .../EPBL_diagscalar/INPUT/create_data.m | 624 ++++++ .../EPBL_diagscalar/INPUT/grid_spec.nc | Bin 0 -> 37348 bytes .../EPBL_diagscalar/INPUT/isopyc_coords.nc | Bin 0 -> 640 bytes .../EPBL_diagscalar/INPUT/vgrid_cm4.nc | Bin 0 -> 1968 bytes .../EPBL_diagscalar/INPUT/vgrid_cm4_10.nc | Bin 0 -> 1972 bytes .../EPBL_diagscalar/INPUT/vgrid_cm4_4.nc | Bin 0 -> 1972 bytes .../EPBL_diagscalar/INPUT/zgrid.cdl | 30 + .../EPBL_diagscalar/INPUT/zgrid.nc | Bin 0 -> 1308 bytes .../single_column/EPBL_diagscalar/MOM_input | 418 ++++ .../EPBL_diagscalar/MOM_override | 3 + .../EPBL_diagscalar/MOM_override2 | 4 + .../EPBL_diagscalar/MOM_parameter_doc.all | 1805 +++++++++++++++++ .../MOM_parameter_doc.debugging | 83 + .../EPBL_diagscalar/MOM_parameter_doc.layout | 56 + .../EPBL_diagscalar/MOM_parameter_doc.short | 403 ++++ .../single_column/EPBL_diagscalar/data_table | 11 + .../single_column/EPBL_diagscalar/diag_table | 251 +++ .../single_column/EPBL_diagscalar/input.nml | 16 + 114 files changed, 3751 insertions(+) create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/.gitignore create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/targetlayers_rho0.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/targetlayers_scalar.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/COARE/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/COARE/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/COARE/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/COARE/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/COARE/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/COARE/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Kuroshio/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Kuroshio/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Kuroshio/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Kuroshio/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Kuroshio/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Kuroshio/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/targetlayers_scalar.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/targetlayers_scalar.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/PAPA/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/PAPA/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/PAPA/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/PAPA/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/PAPA/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/PAPA/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Weddell/ICs.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Weddell/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Weddell/WOA_column.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Weddell/forcing.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Weddell/forcing_monthly.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Weddell/itides.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/Weddell/targetlayers_scalar.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/create_data.m create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/grid_spec.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/isopyc_coords.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/vgrid_cm4.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/vgrid_cm4_10.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/vgrid_cm4_4.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/zgrid.cdl create mode 100644 ocean_only/single_column/EPBL_diagscalar/INPUT/zgrid.nc create mode 100644 ocean_only/single_column/EPBL_diagscalar/MOM_input create mode 100644 ocean_only/single_column/EPBL_diagscalar/MOM_override create mode 100644 ocean_only/single_column/EPBL_diagscalar/MOM_override2 create mode 100644 ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.all create mode 100644 ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.debugging create mode 100644 ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.layout create mode 100644 ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.short create mode 100644 ocean_only/single_column/EPBL_diagscalar/data_table create mode 100644 ocean_only/single_column/EPBL_diagscalar/diag_table create mode 100644 ocean_only/single_column/EPBL_diagscalar/input.nml diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/.gitignore b/ocean_only/single_column/EPBL_diagscalar/INPUT/.gitignore new file mode 100644 index 0000000000..03865c2906 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/INPUT/.gitignore @@ -0,0 +1,2 @@ +# Undo *.nc in top-level .gitignore +!*.nc diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/ICs.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/ICs.nc new file mode 100644 index 0000000000000000000000000000000000000000..ec68eb738f78f16709d87218d2d88e1ec840a759 GIT binary patch literal 3532 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 Qax3OsFmo&Bmbvr)1rocStN;K2 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/forcing.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/forcing.nc new file mode 100644 index 0000000000000000000000000000000000000000..960cdce34a18df5a96c7d4b391bbd7afb9111a6f GIT binary patch literal 75468 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..76e61190b0859c005897e00d08cb24028343d3da GIT binary patch literal 3280 zcmds&PiP%Q9LG0pn!KbhF)suakubI<7D{ZYVkP2xI~(&FvP@o=`?&8b71-+WK8$g@-+GvYK_Cej@24GZM2)+~TWFNb#zKA27o%HXv zxf613au&td*KM&d=8<5&$xex6BHFjSkE5El3&?3&`x4YUD~Ug-U-uh*ZmyrqZPd@# z^!*@==fU=0^^d_Il)C=s(5}Z2wQ-N=e;d%KL1g?Q5((epWO#V^;E?=5b432YrYja6 zJH^c)6prwr0}8I$2Q%NLlS62w&d*s4&dO$CZC=~tk;)i-56!eTFR-g_Alou_L^ie7 zT0~`^%!CwwYvbq-#``YT4iDgHO*|;MMzXB*8^4>yeGqJ%ke!$p7QwU-and#foO5H`I+C-A%vz%2UI^^vOQ_{uSiG&h45)iyaoScMJHw5=$lH{hGw$Uo z?4{inku`5FKvUkitg(4&hJo)yTC>o>YxkILyB}=a7|gvMkb4MqO;ZLAb3UtP_mm$j zY?aKSnS&hATBm3Q(_%Y%eN&u~s2a{ONd1Vp0v1AhkB#q6{wo(;yHAAB7*zum?xQAl`AK2L(7BvXMTn8PO~gr_vpqT z+SJFI-IG4hGbwp1c`MvS;&F!0K-b1w3a_vY9Z>MBpD%}jM-ESwN4HoIe8Mp)8sppM zIS0HCUPW{HhCv?X-oUohmEHeqU&q144yPK$!sk))++@EqGs3sYR^!I_Hp$=iwGxPy zt^&3C@E6d4@}%|1M`T^4v?iDP&p$?C<$D$S<9SP^lpkM61z(&D#VFjlq(X0g%vDNz zzPX)--kL!KrWid}W>x6V+DVn-SAU;PL&yKr8H&+!YgL8*ap9Iq@z9(7Y3RKfL|}^1 z^X+97dMEdaO0o0nd>Z=G8FdPu{AnoAzkYj7rTAiSFAe>xKedeZ8zw{NX1* z4ZT0BPTn?pH=)ZThg3>SA9kmqzmQRhrJ)aG)w%wUQP_n3a`7{j;)P4+)6ieas&k{$C~QKP_wP_C-adCDjYswXyL12m literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/itides.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Arabian/itides.nc new file mode 100644 index 0000000000000000000000000000000000000000..2e49c4b147c63840d0909b7279405a458f5023f5 GIT binary patch literal 600 zcmZ>EabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BF~WwDuy#2qH*XU~?oJUn1;Q!|O* Qru>PPP4OIQo4oL+0G{n=0ssI2 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/ICs.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/ICs.nc new file mode 100644 index 0000000000000000000000000000000000000000..d1b854c2c3fc7d1337f4cda58436d910c4e5d2f0 GIT binary patch literal 3532 zcmdtidrTZf90%}&<9IG`rJ7PqhpA9?Q#W zVL+QkX$UPM;>km3jfT`Fm=qJVAd7#1#F)0BCPq@DCQXc1q;1+1b>@!8Z;5HkAI8K< zJ~z9wv-6#q-MuXGWRM|HB3Tu}L{xYkcBfmhse$(3{?(XRd$_@1{Dswlyp=WaJnr6kEBCC<6BhFnw^u#L z##+jo=f_~bcn)6^&tmg2MEt|rlKlNG9=9qhszY*G?6OkjQ0pyT*(s@x8rh<{E$OML zsTTVIY4JI%o=<3Hg~gR*WeF_D<7T(B``9th4zasy6<$kq4!&i)EvT6Nuws(!6*Abz z)z3EEE0^0mUVj(9#-QBJjz(6;EVbKK9t0oPm@lzkcD+pUs&bV>Qf!NDXu~X_O>>04&aNLjMCcn= z2|fN4p{*T+wp}2!-9TtZ5}}<1gm$?J^_?WN`z)co?Ed~pLQmxr`oS4OKVp3brwKjF z`VXaPuq^5o}CRyXQ~GE0DU`b2iv2SGw*0)mWq69U8=#c4V}zpskW%v6;KP1+R^`fUA+BJ^>3mk9NK zTPs3s%GV-v_?B6O_Fw-|gwh{t6`|k(mk4Bz&gbhm2aK6OM$5TA=<}nlKdi+#^_L#|<0@th;a-L*}2@c+dtXHUqIm?_enAR2|ky+=F9)=udWI zozfB<4Q(97(SUF{2kQ(DVF7AO!va(rj|IrS2@B8*zhVI@yp08DZ!Q*~jMuOLZJ)ye zWcmRMK-BNuSm&D_90m2y;;4Vqt!p?65YEJ6DEdGO2H2;fD`UL|!~fYATc^#?cw$PS zPV+_UICLfG@Hn7FOwZ^f_>O4Mwvc8G+SzhbgTyAJL3<~7LC z_o)WG)Hf4}H0Q_%!r4eLT7z literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/MOM_override b/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/MOM_override new file mode 100644 index 0000000000..875579f76d --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/MOM_override @@ -0,0 +1,3 @@ +! Generated by create_data.m +F_0 = 7.59943e-05 +INPUTDIR = "INPUT/BATS" diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/WOA_column.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/WOA_column.nc new file mode 100644 index 0000000000000000000000000000000000000000..2ddf27d6e77f9e2c759264db8f42ab0658e3f987 GIT binary patch literal 15052 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 Xs*^Bc+>d&@5fiHQx)GBq?e+fwf0!MN literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/forcing.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/forcing.nc new file mode 100644 index 0000000000000000000000000000000000000000..2bd97d8d3450be9958c96b74e5a638f3dd7578c7 GIT binary patch literal 75468 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..8bc6f82f9d3f6b3e4fff163575a88b1fbdb209ed GIT binary patch literal 3280 zcmds&OKj9e7{{HGWH&&du_E3eR~3{V0zq6VDsMc_gNHT=Z6XpbSR?Pm8Q}-Dy$uo2 zUN}(+p&nYqqg3L`0S;WMN`MeZRS#5Z;edpA+z|*=9uh))-*`7WSr+4PWVFA`cxJx& z&-cwYlit38CPh&e0`q}+NO5=wD&-T=CZpAM^XT@$e*A!f^U*Fp!CmH4k3k#fs}n(J zbKkMNz>g>0=?%UOy^68`K%45?Xp2SkLEYvCU{qNMz7y?aA1!5{#}Up>`WKX#6EbEo z8pYVR$fjY;B2Ima?&rxwv~L>6QAKG1@`{o>2KBsR;t%Rq{YIY~>nC&T^%qw3{UD4d z!SEP$i6@SwyR$+E(4{B9KYbztL!bl)VmHB1X0mrG0wCbYQAX0EH* z%#T@^oO6BL+LE)0tV*KdUNqRt?@)`q(0ERJSu5{_#%Wu5>kMc1B5qT1&bXJ$u$Nqk zNA{#O1x<11vc_id7zN)oVNF8^uiaa^IX{@WF_?Rwg4_$JE1Dv3nDbdR7mfJA)NIKt znt8|prFn!DF)ikz*Ezzd7L~&Z3aKAam&5g+hBfNXx`ChhWvDsYKZsd97tN)zX3V^O zETnNc%o^YPderOPR)ngdE}lcX$0NAUj`clt%VOo^ZD@M_?C@O}pKlFt*WEQUh&I)+ zM)#x>^em$3$y?!0YaXNc47AU@rSJ-upaTk?^{Rm|@U*QX1HH2>GNy*| zJ)6;7ykU?>`LD1obVc_^?dvvhvCSz*G51-NJU7|z%oz7e+HB+c_%_Jj+`S$U?YRt8 z>aD*)1ImZiU#}WmDbsULEcf0&rrNh$hMYa|pG;x#`9IR=!51e(G1WttWXS1%F31$V z{PBl0jOGj?FvV1-Zpe^R?wCwrqdT02f&Zy96jL34AVbdlbYG^h`sB+r3^juYOfl7C z7i7q}Z=cBM*X_M&7)!G1=y_AEL9V>MCZqovZcoElkx{4PmS;+kTSuSD=tu4!Ov6}{ zRp;hKv!e#Nv-cYr{Xp()8pdZ?b^bqUcGMuZul^#VAM(94jL);`oOxTTHbEIsfpwOhM^W(s%=bN3iGs literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/itides.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/itides.nc new file mode 100644 index 0000000000000000000000000000000000000000..fba01f096864887a073f7cf7bb9e4cb8f0b4b7b3 GIT binary patch literal 600 zcmZ>EabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BFu$9$LDC5^Z4hB`mo1-;#D6b{U> QQDthhQ95j4qf*%q0CebOJOBUy literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/targetlayers_rho0.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/targetlayers_rho0.nc new file mode 100644 index 0000000000000000000000000000000000000000..5bdc2bde46dd97907d93fa51afba5a16e4575092 GIT binary patch literal 8935 zcmeI0Ur19?9LIlmSLc}5zgd}7EUTB&;dIJCRvX*3iE|Sdz66cou61c{wOyruw0fxo zp$I92u*V2|=s^gA5UgH$=_RO#AP8d6OCShRi2Z)&+^Zx;4;5sb1NVN<&iS45`~5yX z?CT~X;hrjIlhfvKfHhXlQEKKZZRUo0t9v>g2@l$oIUC=SZRVDBWTQH5AW?{Y2fd{- zdee|ECiO3T3fp%Bt;-T@JZ*iht)_R_ix<@`V_*srp9N<{JaXJMDh7*mb4 z;ks2@SRd8XKUReYXeeQ-REA1yg_`NnGnt`OW=z`@BSE)%u$14kTm&L%-MUb9-7&r$;*d9=E66?KyD% zS^xvt=%7(?J7DzP|LRAb8!lgnpe|j?P9#vfrrr*mL>-?EH0r2NUOf6xKwW-c|L_W` zj{;FIRDJ54LVbELwlahI&5x0&-9xU)In>K|-8|~E>x)gVP*-M7e0+m?gf2uazHUAD z8FjvN*SCbqigR$idgD3&jEh^XUe>uvARq_`0)oJQLEu;@ z9;NRb_LYIc=BUT literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/targetlayers_scalar.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/BATS/targetlayers_scalar.nc new file mode 100644 index 0000000000000000000000000000000000000000..cbe3461eea4f97492f6b36aec1195412dcf399cc GIT binary patch literal 8935 zcmeI0O-vI(6vt<~P-|H}MUBLd201CIZQ1f&7_!|0v9yF5!>y@w(KV$tZ81hPNMd3% zK@($0xEODE#6%Bjj0EC|BOZ*wqc&bJ@lp;Z_}=U;M1t|49+a76_sza}Gw;1$5Bu-l z?hA&>opnx|!$GXEVU9w*;qjOY>b;KHXkT#1COx$oOQOwOvbJouP8$(0#C`zpLJ8h+ zh*#tK7h_8HA13G*1+sm&^;}hjp%2VtF>{~&2u_3&mH=i>J)PIGqlpnMS8$p!drXUF z{Og<7to-s>L8wKKO%MbZPGGp$9m=T1imP4S!~jBxTt?&#k&w~~ToF%ffm)w5D!VQj zo9~-vSRL7a+L6?Qp(3dz5?mx6(efk7QCZ1kvPnIi$ZI)L1$hi!E>Lc03p-SV zm;zlozwn<4qKt5ZFZh_}D1Zx43;?ra5>j%6?kI0{rv|WLXY0(?N7EHdA&? zsD<9e^vf+2z1e6h#oenbt@I*f2@SW=z0A=@A7lDNJMCo!w9`+px~6wf7Pi(w8`uGz zl$BBJr01aenTY^pZIUi#p>NAB82;VaztKCta{`SPRP{zSC3HWZIVPWhr=W(r9g4Bj2_H5q=wWXHKM3- zma!S4F=H~3Pvo@xR_dfarlnC3634Fu^yZ%gmX?s>v+mF4lp9Wf6W|0mf&YX+uM!Qj z7YqB6wE2=@Z!2uk`W9ui`>xWOamxvC0-OLRzzJ{yoB$`l32*|O04Kl+a034df$tra BysQ8K literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/COARE/ICs.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/COARE/ICs.nc new file mode 100644 index 0000000000000000000000000000000000000000..74323b3772b5806cb974dd90be437d2f7cd02b15 GIT binary patch literal 3532 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 BrEvfN literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/COARE/forcing.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/COARE/forcing.nc new file mode 100644 index 0000000000000000000000000000000000000000..cbd28238a2fc4df3ed4562a32c715217d1f6f54c GIT binary patch literal 75468 zcmc%Sd3;Rw-~azuYj3E%me5eU*k<06;Qh`kh%F+5h=}aFB$7x-BC?Cb5=(7WRa8+W zZBdnTNKaLXNFw&7nyNLKsH*y?D!<{l-)!dZtj^$%*=T|&Y6AAnIXqf zwJa=Z&9<p*o*gqgBIv`+HfKSZJ(Kqw+iH;433Gs=TrY= zspbCiBo_6|dkxG(aWn6~+4y2SFZ}5j zJk5u3{=OK;i*dgg%ZuZ@Ih{`aKJ#O&VnQPP0;~oMWdr-#3^4z*vazv!`Oka`^L&pD znH?}IGCCwEB;v*IFV3%}`FLZ6bKe)I!DBb@^D!?&f1l`A$E!bf%J?zD`NhdB>d%h! zpBoT-ygHS)z&)UjBZ zC*yBE{BkU>7U91;mTou}pV5%E6J{x2`pR`EV@0anpI{{Qj( zHK}8m8}+{!!@E1jNE@_|N8pb3m+>zj^wJcyZ{6AS1_AlncWH;B5 zlPAx5ahLm_TrXOVG~bE8yi~@AMEG09#6}0iytsA$clyV}bYI-H{wLFI<^1B#`oEd* zzd3Es5#}R~C^UPuKYEk-fO+@7-5*i$^5hn*d&P8(gty!nP>)sflb1gch{}q}H173y zLO==q-3`&=w;mvo+h!@El&J|wnpNtG4rMGYK_ec&>gZa~hM}?VY-6CNKt04ShSo<^ zHt({=y$<6DD6`+qMwIiz9wc&}S|Unobq`6ccYluT_F7aUURNEL@%hFg#NIzrfpi^* zVhTB+vW@N<_uk$}KndGmjcD-~SCLp8+a6JB>kUXczW)ren^^q>@fWw0=AH5Hctzv; zgghfqk5%)N@2^^lsPxQijeE845m4qNH9?enfFqIH(+g30on1(pY%>ED#PnK$cnfuG z#)nIy5%W{xP)&h)h)dIL5tU8au2KC+5Kv}YUqqC8a3m55I|~rS{BRFRRRj8IY~9{l z0=%_4E>`Q8-WnU6H!`5>I6M6+2UOt0vYt2StPEiq}fE$HKjxHOd zQRld;40!uj9SwI_GL&OIgaKX0^$Wc?pfW2?*T+}CT1gf zi3-=!mI?G$gsyS(bCJ=d0@bwi>U&~=s~XC< z0gi}f%^Zh>yT=MdlP+vQa+@iO(V=gvS|R@atB!$gj~E#0`$ZtqbsVee#Q|Na_duii zqm={{Yq>6>5o@*~G2okChz2JPMAEKRLy=wRvU-U3eAO}h%2@`6hNP@Sx{jPyM>wDh zOI$Uo^C}4_Hr59biP2vnVSke&8ZzGtN$byfp@NOh{)qQ})e-S)0|th^{kc2Rbu7y5 z#sOW}xgQGNoEy>}}lT{Sk*xb{;&3GlwJI;Nd@pP{?=8Ze;i z$oTpS2Xy|+e`!?5uOpxs`Zhu2=3_v@W!5@Gqh}05^3WkG(V@aqIf(av)zNdDBSY7s z1~Q=Qh?wZe0iC;jN~1dTJ^{tPT?a(&;mJt2wrhZB+}LU)*Rdaq4myUFA#RiMa)`!f z`z|0>5$b?+9qtKP9MC!LrBNMTL_iUK?ub18%0puEyVns-_^}+xt)?$Uk|ByCKHycy z?O_d#fL&=Bk8~Xi8YXf;XV^`R>X>)}%A~V-h$2G6kO=xd5YeoALy(l6 z;HwVP!(B$ezH@khbREmm>u^BjXLB^F6S@;nru3;mG;d)P60xP9APN~6hh&TPkC0Sl z>x}pywS(1p%Sod;u^|Jxjt_s%;(*S2*U_j>IZHqpQ$HI~T;wVwA}x<23QEpGQbMXX zlHUvKfcW579rc4^7#P~B@jj&M*nD9H2Xy}JI~vuC(g-Ma(nUm}EiI7nA8dtaM%iH` z<*rdQHVkB%lmmJswf?_@+oi1gt^i z7qAaW{S$uHm~)p&fE!+Q3~6|eq33Kk1GvvpE5s#jMKP{!xhMU-Ot8HvP+ z35cStk0I%P(oBudAMBR^H@@odxS7n*uDnjQ((#|4B0lt0htpGg28PCTm5{C@d|xpKbh%L&W}M9S3x& zf3!yR-pvFQ>snEW=)+D(jIbGm$hhNOB=22gLej(a!HCX>;aoPnX;yyqib$MV=B z4(O6cu}1X)7xVMM*OabTtq_g8dKHNgQ*sauy`6#Nf!muRX;avA#O+^oI1Fvcz|et< z{y@48U-R=?K$qI4X;jM=1e9*?-A6R8%VH$R-v!a|Dn}&!(<4vg>&^Woz=yr+7=PTG zfua5P??AeaxTXs@pi7O$YE*y!mHBms*OYE2?GcUfus~vj+!)a?ul`83sV>oYXGjYf z@ZqmICbe>9U}&#tc}Ul>>{|;C=wk3hjp`y_0!nYob%-Wy8jQrK^F0uav?)gge{9&S zF(&zb0pKHEb&Oq=!qD|pYX)>3>mG%2Ko|VBYgC_phk!CD%pZ~e*FBJ!HCIA3wV)Wu zK87>M_UeN{h;#mOh|J}qH?R#-R7eCmpQC)SJfYR&B z&4@hewnoBbZ(T&=|LTUM%~ee_EPAey0C(VONBZFd3_aM=hyh*4=i7#JKo<+@Yg9j2 zNp7tF`}b&6KmUV(V(Z!mQDCi`NKCOEj>vtFK(ghm&rw0^FVhjHLbYSj^{WgWN~^4^$B;3P25KVn68A27vBtgjg#?t|hn)}&w_Alozuiv}4RZM&$qUw>Kn13W zfryVRR6ACRjSL;i^kG2Pv9j?O9MA>jnZ~^?u>_QXf9yjvbz>wF&bKZi8ndT1lJ}U} zA}OTYp62ySUQ>ol+=nP;rxg-DJ^LdH zShEz#hsSy&iA@-U_^3j)V}0j*hEiu7U_jULd7d2ybpBRdje9*S2q?ClDi8&)Zj8i~ zNd`nShCfEK!MX%V6K%F5KANi?E93hx)Vy{b26P<6c zB8ne=8Hu2Cv511dOGC2fhfR?*^QHmu(S>S9cHt?8EQSjPbRA!B{g?wfXP2XK?`Na6sqQ z#cABD-POFF%xelw@J5u76o5o{k_Do$eV-y}&Z09KuHPg{fIAhc9rGXm%z*Kl!y=^X zxLl_p2XwB(&l=SaZxB#M74|`tKCmScv72@vif=z0$rEQEMg@7s-w_|fUk;HaHw@5d z_IY;(ULFa4@bhuq5uNMrqEUVOGXly;MM9Kp`U;78XW|h>&Pqgb-1&`23j1;s;$sTc zj>!2Q49z@~zyKt?JjgGXcSdyfVFQio%b^66(SuqdioCH836JCMhi}0fd)Hx zM*@5-S371o7#Z5WeFX!$jssJzIiPc~HX7BZ`VmkZetd|?ZRd6*9Bq3eatf@2BJOV3F#fgE1L-T0cHF!H$>?> z&m)nP-y2bU_6{Viwcnxfq)V9u_;{{%WRxvoDCx^S4Cp%QblENdojYi+QN7NQfHJ~@ zBbwi?4HDt)1|kZbmVxXXMl?fm>f$WK#}}#{3l~>0baIIW18;Wl<6$O57g8H&ROdD# zpxC%rA_{GN90?D(Eh5j*e<8^ws5O!kce^1zfvX*px({aP)UX{4=sG?a)R+Uha5qb% zdOrOy^mMB#bmNO<#!h`g4RAZgcBhU97e>mWX%Q0*A8+lGOm?Rvx_UB@cF?HthM zLD3r3Q5y&-?e5wm8sG3161K5D5OLqFNV>oHB9c2eEq1xe@ z^f^PfatAY@>qw5g!vS3o=Ic4Aw)>8N(*N{XL~hB8kg&TYBXTNy7s;tZ4kM|^+X-l>D|g25x=tri2At~pBI~vE^?2`bW+ax4S`yv`~S1Yw+@U#6446W7UI?{FYPB_m2 zU2IfK!*ui?0!p_F6^LSwUO~buKt>dJZ6T7Z>*b+>vg|m-UA@(g-np&Kw^y$X^>Lby zbRF+>@5TXL32LHY`lf_{(kROk(YR0dBVpHl8=?_^j6-tT7xz)Yf@M{RyKYuH+@|C* zFw}EF3et6?<;~-OuK2CgFzwn*KxxE+5p{d`9Epafdm!pK&4lDVNxhJC_dyZjt`%yB zOIt?6A1Iz&LR-dlzoG98K$4`}3s9Fhh1>+A_AW8R*JsL#LpA~8lehRAA0 zEhP6GRSQWQ_k<%pd9&Ivrf@t%xzno|c(a4=x)6xyY+#;-X{Gu8yoMrtk`QHG0#78makxB*5LgUk=gu_tQ%n*9NRG0$sGZsnpdlVw>w)y1{nMM5>$hhND3-o4(X!qkh zL|1NntYJzjC7{&(E(MWuk3b}PaRVaC@I#XI^+y^Xulh~`+^s_G==S#(hMM;{$$+jy zJeVs0T@7ofVTzwjK(X+3K{Wm28AuFtJB`RWp&63n+}=gf!Ee(MpJJtU*iOk~sJTN4 z1G*05fo1~G*-L&Jra2b~DE8lPMl`osBP3@0)D=;XixJ7gR*yhZlL==KpW>}{ObWls zfbrX32O(XDO~pL{sBB4)hAG^Wfa3Lh8=`dQdq_kFH$W60?}?a}CJS67zN=Fp8EFMW$KD&Sl4zApX z_>>B@W6*-m3|V(R&cK@;yu!Z>QOWZj8YUlq0!mnO^Y-U8Xmv>x5=#xXh;sjKg5-=X zAEJUrW1JA5YNdAAA8gNnap`+akgnt8fleGyslP$PG~*5dB}mRglsCl^iJYn?h!$<1 zh2->^Q&GY1Gg=@%)m!Ztky)DoN;yZpHqPzevB(mFN zAzJk7O(aijk7W#-oh5oKpS zKq6(&8bm3H4UzOqS65U}>DUADsTFERx^ogk%NvejK-VEH&f|c}FIH)o#>Ep*#;x{7 z6u0O%BqoRageYXvBqa4NzlI9_8RLlfG%K}ZoM9kC2S0v~0bR$&8Fe|Ja#I}*)5xa; zl(D77h^E=uB4PJ1AJMqP`$*c?X6sj_d&G8`7n|$j@hm8 z&M%!Lz^7ZO9mak$88FU?dWdu#S3lm)0hQNTqhV^_lYru~ZzH0mzpO1RF~rn(LU z6qo)@5M_5WqoUfM5~DzD)w$qeAWAXBIPLd*uoP zx{f>12RWe9v~wD!=4%Kj{&5WuWtQAQBI$yHD6z~9$qoh1sNnbU>k*$}rFMiTY+}Gz z?394s>=3oLTOcYKwNk^>ZYlvKVvQA|ggQHr@EhWeD6DKUlB8d@qeHuwS0FyaTkQzG z*_5Hy%>x;Dvx9%DBHYel(NYWNt4?wKn172sz%&%v)U2L%Br*<#BTCKv0!i|w78=d-QzXDWE7XoTKAZug)x}Ln*YWos7dfC3-?Cs5K&gjMI;tZb3nA9i9M1o-FDH4yqhEeKGR$6@C`V_fHAUJ z0Md2*7O{f^DjQ|)0H#^y=e0Ey@8ic2ExzxCL^jPulp6j%k_Qj{5*2I;Y>oKL&1%Q^ z&+Qp7ZhP+;(slg(WCsUS`q3B-c<+;18~ z(o(-&hZdo)AbYqQ#sS!iUySQ1i-bRD-&|HA>5-cHmoWmXbU{QsDTDD{`m zkeJ)~38L6J&PXczW<0Ww5c!CERj3_lefBe8bWBP>x{hnznsPv8N6u)NmhLvMU-Fvb z6;X^RD!T%S;Q024d}~D@$*OS=WEVcP1o2r`YR8h(YKv&D?r)8rVFjkD; zf^;1h);{EbPLJ!aVcKn8udjwOqlqV?)RSRIEX*lI6tk%(k_}ydL{e778pORV)sA&{ zjxb<6w_^;_b^LU4EC+NtbfSi7Uorv3V^R{L>||#o(uQ_Kl;R;FxmLI>lFlC?#Jz3Q zjx^5-28>UC?SXV1mjc2$pwn|4G)xi^P(0l0BFYN9jzrp=+K7@Ceu|_W1IM9)X`vi( zZx^*Ab>~P1jB_3TM7oaa(jE?|EdOr}(^2#LgEbWIb>4`wcUdB_XnGGsDT5av>3nex zvbSD83UTi!wPXJ8E({ny4(fn(9e?}!aX@9=-qJ9gEGD1?7_1R3wn;)Fv&srl%IP8` z-Oo-$b_*xFBJQ21c4TB;X27`g>o!Q&aqp@>2XuO*i-ze;9s$KO+5%D9x?@PB&B#U+ zd#gQ?Rs@;X!>Cbk^ICnxz4O(MyxSEF80QXmL%NQC^{C*0%BII^n68*#hpVCZzioa! zu?D3qZHGkioghSWdhbS3(OL^s@ZHsih(+3e5WwNqsjQKm|LGZ9&}ozS^-a)s+F`$U!|v1EeBNg z=>`o`rFlKF8j5c(8$@%z?1Dt>@8-|Ts6m0g^^vrx{IrJu{;?9^K9*`nZg2_%#_3Df zp*K53ox39tl_gqhnC=D>Q2e5MAW8}{B9Zt<1fuXA7DzhS&tD^PO(O|#9~-qJYvd*d zjBovsh;$tt4=)pdO3u~QFx|LHK#58&M3h`uibS%Uk0|2oLnP1n_I)HJX0Auv$3^W} zT)z(k2I(_Lr0Zx|;UWN)Mzzu~RZJqFgr!y>NTK(vaNAz7DdxQoAp1b%7aY)OQ(Fzw1v>)DwCNoX&FdG8MEJp$h(dgC zBWag-OQZAA;S%6J`D(|UQS}%wx*VB;bRBo6Jm$cBnQE?KDmTA>UPB3M`4Cb3zKcji zzvqD{c;y!KZSy0Ik+k!Z4-xk%Q#;)2tYW~}CM^r;Iv&kG!~vD`U8i9xu_mC*t?Q3y zo~Hqcn0wKPLOMDlslad)+1;HPgSgLqwWCYiJ_d{fKKcUbI*PZoWW;@4)Q+r!77Q4T8}}hy$2*@j z7Jy1hPHLD6o)9p(!q_OsTKM8Q(D77Q5+i`}vAI)Jv z*U>oXtN?U6_mqa|8}sWvHI(TyTOvyA%aDk-C`1${_d)W2W)bK>;`b?t`{t<~nYX|*6t#p%wFJ$ zDE(F(5*ZKfAd2s|9Lc?#{E7EhP5?JnVIJI2VYadZnQ;|KCvzmnTro2nrkXWvT?;=B&D42N8Ine+L0YQ zj{##u{EtZ2(I&pR08~2fhK4D{yj@WZC72f?N)EYga2LH08v@bEDckPF9F5Z`6{B&g~yNx zpVbP{jBn2(xn;wrNV>IXD&qc8ua-yKO>BJ)WA39CNY`=OcQ^-B&ZcUZA}*QNFL_Ow zw67&1pZ)ca2>k9AqRCFTkvuxq7adxYvH@}bJhfx3YY_uR7rO^Y*Kw-;Cmhge8z&7@ zs0#sQdYL04_n)pK;nq??G;ZS>BzN9E4%vUcd<5eD`D#bz^UDkvm;ZAV={ioXE8)QW z-RI64rhwxF6z|3t5zQ!aM`Bv1V~CvH!;p0RpJN(tKb$84?q8;M#I0$|fN@Utc%cOddBE=D4_Qy`)#V{anqySi&NDjMyO0QbMIc6hXX%7AgK zqY3FcZfxNkP|4L;4bv?1^}L1>-o|`?UV~yyN0CUX?20I$Q&%J{xu~FmN1dz@53p1_ zJb$XkfN_M>4Cy*fPhP_Tm33dOVe&NJ57tn8zUGMLA8Cz5(ozRRA&(r8bYoq6R8a3D zTf_rw)Q-r#MGP3b9cqMh9cOo+=YYy~lxdheJ|LjXT-F0o>_ST<65nls$p6$VBt1Hn zfo$hTxF8&b`*=IeP4CD_&yQE>gKNQ4ae3DNZEzmOE|mx62`fAtaKfi`N#zUmYP zjFAn_B3(!8=P3eE>BLbQrqSl>c?~6~@D8HT#r{Y{4cmrjMrIC@mOWU84oQPu5f5}x zJ3iTJ&wz1g%fFGXqqbeR08}=0o`%WMd_AwB%!=)RC@iWi64903h&;s{BoC`tj_i(k zoklz`O6~ZtMGgbTuz-t5-*G)j)UH8g4aRGj9L%r#)KGlN-4MlEv_vAY@diZx6Frce zUTA~9t=_sG@xVN_V^MJ#1IC?GT+o{xyt4UfL}fP}HB8*byj{_2ipK?aM6t$>NX(C} zK;-}NZ%D2^U?3_O9QqjXzvpF(8cpv~Ke2bQTF{(X`dFiu#y1L-!(?aP-k^pO zad`)#l%u_nNbS7~(H!3jB=;`xM~8eo?;;*}U+tLnX&nZPLq}{!x{g+pO#;xVHd8fB z?3sDHyVsQYO&t-Xbf17k>Y?`#MYWoWj-8g`B9UVuN z3qYryxM`RS=Fk18q0G770nz-sHb~4hZAKKD6Nsb}(K0GHvA(5JN0#VctB}m%cF9+Fo?zsc; zpeVIt(LP@Wj5&S@NY~NguMGm2*Y)Y6Vd@`9KneKkETW|6(~wv&>LH@pz3w16z3ok8 zSAV-d;z4<8N0!$p28_is-O!sI{8q6)qS6BM_G-Y?*MflJw^TwDH$NPSxnGnZ3hJ~R z$^9pIAv>>_cMuQCS39zg^kKkw>q0rwbyRE}#Q~N6o}*#vWnSN>hT?NP1yOuVG!k*a zv5113R3f?8-Id6$rQdDDgUZy7m9={?U^o<$hTiND%^jiQdMI`3$cq^Xo<-%8H+X#G>qjh!X$#7|Hb|M`X8r+7!ftUDS?kYo0J* zT$HvG={hF39TI>_>K)WDb^3^a67^#bM5*rYAd%8GA5rudmPoE;dVuUL-u@Hu;3&1@ z>si+rFiw4vfpi^%fBH}WD#^L5Vd}sLDB(Hx5zWcVM5&(seY=zA6Bfe!WS<)UMq8`6aI@egifmn)6K$Bx2I;Bl1oD3rXkc z4k}nx_&(yn`D(|moKOagwHrJ`x{mjb#tLA5t=;^2ufX(9E&(N^paY@>e{Mt~t?vy) zv-egY>0HNMs9-{TGsJ_-)Q;``#S9qV8nY1TI@%V@5r9g}-0b;OE)}grx{i(sUkN~`{#v17svBhf+^E-- zsHypgGTkO4k!fCk2$&z!=OXEGax^N~bbmPFA(m=K&Sq-{452?fLb{G2T@?YS_`JVH z)zk9?l=*{}AWB(Wf<)3Y8$@&HAd*h*9gGUDjOvPbh>hA2*V_EPS`9r z08~7pLZj+WM*_-%&#e)~Zm&QhW=LB^0Wr&vJklx^*(VhgA|B$Rc5J-l$$;VKu9uLm zqg&?{0??^TwKS@#zb2qWeVT_T?MNRavZT?-+*pESH|ITQSpT+Oh=)X}9V=&VV!&A9 zn}T#59R{}*fJ(3XYgFCpNWRsV>J6&28<4q`!|HKn1z2 zD-aJUQ#(eX3>drBaYAo)h^EH^5tVFhpix!mLO=+o#SKZ1OFlvcirgIWP#d-5gZ`HpFx<1TMQ?WS$D=nOD!unWqv~KG0maKX7ExN; zo=BuTDMu7*`54JILsF1E8RsG%>Y{d}KlNn5m|^(|(sdk};LQP@ZrM+x>Ps5}irbx* zh|<=WxBsXiQs!kKn%i*|lIu}3WS71_AMwyAwIg@kBL)nA4LOc<9rru6;DAbQbkeBW zxtV|x*rzR`tO5fPiwdVAN=o)Y(w{!<(V<&EbwfNfPwmJ!be#cXry>2&n;oLo$yh|C zbMrN-wzMFi`1mzJl>S>MBvS4^Konp297$K!-$izrmpULGny+?5)3*#5-D3P^0Aj))pghblh=ZF#}_D1qM^*%!d{jMHCJhV*hh>2~@fN{X( z-ALE*$Al6N%%9bFNTX`yLjp?R^fE+QMIK0GBtJp4pzc{DyBB#QyFZ@aKs@xm+TmgK z76XPyd0Ww&9imP}H$){PmuOVw`V&w>`yEA;(^EoX@!qG1QkO|cw%ghi*?aYQh6tzHd zfA?PKQ0~n<#KTNv%3>X%><{(|ipoWbFpyJ-2XjH`>BA_HV9YvJ=n*$P=JHADf zvich&UGnom1^@c%YsAB%)Q*@KR|X8DGrA#N$JkVV0qCS%eT}NweF!Ki$JZgs$vlZf zw)u0mf%!50L?pjGJs1^y|5!#mEKlw58`7Nt!+|hcr0baITr2<;{dQ2JDqs@bnIH$%FP;TxF%RJ?1p zM%7gF{a_7cuJ>+4i|9BK8AYuTEx0!UNy~F`P(kjx48+6ks~sMu>kJsX{^N#p9UgDp z5P-@%)5F{d_?n>`$b3L3B5fq1x$+L2>u z!ho^c0ehtD=r!&S0qB%%TaBs_R|zOl{W>68bVWiUv$hwag>CvGx#O`;$ZoK46XM}6 zYDdT~u?!e|%j+XuNAGh31)!6ox@lA~^Yg(P%EA?Hh?XbBB9YU=5mDA97bIO=SRdJ4 zxv~!N@F=w-w51CJ2KH4b(sj6$<_SPWJ3DDq*(d~*v`(uLoFv<7y2Sf-%yI=UOx{)--ch!MLhhz+OhuJKn9G>GNX{Lqi0cq0Os2&CylCBeF-QL z7pxKGH2o2Yj1yUiQorkuWTy_!$nK{mzaT!_QtjBfu40vNdPKg>ouyH zO(viOeqnw-Sc8_h9YDpp%CVXjEC4U-zk@B=mPdwCvY1B(go8AhH+5bB|+) z&(2djoa$#YVAzoT0O>l$cJCtqopP5nDj!r6P{L0yL6lcVK_dHEcSMU~Dv<23-26Qz zHS9jvdJys1`D(|=fkzn_a?kGo(sekF94r789UG}pX=+J8Nm)A_(Fbjkk;vPB715F= zU67o0bs4g~d#)bhv&+&MGo^cDzEtxP|_lIAX?V@ zI1<@(5K-o5OAyO^WP$7(zuO1#2urmi(WN#62FHZ+NY^nb$X@^|Dqg8kc_D{@lG6J+ zqE++<63b)@L^8u#*6Ea+^V;vg|7Y z%6z{HM5~V_9Of2HYFNX8v^VBk8n{t410PpU^r!)k8~YFmL3#vRzgP zK&4}{H7dWaO+cA(@+>lc=Wz=p!WOSXlrrWABzIh6KvKKJ)rd#rsU4Aj?q zPP&D39ho056M%m7-lI{u-<5!})O97IbyxC{_+U&gM9UX-L1k*;G#M1lZx+|OF0a!(QgWpQ6mMC(1=kXSi$C!)N;2}o}L(^sfq(C5Pt zkGQXPWUL5g!0<4nDbjTe`sua+bTad}M&)PQ2q^QL-9WT*rUMc=50)TWyr&(K7j-?1 zYzJPbMm*9|?TEYCjR8a7Kb|06$Eaiv0jTIRFOAC0B?Od(CzBAZIJO3fT>t)v7F(LX z&!~nR)v_+Kvkjk$c%+Tmk?9@5fFZvy8|gY6e{mClPEI_iQMvvR0VQG5Lqsc^)<+`8 z%Nx<+pw37R?{N{?kGa?v@kkf7W8*uU7%)VfcR{+2>1%QXpp!XEG%C%X8wHekjvEmz z|M5#C7WH|AXp!4>Bo8xhcL(f0+&doe$SAdA??*`t7`}G7iF6$UY^?;K;`FW>l}pAD zP@=}zBU<%q1QJVHKR}e*P2ZHVk1dG$a%GGFcZ_}v8z7S|m@(X@Kl@^~pm#vP|t*_GK{xM&q^L zk*JWjzaFkp8UG^zCBk|iXCqpY5sReqBL|V)y~MeQM>SA8 zKH9U30mHe$IY`&R#?%pjPJG&4qcXGu0VTa^ zo9&HwR9m%US>Xo^7{`d~NY^nm-d+GI9{EJ0(r+{YC8{zU(TWq@k;r~rAJO8W+mUp8 z!Ej_}+{h7+>Y;Xgu>C#*#*SWM&devEglC(-m#hXYjWi&UbuJiD zW~~Y&JMjI;zC*zs#G{znv3k={^XGWIX83YnccklZ=+;#LDk{p+sGMZt?vHdGgS`I`fKI*} zs8Km}ECFTyg&v4jpX!6elHH+*medYF^0cH)$o6^V1;nG~sU4fDtr##o*)Rs_ItECJ z095po`SmMM={ARelK9PWM5{L~Kq7a28$`J`Oh|T}?}+R&WI zr0Z}nf8Ge7qWK?cRJyJspd|lz1JRoFCrB*q>W*mXmuHdO<=7Hr-y&}w;!*3=j^!gV z7%(<0@j|+e;p-0wK*iDN8kH`G2`CZ2UqrO@wuD5+4;K+-e&~hdmiOABLsK@bL_BJT z+OcwQ2L=p_n-?QphtqHWUs-qlUBey!alAz}RWwuyEk%jgw`A_fy>vc#TY_3bXwa{s zN{A)7xrq=Wdv21OeGyTlEs++rG_6Qx)OQ+jv)D=rRn%5@Xsc?gYJKON`5t-AnI9g1 z!1ISW_uS9&{s;_E{fo^H)tMFGNNx{jwWU*RD<>$>-f5WbV3*M?z?Y z*6~?oH4nI$tJ9F7W5NZV0jj;)Q%9NfDgileXDOnhie-r99!x`&5rB zBO%nOb>uv-@xavgqrJ$`G0^`p1Jv-%w>rwiVFcu5JFg(hA3GN@2TMeh9zPaImR8%5 z`OKafNC<7zI#!Pv!UNOXK6j9zqbI+G0cyBYqN9utA|Nllp`I6QLRk%eAeK@)8d1vB zIY=5gVjHqtxp@c)p|`Y-MX!$GfyujI6Ebx43UD$&4bu~KlyR{HfQwzI@(XSFhKQEppHTf1Z3NAC!(UR z7Q}L{mLkf0)((lgdiO)-z+aamAU-NwDF4nK#4_$Fh#YMsB>vPn1zE;8wjv?SOY4}}?j8@geZN#9L&qCCPBK9CC->E45)#6Ats~B-ln0!B@I_?k7+1(KK($kr z>L{c92*?Rla}gESJV7jfa~DK8>%5TURoRFv1KTV>LYTkSv0={z9&o?>s=f=*#L)5n zptcN<)1|Jr1H}?dKu((Ej;PowBbJ}~A)=gq1CZo3q60Etn7juGVL@6)$$obpaOao) zg$y0Dgj5E|>2*a%@y#Y6+s7V8RJ4yFmJ{WJC~M;(Bni*@BXhg4+mR3!taTK(-N6Gc zWY;`o=$JC`FauOG)>}v6za=1N)wM#jrNcDDHk??9D1XBoBuzQE30XRS;)#T?D6OL~ zErtg^bG~p#hK}Wz*DyfUuR3)U?q>pW(XMHTKG|{^vAlj)5#=o#ilp&ljv;f8328_O zvuhm*Th#Z}ns8mV|A-77@&EN?fSjj1brhc#1mvWwHHeB5OA*W1RD&q%OBa&-dlc%l zJ)SQCA*@L2Na9=YfJ+XHLxzqtQyBx~{B?_tGJF65IcbnLq78w0h-EBS&-*l?%ykly z-rczoi6@K3A|b3y>)6!sG7q>@E4`4RW9^J_3{Z{ju#PfR-REo~XWpBDXwxVjvHUS^ zh;shEg`}Qs{gL_TlU+y%tI#?e$#p#7T=z4Op(CR8Z3d`jQ>2bEcntwLb82fu#Vb}L zmQ(f+QO~L?%7Br#nm6PSGIJ#8MM{4WD4+oUa>Up0ga%{J`h>FUZBbK|x4^dXk+emtIa3L}eJ?4o7 zE3b9L4D#dwm)pGp89IcV4h)bpV1&u=;Bqapk!@;4WY5h7276-bWZ9r`SbDX{D}o0!B18&sTIArLU^3n?oQ0)j_M`^B}vuq+K^qqhxcg9e}GCX8N zsR`SW)c)^KWZqlzB@(Q`T1Tw8ng>2Nr95Ql2&#-`fSg>uj_c_R0&+^HW{3)x%tS0Z zc@LtDdAE`D=4%dAwe`_OBv_-gj+F9d>U`1XI6ox{89J8FU%~(#EorUedeEJKoEjL2 zD8Kg*#2n8m5T(!XMpa$ceT6JNckV)h)vk4fO*p{=u7CXR$k4Gerjh}w3GAuk`t1$@ zIdkycnBk|(7N67r3TLTiT6(9Es;VbCJ1h_xDJ!HfkODp@Vq9 zou6Eb3>|Z75*eVHv#;y8Y83)<`ia?yHm<&pSl*R*MA_y$NE$flDyqEUHyjDpTUv*G zrZ*3`6V3M`L&xOR6%0^KVh0_Ue1L%Lc;Y}*JiixWg^L;xWj{H9q*o$lBj5R491^UL zwT{p`@A1I&s<{I)bofLhFrfYhChNGW)bG5Boc#JjM1|MN5zFfnjnqBokw^@FZMV+v zgQ7(sgu7`SaZmU0fNPx71{pforEv_9Q*i3I%BK;Kla6~LDmYM#SYF>4M2@6pNP6S* zMW|BB3_wD-ht`qsc@7V_&wD&U#*QHm7;8c`7Y6CLcB|ic6FGgNjA+Bwa>NRfenXTw zZU&MjJo*q-&OA5^3E^H^hjsEhJm8A=o<)WZp=%}sbmZI(9oP2X2*_D{cSIX2(h%G5 znhjC*xI848`o*BCdoP=j5YB5I3%b3;18#F(HZpWrUi^*$I&!Ozj%!O50Xg%+R7AxK za}g_=^(~_8OOKE=-2Ve)K7Q{9B!v5G9iaz#9&n%SDMf}3Cfs6xj(X40acxK=Ag4Mi z5f$A}L#*&bHB#?PWFYCSxBZd%=CCVB2oKUaV#)^afU7$*P0^)jH;sD_ah;^LhHy` zTFL`%NZBZ4=t%MSiUFz~&{fCvu{QxZ|M~}rHXVG3*v7hnh;qA5M*Y_&*Dxjk8)HR%n}sDC0M!sRrfef1uln{rq6Br`31A_^ z*CL9Va~erK);-o~_RSUv2;q;l4&j|39+=uDA3}x>dt@gD=+wqeI}9)a-?%IYVDWg3V3qn9Bdo1Fq!$Y-H$IUZcKm+JtHfi*;NxLJ7!e z|I9>`+h;Fgndf2=rTX&7{L_3NB(;8F9TIFFTF3GdPabgYv4@bMBY9Ub15`aON5?gH zf%=_4C+E-cL$u+Tgjk{PDnyw}JED=(+U`e|b8-(P*u1ok$X>ZT;NEWcB{Fmr)XEG{ zjqh|F*Wy3|vZK5OqMQ#uK`b?LGa|clI2t+jh*js6=95PP!NzMHVJAB9fLp)%FJ$Q0 zemt20svrEHjw^I50omHjf++UwT*MZhT7oF-UTb9D_VtHoMdf&MT%eeXsk^P-T$g(Tr zkWM@CiUkO^D6J#s{AeDSKAm<689Mm;eHfs6i+WBUxbiy?kgbyXeKeu?_Kk?G>*xdR&d0-MAH6laDfKMF^Q2pF1IblQ!^4c%l z5vAGGdB{yzs?CHbPQBX$q}d^}kXW7a2NG;$T8Fh&FCK7><9i@O$Nag;3{dS~2|BK? z?h=sK{S=HS-RmY|nWO(e6hFEMNqMiofW&S5CM4J@w2n0U03Mj=Wh*jtOyQFmpt{dX zbzBFo6Of}my^qLo(G4+2W;LS3*WW}^V$cC3nx1@x1e;UqNVXp4f$5i47G&t?_3RS{ zsNvpy9oOLt1ms04y%D9f*pFD!q2q|w1*9TrWWSG4RU4rW3ARS9Bk^K94@@cl+X@*v z`sO`kK%L2XPsdezLf!v(PPTQtg(%Ih1Tp(K8=|;FUPyW;W+|!~IsXGB*luYZ@dsw} zfV=NqiVPiozh7m5YAYY=xPGW1Ajf_vAa#b_4a744xQi&h^d=IkgD>gSTucywV0)}} z6#sXV2d0ikBaoqEyk`glR9~#_2JUt&O=!IH1z`mIbo2k@M{W=IL5b#)gJTi2-^ z(el6NAu;xqojTv2ohkw$!b|HAMPD9pH|+h8q2q&>oeYq3!vr1I!z~2lq;-La?B%Ty zv%fkRQS9(pNR*a(=^U)uEdn8e*E)7IWb(k|b$A;xbWF(}!vNJijMs5JD&X&v^S*Lh$fVHYxV2%c9M zp!)t7b(D7^2*|6%YDC%V)P4RYEGMu9qLkoONZhh-u1?8}K_U<$>{>_Gl#4vzZun&) zL&wzVuQEWjHR`!OpbS_+K#nUqizvspKVrEh{)p`Eo=BYVU7F6bhV~*5B8s$*4Xr(R zU~2xl4H-H@`j2LSYTsU{qxdXR@3A~5CkDA8${H{pvCIRxh?0eqNPQFe7Lt0jiAF+1 znbr|I{Rt1$H)TFUhK@-qcQQb==`D1WQS;P$chAZ3$3hWhcfNvHPV{v|Db0E!@#lkS zI`3bbECL~-LhFdxJB9~b<(JjS&@u0W!3?NpOEPqnakJEW!q3Te8iLe2bv$CZ%{L&j zzw#dvYnGnSN!dC~1VV&U>qx8=)%T;G;|^{~LWYj885ImrZL7C*l&RCzxdzY4NgkIF zITkNKEaQich!WBSB(*skh^n#tNW3=v5wg6qtQ8U>ZfPB}hVwk&MlbD*3>^V| z>63m&@m<8bq1)uS7#k%;u&?W!E^HJk&TG#r&=JEVqJkKcGe{%ejF2vDz{$mgoH>p zt>XjfLmrr3cry_hIwtP!!T{BW`Rgct=LyJ>4hN#F?adI&-BpSxd5sBGoxj)|iGxp< zBO%g5>zMI#6c0=tN0cE$NAzNm0Xlm+T}K&lnSlJ}uo9&1@vlN`PVFE>i=Eez6cCb+ z#0}4CkPzvmb@<~3?}EhU^By2e`ipiXLmCaEp%1rJh4>B7eNc9jPO2KNb<6wdxUTdeAV+Vwg(xfN5@K17Dn!Zi+9UDlCad00G2+uE zLZnmc=$iB?4@`qSN|2$Wi{m~6RJZZCj_ceI0`ltH?uatw^N3|mJ&7pk=LRI&cD{tF J_%7k-{{STjJhK1* literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/COARE/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/COARE/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..2d46a063e70091d100ee09b4288abdcb6195b9ba GIT binary patch literal 3280 zcmds&&utXXGbX?~!Y z*+LF*f;%UOI3UCg(L)ba4^23IN)))<#<_q7UjmHvpsNLhzkvC;M2{@Od2J?4-X?XHLkN#b^{` z-x`~SF^f3$Eqb0O6VbkF5=Rwf6_8hy-YZadR}z0vzvVaj+*v=F+pb@1>ia<$PlN3{ z^}mBbC@uY2Xt!dB+PFvbzXxd7&_w(qE#kh-w86o_JpP|Z)d94U=jUw-XH}Q1Xq>i{WoNjs7jc`CbH=^Q!CrdnJhG>) zbI=rbE^BPoo}%EpCah`b;I&((+v^7lHwJTW9mu_fx~VAwhdG~BbIpVwoLefHMKcdM zpyVb<1=C_Bdi@iOYEdJcqLBI#bva!B8CawJtULIb--MdA(l}=IN;EghnlbavvXI7& zFl&7CJ5XT|5WX;}P6v$NGV~4Y6|aHgvstedz&=ueQqEb-!I0M4Q%Fr+d;5 zdKS?RCvSy2qj`+tGoUWKrSJ;Zp#ut@^_FrNc-qm4^5_x^4WDpKiuU;Sc+PI`%n+K3 zHw^M9e*oJ;S9E{WzK(&5eNH2axzD2HxygQKPI14kEj4bBZ-@NteK-Q5BXdBrK6(Qh zP(HLCzF8ZV8F?s{d+#5!FssXuNB`cF(aB#wr!j&rPKIKt8Z;Oy8 ze{Po15B;L2VSJud=jv%wU4%ToTawX-?%zto_#&fD@sDv+g3Mq1TSni1YhxP5wv0OJ l^|~oRp6sZ~=({gpOT*ZnRVVkEabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BET{!oV7p~n$!bprlw-(}luxN8_~ Q_$OuBa4mRk!*_Wf0E*CNv;Y7A literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/ICs.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/ICs.nc new file mode 100644 index 0000000000000000000000000000000000000000..37f9a96e1c5ff8f4d8a39f248a90242ecbb6765a GIT binary patch literal 3532 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/forcing.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/forcing.nc new file mode 100644 index 0000000000000000000000000000000000000000..3ac59ecb589fdc52eddb075b6c4911aebd62a249 GIT binary patch literal 75468 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 HW~2WDl(5ie literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..d74cdf1ff99b51c25644150f5f881ee0c8a387aa GIT binary patch literal 3280 zcmds&&uEg@0@v{KcPHS0_)%?~s) zTgauoKo1oXh*L!+gw)>n7b<>SKuDb6hC%~ML{NI+fS^bS`krSuah7E|;fS@L*kk+o z>-YTZ41Y7)qG?(ekOx|k^5Jo)v<~C5xZGzRhc?ddoen}< z_>ScTemvvOe(KxMt7!!QZR%^IEf(1abeh1N59-(bMxUGOCvzM1yK4G=5XLiL z`&Rw$U=T`O|2JsYV~E`X(8fjg_B^K!~-^WU1D=T z=3#Qqjd9B*XA@bqM8&-j*vloT#sgA&Z!JNkjwq=A2U}NQ=tpRuT_f6LoKdH1_g|(0U7Ww8QtJKVej3KstU8yM%&t}F{GNR(rT$;er(t}UQKxYA ztf@ffUS3owZMi&`hOs@PPX6YXrUL!@!h}kx@cKX+#*VByJZI)tq4P&#mEw!rkJB)A qX4ENc|K3!f3++Ftlv?gxPs7-iQ73ozPg8*|Uj136`0&?DY5WJqAIZo7 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/itides.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Chagos/itides.nc new file mode 100644 index 0000000000000000000000000000000000000000..c7de20af1fd99b5faa54265f60d0fce1eff0091d GIT binary patch literal 600 zcmZ>EabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BGJN=Cr-4A&#Kpnut}r}%E$IIC9M QICJUP_$vw7c-E)`0B+!9MgRZ+ literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/ICs.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/ICs.nc new file mode 100644 index 0000000000000000000000000000000000000000..02297cd5eb4b68b5e6969edf1f532c279c2899d7 GIT binary patch literal 3532 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 F{{>JmU;qFB literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/forcing.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/forcing.nc new file mode 100644 index 0000000000000000000000000000000000000000..95af17cfcddf24dafbd83ffe548fce6fe7459eb8 GIT binary patch literal 75468 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..7aef662ec72e8ef264bf61b8967cd3cc418bb9d7 GIT binary patch literal 3280 zcmds&J!}+56vx-tc+Y?VA@h+B$RY#>5;nGIkR^8K*7zXkFd$plX;_W+#_JLLVRrYh z-MDgM>~J{0-wl zXmj7Oyugnq+?gKVhF(Qk4WLbJZM4NA`k?M`12C#C1mB5vvX7M&pT`l-PWo4unG-T* zF&f3#x7Ma%%py*Gi%#=oBHFi%;i#gl1agX^o`<@%l=y@CHNVm4=K9IpM*THaeLo1} z39$X3{x>iPrKW!o+O-&>HtrGqZwDGRG!ef@i@0wyt+%(guUq_}*)M)z(;0J*PBSYA zxx;DL2=jUt+XH}+Qbzb|>@zP-71ez)BUQn*MfoO}^X`-pLRU<0; zL?)#8TOCJ#Fy1e*c31#MYvDnOHIik8-}v1u?z_Oo3F+hnw>3-)9#_gt3&yp$+h(q- z+02hwn4EKC+&Yr8iL7d(;$Ae^%Vns=UTD0mz3i0tLgTcpymy9+dl9!OIcMC<9oUOn z=8-*NO+i!Kxva5SH%h^GO<2>=!E5)PuIdMiHwJTWJ;=R*x~eGxhdG~BbM3GnOf8kn zqM3snP}+tIB}|Lu=yeSoI>hH)a7vfXJC!Svu@&NZVPIT3?9R*UXJEwSuG25evtym3Zbht|ybUd{U(G#%@l{rlyY8vQLA0rj zHM=KWpl21dgUMUr&S)N^_zZL|zNPRAm!Sg+p7oc-Fz~d)!^MFm78*X`m=uliZTFmg z-s$~lF5WQ6quc>(3tiFuN&9*PTP{lKOWdBqhI)LHVv{f otIpqlm}(ue?#xLU{q3G04U*5Q^V7Vk)*&0GTV;&VYxmQ52SwMa=l}o! literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/itides.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Kerguelen/itides.nc new file mode 100644 index 0000000000000000000000000000000000000000..06b22eefbda99b445b52fe8ed9f9b4d19bdbf93f GIT binary patch literal 600 zcmZ>EabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BFO-##0Un7u;o7bK$HmvNuB-5+z- QHm&csZQ`;pn=k*{0igS7O#lD@ literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Kuroshio/ICs.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Kuroshio/ICs.nc new file mode 100644 index 0000000000000000000000000000000000000000..c386eed9c6025d7829c265cd6db2199bd797fc50 GIT binary patch literal 3532 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Kuroshio/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Kuroshio/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..72fcf46f6a7b2861a4e67f5f1f19dd3e9db987bc GIT binary patch literal 3280 zcmds&?`srC7{@pDyj=E-6$vULWo=RW!e~TLQSP#{X)adIL`ZB}1(#uOvNyOt;_jZB zmk|-HS`<_&7O^j+v`|X>u80`K7k$%$f`y8xh<|{-Q9(hUXZ9|coaegfONaYpW@qM^ z?>x^uGwJ)H)TSuP0zd`kA?2Y#sFaUHn~XHtnUODd_TvW>oR4<7G43#rx(wPlfAN?f zSlqKs*Y~2TGqKLIpjT1y0NOOxMq4bR59$ub2c!Bz@EvQ%`3w3pw>ndYH!((Z20#995M0Ku%HGPeVPg9Q%X%4ZqRn*81_>X8i?qea{b~ zD%ieL{~H*D($N1N+Km{ZHtrGq&jQUFnuuShh1|24*3;9opp_!6({YuU8MO(y96HO&kkErMq znULUbeH{J4ct63~W01iKIi7Rb;M^An)O7*y=btP%TSBG&}dG3StajkOy&B5qTB&bXH;*h_nb zhgQ`*1Wj@0(#GcFQ3}3m!kPv)Uc0w++dY5!#$fI(0=XAZ*EL1pFz3^1E*$p!L$f8* zXyzaXl*}+GV_M8buWOi5EvyA&6jDE=4u|VM0c$j$bqhap%TRNqe$dl{;hx_AzqE)U^8+vY*))Wpj1+tBv>+0h3uu9_w8IA2Wc#ys4Cgik$W)EUTs;Z2#sksBwH&{w9_xiV>}Gmv|GF3S`q&%I1S|17P}qsN9i1NrB#pJWOb vuU|_-UzJiP-?7<{AXEQlWC~BeyOe~!CZ&%0>lH(S{J!$IOmXerWl6jN^SQie literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Kuroshio/itides.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Kuroshio/itides.nc new file mode 100644 index 0000000000000000000000000000000000000000..fa34f4fd258c7788ac149e9563da9e0e8f1c84e5 GIT binary patch literal 600 zcmZ>EabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BEzrOe-r`!|={2E*NMZBvtM%sf(U QOzQ60n3<&580~xs0CQz#7ytkO literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/ICs.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/ICs.nc new file mode 100644 index 0000000000000000000000000000000000000000..f5f5dcb249adb0dff33c658cda0a98774786f0f5 GIT binary patch literal 3532 zcmeIzeM}o=90%}gOKD3h%*GMfnCl-(+!O@NGL($Fdw5(#FsTDIU0lkI9;I7pyW_^o zM8~7in9Y|=HpIpF5@lu^F_^h*8s-pavgpWs*&I_BSTN4F8MX`u4#ekadHFrWZ1R_h z@ku`S+&%Z)^L?J@u4y4&Z4lxmiB<`e&94P~!Enf{$J>oFZHf-t%q2>Ls>S9#p@HE#|D^cs3|>b~8l`ZZPcs!C04HD=mw6$I0-w2tS^u8HL_*Uy`MW^SHiDlZh) z^eQ^mblzol4)%-Xur;wPIv>IIH*3p`^>;v~Lp1@t!KJA|MGw@fEl%u$CTZF{?hm z3ifgCyR~X+r8lC*y0A4Gid$QnXq`OW?wx%RY+RFDp+|bZLeX@!CZL48Q>pP><8&_V z(?z?F)7tDVyYE3aJ)y-!#pV~gy7oI-=$_dzU9FC&nxb#k*rI8fyFZptcxIw>9V{lH zlO0Osk}_J)C)Zl41OxQ*Yxrk57M5dD_1MO+9EN=ttX%6GOquze(Jvwr`^>Jpt_6aS z)G5+|#V%^9#!vWe$4^#A@YdSHxJeRlQ|~*t>D*no>535(OBp6NAxxH*V6to_Cb^ZE z?4y0! z`!MOC{SVN*!?b^ApJcn*J|D6e$>Zead1dIf_Es5M>iI*47Jl0%Ln&1s%aGmblmThP zv!63q^|J)^^;sq8qrH*@HK+d|K@|&1B&hVm#S)Zps9plZ--k_{SI1U}Q26Y3B9wY> zstDca3W`9%7m+GX`j&$Q(9T^A1%PNzHgZ-M?Gd489gm1mbYHCqU8&nH0#e$Rw>Wor zMkPr4vQ>iCty&~O>bkQMRJ6w_LHW(&5_HR%4R)Rget!_ zi_or)Ga__!(>W13IrxAGolmP10c733YChzHlS?@RN1ZZs-gilcF1+uQp^L{XGBk3h zLxx6IE|;OP>R)8&YL+HL4651?Ck-11C3@*^r4AfAS$$uaMG6NMWJQohUmX(c-RmH{sOwFKdAr! literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/MOM_override b/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/MOM_override new file mode 100644 index 0000000000..422f9e1c4a --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/MOM_override @@ -0,0 +1,3 @@ +! Generated by create_data.m +F_0 = 0.000127208 +INPUTDIR = "INPUT/Labrador" diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/WOA_column.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/WOA_column.nc new file mode 100644 index 0000000000000000000000000000000000000000..0d23b5aad9ff10f698fc57392b1fcb8b13676f0d GIT binary patch literal 15052 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 F|NkUJ+`s?; literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/forcing.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/forcing.nc new file mode 100644 index 0000000000000000000000000000000000000000..810a6c078ef6e04032fa09c67c21058ec05436a7 GIT binary patch literal 75468 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/itides.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/itides.nc new file mode 100644 index 0000000000000000000000000000000000000000..bed988763c2af926c4fcbb23c078a24d4af5c2b0 GIT binary patch literal 600 zcmZ>EabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BFGQT;ww$+Ri17hVdx>UyNvnoTsb Qm1_~P_5M>}tM#`T0Eks)o&W#< literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/targetlayers_scalar.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Labrador/targetlayers_scalar.nc new file mode 100644 index 0000000000000000000000000000000000000000..7d13682beedbc7f3b19f2e525ff7ec7871c1cb39 GIT binary patch literal 8935 zcmeHLO=whC6uxiXI3329nCQfxH0EcFMw2)saVkPh=MHaP%+SfC%t$sah9UFPJQyc3 znTQI}wt}KA0;N!dE?l_jLeOBlY$KrvcGE?n=|WJjO>v zoICfPd%o{{cQN0*Q-jHYnowiN7Ys5r9@AKi$dw-2aArO}J3N@o`mD=7xn=rjOC5PW zhJ4Jxl)zg2H2nC9!#tAr?#d}^Xkxf-8tnPg>U&)srhY?UIXV~Eh!evv0ALpK%2l^A zRv2|B7ekcu0YwZ`_ka0W(62db7-3xT8HVu*PGG2LhLLf7Yn(|zIE$@hvBxH3D{67a z>|7RV>6m0TZOIy6%kZS5z)L%_5}0bTFtgxc`HWi~Esn+PiHS@Ye+(Lme1IqRVEI&m8u8QV22TSknuscGU-i}`}?}fLc{)8bXT;u zd%QUIQGai=w=de;e&|aMiR_D$^K%$+eE0kG;ga)PT*e#m+du98F*5!SeZLoc|6HUy9eqF!Nv9XS`?TLa;I8<1)|BNBlJ%Q~3awb%OjTRzDEp@|?xb-}!a4>#JHW z@#^^Bml_iDsd}ojnv3-88mbrOSgm!|*EF6fjt5Kbe%DhPZ?cujnt z0NzNr&0N5rXd(Po4&cyWEAeRKX9PeS@riILPlR}F;?1JqCgRu5$9H}I=>9@G@!ZU3 zv7PIiiSHH;o2Sp++(NuNIEayb_*Vz<-^zu2x3^Ls+xVZ5eg4ii>Zg-O1VAVC)x}ZG z?87eVubabV0fTPpb2}H8%Az8|J*zk;*Y$nB5BII^T1TybRzNH8v;xxioqlb;FSr`3 zo5mk#oM7A|C!@Tq|BX98@LcHpUfpw9Ez%N_hny;VRq3#>HFQ`-_jB7yqZu>VDsYxy z@s@36I+feYHb53S&UNshJARSHLxC2BYDgU1c=+0JGbPlCW@?BcB}J7}tdRzNGD70?R2 zBMR)XhtuLGTD(b;zd+cUdY7Z#MX7cdR;iheS^=$qRzNGD70?Q31+)TM0j+>mKr5gX K&o zbl*pr== zmE{S{QhJ_4|M?84DECxljOPhFClcnj^ZWR*m7N#}&ktF(vLI+}nbj8O<3GGO)j+ul z``G{4CTnV$KcdCDSZj>SZ>X=~bxLo$|JH-B#!VAycop>W?s`8uqa z#HjUCEEkmU`d)IAiBOv9#uTJY`8Glno`64KJYV@uw)u zE~D(3A(Z9u^ZbV?E1FN)jG2`Ak5i@|p{#;Z7RjYdk5abad&(BQL)ntElr6nX*>Zk; z#T?3Nf1_;m6w2POr)g!<2ngN7?3P${P9opNf=iEu?JQZpuF6 zeRdwDteN-!g6FmH{?ViIPb<^!$+ROUWpq5dRz}Abua{BBmN#Y88dxNw=G;GJ)buNr z(dG$hGFrDjRYt3PAsH=wIv}G+{A?M$`ar#mrtZ*Wlp80>C_VLzj2_9mDx=iSO)^T{ zKUxOTwa1>Y`DJE`gt}UGN$9XUMMC?6+aG7DB?onb`lp5_iZIM`D=&>gc~=BO=mq3(2heyK}iGVI1AOaBMM-rRCRYXK-twcm4a)^jBKPMuZvY3ddq>YGZ&L>1f zRnv%wmVZq|w5f}TsC5+)(Q%!K=vp=rfoo_svB~+FxX|FvN6Sb4_g(G8k`(i7e?P|oQY2J(8(8Yq9yMFaUN zq6VsHs5MYcW3_=+4>)0Zb^ZGu3TAb0MofH z%VtQ+ZWE2Te9=TXWrZf1{E*W`ukGDuB7NC(6TLgpXQDMLx0&eUmoJ%UuXvw{zB~Pf kiLPh_C53IG5A literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/MOM_override b/ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/MOM_override new file mode 100644 index 0000000000..77e2386481 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/MOM_override @@ -0,0 +1,3 @@ +! Generated by create_data.m +F_0 = 3.27178e-05 +INPUTDIR = "INPUT/Mariana" diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/WOA_column.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/WOA_column.nc new file mode 100644 index 0000000000000000000000000000000000000000..5f94caede80d38d6ac26404d36c14b988d02fbdb GIT binary patch literal 15052 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/forcing.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/forcing.nc new file mode 100644 index 0000000000000000000000000000000000000000..58e5b5fd401007323ef9a014914c076e18c8a3d5 GIT binary patch literal 75468 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..0fe6574dcb637a49522f221d7250eb048907a1ad GIT binary patch literal 3280 zcmds&-)j{|6vsCjlY7_1N(fqt$cU&#$PcNYq+RaLruoS=iV6OLb{Y3hHiP>^cK22T zeel6IUt0Up($Y#P<}KilKS2Bo1ZiKijYX-NCqb}2SoECPd#{u0b-VG=;eIl+GjrxU z=ggVO@aLm#nx=IDIV5DY}|;Qo)Zqiv=B+P!bvzwl0Juf9&vb( z@F+d!=C~Epvx)6mqT*f%?Bx>FaxW}d)n0a}dtph|R^B+n#$M!YO3xYhas&3#SrM@_ zXP<$lymNVD^TAODz7uK9A{VdS8@ioA*tjv6dmBOSIn*^x892=OyqX)PgYe8s$vm0` z$N{Z=nwBvwR-@ND%^8WS(JX`1kC`Xn`p?4}&1c=h&%%eOIWuwqvwAg}n^nz(`=@!t zl4_JUzJ-rbZ+N^6RZCqwhi+fQaGzcKE9O<@%IVwC_V2UvOE9k6qr&r!GzQV8KGy1< z^n#vEiIKh)-aPR+!)Kto@s`3XT!9WKc-C7+qtGW~)1$*HEC@c~m=w+N?eN_J|I1I% zT)ttDM}_^^mb$Y0z4mn+Tr9fPI1vGl)8{7tojEFk3R!8~9N!lC+j*}9qNN)^tseUs z8c^P~9=iR{c-bE-YtJ!WSn;v5JcmD)i2`T`I=D?KiV9 z+jEG(6iY8%QK5IP{H0=icK&7-CjO_+QLN&r%PMqfVXKO9c(0y?*^@&ArdaxTS%uzT zI-+7s^e<##Zpy3k>q|?24So3gvWhYG=@(g;ALZ03UL3O&=<@XkDh8cg%);E7Q%4`a z3vp{em!q#$jN!W*voN>i)G0o=Whv0dFD|MW13$q1c{}FzoH{xYmI8fjKUFdI{&X!1 qb4N~{;xE5h3iO}Ft18Bx|4wFM?#ij7Kbp4`=--!rR56AOEsIyITB-m5 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/itides.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Mariana/itides.nc new file mode 100644 index 0000000000000000000000000000000000000000..516da337f0b5caa66ec9d9b3b8a01b49a0566d8b GIT binary patch literal 600 zcmZ>EabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BGf_oQte|L=VASd=uw+>Y|a(u+MJfD007i_Y2p9? literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/ICs.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/ICs.nc new file mode 100644 index 0000000000000000000000000000000000000000..69e3c103a64067ccb16c2665899a46995b09772f GIT binary patch literal 3532 zcmeIyUrZcD90%~_&lSoZaAz?wYV~4F)7l~wW3|?DJHxLiEkp!NwI-emx12|hy>o9% zOQQBhXi~McF}Bz!(Hc;TA(aGd&>#Y}Hl}HeZPfUJ>6583YHAIs_QBuW9q`+WX~n4V zp__bec4uejJ2N|bRZyL!q>chCa?#?D6%IzCX24F>XV2B?Hm!5j>Yav_YEv%T)R?wm zwdyTKs%|wFZY2B9Zw*HbQ*W2IWPgils^YhsEqJCVs=P*-xwGSveI&<#V+sY*oy^u{ zjMcTx4BK(MnZB9d_~Fm0n1e0{G4Q-bmhGHXEO8L={z%P*-v0! zvw0WfIax26Bj+Tua6HQ5Kbc!;vb`@BwGGn_>k(hjFympn(`OkG-41scK0E5GC@(Mf z1)KHsd&nHmqOBocd+8mRfH|=!K90}fxy;TDMz@=?)OUpClF7QPE%<|n%Ls-HvW}VW zHs3N@12HSvM9wj5)4`qumPNDmf%z99`^~A>@fYv6=$387!@3zrr>1hVXLGU51UA2f zrK`SaLtQ@g5Kz69}97l@tTf_U~kh+TMpcN>W3&w1;`JdAhw%Bn0uXQ2gLvl%he$+TMtwBZ#;BuxzcFe^1Q|6jGs>vG z8jVrC>-!nC|FF)eJ#T)-sP0w2Gpb|h!;ETPax0_i23Im_olqEc+k;(hoV4HEOEs9*uf`^MFPjzV|tedaa^TqxPQhYgD4POrwm| zYc#4lcSNI>ez;5{{FlDSau{it^i!K>5`LnxrFwuGzt9k-KJHT=qVQ9ce|CQx_YA>8 zuu1p#6we-9;*h77a7vvz uRX-;|WzKJ`W-NikG*Hy_KHmu@aDlpEyRO=S*r5?D* zy;RA1?j<}QoZ}8vZ*UJ${Pr-Xil#l>p literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/MOM_override b/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/MOM_override new file mode 100644 index 0000000000..22a8aa6483 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/MOM_override @@ -0,0 +1,3 @@ +! Generated by create_data.m +F_0 = 4.97448e-05 +INPUTDIR = "INPUT/Nazca" diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/WOA_column.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/WOA_column.nc new file mode 100644 index 0000000000000000000000000000000000000000..6a76ef0a2daef7a698b76dc3d47736bdd94cabb4 GIT binary patch literal 15052 zcmeHO&yQ186n;(;5bh_ zbM%BCcww{c!5U*GUYaesD^bvIhkL^nFu-^W<|s_LQ*yy`(l9gq(C^_TFz}4=mbcpV zyx8@caSwR59ku#Fgl;DbGi3(rxW+NjiTtqV#+~MhAFh(k=IRZ+5NNvjx-a>sUM4@D zu>)Mc0*+LvcFYMU<}?B`nbU;i6h__NNeF=PpYA?Jd-(2*t$Rza@orl?AihuX{#2Xx zk9MNi@A(7ice)k5hIKwFmux@eP9%DOd z*e@AS-!|xN_Hi(XUa&T-7km4#+IF>?r{Y}fhbvyL0Ao*K3jSbu!2ZE5&`{5Bdv4VA zSA8tk-a83#M~byQxMyqhL-cb0r{^9#_!IX1Ll0K#{2_&3{{h4~B zJX41S46F$!_5f?dA^MqU`!Q6s>JFMgA0G<_)}H$Pw{t%Nj=2>-2##(#xB9jR5p3iS z6~yBCyBdefjiOtbeR957ZR9bDd=1_WYeg$nzqs(-?-x^Z&@PHeJch z7pA73F4m@wmk#dFA6htgXl}Z+V2bm##T-;n`!|2NI$s8Vfp+g(gv>W<+FgZp@?Eed ztS_NIXXrQw#)nUU2ZniJ-C~kkBl;z7KUvJPjMI#BL%T5i0XD87zRY&tQpZGW@3Q?A z+t0B5EZg7QunzN<1;<>>5r5ARUM>*6KP0?DYBN_ih=0@}{FJ`U%;$#qR~HDcv;P+R zzhVEkSIGZ8$K5$?`Eb&LW0JU+?SjuR7c4OsoHf>91Yg`BF8E50xL}j(6!bV=FyMH> zHI5hTbG+bbju(7`;|0&v9UMmRe22K;+n0z7zH^(n;3fLjH-eY{Aiv-T+*iS?JIOEj z;SJ(~AGe4Leuff<`~<(`_Y%BD?_~sU@_xaudB5Q8Pv|_s@7^UY_`_M^f_DeR<-IGG zI%aN(?ED{wS-MBO^#$Qc?qg6V-q}I8#{G$ZCf=ug`2D9-d!QOn4X6fG1F8YlfNDTB zpc+sOs0LI6ssYu2YCtuh8c+?W22=y80o8zNKsBHmPz|UCR0FC3)qrY1HJ}<$4X6fG z1F8YlfNDTBpc+sOs0LI6ssYu2YT(ftus_Cte>Q*TB)@l>A&(I}YOKKsE)IzcE;AQA hu}*%$SC@zjhK9J{nx&2r?EXT2!QKXO!NJh-zW~kfVI}|o literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/forcing.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/forcing.nc new file mode 100644 index 0000000000000000000000000000000000000000..0eb2570fce400f2dbf3d71811e172e0cbc2b6246 GIT binary patch literal 75468 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..961b8731995d0c119f44673950e72321e6124d75 GIT binary patch literal 3280 zcmds&OK22H7{@y%CX;BAi3AO+EG^;#F&YtkvOQfL6CaFGNbq&AEqf|G1^o!!J!)9? zCMXiby?NOsm%S_qE_)I@c+g!16$Bsn00V;fK=7gw^x*eZ&&0|&wjGZa^Gj7%)mQ)e zzWS=tyS2YgQIxqr3s8^bcMm|N%o1%fRB1O1?by|aA5d^U+GU2h!#wITXyg2O!+v0K z&o*7(i;B+ZYR`gRMVSMjO=WGg#UlEkZgzYyDlY`zv39(V*(HxhAfNReAArUj2m1*ZDLYSe8p$5Acj zMJ$NVxjJsm@!5oCIZ<&hD(qz(YOxm@&1f%6<-O1-X)9lx;nZHlZHmts_i`Eb(p2D~ zRWy%5Q{1_%VkUZ>gN&+SDHx`Z`XO~VT>nv6qx!6C_?hWK&7rh<_-0n1UhnoiR5f++99mr-!hN>Qqtq#hmE*UeZt~rUCotY(_H)PCJ2i+lm9bj) zq!aW^qW%)U70#&YGK$YY>(pBcuW$i6px{|A>JNNZ-8R_YJIzAHCmfTaI=+pry~aJX z4$Z|I26>d(h;5-Ox_@Y2w}Xq#b}5Xw$HMrzNq=Ydaj&3GH?EFvjr?tz$bo3?GElC! z{Rs^y-&=3G`A4TrZbB^g%|Ax=!d4mb|Cl4Aojdtg5;=TvQWT^8&Py3`CD$dR{eHD2 z3B4hO2uv}ue;O1hySY# zx#RsKqy78vUK0BJv^xJy8Xcb@4_+5#v`ZVilF)xjsgoUfXh@KW54U8r=kEL@^q*7e zw6*+ZNRX#DF3M<+_MS;XUz}1WdwPo@L7p8xFQZM?jVGZmNvo4TWn@1?9)DaYldJE3 tn}ohJrB3_(m4*blyLp35Zqed1N$AT{>a=}aWk`_QFV4zn*G8@<@d-vgzmxy~ literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/itides.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Nazca/itides.nc new file mode 100644 index 0000000000000000000000000000000000000000..8ba1e867d6705207a6f1324322cb18a9c05e0f4f GIT binary patch literal 600 zcmZ>EabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BGh_x}Sf7hh+&x~R@@W$iDqeLgM6 KM)KZQ7zO~yWNLx{ literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/ICs.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/ICs.nc new file mode 100644 index 0000000000000000000000000000000000000000..3da66235465709d3bfc145b28718a45ffe23f640 GIT binary patch literal 3532 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/forcing.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/forcing.nc new file mode 100644 index 0000000000000000000000000000000000000000..de2f8660d33341986412770836c938ac570c8bec GIT binary patch literal 75468 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..801d4dd5e0e8809f2e17249d5deb4ae9dcf4aa4b GIT binary patch literal 3280 zcmds&UuYCZ9LG2Hyj<=sRwVwxmaWo8n`{R6PuSfv z7wLo2KJ~>GO7TJbgCM>XOF=|Y5L5&ov@Lz|#o$XHiXc9yPtxCS_AXA&bKUspaG%WV z%>3p%zu)|3(*MO^o1!R1AP+1+%Dac4Qa%uEGSX;gMt1HRzz--mAMJAE++iMd8MJZ! zl5sz z0b?ekVT65)EE+^CX4k&om9}fn;t8O12?4M(y;uDTZ(H!5b zYk%$@*ofxh4TC(&ZN|3H72WT(uRFlS4!asg++$(<+@!xVW8AB#bB&wh+aiD4XG$Pi zx&hSd?WdptFw7pxeCsD!|Cq*#|EAGmWyT&>h zZS36sB=k%Q5tw2WR`zO_oZLIro68{6zGODNm literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/itides.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Nino/itides.nc new file mode 100644 index 0000000000000000000000000000000000000000..b470bef27d8254c28beb06f32219d403d7d87c76 GIT binary patch literal 600 zcmZ>EabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BFGlHgxg|0Yw{b-fo|W2;?kykt0R QLQR+3c>fQv2`}Xb0EDh((*OVf literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/ICs.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/ICs.nc new file mode 100644 index 0000000000000000000000000000000000000000..0cdb208abecbb5d0021217a9ec0534d134d6add6 GIT binary patch literal 3532 zcmeIzdrTZf90%~d_uU?XVr^my^r|-6C<1+8Y?a*|MlFKoLh(f-*M(c)?6G&rK1EqwP+PvrN!Bk+-lWmd9K@Z{eNPytHJV8q)N7I@Vm? zB)bOt#d6r1SQecR=lYkm<;MGa!XaHz^?)4o_!Tu0(4!tr3Cen4yW-J9p4IvJ`5u3@ zocs={^RaKO^EBkHp$Rl69HOt&_vkgtw)#U&Dy!w@0NXOwW~!t=wAd7XodWhT_1ii% zrPdeL;$7GpO{JY3EwoObYxgaD2sW<8E7M>4yhhe^B@&QTUoth3Yo5!ceU8)a)3mmE zD;{{nOD|}#Q1SW2@2>ofZt~9Wn65O06;0L~HMVG4QuoK9hUOb4#6TKgk=5H|Bxd)ToW0*YuD<*sC^Ov5%r1eKk_HV@G zl@3f^8^xrZ!=xh@lg@HXx@=Z!K9b=KT7lZ zX#f5*gBLEu7DHNkB**AdyR;O@bo(VJrD0DW}h3j);k zSDyeiI`0#p()KC=^5kq5fTH2N-wm=>RTTjPH-Fe;FmbVA02o{zTw!qA-{XV8z_Xp{ zP*L&i`ygTcvY!pQtNR52@t(&PL+Tx=H~8)ry9AAoo|T|W?`28QFHe{yXfo?737R_a zv1AaPkfwk?&P_|ubY4h;W_%Az(5!b%GI(oLnq7dnk)sBt1N8_pSO1A1OTh>-h^fc| zShsZ}gXvjh1#ElPBFJvCB7+y-Ms~nq`T-e`C~`nC2XX+;!gOS?GaEUfPiBx4x-26n z;97eM8Thl23+jp>7ZiIHxd1-%H)Mbj;-Tp4h=&e+j(F(XF2n=wl|#s2-&y1a(r`0^ zu3LE?LFt792+AnwLje6ZW++3>4ePGCwg>;)8CcgdI|PlTKQsiKX#MF{=;W^9C!yi0 NB?XId%62df`Ui=zZ3+MY literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/MOM_override b/ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/MOM_override new file mode 100644 index 0000000000..954d5ee852 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/MOM_override @@ -0,0 +1,3 @@ +! Generated by create_data.m +F_0 = 0.000140488 +INPUTDIR = "INPUT/Norwegian" diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/WOA_column.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/WOA_column.nc new file mode 100644 index 0000000000000000000000000000000000000000..a79b9d34912f84d9b90cfbe3edc956eb0f4b947a GIT binary patch literal 15052 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 V%=;=daqNmbR(2vmFqYjFv z+`KFcD|%2A1oz-w(8CCO+QXh@74ZcNf}n^*4}$)G^-NM3$4f|5cU2 zy~7=fqAUUA0E-Z%BO@>=KMA=w-jqAX4;&uC4;ZMAcIpIom`7a(GV1qD_<_Ye+jM;| zsyMaHo&~FlvKW9i&9l)KhggHT+wsAuaS(jR+_4{BRgXs@YRBt~%ghcKGZ_sdTw7|< zAYvh>o=MN~SP|_zPU5bjbOBUF$^H)WqEZ|W@;BqgnA`Kmx~=?68vLFgL=~|8CjTke zgwf=`0&+8l$c;W?{24$i2NC%TNyt5mk%57Mt^MK$;x6$6o1Tcf^c*w&fZN=I1sHf{ z9yAXYNBYr9)>kbGwJOt~p_dssQW`3bqM4F${c_dug)DMMgs5~jGAh0dUS@=Su1^KdG_Ju}Cu6$L)8DGS0itCKNJOE#^Wgc1;^DKzs&ZW)G z&nGCvPJ}fLY`k_~@n$`L=Eh*}^#a{Tm>ZlTaoF=|IhT%k{@J;dX*gBr0i|=SSi-hg z2w#4TQ4&^z2@0(rQisF!ufZ9uwQduqx&k@JhYn*`FNAZs%o#Cvk_9xX25IxFZbH7n z{Uw;%@?sr&Tpq%Gw#_rtsfv^1x1r<1^wd+>&zZyAagNVyqD^zJ-95tOB|%@7 zmgi8}$jzd#`s#KWdVb}nM6625lRfZEabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BE*HCx_QTJ)mpoL^0@)fr;eo72Br QFX!U3zWnaK^}#KM0D(kjzyJUM literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/targetlayers_scalar.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Norwegian/targetlayers_scalar.nc new file mode 100644 index 0000000000000000000000000000000000000000..3cd48c03554bc5c31dd633592768e9c719eaed6d GIT binary patch literal 8935 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/PAPA/forcing.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/PAPA/forcing.nc new file mode 100644 index 0000000000000000000000000000000000000000..14a16243e3593f2f9b57f0639277799faae1666a GIT binary patch literal 75468 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�&26ZbN!fOW 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 S{p` zVCh)yvz-Ur#&vg4sg6DIl^CGt`K~f~Glvi`?tb8g$oXjj6202C_VY6R?GW!cQ^%5Zz=^50SLj#}N&y{D5+stg=Q@e0eG&K4R^N z$2*i~AaTtmj+UI1G^nTL&SzKxl(BZ*{9sW=Tg^ zM0^I-jwm);5W~5h|Fa0{cF2b&PDkwE>w%mcV+#fpv(m+g84vD?WUG~p5Yr>?QLfdB zkx2V_{u@Mm+|`cp;wBLYS5KOu|8)HMhoKBuoIy4x`|1-0l+Bt$h+h2V6p{_bHb6A* zco(GIL7SlL)OQRKAFtXGg;TBEIEO}?2;e^*^-GFnz!E)*IN3XE{(kkH(z@kU#Poix zM6%V=#fVmvX^>Xu*cIh0v9vMhVse_)o`-L=;aX}8Qii*gT}q#)vxSUaNFbN?13WEfIGI&7&+mSxocL2ltYvdIBo8RqjF@ra zV5B+mAuv`WP(&K|iiOs@owyjCq1s)Rirq%##ZkP3h_8{_F1iZ8{k{Ov>f*ad>(bx`k{ZQ#M#R@r?P&4rHxUSbr(Z#JJLHW)C5Xk|$mL{CY|4NV zVK5poeT!-&+vsJ27&PiV@S zaP^A_1h;q%qJfWJBev1(7AGTT5(CQqWCO$u@*|Nf+JqqbesL3|xf6Dr({Dwv1`uC& zwPTg_2N8J&JBdJW=$VG-*ijjXZH#Ql$yjrr0VUz-EJQyyy^Z8<=d2NZ+$tSO-KO8? z)XS_V0pjbWc1&%OETYlN@2wNPEkFDI&g!YDZiHe-Q|IllF7^NBt%M zx;gbMVypUJH;Py(8U_)MVUFM10Sx z9X&ss5P^gBl8dPK-{(#sDkbJ1wxq*y&WTnv&y{_rJn8lTG2?<1Bo97ngXkC6PpI#k zny-_Av|-Z_M0{_k9Tu66A`tGrUW#f@f`fcw<1WM^9{j>de;mtzl4^1r(afP8kZk6Q-0#qdqQ=2!e##j|CGCyhSYKg(W9FEwtu+OaCf# zuP8@yAsK^+QFtDbQ+sNVHfCvSq=_nfiHL7i?Oex?n};K@myLkxb`-XZdxBU-%~MP$ zeQ5v#WYcRsBuC}sA(zW8zau#;{uI*w^VY(yvMQA7^7l_T1(#Z#m? zliUksJG2~uh~FUfx>`A{lYmMLdI_NJbw$41u|#ZNbAfYw*(?T>`lEsnHPIW0$W*%v zNdD(@0Mfc%&gOKQ{!R;spS#-8;7bz$B`8G#sM{fpalV9@F5QxId`KAsg?{N(h)!?W z2a%(CiHHt4(FIA)3)`Z+c8_8a@$*tUT6|qAppA_>3!rXCzM*SN#1ifVaE`a?&w$eC zNjRczDJ6*Pb)Af;WW54Oj`L5V+>fh51g#)^ia}yf__67Fk9p_uia=i1>xqc8DFz!;s_DLs=ZlcixUb z{RaNCuSiLvj(#T@a1r))9RXJ=D$>NoKLGD6d!Yd_?@>)%D2St`Sgd zy}t!e_qrmVydx0X({w23*l&**P@07(h=!K@g2?%fO%e5S+KQx*)*{N&=+#HWFH!Ay z+S^?~cBd-@P`5+29TSOI^ntIOVosH!P){^yTy zMEo+;jx>WE0uaro)O>I7UEL0%JR64CHtht?v35T*ph(sG5nUHF6_FQ*7@~{f79!28 z0+~~9&m|2YerIb(6z!^FIraQZMBsG&_qIr`SRabm+L#5Lqc0vZpd6fV714|;DTi~9cH6%iO6$Dg$SHHDnpQ*DK9|m_up(eM>F;?p!jB= zLez3v6(Y-;=OJnoszZ|1Ob5=7VGkuh{GO>D7KNH%!&7|}KMfk?Yg_Te=8bGsH0f1}zC;gpkr`WQZX zf_lHI%0Tkm>Me-HUw+3q+R2Im#ck1CB;PKKMWkoO6eOQ6jzF4=ubhzff5s+=_*<&$ zVO4*Nh{l_^h``bILo|}BX$fLm{-m5EuZYDvP{-xX)mVjtdpOZ-LkYkK! zJf$c%sCz8Z4lg!F#9vf95?YjrK$!F_onyLdn*iv|WvPfQS~ZGuWL?d^GT$kGc6CEE zqkJEde-h6in$TxG(q#3$%W)ZbT?2^!Ahn}mKz9)cRext92eS4CqU{_*;L_}4aR*FEd`K&?m<+(c% z+wsc~&Jmk73@Ggfgd#eH*&=e?@@GU@Xcr`1eyBsaOXI&H;_sz)2)4aMG{|$m2n6zG z6{4LSMj{qx=fX*=bY?&q*Yh%>LS}D7lDhe#nxEYtNh=~VQEuMqJBauPs~zT60U{8> zF3m$uD?jf-@`te2h(&n($Vodjg8^mxu6u~Op724Wq~bcFcAu^xsnIM$q+zpXBjO)k z+aX*DF5>KJS}dR@??(whKD?|kVrv^@a?+yX7*O^I3lWVJ@_ljurZGREaaKRd}r8WD1ptPyiYTg(3FXi0*IfzDkhalOk zDh$!kVcsbB#bS4q=Q*W6BL0bL$EBA0L=+l5M?_0@@1`w#w0 z`SYbOqMHW1L9)5wLqtP{JV$vJHf=avZ$8Ka#6LsrNDRmqQOi#oLf=+I*&D8lK)5%~ z60wF3Z8@ReoEb_zU&?@z-)kh2OT9NCGIK^YlGDm9kY|=91;I# z>Us>!doCi=HgiQF{R5M#d?tRNdWKd`!0-7H9D`HD#H{hh&G-5zGceyR1_7Ck4 zDe7v9Xsh-ck@kR+h59-atw1EeQtg`sb6C@P(c==qA_h%LLA#7S-1gaJiK zyo=}(r$tCMqE8W>&@~@PT|eDIx&JHmK_tLN?TBdZCj#OA+%CKhmxcS^(TevM5c6yi z%t`sui~;4t=_!bY>kmP4Gw*qb&g;GeNs-g4QC`o(`wlH|RBImPrLeDOtT4P~MilL)7bSHze1)>x1Z^#ph98k=YF- z?Oj=gNPw5x;rpto2!wCF$8f5ws{}xA4VsSFf)7_XDSIgcO8LI2h%T}&L9)qI9irn* zcOy-YA0Hvf&(so;fMB)5esaEuCK?_Rfv{#>0;2Mn9K<#)sM%KB1jMTyrrFy>AlR&r<+MmE6M+26+Z3_I zex;n0>5Caq&h8zC=)8H8kZd?A0nx#+Z;?xzJ36F^7#@X4Kw@o&Fr|75a!lT7hI+rb zl8EH-JH{fm^7Ld*%FrkVl;pN$h>p547m>Hke?qkPrpHK1G(5&>ufJRZBp^fWxLnaj z0FLX@I-uH<;2_858X&gjY9c4a=@0|T_V7lCS{>+tNUrWYqDF80k@j8p`kXEy#aciD z&el#Rw(;1HgtOD$B1owHSm-i!17h3qws2CcPBWl1GarZK`EN@QY3ec)$%CiAN7{nP z&p2ko_hJlVflpV2Oiva#D;RFi_||$Q{Yo>i0v$ccM3v z)BpU4q`8w`Ax-7HkB9_3Q#+!hasfE~9W(>g?I`$W(H60|-HkcPAL=onIPXkFvXbG3 zh-a5KNZ#MPg*W@su%-ddx)Boj{e zx!w{WfrHcz%|kZ! zi?A*zH}$g~lC~ulAQI?a+u`)n%LpXIMmBgyVl zSB|6k1qqPAMD@Cwm3&b^w-$#Bz{%#2Gm=A34@PVYi{R*9)jW6kozl)D0Lh1z#33@a zFbK&TPtHM7guzvg?NVzAkiZPJwtn&9@P?nc5w(6*KE`bT{1?P;}S& zA!;)u4UtP$F^HOW+lg|GjogvczeGVK@N8{|SpRqe5{Tz&jzA^}fOfq(53%_tuXA)K zBNnJ36^zcTqb>sbr?Rp)|(QR;LpzvIY8IsFQlMz|{>lGyD`DGz(#L9t4)3fJ5 zM1qXe`(sq)co8jKAc<(YQ-}!YwiSMeg{3^;=$2k#KuHizBig#HF(R22?Ge?#w;JW_ zlRk3JA92nBB*;?jXm08tqLa>xMIht`&P8-Z*geG7ZAswh7I-kAtQr0U$y+_s5s}VR zA$jHc6R7X0-B*z`!y^fiARD#grvn2-AY5N<#)<2GK>#%IQ#E1>LkUMWiAnhxw`l#=<05?Q}M71Mk&s!0Vn7mU&uGPmxK&$6hAvSN|RE};$ z00YXs6jMYy4IYNb*$*2LZDhL@N%E~|lxtM_5RsrkY6rF7Afk51MucP<6Fd%YWCYkx{mD`$R~^Ski5FXX++wueu3nf+b<%mdEi}? zW2l#aNKkNXhft!k;}qSRB><-}r2|mmdYuJg>yqL*I`d=(lvOd~5pDY|1Chd;UWhh0 zwI1dCePSDulJ|^7Bq&_HKe~UNDgt56HIXBY{3-zX$i2&m1>H91==5C}P>S4cAWA%9 z5qWu{4AD-jwjs@d@YzUO64V@#pm=pX(pyg#fcU7>8RRg0+zaI5y(=8CjhB{klHOis zK$&B_AITk@9gs_w?T<({eE$;Ve%tv8Nr_LtAQF^V+u@Y9*d2-W9<@dG5z0qY_*2Pg z#14N=;UqouWFY_X@lYf?b`X%uy=+e;w;EWC@@CEJf}~SF1R@fYp{|F0<|zS)uX-Ov zj(TxzkZgD~01!ZgEvh`c-19kIlIdYq(Fkqi`?nU^6FxAX#X=^Jnnk5l#n?G#(u literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/PAPA/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/PAPA/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..2c9e3e697121318c8bb59be0464eaeadaf863c95 GIT binary patch literal 3280 zcmds&-)j{|6vy}e@ZK9W8bbU*DZ0f*10kBwBL2X=vm2Axa*e_biA8W7_D(hf`$Km3 zn&jC+pQ`CYjYSbD^sRl!AJCG#_QgM;5d@z~#a5$&*mGv@O(xgtcGE|P`^n7C%$e_; zGiN5lXGb%NqU;2=139E}VH_$YE86-*vz?##;`|7HK*9NFSDNMy^Qg<9jq|&w{lMa$ zZMwb}%{cQ%JqvmjWe0#Z&9%`Mi|B*8!|}nWu@HR6+VMWN)jb}CI6Lm&QDb(%n8|1u zVc#x`1`!K6^-Ma)f-}wCC@Ke6wazfgT}nV_=U=dei6--g6r4njxX9GcB*J9`9?%VpU8v+ ze;ecI561f`);9CuXiYpQu|~YC@EgC|#r-hY*a5vZ!z~rlf=BflQ~hZ*8nBq-s21}g z7R2Y=8n=%4Y(lejJr#P&YJ1;4tUYYVN9f{_JMSG@2#I z0VQA6E0`8r(d(%)s)qGonnLP_)ZuXb=V6W3vu@*OX+LUCjGV`;-iqcvSuGBZnvu$3dPF<`VzYUqS7hnGY<^J=Jk;}Z2AwN!hFQa{PwU|U1Uz`-h$bJ4;hJ5#DpNzKn?e!!` zK7|NOF>?F%%aB{oZ^~$QhSriG_@6pOF>;lX47q#oHyQ2z-+PiE-6=$1ijn>O7a8*F z?E^B}(v7=Gki98&a=mMY1o`XcKQh|GH;%V;Yne@=oNNUO87 zU}QJY^`TA~?OAm;3Gzu=oyj#LyMbEabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BGJURT=9arIkw-)(Q*gDxJj=?Q#d R(=EQmX7a?lHj^d?0sxx|Xtn?V literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/ICs.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/ICs.nc new file mode 100644 index 0000000000000000000000000000000000000000..96c3b32df82b84579e47afeb7ce1c2f5e5be2e67 GIT binary patch literal 3532 zcmc)KYitxn00;1+?X~6h=v5vH;dMbHB?KtQ8})XF0V!0dr4qo%v2c6k;Cgr5EtG;n z2L&t7@M^Fzcz^`cC{*}h12u)aMIx_AkQ5>!l!%28A_g&#`k1*s_-~^iAB>ayZgyv9 z=RY&Mdt>SNc9y1M<5ddRzA)_b_=5qr-qfDd+NSE*X3bSgv~W|OY|$qtple~TI#+9I z8_X*^C&o|r`utizEfSZ+c&RyKBLf3-`H{sUiF2-PZp*yH7>POXITgB_2We?*Ggs@P zfKQL`i_O<1k5(AgG`FTk605QD_H>IS`4+F6@*b{9%W09TW2^I%LtuFD2Efa0+X7V3iteU4#gMDoK zY}3P<*BuHcx`;Klo3y>Wl-C(8?e2#ULX4Z7r}AHZeXbhTwTMp*xSLa(a+6wed7mS^ zdn2!{c?IKM&Ep5WBy)-RCC(oGjJo8t?wGC>g|x7$FA9rA^U`*I(gMNOiSl)bn3Njv zGgZkg;PsQ_rcYJoRoTu!qcPLx&17$0Jp==euUN)by zH8&_*KY_B1<&5zgh{5(WKXRL!1WW2IUL5KG?DCj^# zR|QoD`zvVI@CpT03`>W@1B~P7)h(#EA{{nNMtJ>MdeJJF|!l-LD}wAmwc! zCfmbALSHLHLYJQ-5~}-*Na%~vL_%dwA|X#_zCU2zL?R)74Uy2oLL#AM#Y936CKCzR z_c;jaFlP_}{L?U%qfv|HzZA=Vsh7#JQ?p}e!>qCxs%YF3Lwgo}8$QyTjMBJcR7x}|8;yE z-M?@s4vY@3s||1KGtEH9 iuN*Q^L-k|>9D8bYcaxmdtYfI8Tc>0Hqp$4Vap*74rPm4o literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/MOM_override b/ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/MOM_override new file mode 100644 index 0000000000..a4ddec9a5b --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/MOM_override @@ -0,0 +1,3 @@ +! Generated by create_data.m +F_0 = 0 +INPUTDIR = "INPUT/St_Peter_Rock" diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/WOA_column.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/WOA_column.nc new file mode 100644 index 0000000000000000000000000000000000000000..430c3c828c86216d26ae35ed84ba9332954142f8 GIT binary patch literal 15052 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/forcing.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/forcing.nc new file mode 100644 index 0000000000000000000000000000000000000000..9bef3444088452bc600ec51d8fcb6defb2bcba1d GIT binary patch literal 75468 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

    Es}hCK1QbIBlD1G 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 eZivGs`3*im` literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/St_Peter_Rock/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..2d7f6f75b4b04fecb60f3d73e50ba9133ebb5099 GIT binary patch literal 3280 zcmds&O>7i56vro!Y&L;pqG(%CLC6TvBB8WFtyD_Y+3|!d6m0@xqXIoJvSz)rmgWP^ z%$B55FICk;#erj0iH}1M4Rcz(%BcbQUUYgKX2ePP>2ZUaD`pL^@4bG!97xAlWC zN}6E%ullE85K2e?TWEJ;h}yVE^uGXfYY-W~n8YG*IGLQB+&3YA&^#c2U^9{kpUrbS zjD#x!=zxN2mSE-)Iy-?@>inX^;H>H_YR@ao9<5H(V`!!o{IK5gLfMwFBeJRWw<9Y1 zWF}(_%e(r5a}>Zbc0SsUI^>!1Z5%HM-Bbho8l*s5v)1gIT>E%`K{C!u>Nm zVo58?8{gs{)SEh7g{r46p2LVQVz|$){TcIGa^>`G===NWSC3(Q*sciA`($MhZ8~GU z?nw#sY)U>#-wJPm_?+Q0FtYNN!Yf>d4k&om+bdD%lS8%2)EWzdPdFw;cYF)J`;LG5 zT{M?(801lLKenZ=?EYW-dKg?Ba$9jC0v@N&P5wJ`LIicP*0?*qJ@R*OxeTJ^MW9_D zx(E#@uUa4Y>6<@P%FA-O|NLX=H;${&N4w@!j1PXinME02oE*i{w|=TZAI+CkjGgaq z$inQ;Ap%pZ(b**x`gq&0im~NhEejL>Q|Bm_{_|B8`sX=c#Tc;nWnqrz5P>O{zUPSw zU0z&NFT4^@my*GLxT&b&HT#w~pndS~eu6=UJqEabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BG3-R`)1`!+83DN|hCd!D7(IGHNh QIDh+W)yP+{t6|ctK|Vj^Y*3o<__!6<$csE z)x!t&v~hhk-RK)fHegdufZ5U_INI3Ii-|M ze~_{~emysXvZA$=y|kP%?|I79PRdqO%EHqq(_1N9*F)KcEtGBkma^)fDcj2LZ(BuK z&2`G&m_^x}4U}!~rfi3WvW85`b{0|gUWl??Z&B8Gl(Iei`F%FZ4ir+>)J)kS-sf-^ zWk-4c<2`SIcO0O+ZG@ z7i(o8-G1tn$>pV|B-Ay$pghnz=0-hf_E}L8&z1M@zWPR;HpUCSxsA>L9586KI z3l9n&De$07Tg(HVxlsQoBCgYy?uXpd*@;N9nr&iVGMOOft2G3<&OAm?s`4x`nUP0Q zf$N(dViGMUF0`+mxX{+$i3_c)BQ7-aEO7zn^($lY-PmF;ty@D~9&8T#TWXjMXvpWp{cET?=Q%&>g2c1`O+8IVS0AelgJ4 zagP{i%8xk)n$tSVK#SU|4YX?6R0FZ`ZUfa#%rQ`7?oHvQOv?s_? literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/MOM_override b/ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/MOM_override new file mode 100644 index 0000000000..4e87057512 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/MOM_override @@ -0,0 +1,3 @@ +! Generated by create_data.m +F_0 = -6.14673e-05 +INPUTDIR = "INPUT/Walvis" diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/WOA_column.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/WOA_column.nc new file mode 100644 index 0000000000000000000000000000000000000000..1adbe6f0782a879e394476f536e91801c1e37406 GIT binary patch literal 15052 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 L3<+L_XXyU`lc;Wy literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Walvis/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..f518c6037007dddc45ba91af0cd783c3388ec4f7 GIT binary patch literal 3280 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 AasU7T literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Weddell/forcing.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Weddell/forcing.nc new file mode 100644 index 0000000000000000000000000000000000000000..79bdc27f17a2789d8bb7c0d5cf80b11a94369852 GIT binary patch literal 75468 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 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/Weddell/forcing_monthly.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/Weddell/forcing_monthly.nc new file mode 100644 index 0000000000000000000000000000000000000000..891abc615f59df0c0fd70b64d7f28ff6aca1d04b GIT binary patch literal 3280 zcmds&NoW*76oxyRWqM*%LQpX(Ey1X0G%g2;gmF41E{usVal6d*!)mQJ;t4h!A zz8XoA7J!nV`KZi5KUC5@-cAn|+qHxH4)o#&6r7KCi6LfEn^+XuIKO$wadl=Jn&sI3 zusN~G)}dFD8bN4NTpMk%@II(z(*dKxLhv23!+q4{ZRUG8JM3@FQNyKFqr~&EZ=p_H zpL&eg8X0HdM6|CtildTL2TDj%!$qj)XF`9FU-TP&uFMbTmh%@B__pKv!(jVY{xKMY zQsiHOb}@#?#yz6{^`LTw!sF*D9EJ(TcJUwBH2KUT<5Y88W-uE%px~M< zFmr#pzXPqr`3arCS>=dZm{;FFkm*eyL^G-0a&mdo;cXr}g*T$Kvj{8=g?#^5AL&}jS@4@R}SBXnr~lEy@m0l*2hfqaA^>2ier`TNel3_w9*~E z73PFuQG(AvQ|T>*S2zb9Q1Gl*^tq0u?8)}^%(77M3CE-;k8izYY_^VXLv#LyK^`S` zV4HJ!_kZo{UT{%1@}AFZ>V?lu{5x}m**Rslad~_zYu$DA z^e<7VcYL|XKdOB1nW$jn&%2^h`tt`>g)dHwq9#VSiV9wxoD!9~z57iy?W&Cdfhnqd z?TM)1@%ERZsxfeE7yhS?QPjrkt)hZkXEun6*>+KpoaHe&@`d}VpkVsrgs4c)s<@nUFI0I(!J{u{MMZK}$K{;wR^=H5(>tGv zisZD#EabskF04^ZK1jL-_MVTo%`FZgr5OIW9VhOSs4^SGUmm@7RCp9lIHxwFi#%Ta)h= z#MsLpl9`g2qX5*ElUY)l0*W%C?DMb(DzrZU#8BGt*O6k!>xZv8K1)t;V!5PmyKB!T R+bwY*ZzDfJQrQG|p9MQT!*Nu-fvzu!6cDv8lU^-!K4-19s4oZmUW-|yqY z{kjW5f1too=CIlA#Igm`Cd&CrrMaP9+SeNi`WtM@O&i~mZRVDBWVv_Ph=d_|8*r3z za72?&$BYkrO4e^CxGqa%`DyFDs0c%^n8~8%xx6hnk#bl9m^qAOMo%}z8}-%+hZ(cR z^yu1V9#B?(L9Zm0;)+d@BqvV5oNR+Bz*9t&N0ZQD03+Bg$4>mq{)^5U#1ySUe`ec=)rh zOJ#^DgxX-;s?Be-7>OUNf&*xZA1jqfKD2_(1dQh9!|~=eeMO82-Ri;e{GPdXLgt6= z4o7^!gNlZ0SOn`V7WUPrQz!Iv#sD30k zZkM~t<=%0svl;?P$NAww^k9R>yTy|iypGo@uWwxCbx*3i zpZ6+nbDDYRyBgnDd;gq?7zF`AKoAfFRuciP`!4=5-DfXBda^VDx{#TvWGv;E^VgLh zXf9NKzpuHJZCnzX8nP{EWVphzG+{zN>Qh1}#$>VKC0QA&jUFPK00An_jqsp4 zUPmax(X) + xx=xx-360; +end +i=round( interp1(X,0.5:length(X),xx) ); diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/grid_spec.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/grid_spec.nc new file mode 100644 index 0000000000000000000000000000000000000000..8683c3cead96a5bc9e3a8d050d97e0dc5181cb55 GIT binary patch literal 37348 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 EKl6RaPXGV_ literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/isopyc_coords.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/isopyc_coords.nc new file mode 100644 index 0000000000000000000000000000000000000000..04159188f178c2a375cd76f9e35947969c45d382 GIT binary patch literal 640 zcmYjLJ7^S96y4oqb)!Kfq>&Vv#v;Y)k`y8-BFP~rNg=_;G~;vT?J{O}W}F$5EF@-* zA5cL=kR_$SZlSN^?f*-0qLes*3SiM+NedY4Y$DL2wVSy>5Lq7dk^=?CqVywus5 z^+qiDK(}xHKP1uZIj!WCxut?ghmLa1)V1TA>-x&hUy-|pmH8G{?GaqAUBuerHsTW* z#2=c7TSpQ9$$@*%fP<6Z@GLlT3>+99B6(8^+#|4pnn{UcEIH? z;L25S?FV?}7kFLfH!gs;euB48f_EC=-Ou2?4A>}w>%zO=4?frcAN~e6r1xkHe0)go z9ei>Ve0o^01#U`z^Bvd}PE)*|O$gqD&!+|7z!$6FOS$`%_`Gg`Z-&7w@p&tEZqI=` GpZ)Irn_$ zJKs6?+=aDe`(#-vhCW5XZI>Vz56!){y;{UeglUB})n>HpQM?}(;l9u%~U6z0l(${7m#qF$H0 zs8`GJ%y>9xnEL!(%f@9i+ubo`Ivl+Rz9K(#h+Fv7iFR_WwLC+Q}WBS5}JOJS0~MsvUQZL z?5siA2+a{qrN-COD@ylO?lLt_^OSC`!sn|#7byKViqT*Gm<-S&g}<%py`yxNN73&J zNw1>fJ|-@v_xABce;VAA`TLax~ zk9lwlsQwuA8@e!$;Dj6`8O7j*l9;!74tn8X;1M4Wy%JqX)g4ddVxn@6VK7y zOVJi(f5SYZf5F;sp{`wudD>MxkQTD*Zi+QRb|dQAA?Vqrc-Dt)^shzT9Q6)M1IT+9 zzc4CIV;yIP9;U4lDd*FwTf*-yLzEy^} zy&8J%E%4&Gz`bkWeL4^E&+_57egWS8BzOnz!ydW~ynPLL$7Z44SN-t6b`bBZf?n4q z_ndk1*i zZ1@L%hJSbh_Q-YM$19+70{>vBV-)dIYEEbVK>hBg==0o{$m`XS_svhhzpDkW?-}y@ xI}ks=3jV+t@-FNFZ|ErO#l|!f=u%ND1C;g$MB)gg|3u#9{yb5jldiN#`!{ZJnPvb0 literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/vgrid_cm4_10.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/vgrid_cm4_10.nc new file mode 100644 index 0000000000000000000000000000000000000000..37248231d8094e21a2754a32e9ecd31db89ae0d7 GIT binary patch literal 1972 zcmcIjU2IKR6h19#lo=E0h?|HU$!V2|rqydO(q?I^h#RWaD5~x4`J2PN=hVGdammaT zDMp%+no1><%CQ(7&h5Co$ayBcEmC2 z^{~IbAV1I5Sx6bpw$L@8`?em};G9t*&$a8Nh>T5)tGee!495+|Of_USn;|v!gQKr= z&1jTiMr?4M7(cMZHPXW3sAMp=hHXEO%ieiCzIi>~$A{|WlsQ4$^`bFHS3gj?$%{HM z$8#B5QAX-sIBdFNFub;}I%*oK~U#aw;!^PgWBPN|+_PB+#%%Y~Q8=0hyt<8OYv5hp}A+|b5 z%gc%nE$Abyq>Uvmk!FcS+I}9+BJFY?11zL$$;)2X!UUgC_SMJiP)Rv~|JWL&9PYCC z6fVnjb9uF*^)xleRN_N4O~`GbZ!e%7xAbrD=O2SzkVIdLp5opCF^*bV@)~_t4B=jtb;wsq zTs8YF*rF8#Tk}8ey=nmStZhLbbqmo)Lptu+a2qz*gZVdlqA}8^fTv$YT_XfN<0ax| z1bFif8)H*9S>It!);9EK4M4|whWD|*!8_Xp(6i@@2Ozr&bF)`N$CmG5>v%8QKwaCE z{C5`oEI}`%yZ~@>Nz84v%-8J$zu^IRja~4K zy}(-+fOpD}4;AD7-ZkJN6A+JG0dCWHVDQEz__ z{DUs?9hJ~KvJ|||`~W))(yyV6@Xj7V-IRy?xp_G}K>g!Ho^$vjO_VJpzqG|%p7mEo$S+z6y(J0w z%kIN2Zv}2eIhVC)l@GWz8Sopv1}^v~;=06}2avbrd#>#SE_@eyP4XS10r<_OqA}Vm z@jupqzwI94EnmUkH2}Z$8SI{a5Z_k;odd%VZ@&e5SkCF_b=2>Cfj*D_3|_Yi-if~u z|7|63Ctrcz(~kV_-^1^{3*H|;0hinhd!{kP0d&@%-~mcy1Q>CUQa8an*W+UaI;ek( Gux|kC8l5r# literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/vgrid_cm4_4.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/vgrid_cm4_4.nc new file mode 100644 index 0000000000000000000000000000000000000000..df591ead1f57d7c054d15716504358411df3bd6d GIT binary patch literal 1972 zcmcIkT})J05Wb+&iqtF?f7TGaRzjdPsAXenBW6^Je`pbf7lRTXG@&*omBg4BjcsCT^sQ&kcl1ep^CV~I%s1bB zGjq=FE+{TZ(Xi5m876kB9hbmTKF4G7{JA`Dmghq8nISgkedxDBrtJ-z;+!h>=!QVV z@>LsQPqnAOHUy$+qr{fFKIp!x#~Pe7GUV8SY9*qu?6__?PQ+)~-k7O}%my>0$LcI& zgKb8mf-_>1ZN>N?7Hg!0x7hLqY$qDC4E+tI>z$|- zvm9GwYuX2f6AqiUycn+Su85jG-S0$n-)oVm?%1J5Nq<+bDeamzyj9Rr!)w))v{w|#P2ms{k`?up=oK^sQg zfbpS4db8qx8lc;gz6|rF;=(DgCi3K2GJ0 zmt~vCt?-E~-!(|tESvY7Ci~^0DN|ARlbgH-D2LmebdhrZMPK>C5eQ9FcDll6KEoWI zFTkI53w_S+$J|A^(5FW9JO3Ew|0an!4MfqrVoV_xGk%;%GGg=FTVo<9Tg`u{>7f&IYiW};r* zW%Owk$O|Uxd+1nf#61Qx@lL@x&1K!RC@OD3hZ5agKHXpnnK0<#7d*C0o z5l@su@95Xa>zq+44g>VlHSoGB+#)eS-A}Yk3>LH*9>==10Akk_pv@0TmU zPpkp&EA literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/zgrid.cdl b/ocean_only/single_column/EPBL_diagscalar/INPUT/zgrid.cdl new file mode 100644 index 0000000000..3fba71bcd7 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/INPUT/zgrid.cdl @@ -0,0 +1,30 @@ +netcdf zgrid { +dimensions: + zt = 60 ; + zw = 61 ; +variables: + double zt(zt) ; + zt:long_name = "Depth of Level Center" ; + zt:units = "m" ; + zt:positive = "down" ; + double zw(zw) ; + zw:long_name = "Depth of edges" ; + zw:units = "m" ; + zw:positive = "down" ; + +// global attributes: + :filename = "zgrid.nc" ; +data: + + zt = 5, 15, 25, 35, 45, 55, 65, 75, 85, 95, 105, 115, 125, 135, 145, 155, + 165, 175, 185, 195, 205, 215, 225, 235, 245, 255, 265, 275, 285, 295, + 305, 315, 325, 335, 345, 355, 365, 375, 385, 395, 405, 415, 425, 435, + 445, 455, 465, 475, 485, 495, 510, 530, 550, 570, 590, 625, 675, 725, + 775, 850 ; + + zw = 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, + 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, + 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 410, 420, 430, + 440, 450, 460, 470, 480, 490, 500, 520, 540, 560, 580, 600, 650, 700, + 750, 800, 900 ; +} diff --git a/ocean_only/single_column/EPBL_diagscalar/INPUT/zgrid.nc b/ocean_only/single_column/EPBL_diagscalar/INPUT/zgrid.nc new file mode 100644 index 0000000000000000000000000000000000000000..19a58dbce18a69ea4ad43f6635a025e5dd08f2ed GIT binary patch literal 1308 zcmbW$%Wl&^6b4|oTof)sS%AcH7Obl*x&R5#L5(UQ5Hg61xQM!~C$5WQyNQ!DZktXE zg@Rb*5xiuXNAM%$5oXCUkHC2TW0ov9()c_7cK+pyusPi zPF1ue;I;?-0!j@70e3tY7I0U?NWiWK;{qlcrc=1rV&|}z!hVyT!OUeBa4?0#7CVQd z6z(_K863Op0_IbA&|>HCFoj1=b_ORdyMV_Uswq5av2%Eu!q4aM>^A)R3!dMFKk&Q_ z=0bPS(JK3pZL^QrXY6xj8>)Vtrs%bTZ!HeJ=lqegN4B9&p5H2weTzeqkUI(nB@8VN z?Go}Q1)~yH{}fY{5KL<|@}7b{!IrS^!OY@NRv-_E)o`fbNU$Z`_u$y#(6~U(iPi8x r!9&58@W_J`i$jwF`Iw-p)yO9bo(i^vUtD;m;Wz&NzuV~0Php!sLPoT| literal 0 HcmV?d00001 diff --git a/ocean_only/single_column/EPBL_diagscalar/MOM_input b/ocean_only/single_column/EPBL_diagscalar/MOM_input new file mode 100644 index 0000000000..06bab66748 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/MOM_input @@ -0,0 +1,418 @@ +! This input file provides the adjustable run-time parameters for version 6 of the Modular Ocean Model (MOM6). +! Where appropriate, parameters use usually given in MKS units. + +! This particular file is for the example in single_column/EPBL. + +! This MOM_input file typically contains only the non-default values that are needed to reproduce this example. +! A full list of parameters for this example can be found in the corresponding MOM_parameter_doc.all file +! which is generated by the model at run-time. + +! === module MOM_domains === +REENTRANT_Y = True ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +NIGLOBAL = 2 ! + ! The total number of thickness grid points in the x-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NJGLOBAL = 2 ! + ! The total number of thickness grid points in the y-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NIHALO = 2 ! default = 4 + ! The number of halo points on each side in the x-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. +NJHALO = 2 ! default = 4 + ! The number of halo points on each side in the y-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. +! LAYOUT = 1, 1 ! + ! The processor layout that was actually used. + +! === module MOM === +SPLIT = False ! [Boolean] default = True + ! Use the split time stepping if true. +USE_REGRIDDING = True ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). If False, use the + ! layered isopycnal algorithm. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that is actually used will + ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode + ! or the coupling timestep in coupled mode.) +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the accumulated heat deficit + ! is returned in the surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a constant. This is only used + ! if ENABLE_THERMODYNAMICS is true. The default value is from the TEOS-10 + ! definition of conservative temperature. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. + +! === module MOM_fixed_initialization === + +! === module MOM_grid_init === +GRID_CONFIG = "cartesian" ! + ! A character string that determines the method for defining the horizontal + ! grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +SOUTHLAT = 30.0 ! [degrees] + ! The southern latitude of the domain or the equivalent starting value for the + ! y-axis. +LENLAT = 1.0 ! [degrees] + ! The latitudinal or y-direction length of the domain. +LENLON = 1.0 ! [degrees] + ! The longitudinal or x-direction length of the domain. +TOPO_CONFIG = "flat" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! bbuilder - build topography from list of functions. + ! benchmark - use the benchmark test case topography. + ! Neverworld - use the Neverworld test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a slope and channel configuration for the + ! ISOMIP test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! Kelvin - flat but with rotated land mask. + ! seamount - Gaussian bump for spontaneous motion test case. + ! dumbbell - Sloshing channel with reservoirs on both ends. + ! shelfwave - exponential slope for shelfwave test case. + ! Phillips - ACC-like idealized topography used in the Phillips config. + ! dense - Denmark Strait-like dense water formation and overflow. + ! USER - call a user modified routine. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! The minimum depth of the ocean. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +ROTATION = "betaplane" ! default = "2omegasinlat" + ! This specifies how the Coriolis parameter is specified: + ! 2omegasinlat - Use twice the planetary rotation rate + ! times the sine of latitude. + ! betaplane - Use a beta-plane or f-plane. + ! USER - call a user modified routine. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +NK = 75 ! [nondim] + ! The number of model layers. + +! === module MOM_EOS === + +! === module MOM_tracer_flow_control === + +! === module MOM_coord_initialization === +REGRIDDING_COORDINATE_MODE = "Z*" ! default = "LAYER" + ! Coordinate mode for vertical regridding. Choose among the following + ! possibilities: LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stretched geopotential z* + ! SIGMA_SHELF_ZSTAR - stretched geopotential z* ignoring shelf + ! SIGMA - terrain following coordinates + ! RHO - continuous isopycnal + ! HYCOM1 - HyCOM-like hybrid coordinate + ! SLIGHT - stretched coordinates above continuous isopycnal + ! ADAPTIVE - optimize for smooth neutral density surfaces +ALE_COORDINATE_CONFIG = "FILE:./INPUT/vgrid_cm4.nc,dz" ! default = "UNIFORM" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter ALE_RESOLUTION + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +!ALE_RESOLUTION = 4*2.0, 2*2.01, 2*2.02, 2.05, 2.07, 2.09, 2.13, 2.18, 2.24, 2.3, 2.4, 2.5, 2.62, 2.78, 2.95, 3.17, 3.42, 3.71, 4.07, 4.48, 4.97, 5.55, 6.23, 7.04, 7.99, 9.11, 10.43, 11.98, 13.8, 15.94, 18.42, 21.32, 24.66, 28.51, 32.91, 37.92, 43.56, 49.87, 56.88, 64.55, 72.91, 81.87, 91.4, 101.39, 111.73, 122.29, 132.93, 143.47, 153.78, 163.7, 173.07, 181.78, 189.76, 196.89, 203.17, 208.58, 213.14, 216.87, 219.87, 222.19, 223.94, 225.18, 226.04, 226.59, 226.9, 227.07, 227.14, 2*227.16, 227.17 ! [m] + ! The distribution of vertical resolution for the target + ! grid used for Eulerian-like coordinates. For example, + ! in z-coordinate mode, the parameter is a list of level + ! thicknesses (in m). In sigma-coordinate mode, the list + ! is of non-dimensional fractions of the water column. + +! === module MOM_state_initialization === +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, initialize the layer thicknesses, temperatures, and salinities from a + ! Z-space file on a latitude-longitude grid. + +! === module MOM_initialize_layers_from_Z === +TEMP_SALT_Z_INIT_FILE = "WOA_column.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize temperatures (T) and + ! salinities (S). If T and S are not in the same file, TEMP_Z_INIT_FILE and + ! SALT_Z_INIT_FILE must be set. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in SALT_Z_INIT_FILE. +Z_INIT_HOMOGENIZE = True ! [Boolean] default = False + ! If True, then horizontally homogenize the interpolated initial conditions. +Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. + +! === module MOM_diag_mediator === +NUM_DIAG_COORDS = 1 ! default = 1 + ! The number of diagnostic vertical coordinates to use. For each coordinate, an + ! entry in DIAG_COORDS must be provided. +DIAG_COORDS = "scalar SCALAR SCALAR" ! + ! A list of string tuples associating diag_table modules to a coordinate + ! definition used for diagnostics. Each string is of the form + ! "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". +DIAG_COORD_P_REF_SCALAR = 0.0 +DIAG_COORD_NEEDS_SORTING_SCALAR = False +DIAG_COORD_DEF_SCALAR = "FILE:targetlayers_scalar.nc,interfaces=interfaces" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO2 + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_INTERP_SCHEME_SCALAR = "P1M_H2" ! default = "PPM_H4" + ! This sets the interpolation scheme to use to determine the new grid. These + ! parameters are only relevant when REGRIDDING_COORDINATE_MODE is set to a + ! function of state. Otherwise, it is not used. It can be one of the following + ! schemes: + ! P1M_H2 (2nd-order accurate) + ! P1M_H4 (2nd-order accurate) + ! P1M_IH4 (2nd-order accurate) + ! PLM (2nd-order accurate) + ! PPM_CW (3rd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! P3M_IH4IH3 (4th-order accurate) + ! P3M_IH6IH5 (4th-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) + +! === module MOM_lateral_mixing_coeffs === + +! === module MOM_set_visc === +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a viscosity of KVBBL if + ! BOTTOMDRAGLAW is not defined, or the thickness over which near-bottom + ! velocities are averaged for the drag law if BOTTOMDRAGLAW is defined but + ! LINEAR_DRAG is not. +CDRAG = 0.0 ! [nondim] default = 0.003 + ! CDRAG is the drag coefficient relating the magnitude of the velocity field to + ! the bottom stress. CDRAG is only used if BOTTOMDRAGLAW is defined. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with LINEAR_DRAG) or an + ! unresolved velocity that is combined with the resolved velocity to estimate + ! the velocity magnitude. DRAG_BG_VEL is only used when BOTTOMDRAGLAW is + ! defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be used with + ! BOTTOMDRAGLAW. This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. The molecular value, ~1e-6 + ! m2 s-1, may be used. + +! === module MOM_thickness_diffuse === + +! === module MOM_dynamics_unsplit === + +! === module MOM_continuity === + +! === module MOM_continuity_PPM === +UPWIND_1ST_CONTINUITY = True ! [Boolean] default = False + ! If true, CONTINUITY_PPM becomes a 1st-order upwind continuity solver. This + ! scheme is highly diffusive but may be useful for debugging or in single-column + ! mode where its minimal stencil is useful. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.75E-09 + ! The tolerance for the differences between the barotropic and baroclinic + ! estimates of the sea surface height due to the fluxes through each face. The + ! total tolerance for SSH is 4 times this value. The default is + ! 0.5*NK*ANGSTROM, and this should not be set less than about + ! 10^-15*MAXIMUM_DEPTH. +ETA_TOLERANCE_AUX = 0.001 ! [m] default = 1.0E-06 + ! The tolerance for free-surface height discrepancies between the barotropic + ! solution and the sum of the layer thicknesses when calculating the auxiliary + ! corrected velocities. By default, this is the same as ETA_TOLERANCE, but can + ! be made larger for efficiency. + +! === module MOM_CoriolisAdv === +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used to estimate the + ! Coriolis term, and the one that dissipates energy relative to the other one is + ! used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by the four estimates of + ! (f+rv)v from the four neighboring v-points, and similarly at v-points. This + ! option is always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_PressureForce === + +! === module MOM_PressureForce_AFV === + +! === module MOM_hor_visc === +BIHARMONIC = False ! [Boolean] default = True + ! If true, use a biharmonic horizontal viscosity. BIHARMONIC may be used with + ! LAPLACIAN. + +! === module MOM_vert_friction === +HARMONIC_VISC = True ! [Boolean] default = False + ! If true, use the harmonic mean thicknesses for calculating the vertical + ! viscosity. +HMIX_FIXED = 0.01 ! [m] + ! The prescribed depth over which the near-surface viscosity and diffusivity are + ! elevated when the bulk mixed layer is not used. +KVML = 0.0 ! [m2 s-1] default = 1.0E-04 + ! The kinematic viscosity in the mixed layer. A typical value is ~1e-2 m2 s-1. + ! KVML is not used if BULKMIXEDLAYER is true. The default is set by KV. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity components are truncated. +VEL_UNDERFLOW = 1.0E-30 ! [m s-1] default = 0.0 + ! A negligibly small velocity magnitude below which velocity components are set + ! to 0. A reasonable value might be 1e-30 m/s, which is less than an Angstrom + ! divided by the age of the universe. + +! === module MOM_diagnostics === + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ENERGETICS_SFC_PBL = True ! [Boolean] default = False + ! If true, use an implied energetics planetary boundary layer scheme to + ! determine the diffusivity and viscosity in the surface boundary layer. + +! === module MOM_CVMix_KPP === +! This is the MOM wrapper to CVMix:KPP +! See http://cvmix.github.io/ +USE_KPP = True ! [Boolean] default = False + ! If true, turns on the [CVMix] KPP scheme of Large et al., 1994, to calculate + ! diffusivities and non-local transport in the OBL. +KPP% +PASSIVE = True ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +%KPP + +! === module MOM_set_diffusivity === +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind work to penetrate below + ! the base of the mixed layer with a vertical decay scale determined by the + ! minimum of: (1) The depth of the mixed layer, (2) an Ekman length scale. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +ML_OMEGA_FRAC = 1.0 ! [nondim] default = 0.0 + ! When setting the decay scale for turbulence, use this fraction of the absolute + ! rotation rate blended with the local value of f, as sqrt((1-of)*f^2 + + ! of*4*omega^2). + +! === module MOM_bkgnd_mixing === +! Adding static vertical background mixing coefficients +KD = 2.0E-05 ! [m2 s-1] default = 0.0 + ! The background diapycnal diffusivity of density in the interior. Zero or the + ! molecular value, ~1e-7 m2 s-1, may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) shear mixing + ! parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to estimate the Richardson + ! number driven mixing. + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +RECLAIM_FRAZIL = False ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any overlying layers down + ! to the freezing point, thereby avoiding the creation of thin ice when the SST + ! is above the freezing point. +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine + ! the e-folding depth of incoming short wave radiation. +CHL_FILE = "forcing_monthly.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in the variable CHL_A. It + ! is used when VAR_PEN_SW and CHL_FROM_FILE are true. + +! === module MOM_energetic_PBL === +USE_MLD_ITERATION = False ! [Boolean] default = True + ! A logical that specifies whether or not to use the distance to the bottom of + ! the actively turbulent boundary layer to help set the EPBL length scale. + +! === module MOM_opacity === +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 600.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. + +! === module MOM_sum_output === +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very large value if the velocity + ! is truncated more than MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +ENERGYSAVEDAYS = 10.0 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the energies of the run and + ! other globally summed diagnostics. + +! === module MOM_surface_forcing === +BUOY_CONFIG = "data_override" ! default = "zero" + ! The character string that indicates how buoyancy forcing is specified. Valid + ! options include (file), (zero), (linear), (USER), (BFB) and (NONE). +WIND_CONFIG = "data_override" ! default = "zero" + ! The character string that indicates how wind forcing is specified. Valid + ! options include (file), (2gyre), (1gyre), (gyres), (zero), and (USER). +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from an input file +GUST_2D_FILE = "forcing_monthly.nc" ! + ! The file in which the wind gustiness is found in variable gustiness. + +! === module MOM_main (MOM_driver) === +DAYMAX = 365.0 ! [days] + ! The final time of the whole simulation, in units of TIMEUNIT seconds. This + ! also sets the potential end time of the present run segment if the end time is + ! not set via ocean_solo_nml in input.nml. +RESTART_CONTROL = 0 ! default = 1 + ! An integer whose bits encode which restart files are written. Add 2 (bit 1) + ! for a time-stamped file, and odd (bit 0) for a non-time-stamped file. A + ! non-time-stamped restart file is saved at the end of the run segment for any + ! non-negative value. +RESTINT = 3650.0 ! [days] default = 0.0 + ! The interval between saves of the restart file in units of TIMEUNIT. Use 0 + ! (the default) to not save incremental restart files at all. + +! === module MOM_write_cputime === +MAXCPU = 2.88E+04 ! [wall-clock seconds] default = -1.0 + ! The maximum amount of cpu time per processor for which MOM should run before + ! saving a restart file and quitting with a return value that indicates that a + ! further run is required to complete the simulation. If automatic restarts are + ! not desired, use a negative value for MAXCPU. MAXCPU has units of wall-clock + ! seconds, so the actual CPU time used is larger by a factor of the number of + ! processors used. + +! Debugging parameters set to non-default values +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations leading to zonal + ! velocity truncations are written. Undefine this for efficiency if this + ! diagnostic is not needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations leading to meridional + ! velocity truncations are written. Undefine this for efficiency if this + ! diagnostic is not needed. diff --git a/ocean_only/single_column/EPBL_diagscalar/MOM_override b/ocean_only/single_column/EPBL_diagscalar/MOM_override new file mode 100644 index 0000000000..875579f76d --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/MOM_override @@ -0,0 +1,3 @@ +! Generated by create_data.m +F_0 = 7.59943e-05 +INPUTDIR = "INPUT/BATS" diff --git a/ocean_only/single_column/EPBL_diagscalar/MOM_override2 b/ocean_only/single_column/EPBL_diagscalar/MOM_override2 new file mode 100644 index 0000000000..94a755f0f1 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/MOM_override2 @@ -0,0 +1,4 @@ +! Generated by run_suite.csh +!#override DAYMAX = 365 +!#override ALE_COORDINATE_CONFIG = "FILE:INPUT/vgrid_cm4_4.nc,dz" ! 4 meter surface +!#override ALE_COORDINATE_CONFIG = "FILE:INPUT/vgrid_cm4.nc,dz" ! 2 meter surface diff --git a/ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.all b/ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.all new file mode 100644 index 0000000000..b947af1b50 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.all @@ -0,0 +1,1805 @@ +! This file was written by the model and records all non-layout or debugging parameters used at run-time. + +! === module MOM === +SPLIT = False ! [Boolean] default = True + ! Use the split time stepping if true. +USE_RK2 = False ! [Boolean] default = False + ! If true, use RK2 instead of RK3 in the unsplit time stepping. +CALC_RHO_FOR_SEA_LEVEL = False ! [Boolean] default = False + ! If true, the in-situ density is used to calculate the effective sea level that + ! is returned to the coupler. If false, the Boussinesq parameter RHO_0 is used. +ENABLE_THERMODYNAMICS = True ! [Boolean] default = True + ! If true, Temperature and salinity are used as state variables. +USE_EOS = True ! [Boolean] default = True + ! If true, density is calculated from temperature and salinity with an equation + ! of state. If USE_EOS is true, ENABLE_THERMODYNAMICS must be true as well. +DIABATIC_FIRST = False ! [Boolean] default = False + ! If true, apply diabatic and thermodynamic processes, including buoyancy + ! forcing and mass gain or loss, before stepping the dynamics forward. +USE_CONTEMP_ABSSAL = False ! [Boolean] default = False + ! If true, the prognostics T&S are the conservative temperature and absolute + ! salinity. Care should be taken to convert them to potential temperature and + ! practical salinity before exchanging them with the coupler and/or reporting + ! T&S diagnostics. +ADIABATIC = False ! [Boolean] default = False + ! There are no diapycnal mass fluxes if ADIABATIC is true. This assumes that KD + ! = 0.0 and that there is no buoyancy forcing, but makes the model faster by + ! eliminating subroutine calls. +DO_DYNAMICS = True ! [Boolean] default = True + ! If False, skips the dynamics calls that update u & v, as well as the gravity + ! wave adjustment to h. This may be a fragile feature, but can be useful during + ! development +OFFLINE_TRACER_MODE = False ! [Boolean] default = False + ! If true, barotropic and baroclinic dynamics, thermodynamics are all bypassed + ! with all the fields necessary to integrate the tracer advection and diffusion + ! equation are read in from files stored from a previous integration of the + ! prognostic model. NOTE: This option only used in the ocean_solo_driver. +USE_REGRIDDING = True ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). If False, use the + ! layered isopycnal algorithm. +REMAP_AUXILIARY_VARS = False ! [Boolean] default = False + ! If true, apply ALE remapping to all of the auxiliary 3-dimensional variables + ! that are needed to reproduce across restarts, similarly to what is already + ! being done with the primary state variables. The default should be changed to + ! true. +BULKMIXEDLAYER = False ! [Boolean] default = False + ! If true, use a Kraus-Turner-like bulk mixed layer with transitional buffer + ! layers. Layers 1 through NKML+NKBL have variable densities. There must be at + ! least NKML+NKBL+1 layers if BULKMIXEDLAYER is true. BULKMIXEDLAYER can not be + ! used with USE_REGRIDDING. The default is influenced by ENABLE_THERMODYNAMICS. +THICKNESSDIFFUSE = False ! [Boolean] default = False + ! If true, isopycnal surfaces are diffused with a Laplacian coefficient of KHTH. +APPLY_INTERFACE_FILTER = False ! [Boolean] default = False + ! If true, model interface heights are subjected to a grid-scale dependent + ! spatial smoothing, often with biharmonic filter. +USE_POROUS_BARRIER = True ! [Boolean] default = True + ! If true, use porous barrier to constrain the widths and face areas at the + ! edges of the grid cells. +BATHYMETRY_AT_VEL = False ! [Boolean] default = False + ! If true, there are separate values for the basin depths at velocity points. + ! Otherwise the effects of topography are entirely determined from thickness + ! points. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that is actually used will + ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode + ! or the coupling timestep in coupled mode.) +DT_THERM = 3600.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. Ideally DT_THERM should be + ! an integer multiple of DT and less than the forcing or coupling time-step, + ! unless THERMO_SPANS_COUPLING is true, in which case DT_THERM can be an integer + ! multiple of the coupling timestep. By default DT_THERM is set to DT. +THERMO_SPANS_COUPLING = False ! [Boolean] default = False + ! If true, the MOM will take thermodynamic and tracer timesteps that can be + ! longer than the coupling timestep. The actual thermodynamic timestep that is + ! used in this case is the largest integer multiple of the coupling timestep + ! that is less than or equal to DT_THERM. +HMIX_SFC_PROP = 1.0 ! [m] default = 1.0 + ! If BULKMIXEDLAYER is false, HMIX_SFC_PROP is the depth over which to average + ! to find surface properties like SST and SSS or density (but not surface + ! velocities). +HMIX_UV_SFC_PROP = 0.0 ! [m] default = 0.0 + ! If BULKMIXEDLAYER is false, HMIX_UV_SFC_PROP is the depth over which to + ! average to find surface flow properties, SSU, SSV. A non-positive value + ! indicates no averaging. +HFREEZE = -1.0 ! [m] default = -1.0 + ! If HFREEZE > 0, melt potential will be computed. The actual depth over which + ! melt potential is computed will be min(HFREEZE, OBLD), where OBLD is the + ! boundary layer depth. If HFREEZE <= 0 (default), melt potential will not be + ! computed. +INTERPOLATE_P_SURF = False ! [Boolean] default = False + ! If true, linearly interpolate the surface pressure over the coupling time + ! step, using the specified value at the end of the step. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the accumulated heat deficit + ! is returned in the surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = False ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = False ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice model may ask for more + ! salt than is available and drive the salinity negative otherwise.) +SALINITY_UNDERFLOW = 0.0 ! [PPT] default = 0.0 + ! A tiny value of salinity below which the it is set to 0. For reference, one + ! molecule of salt per square meter of ocean is of order 1e-29 ppt. +TEMPERATURE_UNDERFLOW = 0.0 ! [degC] default = 0.0 + ! A tiny magnitude of temperatures below which they are set to 0. +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a constant. This is only used + ! if ENABLE_THERMODYNAMICS is true. The default value is from the TEOS-10 + ! definition of conservative temperature. +USE_PSURF_IN_EOS = True ! [Boolean] default = True + ! If true, always include the surface pressure contributions in equation of + ! state calculations. +P_REF = 2.0E+07 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the coordinate density. (1 Pa = 1e4 + ! dbar, so 2e7 is commonly used.) This is only used if USE_EOS and + ! ENABLE_THERMODYNAMICS are true. +FIRST_DIRECTION = 0 ! default = 0 + ! An integer that indicates which direction goes first in parts of the code that + ! use directionally split updates, with even numbers (or 0) used for x- first + ! and odd numbers used for y-first. +ALTERNATE_FIRST_DIRECTION = False ! [Boolean] default = False + ! If true, after every dynamic timestep alternate whether the x- or y- direction + ! updates occur first in directionally split parts of the calculation. If this + ! is true, FIRST_DIRECTION applies at the start of a new run or if the next + ! first direction can not be found in the restart file. +CHECK_BAD_SURFACE_VALS = False ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +DEFAULT_ANSWER_DATE = 99991231 ! default = 99991231 + ! This sets the default value for the various _ANSWER_DATE parameters. +DEFAULT_2018_ANSWERS = False ! [Boolean] default = False + ! This sets the default value for the various _2018_ANSWERS parameters. +SURFACE_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use expressions for the surface properties that recover the answers + ! from the end of 2018. Otherwise, use more appropriate expressions that differ + ! at roundoff for non-Boussinesq cases. +SURFACE_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the expressions for the surface properties. Values below + ! 20190101 recover the answers from the end of 2018, while higher values use + ! updated and more robust forms of the same expressions. If both + ! SURFACE_2018_ANSWERS and SURFACE_ANSWER_DATE are specified, the latter takes + ! precedence. +USE_DIABATIC_TIME_BUG = False ! [Boolean] default = False + ! If true, uses the wrong calendar time for diabatic processes, as was done in + ! MOM6 versions prior to February 2018. This is not recommended. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "MOM_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. +WRITE_GEOM = 1 ! default = 1 + ! If =0, never write the geometry and vertical grid files. If =1, write the + ! geometry and vertical grid files only for a new simulation. If =2, always + ! write the geometry and vertical grid files. Other values are invalid. +USE_DBCLIENT = False ! [Boolean] default = False + ! If true, initialize a client to a remote database that can be used for online + ! analysis and machine-learning inference. +ICE_SHELF = False ! [Boolean] default = False + ! If true, enables the ice shelf model. +USE_PARTICLES = False ! [Boolean] default = False + ! If true, use the particles package. +ENSEMBLE_OCEAN = False ! [Boolean] default = False + ! If False, The model is being run in serial mode as a single realization. If + ! True, The current model realization is part of a larger ensemble and at the + ! end of step MOM, we will perform a gather of the ensemble members for + ! statistical evaluation and/or data assimilation. +HOMOGENIZE_FORCINGS = False ! [Boolean] default = False + ! If True, homogenize the forces and fluxes. + +! === module MOM_domains === +REENTRANT_X = True ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = True ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = False ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the domain. With + ! TRIPOLAR_N, NIGLOBAL must be even. +NIGLOBAL = 2 ! + ! The total number of thickness grid points in the x-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NJGLOBAL = 2 ! + ! The total number of thickness grid points in the y-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NIHALO = 2 ! default = 4 + ! The number of halo points on each side in the x-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. +NJHALO = 2 ! default = 4 + ! The number of halo points on each side in the y-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. + +! === module MOM_hor_index === +! Sets the horizontal array index types. + +! === module MOM_grid === +! Parameters providing information about the lateral grid. +REFERENCE_HEIGHT = 0.0 ! [m] default = 0.0 + ! A reference value for geometric height fields, such as bathyT. + +! === module MOM_fixed_initialization === +INPUTDIR = "INPUT/BATS" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +GRID_CONFIG = "cartesian" ! + ! A character string that determines the method for defining the horizontal + ! grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +AXIS_UNITS = "degrees" ! default = "degrees" + ! The units for the Cartesian axes. Valid entries are: + ! degrees - degrees of latitude and longitude + ! m or meter(s) - meters + ! k or km or kilometer(s) - kilometers +SOUTHLAT = 30.0 ! [degrees] + ! The southern latitude of the domain or the equivalent starting value for the + ! y-axis. +LENLAT = 1.0 ! [degrees] + ! The latitudinal or y-direction length of the domain. +WESTLON = 0.0 ! [degrees] default = 0.0 + ! The western longitude of the domain or the equivalent starting value for the + ! x-axis. +LENLON = 1.0 ! [degrees] + ! The longitudinal or x-direction length of the domain. +RAD_EARTH = 6.378E+06 ! [m] default = 6.378E+06 + ! The radius of the Earth. +TOPO_CONFIG = "flat" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! bbuilder - build topography from list of functions. + ! benchmark - use the benchmark test case topography. + ! Neverworld - use the Neverworld test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a slope and channel configuration for the + ! ISOMIP test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! Kelvin - flat but with rotated land mask. + ! seamount - Gaussian bump for spontaneous motion test case. + ! dumbbell - Sloshing channel with reservoirs on both ends. + ! shelfwave - exponential slope for shelfwave test case. + ! Phillips - ACC-like idealized topography used in the Phillips config. + ! dense - Denmark Strait-like dense water formation and overflow. + ! USER - call a user modified routine. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! The minimum depth of the ocean. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. + +! === module MOM_open_boundary === +! Controls where open boundaries are located, what kind of boundary condition to impose, and what data to apply, +! if any. +OBC_NUMBER_OF_SEGMENTS = 0 ! default = 0 + ! The number of open boundary segments. +MASKING_DEPTH = -9999.0 ! [m] default = -9999.0 + ! The depth below which to mask points as land points, for which all fluxes are + ! zeroed out. MASKING_DEPTH is ignored if it has the special default value. +CHANNEL_CONFIG = "none" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +SUBGRID_TOPO_AT_VEL = False ! [Boolean] default = False + ! If true, use variables from TOPO_AT_VEL_FILE as parameters for porous barrier. +ROTATION = "betaplane" ! default = "2omegasinlat" + ! This specifies how the Coriolis parameter is specified: + ! 2omegasinlat - Use twice the planetary rotation rate + ! times the sine of latitude. + ! betaplane - Use a beta-plane or f-plane. + ! USER - call a user modified routine. +F_0 = 7.59943E-05 ! [s-1] default = 0.0 + ! The reference value of the Coriolis parameter with the betaplane option. +BETA = 0.0 ! [m-1 s-1] default = 0.0 + ! The northward gradient of the Coriolis parameter with the betaplane option. +BETA_LAT_REF = 0.0 ! [degrees] default = 0.0 + ! The reference latitude (origin) of the beta-plane +GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = False + ! If true, use an older algorithm to calculate the sine and cosines needed + ! rotate between grid-oriented directions and true north and east. Differences + ! arise at the tripolar fold. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +G_EARTH = 9.8 ! [m s-2] default = 9.8 + ! The gravitational acceleration of the Earth. +RHO_0 = 1035.0 ! [kg m-3] default = 1035.0 + ! The mean ocean density used with BOUSSINESQ true to calculate accelerations + ! and the mass for conservation properties, or with BOUSSINSEQ false to convert + ! some parameters from vertical units of m to kg m-2. +BOUSSINESQ = True ! [Boolean] default = True + ! If true, make the Boussinesq approximation. +ANGSTROM = 1.0E-10 ! [m] default = 1.0E-10 + ! The minimum layer thickness, usually one-Angstrom. +H_TO_M = 1.0 ! [m H-1] default = 1.0 + ! A constant that translates the model's internal units of thickness into m. +NK = 75 ! [nondim] + ! The number of model layers. + +! === module MOM_tracer_registry === + +! === module MOM_EOS === +EQN_OF_STATE = "WRIGHT" ! default = "WRIGHT" + ! EQN_OF_STATE determines which ocean equation of state should be used. + ! Currently, the valid choices are "LINEAR", "UNESCO", "WRIGHT", "NEMO" and + ! "TEOS10". This is only used if USE_EOS is true. +EOS_QUADRATURE = False ! [Boolean] default = False + ! If true, always use the generic (quadrature) code code for the integrals of + ! density. +TFREEZE_FORM = "LINEAR" ! default = "LINEAR" + ! TFREEZE_FORM determines which expression should be used for the freezing + ! point. Currently, the valid choices are "LINEAR", "MILLERO_78", "TEOS10" +TFREEZE_S0_P0 = 0.0 ! [deg C] default = 0.0 + ! When TFREEZE_FORM=LINEAR, this is the freezing potential temperature at S=0, + ! P=0. +DTFREEZE_DS = -0.054 ! [deg C PSU-1] default = -0.054 + ! When TFREEZE_FORM=LINEAR, this is the derivative of the freezing potential + ! temperature with salinity. +DTFREEZE_DP = 0.0 ! [deg C Pa-1] default = 0.0 + ! When TFREEZE_FORM=LINEAR, this is the derivative of the freezing potential + ! temperature with pressure. + +! === module MOM_restart === +PARALLEL_RESTARTFILES = False ! [Boolean] default = False + ! If true, the IO layout is used to group processors that write to the same + ! restart file or each processor writes its own (numbered) restart file. If + ! false, a single restart file is generated combining output from all PEs. +RESTARTFILE = "MOM.res" ! default = "MOM.res" + ! The name-root of the restart file. +MAX_FIELDS = 100 ! default = 100 + ! The maximum number of restart fields that can be used. +RESTART_CHECKSUMS_REQUIRED = True ! [Boolean] default = True + ! If true, require the restart checksums to match and error out otherwise. Users + ! may want to avoid this comparison if for example the restarts are made from a + ! run with a different mask_table than the current run, in which case the + ! checksums will not match and cause crash. + +! === module MOM_tracer_flow_control === +USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False + ! If true, use the USER_tracer_example tracer package. +USE_DOME_TRACER = False ! [Boolean] default = False + ! If true, use the DOME_tracer tracer package. +USE_ISOMIP_TRACER = False ! [Boolean] default = False + ! If true, use the ISOMIP_tracer tracer package. +USE_RGC_TRACER = False ! [Boolean] default = False + ! If true, use the RGC_tracer tracer package. +USE_IDEAL_AGE_TRACER = False ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_REGIONAL_DYES = False ! [Boolean] default = False + ! If true, use the regional_dyes tracer package. +USE_OIL_TRACER = False ! [Boolean] default = False + ! If true, use the oil_tracer tracer package. +USE_ADVECTION_TEST_TRACER = False ! [Boolean] default = False + ! If true, use the advection_test_tracer tracer package. +USE_OCMIP2_CFC = False ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. +USE_CFC_CAP = False ! [Boolean] default = False + ! If true, use the MOM_CFC_cap tracer package. +USE_generic_tracer = False ! [Boolean] default = False + ! If true and _USE_GENERIC_TRACER is defined as a preprocessor macro, use the + ! MOM_generic_tracer packages. +USE_PSEUDO_SALT_TRACER = False ! [Boolean] default = False + ! If true, use the pseudo salt tracer, typically run as a diagnostic. +USE_BOUNDARY_IMPULSE_TRACER = False ! [Boolean] default = False + ! If true, use the boundary impulse tracer. +USE_DYED_OBC_TRACER = False ! [Boolean] default = False + ! If true, use the dyed_obc_tracer tracer package. +USE_NW2_TRACERS = False ! [Boolean] default = False + ! If true, use the NeverWorld2 tracers. + +! === module MOM_coord_initialization === +COORD_CONFIG = "none" ! default = "none" + ! This specifies how layers are to be defined: + ! ALE or none - used to avoid defining layers in ALE mode + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! BFB - Custom coords for buoyancy-forced basin case + ! based on SST_S, T_BOT and DRHO_DT. + ! linear - linear based on interfaces not layers + ! layer_ref - linear based on layer densities + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +GFS = 9.8 ! [m s-2] default = 9.8 + ! The reduced gravity at the free surface. +REMAP_UV_USING_OLD_ALG = False ! [Boolean] default = False + ! If true, uses the old remapping-via-a-delta-z method for remapping u and v. If + ! false, uses the new method that remaps between grids described by an old and + ! new thickness. +REGRIDDING_COORDINATE_MODE = "Z*" ! default = "LAYER" + ! Coordinate mode for vertical regridding. Choose among the following + ! possibilities: LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stretched geopotential z* + ! SIGMA_SHELF_ZSTAR - stretched geopotential z* ignoring shelf + ! SIGMA - terrain following coordinates + ! RHO - continuous isopycnal + ! SCALAR - any scalar variable ** for diagnostic grids only ** + ! HYCOM1 - HyCOM-like hybrid coordinate + ! HYBGEN - Hybrid coordinate from the Hycom hybgen code + ! SLIGHT - stretched coordinates above continuous isopycnal + ! ADAPTIVE - optimize for smooth neutral density surfaces +REGRIDDING_COORDINATE_UNITS = "m" ! default = "m" + ! Units of the regridding coordinate. +ALE_COORDINATE_CONFIG = "FILE:./INPUT/vgrid_cm4.nc,dz" ! default = "UNIFORM" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter ALE_RESOLUTION + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +!ALE_RESOLUTION = 4*2.0, 2*2.01, 2*2.02, 2.05, 2.07, 2.09, 2.13, 2.18, 2.24, 2.3, 2.4, 2.5, 2.62, 2.78, 2.95, 3.17, 3.42, 3.71, 4.07, 4.48, 4.97, 5.55, 6.23, 7.04, 7.99, 9.11, 10.43, 11.98, 13.8, 15.94, 18.42, 21.32, 24.66, 28.51, 32.91, 37.92, 43.56, 49.87, 56.88, 64.55, 72.91, 81.87, 91.4, 101.39, 111.73, 122.29, 132.93, 143.47, 153.78, 163.7, 173.07, 181.78, 189.76, 196.89, 203.17, 208.58, 213.14, 216.87, 219.87, 222.19, 223.94, 225.18, 226.04, 226.59, 226.9, 227.07, 227.14, 2*227.16, 227.17 ! [m] + ! The distribution of vertical resolution for the target + ! grid used for Eulerian-like coordinates. For example, + ! in z-coordinate mode, the parameter is a list of level + ! thicknesses (in m). In sigma-coordinate mode, the list + ! is of non-dimensional fractions of the water column. +MIN_THICKNESS = 0.001 ! [m] default = 0.001 + ! When regridding, this is the minimum layer thickness allowed. +REMAPPING_SCHEME = "PLM" ! default = "PLM" + ! This sets the reconstruction scheme used for vertical remapping for all + ! variables. It can be one of the following schemes: + ! PCM (1st-order accurate) + ! PLM (2nd-order accurate) + ! PLM_HYBGEN (2nd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! PPM_HYBGEN (3rd-order accurate) + ! WENO_HYBGEN (3rd-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +VELOCITY_REMAPPING_SCHEME = "PLM" ! default = "PLM" + ! This sets the reconstruction scheme used for vertical remapping of velocities. + ! By default it is the same as REMAPPING_SCHEME. It can be one of the following + ! schemes: + ! PCM (1st-order accurate) + ! PLM (2nd-order accurate) + ! PLM_HYBGEN (2nd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! PPM_HYBGEN (3rd-order accurate) + ! WENO_HYBGEN (3rd-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +FATAL_CHECK_RECONSTRUCTIONS = False ! [Boolean] default = False + ! If true, cell-by-cell reconstructions are checked for consistency and if + ! non-monotonicity or an inconsistency is detected then a FATAL error is issued. +FATAL_CHECK_REMAPPING = False ! [Boolean] default = False + ! If true, the results of remapping are checked for conservation and new extrema + ! and if an inconsistency is detected then a FATAL error is issued. +REMAP_BOUND_INTERMEDIATE_VALUES = False ! [Boolean] default = False + ! If true, the values on the intermediate grid used for remapping are forced to + ! be bounded, which might not be the case due to round off. +REMAP_BOUNDARY_EXTRAP = False ! [Boolean] default = False + ! If true, values at the interfaces of boundary cells are extrapolated instead + ! of piecewise constant +REMAPPING_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated and more robust forms of the + ! same expressions. +REMAPPING_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the expressions and order of arithmetic to use for remapping. + ! Values below 20190101 result in the use of older, less accurate expressions + ! that were in use at the end of 2018. Higher values result in the use of more + ! robust and accurate forms of mathematically equivalent expressions. If both + ! REMAPPING_2018_ANSWERS and REMAPPING_ANSWER_DATE are specified, the latter + ! takes precedence. +PARTIAL_CELL_VELOCITY_REMAP = False ! [Boolean] default = False + ! If true, use partial cell thicknesses at velocity points that are masked out + ! where they extend below the shallower of the neighboring bathymetry for + ! remapping velocity. +REMAP_AFTER_INITIALIZATION = True ! [Boolean] default = True + ! If true, applies regridding and remapping immediately after initialization so + ! that the state is ALE consistent. This is a legacy step and should not be + ! needed if the initialization is consistent with the coordinate mode. +REGRID_TIME_SCALE = 0.0 ! [s] default = 0.0 + ! The time-scale used in blending between the current (old) grid and the target + ! (new) grid. A short time-scale favors the target grid (0. or anything less + ! than DT_THERM) has no memory of the old grid. A very long time-scale makes the + ! model more Lagrangian. +REGRID_FILTER_SHALLOW_DEPTH = 0.0 ! [m] default = 0.0 + ! The depth above which no time-filtering is applied. Above this depth final + ! grid exactly matches the target (new) grid. +REGRID_FILTER_DEEP_DEPTH = 0.0 ! [m] default = 0.0 + ! The depth below which full time-filtering is applied with time-scale + ! REGRID_TIME_SCALE. Between depths REGRID_FILTER_SHALLOW_DEPTH and + ! REGRID_FILTER_SHALLOW_DEPTH the filter weights adopt a cubic profile. +REMAP_VEL_MASK_BBL_THICK = -0.001 ! [m] default = -0.001 + ! A thickness of a bottom boundary layer below which velocities in thin layers + ! are zeroed out after remapping, following practice with Hybgen remapping, or a + ! negative value to avoid such filtering altogether. + +! === module MOM_state_initialization === +FATAL_INCONSISTENT_RESTART_TIME = False ! [Boolean] default = False + ! If true and a time_in value is provided to MOM_initialize_state, verify that + ! the time read from a restart file is the same as time_in, and issue a fatal + ! error if it is not. Otherwise, simply set the time to time_in if present. +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, initialize the layer thicknesses, temperatures, and salinities from a + ! Z-space file on a latitude-longitude grid. + +! === module MOM_initialize_layers_from_Z === +TEMP_SALT_Z_INIT_FILE = "WOA_column.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize temperatures (T) and + ! salinities (S). If T and S are not in the same file, TEMP_Z_INIT_FILE and + ! SALT_Z_INIT_FILE must be set. +TEMP_Z_INIT_FILE = "WOA_column.nc" ! default = "WOA_column.nc" + ! The name of the z-space input file used to initialize temperatures, only. +SALT_Z_INIT_FILE = "WOA_column.nc" ! default = "WOA_column.nc" + ! The name of the z-space input file used to initialize temperatures, only. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in SALT_Z_INIT_FILE. +Z_INIT_HOMOGENIZE = True ! [Boolean] default = False + ! If True, then horizontally homogenize the interpolated initial conditions. +Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. +Z_INIT_REMAPPING_SCHEME = "PPM_IH4" ! default = "PPM_IH4" + ! The remapping scheme to use if using Z_INIT_ALE_REMAPPING is True. +Z_INIT_REMAP_GENERAL = False ! [Boolean] default = False + ! If false, only initializes to z* coordinates. If true, allows initialization + ! directly to general coordinates. +Z_INIT_REMAP_FULL_COLUMN = False ! [Boolean] default = False + ! If false, only reconstructs profiles for valid data points. If true, inserts + ! vanished layers below the valid data. +Z_INIT_REMAP_OLD_ALG = False ! [Boolean] default = False + ! If false, uses the preferred remapping algorithm for initialization. If true, + ! use an older, less robust algorithm for remapping. +TEMP_SALT_INIT_VERTICAL_REMAP_ONLY = False ! [Boolean] default = False + ! If true, initial conditions are on the model horizontal grid. Extrapolation + ! over missing ocean values is done using an ICE-9 procedure with vertical ALE + ! remapping . +HOR_REGRID_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic for horizontal regridding that recovers + ! the answers from the end of 2018. Otherwise, use rotationally symmetric forms + ! of the same expressions. +HOR_REGRID_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic for horizontal regridding. Dates + ! before 20190101 give the same answers as the code did in late 2018, while + ! later versions add parentheses for rotational symmetry. Dates after 20230101 + ! use reproducing sums for global averages. If both HOR_REGRID_2018_ANSWERS and + ! HOR_REGRID_ANSWER_DATE are specified, the latter takes precedence. +LAND_FILL_TEMP = 0.0 ! [degC] default = 0.0 + ! A value to use to fill in ocean temperatures on land points. +LAND_FILL_SALIN = 35.0 ! [1e-3] default = 35.0 + ! A value to use to fill in ocean salinities on land points. +HORIZ_INTERP_TOL_TEMP = 0.001 ! [degC] default = 0.001 + ! The tolerance in temperature changes between iterations when interpolating + ! from an input dataset using horiz_interp_and_extrap_tracer. This routine + ! converges slowly, so an overly small tolerance can get expensive. +HORIZ_INTERP_TOL_SALIN = 0.001 ! [1e-3] default = 0.001 + ! The tolerance in salinity changes between iterations when interpolating from + ! an input dataset using horiz_interp_and_extrap_tracer. This routine converges + ! slowly, so an overly small tolerance can get expensive. +DEPRESS_INITIAL_SURFACE = False ! [Boolean] default = False + ! If true, depress the initial surface to avoid huge tsunamis when a large + ! surface pressure is applied. +TRIM_IC_FOR_P_SURF = False ! [Boolean] default = False + ! If true, cuts way the top of the column for initial conditions at the depth + ! where the hydrostatic pressure matches the imposed surface pressure which is + ! read from file. +VELOCITY_CONFIG = "zero" ! default = "zero" + ! A string that determines how the initial velocities are specified for a new + ! run: + ! file - read velocities from the file specified + ! by (VELOCITY_FILE). + ! zero - the fluid is initially at rest. + ! uniform - the flow is uniform (determined by + ! parameters INITIAL_U_CONST and INITIAL_V_CONST). + ! rossby_front - a mixed layer front in thermal wind balance. + ! soliton - Equatorial Rossby soliton. + ! USER - call a user modified routine. +CONVERT_THICKNESS_UNITS = False ! [Boolean] default = False + ! If true, convert the thickness initial conditions from units of m to kg m-2 + ! or vice versa, depending on whether BOUSSINESQ is defined. This does not apply + ! if a restart file is read. +REGRID_ACCELERATE_INIT = False ! [Boolean] default = False + ! If true, runs REGRID_ACCELERATE_ITERATIONS iterations of the regridding + ! algorithm to push the initial grid to be consistent with the initial + ! condition. Useful only for state-based and iterative coordinates. +ODA_INCUPD = False ! [Boolean] default = False + ! If true, oda incremental updates will be applied everywhere in the domain. +SPONGE = False ! [Boolean] default = False + ! If true, sponges may be applied anywhere in the domain. The exact location and + ! properties of those sponges are specified via SPONGE_CONFIG. + +! === module MOM_diag_mediator === +NUM_DIAG_COORDS = 1 ! default = 1 + ! The number of diagnostic vertical coordinates to use. For each coordinate, an + ! entry in DIAG_COORDS must be provided. +USE_GRID_SPACE_DIAGNOSTIC_AXES = False ! [Boolean] default = False + ! If true, use a grid index coordinate convention for diagnostic axes. +DIAG_COORDS = "scalar SCALAR SCALAR" ! default = "z Z ZSTAR" + ! A list of string tuples associating diag_table modules to a coordinate + ! definition used for diagnostics. Each string is of the form "MODULE_SUFFIX + ! PARAMETER_SUFFIX COORDINATE_NAME". +DIAG_MISVAL = 1.0E+20 ! [various] default = 1.0E+20 + ! Set the default missing value to use for diagnostics. +DIAG_AS_CHKSUM = False ! [Boolean] default = False + ! Instead of writing diagnostics to the diag manager, write a text file + ! containing the checksum (bitcount) of the array. +AVAILABLE_DIAGS_FILE = "available_diags.000000" ! default = "available_diags.000000" + ! A file into which to write a list of all available ocean diagnostics that can + ! be included in a diag_table. +INTERPOLATION_SCHEME = "P1M_H2" ! default = "PPM_H4" + ! This sets the interpolation scheme to use to determine the new grid. These + ! parameters are only relevant when REGRIDDING_COORDINATE_MODE is set to a + ! function of state. Otherwise, it is not used. It can be one of the following + ! schemes: + ! P1M_H2 (2nd-order accurate) + ! P1M_H4 (2nd-order accurate) + ! P1M_IH4 (2nd-order accurate) + ! PLM (2nd-order accurate) + ! PPM_CW (3rd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! P3M_IH4IH3 (4th-order accurate) + ! P3M_IH6IH5 (4th-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +DIAG_COORD_DEF_SCALAR = "FILE:targetlayers_scalar.nc,interfaces=interfaces" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_SCALAR + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_P_REF_SCALAR = 0.0 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the diagnostic coordinate density. + ! (1 Pa = 1e4 dbar, so 2e7 is commonly used.) This is only used for the RHO + ! coordinate. +DIAG_COORD_REGRID_COMPRESSIBILITY_FRACTION_SCALAR = 0.0 ! [nondim] default = 0.0 + ! When interpolating potential density profiles we can add some artificial + ! compressibility solely to make homogeneous regions appear stratified. +DIAG_COORD_NEEDS_SORTING_SCALAR = False ! [Boolean] default = False + ! Specifies whether the variable from which the coordinate is derived (e.g. + ! density) should be vertically sorted (to be monotonically increasing) prior to + ! regridding. The sorting is carried over to all remapped fields. + +! === module MOM_MEKE === +USE_MEKE = False ! [Boolean] default = False + ! If true, turns on the MEKE scheme which calculates a sub-grid mesoscale eddy + ! kinetic energy budget. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = False ! [Boolean] default = False + ! If true, the variable mixing code will be called. This allows diagnostics to + ! be created even if the scheme is not used. If KHTR_SLOPE_CFF>0 or + ! KhTh_Slope_Cff>0, this is set to true regardless of what is in the parameter + ! file. +USE_VISBECK = False ! [Boolean] default = False + ! If true, use the Visbeck et al. (1997) formulation for + ! thickness diffusivity. +RESOLN_SCALED_KH = False ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away when the first + ! baroclinic deformation radius is well resolved. +DEPTH_SCALED_KHTH = False ! [Boolean] default = False + ! If true, KHTH is scaled away when the depth is shallowerthan a reference + ! depth: KHTH = MIN(1,H/H0)**N * KHTH, where H0 is a reference depth, controlled + ! via DEPTH_SCALED_KHTH_H0, and the exponent (N) is controlled via + ! DEPTH_SCALED_KHTH_EXP. +RESOLN_SCALED_KHTH = False ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away when the first + ! baroclinic deformation radius is well resolved. +RESOLN_SCALED_KHTR = False ! [Boolean] default = False + ! If true, the epipycnal tracer diffusivity is scaled away when the first + ! baroclinic deformation radius is well resolved. +RESOLN_USE_EBT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic wave speed instead of first baroclinic + ! wave for calculating the resolution fn. +KHTH_USE_EBT_STRUCT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic structure as the vertical structure of + ! thickness diffusivity. +KD_GL90_USE_EBT_STRUCT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic structure as the vertical structure of + ! diffusivity in the GL90 scheme. +KHTH_SLOPE_CFF = 0.0 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula for the interface depth + ! diffusivity +KHTR_SLOPE_CFF = 0.0 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula for the epipycnal tracer + ! diffusivity +USE_STORED_SLOPES = False ! [Boolean] default = False + ! If true, the isopycnal slopes are calculated once and stored for re-use. This + ! uses more memory but avoids calling the equation of state more times than + ! should be necessary. +VERY_SMALL_FREQUENCY = 1.0E-17 ! [s-1] default = 1.0E-17 + ! A miniscule frequency that is used to avoid division by 0. The default value + ! is roughly (pi / (the age of the universe)). +USE_STANLEY_ISO = False ! [Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in isopycnal slope + ! code. +USE_QG_LEITH_GM = False ! [Boolean] default = False + ! If true, use the QG Leith viscosity as the GM coefficient. + +! === module MOM_set_visc === +SET_VISC_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated and more robust forms of the + ! same expressions. +SET_VISC_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the set viscosity + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. + ! If both SET_VISC_2018_ANSWERS and SET_VISC_ANSWER_DATE are specified, the + ! latter takes precedence. +BOTTOMDRAGLAW = True ! [Boolean] default = True + ! If true, the bottom stress is calculated with a drag law of the form + ! c_drag*|u|*u. The velocity magnitude may be an assumed value or it may be + ! based on the actual velocity in the bottommost HBBL, depending on LINEAR_DRAG. +DRAG_AS_BODY_FORCE = False ! [Boolean] default = False + ! If true, the bottom stress is imposed as an explicit body force applied over a + ! fixed distance from the bottom, rather than as an implicit calculation based + ! on an enhanced near-bottom viscosity. The thickness of the bottom boundary + ! layer is HBBL. +CHANNEL_DRAG = False ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each layer proportional to the + ! fraction of the bottom it overlies. +LINEAR_DRAG = False ! [Boolean] default = False + ! If LINEAR_DRAG and BOTTOMDRAGLAW are defined the drag law is + ! cdrag*DRAG_BG_VEL*u. +PRANDTL_TURB = 1.0 ! [nondim] default = 1.0 + ! The turbulent Prandtl number applied to shear instability. +DYNAMIC_VISCOUS_ML = False ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to determine the mixed layer + ! thickness for viscosity. +OMEGA = 7.2921E-05 ! [s-1] default = 7.2921E-05 + ! The rotation rate of the earth. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a viscosity increased by + ! KV_EXTRA_BBL if BOTTOMDRAGLAW is not defined, or the thickness over which + ! near-bottom velocities are averaged for the drag law if BOTTOMDRAGLAW is + ! defined but LINEAR_DRAG is not. +CDRAG = 0.0 ! [nondim] default = 0.003 + ! CDRAG is the drag coefficient relating the magnitude of the velocity field to + ! the bottom stress. CDRAG is only used if BOTTOMDRAGLAW is defined. +BBL_USE_TIDAL_BG = False ! [Boolean] default = False + ! Flag to use the tidal RMS amplitude in place of constant background velocity + ! for computing u* in the BBL. This flag is only used when BOTTOMDRAGLAW is true + ! and LINEAR_DRAG is false. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with LINEAR_DRAG) or an + ! unresolved velocity that is combined with the resolved velocity to estimate + ! the velocity magnitude. DRAG_BG_VEL is only used when BOTTOMDRAGLAW is + ! defined. +BBL_USE_EOS = True ! [Boolean] default = True + ! If true, use the equation of state in determining the properties of the bottom + ! boundary layer. Otherwise use the layer target potential densities. The + ! default of this parameter is the value of USE_EOS. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be used with + ! BOTTOMDRAGLAW. This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +HTBL_SHELF_MIN = 0.1 ! [m] default = 0.1 + ! The minimum top boundary layer thickness that can be used with BOTTOMDRAGLAW. + ! This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum near-top + ! viscosity. +HTBL_SHELF = 10.0 ! [m] default = 10.0 + ! The thickness over which near-surface velocities are averaged for the drag law + ! under an ice shelf. By default this is the same as HBBL +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. The molecular value, ~1e-6 + ! m2 s-1, may be used. +KV_BBL_MIN = 1.0E-04 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the bottom boundary layer. +KV_TBL_MIN = 1.0E-04 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the top boundary layer. +CORRECT_BBL_BOUNDS = False ! [Boolean] default = False + ! If true, uses the correct bounds on the BBL thickness and viscosity so that + ! the bottom layer feels the intended drag. + +! === module MOM_thickness_diffuse === +KHTH = 0.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +READ_KHTH = False ! [Boolean] default = False + ! If true, read a file (given by KHTH_FILE) containing the spatially varying + ! horizontal isopycnal height diffusivity. +KHTH_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum horizontal thickness diffusivity. +KHTH_MAX = 0.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. +KHTH_MAX_CFL = 0.8 ! [nondimensional] default = 0.8 + ! The maximum value of the local diffusive CFL ratio that is permitted for the + ! thickness diffusivity. 1.0 is the marginally unstable value in a pure layered + ! model, but much smaller numbers (e.g. 0.1) seem to work better for ALE-based + ! models. +KH_ETA_CONST = 0.0 ! [m2 s-1] default = 0.0 + ! The background horizontal diffusivity of the interface heights (without + ! considering the layer density structure). If diffusive CFL limits are + ! encountered, the diffusivities of the isopycnals and the interfaces heights + ! are scaled back proportionately. +KH_ETA_VEL_SCALE = 0.0 ! [m s-1] default = 0.0 + ! A velocity scale that is multiplied by the grid spacing to give a contribution + ! to the horizontal diffusivity of the interface heights (without considering + ! the layer density structure). +DETANGLE_INTERFACES = False ! [Boolean] default = False + ! If defined add 3-d structured enhanced interface height diffusivities to + ! horizontally smooth jagged layers. +KHTH_SLOPE_MAX = 0.01 ! [nondim] default = 0.01 + ! A slope beyond which the calculated isopycnal slope is not reliable and is + ! scaled away. +KD_SMOOTH = 1.0E-06 ! [m2 s-1] default = 1.0E-06 + ! A diapycnal diffusivity that is used to interpolate more sensible values of T + ! & S into thin layers. +KHTH_USE_FGNV_STREAMFUNCTION = False ! [Boolean] default = False + ! If true, use the streamfunction formulation of Ferrari et al., 2010, which + ! effectively emphasizes graver vertical modes by smoothing in the vertical. +USE_STANLEY_GM = False ! [Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in GM code. +MEKE_GM_SRC_ALT = False ! [Boolean] default = False + ! If true, use the GM energy conversion form S^2*N^2*kappa rather than the + ! streamfunction for the GM source term. +MEKE_GEOMETRIC = False ! [Boolean] default = False + ! If true, uses the GM coefficient formulation from the GEOMETRIC framework + ! (Marshall et al., 2012). +USE_KH_IN_MEKE = False ! [Boolean] default = False + ! If true, uses the thickness diffusivity calculated here to diffuse MEKE. +USE_GME = False ! [Boolean] default = False + ! If true, use the GM+E backscatter scheme in association with the Gent and + ! McWilliams parameterization. +USE_GM_WORK_BUG = False ! [Boolean] default = False + ! If true, compute the top-layer work tendency on the u-grid with the incorrect + ! sign, for legacy reproducibility. +STOCH_EOS = False ! [Boolean] default = False + ! If true, stochastic perturbations are applied to the EOS in the PGF. +STANLEY_COEFF = -1.0 ! [nondim] default = -1.0 + ! Coefficient correlating the temperature gradient and SGS T variance. + +! === module MOM_porous_barriers === +PORBAR_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the porous barrier weight function calculations. Values below + ! 20220806 recover the old answers in which the layer averaged weights are not + ! strictly limited by an upper-bound of 1.0 . +PORBAR_MASKING_DEPTH = 0.0 ! [m] default = 0.0 + ! If the effective average depth at the velocity cell is shallower than this + ! number, then porous barrier is not applied at that location. + ! PORBAR_MASKING_DEPTH is assumed to be positive below the sea surface. +PORBAR_ETA_INTERP = "MAX" ! default = "MAX" + ! A string describing the method that decides how the interface heights at the + ! velocity points are calculated. Valid values are: + ! MAX (the default) - maximum of the adjacent cells + ! MIN - minimum of the adjacent cells + ! ARITHMETIC - arithmetic mean of the adjacent cells + ! HARMONIC - harmonic mean of the adjacent cells + +! === module MOM_dynamics_unsplit === +FIX_UNSPLIT_DT_VISC_BUG = True ! [Boolean] default = True + ! If true, use the correct timestep in the viscous terms applied in the first + ! predictor step with the unsplit time stepping scheme, and in the calculation + ! of the turbulent mixed layer properties for viscosity with unsplit or + ! unsplit_RK2. +TIDES = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing. + +! === module MOM_continuity === +CONTINUITY_SCHEME = "PPM" ! default = "PPM" + ! CONTINUITY_SCHEME selects the discretization for the continuity solver. The + ! only valid value currently is: + ! PPM - use a positive-definite (or monotonic) + ! piecewise parabolic reconstruction solver. + +! === module MOM_continuity_PPM === +MONOTONIC_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses the Colella and Woodward monotonic limiter. The + ! default (false) is to use a simple positive definite limiter. +SIMPLE_2ND_PPM_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses a simple 2nd order (arithmetic mean) + ! interpolation of the edge values. This may give better PV conservation + ! properties. While it formally reduces the accuracy of the continuity solver + ! itself in the strongly advective limit, it does not reduce the overall order + ! of accuracy of the dynamic core. +UPWIND_1ST_CONTINUITY = True ! [Boolean] default = False + ! If true, CONTINUITY_PPM becomes a 1st-order upwind continuity solver. This + ! scheme is highly diffusive but may be useful for debugging or in single-column + ! mode where its minimal stencil is useful. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.75E-09 + ! The tolerance for the differences between the barotropic and baroclinic + ! estimates of the sea surface height due to the fluxes through each face. The + ! total tolerance for SSH is 4 times this value. The default is + ! 0.5*NK*ANGSTROM, and this should not be set less than about + ! 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 3.0E+08 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies between the barotropic + ! solution and the sum of the layer thicknesses. +CONT_PPM_AGGRESS_ADJUST = False ! [Boolean] default = False + ! If true, allow the adjusted velocities to have a relative CFL change up to + ! 0.5. +CONT_PPM_VOLUME_BASED_CFL = False ! [Boolean] default = False + ! If true, use the ratio of the open face lengths to the tracer cell areas when + ! estimating CFL numbers. The default is set by CONT_PPM_AGGRESS_ADJUST. +CONTINUITY_CFL_LIMIT = 0.5 ! [nondim] default = 0.5 + ! The maximum CFL of the adjusted velocities. +CONT_PPM_BETTER_ITER = True ! [Boolean] default = True + ! If true, stop corrective iterations using a velocity based criterion and only + ! stop if the iteration is better than all predecessors. +CONT_PPM_USE_VISC_REM_MAX = True ! [Boolean] default = True + ! If true, use more appropriate limiting bounds for corrections in strongly + ! viscous columns. +CONT_PPM_MARGINAL_FACE_AREAS = True ! [Boolean] default = True + ! If true, use the marginal face areas from the continuity solver for use as the + ! weights in the barotropic solver. Otherwise use the transport averaged areas. + +! === module MOM_CoriolisAdv === +NOSLIP = False ! [Boolean] default = False + ! If true, no slip boundary conditions are used; otherwise free slip boundary + ! conditions are assumed. The implementation of the free slip BCs on a C-grid is + ! much cleaner than the no slip BCs. The use of free slip BCs is strongly + ! encouraged, and no slip BCs are not used with the biharmonic viscosity. +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used to estimate the + ! Coriolis term, and the one that dissipates energy relative to the other one is + ! used. +CORIOLIS_SCHEME = "SADOURNY75_ENERGY" ! default = "SADOURNY75_ENERGY" + ! CORIOLIS_SCHEME selects the discretization for the Coriolis terms. Valid + ! values are: + ! SADOURNY75_ENERGY - Sadourny, 1975; energy cons. + ! ARAKAWA_HSU90 - Arakawa & Hsu, 1990 + ! SADOURNY75_ENSTRO - Sadourny, 1975; enstrophy cons. + ! ARAKAWA_LAMB81 - Arakawa & Lamb, 1981; En. + Enst. + ! ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with + ! Arakawa & Hsu and Sadourny energy +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by the four estimates of + ! (f+rv)v from the four neighboring v-points, and similarly at v-points. This + ! option is always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. +KE_SCHEME = "KE_ARAKAWA" ! default = "KE_ARAKAWA" + ! KE_SCHEME selects the discretization for acceleration due to the kinetic + ! energy gradient. Valid values are: + ! KE_ARAKAWA, KE_SIMPLE_GUDONOV, KE_GUDONOV +PV_ADV_SCHEME = "PV_ADV_CENTERED" ! default = "PV_ADV_CENTERED" + ! PV_ADV_SCHEME selects the discretization for PV advection. Valid values are: + ! PV_ADV_CENTERED - centered (aka Sadourny, 75) + ! PV_ADV_UPWIND1 - upwind, first order + +! === module MOM_PressureForce === +ANALYTIC_FV_PGF = True ! [Boolean] default = True + ! If true the pressure gradient forces are calculated with a finite volume form + ! that analytically integrates the equations of state in pressure to avoid any + ! possibility of numerical thermobaric instability, as described in Adcroft et + ! al., O. Mod. (2008). + +! === module MOM_PressureForce_FV === +MASS_WEIGHT_IN_PRESSURE_GRADIENT = False ! [Boolean] default = False + ! If true, use mass weighting when interpolating T/S for integrals near the + ! bathymetry in FV pressure gradient calculations. +USE_INACCURATE_PGF_RHO_ANOM = False ! [Boolean] default = False + ! If true, use a form of the PGF that uses the reference density in an + ! inaccurate way. This is not recommended. +RECONSTRUCT_FOR_PRESSURE = True ! [Boolean] default = True + ! If True, use vertical reconstruction of T & S within the integrals of the FV + ! pressure gradient calculation. If False, use the constant-by-layer algorithm. + ! The default is set by USE_REGRIDDING. +PRESSURE_RECONSTRUCTION_SCHEME = 1 ! default = 1 + ! Order of vertical reconstruction of T/S to use in the integrals within the FV + ! pressure gradient calculation. + ! 0: PCM or no reconstruction. + ! 1: PLM reconstruction. + ! 2: PPM reconstruction. +BOUNDARY_EXTRAPOLATION_PRESSURE = True ! [Boolean] default = True + ! If true, the reconstruction of T & S for pressure in boundary cells is + ! extrapolated, rather than using PCM in these cells. If true, the same order + ! polynomial is used as is used for the interior cells. +USE_STANLEY_PGF = False ! [Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in PGF code. + +! === module MOM_hor_visc === +HOR_VISC_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated and more robust forms of the + ! same expressions. +HOR_VISC_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the horizontal + ! viscosity calculations. Values below 20190101 recover the answers from the + ! end of 2018, while higher values use updated and more robust forms of the same + ! expressions. If both HOR_VISC_2018_ANSWERS and HOR_VISC_ANSWER_DATE are + ! specified, the latter takes precedence. +LAPLACIAN = False ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +BIHARMONIC = False ! [Boolean] default = True + ! If true, use a biharmonic horizontal viscosity. BIHARMONIC may be used with + ! LAPLACIAN. +USE_LAND_MASK_FOR_HVISC = True ! [Boolean] default = True + ! If true, use the land mask for the computation of thicknesses at velocity + ! locations. This eliminates the dependence on arbitrary values over land or + ! outside of the domain. + +! === module MOM_vert_friction === +VERT_FRICTION_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use expressions that do not use an arbitrary + ! hard-coded maximum viscous coupling coefficient between layers. +VERT_FRICTION_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the viscous + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use expressions that do not use an arbitrary hard-coded + ! maximum viscous coupling coefficient between layers. If both + ! VERT_FRICTION_2018_ANSWERS and VERT_FRICTION_ANSWER_DATE are specified, the + ! latter takes precedence. +DIRECT_STRESS = False ! [Boolean] default = False + ! If true, the wind stress is distributed over the topmost HMIX_STRESS of fluid + ! (like in HYCOM), and an added mixed layer viscosity or a physically based + ! boundary layer turbulence parameterization is not needed for stability. +FIXED_DEPTH_LOTW_ML = False ! [Boolean] default = False + ! If true, use a Law-of-the-wall prescription for the mixed layer viscosity + ! within a boundary layer that is the lesser of HMIX_FIXED and the total depth + ! of the ocean in a column. +LOTW_VISCOUS_ML_FLOOR = False ! [Boolean] default = False + ! If true, use a Law-of-the-wall prescription to set a lower bound on the + ! viscous coupling between layers within the surface boundary layer, based the + ! distance of interfaces from the surface. This only acts when there are large + ! changes in the thicknesses of successive layers or when the viscosity is set + ! externally and the wind stress has subsequently increased. +VON_KARMAN_CONST = 0.41 ! [nondim] default = 0.41 + ! The value the von Karman constant as used for mixed layer viscosity. +HARMONIC_VISC = True ! [Boolean] default = False + ! If true, use the harmonic mean thicknesses for calculating the vertical + ! viscosity. +HARMONIC_BL_SCALE = 0.0 ! [nondim] default = 0.0 + ! A scale to determine when water is in the boundary layers based solely on + ! harmonic mean thicknesses for the purpose of determining the extent to which + ! the thicknesses used in the viscosities are upwinded. +HMIX_FIXED = 0.01 ! [m] + ! The prescribed depth over which the near-surface viscosity and diffusivity are + ! elevated when the bulk mixed layer is not used. +USE_GL90_IN_SSW = False ! [Boolean] default = False + ! If true, use simpler method to calculate 1/N^2 in GL90 vertical viscosity + ! coefficient. This method is valid in stacked shallow water mode. +KV_ML_INVZ2 = 0.0 ! [m2 s-1] default = 0.0 + ! An extra kinematic viscosity in a mixed layer of thickness HMIX_FIXED, with + ! the actual viscosity scaling as 1/(z*HMIX_FIXED)^2, where z is the distance + ! from the surface, to allow for finite wind stresses to be transmitted through + ! infinitesimally thin surface layers. This is an older option for numerical + ! convenience without a strong physical basis, and its use is now discouraged. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity components are truncated. +CFL_BASED_TRUNCATIONS = True ! [Boolean] default = True + ! If true, base truncations on the CFL number, and not an absolute speed. +CFL_TRUNCATE = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that will cause velocity components to be + ! truncated; instability can occur past 0.5. +CFL_REPORT = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that causes accelerations to be reported; the + ! default is CFL_TRUNCATE. +CFL_TRUNCATE_RAMP_TIME = 0.0 ! [s] default = 0.0 + ! The time over which the CFL truncation value is ramped up at the beginning of + ! the run. +CFL_TRUNCATE_START = 0.0 ! [nondim] default = 0.0 + ! The start value of the truncation CFL number used when ramping up CFL_TRUNC. +STOKES_MIXING_COMBINED = False ! [Boolean] default = False + ! Flag to use Stokes drift Mixing via the Lagrangian current (Eulerian plus + ! Stokes drift). Still needs work and testing, so not recommended for use. +VEL_UNDERFLOW = 1.0E-30 ! [m s-1] default = 0.0 + ! A negligibly small velocity magnitude below which velocity components are set + ! to 0. A reasonable value might be 1e-30 m/s, which is less than an Angstrom + ! divided by the age of the universe. + +! === module MOM_mixed_layer_restrat === +MIXEDLAYER_RESTRAT = False ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying flow is imposed in the + ! mixed layer. Can be used in ALE mode without restriction but in layer mode can + ! only be used if BULKMIXEDLAYER is true. + +! === module MOM_diagnostics === +DIAG_EBT_MONO_N2_COLUMN_FRACTION = 0.0 ! [nondim] default = 0.0 + ! The lower fraction of water column over which N2 is limited as monotonic for + ! the purposes of calculating the equivalent barotropic wave speed. +DIAG_EBT_MONO_N2_DEPTH = -1.0 ! [m] default = -1.0 + ! The depth below which N2 is limited as monotonic for the purposes of + ! calculating the equivalent barotropic wave speed. +INTERNAL_WAVE_SPEED_TOL = 0.001 ! [nondim] default = 0.001 + ! The fractional tolerance for finding the wave speeds. +INTERNAL_WAVE_SPEED_MIN = 0.0 ! [m s-1] default = 0.0 + ! A floor in the first mode speed below which 0 used instead. +INTERNAL_WAVE_SPEED_BETTER_EST = True ! [Boolean] default = True + ! If true, use a more robust estimate of the first mode wave speed as the + ! starting point for iterations. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +USE_LEGACY_DIABATIC_DRIVER = True ! [Boolean] default = True + ! If true, use a legacy version of the diabatic subroutine. This is temporary + ! and is needed to avoid change in answers. +ENERGETICS_SFC_PBL = True ! [Boolean] default = False + ! If true, use an implied energetics planetary boundary layer scheme to + ! determine the diffusivity and viscosity in the surface boundary layer. +EPBL_IS_ADDITIVE = True ! [Boolean] default = True + ! If true, the diffusivity from ePBL is added to all other diffusivities. + ! Otherwise, the larger of kappa-shear and ePBL diffusivities are used. +PRANDTL_EPBL = 1.0 ! [nondim] default = 1.0 + ! The Prandtl number used by ePBL to convert vertical diffusivities into + ! viscosities. +INTERNAL_TIDES = False ! [Boolean] default = False + ! If true, use the code that advances a separate set of equations for the + ! internal tide energy density. +MASSLESS_MATCH_TARGETS = True ! [Boolean] default = True + ! If true, the temperature and salinity of massless layers are kept consistent + ! with their target densities. Otherwise the properties of massless layers + ! evolve diffusively to match massive neighboring layers. +AGGREGATE_FW_FORCING = True ! [Boolean] default = True + ! If true, the net incoming and outgoing fresh water fluxes are combined and + ! applied as either incoming or outgoing depending on the sign of the net. If + ! false, the net incoming fresh water flux is added to the model and thereafter + ! the net outgoing is removed from the topmost non-vanished layers of the + ! updated state. +MIX_BOUNDARY_TRACERS = True ! [Boolean] default = True + ! If true, mix the passive tracers in massless layers at the bottom into the + ! interior as though a diffusivity of KD_MIN_TR were operating. +MIX_BOUNDARY_TRACER_ALE = False ! [Boolean] default = False + ! If true and in ALE mode, mix the passive tracers in massless layers at the + ! bottom into the interior as though a diffusivity of KD_MIN_TR were operating. +KD_MIN_TR = 2.0E-06 ! [m2 s-1] default = 2.0E-06 + ! A minimal diffusivity that should always be applied to tracers, especially in + ! massless layers near the bottom. The default is 0.1*KD. +KD_BBL_TR = 0.0 ! [m2 s-1] default = 0.0 + ! A bottom boundary layer tracer diffusivity that will allow for explicitly + ! specified bottom fluxes. The entrainment at the bottom is at least + ! sqrt(Kd_BBL_tr*dt) over the same distance. +TRACER_TRIDIAG = False ! [Boolean] default = False + ! If true, use the passive tracer tridiagonal solver for T and S +MINIMUM_FORCING_DEPTH = 0.001 ! [m] default = 0.001 + ! The smallest depth over which forcing can be applied. This only takes effect + ! when near-surface layers become thin relative to this scale, in which case the + ! forcing tendencies scaled down by distributing the forcing over this depth + ! scale. +EVAP_CFL_LIMIT = 0.8 ! [nondim] default = 0.8 + ! The largest fraction of a layer than can be lost to forcing (e.g. evaporation, + ! sea-ice formation) in one time-step. The unused mass loss is passed down + ! through the column. +MLD_EN_VALS = 3*0.0 ! [J/m2] default = 0.0 + ! The energy values used to compute MLDs. If not set (or all set to 0.), the + ! default will overwrite to 25., 2500., 250000. +DIAG_MLD_DENSITY_DIFF = 0.1 ! [kg/m3] default = 0.1 + ! The density difference used to determine a diagnostic mixed layer depth, + ! MLD_user, following the definition of Levitus 1982. The MLD is the depth at + ! which the density is larger than the surface density by the specified amount. +DIAG_DEPTH_SUBML_N2 = 50.0 ! [m] default = 50.0 + ! The distance over which to calculate a diagnostic of the stratification at the + ! base of the mixed layer. + +! === module MOM_CVMix_KPP === +! This is the MOM wrapper to CVMix:KPP +! See http://cvmix.github.io/ +USE_KPP = True ! [Boolean] default = False + ! If true, turns on the [CVMix] KPP scheme of Large et al., 1994, to calculate + ! diffusivities and non-local transport in the OBL. +KPP% +PASSIVE = True ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +APPLY_NONLOCAL_TRANSPORT = False ! [Boolean] default = False + ! If True, applies the non-local transport to all tracers. If False, calculates + ! the non-local transport and tendencies but purely for diagnostic purposes. +N_SMOOTH = 0 ! default = 0 + ! The number of times the 1-1-4-1-1 Laplacian filter is applied on OBL depth. +RI_CRIT = 0.3 ! [nondim] default = 0.3 + ! Critical bulk Richardson number used to define depth of the surface Ocean + ! Boundary Layer (OBL). +VON_KARMAN = 0.4 ! [nondim] default = 0.4 + ! von Karman constant. +ENHANCE_DIFFUSION = True ! [Boolean] default = True + ! If True, adds enhanced diffusion at the based of the boundary layer. +INTERP_TYPE = "quadratic" ! default = "quadratic" + ! Type of interpolation to determine the OBL depth. + ! Allowed types are: linear, quadratic, cubic. +INTERP_TYPE2 = "LMD94" ! default = "LMD94" + ! Type of interpolation to compute diff and visc at OBL_depth. + ! Allowed types are: linear, quadratic, cubic or LMD94. +COMPUTE_EKMAN = False ! [Boolean] default = False + ! If True, limit OBL depth to be no deeper than Ekman depth. +COMPUTE_MONIN_OBUKHOV = False ! [Boolean] default = False + ! If True, limit the OBL depth to be no deeper than Monin-Obukhov depth. +CS = 98.96 ! [nondim] default = 98.96 + ! Parameter for computing velocity scale function. +CS2 = 6.32739901508 ! [nondim] default = 6.32739901508 + ! Parameter for computing non-local term. +DEEP_OBL_OFFSET = 0.0 ! [m] default = 0.0 + ! If non-zero, the distance above the bottom to which the OBL is clipped if it + ! would otherwise reach the bottom. The smaller of this and 0.1D is used. +FIXED_OBLDEPTH = False ! [Boolean] default = False + ! If True, fix the OBL depth to FIXED_OBLDEPTH_VALUE rather than using the OBL + ! depth from CVMix. This option is just for testing purposes. +FIXED_OBLDEPTH_VALUE = 30.0 ! [m] default = 30.0 + ! Value for the fixed OBL depth when fixedOBLdepth==True. This parameter is for + ! just for testing purposes. It will over-ride the OBLdepth computed from CVMix. +SURF_LAYER_EXTENT = 0.1 ! [nondim] default = 0.1 + ! Fraction of OBL depth considered in the surface layer. +MINIMUM_OBL_DEPTH = 0.0 ! [m] default = 0.0 + ! If non-zero, a minimum depth to use for KPP OBL depth. Independent of this + ! parameter, the OBL depth is always at least as deep as the first layer. +MINIMUM_VT2 = 1.0E-10 ! [m2/s2] default = 1.0E-10 + ! Min of the unresolved velocity Vt2 used in Rib CVMix calculation. + ! Scaling: MINIMUM_VT2 = const1*d*N*ws, with d=1m, N=1e-5/s, ws=1e-6 m/s. +NLT_SHAPE = "CVMix" ! default = "CVMix" + ! MOM6 method to set nonlocal transport profile. Over-rides the result from + ! CVMix. Allowed values are: + ! CVMix - Uses the profiles from CVMix specified by MATCH_TECHNIQUE + ! LINEAR - A linear profile, 1-sigma + ! PARABOLIC - A parablic profile, (1-sigma)^2 + ! CUBIC - A cubic profile, (1-sigma)^2(1+2*sigma) + ! CUBIC_LMD - The original KPP profile +MATCH_TECHNIQUE = "SimpleShapes" ! default = "SimpleShapes" + ! CVMix method to set profile function for diffusivity and NLT, as well as + ! matching across OBL base. Allowed values are: + ! SimpleShapes = sigma*(1-sigma)^2 for both diffusivity and NLT + ! MatchGradient = sigma*(1-sigma)^2 for NLT; diffusivity profile from + ! matching + ! MatchBoth = match gradient for both diffusivity and NLT + ! ParabolicNonLocal = sigma*(1-sigma)^2 for diffusivity; (1-sigma)^2 for NLT +KPP_ZERO_DIFFUSIVITY = False ! [Boolean] default = False + ! If True, zeroes the KPP diffusivity and viscosity; for testing purpose. +KPP_IS_ADDITIVE = True ! [Boolean] default = True + ! If true, adds KPP diffusivity to diffusivity from other schemes. + ! If false, KPP is the only diffusivity wherever KPP is non-zero. +KPP_SHORTWAVE_METHOD = "MXL_SW" ! default = "MXL_SW" + ! Determines contribution of shortwave radiation to KPP surface buoyancy flux. + ! Options include: + ! ALL_SW: use total shortwave radiation + ! MXL_SW: use shortwave radiation absorbed by mixing layer + ! LV1_SW: use shortwave radiation absorbed by top model layer +CVMix_ZERO_H_WORK_AROUND = 0.0 ! [m] default = 0.0 + ! A minimum thickness used to avoid division by small numbers in the vicinity of + ! vanished layers. This is independent of MIN_THICKNESS used in other parts of + ! MOM. +USE_KPP_LT_K = False ! [Boolean] default = False + ! Flag for Langmuir turbulence enhancement of turbulentmixing coefficient. +STOKES_MIXING = False ! [Boolean] default = False + ! Flag for Langmuir turbulence enhancement of turbulentmixing coefficient. +USE_KPP_LT_VT2 = False ! [Boolean] default = False + ! Flag for Langmuir turbulence enhancement of Vt2in Bulk Richardson Number. +%KPP + +! === module MOM_CVMix_conv === +! Parameterization of enhanced mixing due to convection via CVMix +USE_CVMix_CONVECTION = False ! [Boolean] default = False + ! If true, turns on the enhanced mixing due to convection via CVMix. This scheme + ! increases diapycnal diffs./viscs. at statically unstable interfaces. Relevant + ! parameters are contained in the CVMix_CONVECTION% parameter block. + +! === module MOM_set_diffusivity === +FLUX_RI_MAX = 0.2 ! [nondim] default = 0.2 + ! The flux Richardson number where the stratification is large enough that N2 > + ! omega2. The full expression for the Flux Richardson number is usually + ! FLUX_RI_MAX*N2/(N2+OMEGA2). +SET_DIFF_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated and more robust forms of the + ! same expressions. +SET_DIFF_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the set diffusivity + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. + ! If both SET_DIFF_2018_ANSWERS and SET_DIFF_ANSWER_DATE are specified, the + ! latter takes precedence. + +! === module MOM_tidal_mixing === +! Vertical Tidal Mixing Parameterization +USE_CVMix_TIDAL = False ! [Boolean] default = False + ! If true, turns on tidal mixing via CVMix +INT_TIDE_DISSIPATION = False ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to drive diapycnal mixing, + ! along the lines of St. Laurent et al. (2002) and Simmons et al. (2004). +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind work to penetrate below + ! the base of the mixed layer with a vertical decay scale determined by the + ! minimum of: (1) The depth of the mixed layer, (2) an Ekman length scale. +ML_RAD_EFOLD_COEFF = 0.2 ! [nondim] default = 0.2 + ! A coefficient that is used to scale the penetration depth for turbulence below + ! the base of the mixed layer. This is only used if ML_RADIATION is true. +ML_RAD_BUG = False ! [Boolean] default = False + ! If true use code with a bug that reduces the energy available in the + ! transition layer by a factor of the inverse of the energy deposition + ! lenthscale (in m). +ML_RAD_KD_MAX = 0.001 ! [m2 s-1] default = 0.001 + ! The maximum diapycnal diffusivity due to turbulence radiated from the base of + ! the mixed layer. This is only used if ML_RADIATION is true. +ML_RAD_COEFF = 0.2 ! [nondim] default = 0.2 + ! The coefficient which scales MSTAR*USTAR^3 to obtain the energy available for + ! mixing below the base of the mixed layer. This is only used if ML_RADIATION is + ! true. +ML_RAD_APPLY_TKE_DECAY = True ! [Boolean] default = True + ! If true, apply the same exponential decay to ML_rad as is applied to the other + ! surface sources of TKE in the mixed layer code. This is only used if + ! ML_RADIATION is true. +MSTAR = 1.2 ! [nondim] default = 1.2 + ! The ratio of the friction velocity cubed to the TKE input to the mixed layer. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +ML_OMEGA_FRAC = 1.0 ! [nondim] default = 0.0 + ! When setting the decay scale for turbulence, use this fraction of the absolute + ! rotation rate blended with the local value of f, as sqrt((1-of)*f^2 + + ! of*4*omega^2). +BBL_EFFIC = 0.2 ! [nondim] default = 0.2 + ! The efficiency with which the energy extracted by bottom drag drives BBL + ! diffusion. This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_MAX_DECAY = 200.0 ! [m] default = 200.0 + ! The maximum decay scale for the BBL diffusion, or 0 to allow the mixing to + ! penetrate as far as stratification and rotation permit. The default for now + ! is 200 m. This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_AS_MAX = True ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the BBL mixing and the other + ! diffusivities. Otherwise, diffusivity from the BBL_mixing is simply added. +USE_LOTW_BBL_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, uses a simple, imprecise but non-coordinate dependent, model of BBL + ! mixing diffusivity based on Law of the Wall. Otherwise, uses the original BBL + ! scheme. +SIMPLE_TKE_TO_KD = False ! [Boolean] default = False + ! If true, uses a simple estimate of Kd/TKE that will work for arbitrary + ! vertical coordinates. If false, calculates Kd/TKE and bounds based on exact + ! energetics for an isopycnal layer-formulation. + +! === module MOM_bkgnd_mixing === +! Adding static vertical background mixing coefficients +KD = 2.0E-05 ! [m2 s-1] default = 0.0 + ! The background diapycnal diffusivity of density in the interior. Zero or the + ! molecular value, ~1e-7 m2 s-1, may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +BRYAN_LEWIS_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, use a Bryan & Lewis (JGR 1979) like tanh profile of background + ! diapycnal diffusivity with depth. This is done via CVMix. +HORIZ_VARYING_BACKGROUND = False ! [Boolean] default = False + ! If true, apply vertically uniform, latitude-dependent background diffusivity, + ! as described in Danabasoglu et al., 2012 +PRANDTL_BKGND = 1.0 ! [nondim] default = 1.0 + ! Turbulent Prandtl number used to convert vertical background diffusivities + ! into viscosities. +HENYEY_IGW_BACKGROUND = False ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near surface background + ! diffusivity, as described in Harrison & Hallberg, JPO 2008. +KD_TANH_LAT_FN = False ! [Boolean] default = False + ! If true, use a tanh dependence of Kd_sfc on latitude, like CM2.1/CM2M. There + ! is no physical justification for this form, and it can not be used with + ! HENYEY_IGW_BACKGROUND. +KD_MAX = -1.0 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal diffusivity from TKE-based + ! parameterizations, or a negative value for no limit. +KD_ADD = 0.0 ! [m2 s-1] default = 0.0 + ! A uniform diapycnal diffusivity that is added everywhere without any filtering + ! or scaling. +USER_CHANGE_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, call user-defined code to change the diffusivity. +DISSIPATION_MIN = 0.0 ! [W m-3] default = 0.0 + ! The minimum dissipation by which to determine a lower bound of Kd (a floor). +DISSIPATION_N0 = 0.0 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression used to set a minimum + ! dissipation by which to determine a lower bound of Kd (a floor): A in eps_min + ! = A + B*N. +DISSIPATION_N1 = 0.0 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to set a minimum + ! dissipation by which to determine a lower bound of Kd (a floor): B in eps_min + ! = A + B*N +DISSIPATION_KD_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum vertical diffusivity applied as a floor. +DOUBLE_DIFFUSION = False ! [Boolean] default = False + ! If true, increase diffusivites for temperature or salinity based on the + ! double-diffusive parameterization described in Large et al. (1994). + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) shear mixing + ! parameterization. +VERTEX_SHEAR = False ! [Boolean] default = False + ! If true, do the calculations of the shear-driven mixing at the cell vertices + ! (i.e., the vorticity points). +RINO_CRIT = 0.25 ! [nondim] default = 0.25 + ! The critical Richardson number for shear mixing. +SHEARMIX_RATE = 0.089 ! [nondim] default = 0.089 + ! A nondimensional rate scale for shear-driven entrainment. Jackson et al find + ! values in the range of 0.085-0.089. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to estimate the Richardson + ! number driven mixing. +KD_KAPPA_SHEAR_0 = 2.0E-05 ! [m2 s-1] default = 2.0E-05 + ! The background diffusivity that is used to smooth the density and shear + ! profiles before solving for the diffusivities. The default is the greater of + ! KD and 1e-7 m2 s-1. +KD_SEED_KAPPA_SHEAR = 1.0 ! [m2 s-1] default = 1.0 + ! A moderately large seed value of diapycnal diffusivity that is used as a + ! starting turbulent diffusivity in the iterations to find an energetically + ! constrained solution for the shear-driven diffusivity. +KD_TRUNC_KAPPA_SHEAR = 2.0E-07 ! [m2 s-1] default = 2.0E-07 + ! The value of shear-driven diffusivity that is considered negligible and is + ! rounded down to 0. The default is 1% of KD_KAPPA_SHEAR_0. +FRI_CURVATURE = -0.97 ! [nondim] default = -0.97 + ! The nondimensional curvature of the function of the Richardson number in the + ! kappa source term in the Jackson et al. scheme. +TKE_N_DECAY_CONST = 0.24 ! [nondim] default = 0.24 + ! The coefficient for the decay of TKE due to stratification (i.e. proportional + ! to N*tke). The values found by Jackson et al. are 0.24-0.28. +TKE_SHEAR_DECAY_CONST = 0.14 ! [nondim] default = 0.14 + ! The coefficient for the decay of TKE due to shear (i.e. proportional to + ! |S|*tke). The values found by Jackson et al. are 0.14-0.12. +KAPPA_BUOY_SCALE_COEF = 0.82 ! [nondim] default = 0.82 + ! The coefficient for the buoyancy length scale in the kappa equation. The + ! values found by Jackson et al. are in the range of 0.81-0.86. +KAPPA_N_OVER_S_SCALE_COEF2 = 0.0 ! [nondim] default = 0.0 + ! The square of the ratio of the coefficients of the buoyancy and shear scales + ! in the diffusivity equation, Set this to 0 (the default) to eliminate the + ! shear scale. This is only used if USE_JACKSON_PARAM is true. +KAPPA_SHEAR_TOL_ERR = 0.1 ! [nondim] default = 0.1 + ! The fractional error in kappa that is tolerated. Iteration stops when changes + ! between subsequent iterations are smaller than this everywhere in a column. + ! The peak diffusivities usually converge most rapidly, and have much smaller + ! errors than this. +TKE_BACKGROUND = 0.0 ! [m2 s-2] default = 0.0 + ! A background level of TKE used in the first iteration of the kappa equation. + ! TKE_BACKGROUND could be 0. +KAPPA_SHEAR_ELIM_MASSLESS = True ! [Boolean] default = True + ! If true, massless layers are merged with neighboring massive layers in this + ! calculation. The default is true and I can think of no good reason why it + ! should be false. This is only used if USE_JACKSON_PARAM is true. +MAX_KAPPA_SHEAR_IT = 13 ! default = 13 + ! The maximum number of iterations that may be used to estimate the + ! time-averaged diffusivity. +KAPPA_SHEAR_MAX_KAP_SRC_CHG = 10.0 ! [nondim] default = 10.0 + ! The maximum permitted increase in the kappa source within an iteration + ! relative to the local source; this must be greater than 1. The lower limit + ! for the permitted fractional decrease is (1 - 0.5/kappa_src_max_chg). These + ! limits could perhaps be made dynamic with an improved iterative solver. +KAPPA_SHEAR_ITER_BUG = False ! [Boolean] default = False + ! If true, use an older, dimensionally inconsistent estimate of the derivative + ! of diffusivity with energy in the Newton's method iteration. The bug causes + ! undercorrections when dz > 1 m. +KAPPA_SHEAR_ALL_LAYER_TKE_BUG = False ! [Boolean] default = False + ! If true, report back the latest estimate of TKE instead of the time average + ! TKE when there is mass in all layers. Otherwise always report the time + ! averaged TKE, as is currently done when there are some massless layers. +USE_RESTRICTIVE_TOLERANCE_CHECK = False ! [Boolean] default = False + ! If true, uses the more restrictive tolerance check to determine if a timestep + ! is acceptable for the KS_it outer iteration loop. False uses the original + ! less restrictive check. + +! === module MOM_CVMix_shear === +! Parameterization of shear-driven turbulence via CVMix (various options) +USE_LMD94 = False ! [Boolean] default = False + ! If true, use the Large-McWilliams-Doney (JGR 1994) shear mixing + ! parameterization. +USE_PP81 = False ! [Boolean] default = False + ! If true, use the Pacanowski and Philander (JPO 1981) shear mixing + ! parameterization. + +! === module MOM_CVMix_ddiff === +! Parameterization of mixing due to double diffusion processes via CVMix +USE_CVMIX_DDIFF = False ! [Boolean] default = False + ! If true, turns on double diffusive processes via CVMix. Note that double + ! diffusive processes on viscosity are ignored in CVMix, see + ! http://cvmix.github.io/ for justification. + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +RECLAIM_FRAZIL = False ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any overlying layers down + ! to the freezing point, thereby avoiding the creation of thin ice when the SST + ! is above the freezing point. +SALT_EXTRACTION_LIMIT = 0.9999 ! [nondim] default = 0.9999 + ! An upper limit on the fraction of the salt in a layer that can be lost to the + ! net surface salt fluxes within a timestep. +PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False + ! If true, use a pressure dependent freezing temperature when making frazil. The + ! default is false, which will be faster but is inappropriate with ice-shelf + ! cavities. +IGNORE_FLUXES_OVER_LAND = False ! [Boolean] default = False + ! If true, the model does not check if fluxes are being applied over land + ! points. This is needed when the ocean is coupled with ice shelves and sea ice, + ! since the sea ice mask needs to be different than the ocean mask to avoid sea + ! ice formation under ice shelves. This flag only works when use_ePBL = True. +DO_RIVERMIX = False ! [Boolean] default = False + ! If true, apply additional mixing wherever there is runoff, so that it is mixed + ! down to RIVERMIX_DEPTH if the ocean is that deep. +USE_RIVER_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%runoff_Hflx field to set the heat carried by runoff, + ! instead of using SST*CP*liq_runoff. +USE_CALVING_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%calving_Hflx field to set the heat carried by runoff, + ! instead of using SST*CP*froz_runoff. +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine + ! the e-folding depth of incoming short wave radiation. +CHL_FROM_FILE = True ! [Boolean] default = True + ! If true, chl_a is read from a file. +CHL_FILE = "forcing_monthly.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in the variable CHL_A. It + ! is used when VAR_PEN_SW and CHL_FROM_FILE are true. +CHL_VARNAME = "CHL_A" ! default = "CHL_A" + ! Name of CHL_A variable in CHL_FILE. + +! === module MOM_energetic_PBL === +EKMAN_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A nondimensional scaling factor controlling the inhibition of the diffusive + ! length scale by rotation. Making this larger decreases the PBL diffusivity. +EPBL_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated and more robust forms of the + ! same expressions. +EPBL_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the energetic PBL + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. + ! If both EPBL_2018_ANSWERS and EPBL_ANSWER_DATE are specified, the latter takes + ! precedence. +EPBL_ORIGINAL_PE_CALC = True ! [Boolean] default = True + ! If true, the ePBL code uses the original form of the potential energy change + ! code. Otherwise, the newer version that can work with successive increments + ! to the diffusivity in upward or downward passes is used. +MKE_TO_TKE_EFFIC = 0.0 ! [nondim] default = 0.0 + ! The efficiency with which mean kinetic energy released by mechanically forced + ! entrainment of the mixed layer is converted to turbulent kinetic energy. +EPBL_MSTAR_SCHEME = "CONSTANT" ! default = "CONSTANT" + ! EPBL_MSTAR_SCHEME selects the method for setting mstar. Valid values are: + ! CONSTANT - Use a fixed mstar given by MSTAR + ! OM4 - Use L_Ekman/L_Obukhov in the stabilizing limit, as in OM4 + ! REICHL_H18 - Use the scheme documented in Reichl & Hallberg, 2018. +NSTAR = 0.2 ! [nondim] default = 0.2 + ! The portion of the buoyant potential energy imparted by surface fluxes that is + ! available to drive entrainment at the base of mixed layer when that energy is + ! positive. +MSTAR_CONV_ADJ = 0.0 ! [nondim] default = 0.0 + ! Coefficient used for reducing mstar during convection due to reduction of + ! stable density gradient. +USE_MLD_ITERATION = False ! [Boolean] default = True + ! A logical that specifies whether or not to use the distance to the bottom of + ! the actively turbulent boundary layer to help set the EPBL length scale. +EPBL_TRANSITION_SCALE = 0.1 ! [nondim] default = 0.1 + ! A scale for the mixing length in the transition layer at the edge of the + ! boundary layer as a fraction of the boundary layer thickness. +EPBL_MIN_MIX_LEN = 0.0 ! [meter] default = 0.0 + ! The minimum mixing length scale that will be used by ePBL. The default (0) + ! does not set a minimum. +MIX_LEN_EXPONENT = 2.0 ! [nondim] default = 2.0 + ! The exponent applied to the ratio of the distance to the MLD and the MLD depth + ! which determines the shape of the mixing length. This is only used if + ! USE_MLD_ITERATION is True. +EPBL_VEL_SCALE_SCHEME = "CUBE_ROOT_TKE" ! default = "CUBE_ROOT_TKE" + ! Selects the method for translating TKE into turbulent velocities. Valid values + ! are: + ! CUBE_ROOT_TKE - A constant times the cube root of remaining TKE. + ! REICHL_H18 - Use the scheme based on a combination of w* and v* as + ! documented in Reichl & Hallberg, 2018. +WSTAR_USTAR_COEF = 1.0 ! [nondim] default = 1.0 + ! A ratio relating the efficiency with which convectively released energy is + ! converted to a turbulent velocity, relative to mechanically forced TKE. Making + ! this larger increases the BL diffusivity +EPBL_VEL_SCALE_FACTOR = 1.0 ! [nondim] default = 1.0 + ! An overall nondimensional scaling factor for wT. Making this larger increases + ! the PBL diffusivity. +VSTAR_SURF_FAC = 1.2 ! [nondim] default = 1.2 + ! The proportionality times ustar to set vstar at the surface. +USE_LA_LI2016 = False ! [Boolean] default = False + ! A logical to use the Li et al. 2016 (submitted) formula to determine the + ! Langmuir number. +EPBL_LT = False ! [Boolean] default = False + ! A logical to use a LT parameterization. +!EPBL_USTAR_MIN = 1.45842E-18 ! [m s-1] + ! The (tiny) minimum friction velocity used within the ePBL code, derived from + ! OMEGA and ANGSTROM. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = False ! [Boolean] default = False + ! If defined, vertically restructure the near-surface layers when they have too + ! much lateral variations to allow for sensible lateral barotropic transports. + +! === module MOM_opacity === +OPACITY_SCHEME = "MANIZZA_05" ! default = "MANIZZA_05" + ! This character string specifies how chlorophyll concentrations are translated + ! into opacities. Currently valid options include: + ! MANIZZA_05 - Use Manizza et al., GRL, 2005. + ! MOREL_88 - Use Morel, JGR, 1988. +BLUE_FRAC_SW = 0.5 ! [nondim] default = 0.5 + ! The fraction of the penetrating shortwave radiation that is in the blue band. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. +OPTICS_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated expressions for handling the + ! absorption of small remaining shortwave fluxes. +OPTICS_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the optics + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. + ! If both OPTICS_2018_ANSWERS and OPTICS_ANSWER_DATE are specified, the latter + ! takes precedence. +PEN_SW_FLUX_ABSORB = 2.5E-11 ! [degC m s-1] default = 2.5E-11 + ! A minimum remaining shortwave heating rate that will be simply absorbed in the + ! next sufficiently thick layers for computational efficiency, instead of + ! continuing to penetrate. The default, 2.5e-11 degC m s-1, is about 1e-4 W m-2 + ! or 0.08 degC m century-1, but 0 is also a valid value. +PEN_SW_ABSORB_MINTHICK = 1.0 ! [m] default = 1.0 + ! A thickness that is used to absorb the remaining penetrating shortwave heat + ! flux when it drops below PEN_SW_FLUX_ABSORB. +OPACITY_LAND_VALUE = 10.0 ! [m-1] default = 10.0 + ! The value to use for opacity over land. The default is 10 m-1 - a value for + ! muddy water. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PLM" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + ! PPM - Piecewise Parabolic Method (Colella-Woodward) + +! === module MOM_tracer_hor_diff === +KHTR = 600.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 0.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 0.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over grid-spacing in passivity, + ! where passivity is the ratio between along isopycnal mixing of tracers to + ! thickness mixing. A non-zero value enables this parameterization. +KHTR_PASSIVITY_MIN = 0.5 ! [nondim] default = 0.5 + ! The minimum passivity which is the ratio between along isopycnal mixing of + ! tracers to thickness mixing. +DIFFUSE_ML_TO_INTERIOR = False ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface boundary layer and the + ! interior. +CHECK_DIFFUSIVE_CFL = False ! [Boolean] default = False + ! If true, use enough iterations the diffusion to ensure that the diffusive + ! equivalent of the CFL limit is not violated. If false, always use the greater + ! of 1 or MAX_TR_DIFFUSION_CFL iteration. +MAX_TR_DIFFUSION_CFL = -1.0 ! [nondim] default = -1.0 + ! If positive, locally limit the along-isopycnal tracer diffusivity to keep the + ! diffusive CFL locally at or below this value. The number of diffusive + ! iterations is often this value or the next greater integer. +RECALC_NEUTRAL_SURF = False ! [Boolean] default = False + ! If true, then recalculate the neutral surfaces if the + ! diffusive CFL is exceeded. If false, assume that the + ! positions of the surfaces do not change + +! === module MOM_neutral_diffusion === +! This module implements neutral diffusion of tracers +USE_NEUTRAL_DIFFUSION = False ! [Boolean] default = False + ! If true, enables the neutral diffusion module. + +! === module MOM_lateral_boundary_diffusion === +! This module implements lateral diffusion of tracers near boundaries +USE_LATERAL_BOUNDARY_DIFFUSION = False ! [Boolean] default = False + ! If true, enables the lateral boundary tracer's diffusion module. +OBSOLETE_DIAGNOSTIC_IS_FATAL = True ! [Boolean] default = True + ! If an obsolete diagnostic variable appears in the diag_table, cause a FATAL + ! error rather than issue a WARNING. + +! === module MOM_sum_output === +CALCULATE_APE = True ! [Boolean] default = True + ! If true, calculate the available potential energy of the interfaces. Setting + ! this to false reduces the memory footprint of high-PE-count models + ! dramatically. +WRITE_STOCKS = True ! [Boolean] default = True + ! If true, write the integrated tracer amounts to stdout when the energy files + ! are written. +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very large value if the velocity + ! is truncated more than MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +MAX_ENERGY = 0.0 ! [m2 s-2] default = 0.0 + ! The maximum permitted average energy per unit mass; the model will be stopped + ! if there is more energy than this. If zero or negative, this is set to + ! 10*MAXVEL^2. +ENERGYFILE = "ocean.stats" ! default = "ocean.stats" + ! The file to use to write the energies and globally summed diagnostics. +DATE_STAMPED_STDOUT = True ! [Boolean] default = True + ! If true, use dates (not times) in messages to stdout +TIMEUNIT = 8.64E+04 ! [s] default = 8.64E+04 + ! The time unit in seconds a number of input fields +READ_DEPTH_LIST = False ! [Boolean] default = False + ! Read the depth list from a file if it exists or create that file otherwise. +DEPTH_LIST_MIN_INC = 1.0E-10 ! [m] default = 1.0E-10 + ! The minimum increment between the depths of the entries in the depth-list + ! file. +ENERGYSAVEDAYS = 10.0 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the energies of the run and + ! other globally summed diagnostics. +ENERGYSAVEDAYS_GEOMETRIC = 0.0 ! [days] default = 0.0 + ! The starting interval in units of TIMEUNIT for the first call to save the + ! energies of the run and other globally summed diagnostics. The interval + ! increases by a factor of 2. after each call to write_energy. + +! === module ocean_stochastics_init === +DO_SPPT = False ! [Boolean] default = False + ! If true, then stochastically perturb the thermodynamic tendemcies of T,S, amd + ! h. Amplitude and correlations are controlled by the nam_stoch namelist in the + ! UFS model only. +PERT_EPBL = False ! [Boolean] default = False + ! If true, then stochastically perturb the kinetic energy production and + ! dissipation terms. Amplitude and correlations are controlled by the nam_stoch + ! namelist in the UFS model only. + +! === module MOM_surface_forcing === +VARIABLE_WINDS = True ! [Boolean] default = True + ! If true, the winds vary in time after the initialization. +VARIABLE_BUOYFORCE = True ! [Boolean] default = True + ! If true, the buoyancy forcing varies in time after the initialization of the + ! model. +BUOY_CONFIG = "data_override" ! default = "zero" + ! The character string that indicates how buoyancy forcing is specified. Valid + ! options include (file), (data_override), (zero), (const), (linear), (MESO), + ! (SCM_CVmix_tests), (BFB), (dumbbell), (USER) and (NONE). +WIND_CONFIG = "data_override" ! default = "zero" + ! The character string that indicates how wind forcing is specified. Valid + ! options include (file), (data_override), (2gyre), (1gyre), (gyres), (zero), + ! (const), (Neverworld), (scurves), (ideal_hurr), (SCM_ideal_hurr), + ! (SCM_CVmix_tests) and (USER). +RESTOREBUOY = False ! [Boolean] default = False + ! If true, the buoyancy fluxes drive the model back toward some specified + ! surface state with a rate given by FLUXCONST. +LATENT_HEAT_FUSION = 3.34E+05 ! [J/kg] default = 3.34E+05 + ! The latent heat of fusion. +LATENT_HEAT_VAPORIZATION = 2.5E+06 ! [J/kg] default = 2.5E+06 + ! The latent heat of fusion. +GUST_CONST = 0.0 ! [Pa] default = 0.0 + ! The background gustiness in the winds. +FIX_USTAR_GUSTLESS_BUG = True ! [Boolean] default = True + ! If true correct a bug in the time-averaging of the gustless wind friction + ! velocity +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from an input file +GUST_2D_FILE = "forcing_monthly.nc" ! + ! The file in which the wind gustiness is found in variable gustiness. + +! === module MOM_restart === +USE_WAVES = False ! [Boolean] default = False + ! If true, enables surface wave modules. + +! === module MOM_main (MOM_driver) === +DT_FORCING = 3600.0 ! [s] default = 3600.0 + ! The time step for changing forcing, coupling with other components, or + ! potentially writing certain diagnostics. The default value is given by DT. +DAYMAX = 365.0 ! [days] + ! The final time of the whole simulation, in units of TIMEUNIT seconds. This + ! also sets the potential end time of the present run segment if the end time is + ! not set via ocean_solo_nml in input.nml. +SINGLE_STEPPING_CALL = True ! [Boolean] default = True + ! If true, advance the state of MOM with a single step including both dynamics + ! and thermodynamics. If false the two phases are advanced with separate calls. +RESTART_CONTROL = 0 ! default = 1 + ! An integer whose bits encode which restart files are written. Add 2 (bit 1) + ! for a time-stamped file, and odd (bit 0) for a non-time-stamped file. A + ! non-time-stamped restart file is saved at the end of the run segment for any + ! non-negative value. +RESTINT = 3650.0 ! [days] default = 0.0 + ! The interval between saves of the restart file in units of TIMEUNIT. Use 0 + ! (the default) to not save incremental restart files at all. +WRITE_CPU_STEPS = 1000 ! default = 1000 + ! The number of coupled timesteps between writing the cpu time. If this is not + ! positive, do not check cpu time, and the segment run-length can not be set via + ! an elapsed CPU time. + +! === module MOM_write_cputime === +MAXCPU = 2.88E+04 ! [wall-clock seconds] default = -1.0 + ! The maximum amount of cpu time per processor for which MOM should run before + ! saving a restart file and quitting with a return value that indicates that a + ! further run is required to complete the simulation. If automatic restarts are + ! not desired, use a negative value for MAXCPU. MAXCPU has units of wall-clock + ! seconds, so the actual CPU time used is larger by a factor of the number of + ! processors used. +CPU_TIME_FILE = "CPU_stats" ! default = "CPU_stats" + ! The file into which CPU time is written. + +! === module MOM_file_parser === +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +DOCUMENT_FILE = "MOM_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their settings, units and + ! defaults are documented. Blank will disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are documented in MOM_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are documented in + ! MOM_parameter_doc.short . diff --git a/ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.debugging b/ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.debugging new file mode 100644 index 0000000000..1511991097 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.debugging @@ -0,0 +1,83 @@ +! This file was written by the model and records the debugging parameters used at run-time. + +! === module MOM_unit_scaling === +! Parameters for doing unit scaling of variables. +Z_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! depths and heights. Valid values range from -300 to 300. +L_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! lateral distances. Valid values range from -300 to 300. +T_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! time. Valid values range from -300 to 300. +R_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! density. Valid values range from -300 to 300. +Q_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! heat content. Valid values range from -300 to 300. +C_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! temperature. Valid values range from -300 to 300. +S_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! salinity. Valid values range from -300 to 300. + +! === module MOM === +VERBOSITY = 2 ! default = 2 + ! Integer controlling level of messaging + ! 0 = Only FATAL messages + ! 2 = Only FATAL, WARNING, NOTE [default] + ! 9 = All) +DO_UNIT_TESTS = False ! [Boolean] default = False + ! If True, exercises unit tests at model start up. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +DEBUG_TRUNCATIONS = False ! [Boolean] default = False + ! If true, calculate all diagnostics that are useful for debugging truncations. +ROTATE_INDEX = False ! [Boolean] default = False + ! Enable rotation of the horizontal indices. +DEBUG_CHKSUMS = False ! [Boolean] default = False + ! If true, checksums are performed on arrays in the various vec_chksum routines. +DEBUG_REDUNDANT = False ! [Boolean] default = False + ! If true, debug redundant data points during calls to the various vec_chksum + ! routines. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +H_RESCALE_POWER = 0 ! [nondim] default = 0 + ! An integer power of 2 that is used to rescale the model's intenal units of + ! thickness. Valid values range from -300 to 300. + +! === module MOM_vert_friction === +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations leading to zonal + ! velocity truncations are written. Undefine this for efficiency if this + ! diagnostic is not needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations leading to meridional + ! velocity truncations are written. Undefine this for efficiency if this + ! diagnostic is not needed. + +! === module MOM_PointAccel === +MAX_TRUNC_FILE_SIZE_PER_PE = 50 ! default = 50 + ! The maximum number of columns of truncations that any PE will write out during + ! a run. +DEBUG_FULL_COLUMN = False ! [Boolean] default = False + ! If true, write out the accelerations in all massive layers; otherwise just + ! document the ones with large velocities. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +DEBUG_CONSERVATION = False ! [Boolean] default = False + ! If true, monitor conservation and extrema. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 + +! === module MOM_file_parser === +REPORT_UNUSED_PARAMS = True ! [Boolean] default = True + ! If true, report any parameter lines that are not used in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused parameters. diff --git a/ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.layout b/ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.layout new file mode 100644 index 0000000000..d0bf972496 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.layout @@ -0,0 +1,56 @@ +! This file was written by the model and records the layout parameters used at run-time. + +! === module MOM === +GLOBAL_INDEXING = False ! [Boolean] default = False + ! If true, use a global lateral indexing convention, so that corresponding + ! points on different processors have the same index. This does not work with + ! static memory. + +! === module MOM_domains === +!SYMMETRIC_MEMORY_ = True ! [Boolean] + ! If defined, the velocity point data domain includes every face of the + ! thickness points. In other words, some arrays are larger than others, + ! depending on where they are on the staggered grid. Also, the starting index + ! of the velocity-point arrays is usually 0, not 1. This can only be set at + ! compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +THIN_HALO_UPDATES = True ! [Boolean] default = True + ! If true, optional arguments may be used to specify the width of the halos that + ! are updated with each call. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables will have sizes that are + ! statically determined at compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially faster, but does not allow + ! the PE count to be changed at run time. This can only be set at compile time. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. This feature masks out + ! processors that contain only land points. The first line of mask_table is the + ! number of regions to be masked out. The second line is the layout of the model + ! and must be consistent with the actual model layout. The following (n_mask) + ! lines give the logical positions of the processors that are masked out. The + ! mask_table can be created by tools like check_mask. The following example of + ! mask_table masks out 2 processors, (1,2) and (3,6), out of the 24 in a 4x6 + ! layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +NIPROC = 1 ! + ! The number of processors in the x-direction. With STATIC_MEMORY_ this is set + ! in MOM_memory.h at compile time. +NJPROC = 1 ! + ! The number of processors in the y-direction. With STATIC_MEMORY_ this is set + ! in MOM_memory.h at compile time. +LAYOUT = 1, 1 ! + ! The processor layout that was actually used. +IO_LAYOUT = 1, 1 ! default = 1 + ! The processor layout to be used, or 0,0 to automatically set the io_layout to + ! be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the lateral grid. +NIBLOCK = 1 ! default = 1 + ! The number of blocks in the x-direction on each processor (for openmp). +NJBLOCK = 1 ! default = 1 + ! The number of blocks in the y-direction on each processor (for openmp). diff --git a/ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.short b/ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.short new file mode 100644 index 0000000000..56e3de3f6d --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/MOM_parameter_doc.short @@ -0,0 +1,403 @@ +! This file was written by the model and records the non-default parameters used at run-time. + +! === module MOM === +SPLIT = False ! [Boolean] default = True + ! Use the split time stepping if true. +USE_REGRIDDING = True ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). If False, use the + ! layered isopycnal algorithm. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that is actually used will + ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode + ! or the coupling timestep in coupled mode.) +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the accumulated heat deficit + ! is returned in the surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a constant. This is only used + ! if ENABLE_THERMODYNAMICS is true. The default value is from the TEOS-10 + ! definition of conservative temperature. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. + +! === module MOM_domains === +REENTRANT_Y = True ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +NIGLOBAL = 2 ! + ! The total number of thickness grid points in the x-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NJGLOBAL = 2 ! + ! The total number of thickness grid points in the y-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NIHALO = 2 ! default = 4 + ! The number of halo points on each side in the x-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. +NJHALO = 2 ! default = 4 + ! The number of halo points on each side in the y-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. + +! === module MOM_fixed_initialization === +INPUTDIR = "INPUT/BATS" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +GRID_CONFIG = "cartesian" ! + ! A character string that determines the method for defining the horizontal + ! grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +SOUTHLAT = 30.0 ! [degrees] + ! The southern latitude of the domain or the equivalent starting value for the + ! y-axis. +LENLAT = 1.0 ! [degrees] + ! The latitudinal or y-direction length of the domain. +LENLON = 1.0 ! [degrees] + ! The longitudinal or x-direction length of the domain. +TOPO_CONFIG = "flat" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! bbuilder - build topography from list of functions. + ! benchmark - use the benchmark test case topography. + ! Neverworld - use the Neverworld test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a slope and channel configuration for the + ! ISOMIP test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! Kelvin - flat but with rotated land mask. + ! seamount - Gaussian bump for spontaneous motion test case. + ! dumbbell - Sloshing channel with reservoirs on both ends. + ! shelfwave - exponential slope for shelfwave test case. + ! Phillips - ACC-like idealized topography used in the Phillips config. + ! dense - Denmark Strait-like dense water formation and overflow. + ! USER - call a user modified routine. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! The minimum depth of the ocean. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +ROTATION = "betaplane" ! default = "2omegasinlat" + ! This specifies how the Coriolis parameter is specified: + ! 2omegasinlat - Use twice the planetary rotation rate + ! times the sine of latitude. + ! betaplane - Use a beta-plane or f-plane. + ! USER - call a user modified routine. +F_0 = 7.59943E-05 ! [s-1] default = 0.0 + ! The reference value of the Coriolis parameter with the betaplane option. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +NK = 75 ! [nondim] + ! The number of model layers. + +! === module MOM_EOS === + +! === module MOM_tracer_flow_control === + +! === module MOM_coord_initialization === +REGRIDDING_COORDINATE_MODE = "Z*" ! default = "LAYER" + ! Coordinate mode for vertical regridding. Choose among the following + ! possibilities: LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stretched geopotential z* + ! SIGMA_SHELF_ZSTAR - stretched geopotential z* ignoring shelf + ! SIGMA - terrain following coordinates + ! RHO - continuous isopycnal + ! SCALAR - any scalar variable ** for diagnostic grids only ** + ! HYCOM1 - HyCOM-like hybrid coordinate + ! HYBGEN - Hybrid coordinate from the Hycom hybgen code + ! SLIGHT - stretched coordinates above continuous isopycnal + ! ADAPTIVE - optimize for smooth neutral density surfaces +ALE_COORDINATE_CONFIG = "FILE:./INPUT/vgrid_cm4.nc,dz" ! default = "UNIFORM" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter ALE_RESOLUTION + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +!ALE_RESOLUTION = 4*2.0, 2*2.01, 2*2.02, 2.05, 2.07, 2.09, 2.13, 2.18, 2.24, 2.3, 2.4, 2.5, 2.62, 2.78, 2.95, 3.17, 3.42, 3.71, 4.07, 4.48, 4.97, 5.55, 6.23, 7.04, 7.99, 9.11, 10.43, 11.98, 13.8, 15.94, 18.42, 21.32, 24.66, 28.51, 32.91, 37.92, 43.56, 49.87, 56.88, 64.55, 72.91, 81.87, 91.4, 101.39, 111.73, 122.29, 132.93, 143.47, 153.78, 163.7, 173.07, 181.78, 189.76, 196.89, 203.17, 208.58, 213.14, 216.87, 219.87, 222.19, 223.94, 225.18, 226.04, 226.59, 226.9, 227.07, 227.14, 2*227.16, 227.17 ! [m] + ! The distribution of vertical resolution for the target + ! grid used for Eulerian-like coordinates. For example, + ! in z-coordinate mode, the parameter is a list of level + ! thicknesses (in m). In sigma-coordinate mode, the list + ! is of non-dimensional fractions of the water column. + +! === module MOM_state_initialization === +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, initialize the layer thicknesses, temperatures, and salinities from a + ! Z-space file on a latitude-longitude grid. + +! === module MOM_initialize_layers_from_Z === +TEMP_SALT_Z_INIT_FILE = "WOA_column.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize temperatures (T) and + ! salinities (S). If T and S are not in the same file, TEMP_Z_INIT_FILE and + ! SALT_Z_INIT_FILE must be set. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in SALT_Z_INIT_FILE. +Z_INIT_HOMOGENIZE = True ! [Boolean] default = False + ! If True, then horizontally homogenize the interpolated initial conditions. +Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. + +! === module MOM_diag_mediator === +DIAG_COORDS = "scalar SCALAR SCALAR" ! default = "z Z ZSTAR" + ! A list of string tuples associating diag_table modules to a coordinate + ! definition used for diagnostics. Each string is of the form "MODULE_SUFFIX + ! PARAMETER_SUFFIX COORDINATE_NAME". +INTERPOLATION_SCHEME = "P1M_H2" ! default = "PPM_H4" + ! This sets the interpolation scheme to use to determine the new grid. These + ! parameters are only relevant when REGRIDDING_COORDINATE_MODE is set to a + ! function of state. Otherwise, it is not used. It can be one of the following + ! schemes: + ! P1M_H2 (2nd-order accurate) + ! P1M_H4 (2nd-order accurate) + ! P1M_IH4 (2nd-order accurate) + ! PLM (2nd-order accurate) + ! PPM_CW (3rd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! P3M_IH4IH3 (4th-order accurate) + ! P3M_IH6IH5 (4th-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +DIAG_COORD_DEF_SCALAR = "FILE:targetlayers_scalar.nc,interfaces=interfaces" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_SCALAR + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_P_REF_SCALAR = 0.0 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the diagnostic coordinate density. + ! (1 Pa = 1e4 dbar, so 2e7 is commonly used.) This is only used for the RHO + ! coordinate. + +! === module MOM_lateral_mixing_coeffs === + +! === module MOM_set_visc === +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a viscosity increased by + ! KV_EXTRA_BBL if BOTTOMDRAGLAW is not defined, or the thickness over which + ! near-bottom velocities are averaged for the drag law if BOTTOMDRAGLAW is + ! defined but LINEAR_DRAG is not. +CDRAG = 0.0 ! [nondim] default = 0.003 + ! CDRAG is the drag coefficient relating the magnitude of the velocity field to + ! the bottom stress. CDRAG is only used if BOTTOMDRAGLAW is defined. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with LINEAR_DRAG) or an + ! unresolved velocity that is combined with the resolved velocity to estimate + ! the velocity magnitude. DRAG_BG_VEL is only used when BOTTOMDRAGLAW is + ! defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be used with + ! BOTTOMDRAGLAW. This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. The molecular value, ~1e-6 + ! m2 s-1, may be used. + +! === module MOM_thickness_diffuse === + +! === module MOM_porous_barriers === + +! === module MOM_dynamics_unsplit === + +! === module MOM_continuity === + +! === module MOM_continuity_PPM === +UPWIND_1ST_CONTINUITY = True ! [Boolean] default = False + ! If true, CONTINUITY_PPM becomes a 1st-order upwind continuity solver. This + ! scheme is highly diffusive but may be useful for debugging or in single-column + ! mode where its minimal stencil is useful. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.75E-09 + ! The tolerance for the differences between the barotropic and baroclinic + ! estimates of the sea surface height due to the fluxes through each face. The + ! total tolerance for SSH is 4 times this value. The default is + ! 0.5*NK*ANGSTROM, and this should not be set less than about + ! 10^-15*MAXIMUM_DEPTH. + +! === module MOM_CoriolisAdv === +CORIOLIS_EN_DIS = True ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used to estimate the + ! Coriolis term, and the one that dissipates energy relative to the other one is + ! used. +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by the four estimates of + ! (f+rv)v from the four neighboring v-points, and similarly at v-points. This + ! option is always effectively false with CORIOLIS_EN_DIS defined and + ! CORIOLIS_SCHEME set to SADOURNY75_ENERGY. + +! === module MOM_PressureForce === + +! === module MOM_PressureForce_FV === + +! === module MOM_hor_visc === +BIHARMONIC = False ! [Boolean] default = True + ! If true, use a biharmonic horizontal viscosity. BIHARMONIC may be used with + ! LAPLACIAN. + +! === module MOM_vert_friction === +HARMONIC_VISC = True ! [Boolean] default = False + ! If true, use the harmonic mean thicknesses for calculating the vertical + ! viscosity. +HMIX_FIXED = 0.01 ! [m] + ! The prescribed depth over which the near-surface viscosity and diffusivity are + ! elevated when the bulk mixed layer is not used. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity components are truncated. +VEL_UNDERFLOW = 1.0E-30 ! [m s-1] default = 0.0 + ! A negligibly small velocity magnitude below which velocity components are set + ! to 0. A reasonable value might be 1e-30 m/s, which is less than an Angstrom + ! divided by the age of the universe. + +! === module MOM_diagnostics === + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ENERGETICS_SFC_PBL = True ! [Boolean] default = False + ! If true, use an implied energetics planetary boundary layer scheme to + ! determine the diffusivity and viscosity in the surface boundary layer. + +! === module MOM_CVMix_KPP === +! This is the MOM wrapper to CVMix:KPP +! See http://cvmix.github.io/ +USE_KPP = True ! [Boolean] default = False + ! If true, turns on the [CVMix] KPP scheme of Large et al., 1994, to calculate + ! diffusivities and non-local transport in the OBL. +KPP% +PASSIVE = True ! [Boolean] default = False + ! If True, puts KPP into a passive-diagnostic mode. +%KPP + +! === module MOM_set_diffusivity === +ML_RADIATION = True ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind work to penetrate below + ! the base of the mixed layer with a vertical decay scale determined by the + ! minimum of: (1) The depth of the mixed layer, (2) an Ekman length scale. +TKE_DECAY = 10.0 ! [nondim] default = 2.5 + ! The ratio of the natural Ekman depth to the TKE decay scale. +ML_OMEGA_FRAC = 1.0 ! [nondim] default = 0.0 + ! When setting the decay scale for turbulence, use this fraction of the absolute + ! rotation rate blended with the local value of f, as sqrt((1-of)*f^2 + + ! of*4*omega^2). + +! === module MOM_bkgnd_mixing === +! Adding static vertical background mixing coefficients +KD = 2.0E-05 ! [m2 s-1] default = 0.0 + ! The background diapycnal diffusivity of density in the interior. Zero or the + ! molecular value, ~1e-7 m2 s-1, may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) shear mixing + ! parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to estimate the Richardson + ! number driven mixing. + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +RECLAIM_FRAZIL = False ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any overlying layers down + ! to the freezing point, thereby avoiding the creation of thin ice when the SST + ! is above the freezing point. +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine + ! the e-folding depth of incoming short wave radiation. +CHL_FILE = "forcing_monthly.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in the variable CHL_A. It + ! is used when VAR_PEN_SW and CHL_FROM_FILE are true. + +! === module MOM_energetic_PBL === +USE_MLD_ITERATION = False ! [Boolean] default = True + ! A logical that specifies whether or not to use the distance to the bottom of + ! the actively turbulent boundary layer to help set the EPBL length scale. + +! === module MOM_opacity === +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === + +! === module MOM_tracer_hor_diff === +KHTR = 600.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. + +! === module MOM_sum_output === +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very large value if the velocity + ! is truncated more than MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +ENERGYSAVEDAYS = 10.0 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the energies of the run and + ! other globally summed diagnostics. + +! === module ocean_stochastics_init === + +! === module MOM_surface_forcing === +BUOY_CONFIG = "data_override" ! default = "zero" + ! The character string that indicates how buoyancy forcing is specified. Valid + ! options include (file), (data_override), (zero), (const), (linear), (MESO), + ! (SCM_CVmix_tests), (BFB), (dumbbell), (USER) and (NONE). +WIND_CONFIG = "data_override" ! default = "zero" + ! The character string that indicates how wind forcing is specified. Valid + ! options include (file), (data_override), (2gyre), (1gyre), (gyres), (zero), + ! (const), (Neverworld), (scurves), (ideal_hurr), (SCM_ideal_hurr), + ! (SCM_CVmix_tests) and (USER). +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from an input file +GUST_2D_FILE = "forcing_monthly.nc" ! + ! The file in which the wind gustiness is found in variable gustiness. + +! === module MOM_main (MOM_driver) === +DAYMAX = 365.0 ! [days] + ! The final time of the whole simulation, in units of TIMEUNIT seconds. This + ! also sets the potential end time of the present run segment if the end time is + ! not set via ocean_solo_nml in input.nml. +RESTART_CONTROL = 0 ! default = 1 + ! An integer whose bits encode which restart files are written. Add 2 (bit 1) + ! for a time-stamped file, and odd (bit 0) for a non-time-stamped file. A + ! non-time-stamped restart file is saved at the end of the run segment for any + ! non-negative value. +RESTINT = 3650.0 ! [days] default = 0.0 + ! The interval between saves of the restart file in units of TIMEUNIT. Use 0 + ! (the default) to not save incremental restart files at all. + +! === module MOM_write_cputime === +MAXCPU = 2.88E+04 ! [wall-clock seconds] default = -1.0 + ! The maximum amount of cpu time per processor for which MOM should run before + ! saving a restart file and quitting with a return value that indicates that a + ! further run is required to complete the simulation. If automatic restarts are + ! not desired, use a negative value for MAXCPU. MAXCPU has units of wall-clock + ! seconds, so the actual CPU time used is larger by a factor of the number of + ! processors used. diff --git a/ocean_only/single_column/EPBL_diagscalar/data_table b/ocean_only/single_column/EPBL_diagscalar/data_table new file mode 100644 index 0000000000..36cb27c2e7 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/data_table @@ -0,0 +1,11 @@ +# gridname, fieldname_code, fieldname_file, file_name, ongrid, factor +"OCN" , "lw", "netlwdn_sfc", "./INPUT/BATS/forcing.nc", .true., 1.0 +"OCN" , "sw", "netswdn_sfc", "./INPUT/BATS/forcing.nc", .true., 1.0 +"OCN" , "rain", "precip", "./INPUT/BATS/forcing.nc", .true., 1.0 +"OCN" , "evap", "evap", "./INPUT/BATS/forcing.nc", .true., 1.0 +"OCN" , "sens", "shflx", "./INPUT/BATS/forcing.nc", .true., 1.0 +"OCN" , "taux", "STRESS_X", "./INPUT/BATS/forcing.nc", .true., 1.0 +"OCN" , "tauy", "STRESS_Y", "./INPUT/BATS/forcing.nc", .true., 1.0 +"OCN" , "snow", "snow", "./INPUT/BATS/forcing.nc", .true., 0.0 +"OCN" , "runoff", "", "" , .true., 0.0 +"OCN" , "calving", "", "" , .true., 0.0 diff --git a/ocean_only/single_column/EPBL_diagscalar/diag_table b/ocean_only/single_column/EPBL_diagscalar/diag_table new file mode 100644 index 0000000000..2afd0bcc6a --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/diag_table @@ -0,0 +1,251 @@ +CONFIG NAME +0001 1 1 0 0 0 + +#==================================================================================================== +# MOM6 +#==================================================================================================== +# MOM6 ocean diagnostics files + +"ocean_natv_thck%4yr_%2mo", 1, "months", 1, "days", "time", 1, "months" +"ocean_natv_heat%4yr_%2mo", 1, "months", 1, "days", "time", 1, "months" +"ocean_natv_salt%4yr_%2mo", 1, "months", 1, "days", "time", 1, "months" +"ocean_natv_snap%4yr_%2mo", 1, "months", 1, "days", "time", 1, "months" +"ocean_sclr_thck%4yr_%2mo", 1, "months", 1, "days", "time", 1, "months" +"ocean_sclr_heat%4yr_%2mo", 1, "months", 1, "days", "time", 1, "months" +"ocean_sclr_salt%4yr_%2mo", 1, "months", 1, "days", "time", 1, "months" +"ocean_sclr_snap%4yr_%2mo", 1, "months", 1, "days", "time", 1, "months" +"ocean_surf%4yr_%2mo", 1, "months", 1, "days", "time", 1, "months" +"ocean_static", -1, "hours", 1, "days", "time" # ocean_static is a protected name. Do not change this line. + +# --------------------------- # +# Static grid variables # +# --------------------------- # +"ocean_model", "areacello", "areacello", "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", "area_t", "area_t", "ocean_static", "all", "none", "none", 2 +"ocean_model", "area_u", "area_u", "ocean_static", "all", "none", "none", 2 +"ocean_model", "area_v", "area_v", "ocean_static", "all", "none", "none", 2 +"ocean_model", "area_q", "area_q", "ocean_static", "all", "none", "none", 2 +"ocean_model", "depth_ocean", "depth_ocean", "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", "Coriolis", "Coriolis", "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", "dxCvo", "dxCvo", "ocean_static", "all", "none", "none", 2 +"ocean_model", "dyCuo", "dyCuo", "ocean_static", "all", "none", "none", 2 + +############## +### NATIVE ### +# ------------------------------------------------- # +# Heat + budget terms [get from Andrew Shao github] # +# ------------------------------------------------- # + +# MEAN +"ocean_model", "temp", "temp" "ocean_natv_heat%4yr_%2mo", "all", "mean", "none", 2 + +"ocean_model", "opottemptend", "opottemptend", "ocean_natv_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "opottempdiff", "opottempdiff", "ocean_natv_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "opottemppmdiff", "opottemppmdiff", "ocean_natv_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "boundary_forcing_heat_tendency","boundary_forcing_heat_tendency", "ocean_natv_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "frazil_heat_tendency", "frazil_heat_tendency", "ocean_natv_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "T_advection_xy", "T_advection_xy", "ocean_natv_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "Th_tendency_vert_remap", "Th_tendency_vert_remap", "ocean_natv_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "internal_heat_heat_tendency", "internal_heat_heat_tendency", "ocean_natv_heat%4yr_%2mo", "all", "mean", "none", 1 + +# SNAP +#"ocean_model", "temp", "temp" "ocean_natv_snap%4yr_%2mo", "all", "none", "none", 2 + +# ------------------- # +# Salt + budget terms # +# ------------------- # + +"ocean_model", "salt", "salt", "ocean_natv_salt%4yr_%2mo", "all", "mean", "none", 2 + +"ocean_model", "osalttend", "osalttend", "ocean_natv_salt%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "osaltdiff", "osaltdiff", "ocean_natv_salt%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "osaltpmdiff", "osaltpmdiff", "ocean_natv_salt%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "boundary_forcing_salt_tendency","boundary_forcing_salt_tendency", "ocean_natv_salt%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "S_advection_xy", "S_advection_xy", "ocean_natv_salt%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "Sh_tendency_vert_remap", "Sh_tendency_vert_remap", "ocean_natv_salt%4yr_%2mo", "all", "mean", "none", 1 + +# SNAP +#"ocean_model", "salt", "salt" "ocean_natv_snap%4yr_%2mo", "all", "none", "none", 2 + +# ------------------------------------------------- # +# Thickness + budget terms # +# ------------------------------------------------- # + +# MEAN +"ocean_model", "thkcello", "thkcello", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 2 + +"ocean_model", "dhdt", "dhdt", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "dynamics_h_tendency", "dynamics_h_tendency", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "vert_remap_h_tendency", "vert_remap_h_tendency", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "boundary_forcing_h_tendency", "boundary_forcing_h_tendency", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model", "internal_heat_h_tendency", "internal_heat_h_tendency", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 1 + +# SNAP +#"ocean_model", "thkcello", "thkcello" "ocean_natv_snap%4yr_%2mo", "all", "none", "none", 2 +#"ocean_model", "e", "e" "ocean_natv_snap%4yr_%2mo", "all", "none", "none", 2 + +# ----------------------------------------- # +# Other terms necessary for WMT calculation # +# ----------------------------------------- # + +# MEAN +"ocean_model", "rhoinsitu", "rhoinsitu", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model", "rhopot0", "rhopot0", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model", "rhopot2", "rhopot2", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model", "drho_dT", "drho_dT", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model", "drho_dS", "drho_dS", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model", "umo", "umo", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model", "vmo", "vmo", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model", "e", "e", "ocean_natv_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model", "rsdoabsorb", "rsdoabsorb", "ocean_natv_heat%4yr_%2mo", "all", "mean", "none",2 + +# SNAP +#"ocean_model", "rhopot2", "rhopot2" "ocean_natv_snap%4yr_%2mo", "all", "none", "none", 2 + +# -------------- # +# Lateral fluxes # +# -------------- # +# heat and salinity transport by residual mean advection +"ocean_model", "T_adx", "T_adx", "ocean_natv_heat%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "T_ady", "T_ady", "ocean_natv_heat%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "S_adx", "S_adx", "ocean_natv_salt%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "S_ady", "S_ady", "ocean_natv_salt%4yr_%2mo", "all", "mean", "none",2 + +############## +### SCALAR ### +# ------------------------------------------------- # +# Heat + budget terms [get from Andrew Shao github] # +# ------------------------------------------------- # + +# MEAN +"ocean_model_scalar", "temp", "temp" "ocean_sclr_heat%4yr_%2mo", "all", "mean", "none", 2 + +"ocean_model_scalar", "opottemptend", "opottemptend", "ocean_sclr_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "opottempdiff", "opottempdiff", "ocean_sclr_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "opottemppmdiff", "opottemppmdiff", "ocean_sclr_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "boundary_forcing_heat_tendency","boundary_forcing_heat_tendency", "ocean_sclr_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "frazil_heat_tendency", "frazil_heat_tendency", "ocean_sclr_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "T_advection_xy", "T_advection_xy", "ocean_sclr_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "Th_tendency_vert_remap", "Th_tendency_vert_remap", "ocean_sclr_heat%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "internal_heat_heat_tendency", "internal_heat_heat_tendency", "ocean_sclr_heat%4yr_%2mo", "all", "mean", "none", 1 + +# SNAP +#"ocean_model_scalar", "temp", "temp" "ocean_sclr_snap%4yr_%2mo", "all", "none", "none", 2 + +# ------------------- # +# Salt + budget terms # +# ------------------- # + +"ocean_model_scalar", "salt", "salt", "ocean_sclr_salt%4yr_%2mo", "all", "mean", "none", 2 + +"ocean_model_scalar", "osalttend", "osalttend", "ocean_sclr_salt%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "osaltdiff", "osaltdiff", "ocean_sclr_salt%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "osaltpmdiff", "osaltpmdiff", "ocean_sclr_salt%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "boundary_forcing_salt_tendency","boundary_forcing_salt_tendency", "ocean_sclr_salt%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "S_advection_xy", "S_advection_xy", "ocean_sclr_salt%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "Sh_tendency_vert_remap", "Sh_tendency_vert_remap", "ocean_sclr_salt%4yr_%2mo", "all", "mean", "none", 1 + +# SNAP +#"ocean_model_scalar", "salt", "salt" "ocean_sclr_snap%4yr_%2mo", "all", "none", "none", 2 + +# ------------------------ # +# Thickness + budget terms # +# ------------------------ # + +# MEAN +"ocean_model_scalar", "thkcello", "thkcello", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 2 + +"ocean_model_scalar", "dhdt", "dhdt", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "dynamics_h_tendency", "dynamics_h_tendency", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "vert_remap_h_tendency", "vert_remap_h_tendency", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "boundary_forcing_h_tendency", "boundary_forcing_h_tendency", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 1 +"ocean_model_scalar", "internal_heat_h_tendency", "internal_heat_h_tendency", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 1 + +# SNAP +#"ocean_model_scalar", "thkcello", "thkcello" "ocean_sclr_snap%4yr_%2mo", "all", "none", "none", 2 +#"ocean_model_scalar", "e", "e" "ocean_sclr_snap%4yr_%2mo", "all", "none", "none", 2 + +# ----------------------------------------- # +# Other terms necessary for WMT calculation # +# ----------------------------------------- # + +# MEAN +"ocean_model_scalar", "rhoinsitu", "rhoinsitu", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model_scalar", "rhopot0", "rhopot0", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model_scalar", "rhopot2", "rhopot2", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model_scalar", "drho_dT", "drho_dT", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model_scalar", "drho_dS", "drho_dS", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 2 +#"ocean_model_scalar", "umo", "umo", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 2 +#"ocean_model_scalar", "vmo", "vmo", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model_scalar", "e", "e", "ocean_sclr_thck%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model_scalar", "rsdoabsorb", "rsdoabsorb", "ocean_sclr_heat%4yr_%2mo", "all", "mean", "none",2 + +# SNAP +"ocean_model_scalar", "rhopot2", "rhopot2" "ocean_sclr_snap%4yr_%2mo", "all", "none", "none", 2 + + +# -------------- # +# Lateral fluxes # +# -------------- # +# heat and salinity transport by residual mean advection +#"ocean_model_scalar", "T_adx", "T_adx", "ocean_sclr_heat%4yr_%2mo", "all", "mean", "none",2 +#"ocean_model_scalar", "T_ady", "T_ady", "ocean_sclr_heat%4yr_%2mo", "all", "mean", "none",2 +#"ocean_model_scalar", "S_adx", "S_adx", "ocean_sclr_salt%4yr_%2mo", "all", "mean", "none",2 +#"ocean_model_scalar", "S_ady", "S_ady", "ocean_sclr_salt%4yr_%2mo", "all", "mean", "none",2 + +#################################### +### SURFACE VARIABLES AND FLUXES ### + +"ocean_model", "tos", "tos" "ocean_surf%4yr_%2mo", "all", "mean", "none", 2 +"ocean_model", "sos", "sos" "ocean_surf%4yr_%2mo", "all", "mean", "none", 2 + +# MASS +"ocean_model", "prlq", "prlq", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "prsn", "prsn", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "evs", "evs", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "friver", "friver", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "ficeberg", "ficeberg", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "fsitherm", "fsitherm", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "wfo", "wfo", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "net_massout", "net_massout", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "net_massin", "net_massin", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 + +# HEAT +"ocean_model", "hfds", "hfds", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "heat_content_surfwater", "heat_content_surfwater", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "hfrainds", "hfrainds", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "hfevapds", "hfevapds", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "hfrunoffds", "hfrunoffds", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "hfsnthermds", "hfsnthermds", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "hfsifrazil", "hfsifrazil", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "hfsithermds", "hfsithermds", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "hfibthermds", "hfibthermds", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "hfsolidrunoffds", "hfsolidrunoffds", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "rlntds", "rlntds", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "hflso", "hflso", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "hfsso", "hfsso", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +"ocean_model", "rsdo", "rsdo", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 + +# SALT +"ocean_model", "sfdsi", "sfdsi", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 +#"ocean_model", "sfriver", "sfriver", "ocean_surf%4yr_%2mo", "all", "mean", "none",2 + + diff --git a/ocean_only/single_column/EPBL_diagscalar/input.nml b/ocean_only/single_column/EPBL_diagscalar/input.nml new file mode 100644 index 0000000000..ba8b4a5fd2 --- /dev/null +++ b/ocean_only/single_column/EPBL_diagscalar/input.nml @@ -0,0 +1,16 @@ + &MOM_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'MOM_input', + 'MOM_override', + 'MOM_override2' / + + &diag_manager_nml + / + + &fms_nml + clock_grain = 'LOOP', + domains_stack_size = 710000, + stack_size = 0 / From ad13bb865722ffaaa4d32bd3699a2ca6b824212a Mon Sep 17 00:00:00 2001 From: Henri Drake Date: Wed, 15 Jan 2025 14:03:22 -0800 Subject: [PATCH 09/12] Higher resolution diagnostic scalar bin --- ocean_only/single_column/EPBL_diagscalar/MOM_input | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ocean_only/single_column/EPBL_diagscalar/MOM_input b/ocean_only/single_column/EPBL_diagscalar/MOM_input index 06bab66748..24b98f4539 100644 --- a/ocean_only/single_column/EPBL_diagscalar/MOM_input +++ b/ocean_only/single_column/EPBL_diagscalar/MOM_input @@ -172,7 +172,7 @@ DIAG_COORDS = "scalar SCALAR SCALAR" ! ! "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". DIAG_COORD_P_REF_SCALAR = 0.0 DIAG_COORD_NEEDS_SORTING_SCALAR = False -DIAG_COORD_DEF_SCALAR = "FILE:targetlayers_scalar.nc,interfaces=interfaces" ! default = "WOA09" +DIAG_COORD_DEF_SCALAR = "FILE:targetlayers_scalar_broad.nc,interfaces=interfaces" ! default = "WOA09" ! Determines how to specify the coordinate resolution. Valid options are: ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO2 ! UNIFORM[:N] - uniformly distributed From 81be2eb5089bcf1a67478ba15ec4363e9e5fd44a Mon Sep 17 00:00:00 2001 From: Henri Drake Date: Tue, 4 Feb 2025 11:28:08 -0800 Subject: [PATCH 10/12] Added scalar target layers for flow_downslope --- .../flow_downslope/common/targetlayers_scalar.nc | Bin 0 -> 8556 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ocean_only/flow_downslope/common/targetlayers_scalar.nc diff --git a/ocean_only/flow_downslope/common/targetlayers_scalar.nc b/ocean_only/flow_downslope/common/targetlayers_scalar.nc new file mode 100644 index 0000000000000000000000000000000000000000..42983e423b9e5d4ed628e0e904736c4043524249 GIT binary patch literal 8556 zcmeI$%a2=U8OQNSI^(&-lq5~lI8D>JdhRp6kMHO4Wo%cPHL4|~QqcrOnaq?rWr2|J zAK(QmL|HVGX|Y%$dBy5@!3NY#Gns%&cX;@XHxJ*v zW2Ywqdb{w$FYsqRzTDuWPxOB7-qFK5@7#U!+jm+xYYjWBXX{M8dvx!iyM)J+Z{7J$ zMbG~a>s(px>l5tozq*UV|My2Y{C~ymi1}Z>XU9+c&;Mh`SN=c2-tzwe_8Wf$7xDiN z_hbKWa9{X;#r0qLf5G`5`9nPKoBki+*Ze=g{n;PjdfPw4`5XSP@%UT*FL6Jg{}kg* zczFENdCy({)N}rIZvfZ#oV(_^e#3L?{lIhU|H54N(f_&Uz8_`JeSbdj-1qBy;>Mei3B2BOxd4AE7x8+Jy(PaKDqU!Tn60hkHl94(G{b zxPV;7`9rx3e$!yDyQp!6}L0`RaNG)uHo5B141sC5qmZMA?h7 z7e()hMA?h77iBNXUX;BkdolK6=sl7cdolK6=p9Ooy%>7x*o(0jL+?=H?8VtbPG3iy zy*PVu_Tuct(aT7jy*PUb^a7G#FM(i266__|OQ5HYy##v+_7dzR*-NsQWG{){nIzdu zvX?~fM3U?!(No7>ioFziCz4_>#a@cN6niQ5QtYMJOQH8b_SoBFZx6k!?6J3po;vpS z*xN%-9eaE1rP)ifmu4@`UYfl$def3-FU?*Wy{D39FN5B+WZ28FmqG8TWZ28Fmtil% zUWUC4ds+6f=slJ!ds+6f=p9Lxy)1g_*vqn)Mej&*?B&?Yv6o{n$6k)T9D6zRa*|^& z$6g-28OgJkM=vLN_VVoI(No7>p1nMKdG-qI71%4VS3vJv3hWiwE1-8O1@;Q)sbjCm zUJ<=hDY92&ugG4Jy&`)>_KNHk(K{B8J&!#Py}WqrdFZKQ&tuO+PaS*i1KhC)dXwTl z=zJ{h1Ht3?!nif`v_0+Wts>8bKI<}BHtgo(XP+gC%Zwsq4W^TaV zkZ$B$$(XuQ(795`xl-7AK~hbLEh8<*;*QV>(}1=nm+bbjEbPa*M7_*P%0}^Od`FJ-R-fF`chG zF!xBxL%NZ3_CFSzuM%{w5^}B*cCKPf=c@?a0bP^M*xf^^wCLJ&9XeyWZlz1tqwCWd z)A=d`x*^@jxvDXpuNri&8gi~0cCKnn=c@|c0bP^Mn9f&inafDEP1m6_rt?+1bUnI0 zoiUxSI-ncUjhx#zHW85hpmX~n=k~+S?Hki|_l53&u1RN1=i6`5wdp!^#&o{@E?tkV zPiIW$+aJ&k=|;}gjOl!}pt&=tg`BH}ovRts`D#LUK-Z)*rt{TWbZxp0ow4^$q}HYD z(e>$!*}4O|A>GKix-p%v9(1lAa;_eBu5L`{s|(!$U6an3&R1{Iwdp!^#&o`V*W3fC z_vrd`#&o{=fNn@Pa?b4t1f&skt`Tys5q7R&ES{ByxL)Icu1RN1*KM@u+H@T{V>(}> zOV^|8(;3tG8Uwl^-N?Duj7r0!qf_vd&Y eVZ4vveqW6D5$ye;`x1D6=>7%XAOH9J2>%7pkzF1D literal 0 HcmV?d00001 From 71620b4656590197ca8954f381f6821cc71fcfb1 Mon Sep 17 00:00:00 2001 From: Henri Drake Date: Tue, 4 Feb 2025 11:47:11 -0800 Subject: [PATCH 11/12] Baltic example with diagnostics in scalar coordinates --- .../INPUT/targetlayers_scalar.nc | Bin 0 -> 8556 bytes .../MOM_input | 587 ++++ .../MOM_override | 6 + .../MOM_override_offline | 20 + .../MOM_override_online | 17 + .../MOM_parameter_doc.all | 2532 +++++++++++++++++ .../MOM_parameter_doc.debugging | 96 + .../MOM_parameter_doc.layout | 69 + .../MOM_parameter_doc.short | 573 ++++ .../README.offline | 80 + .../SIS_input | 104 + .../SIS_override | 1 + .../SIS_parameter_doc.all | 560 ++++ .../SIS_parameter_doc.debugging | 66 + .../SIS_parameter_doc.layout | 53 + .../SIS_parameter_doc.short | 97 + .../analysis.ipynb | 185 ++ .../data_table | 49 + .../diag_table | 420 +++ .../diag_table.original | 71 + .../diag_table_offline | 12 + .../diag_table_online | 25 + .../field_table | 23 + .../input.nml | 75 + .../input.offline.nml | 38 + .../input.online.nml | 75 + .../run_offline.sh | 7 + .../run_online.sh | 13 + .../run_simulation | 1 + .../static_input.nml | 30 + 30 files changed, 5885 insertions(+) create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/INPUT/targetlayers_scalar.nc create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_input create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_override create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_override_offline create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_override_online create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.all create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.debugging create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.layout create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.short create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/README.offline create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_input create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_override create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.all create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.debugging create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.layout create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.short create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/analysis.ipynb create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/data_table create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table.original create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table_offline create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table_online create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/field_table create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/input.nml create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/input.offline.nml create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/input.online.nml create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/run_offline.sh create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/run_online.sh create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/run_simulation create mode 100644 ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/static_input.nml diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/INPUT/targetlayers_scalar.nc b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/INPUT/targetlayers_scalar.nc new file mode 100644 index 0000000000000000000000000000000000000000..42983e423b9e5d4ed628e0e904736c4043524249 GIT binary patch literal 8556 zcmeI$%a2=U8OQNSI^(&-lq5~lI8D>JdhRp6kMHO4Wo%cPHL4|~QqcrOnaq?rWr2|J zAK(QmL|HVGX|Y%$dBy5@!3NY#Gns%&cX;@XHxJ*v zW2Ywqdb{w$FYsqRzTDuWPxOB7-qFK5@7#U!+jm+xYYjWBXX{M8dvx!iyM)J+Z{7J$ zMbG~a>s(px>l5tozq*UV|My2Y{C~ymi1}Z>XU9+c&;Mh`SN=c2-tzwe_8Wf$7xDiN z_hbKWa9{X;#r0qLf5G`5`9nPKoBki+*Ze=g{n;PjdfPw4`5XSP@%UT*FL6Jg{}kg* zczFENdCy({)N}rIZvfZ#oV(_^e#3L?{lIhU|H54N(f_&Uz8_`JeSbdj-1qBy;>Mei3B2BOxd4AE7x8+Jy(PaKDqU!Tn60hkHl94(G{b zxPV;7`9rx3e$!yDyQp!6}L0`RaNG)uHo5B141sC5qmZMA?h7 z7e()hMA?h77iBNXUX;BkdolK6=sl7cdolK6=p9Ooy%>7x*o(0jL+?=H?8VtbPG3iy zy*PVu_Tuct(aT7jy*PUb^a7G#FM(i266__|OQ5HYy##v+_7dzR*-NsQWG{){nIzdu zvX?~fM3U?!(No7>ioFziCz4_>#a@cN6niQ5QtYMJOQH8b_SoBFZx6k!?6J3po;vpS z*xN%-9eaE1rP)ifmu4@`UYfl$def3-FU?*Wy{D39FN5B+WZ28FmqG8TWZ28Fmtil% zUWUC4ds+6f=slJ!ds+6f=p9Lxy)1g_*vqn)Mej&*?B&?Yv6o{n$6k)T9D6zRa*|^& z$6g-28OgJkM=vLN_VVoI(No7>p1nMKdG-qI71%4VS3vJv3hWiwE1-8O1@;Q)sbjCm zUJ<=hDY92&ugG4Jy&`)>_KNHk(K{B8J&!#Py}WqrdFZKQ&tuO+PaS*i1KhC)dXwTl z=zJ{h1Ht3?!nif`v_0+Wts>8bKI<}BHtgo(XP+gC%Zwsq4W^TaV zkZ$B$$(XuQ(795`xl-7AK~hbLEh8<*;*QV>(}1=nm+bbjEbPa*M7_*P%0}^Od`FJ-R-fF`chG zF!xBxL%NZ3_CFSzuM%{w5^}B*cCKPf=c@?a0bP^M*xf^^wCLJ&9XeyWZlz1tqwCWd z)A=d`x*^@jxvDXpuNri&8gi~0cCKnn=c@|c0bP^Mn9f&inafDEP1m6_rt?+1bUnI0 zoiUxSI-ncUjhx#zHW85hpmX~n=k~+S?Hki|_l53&u1RN1=i6`5wdp!^#&o{@E?tkV zPiIW$+aJ&k=|;}gjOl!}pt&=tg`BH}ovRts`D#LUK-Z)*rt{TWbZxp0ow4^$q}HYD z(e>$!*}4O|A>GKix-p%v9(1lAa;_eBu5L`{s|(!$U6an3&R1{Iwdp!^#&o`V*W3fC z_vrd`#&o{=fNn@Pa?b4t1f&skt`Tys5q7R&ES{ByxL)Icu1RN1*KM@u+H@T{V>(}> zOV^|8(;3tG8Uwl^-N?Duj7r0!qf_vd&Y eVZ4vveqW6D5$ye;`x1D6=>7%XAOH9J2>%7pkzF1D literal 0 HcmV?d00001 diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_input b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_input new file mode 100644 index 0000000000..99ed6f5377 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_input @@ -0,0 +1,587 @@ +! This input file provides the adjustable run-time parameters for version 6 of the Modular Ocean Model (MOM6). +! Where appropriate, parameters use usually given in MKS units. + +! This particular file is for the example in ice_ocean_SIS2/Baltic_ALE_Z_offline_tracers. + +! This MOM_input file typically contains only the non-default values that are needed to reproduce this example. +! A full list of parameters for this example can be found in the corresponding MOM_parameter_doc.all file +! which is generated by the model at run-time. + +! === module MOM_domains === +REENTRANT_X = False ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +NIGLOBAL = 23 ! + ! The total number of thickness grid points in the x-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NJGLOBAL = 14 ! + ! The total number of thickness grid points in the y-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +! LAYOUT = 2, 1 ! + ! The processor layout that was actually used. + +! === module MOM === +USE_REGRIDDING = True ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). If False, use the + ! layered isopycnal algorithm. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, interface heights are diffused with a coefficient of KHTH. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. This is only used if + ! THICKNESSDIFFUSE is true. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that is actually used will + ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode + ! or the coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. Ideally DT_THERM should be + ! an integer multiple of DT and less than the forcing or coupling time-step, + ! unless THERMO_SPANS_COUPLING is true, in which case DT_THERM can be an integer + ! multiple of the coupling timestep. By default DT_THERM is set to DT. +DTBT_RESET_PERIOD = 0.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). If DTBT_RESET_PERIOD + ! is negative, DTBT is set based only on information available at + ! initialization. If 0, DTBT will be set every dynamics time step. The default + ! is set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the accumulated heat deficit + ! is returned in the surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice model may ask for more + ! salt than is available and drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a constant. This is only used + ! if ENABLE_THERMODYNAMICS is true. The default value is from the TEOS-10 + ! definition of conservative temperature. +USE_PSURF_IN_EOS = False ! [Boolean] default = True + ! If true, always include the surface pressure contributions in equation of + ! state calculations. +CHECK_BAD_SURFACE_VALS = True ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. + +! === module MOM_fixed_initialization === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for defining the horizontal + ! grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! bbuilder - build topography from list of functions. + ! benchmark - use the benchmark test case topography. + ! Neverworld - use the Neverworld test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a slope and channel configuration for the + ! ISOMIP test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! Kelvin - flat but with rotated land mask. + ! seamount - Gaussian bump for spontaneous motion test case. + ! dumbbell - Sloshing channel with reservoirs on both ends. + ! shelfwave - exponential slope for shelfwave test case. + ! Phillips - ACC-like idealized topography used in the Phillips config. + ! dense - Denmark Strait-like dense water formation and overflow. + ! USER - call a user modified routine. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than MINIMUM_DEPTH is + ! assumed to be land and all fluxes are masked out. If MASKING_DEPTH is + ! specified, then all depths shallower than MINIMUM_DEPTH but deeper than + ! MASKING_DEPTH are rounded to MINIMUM_DEPTH. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +NK = 50 ! [nondim] + ! The number of model layers. + +! === module MOM_EOS === +EQN_OF_STATE = "WRIGHT" ! default = "WRIGHT_FULL" + ! EQN_OF_STATE determines which ocean equation of state should be used. + ! Currently, the valid choices are "LINEAR", "UNESCO", "JACKETT_MCD", "WRIGHT", + ! "WRIGHT_REDUCED", "WRIGHT_FULL", "NEMO", "ROQUET_RHO", "ROQUET_SPV" and + ! "TEOS10". This is only used if USE_EOS is true. + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_ADVECTION_TEST_TRACER = True ! [Boolean] default = False + ! If true, use the advection_test_tracer tracer package. + +! === module ideal_age_example === + +! === module advection_test_tracer === +ADVECTION_TEST_X_ORIGIN = 19.5 ! [same as geoLon] default = 0.0 + ! The x-coordinate of the center of the test-functions. +ADVECTION_TEST_Y_ORIGIN = 60.5 ! [same as geoLat] default = 0.0 + ! The y-coordinate of the center of the test-functions. +ADVECTION_TEST_X_WIDTH = 1.0 ! [same as geoLon] default = 0.0 + ! The x-width of the test-functions. +ADVECTION_TEST_Y_WIDTH = 1.0 ! [same as geoLat] default = 0.0 + ! The y-width of the test-functions. + +! === module MOM_coord_initialization === +COORD_CONFIG = "file" ! default = "none" + ! This specifies how layers are to be defined: + ! ALE or none - used to avoid defining layers in ALE mode + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! BFB - Custom coords for buoyancy-forced basin case + ! based on SST_S, T_BOT and DRHO_DT. + ! linear - linear based on interfaces not layers + ! layer_ref - linear based on layer densities + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "Layer_coord50.nc" ! + ! The file from which the coordinate densities are read. +REMAP_UV_USING_OLD_ALG = True ! [Boolean] default = False + ! If true, uses the old remapping-via-a-delta-z method for remapping u and v. If + ! false, uses the new method that remaps between grids described by an old and + ! new thickness. +REGRIDDING_COORDINATE_MODE = "Z*" ! default = "LAYER" + ! Coordinate mode for vertical regridding. Choose among the following + ! possibilities: LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stretched geopotential z* + ! SIGMA_SHELF_ZSTAR - stretched geopotential z* ignoring shelf + ! SIGMA - terrain following coordinates + ! RHO - continuous isopycnal + ! HYCOM1 - HyCOM-like hybrid coordinate + ! SLIGHT - stretched coordinates above continuous isopycnal + ! ADAPTIVE - optimize for smooth neutral density surfaces +ALE_COORDINATE_CONFIG = "FILE:vgrid.nc,dz" ! default = "UNIFORM" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter ALE_RESOLUTION + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +!ALE_RESOLUTION = 3*10.1, 2*10.2, 10.3, 10.5, 10.7, 10.9, 11.3, 11.7, 12.4, 13.3, 14.6, 16.3, 18.6, 21.7, 25.9, 31.4, 38.5, 47.4, 58.4, 71.3, 86.0, 101.9, 118.1, 134.0, 148.7, 161.6, 172.6, 181.5, 188.6, 194.1, 198.3, 201.4, 203.7, 205.4, 206.7, 207.6, 208.3, 208.7, 209.1, 209.3, 209.5, 209.7, 2*209.8, 2*209.9, 209.0 ! [m] + ! The distribution of vertical resolution for the target + ! grid used for Eulerian-like coordinates. For example, + ! in z-coordinate mode, the parameter is a list of level + ! thicknesses (in m). In sigma-coordinate mode, the list + ! is of non-dimensional fractions of the water column. +REMAPPING_SCHEME = "PPM_H4" ! default = "PLM" + ! This sets the reconstruction scheme used for vertical remapping for all + ! variables. It can be one of the following schemes: PCM (1st-order + ! accurate) + ! PLM (2nd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) + +! === module MOM_state_initialization === +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, initialize the layer thicknesses, temperatures, and salinities from a + ! Z-space file on a latitude-longitude grid. + +! === module MOM_initialize_layers_from_Z === +TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize temperatures (T) and + ! salinities (S). If T and S are not in the same file, TEMP_Z_INIT_FILE and + ! SALT_Z_INIT_FILE must be set. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in SALT_Z_INIT_FILE. +Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. + +! === module MOM_diag_mediator === + +! === module MOM_MEKE === +USE_MEKE = True ! [Boolean] default = False + ! If true, turns on the MEKE scheme which calculates a sub-grid mesoscale eddy + ! kinetic energy budget. +MEKE_GMCOEFF = 1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy into MEKE by the + ! thickness mixing parameterization. If MEKE_GMCOEFF is negative, this + ! conversion is not used or calculated. +MEKE_ALPHA_RHINES = 0.05 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the Rhines scale in the expression for + ! mixing length used in MEKE-derived diffusivity. +MEKE_ALPHA_EADY = 0.05 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the Eady length scale in the + ! expression for mixing length used in MEKE-derived diffusivity. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This allows diagnostics to + ! be created even if the scheme is not used. If KHTR_SLOPE_CFF>0 or + ! KhTh_Slope_Cff>0, this is set to true regardless of what is in the parameter + ! file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away when the first + ! baroclinic deformation radius is well resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away when the first + ! baroclinic deformation radius is well resolved. +USE_STORED_SLOPES = True ! [Boolean] default = False + ! If true, the isopycnal slopes are calculated once and stored for re-use. This + ! uses more memory but avoids calling the equation of state more times than + ! should be necessary. +INTERNAL_WAVE_SPEED_BETTER_EST = False ! [Boolean] default = False + ! If true, use a more robust estimate of the first mode wave speed as the + ! starting point for iterations. + +! === module MOM_set_visc === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each layer proportional to the + ! fraction of the bottom it overlies. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a viscosity of KVBBL if + ! BOTTOMDRAGLAW is not defined, or the thickness over which near-bottom + ! velocities are averaged for the drag law if BOTTOMDRAGLAW is defined but + ! LINEAR_DRAG is not. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with LINEAR_DRAG) or an + ! unresolved velocity that is combined with the resolved velocity to estimate + ! the velocity magnitude. DRAG_BG_VEL is only used when BOTTOMDRAGLAW is + ! defined. +BBL_USE_EOS = True ! [Boolean] default = False + ! If true, use the equation of state in determining the properties of the bottom + ! boundary layer. Otherwise use the layer target potential densities. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be used with + ! BOTTOMDRAGLAW. This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. The molecular value, ~1e-6 + ! m2 s-1, may be used. + +! === module MOM_thickness_diffuse === +KHTH = 600.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. + +! === module MOM_dynamics_split_RK2 === +TIDES = True ! [Boolean] default = False + ! If true, apply tidal momentum forcing. + +! === module MOM_continuity === + +! === module MOM_continuity_PPM === +ETA_TOLERANCE = 1.0E-06 ! [m] default = 2.5E-09 + ! The tolerance for the differences between the barotropic and baroclinic + ! estimates of the sea surface height due to the fluxes through each face. The + ! total tolerance for SSH is 4 times this value. The default is + ! 0.5*NK*ANGSTROM, and this should not be set less than about + ! 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies between the barotropic + ! solution and the sum of the layer thicknesses. + +! === module MOM_CoriolisAdv === +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by the four estimates of + ! (f+rv)v from the four neighboring v-points, and similarly at v-points. This + ! option would have no effect on the SADOURNY Coriolis scheme if it were + ! possible to use centered difference thickness fluxes. + +! === module MOM_tidal_forcing === +TIDE_M2 = True ! [Boolean] default = False + ! If true, apply tidal momentum forcing at the M2 frequency. This is only used + ! if TIDES is true. +TIDE_SAL_SCALAR_VALUE = 0.094 ! [m m-1] + ! The constant of proportionality between sea surface height (really it should + ! be bottom pressure) anomalies and bottom geopotential anomalies. This is only + ! used if TIDES and TIDE_USE_SAL_SCALAR are true. + +! === module MOM_PressureForce === + +! === module MOM_PressureForce_FV === +TIDES_ANSWER_DATE = 20230630 ! default = 99991231 + ! The vintage of self-attraction and loading (SAL) and tidal forcing + ! calculations in Boussinesq mode. Values below 20230701 recover the old answers + ! in which the SAL is part of the tidal forcing calculation. The change is due + ! to a reordered summation and the difference is only at bit level. +MASS_WEIGHT_IN_PRESSURE_GRADIENT = True ! [Boolean] default = False + ! If true, use mass weighting when interpolating T/S for integrals near the + ! bathymetry in AFV pressure gradient calculations. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid spacing to calculate the + ! Laplacian viscosity. The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky and Leith viscosities, and KH. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of the grid spacing to + ! calculate the biharmonic viscosity. The final viscosity is the largest of this + ! scaled viscosity, the Smagorinsky and Leith viscosities, and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy viscosity. +BACKSCATTER_UNDERBOUND = True ! [Boolean] default = False + ! If true, the bounds on the biharmonic viscosity are allowed to increase where + ! the Laplacian viscosity is negative (due to backscatter parameterizations) + ! beyond the largest timestep-dependent stable values of biharmonic viscosity + ! when no Laplacian viscosity is applied. The default is true for historical + ! reasons, but this option probably should not be used because it can contribute + ! to numerical instabilities. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, typically 0.015 - 0.06. + +! === module MOM_vert_friction === +HMIX_FIXED = 0.5 ! [m] + ! The prescribed depth over which the near-surface viscosity and diffusivity are + ! elevated when the bulk mixed layer is not used. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity components are truncated. +CFL_TRUNCATE_RAMP_TIME = 7200.0 ! [s] default = 0.0 + ! The time over which the CFL truncation value is ramped up at the beginning of + ! the run. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the barotropic solver are + ! limited to values that require less than maxCFL_BT_cont to be accommodated. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project out the velocity + ! tendency by 1+BEBT when calculating the transport. The default (false) is to + ! use a predictor continuity step to find the pressure field, and then to do a + ! corrector continuity step using a weighted average of the old and new + ! velocities, with weights of (1-BEBT) and BEBT. +BAROTROPIC_TIDAL_SAL_BUG = False ! [Boolean] default = True + ! If true, the tidal self-attraction and loading anomaly in the barotropic + ! solver has the wrong sign, replicating a long-standing bug with a scalar + ! self-attraction and loading term or the SAL term from a previous simulation. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping uses the forward-backward + ! time-stepping scheme or a backward Euler scheme. BEBT is valid in the range + ! from 0 (for a forward-backward treatment of nonrotating gravity waves) to 1 + ! (for a backward Euler treatment). In practice, BEBT must be greater than about + ! 0.05. +DTBT = -0.95 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with the split explicit time + ! stepping. To set the time step automatically based the maximum stable value + ! use 0, or a negative value gives the fraction of the stable value. Setting + ! DTBT to 0 is the same as setting it to -0.98. The value of DTBT that will + ! actually be used is an integer fraction of DT, rounding down. + +! === module MOM_mixed_layer_restrat === +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying flow is imposed in the + ! mixed layer. Can be used in ALE mode without restriction but in layer mode can + ! only be used if BULKMIXEDLAYER is true. +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to the ratio of the + ! deformation radius to the dominant lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the mesoscale eddy kinetic + ! energy to the large-scale geostrophic kinetic energy or 1 plus the square of + ! the grid spacing over the deformation radius, as detailed by Fox-Kemper et al. + ! (2010) + +! === module MOM_diagnostics === + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ENERGETICS_SFC_PBL = True ! [Boolean] default = False + ! If true, use an implied energetics planetary boundary layer scheme to + ! determine the diffusivity and viscosity in the surface boundary layer. + +! === module MOM_tidal_mixing === +! Vertical Tidal Mixing Parameterization +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to drive diapycnal mixing, + ! along the lines of St. Laurent et al. (2002) and Simmons et al. (2004). +INT_TIDE_DECAY_SCALE = 300.0 ! [m] default = 500.0 + ! The decay scale away from the bottom for tidal TKE with the new coding when + ! INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. The default is 2pi/10 + ! km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with INT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source available to mix above the bottom + ! boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing the tidal amplitude + ! with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale topographic roughness + ! amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling factor for the heat flux read + ! from GEOTHERMAL_FILE, or 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be read, or blank to use a + ! constant heating rate. + +! === module MOM_set_diffusivity === +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the BBL mixing and the other + ! diffusivities. Otherwise, diffusivity from the BBL_mixing is simply added. +USE_LOTW_BBL_DIFFUSIVITY = True ! [Boolean] default = False + ! If true, uses a simple, imprecise but non-coordinate dependent, model of BBL + ! mixing diffusivity based on Law of the Wall. Otherwise, uses the original BBL + ! scheme. +SIMPLE_TKE_TO_KD = True ! [Boolean] default = False + ! If true, uses a simple estimate of Kd/TKE that will work for arbitrary + ! vertical coordinates. If false, calculates Kd/TKE and bounds based on exact + ! energetics for an isopycnal layer-formulation. +LOTW_BBL_ANSWER_DATE = 20190101 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the LOTW_BBL + ! calculations. Values below 20240630 recover the original answers, while + ! higher values use more accurate expressions. This only applies when + ! USE_LOTW_BBL_DIFFUSIVITY is true. + +! === module MOM_bkgnd_mixing === +! Adding static vertical background mixing coefficients +KD = 2.0E-05 ! [m2 s-1] default = 0.0 + ! The background diapycnal diffusivity of density in the interior. Zero or the + ! molecular value, ~1e-7 m2 s-1, may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near surface background + ! diffusivity, as described in Harrison & Hallberg, JPO 2008. +KD_MAX = 0.1 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal diffusivity from TKE-based + ! parameterizations, or a negative value for no limit. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) shear mixing + ! parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to estimate the Richardson + ! number driven mixing. + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine + ! the e-folding depth of incoming short wave radiation. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in the variable CHL_A. It + ! is used when VAR_PEN_SW and CHL_FROM_FILE are true. + +! === module MOM_energetic_PBL === +USE_MLD_ITERATION = False ! [Boolean] default = True + ! A logical that specifies whether or not to use the distance to the bottom of + ! the actively turbulent boundary layer to help set the EPBL length scale. +EPBL_ANSWER_DATE = 20231231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the energetic PBL + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. + ! Values below 20240101 use A**(1./3.) to estimate the cube root of A in several + ! expressions, while higher values use the integer root function cuberoot(A) and + ! therefore can work with scaled variables. + +! === module MOM_opacity === +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PPM:H3" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + ! PPM - Piecewise Parabolic Method (Colella-Woodward) + +! === module MOM_tracer_hor_diff === +KHTR = 600.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. + +! === module MOM_neutral_diffusion === +! This module implements neutral diffusion of tracers +USE_NEUTRAL_DIFFUSION = True ! [Boolean] default = False + ! If true, enables the neutral diffusion module. +NDIFF_ANSWER_DATE = 20240101 ! default = 99991231 + ! The vintage of the order of arithmetic to use for the neutral diffusion. + ! Values of 20240330 or below recover the answers from the original form of the + ! neutral diffusion code, while higher values use mathematically equivalent + ! expressions that recover rotational symmetry. + +! === module MOM_sum_output === +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very large value if the velocity + ! is truncated more than MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +ENERGYSAVEDAYS = 0.5 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the energies of the run and + ! other globally summed diagnostics. + +! === module ocean_model_init === +RESTART_CONTROL = 3 ! default = 1 + ! An integer whose bits encode which restart files are written. Add 2 (bit 1) + ! for a time-stamped file, and odd (bit 0) for a non-time-stamped file. A + ! restart file will be saved at the end of the run segment for any non-negative + ! value. + +! === module MOM_surface_forcing === +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from an input file +GUST_CONST = 0.02 ! [Pa] default = 0.0 + ! The background gustiness in the winds. +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in variable gustiness. + +! Debugging parameters set to non-default values +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations leading to zonal + ! velocity truncations are written. Undefine this for efficiency if this + ! diagnostic is not needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations leading to meridional + ! velocity truncations are written. Undefine this for efficiency if this + ! diagnostic is not needed. diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_override b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_override new file mode 100644 index 0000000000..096e49d08a --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_override @@ -0,0 +1,6 @@ +! Blank file in which we can put "overrides" for parameters +NUM_DIAG_COORDS = 2 +DIAG_COORDS = "z Z ZSTAR", "scalar SCALAR SCALAR" +DIAG_COORD_P_REF_SCALAR = 0.0 +DIAG_COORD_DEF_SCALAR = "FILE:targetlayers_scalar.nc,interfaces=interfaces" +DIAG_COORD_HISTOGRAM_EXTENSIVE_DIAGS_SCALAR = True diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_override_offline b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_override_offline new file mode 100644 index 0000000000..3c47ecfdad --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_override_offline @@ -0,0 +1,20 @@ +! Blank file in which we can put "overrides" for parameters +#override USE_REGRIDDING = True +#override BULKMIXEDLAYER = False +#override COORD_FILE = "Layer_coord50.nc" +#override DIABATIC_FIRST = False +#override PEN_SW_NBANDS = 0 +#override REGRID_TIME_SCALE = 0.0 + +! Related to offline tracer transport +OFFLINE_TRACER_MODE = True +OFFLINEDIR = "ONLINE/" +OFF_SUM_FILE = "00010101.off_sum_1day.nc" +OFF_SNAP_FILE = "00010101.off_snap_1day.nc" +OFF_SURF_FILE = "00010101.off_sum_1day.nc" +OFF_MEAN_FILE = "00010101.off_avg_1day.nc" +START_INDEX = 1 +DT_OFFLINE = 86400.0 +DT_OFFLINE_VERTICAL = 86400.0 +NUM_OFF_ITER = 30 +NUMTIME = 5 diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_override_online b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_override_online new file mode 100644 index 0000000000..550754ce43 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_override_online @@ -0,0 +1,17 @@ +! Blank file in which we can put "overrides" for parameters +NK = 50 +#override USE_REGRIDDING = True +#override BULKMIXEDLAYER = False +#override COORD_FILE = "Layer_coord50.nc" +#override DIABATIC_FIRST = False +#override REGRID_TIME_SCALE = 0.0 + +ALE_COORDINATE_CONFIG = "FILE:vgrid.nc,dz" + +USE_ADVECTION_TEST_TRACER = True +ADVECTION_TEST_X_ORIGIN = 19.5 +ADVECTION_TEST_Y_ORIGIN = 60.5 +ADVECTION_TEST_X_WIDTH = 1.0 +ADVECTION_TEST_Y_WIDTH = 1.0 + + diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.all b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.all new file mode 100644 index 0000000000..ebe788008b --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.all @@ -0,0 +1,2532 @@ +! This file was written by the model and records all non-layout or debugging parameters used at run-time. + +! === module MOM === +SPLIT = True ! [Boolean] default = True + ! Use the split time stepping if true. +SPLIT_RK2B = False ! [Boolean] default = False + ! If true, use a version of the split explicit time stepping scheme that + ! exchanges velocities with step_MOM that have the average barotropic phase over + ! a baroclinic timestep rather than the instantaneous barotropic phase. +CALC_RHO_FOR_SEA_LEVEL = False ! [Boolean] default = False + ! If true, the in-situ density is used to calculate the effective sea level that + ! is returned to the coupler. If false, the Boussinesq parameter RHO_0 is used. +ENABLE_THERMODYNAMICS = True ! [Boolean] default = True + ! If true, Temperature and salinity are used as state variables. +USE_EOS = True ! [Boolean] default = True + ! If true, density is calculated from temperature and salinity with an equation + ! of state. If USE_EOS is true, ENABLE_THERMODYNAMICS must be true as well. +DIABATIC_FIRST = False ! [Boolean] default = False + ! If true, apply diabatic and thermodynamic processes, including buoyancy + ! forcing and mass gain or loss, before stepping the dynamics forward. +USE_CONTEMP_ABSSAL = False ! [Boolean] default = False + ! If true, the prognostics T&S are the conservative temperature and absolute + ! salinity. Care should be taken to convert them to potential temperature and + ! practical salinity before exchanging them with the coupler and/or reporting + ! T&S diagnostics. +ADIABATIC = False ! [Boolean] default = False + ! There are no diapycnal mass fluxes if ADIABATIC is true. This assumes that KD + ! = 0.0 and that there is no buoyancy forcing, but makes the model faster by + ! eliminating subroutine calls. +DO_DYNAMICS = True ! [Boolean] default = True + ! If False, skips the dynamics calls that update u & v, as well as the gravity + ! wave adjustment to h. This may be a fragile feature, but can be useful during + ! development +OFFLINE_TRACER_MODE = False ! [Boolean] default = False + ! If true, barotropic and baroclinic dynamics, thermodynamics are all bypassed + ! with all the fields necessary to integrate the tracer advection and diffusion + ! equation are read in from files stored from a previous integration of the + ! prognostic model. NOTE: This option only used in the ocean_solo_driver. +USE_REGRIDDING = True ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). If False, use the + ! layered isopycnal algorithm. +REMAP_UV_USING_OLD_ALG = True ! [Boolean] default = False + ! If true, uses the old remapping-via-a-delta-z method for remapping u and v. If + ! false, uses the new method that remaps between grids described by an old and + ! new thickness. +REMAP_AUXILIARY_VARS = False ! [Boolean] default = False + ! If true, apply ALE remapping to all of the auxiliary 3-dimensional variables + ! that are needed to reproduce across restarts, similarly to what is already + ! being done with the primary state variables. The default should be changed to + ! true. +BULKMIXEDLAYER = False ! [Boolean] default = False + ! If true, use a Kraus-Turner-like bulk mixed layer with transitional buffer + ! layers. Layers 1 through NKML+NKBL have variable densities. There must be at + ! least NKML+NKBL+1 layers if BULKMIXEDLAYER is true. BULKMIXEDLAYER can not be + ! used with USE_REGRIDDING. The default is influenced by ENABLE_THERMODYNAMICS. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, isopycnal surfaces are diffused with a Laplacian coefficient of KHTH. +APPLY_INTERFACE_FILTER = False ! [Boolean] default = False + ! If true, model interface heights are subjected to a grid-scale dependent + ! spatial smoothing, often with biharmonic filter. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion or interface height smoothing before dynamics. + ! This is only used if THICKNESSDIFFUSE or APPLY_INTERFACE_FILTER is true. +USE_POROUS_BARRIER = False ! [Boolean] default = False + ! If true, use porous barrier to constrain the widths and face areas at the + ! edges of the grid cells. +BATHYMETRY_AT_VEL = False ! [Boolean] default = False + ! If true, there are separate values for the basin depths at velocity points. + ! Otherwise the effects of topography are entirely determined from thickness + ! points. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that is actually used will + ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode + ! or the coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. Ideally DT_THERM should be + ! an integer multiple of DT and less than the forcing or coupling time-step, + ! unless THERMO_SPANS_COUPLING is true, in which case DT_THERM can be an integer + ! multiple of the coupling timestep. By default DT_THERM is set to DT. +THERMO_SPANS_COUPLING = False ! [Boolean] default = False + ! If true, the MOM will take thermodynamic and tracer timesteps that can be + ! longer than the coupling timestep. The actual thermodynamic timestep that is + ! used in this case is the largest integer multiple of the coupling timestep + ! that is less than or equal to DT_THERM. +HMIX_SFC_PROP = 1.0 ! [m] default = 1.0 + ! If BULKMIXEDLAYER is false, HMIX_SFC_PROP is the depth over which to average + ! to find surface properties like SST and SSS or density (but not surface + ! velocities). +HMIX_UV_SFC_PROP = 0.0 ! [m] default = 0.0 + ! If BULKMIXEDLAYER is false, HMIX_UV_SFC_PROP is the depth over which to + ! average to find surface flow properties, SSU, SSV. A non-positive value + ! indicates no averaging. +HFREEZE = -1.0 ! [m] default = -1.0 + ! If HFREEZE > 0, melt potential will be computed. The actual depth over which + ! melt potential is computed will be min(HFREEZE, OBLD), where OBLD is the + ! boundary layer depth. If HFREEZE <= 0 (default), melt potential will not be + ! computed. +INTERPOLATE_P_SURF = False ! [Boolean] default = False + ! If true, linearly interpolate the surface pressure over the coupling time + ! step, using the specified value at the end of the step. +DTBT_RESET_PERIOD = 0.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). If DTBT_RESET_PERIOD + ! is negative, DTBT is set based only on information available at + ! initialization. If 0, DTBT will be set every dynamics time step. The default + ! is set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the accumulated heat deficit + ! is returned in the surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice model may ask for more + ! salt than is available and drive the salinity negative otherwise.) +MIN_SALINITY = 0.0 ! [PPT] default = 0.0 + ! The minimum value of salinity when BOUND_SALINITY=True. +SALINITY_UNDERFLOW = 0.0 ! [PPT] default = 0.0 + ! A tiny value of salinity below which the it is set to 0. For reference, one + ! molecule of salt per square meter of ocean is of order 1e-29 ppt. +TEMPERATURE_UNDERFLOW = 0.0 ! [degC] default = 0.0 + ! A tiny magnitude of temperatures below which they are set to 0. +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a constant. This is only used + ! if ENABLE_THERMODYNAMICS is true. The default value is from the TEOS-10 + ! definition of conservative temperature. +USE_PSURF_IN_EOS = False ! [Boolean] default = True + ! If true, always include the surface pressure contributions in equation of + ! state calculations. +P_REF = 2.0E+07 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the coordinate density. (1 Pa = 1e4 + ! dbar, so 2e7 is commonly used.) This is only used if USE_EOS and + ! ENABLE_THERMODYNAMICS are true. +FIRST_DIRECTION = 0 ! default = 0 + ! An integer that indicates which direction goes first in parts of the code that + ! use directionally split updates, with even numbers (or 0) used for x- first + ! and odd numbers used for y-first. +ALTERNATE_FIRST_DIRECTION = False ! [Boolean] default = False + ! If true, after every dynamic timestep alternate whether the x- or y- direction + ! updates occur first in directionally split parts of the calculation. If this + ! is true, FIRST_DIRECTION applies at the start of a new run or if the next + ! first direction can not be found in the restart file. +CHECK_BAD_SURFACE_VALS = True ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +BAD_VAL_SSH_MAX = 20.0 ! [m] default = 20.0 + ! The value of SSH above which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SSS_MAX = 45.0 ! [PPT] default = 45.0 + ! The value of SSS above which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SST_MAX = 45.0 ! [deg C] default = 45.0 + ! The value of SST above which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SST_MIN = -2.1 ! [deg C] default = -2.1 + ! The value of SST below which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_COLUMN_THICKNESS = 0.0 ! [m] default = 0.0 + ! The value of column thickness below which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true. +DEFAULT_ANSWER_DATE = 99991231 ! default = 99991231 + ! This sets the default value for the various _ANSWER_DATE parameters. +SURFACE_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the expressions for the surface properties. Values below + ! 20190101 recover the answers from the end of 2018, while higher values use + ! updated and more robust forms of the same expressions. +USE_DIABATIC_TIME_BUG = False ! [Boolean] default = False + ! If true, uses the wrong calendar time for diabatic processes, as was done in + ! MOM6 versions prior to February 2018. This is not recommended. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "MOM_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. +WRITE_GEOM = 1 ! default = 1 + ! If =0, never write the geometry and vertical grid files. If =1, write the + ! geometry and vertical grid files only for a new simulation. If =2, always + ! write the geometry and vertical grid files. Other values are invalid. +USE_DBCLIENT = False ! [Boolean] default = False + ! If true, initialize a client to a remote database that can be used for online + ! analysis and machine-learning inference. +ICE_SHELF = False ! [Boolean] default = False + ! If true, enables the ice shelf model. +USE_PARTICLES = False ! [Boolean] default = False + ! If true, use the particles package. +USE_UH_PARTICLES = False ! [Boolean] default = False + ! If true, use the uh velocity in the particles package. +ENSEMBLE_OCEAN = False ! [Boolean] default = False + ! If False, The model is being run in serial mode as a single realization. If + ! True, The current model realization is part of a larger ensemble and at the + ! end of step MOM, we will perform a gather of the ensemble members for + ! statistical evaluation and/or data assimilation. +HOMOGENIZE_FORCINGS = False ! [Boolean] default = False + ! If True, homogenize the forces and fluxes. + +! === module MOM_domains === +REENTRANT_X = False ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = False ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = False ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the domain. With + ! TRIPOLAR_N, NIGLOBAL must be even. +NIGLOBAL = 23 ! + ! The total number of thickness grid points in the x-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NJGLOBAL = 14 ! + ! The total number of thickness grid points in the y-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NIHALO = 4 ! default = 4 + ! The number of halo points on each side in the x-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. +NJHALO = 4 ! default = 4 + ! The number of halo points on each side in the y-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. + +! === module MOM_hor_index === +! Sets the horizontal array index types. + +! === module MOM_grid === +! Parameters providing information about the lateral grid. +REFERENCE_HEIGHT = 0.0 ! [m] default = 0.0 + ! A reference value for geometric height fields, such as bathyT. + +! === module MOM_fixed_initialization === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for defining the horizontal + ! grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = False + ! If true, use older code that incorrectly sets the longitude in some points + ! along the tripolar fold to be off by 360 degrees. +RAD_EARTH = 6.378E+06 ! [m] default = 6.378E+06 + ! The radius of the Earth. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! bbuilder - build topography from list of functions. + ! benchmark - use the benchmark test case topography. + ! Neverworld - use the Neverworld test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a slope and channel configuration for the + ! ISOMIP test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! Kelvin - flat but with rotated land mask. + ! seamount - Gaussian bump for spontaneous motion test case. + ! dumbbell - Sloshing channel with reservoirs on both ends. + ! shelfwave - exponential slope for shelfwave test case. + ! Phillips - ACC-like idealized topography used in the Phillips config. + ! dense - Denmark Strait-like dense water formation and overflow. + ! USER - call a user modified routine. +TOPO_FILE = "topog.nc" ! default = "topog.nc" + ! The file from which the bathymetry is read. +TOPO_VARNAME = "depth" ! default = "depth" + ! The name of the bathymetry variable in TOPO_FILE. +TOPO_EDITS_FILE = "" ! default = "" + ! The file from which to read a list of i,j,z topography overrides. +ALLOW_LANDMASK_CHANGES = False ! [Boolean] default = False + ! If true, allow topography overrides to change land mask. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than MINIMUM_DEPTH is + ! assumed to be land and all fluxes are masked out. If MASKING_DEPTH is + ! specified, then all depths shallower than MINIMUM_DEPTH but deeper than + ! MASKING_DEPTH are rounded to MINIMUM_DEPTH. +MASKING_DEPTH = -9999.0 ! [m] default = -9999.0 + ! The depth below which to mask points as land points, for which all fluxes are + ! zeroed out. MASKING_DEPTH is ignored if it has the special default value. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. + +! === module MOM_open_boundary === +! Controls where open boundaries are located, what kind of boundary condition to impose, and what data to apply, +! if any. +OBC_NUMBER_OF_SEGMENTS = 0 ! default = 0 + ! The number of open boundary segments. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +SUBGRID_TOPO_AT_VEL = False ! [Boolean] default = False + ! If true, use variables from TOPO_AT_VEL_FILE as parameters for porous barrier. +ROTATION = "2omegasinlat" ! default = "2omegasinlat" + ! This specifies how the Coriolis parameter is specified: + ! 2omegasinlat - Use twice the planetary rotation rate + ! times the sine of latitude. + ! betaplane - Use a beta-plane or f-plane. + ! USER - call a user modified routine. +OMEGA = 7.2921E-05 ! [s-1] default = 7.2921E-05 + ! The rotation rate of the earth. +GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = False + ! If true, use an older algorithm to calculate the sine and cosines needed + ! rotate between grid-oriented directions and true north and east. Differences + ! arise at the tripolar fold. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +G_EARTH = 9.8 ! [m s-2] default = 9.8 + ! The gravitational acceleration of the Earth. +RHO_0 = 1035.0 ! [kg m-3] default = 1035.0 + ! The mean ocean density used with BOUSSINESQ true to calculate accelerations + ! and the mass for conservation properties, or with BOUSSINSEQ false to convert + ! some parameters from vertical units of m to kg m-2. +BOUSSINESQ = True ! [Boolean] default = True + ! If true, make the Boussinesq approximation. +ANGSTROM = 1.0E-10 ! [m] default = 1.0E-10 + ! The minimum layer thickness, usually one-Angstrom. +H_TO_M = 1.0 ! [m H-1] default = 1.0 + ! A constant that translates the model's internal units of thickness into m. +NK = 50 ! [nondim] + ! The number of model layers. + +! === module MOM_tracer_registry === + +! === module MOM_EOS === +EQN_OF_STATE = "WRIGHT" ! default = "WRIGHT" + ! EQN_OF_STATE determines which ocean equation of state should be used. + ! Currently, the valid choices are "LINEAR", "UNESCO", "JACKETT_MCD", "WRIGHT", + ! "WRIGHT_REDUCED", "WRIGHT_FULL", "NEMO", "ROQUET_RHO", "ROQUET_SPV" and + ! "TEOS10". This is only used if USE_EOS is true. +USE_WRIGHT_2ND_DERIV_BUG = False ! [Boolean] default = False + ! If true, use a bug in the calculation of the second derivatives of density + ! with temperature and with temperature and pressure that causes some terms to + ! be only 2/3 of what they should be. +EOS_QUADRATURE = False ! [Boolean] default = False + ! If true, always use the generic (quadrature) code code for the integrals of + ! density. +TFREEZE_FORM = "LINEAR" ! default = "LINEAR" + ! TFREEZE_FORM determines which expression should be used for the freezing + ! point. Currently, the valid choices are "LINEAR", "MILLERO_78", "TEOS_POLY", + ! "TEOS10" +TFREEZE_S0_P0 = 0.0 ! [degC] default = 0.0 + ! When TFREEZE_FORM=LINEAR, this is the freezing potential temperature at S=0, + ! P=0. +DTFREEZE_DS = -0.054 ! [degC ppt-1] default = -0.054 + ! When TFREEZE_FORM=LINEAR, this is the derivative of the freezing potential + ! temperature with salinity. +DTFREEZE_DP = 0.0 ! [degC Pa-1] default = 0.0 + ! When TFREEZE_FORM=LINEAR, this is the derivative of the freezing potential + ! temperature with pressure. + +! === module MOM_restart === +PARALLEL_RESTARTFILES = False ! [Boolean] default = False + ! If true, the IO layout is used to group processors that write to the same + ! restart file or each processor writes its own (numbered) restart file. If + ! false, a single restart file is generated combining output from all PEs. +RESTARTFILE = "MOM.res" ! default = "MOM.res" + ! The name-root of the restart file. +MAX_FIELDS = 100 ! default = 100 + ! The maximum number of restart fields that can be used. +RESTART_CHECKSUMS_REQUIRED = True ! [Boolean] default = True + ! If true, require the restart checksums to match and error out otherwise. Users + ! may want to avoid this comparison if for example the restarts are made from a + ! run with a different mask_table than the current run, in which case the + ! checksums will not match and cause crash. +STREAMING_FILTER_M2 = False ! [Boolean] default = False + ! If true, turn on streaming band-pass filter for detecting instantaneous tidal + ! signals. +STREAMING_FILTER_K1 = False ! [Boolean] default = False + ! If true, turn on streaming band-pass filter for detecting instantaneous tidal + ! signals. + +! === module MOM_tracer_flow_control === +USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False + ! If true, use the USER_tracer_example tracer package. +USE_DOME_TRACER = False ! [Boolean] default = False + ! If true, use the DOME_tracer tracer package. +USE_ISOMIP_TRACER = False ! [Boolean] default = False + ! If true, use the ISOMIP_tracer tracer package. +USE_RGC_TRACER = False ! [Boolean] default = False + ! If true, use the RGC_tracer tracer package. +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_REGIONAL_DYES = False ! [Boolean] default = False + ! If true, use the regional_dyes tracer package. +USE_OIL_TRACER = False ! [Boolean] default = False + ! If true, use the oil_tracer tracer package. +USE_ADVECTION_TEST_TRACER = True ! [Boolean] default = False + ! If true, use the advection_test_tracer tracer package. +USE_OCMIP2_CFC = False ! [Boolean] default = False + ! If true, use the MOM_OCMIP2_CFC tracer package. +USE_CFC_CAP = False ! [Boolean] default = False + ! If true, use the MOM_CFC_cap tracer package. +USE_generic_tracer = False ! [Boolean] default = False + ! If true and _USE_GENERIC_TRACER is defined as a preprocessor macro, use the + ! MOM_generic_tracer packages. +USE_PSEUDO_SALT_TRACER = False ! [Boolean] default = False + ! If true, use the pseudo salt tracer, typically run as a diagnostic. +USE_BOUNDARY_IMPULSE_TRACER = False ! [Boolean] default = False + ! If true, use the boundary impulse tracer. +USE_DYED_OBC_TRACER = False ! [Boolean] default = False + ! If true, use the dyed_obc_tracer tracer package. +USE_NW2_TRACERS = False ! [Boolean] default = False + ! If true, use the NeverWorld2 tracers. + +! === module ideal_age_example === +DO_IDEAL_AGE = True ! [Boolean] default = True + ! If true, use an ideal age tracer that is set to 0 age in the boundary layer + ! and ages at unit rate in the interior. +DO_IDEAL_VINTAGE = False ! [Boolean] default = False + ! If true, use an ideal vintage tracer that is set to an exponentially + ! increasing value in the boundary layer and is conserved thereafter. +DO_IDEAL_AGE_DATED = False ! [Boolean] default = False + ! If true, use an ideal age tracer that is everywhere 0 before + ! IDEAL_AGE_DATED_START_YEAR, but the behaves like the standard ideal age tracer + ! - i.e. is set to 0 age in the boundary layer and ages at unit rate in the + ! interior. +DO_BL_RESIDENCE = False ! [Boolean] default = False + ! If true, use a residence tracer that is set to 0 age in the interior and ages + ! at unit rate in the boundary layer. +USE_REAL_BL_DEPTH = False ! [Boolean] default = False + ! If true, the ideal age tracers will use the boundary layer depth diagnosed + ! from the BL or bulkmixedlayer scheme. +AGE_IC_FILE = "" ! default = "" + ! The file in which the age-tracer initial values can be found, or an empty + ! string for internal initialization. +AGE_IC_FILE_IS_Z = False ! [Boolean] default = False + ! If true, AGE_IC_FILE is in depth space, not layer space +TRACERS_MAY_REINIT = False ! [Boolean] default = False + ! If true, tracers may go through the initialization code if they are not found + ! in the restart files. Otherwise it is a fatal error if the tracers are not + ! found in the restart files of a restarted run. + +! === module advection_test_tracer === +ADVECTION_TEST_X_ORIGIN = 19.5 ! [degrees_E] default = 0.0 + ! The x-coordinate of the center of the test-functions. +ADVECTION_TEST_Y_ORIGIN = 60.5 ! [degrees_N] default = 0.0 + ! The y-coordinate of the center of the test-functions. +ADVECTION_TEST_X_WIDTH = 1.0 ! [degrees_E] default = 0.0 + ! The x-width of the test-functions. +ADVECTION_TEST_Y_WIDTH = 1.0 ! [degrees_N] default = 0.0 + ! The y-width of the test-functions. +ADVECTION_TEST_TRACER_IC_FILE = "" ! default = "" + ! The name of a file from which to read the initial conditions for the tracers, + ! or blank to initialize them internally. +SPONGE = False ! [Boolean] default = False + ! If true, sponges may be applied anywhere in the domain. The exact location and + ! properties of those sponges are specified from MOM_initialization.F90. + +! === module MOM_coord_initialization === +COORD_CONFIG = "file" ! default = "none" + ! This specifies how layers are to be defined: + ! ALE or none - used to avoid defining layers in ALE mode + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! BFB - Custom coords for buoyancy-forced basin case + ! based on SST_S, T_BOT and DRHO_DT. + ! linear - linear based on interfaces not layers + ! layer_ref - linear based on layer densities + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +GFS = 9.8 ! [m s-2] default = 9.8 + ! The reduced gravity at the free surface. +COORD_FILE = "Layer_coord50.nc" ! + ! The file from which the coordinate densities are read. +COORD_VAR = "Layer" ! default = "Layer" + ! The variable in COORD_FILE that is to be used for the coordinate densities. +REGRIDDING_COORDINATE_MODE = "Z*" ! default = "LAYER" + ! Coordinate mode for vertical regridding. Choose among the following + ! possibilities: LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stretched geopotential z* + ! SIGMA_SHELF_ZSTAR - stretched geopotential z* ignoring shelf + ! SIGMA - terrain following coordinates + ! RHO - continuous isopycnal + ! SCALAR - any scalar variable ** for diagnostic grids only ** + ! HYCOM1 - HyCOM-like hybrid coordinate + ! HYBGEN - Hybrid coordinate from the Hycom hybgen code + ! ADAPTIVE - optimize for smooth neutral density surfaces +REGRIDDING_COORDINATE_UNITS = "m" ! default = "m" + ! Units of the regridding coordinate. +ALE_COORDINATE_CONFIG = "FILE:vgrid.nc,dz" ! default = "UNIFORM" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter ALE_RESOLUTION + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! WOA09INT[:N] - layers spanned by the WOA09 depths + ! WOA23INT[:N] - layers spanned by the WOA23 depths + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +!ALE_RESOLUTION = 3*10.1, 2*10.2, 10.3, 10.5, 10.7, 10.9, 11.3, 11.7, 12.4, 13.3, 14.6, 16.3, 18.6, 21.7, 25.9, 31.4, 38.5, 47.4, 58.4, 71.3, 86.0, 101.9, 118.1, 134.0, 148.7, 161.6, 172.6, 181.5, 188.6, 194.1, 198.3, 201.4, 203.7, 205.4, 206.7, 207.6, 208.3, 208.7, 209.1, 209.3, 209.5, 209.7, 2*209.8, 2*209.9, 209.0 ! [m] + ! The distribution of vertical resolution for the target + ! grid used for Eulerian-like coordinates. For example, + ! in z-coordinate mode, the parameter is a list of level + ! thicknesses (in m). In sigma-coordinate mode, the list + ! is of non-dimensional fractions of the water column. +MIN_THICKNESS = 0.001 ! [m] default = 0.001 + ! When regridding, this is the minimum layer thickness allowed. +REMAPPING_SCHEME = "PPM_H4" ! default = "PLM" + ! This sets the reconstruction scheme used for vertical remapping for all + ! variables. It can be one of the following schemes: + ! PCM (1st-order accurate) + ! PLM (2nd-order accurate) + ! PLM_HYBGEN (2nd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! PPM_HYBGEN (3rd-order accurate) + ! WENO_HYBGEN (3rd-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +VELOCITY_REMAPPING_SCHEME = "PPM_H4" ! default = "PPM_H4" + ! This sets the reconstruction scheme used for vertical remapping of velocities. + ! By default it is the same as REMAPPING_SCHEME. It can be one of the following + ! schemes: + ! PCM (1st-order accurate) + ! PLM (2nd-order accurate) + ! PLM_HYBGEN (2nd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! PPM_HYBGEN (3rd-order accurate) + ! WENO_HYBGEN (3rd-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +FATAL_CHECK_RECONSTRUCTIONS = False ! [Boolean] default = False + ! If true, cell-by-cell reconstructions are checked for consistency and if + ! non-monotonicity or an inconsistency is detected then a FATAL error is issued. +FATAL_CHECK_REMAPPING = False ! [Boolean] default = False + ! If true, the results of remapping are checked for conservation and new extrema + ! and if an inconsistency is detected then a FATAL error is issued. +REMAP_BOUND_INTERMEDIATE_VALUES = False ! [Boolean] default = False + ! If true, the values on the intermediate grid used for remapping are forced to + ! be bounded, which might not be the case due to round off. +REMAP_BOUNDARY_EXTRAP = False ! [Boolean] default = False + ! If true, values at the interfaces of boundary cells are extrapolated instead + ! of piecewise constant +INIT_BOUNDARY_EXTRAP = False ! [Boolean] default = False + ! If true, values at the interfaces of boundary cells are extrapolated instead + ! of piecewise constant during initialization.Defaults to REMAP_BOUNDARY_EXTRAP. +REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True + ! This selects the remapping algorithm used in OM4 that does not use the full + ! reconstruction for the top- and lower-most sub-layers, but instead assumes + ! they are always vanished (untrue) and so just uses their edge values. We + ! recommend setting this option to false. +REMAPPING_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the expressions and order of arithmetic to use for remapping. + ! Values below 20190101 result in the use of older, less accurate expressions + ! that were in use at the end of 2018. Higher values result in the use of more + ! robust and accurate forms of mathematically equivalent expressions. +PARTIAL_CELL_VELOCITY_REMAP = False ! [Boolean] default = False + ! If true, use partial cell thicknesses at velocity points that are masked out + ! where they extend below the shallower of the neighboring bathymetry for + ! remapping velocity. +REMAP_AFTER_INITIALIZATION = True ! [Boolean] default = True + ! If true, applies regridding and remapping immediately after initialization so + ! that the state is ALE consistent. This is a legacy step and should not be + ! needed if the initialization is consistent with the coordinate mode. +REGRID_TIME_SCALE = 0.0 ! [s] default = 0.0 + ! The time-scale used in blending between the current (old) grid and the target + ! (new) grid. A short time-scale favors the target grid (0. or anything less + ! than DT_THERM) has no memory of the old grid. A very long time-scale makes the + ! model more Lagrangian. +REGRID_FILTER_SHALLOW_DEPTH = 0.0 ! [m] default = 0.0 + ! The depth above which no time-filtering is applied. Above this depth final + ! grid exactly matches the target (new) grid. +REGRID_FILTER_DEEP_DEPTH = 0.0 ! [m] default = 0.0 + ! The depth below which full time-filtering is applied with time-scale + ! REGRID_TIME_SCALE. Between depths REGRID_FILTER_SHALLOW_DEPTH and + ! REGRID_FILTER_SHALLOW_DEPTH the filter weights adopt a cubic profile. +REMAP_VEL_MASK_BBL_THICK = -0.001 ! [m] default = -0.001 + ! A thickness of a bottom boundary layer below which velocities in thin layers + ! are zeroed out after remapping, following practice with Hybgen remapping, or a + ! negative value to avoid such filtering altogether. + +! === module MOM_state_initialization === +FATAL_INCONSISTENT_RESTART_TIME = False ! [Boolean] default = False + ! If true and a time_in value is provided to MOM_initialize_state, verify that + ! the time read from a restart file is the same as time_in, and issue a fatal + ! error if it is not. Otherwise, simply set the time to time_in if present. +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, initialize the layer thicknesses, temperatures, and salinities from a + ! Z-space file on a latitude-longitude grid. + +! === module MOM_initialize_layers_from_Z === +TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize temperatures (T) and + ! salinities (S). If T and S are not in the same file, TEMP_Z_INIT_FILE and + ! SALT_Z_INIT_FILE must be set. +TEMP_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "WOA05_pottemp_salt.nc" + ! The name of the z-space input file used to initialize temperatures, only. +SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "WOA05_pottemp_salt.nc" + ! The name of the z-space input file used to initialize temperatures, only. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in SALT_Z_INIT_FILE. +Z_INIT_HOMOGENIZE = False ! [Boolean] default = False + ! If True, then horizontally homogenize the interpolated initial conditions. +Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. +Z_INIT_REMAPPING_SCHEME = "PPM_IH4" ! default = "PPM_IH4" + ! The remapping scheme to use if using Z_INIT_ALE_REMAPPING is True. +Z_INIT_REMAP_GENERAL = False ! [Boolean] default = False + ! If false, only initializes to z* coordinates. If true, allows initialization + ! directly to general coordinates. +Z_INIT_REMAP_FULL_COLUMN = False ! [Boolean] default = False + ! If false, only reconstructs profiles for valid data points. If true, inserts + ! vanished layers below the valid data. +Z_INIT_REMAP_OLD_ALG = False ! [Boolean] default = False + ! If false, uses the preferred remapping algorithm for initialization. If true, + ! use an older, less robust algorithm for remapping. +TEMP_SALT_INIT_VERTICAL_REMAP_ONLY = False ! [Boolean] default = False + ! If true, initial conditions are on the model horizontal grid. Extrapolation + ! over missing ocean values is done using an ICE-9 procedure with vertical ALE + ! remapping . +Z_INIT_REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True + ! If true, use the OM4 remapping-via-subcells algorithm for initialization. See + ! REMAPPING_USE_OM4_SUBCELLS for more details. We recommend setting this option + ! to false. +HOR_REGRID_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic for horizontal regridding. Dates + ! before 20190101 give the same answers as the code did in late 2018, while + ! later versions add parentheses for rotational symmetry. Dates after 20230101 + ! use reproducing sums for global averages. +LAND_FILL_TEMP = 0.0 ! [degC] default = 0.0 + ! A value to use to fill in ocean temperatures on land points. +LAND_FILL_SALIN = 35.0 ! [ppt] default = 35.0 + ! A value to use to fill in ocean salinities on land points. +HORIZ_INTERP_TOL_TEMP = 0.001 ! [degC] default = 0.001 + ! The tolerance in temperature changes between iterations when interpolating + ! from an input dataset using horiz_interp_and_extrap_tracer. This routine + ! converges slowly, so an overly small tolerance can get expensive. +HORIZ_INTERP_TOL_SALIN = 0.001 ! [ppt] default = 0.001 + ! The tolerance in salinity changes between iterations when interpolating from + ! an input dataset using horiz_interp_and_extrap_tracer. This routine converges + ! slowly, so an overly small tolerance can get expensive. +DEPRESS_INITIAL_SURFACE = False ! [Boolean] default = False + ! If true, depress the initial surface to avoid huge tsunamis when a large + ! surface pressure is applied. +TRIM_IC_FOR_P_SURF = False ! [Boolean] default = False + ! If true, cuts way the top of the column for initial conditions at the depth + ! where the hydrostatic pressure matches the imposed surface pressure which is + ! read from file. +REGRID_ACCELERATE_INIT = False ! [Boolean] default = False + ! If true, runs REGRID_ACCELERATE_ITERATIONS iterations of the regridding + ! algorithm to push the initial grid to be consistent with the initial + ! condition. Useful only for state-based and iterative coordinates. +VELOCITY_CONFIG = "zero" ! default = "zero" + ! A string that determines how the initial velocities are specified for a new + ! run: + ! file - read velocities from the file specified + ! by (VELOCITY_FILE). + ! zero - the fluid is initially at rest. + ! uniform - the flow is uniform (determined by + ! parameters INITIAL_U_CONST and INITIAL_V_CONST). + ! rossby_front - a mixed layer front in thermal wind balance. + ! soliton - Equatorial Rossby soliton. + ! USER - call a user modified routine. +ODA_INCUPD = False ! [Boolean] default = False + ! If true, oda incremental updates will be applied everywhere in the domain. + +! === module MOM_diag_mediator === +NUM_DIAG_COORDS = 2 ! default = 1 + ! The number of diagnostic vertical coordinates to use. For each coordinate, an + ! entry in DIAG_COORDS must be provided. +DIAG_REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True + ! If true, use the OM4 remapping-via-subcells algorithm for diagnostics. See + ! REMAPPING_USE_OM4_SUBCELLS for details. We recommend setting this option to + ! false. +USE_INDEX_DIAGNOSTIC_AXES = False ! [Boolean] default = False + ! If true, use a grid index coordinate convention for diagnostic axes. +DIAG_COORDS = "z Z ZSTAR", "scalar SCALAR SCALAR" ! + ! A list of string tuples associating diag_table modules to a coordinate + ! definition used for diagnostics. Each string is of the form + ! "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". +DIAG_MISVAL = 1.0E+20 ! [various] default = 1.0E+20 + ! Set the default missing value to use for diagnostics. +DIAG_AS_CHKSUM = False ! [Boolean] default = False + ! Instead of writing diagnostics to the diag manager, write a text file + ! containing the checksum (bitcount) of the array. +AVAILABLE_DIAGS_FILE = "available_diags.000000" ! default = "available_diags.000000" + ! A file into which to write a list of all available ocean diagnostics that can + ! be included in a diag_table. +DIAG_COORD_DEF_Z = "WOA09" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_Z + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! WOA09INT[:N] - layers spanned by the WOA09 depths + ! WOA23INT[:N] - layers spanned by the WOA23 depths + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_INTERP_SCHEME_SCALAR = "PPM_H4" ! default = "PPM_H4" + ! This sets the interpolation scheme to use to determine the new grid. These + ! parameters are only relevant when REGRIDDING_COORDINATE_MODE is set to a + ! function of state. Otherwise, it is not used. It can be one of the following + ! schemes: + ! P1M_H2 (2nd-order accurate) + ! P1M_H4 (2nd-order accurate) + ! P1M_IH4 (2nd-order accurate) + ! PLM (2nd-order accurate) + ! PPM_CW (3rd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! P3M_IH4IH3 (4th-order accurate) + ! P3M_IH6IH5 (4th-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +REGRIDDING_ANSWER_DATE = 20181231 ! default = 20181231 + ! The vintage of the expressions and order of arithmetic to use for regridding. + ! Values below 20190101 result in the use of older, less accurate expressions + ! that were in use at the end of 2018. Higher values result in the use of more + ! robust and accurate forms of mathematically equivalent expressions. +DIAG_COORD_DEF_SCALAR = "FILE:targetlayers_scalar.nc,interfaces=interfaces" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_SCALAR + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! WOA09INT[:N] - layers spanned by the WOA09 depths + ! WOA23INT[:N] - layers spanned by the WOA23 depths + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_P_REF_SCALAR = 0.0 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the diagnostic coordinate density. + ! (1 Pa = 1e4 dbar, so 2e7 is commonly used.) This is only used for the RHO + ! coordinate. +DIAG_COORD_REGRID_COMPRESSIBILITY_FRACTION_SCALAR = 0.0 ! [nondim] default = 0.0 + ! When interpolating potential density profiles we can add some artificial + ! compressibility solely to make homogeneous regions appear stratified. +DIAG_COORD_HISTOGRAM_EXTENSIVE_DIAGS_SCALAR = True ! [nondim] default = False + ! If true, extensive diagnostics are remapped using a histogram procedureThis is + ! therefore suitable for coordinates that are non-monotonic in the vertical + ! dimension. This should only be set True for **diagnostic**coordinates. + +! === module MOM_MEKE === +USE_MEKE = True ! [Boolean] default = False + ! If true, turns on the MEKE scheme which calculates a sub-grid mesoscale eddy + ! kinetic energy budget. +MEKE_IN_DYNAMICS = True ! [Boolean] default = True + ! If true, step MEKE forward with the dynamicsotherwise with the tracer + ! timestep. +EKE_SOURCE = "prog" ! default = "prog" + ! Determine the where EKE comes from: + ! 'prog': Calculated solving EKE equation + ! 'file': Read in from a file + ! 'dbclient': Retrieved from ML-database +MEKE_DAMPING = 0.0 ! [s-1] default = 0.0 + ! The local depth-independent MEKE dissipation rate. +MEKE_CD_SCALE = 0.0 ! [nondim] default = 0.0 + ! The ratio of the bottom eddy velocity to the column mean eddy velocity, i.e. + ! sqrt(2*MEKE). This should be less than 1 to account for the surface + ! intensification of MEKE. +MEKE_CB = 25.0 ! [nondim] default = 25.0 + ! A coefficient in the expression for the ratio of bottom projected eddy energy + ! and mean column energy (see Jansen et al. 2015). +MEKE_MIN_GAMMA2 = 1.0E-04 ! [nondim] default = 1.0E-04 + ! The minimum allowed value of gamma_b^2. +MEKE_CT = 50.0 ! [nondim] default = 50.0 + ! A coefficient in the expression for the ratio of barotropic eddy energy and + ! mean column energy (see Jansen et al. 2015). +MEKE_GMCOEFF = 1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy into MEKE by the + ! thickness mixing parameterization. If MEKE_GMCOEFF is negative, this + ! conversion is not used or calculated. +MEKE_GEOMETRIC = False ! [Boolean] default = False + ! If MEKE_GEOMETRIC is true, uses the GM coefficient formulation from the + ! GEOMETRIC framework (Marshall et al., 2012). +MEKE_GEOMETRIC_ALPHA = 0.05 ! [nondim] default = 0.05 + ! The nondimensional coefficient governing the efficiency of the GEOMETRIC + ! thickness diffusion. +MEKE_EQUILIBRIUM_ALT = False ! [Boolean] default = False + ! If true, use an alternative formula for computing the (equilibrium)initial + ! value of MEKE. +MEKE_EQUILIBRIUM_RESTORING = False ! [Boolean] default = False + ! If true, restore MEKE back to its equilibrium value, which is calculated at + ! each time step. +MEKE_FRCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of mean energy into MEKE. If MEKE_FRCOEFF is + ! negative, this conversion is not used or calculated. +MEKE_BHFRCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of mean energy into MEKE by the biharmonic + ! dissipation. If MEKE_bhFRCOEFF is negative, this conversion is not used or + ! calculated. +MEKE_GMECOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of MEKE into mean energy by GME. If + ! MEKE_GMECOEFF is negative, this conversion is not used or calculated. +MEKE_BGSRC = 0.0 ! [W kg-1] default = 0.0 + ! A background energy source for MEKE. +MEKE_KH = -1.0 ! [m2 s-1] default = -1.0 + ! A background lateral diffusivity of MEKE. Use a negative value to not apply + ! lateral diffusion to MEKE. +MEKE_K4 = -1.0 ! [m4 s-1] default = -1.0 + ! A lateral bi-harmonic diffusivity of MEKE. Use a negative value to not apply + ! bi-harmonic diffusion to MEKE. +MEKE_DTSCALE = 1.0 ! [nondim] default = 1.0 + ! A scaling factor to accelerate the time evolution of MEKE. +MEKE_KHCOEFF = 1.0 ! [nondim] default = 1.0 + ! A scaling factor in the expression for eddy diffusivity which is otherwise + ! proportional to the MEKE velocity- scale times an eddy mixing-length. This + ! factor must be >0 for MEKE to contribute to the thickness/ and tracer + ! diffusivity in the rest of the model. +MEKE_USCALE = 0.0 ! [m s-1] default = 0.0 + ! The background velocity that is combined with MEKE to calculate the bottom + ! drag. +MEKE_GM_SRC_ALT = False ! [Boolean] default = False + ! If true, use the GM energy conversion form S^2*N^2*kappa rather than the + ! streamfunction for the MEKE GM source term. +MEKE_VISC_DRAG = True ! [Boolean] default = True + ! If true, use the vertvisc_type to calculate the bottom drag acting on MEKE. +MEKE_KHTH_FAC = 0.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to KhTh. +MEKE_KHTR_FAC = 0.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to KhTr. +MEKE_KHMEKE_FAC = 0.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to Kh for MEKE itself. +MEKE_OLD_LSCALE = False ! [Boolean] default = False + ! If true, use the old formula for length scale which is a function of grid + ! spacing and deformation radius. +MEKE_MIN_LSCALE = False ! [Boolean] default = False + ! If true, use a strict minimum of provided length scales rather than harmonic + ! mean. +MEKE_RD_MAX_SCALE = False ! [Boolean] default = False + ! If true, the length scale used by MEKE is the minimum of the deformation + ! radius or grid-spacing. Only used if MEKE_OLD_LSCALE=True +MEKE_VISCOSITY_COEFF_KU = 0.0 ! [nondim] default = 0.0 + ! If non-zero, is the scaling coefficient in the expression forviscosity used to + ! parameterize harmonic lateral momentum mixing byunresolved eddies represented + ! by MEKE. Can be negative torepresent backscatter from the unresolved eddies. +MEKE_VISCOSITY_COEFF_AU = 0.0 ! [nondim] default = 0.0 + ! If non-zero, is the scaling coefficient in the expression forviscosity used to + ! parameterize biharmonic lateral momentum mixing byunresolved eddies + ! represented by MEKE. Can be negative torepresent backscatter from the + ! unresolved eddies. +MEKE_FIXED_MIXING_LENGTH = 0.0 ! [m] default = 0.0 + ! If positive, is a fixed length contribution to the expression for mixing + ! length used in MEKE-derived diffusivity. +MEKE_FIXED_TOTAL_DEPTH = True ! [Boolean] default = True + ! If true, use the nominal bathymetric depth as the estimate of the time-varying + ! ocean depth. Otherwise base the depth on the total ocean massper unit area. +MEKE_ALPHA_DEFORM = 0.0 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the deformation scale in the + ! expression for mixing length used in MEKE-derived diffusivity. +MEKE_ALPHA_RHINES = 0.05 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the Rhines scale in the expression for + ! mixing length used in MEKE-derived diffusivity. +MEKE_ALPHA_EADY = 0.05 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the Eady length scale in the + ! expression for mixing length used in MEKE-derived diffusivity. +MEKE_ALPHA_FRICT = 0.0 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the frictional arrest scale in the + ! expression for mixing length used in MEKE-derived diffusivity. +MEKE_ALPHA_GRID = 0.0 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the grid-spacing as a scale in the + ! expression for mixing length used in MEKE-derived diffusivity. +MEKE_COLD_START = False ! [Boolean] default = False + ! If true, initialize EKE to zero. Otherwise a local equilibrium solution is + ! used as an initial condition for EKE. +MEKE_BACKSCAT_RO_C = 0.0 ! [nondim] default = 0.0 + ! The coefficient in the Rossby number function for scaling the biharmonic + ! frictional energy source. Setting to non-zero enables the Rossby number + ! function. +MEKE_BACKSCAT_RO_POW = 0.0 ! [nondim] default = 0.0 + ! The power in the Rossby number function for scaling the biharmonic frictional + ! energy source. +MEKE_ADVECTION_FACTOR = 0.0 ! [nondim] default = 0.0 + ! A scale factor in front of advection of eddy energy. Zero turns advection off. + ! Using unity would be normal but other values could accommodate a mismatch + ! between the advecting barotropic flow and the vertical structure of MEKE. +MEKE_TOPOGRAPHIC_BETA = 0.0 ! [nondim] default = 0.0 + ! A scale factor to determine how much topographic beta is weighed in computing + ! beta in the expression of Rhines scale. Use 1 if full topographic beta effect + ! is considered; use 0 if it's completely ignored. +SQG_USE_MEKE = False ! [Boolean] default = False + ! If true, the eddy scale of MEKE is used for the SQG vertical structure +CDRAG = 0.003 ! [nondim] default = 0.003 + ! CDRAG is the drag coefficient relating the magnitude of the velocity field to + ! the bottom stress. +MEKE_CDRAG = 0.003 ! [nondim] default = 0.003 + ! Drag coefficient relating the magnitude of the velocity field to the bottom + ! stress in MEKE. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This allows diagnostics to + ! be created even if the scheme is not used. If KHTR_SLOPE_CFF>0 or + ! KhTh_Slope_Cff>0, this is set to true regardless of what is in the parameter + ! file. +USE_VISBECK = False ! [Boolean] default = False + ! If true, use the Visbeck et al. (1997) formulation for + ! thickness diffusivity. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away when the first + ! baroclinic deformation radius is well resolved. +DEPTH_SCALED_KHTH = False ! [Boolean] default = False + ! If true, KHTH is scaled away when the depth is shallowerthan a reference + ! depth: KHTH = MIN(1,H/H0)**N * KHTH, where H0 is a reference depth, controlled + ! via DEPTH_SCALED_KHTH_H0, and the exponent (N) is controlled via + ! DEPTH_SCALED_KHTH_EXP. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away when the first + ! baroclinic deformation radius is well resolved. +RESOLN_SCALED_KHTR = False ! [Boolean] default = False + ! If true, the epipycnal tracer diffusivity is scaled away when the first + ! baroclinic deformation radius is well resolved. +RESOLN_USE_EBT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic wave speed instead of first baroclinic + ! wave for calculating the resolution fn. +BACKSCAT_EBT_POWER = 0.0 ! [nondim] default = 0.0 + ! Power to raise EBT vertical structure to when backscatter has vertical + ! structure. +BS_USE_SQG_STRUCT = False ! [Boolean] default = False + ! If true, the SQG vertical structure is used for backscatter on the condition + ! that BS_EBT_power=0 +SQG_EXPO = 1.0 ! [nondim] default = 1.0 + ! Nondimensional exponent coeffecient of the SQG mode that is used for the + ! vertical struture of diffusivities. +KHTH_USE_EBT_STRUCT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic structure as the vertical structure of + ! thickness diffusivity. +KHTH_USE_SQG_STRUCT = False ! [Boolean] default = False + ! If true, uses the surface quasigeostrophic structure as the vertical structure + ! of thickness diffusivity. +KHTR_USE_EBT_STRUCT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic structure as the vertical structure of + ! tracer diffusivity. +KHTR_USE_SQG_STRUCT = False ! [Boolean] default = False + ! If true, uses the surface quasigeostrophic structure as the vertical structure + ! of tracer diffusivity. +KD_GL90_USE_EBT_STRUCT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic structure as the vertical structure of + ! diffusivity in the GL90 scheme. +KD_GL90_USE_SQG_STRUCT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic structure as the vertical structure of + ! diffusivity in the GL90 scheme. +KHTH_SLOPE_CFF = 0.0 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula for the interface depth + ! diffusivity +KHTR_SLOPE_CFF = 0.0 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula for the epipycnal tracer + ! diffusivity +USE_STORED_SLOPES = True ! [Boolean] default = False + ! If true, the isopycnal slopes are calculated once and stored for re-use. This + ! uses more memory but avoids calling the equation of state more times than + ! should be necessary. +VERY_SMALL_FREQUENCY = 1.0E-17 ! [s-1] default = 1.0E-17 + ! A miniscule frequency that is used to avoid division by 0. The default value + ! is roughly (pi / (the age of the universe)). +USE_STANLEY_ISO = False ! [Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in isopycnal slope + ! code. +KD_SMOOTH = 1.0E-06 ! [m2 s-1] default = 1.0E-06 + ! A diapycnal diffusivity that is used to interpolate more sensible values of T + ! & S into thin layers. +USE_SIMPLER_EADY_GROWTH_RATE = False ! [Boolean] default = False + ! If true, use a simpler method to calculate the Eady growth rate that avoids + ! division by layer thickness. Recommended. +VARMIX_KTOP = 2 ! [nondim] default = 2 + ! The layer number at which to start vertical integration of S*N for purposes of + ! finding the Eady growth rate. +KH_RES_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A coefficient that determines how KhTh is scaled away if RESOLN_SCALED_... is + ! true, as F = 1 / (1 + (KH_RES_SCALE_COEF*Rd/dx)^KH_RES_FN_POWER). +KH_RES_FN_POWER = 2 ! default = 2 + ! The power of dx/Ld in the Kh resolution function. Any positive integer may be + ! used, although even integers are more efficient to calculate. Setting this + ! greater than 100 results in a step-function being used. +VISC_RES_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A coefficient that determines how Kh is scaled away if RESOLN_SCALED_... is + ! true, as F = 1 / (1 + (KH_RES_SCALE_COEF*Rd/dx)^KH_RES_FN_POWER). This + ! function affects lateral viscosity, Kh, and not KhTh. +VISC_RES_FN_POWER = 2 ! default = 2 + ! The power of dx/Ld in the Kh resolution function. Any positive integer may be + ! used, although even integers are more efficient to calculate. Setting this + ! greater than 100 results in a step-function being used. This function affects + ! lateral viscosity, Kh, and not KhTh. +INTERPOLATE_RES_FN = False ! [Boolean] default = False + ! If true, interpolate the resolution function to the velocity points from the + ! thickness points; otherwise interpolate the wave speed and calculate the + ! resolution function independently at each point. +GILL_EQUATORIAL_LD = True ! [Boolean] default = True + ! If true, uses Gill's definition of the baroclinic equatorial deformation + ! radius, otherwise, if false, use Pedlosky's definition. These definitions + ! differ by a factor of 2 in front of the beta term in the denominator. Gill's + ! is the more appropriate definition. +INTERNAL_WAVE_SPEED_TOL = 0.001 ! [nondim] default = 0.001 + ! The fractional tolerance for finding the wave speeds. +INTERNAL_WAVE_SPEED_MIN = 0.0 ! [m s-1] default = 0.0 + ! A floor in the first mode speed below which 0 used instead. +INTERNAL_WAVE_SPEED_BETTER_EST = False ! [Boolean] default = True + ! If true, use a more robust estimate of the first mode wave speed as the + ! starting point for iterations. +EBT_REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True + ! If true, use the OM4 remapping-via-subcells algorithm for calculating EBT + ! structure. See REMAPPING_USE_OM4_SUBCELLS for details. We recommend setting + ! this option to false. +USE_QG_LEITH_GM = False ! [Boolean] default = False + ! If true, use the QG Leith viscosity as the GM coefficient. + +! === module MOM_set_visc === +SET_VISC_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the set viscosity + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. +BOTTOMDRAGLAW = True ! [Boolean] default = True + ! If true, the bottom stress is calculated with a drag law of the form + ! c_drag*|u|*u. The velocity magnitude may be an assumed value or it may be + ! based on the actual velocity in the bottommost HBBL, depending on LINEAR_DRAG. +DRAG_AS_BODY_FORCE = False ! [Boolean] default = False + ! If true, the bottom stress is imposed as an explicit body force applied over a + ! fixed distance from the bottom, rather than as an implicit calculation based + ! on an enhanced near-bottom viscosity. The thickness of the bottom boundary + ! layer is HBBL. +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each layer proportional to the + ! fraction of the bottom it overlies. +LINEAR_DRAG = False ! [Boolean] default = False + ! If LINEAR_DRAG and BOTTOMDRAGLAW are defined the drag law is + ! cdrag*DRAG_BG_VEL*u. +PRANDTL_TURB = 1.0 ! [nondim] default = 1.0 + ! The turbulent Prandtl number applied to shear instability. +DYNAMIC_VISCOUS_ML = False ! [Boolean] default = False + ! If true, use a bulk Richardson number criterion to determine the mixed layer + ! thickness for viscosity. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a viscosity increased by + ! KV_EXTRA_BBL if BOTTOMDRAGLAW is not defined, or the thickness over which + ! near-bottom velocities are averaged for the drag law if BOTTOMDRAGLAW is + ! defined but LINEAR_DRAG is not. +BBL_USE_TIDAL_BG = False ! [Boolean] default = False + ! Flag to use the tidal RMS amplitude in place of constant background velocity + ! for computing u* in the BBL. This flag is only used when BOTTOMDRAGLAW is true + ! and LINEAR_DRAG is false. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with LINEAR_DRAG) or an + ! unresolved velocity that is combined with the resolved velocity to estimate + ! the velocity magnitude. DRAG_BG_VEL is only used when BOTTOMDRAGLAW is + ! defined. +BBL_USE_EOS = True ! [Boolean] default = True + ! If true, use the equation of state in determining the properties of the bottom + ! boundary layer. Otherwise use the layer target potential densities. The + ! default of this parameter is the value of USE_EOS. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be used with + ! BOTTOMDRAGLAW. This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +HTBL_SHELF_MIN = 0.1 ! [m] default = 0.1 + ! The minimum top boundary layer thickness that can be used with BOTTOMDRAGLAW. + ! This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum near-top + ! viscosity. +HTBL_SHELF = 10.0 ! [m] default = 10.0 + ! The thickness over which near-surface velocities are averaged for the drag law + ! under an ice shelf. By default this is the same as HBBL +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. The molecular value, ~1e-6 + ! m2 s-1, may be used. +KV_BBL_MIN = 1.0E-04 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the bottom boundary layer. +KV_TBL_MIN = 1.0E-04 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the top boundary layer. +CORRECT_BBL_BOUNDS = False ! [Boolean] default = False + ! If true, uses the correct bounds on the BBL thickness and viscosity so that + ! the bottom layer feels the intended drag. +SMAG_CONST_CHANNEL = 0.15 ! [nondim] default = 0.15 + ! The nondimensional Laplacian Smagorinsky constant used in calculating the + ! channel drag if it is enabled. The default is to use the same value as + ! SMAG_LAP_CONST if it is defined, or 0.15 if it is not. The value used is also + ! 0.15 if the specified value is negative. +TRIG_CHANNEL_DRAG_WIDTHS = True ! [Boolean] default = True + ! If true, use trigonometric expressions to determine the fractional open + ! interface lengths for concave topography. +CHANNEL_DRAG_MAX_BBL_THICK = 5.0 ! [m] default = 5.0 + ! The maximum bottom boundary layer thickness over which the channel drag is + ! exerted, or a negative value for no fixed limit, instead basing the BBL + ! thickness on the bottom stress, rotation and stratification. The default is + ! proportional to HBBL if USE_JACKSON_PARAM or DRAG_AS_BODY_FORCE is true. + +! === module MOM_thickness_diffuse === +KHTH = 600.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +READ_KHTH = False ! [Boolean] default = False + ! If true, read a file (given by KHTH_FILE) containing the spatially varying + ! horizontal isopycnal height diffusivity. +KHTH_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. +KHTH_MAX_CFL = 0.8 ! [nondimensional] default = 0.8 + ! The maximum value of the local diffusive CFL ratio that is permitted for the + ! thickness diffusivity. 1.0 is the marginally unstable value in a pure layered + ! model, but much smaller numbers (e.g. 0.1) seem to work better for ALE-based + ! models. +KH_ETA_CONST = 0.0 ! [m2 s-1] default = 0.0 + ! The background horizontal diffusivity of the interface heights (without + ! considering the layer density structure). If diffusive CFL limits are + ! encountered, the diffusivities of the isopycnals and the interfaces heights + ! are scaled back proportionately. +KH_ETA_VEL_SCALE = 0.0 ! [m s-1] default = 0.0 + ! A velocity scale that is multiplied by the grid spacing to give a contribution + ! to the horizontal diffusivity of the interface heights (without considering + ! the layer density structure). +DETANGLE_INTERFACES = False ! [Boolean] default = False + ! If defined add 3-d structured enhanced interface height diffusivities to + ! horizontally smooth jagged layers. +KHTH_SLOPE_MAX = 0.01 ! [nondim] default = 0.01 + ! A slope beyond which the calculated isopycnal slope is not reliable and is + ! scaled away. +KHTH_USE_FGNV_STREAMFUNCTION = False ! [Boolean] default = False + ! If true, use the streamfunction formulation of Ferrari et al., 2010, which + ! effectively emphasizes graver vertical modes by smoothing in the vertical. +USE_STANLEY_GM = False ! [Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in GM code. +USE_KH_IN_MEKE = False ! [Boolean] default = False + ! If true, uses the thickness diffusivity calculated here to diffuse MEKE. +USE_GME = False ! [Boolean] default = False + ! If true, use the GM+E backscatter scheme in association with the Gent and + ! McWilliams parameterization. +USE_GM_WORK_BUG = False ! [Boolean] default = False + ! If true, compute the top-layer work tendency on the u-grid with the incorrect + ! sign, for legacy reproducibility. +STOCH_EOS = False ! [Boolean] default = False + ! If true, stochastic perturbations are applied to the EOS in the PGF. +STANLEY_COEFF = -1.0 ! [nondim] default = -1.0 + ! Coefficient correlating the temperature gradient and SGS T variance. + +! === module MOM_dynamics_split_RK2 === +TIDES = True ! [Boolean] default = False + ! If true, apply tidal momentum forcing. +CALCULATE_SAL = True ! [Boolean] default = True + ! If true, calculate self-attraction and loading. +BE = 0.6 ! [nondim] default = 0.6 + ! If SPLIT is true, BE determines the relative weighting of a 2nd-order + ! Runga-Kutta baroclinic time stepping scheme (0.5) and a backward Euler scheme + ! (1) that is used for the Coriolis and inertial terms. BE may be from 0.5 to + ! 1, but instability may occur near 0.5. BE is also applicable if SPLIT is false + ! and USE_RK2 is true. +BEGW = 0.0 ! [nondim] default = 0.0 + ! If SPLIT is true, BEGW is a number from 0 to 1 that controls the extent to + ! which the treatment of gravity waves is forward-backward (0) or simulated + ! backward Euler (1). 0 is almost always used. If SPLIT is false and USE_RK2 is + ! true, BEGW can be between 0 and 0.5 to damp gravity waves. +SPLIT_BOTTOM_STRESS = False ! [Boolean] default = False + ! If true, provide the bottom stress calculated by the vertical viscosity to the + ! barotropic solver. +BT_USE_LAYER_FLUXES = True ! [Boolean] default = True + ! If true, use the summed layered fluxes plus an adjustment due to the change in + ! the barotropic velocity in the barotropic continuity equation. +STORE_CORIOLIS_ACCEL = True ! [Boolean] default = True + ! If true, calculate the Coriolis accelerations at the end of each timestep for + ! use in the predictor step of the next split RK2 timestep. +FPMIX = False ! [Boolean] default = False + ! If true, apply profiles of momentum flux magnitude and direction +VISC_REM_BUG = True ! [Boolean] default = True + ! If true, visc_rem_[uv] in split mode is incorrectly calculated or accounted + ! for in two places. This parameter controls the defaults of two individual + ! flags, VISC_REM_TIMESTEP_BUG in MOM_dynamics_split_RK2(b) and + ! VISC_REM_BT_WEIGHT_BUG in MOM_barotropic. +VISC_REM_TIMESTEP_BUG = True ! [Boolean] default = True + ! If true, recover a bug that uses dt_pred rather than dt in vertvisc_remnant() + ! at the end of predictor stage for the following continuity() and btstep() + ! calls in the corrector step. Default of this flag is set by VISC_REM_BUG + +! === module MOM_continuity_PPM === +MONOTONIC_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses the Colella and Woodward monotonic limiter. The + ! default (false) is to use a simple positive definite limiter. +SIMPLE_2ND_PPM_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM uses a simple 2nd order (arithmetic mean) + ! interpolation of the edge values. This may give better PV conservation + ! properties. While it formally reduces the accuracy of the continuity solver + ! itself in the strongly advective limit, it does not reduce the overall order + ! of accuracy of the dynamic core. +UPWIND_1ST_CONTINUITY = False ! [Boolean] default = False + ! If true, CONTINUITY_PPM becomes a 1st-order upwind continuity solver. This + ! scheme is highly diffusive but may be useful for debugging or in single-column + ! mode where its minimal stencil is useful. +ETA_TOLERANCE = 1.0E-06 ! [m] default = 2.5E-09 + ! The tolerance for the differences between the barotropic and baroclinic + ! estimates of the sea surface height due to the fluxes through each face. The + ! total tolerance for SSH is 4 times this value. The default is + ! 0.5*NK*ANGSTROM, and this should not be set less than about + ! 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies between the barotropic + ! solution and the sum of the layer thicknesses. +CONT_PPM_AGGRESS_ADJUST = False ! [Boolean] default = False + ! If true, allow the adjusted velocities to have a relative CFL change up to + ! 0.5. +CONT_PPM_VOLUME_BASED_CFL = False ! [Boolean] default = False + ! If true, use the ratio of the open face lengths to the tracer cell areas when + ! estimating CFL numbers. The default is set by CONT_PPM_AGGRESS_ADJUST. +CONTINUITY_CFL_LIMIT = 0.5 ! [nondim] default = 0.5 + ! The maximum CFL of the adjusted velocities. +CONT_PPM_BETTER_ITER = True ! [Boolean] default = True + ! If true, stop corrective iterations using a velocity based criterion and only + ! stop if the iteration is better than all predecessors. +CONT_PPM_USE_VISC_REM_MAX = True ! [Boolean] default = True + ! If true, use more appropriate limiting bounds for corrections in strongly + ! viscous columns. +CONT_PPM_MARGINAL_FACE_AREAS = True ! [Boolean] default = True + ! If true, use the marginal face areas from the continuity solver for use as the + ! weights in the barotropic solver. Otherwise use the transport averaged areas. + +! === module MOM_CoriolisAdv === +NOSLIP = False ! [Boolean] default = False + ! If true, no slip boundary conditions are used; otherwise free slip boundary + ! conditions are assumed. The implementation of the free slip BCs on a C-grid is + ! much cleaner than the no slip BCs. The use of free slip BCs is strongly + ! encouraged, and no slip BCs are not used with the biharmonic viscosity. +CORIOLIS_EN_DIS = False ! [Boolean] default = False + ! If true, two estimates of the thickness fluxes are used to estimate the + ! Coriolis term, and the one that dissipates energy relative to the other one is + ! used. +CORIOLIS_SCHEME = "SADOURNY75_ENERGY" ! default = "SADOURNY75_ENERGY" + ! CORIOLIS_SCHEME selects the discretization for the Coriolis terms. Valid + ! values are: + ! SADOURNY75_ENERGY - Sadourny, 1975; energy cons. + ! ARAKAWA_HSU90 - Arakawa & Hsu, 1990 + ! SADOURNY75_ENSTRO - Sadourny, 1975; enstrophy cons. + ! ARAKAWA_LAMB81 - Arakawa & Lamb, 1981; En. + Enst. + ! ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with + ! Arakawa & Hsu and Sadourny energy +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by the four estimates of + ! (f+rv)v from the four neighboring v-points, and similarly at v-points. This + ! option would have no effect on the SADOURNY Coriolis scheme if it were + ! possible to use centered difference thickness fluxes. +KE_SCHEME = "KE_ARAKAWA" ! default = "KE_ARAKAWA" + ! KE_SCHEME selects the discretization for acceleration due to the kinetic + ! energy gradient. Valid values are: + ! KE_ARAKAWA, KE_SIMPLE_GUDONOV, KE_GUDONOV +PV_ADV_SCHEME = "PV_ADV_CENTERED" ! default = "PV_ADV_CENTERED" + ! PV_ADV_SCHEME selects the discretization for PV advection. Valid values are: + ! PV_ADV_CENTERED - centered (aka Sadourny, 75) + ! PV_ADV_UPWIND1 - upwind, first order + +! === module MOM_self_attr_load === +SAL_USE_BPA = False ! [Boolean] default = False + ! If true, use bottom pressure anomaly to calculate self-attraction and loading + ! (SAL). Otherwise sea surface height anomaly is used, which is only correct for + ! homogenous flow. +SAL_SCALAR_APPROX = True ! [Boolean] default = True + ! If true, use the scalar approximation to calculate self-attraction and + ! loading. +SAL_SCALAR_VALUE = 0.094 ! [m m-1] default = 0.094 + ! The constant of proportionality between sea surface height (really it should + ! be bottom pressure) anomalies and bottom geopotential anomalies. This is only + ! used if USE_SAL_SCALAR is true or USE_PREVIOUS_TIDES is true. +SAL_HARMONICS = False ! [Boolean] default = False + ! If true, use the online spherical harmonics method to calculate + ! self-attraction and loading. + +! === module MOM_tidal_forcing === +TIDE_M2 = True ! [Boolean] default = False + ! If true, apply tidal momentum forcing at the M2 frequency. This is only used + ! if TIDES is true. +TIDE_S2 = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing at the S2 frequency. This is only used + ! if TIDES is true. +TIDE_N2 = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing at the N2 frequency. This is only used + ! if TIDES is true. +TIDE_K2 = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing at the K2 frequency. This is only used + ! if TIDES is true. +TIDE_K1 = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing at the K1 frequency. This is only used + ! if TIDES is true. +TIDE_O1 = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing at the O1 frequency. This is only used + ! if TIDES is true. +TIDE_P1 = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing at the P1 frequency. This is only used + ! if TIDES is true. +TIDE_Q1 = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing at the Q1 frequency. This is only used + ! if TIDES is true. +TIDE_MF = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing at the MF frequency. This is only used + ! if TIDES is true. +TIDE_MM = False ! [Boolean] default = False + ! If true, apply tidal momentum forcing at the MM frequency. This is only used + ! if TIDES is true. +TIDAL_SAL_FROM_FILE = False ! [Boolean] default = False + ! If true, read the tidal self-attraction and loading from input files, + ! specified by TIDAL_INPUT_FILE. This is only used if TIDES is true. +USE_PREVIOUS_TIDES = False ! [Boolean] default = False + ! If true, use the SAL from the previous iteration of the tides to facilitate + ! convergent iteration. This is only used if TIDES is true. +TIDE_REF_DATE = 0, 0, 0 ! default = 0, 0, 0 + ! Year,month,day to use as reference date for tidal forcing. If not specified, + ! defaults to 0. +TIDE_USE_EQ_PHASE = False ! [Boolean] default = False + ! Correct phases by calculating equilibrium phase arguments for TIDE_REF_DATE. +TIDE_M2_FREQ = 1.405189E-04 ! [rad s-1] default = 1.405189E-04 + ! Frequency of the M2 tidal constituent. This is only used if TIDES and TIDE_M2 + ! are true, or if OBC_TIDE_N_CONSTITUENTS > 0 and M2 is in + ! OBC_TIDE_CONSTITUENTS. +TIDE_M2_AMP = 0.242334 ! [m] default = 0.242334 + ! Amplitude of the M2 tidal constituent. This is only used if TIDES and TIDE_M2 + ! are true. +TIDE_M2_PHASE_T0 = 0.0 ! [radians] default = 0.0 + ! Phase of the M2 tidal constituent at time 0. This is only used if TIDES and + ! TIDE_M2 are true. +HA_START_TIME = 0.0 ! [days] default = 0.0 + ! Start time of harmonic analysis, in units of days after the start of the + ! current run segment. Must be smaller than HA_END_TIME, otherwise harmonic + ! analysis will not be performed. If negative, |HA_START_TIME| determines the + ! length of harmonic analysis, and harmonic analysis will start |HA_START_TIME| + ! days before HA_END_TIME, or at the beginning of the run segment, whichever + ! occurs later. +HA_END_TIME = 0.0 ! [days] default = 0.0 + ! End time of harmonic analysis, in units of days after the start of the current + ! run segment. Must be positive and smaller than the length of the currnet run + ! segment, otherwise harmonic analysis will not be performed. +HA_SSH = False ! [Boolean] default = False + ! If true, perform harmonic analysis of sea serface height. +HA_UBT = False ! [Boolean] default = False + ! If true, perform harmonic analysis of zonal barotropic velocity. +HA_VBT = False ! [Boolean] default = False + ! If true, perform harmonic analysis of meridional barotropic velocity. + +! === module MOM_PressureForce === +ANALYTIC_FV_PGF = True ! [Boolean] default = True + ! If true the pressure gradient forces are calculated with a finite volume form + ! that analytically integrates the equations of state in pressure to avoid any + ! possibility of numerical thermobaric instability, as described in Adcroft et + ! al., O. Mod. (2008). + +! === module MOM_PressureForce_FV === +RHO_PGF_REF = 1035.0 ! [kg m-3] default = 1035.0 + ! The reference density that is subtracted off when calculating pressure + ! gradient forces. Its inverse is subtracted off of specific volumes when in + ! non-Boussinesq mode. The default is RHO_0. +TIDES_ANSWER_DATE = 20230630 ! default = 20230630 + ! The vintage of self-attraction and loading (SAL) and tidal forcing + ! calculations. Setting dates before 20230701 recovers old answers (Boussinesq + ! and non-Boussinesq modes) when SAL is part of the tidal forcing calculation. + ! The answer difference is only at bit level and due to a reordered summation. + ! Setting dates before 20250201 recovers answers (Boussinesq mode) that + ! interface heights are modified before pressure force integrals are calculated. +BOUSSINESQ_SAL_TIDES = False ! [Boolean] default = False + ! If true, in Boussinesq mode, use an alternative method to include + ! self-attraction and loading (SAL) and tidal forcings in pressure gradient, in + ! which their gradients are calculated separately, instead of adding + ! geopotential anomalies as corrections to the interface height. This + ! alternative method elimates a baroclinic component of the SAL and tidal + ! forcings. +SSH_IN_EOS_PRESSURE_FOR_PGF = False ! [Boolean] default = False + ! If true, include contributions from the sea surface height in the height-based + ! pressure used in the equation of state calculations for the Boussinesq + ! pressure gradient forces, including adjustments for atmospheric or sea-ice + ! pressure. +MASS_WEIGHT_IN_PRESSURE_GRADIENT = True ! [Boolean] default = False + ! If true, use mass weighting when interpolating T/S for integrals near the + ! bathymetry in FV pressure gradient calculations. +MASS_WEIGHT_IN_PRESSURE_GRADIENT_TOP = False ! [Boolean] default = False + ! If true and MASS_WEIGHT_IN_PRESSURE_GRADIENT is true, use mass weighting when + ! interpolating T/S for integrals near the top of the water column in FV + ! pressure gradient calculations. +CORRECTION_INTXPA = False ! [Boolean] default = False + ! If true, use a correction for surface pressure curvature in intx_pa. +RESET_INTXPA_INTEGRAL = False ! [Boolean] default = False + ! If true, reset INTXPA to match pressures at first nonvanished cell. Includes + ! pressure correction. +USE_INACCURATE_PGF_RHO_ANOM = False ! [Boolean] default = False + ! If true, use a form of the PGF that uses the reference density in an + ! inaccurate way. This is not recommended. +RECONSTRUCT_FOR_PRESSURE = True ! [Boolean] default = True + ! If True, use vertical reconstruction of T & S within the integrals of the FV + ! pressure gradient calculation. If False, use the constant-by-layer algorithm. + ! The default is set by USE_REGRIDDING. +PRESSURE_RECONSTRUCTION_SCHEME = 1 ! default = 1 + ! Order of vertical reconstruction of T/S to use in the integrals within the FV + ! pressure gradient calculation. + ! 0: PCM or no reconstruction. + ! 1: PLM reconstruction. + ! 2: PPM reconstruction. +BOUNDARY_EXTRAPOLATION_PRESSURE = True ! [Boolean] default = True + ! If true, the reconstruction of T & S for pressure in boundary cells is + ! extrapolated, rather than using PCM in these cells. If true, the same order + ! polynomial is used as is used for the interior cells. +USE_STANLEY_PGF = False ! [Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in PGF code. + +! === module MOM_Zanna_Bolton === +USE_ZB2020 = False ! [Boolean] default = False + ! If true, turns on Zanna-Bolton-2020 (ZB) subgrid momentum parameterization of + ! mesoscale eddies. + +! === module MOM_hor_visc === +USE_CONT_THICKNESS = False ! [Boolean] default = False + ! If true, use thickness at velocity points from continuity solver. This option + ! currently only works with split mode. +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH = 0.0 ! [m2 s-1] default = 0.0 + ! The background Laplacian horizontal viscosity. +KH_BG_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum value allowed for Laplacian horizontal viscosity, KH. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid spacing to calculate the + ! Laplacian viscosity. The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky and Leith viscosities, and KH. +KH_SIN_LAT = 0.0 ! [m2 s-1] default = 0.0 + ! The amplitude of a latitudinally-dependent background viscosity of the form + ! KH_SIN_LAT*(SIN(LAT)**KH_PWR_OF_SINE). +SMAGORINSKY_KH = False ! [Boolean] default = False + ! If true, use a Smagorinsky nonlinear eddy viscosity. +LEITH_KH = False ! [Boolean] default = False + ! If true, use a Leith nonlinear eddy viscosity. +RES_SCALE_MEKE_VISC = False ! [Boolean] default = False + ! If true, the viscosity contribution from MEKE is scaled by the resolution + ! function. +BOUND_KH = True ! [Boolean] default = True + ! If true, the Laplacian coefficient is locally limited to be stable. +BETTER_BOUND_KH = True ! [Boolean] default = True + ! If true, the Laplacian coefficient is locally limited to be stable with a + ! better bounding than just BOUND_KH. +EY24_EBT_BS = False ! [Boolean] default = False + ! If true, use the the backscatter scheme (EBT mode with kill switch)developed + ! by Yankovsky et al. (2024). +ANISOTROPIC_VISCOSITY = False ! [Boolean] default = False + ! If true, allow anistropic viscosity in the Laplacian horizontal viscosity. +ADD_LES_VISCOSITY = False ! [Boolean] default = False + ! If true, adds the viscosity from Smagorinsky and Leith to the background + ! viscosity instead of taking the maximum. +BIHARMONIC = True ! [Boolean] default = True + ! If true, use a biharmonic horizontal viscosity. BIHARMONIC may be used with + ! LAPLACIAN. +AH = 0.0 ! [m4 s-1] default = 0.0 + ! The background biharmonic horizontal viscosity. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of the grid spacing to + ! calculate the biharmonic viscosity. The final viscosity is the largest of this + ! scaled viscosity, the Smagorinsky and Leith viscosities, and AH. +AH_TIME_SCALE = 0.0 ! [s] default = 0.0 + ! A time scale whose inverse is multiplied by the fourth power of the grid + ! spacing to calculate biharmonic viscosity. The final viscosity is the largest + ! of all viscosity formulations in use. 0.0 means that it's not used. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy viscosity. +LEITH_AH = False ! [Boolean] default = False + ! If true, use a biharmonic Leith nonlinear eddy viscosity. +USE_LEITHY = False ! [Boolean] default = False + ! If true, use a biharmonic Leith nonlinear eddy viscosity together with a + ! harmonic backscatter. +BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited to be stable. +BETTER_BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited to be stable with a + ! better bounding than just BOUND_AH. +RE_AH = 0.0 ! [nondim] default = 0.0 + ! If nonzero, the biharmonic coefficient is scaled so that the biharmonic + ! Reynolds number is equal to this. +BACKSCATTER_UNDERBOUND = True ! [Boolean] default = True + ! If true, the bounds on the biharmonic viscosity are allowed to increase where + ! the Laplacian viscosity is negative (due to backscatter parameterizations) + ! beyond the largest timestep-dependent stable values of biharmonic viscosity + ! when no Laplacian viscosity is applied. The default is true for historical + ! reasons, but this option probably should not be used because it can contribute + ! to numerical instabilities. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, typically 0.015 - 0.06. +BOUND_CORIOLIS_BIHARM = True ! [Boolean] default = True + ! If true use a viscosity that increases with the square of the velocity shears, + ! so that the resulting viscous drag is of comparable magnitude to the Coriolis + ! terms when the velocity differences between adjacent grid points is + ! 0.5*BOUND_CORIOLIS_VEL. The default is the value of BOUND_CORIOLIS (or + ! false). +BOUND_CORIOLIS_VEL = 6.0 ! [m s-1] default = 6.0 + ! The velocity scale at which BOUND_CORIOLIS_BIHARM causes the biharmonic drag + ! to have comparable magnitude to the Coriolis acceleration. The default is set + ! by MAXVEL. +USE_LAND_MASK_FOR_HVISC = True ! [Boolean] default = True + ! If true, use the land mask for the computation of thicknesses at velocity + ! locations. This eliminates the dependence on arbitrary values over land or + ! outside of the domain. +HORVISC_BOUND_COEF = 0.8 ! [nondim] default = 0.8 + ! The nondimensional coefficient of the ratio of the viscosity bounds to the + ! theoretical maximum for stability without considering other terms. +USE_KH_BG_2D = False ! [Boolean] default = False + ! If true, read a file containing 2-d background harmonic viscosities. The final + ! viscosity is the maximum of the other terms and this background value. +FRICTWORK_BUG = True ! [Boolean] default = True + ! If true, retain an answer-changing bug in calculating the FrictWork, which + ! cancels the h in thickness flux and the h at velocity point. This isnot + ! recommended. + +! === module MOM_vert_friction === +VERT_FRICTION_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the viscous + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use expressions that do not use an arbitrary hard-coded + ! maximum viscous coupling coefficient between layers. Values below 20230601 + ! recover a form of the viscosity within the mixed layer that breaks up the + ! magnitude of the wind stress in some non-Boussinesq cases. +DIRECT_STRESS = False ! [Boolean] default = False + ! If true, the wind stress is distributed over the topmost HMIX_STRESS of fluid + ! (like in HYCOM), and an added mixed layer viscosity or a physically based + ! boundary layer turbulence parameterization is not needed for stability. +FIXED_DEPTH_LOTW_ML = False ! [Boolean] default = False + ! If true, use a Law-of-the-wall prescription for the mixed layer viscosity + ! within a boundary layer that is the lesser of HMIX_FIXED and the total depth + ! of the ocean in a column. +LOTW_VISCOUS_ML_FLOOR = False ! [Boolean] default = False + ! If true, use a Law-of-the-wall prescription to set a lower bound on the + ! viscous coupling between layers within the surface boundary layer, based the + ! distance of interfaces from the surface. This only acts when there are large + ! changes in the thicknesses of successive layers or when the viscosity is set + ! externally and the wind stress has subsequently increased. +VON_KARMAN_CONST = 0.41 ! [nondim] default = 0.41 + ! The value the von Karman constant as used for mixed layer viscosity. +HARMONIC_VISC = False ! [Boolean] default = False + ! If true, use the harmonic mean thicknesses for calculating the vertical + ! viscosity. +HARMONIC_BL_SCALE = 0.0 ! [nondim] default = 0.0 + ! A scale to determine when water is in the boundary layers based solely on + ! harmonic mean thicknesses for the purpose of determining the extent to which + ! the thicknesses used in the viscosities are upwinded. +HMIX_FIXED = 0.5 ! [m] + ! The prescribed depth over which the near-surface viscosity and diffusivity are + ! elevated when the bulk mixed layer is not used. +USE_GL90_IN_SSW = False ! [Boolean] default = False + ! If true, use simpler method to calculate 1/N^2 in GL90 vertical viscosity + ! coefficient. This method is valid in stacked shallow water mode. +KV_ML_INVZ2 = 0.0 ! [m2 s-1] default = 0.0 + ! An extra kinematic viscosity in a mixed layer of thickness HMIX_FIXED, with + ! the actual viscosity scaling as 1/(z*HMIX_FIXED)^2, where z is the distance + ! from the surface, to allow for finite wind stresses to be transmitted through + ! infinitesimally thin surface layers. This is an older option for numerical + ! convenience without a strong physical basis, and its use is now discouraged. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity components are truncated. +CFL_BASED_TRUNCATIONS = True ! [Boolean] default = True + ! If true, base truncations on the CFL number, and not an absolute speed. +CFL_TRUNCATE = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that will cause velocity components to be + ! truncated; instability can occur past 0.5. +CFL_REPORT = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that causes accelerations to be reported; the + ! default is CFL_TRUNCATE. +CFL_TRUNCATE_RAMP_TIME = 7200.0 ! [s] default = 0.0 + ! The time over which the CFL truncation value is ramped up at the beginning of + ! the run. +CFL_TRUNCATE_START = 0.0 ! [nondim] default = 0.0 + ! The start value of the truncation CFL number used when ramping up CFL_TRUNC. +STOKES_MIXING_COMBINED = False ! [Boolean] default = False + ! Flag to use Stokes drift Mixing via the Lagrangian current (Eulerian plus + ! Stokes drift). Still needs work and testing, so not recommended for use. +VEL_UNDERFLOW = 0.0 ! [m s-1] default = 0.0 + ! A negligibly small velocity magnitude below which velocity components are set + ! to 0. A reasonable value might be 1e-30 m/s, which is less than an Angstrom + ! divided by the age of the universe. + +! === module MOM_barotropic === +USE_BT_CONT_TYPE = True ! [Boolean] default = True + ! If true, use a structure with elements that describe effective face areas from + ! the summed continuity solver as a function the barotropic flow in coupling + ! between the barotropic and baroclinic flow. This is only used if SPLIT is + ! true. +INTEGRAL_BT_CONTINUITY = False ! [Boolean] default = False + ! If true, use the time-integrated velocity over the barotropic steps to + ! determine the integrated transports used to update the continuity equation. + ! Otherwise the transports are the sum of the transports based on a series of + ! instantaneous velocities and the BT_CONT_TYPE for transports. This is only + ! valid if USE_BT_CONT_TYPE = True. +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the barotropic solver are + ! limited to values that require less than maxCFL_BT_cont to be accommodated. +BT_CONT_CORR_BOUNDS = True ! [Boolean] default = True + ! If true, and BOUND_BT_CORRECTION is true, use the BT_cont_type variables to + ! set limits determined by MAXCFL_BT_CONT on the CFL number of the velocities + ! that are likely to be driven by the corrective mass fluxes. +ADJUST_BT_CONT = False ! [Boolean] default = False + ! If true, adjust the curve fit to the BT_cont type that is used by the + ! barotropic solver to match the transport about which the flow is being + ! linearized. +GRADUAL_BT_ICS = False ! [Boolean] default = False + ! If true, adjust the initial conditions for the barotropic solver to the values + ! from the layered solution over a whole timestep instead of instantly. This is + ! a decent approximation to the inclusion of sum(u dh_dt) while also correcting + ! for truncation errors. +BT_USE_VISC_REM_U_UH0 = False ! [Boolean] default = False + ! If true, use the viscous remnants when estimating the barotropic velocities + ! that were used to calculate uh0 and vh0. False is probably the better choice. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project out the velocity + ! tendency by 1+BEBT when calculating the transport. The default (false) is to + ! use a predictor continuity step to find the pressure field, and then to do a + ! corrector continuity step using a weighted average of the old and new + ! velocities, with weights of (1-BEBT) and BEBT. +BT_NONLIN_STRESS = False ! [Boolean] default = False + ! If true, use the full depth of the ocean at the start of the barotropic step + ! when calculating the surface stress contribution to the barotropic + ! acclerations. Otherwise use the depth based on bathyT. +DYNAMIC_SURFACE_PRESSURE = False ! [Boolean] default = False + ! If true, add a dynamic pressure due to a viscous ice shelf, for instance. +BT_CORIOLIS_SCALE = 1.0 ! [nondim] default = 1.0 + ! A factor by which the barotropic Coriolis anomaly terms are scaled. +BAROTROPIC_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the expressions in the barotropic solver. Values below 20190101 + ! recover the answers from the end of 2018, while higher values use more + ! efficient or general expressions. +VISC_REM_BT_WEIGHT_BUG = True ! [Boolean] default = True + ! If true, recover a bug in barotropic solver that uses an unnormalized weight + ! function for vertical averages of baroclinic velocity and forcing. Default of + ! this flag is set by VISC_REM_BUG. +BAROTROPIC_TIDAL_SAL_BUG = False ! [Boolean] default = False + ! If true, the tidal self-attraction and loading anomaly in the barotropic + ! solver has the wrong sign, replicating a long-standing bug with a scalar + ! self-attraction and loading term or the SAL term from a previous simulation. +TIDAL_SAL_FLATHER = False ! [Boolean] default = False + ! If true, then apply adjustments to the external gravity wave speed used with + ! the Flather OBC routine consistent with the barotropic solver. This applies to + ! cases with tidal forcing using the scalar self-attraction approximation. The + ! default is currently False in order to retain previous answers but should be + ! set to True for new experiments +SADOURNY = True ! [Boolean] default = True + ! If true, the Coriolis terms are discretized with the Sadourny (1975) energy + ! conserving scheme, otherwise the Arakawa & Hsu scheme is used. If the + ! internal deformation radius is not resolved, the Sadourny scheme should + ! probably be used. +BT_THICK_SCHEME = "FROM_BT_CONT" ! default = "FROM_BT_CONT" + ! A string describing the scheme that is used to set the open face areas used + ! for barotropic transport and the relative weights of the accelerations. Valid + ! values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +BT_STRONG_DRAG = False ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding effects of strong bottom + ! drag, by making it implicit with the barotropic time-step instead of implicit + ! with the baroclinic time-step and dividing by the number of barotropic steps. +BT_LINEAR_WAVE_DRAG = False ! [Boolean] default = False + ! If true, apply a linear drag to the barotropic velocities, using rates set by + ! lin_drag_u & _v divided by the depth of the ocean. This was introduced to + ! facilitate tide modeling. +CLIP_BT_VELOCITY = False ! [Boolean] default = False + ! If true, limit any velocity components that exceed CFL_TRUNCATE. This should + ! only be used as a desperate debugging measure. +MAXCFL_BT_CONT = 0.25 ! [nondim] default = 0.25 + ! The maximum permitted CFL number associated with the barotropic accelerations + ! from the summed velocities times the time-derivatives of thicknesses. +DT_BT_FILTER = -0.25 ! [sec or nondim] default = -0.25 + ! A time-scale over which the barotropic mode solutions are filtered, in seconds + ! if positive, or as a fraction of DT if negative. When used this can never be + ! taken to be longer than 2*dt. Set this to 0 to apply no filtering. +G_BT_EXTRA = 0.0 ! [nondim] default = 0.0 + ! A nondimensional factor by which gtot is enhanced. +SSH_EXTRA = 10.0 ! [m] default = 10.0 + ! An estimate of how much higher SSH might get, for use in calculating the safe + ! external wave speed. The default is the minimum of 10 m or 5% of + ! MAXIMUM_DEPTH. +LINEARIZED_BT_CORIOLIS = True ! [Boolean] default = True + ! If true use the bottom depth instead of the total water column thickness in + ! the barotropic Coriolis term calculations. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping uses the forward-backward + ! time-stepping scheme or a backward Euler scheme. BEBT is valid in the range + ! from 0 (for a forward-backward treatment of nonrotating gravity waves) to 1 + ! (for a backward Euler treatment). In practice, BEBT must be greater than about + ! 0.05. +DTBT = -0.95 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with the split explicit time + ! stepping. To set the time step automatically based the maximum stable value + ! use 0, or a negative value gives the fraction of the stable value. Setting + ! DTBT to 0 is the same as setting it to -0.98. The value of DTBT that will + ! actually be used is an integer fraction of DT, rounding down. +BT_USE_OLD_CORIOLIS_BRACKET_BUG = False ! [Boolean] default = False + ! If True, use an order of operations that is not bitwise rotationally symmetric + ! in the meridional Coriolis term of the barotropic solver. + +! === module MOM_mixed_layer_restrat === +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying flow is imposed in the + ! mixed layer. Can be used in ALE mode without restriction but in layer mode can + ! only be used if BULKMIXEDLAYER is true. +MLE% +USE_BODNER23 = False ! [Boolean] default = False + ! If true, use the Bodner et al., 2023, formulation of the re-stratifying + ! mixed-layer restratification parameterization. This only works in ALE mode. +%MLE +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to the ratio of the + ! deformation radius to the dominant lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the mesoscale eddy kinetic + ! energy to the large-scale geostrophic kinetic energy or 1 plus the square of + ! the grid spacing over the deformation radius, as detailed by Fox-Kemper et al. + ! (2011) +USE_STANLEY_ML = False ! [Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in ML restrat code. +FOX_KEMPER_ML_RESTRAT_COEF2 = 0.0 ! [nondim] default = 0.0 + ! As for FOX_KEMPER_ML_RESTRAT_COEF but used in a second application of the MLE + ! restratification parameterization. +MLE_FRONT_LENGTH = 0.0 ! [m] default = 0.0 + ! If non-zero, is the frontal-length scale used to calculate the upscaling of + ! buoyancy gradients that is otherwise represented by the parameter + ! FOX_KEMPER_ML_RESTRAT_COEF. If MLE_FRONT_LENGTH is non-zero, it is recommended + ! to set FOX_KEMPER_ML_RESTRAT_COEF=1.0. +MLE_USE_PBL_MLD = False ! [Boolean] default = False + ! If true, the MLE parameterization will use the mixed-layer depth provided by + ! the active PBL parameterization. If false, MLE will estimate a MLD based on a + ! density difference with the surface using the parameter MLE_DENSITY_DIFF. +MLE_MLD_DECAY_TIME = 0.0 ! [s] default = 0.0 + ! The time-scale for a running-mean filter applied to the mixed-layer depth used + ! in the MLE restratification parameterization. When the MLD deepens below the + ! current running-mean the running-mean is instantaneously set to the current + ! MLD. +MLE_MLD_DECAY_TIME2 = 0.0 ! [s] default = 0.0 + ! The time-scale for a running-mean filter applied to the filtered mixed-layer + ! depth used in a second MLE restratification parameterization. When the MLD + ! deepens below the current running-mean the running-mean is instantaneously set + ! to the current MLD. +MLE_DENSITY_DIFF = 0.03 ! [kg/m3] default = 0.03 + ! Density difference used to detect the mixed-layer depth used for the + ! mixed-layer eddy parameterization by Fox-Kemper et al. (2011) +MLE_TAIL_DH = 0.0 ! [nondim] default = 0.0 + ! Fraction by which to extend the mixed-layer restratification depth used for a + ! smoother stream function at the base of the mixed-layer. +MLE_MLD_STRETCH = 1.0 ! [nondim] default = 1.0 + ! A scaling coefficient for stretching/shrinking the MLD used in the MLE scheme. + ! This simply multiplies MLD wherever used. +KV_RESTRAT = 0.0 ! [m2 s-1] default = 0.0 + ! A small viscosity that sets a floor on the momentum mixing rate during + ! restratification. If this is positive, it will prevent some possible + ! divisions by zero even if ustar, RESTRAT_USTAR_MIN, and f are all 0. +RESTRAT_USTAR_MIN = 1.45842E-18 ! [m s-1] default = 1.45842E-18 + ! The minimum value of ustar that will be used by the mixed layer + ! restratification module. This can be tiny, but if this is greater than 0, it + ! will prevent divisions by zero when f and KV_RESTRAT are zero. + +! === module MOM_diagnostics === +DIAG_EBT_MONO_N2_COLUMN_FRACTION = 0.0 ! [nondim] default = 0.0 + ! The lower fraction of water column over which N2 is limited as monotonic for + ! the purposes of calculating the equivalent barotropic wave speed. +DIAG_EBT_MONO_N2_DEPTH = -1.0 ! [m] default = -1.0 + ! The depth below which N2 is limited as monotonic for the purposes of + ! calculating the equivalent barotropic wave speed. +INTWAVE_REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True + ! If true, use the OM4 remapping-via-subcells algorithm for calculating EBT + ! structure. See REMAPPING_USE_OM4_SUBCELLS for details. We recommend setting + ! this option to false. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +USE_LEGACY_DIABATIC_DRIVER = True ! [Boolean] default = True + ! If true, use a legacy version of the diabatic subroutine. This is temporary + ! and is needed to avoid change in answers. +ENERGETICS_SFC_PBL = True ! [Boolean] default = False + ! If true, use an implied energetics planetary boundary layer scheme to + ! determine the diffusivity and viscosity in the surface boundary layer. +EPBL_IS_ADDITIVE = True ! [Boolean] default = True + ! If true, the diffusivity from ePBL is added to all other diffusivities. + ! Otherwise, the larger of kappa-shear and ePBL diffusivities are used. +PRANDTL_EPBL = 1.0 ! [nondim] default = 1.0 + ! The Prandtl number used by ePBL to convert vertical diffusivities into + ! viscosities. +INTERNAL_TIDES = False ! [Boolean] default = False + ! If true, use the code that advances a separate set of equations for the + ! internal tide energy density. +MASSLESS_MATCH_TARGETS = True ! [Boolean] default = True + ! If true, the temperature and salinity of massless layers are kept consistent + ! with their target densities. Otherwise the properties of massless layers + ! evolve diffusively to match massive neighboring layers. +AGGREGATE_FW_FORCING = True ! [Boolean] default = True + ! If true, the net incoming and outgoing fresh water fluxes are combined and + ! applied as either incoming or outgoing depending on the sign of the net. If + ! false, the net incoming fresh water flux is added to the model and thereafter + ! the net outgoing is removed from the topmost non-vanished layers of the + ! updated state. +MIX_BOUNDARY_TRACERS = True ! [Boolean] default = True + ! If true, mix the passive tracers in massless layers at the bottom into the + ! interior as though a diffusivity of KD_MIN_TR were operating. +MIX_BOUNDARY_TRACER_ALE = False ! [Boolean] default = False + ! If true and in ALE mode, mix the passive tracers in massless layers at the + ! bottom into the interior as though a diffusivity of KD_MIN_TR were operating. +KD_MIN_TR = 2.0E-06 ! [m2 s-1] default = 2.0E-06 + ! A minimal diffusivity that should always be applied to tracers, especially in + ! massless layers near the bottom. The default is 0.1*KD. +KD_BBL_TR = 0.0 ! [m2 s-1] default = 0.0 + ! A bottom boundary layer tracer diffusivity that will allow for explicitly + ! specified bottom fluxes. The entrainment at the bottom is at least + ! sqrt(Kd_BBL_tr*dt) over the same distance. +TRACER_TRIDIAG = False ! [Boolean] default = False + ! If true, use the passive tracer tridiagonal solver for T and S +MINIMUM_FORCING_DEPTH = 0.001 ! [m] default = 0.001 + ! The smallest depth over which forcing can be applied. This only takes effect + ! when near-surface layers become thin relative to this scale, in which case the + ! forcing tendencies scaled down by distributing the forcing over this depth + ! scale. +EVAP_CFL_LIMIT = 0.8 ! [nondim] default = 0.8 + ! The largest fraction of a layer than can be lost to forcing (e.g. evaporation, + ! sea-ice formation) in one time-step. The unused mass loss is passed down + ! through the column. +MLD_EN_VALS = 25.0, 2500.0, 2.5E+05 ! [J/m2] default = 25.0, 2500.0, 2.5E+05 + ! The energy values used to compute MLDs. If not set (or all set to 0.), the + ! default will overwrite to 25., 2500., 250000. +DIAG_MLD_DENSITY_DIFF = 0.1 ! [kg/m3] default = 0.1 + ! The density difference used to determine a diagnostic mixed layer depth, + ! MLD_user, following the definition of Levitus 1982. The MLD is the depth at + ! which the density is larger than the surface density by the specified amount. +DIAG_DEPTH_SUBML_N2 = 50.0 ! [m] default = 50.0 + ! The distance over which to calculate a diagnostic of the stratification at the + ! base of the mixed layer. + +! === module MOM_CVMix_KPP === +! This is the MOM wrapper to CVMix:KPP +! See http://cvmix.github.io/ +USE_KPP = False ! [Boolean] default = False + ! If true, turns on the [CVMix] KPP scheme of Large et al., 1994, to calculate + ! diffusivities and non-local transport in the OBL. + +! === module MOM_CVMix_conv === +! Parameterization of enhanced mixing due to convection via CVMix +USE_CVMix_CONVECTION = False ! [Boolean] default = False + ! If true, turns on the enhanced mixing due to convection via CVMix. This scheme + ! increases diapycnal diffs./viscs. at statically unstable interfaces. Relevant + ! parameters are contained in the CVMix_CONVECTION% parameter block. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling factor for the heat flux read + ! from GEOTHERMAL_FILE, or 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be read, or blank to use a + ! constant heating rate. +GEOTHERMAL_THICKNESS = 0.1 ! [m] default = 0.1 + ! The thickness over which to apply geothermal heating. +GEOTHERMAL_VARNAME = "geo_heat" ! default = "geo_heat" + ! The name of the geothermal heating variable in GEOTHERMAL_FILE. + +! === module MOM_set_diffusivity === +FLUX_RI_MAX = 0.2 ! [nondim] default = 0.2 + ! The flux Richardson number where the stratification is large enough that N2 > + ! omega2. The full expression for the Flux Richardson number is usually + ! FLUX_RI_MAX*N2/(N2+OMEGA2). +SET_DIFF_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the set diffusivity + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. + +! === module MOM_tidal_mixing === +! Vertical Tidal Mixing Parameterization +USE_CVMix_TIDAL = False ! [Boolean] default = False + ! If true, turns on tidal mixing via CVMix +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to drive diapycnal mixing, + ! along the lines of St. Laurent et al. (2002) and Simmons et al. (2004). +TIDAL_MIXING_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the tidal mixing + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. +INT_TIDE_PROFILE = "STLAURENT_02" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy dissipation with + ! INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-stretched algebraic + ! decay profile. +LEE_WAVE_DISSIPATION = False ! [Boolean] default = False + ! If true, use an lee wave driven dissipation scheme to drive diapycnal mixing, + ! along the lines of Nikurashin (2010) and using the St. Laurent et al. (2002) + ! and Simmons et al. (2004) vertical profile +INT_TIDE_LOWMODE_DISSIPATION = False ! [Boolean] default = False + ! If true, consider mixing due to breaking low modes that have been remotely + ! generated; as with itidal drag on the barotropic tide, use an internal tidal + ! dissipation scheme to drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +INT_TIDE_DECAY_SCALE = 300.0 ! [m] default = 500.0 + ! The decay scale away from the bottom for tidal TKE with the new coding when + ! INT_TIDE_DISSIPATION is used. +MU_ITIDES = 0.2 ! [nondim] default = 0.2 + ! A dimensionless turbulent mixing efficiency used with INT_TIDE_DISSIPATION, + ! often 0.2. +GAMMA_ITIDES = 0.3333 ! [nondim] default = 0.3333 + ! The fraction of the internal tidal energy that is dissipated locally with + ! INT_TIDE_DISSIPATION. THIS NAME COULD BE BETTER. +MIN_ZBOT_ITIDES = 0.0 ! [m] default = 0.0 + ! Turn off internal tidal dissipation when the total ocean depth is less than + ! this value. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. The default is 2pi/10 + ! km, as in St.Laurent et al. 2002. +UTIDE = 0.0 ! [m s-1] default = 0.0 + ! The constant tidal amplitude used with INT_TIDE_DISSIPATION. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with INT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source available to mix above the bottom + ! boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing the tidal amplitude + ! with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tideamp.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying tidal amplitudes with + ! INT_TIDE_DISSIPATION. +TIDEAMP_VARNAME = "tideamp" ! default = "tideamp" + ! The name of the tidal amplitude variable in the input file. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale topographic roughness + ! amplitude with INT_TIDE_DISSIPATION. +ROUGHNESS_VARNAME = "h2" ! default = "h2" + ! The name in the input file of the squared sub-grid-scale topographic roughness + ! amplitude variable. +FRACTIONAL_ROUGHNESS_MAX = 0.1 ! [nondim] default = 0.1 + ! The maximum topographic roughness amplitude as a fraction of the mean depth, + ! or a negative value for no limitations on roughness. +ML_RADIATION = False ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind work to penetrate below + ! the base of the mixed layer with a vertical decay scale determined by the + ! minimum of: (1) The depth of the mixed layer, (2) an Ekman length scale. +BBL_EFFIC = 0.2 ! [nondim] default = 0.2 + ! The efficiency with which the energy extracted by bottom drag drives BBL + ! diffusion. This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_MAX_DECAY = 200.0 ! [m] default = 200.0 + ! The maximum decay scale for the BBL diffusion, or 0 to allow the mixing to + ! penetrate as far as stratification and rotation permit. The default for now + ! is 200 m. This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the BBL mixing and the other + ! diffusivities. Otherwise, diffusivity from the BBL_mixing is simply added. +USE_LOTW_BBL_DIFFUSIVITY = True ! [Boolean] default = False + ! If true, uses a simple, imprecise but non-coordinate dependent, model of BBL + ! mixing diffusivity based on Law of the Wall. Otherwise, uses the original BBL + ! scheme. +LOTW_BBL_USE_OMEGA = True ! [Boolean] default = True + ! If true, use the maximum of Omega and N for the TKE to diffusion calculation. + ! Otherwise, N is N. +VON_KARMAN_BBL = 0.41 ! [nondim] default = 0.41 + ! The value the von Karman constant as used in calculating the BBL diffusivity. +LOTW_BBL_ANSWER_DATE = 20190101 ! default = 20190101 + ! The vintage of the order of arithmetic and expressions in the LOTW_BBL + ! calculations. Values below 20240630 recover the original answers, while + ! higher values use more accurate expressions. This only applies when + ! USE_LOTW_BBL_DIFFUSIVITY is true. +DZ_BBL_AVG_MIN = 0.0 ! [m] default = 0.0 + ! A minimal distance over which to average to determine the average bottom + ! boundary layer density. +SIMPLE_TKE_TO_KD = True ! [Boolean] default = False + ! If true, uses a simple estimate of Kd/TKE that will work for arbitrary + ! vertical coordinates. If false, calculates Kd/TKE and bounds based on exact + ! energetics for an isopycnal layer-formulation. + +! === module MOM_bkgnd_mixing === +! Adding static vertical background mixing coefficients +KD = 2.0E-05 ! [m2 s-1] default = 0.0 + ! The background diapycnal diffusivity of density in the interior. Zero or the + ! molecular value, ~1e-7 m2 s-1, may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +BRYAN_LEWIS_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, use a Bryan & Lewis (JGR 1979) like tanh profile of background + ! diapycnal diffusivity with depth. This is done via CVMix. +HORIZ_VARYING_BACKGROUND = False ! [Boolean] default = False + ! If true, apply vertically uniform, latitude-dependent background diffusivity, + ! as described in Danabasoglu et al., 2012 +PRANDTL_BKGND = 1.0 ! [nondim] default = 1.0 + ! Turbulent Prandtl number used to convert vertical background diffusivities + ! into viscosities. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near surface background + ! diffusivity, as described in Harrison & Hallberg, JPO 2008. +HENYEY_N0_2OMEGA = 20.0 ! [nondim] default = 20.0 + ! The ratio of the typical Buoyancy frequency to twice the Earth's rotation + ! period, used with the Henyey scaling from the mixing. +HENYEY_MAX_LAT = 95.0 ! [degN] default = 95.0 + ! A latitude poleward of which the Henyey profile is returned to the minimum + ! diffusivity +KD_TANH_LAT_FN = False ! [Boolean] default = False + ! If true, use a tanh dependence of Kd_sfc on latitude, like CM2.1/CM2M. There + ! is no physical justification for this form, and it can not be used with + ! HENYEY_IGW_BACKGROUND. +KD_MAX = 0.1 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal diffusivity from TKE-based + ! parameterizations, or a negative value for no limit. +KD_ADD = 0.0 ! [m2 s-1] default = 0.0 + ! A uniform diapycnal diffusivity that is added everywhere without any filtering + ! or scaling. +USER_CHANGE_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, call user-defined code to change the diffusivity. +DISSIPATION_MIN = 0.0 ! [W m-3] default = 0.0 + ! The minimum dissipation by which to determine a lower bound of Kd (a floor). +DISSIPATION_N0 = 0.0 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression used to set a minimum + ! dissipation by which to determine a lower bound of Kd (a floor): A in eps_min + ! = A + B*N. +DISSIPATION_N1 = 0.0 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to set a minimum + ! dissipation by which to determine a lower bound of Kd (a floor): B in eps_min + ! = A + B*N +DISSIPATION_KD_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum vertical diffusivity applied as a floor. +DOUBLE_DIFFUSION = False ! [Boolean] default = False + ! If true, increase diffusivites for temperature or salinity based on the + ! double-diffusive parameterization described in Large et al. (1994). + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) shear mixing + ! parameterization. +VERTEX_SHEAR = False ! [Boolean] default = False + ! If true, do the calculations of the shear-driven mixing at the cell vertices + ! (i.e., the vorticity points). +RINO_CRIT = 0.25 ! [nondim] default = 0.25 + ! The critical Richardson number for shear mixing. +SHEARMIX_RATE = 0.089 ! [nondim] default = 0.089 + ! A nondimensional rate scale for shear-driven entrainment. Jackson et al find + ! values in the range of 0.085-0.089. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to estimate the Richardson + ! number driven mixing. +KD_KAPPA_SHEAR_0 = 2.0E-05 ! [m2 s-1] default = 2.0E-05 + ! The background diffusivity that is used to smooth the density and shear + ! profiles before solving for the diffusivities. The default is the greater of + ! KD and 1e-7 m2 s-1. +KD_SEED_KAPPA_SHEAR = 1.0 ! [m2 s-1] default = 1.0 + ! A moderately large seed value of diapycnal diffusivity that is used as a + ! starting turbulent diffusivity in the iterations to find an energetically + ! constrained solution for the shear-driven diffusivity. +KD_TRUNC_KAPPA_SHEAR = 2.0E-07 ! [m2 s-1] default = 2.0E-07 + ! The value of shear-driven diffusivity that is considered negligible and is + ! rounded down to 0. The default is 1% of KD_KAPPA_SHEAR_0. +FRI_CURVATURE = -0.97 ! [nondim] default = -0.97 + ! The nondimensional curvature of the function of the Richardson number in the + ! kappa source term in the Jackson et al. scheme. +TKE_N_DECAY_CONST = 0.24 ! [nondim] default = 0.24 + ! The coefficient for the decay of TKE due to stratification (i.e. proportional + ! to N*tke). The values found by Jackson et al. are 0.24-0.28. +TKE_SHEAR_DECAY_CONST = 0.14 ! [nondim] default = 0.14 + ! The coefficient for the decay of TKE due to shear (i.e. proportional to + ! |S|*tke). The values found by Jackson et al. are 0.14-0.12. +KAPPA_BUOY_SCALE_COEF = 0.82 ! [nondim] default = 0.82 + ! The coefficient for the buoyancy length scale in the kappa equation. The + ! values found by Jackson et al. are in the range of 0.81-0.86. +KAPPA_N_OVER_S_SCALE_COEF2 = 0.0 ! [nondim] default = 0.0 + ! The square of the ratio of the coefficients of the buoyancy and shear scales + ! in the diffusivity equation, Set this to 0 (the default) to eliminate the + ! shear scale. This is only used if USE_JACKSON_PARAM is true. +LZ_RESCALE = 1.0 ! [nondim] default = 1.0 + ! A coefficient to rescale the distance to the nearest solid boundary. This + ! adjustment is to account for regions where 3 dimensional turbulence prevents + ! the growth of shear instabilies [nondim]. +KAPPA_SHEAR_TOL_ERR = 0.1 ! [nondim] default = 0.1 + ! The fractional error in kappa that is tolerated. Iteration stops when changes + ! between subsequent iterations are smaller than this everywhere in a column. + ! The peak diffusivities usually converge most rapidly, and have much smaller + ! errors than this. +TKE_BACKGROUND = 0.0 ! [m2 s-2] default = 0.0 + ! A background level of TKE used in the first iteration of the kappa equation. + ! TKE_BACKGROUND could be 0. +KAPPA_SHEAR_ELIM_MASSLESS = True ! [Boolean] default = True + ! If true, massless layers are merged with neighboring massive layers in this + ! calculation. The default is true and I can think of no good reason why it + ! should be false. This is only used if USE_JACKSON_PARAM is true. +MAX_KAPPA_SHEAR_IT = 13 ! default = 13 + ! The maximum number of iterations that may be used to estimate the + ! time-averaged diffusivity. +KAPPA_SHEAR_MAX_KAP_SRC_CHG = 10.0 ! [nondim] default = 10.0 + ! The maximum permitted increase in the kappa source within an iteration + ! relative to the local source; this must be greater than 1. The lower limit + ! for the permitted fractional decrease is (1 - 0.5/kappa_src_max_chg). These + ! limits could perhaps be made dynamic with an improved iterative solver. +KAPPA_SHEAR_ITER_BUG = False ! [Boolean] default = False + ! If true, use an older, dimensionally inconsistent estimate of the derivative + ! of diffusivity with energy in the Newton's method iteration. The bug causes + ! undercorrections when dz > 1 m. +KAPPA_SHEAR_ALL_LAYER_TKE_BUG = False ! [Boolean] default = False + ! If true, report back the latest estimate of TKE instead of the time average + ! TKE when there is mass in all layers. Otherwise always report the time + ! averaged TKE, as is currently done when there are some massless layers. +USE_RESTRICTIVE_TOLERANCE_CHECK = False ! [Boolean] default = False + ! If true, uses the more restrictive tolerance check to determine if a timestep + ! is acceptable for the KS_it outer iteration loop. False uses the original + ! less restrictive check. + +! === module MOM_CVMix_shear === +! Parameterization of shear-driven turbulence via CVMix (various options) +USE_LMD94 = False ! [Boolean] default = False + ! If true, use the Large-McWilliams-Doney (JGR 1994) shear mixing + ! parameterization. +USE_PP81 = False ! [Boolean] default = False + ! If true, use the Pacanowski and Philander (JPO 1981) shear mixing + ! parameterization. + +! === module MOM_CVMix_ddiff === +! Parameterization of mixing due to double diffusion processes via CVMix +USE_CVMIX_DDIFF = False ! [Boolean] default = False + ! If true, turns on double diffusive processes via CVMix. Note that double + ! diffusive processes on viscosity are ignored in CVMix, see + ! http://cvmix.github.io/ for justification. + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +RECLAIM_FRAZIL = True ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any overlying layers down + ! to the freezing point, thereby avoiding the creation of thin ice when the SST + ! is above the freezing point. +SALT_EXTRACTION_LIMIT = 0.9999 ! [nondim] default = 0.9999 + ! An upper limit on the fraction of the salt in a layer that can be lost to the + ! net surface salt fluxes within a timestep. +PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False + ! If true, use a pressure dependent freezing temperature when making frazil. The + ! default is false, which will be faster but is inappropriate with ice-shelf + ! cavities. +IGNORE_FLUXES_OVER_LAND = False ! [Boolean] default = False + ! If true, the model does not check if fluxes are being applied over land + ! points. This is needed when the ocean is coupled with ice shelves and sea ice, + ! since the sea ice mask needs to be different than the ocean mask to avoid sea + ! ice formation under ice shelves. This flag only works when use_ePBL = True. +DO_RIVERMIX = False ! [Boolean] default = False + ! If true, apply additional mixing wherever there is runoff, so that it is mixed + ! down to RIVERMIX_DEPTH if the ocean is that deep. +USE_RIVER_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%runoff_Hflx field to set the heat carried by runoff, + ! instead of using SST*CP*liq_runoff. +USE_CALVING_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%calving_Hflx field to set the heat carried by runoff, + ! instead of using SST*CP*froz_runoff. +DO_BRINE_PLUME = False ! [Boolean] default = False + ! If true, use a brine plume parameterization from Nguyen et al., 2009. +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine + ! the e-folding depth of incoming short wave radiation. +CHL_FROM_FILE = True ! [Boolean] default = True + ! If true, chl_a is read from a file. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in the variable CHL_A. It + ! is used when VAR_PEN_SW and CHL_FROM_FILE are true. +CHL_VARNAME = "CHL_A" ! default = "CHL_A" + ! Name of CHL_A variable in CHL_FILE. + +! === module MOM_energetic_PBL === +ML_OMEGA_FRAC = 0.0 ! [nondim] default = 0.0 + ! When setting the decay scale for turbulence, use this fraction of the absolute + ! rotation rate blended with the local value of f, as sqrt((1-of)*f^2 + + ! of*4*omega^2). +EKMAN_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A nondimensional scaling factor controlling the inhibition of the diffusive + ! length scale by rotation. Making this larger decreases the PBL diffusivity. +EPBL_ANSWER_DATE = 20231231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the energetic PBL + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. + ! Values below 20240101 use A**(1./3.) to estimate the cube root of A in several + ! expressions, while higher values use the integer root function cuberoot(A) and + ! therefore can work with scaled variables. +EPBL_ORIGINAL_PE_CALC = True ! [Boolean] default = True + ! If true, the ePBL code uses the original form of the potential energy change + ! code. Otherwise, the newer version that can work with successive increments + ! to the diffusivity in upward or downward passes is used. +MKE_TO_TKE_EFFIC = 0.0 ! [nondim] default = 0.0 + ! The efficiency with which mean kinetic energy released by mechanically forced + ! entrainment of the mixed layer is converted to turbulent kinetic energy. +TKE_DECAY = 2.5 ! [nondim] default = 2.5 + ! TKE_DECAY relates the vertical rate of decay of the TKE available for + ! mechanical entrainment to the natural Ekman depth. +DIRECT_EPBL_MIXING_CALC = False ! [Boolean] default = False + ! If true and there is no conversion from mean kinetic energy to ePBL turbulent + ! kinetic energy, use a direct calculation of the diffusivity that is supported + ! by a given energy input instead of the more general but slower iterative + ! solver. +EPBL_MSTAR_SCHEME = "CONSTANT" ! default = "CONSTANT" + ! EPBL_MSTAR_SCHEME selects the method for setting mstar. Valid values are: + ! CONSTANT - Use a fixed mstar given by MSTAR + ! OM4 - Use L_Ekman/L_Obukhov in the stabilizing limit, as in OM4 + ! REICHL_H18 - Use the scheme documented in Reichl & Hallberg, 2018. +MSTAR = 1.2 ! [nondim] default = 1.2 + ! The ratio of the friction velocity cubed to the TKE input to the mixed layer. + ! This option is used if EPBL_MSTAR_SCHEME = CONSTANT. +NSTAR = 0.2 ! [nondim] default = 0.2 + ! The portion of the buoyant potential energy imparted by surface fluxes that is + ! available to drive entrainment at the base of mixed layer when that energy is + ! positive. +MSTAR_CONV_ADJ = 0.0 ! [nondim] default = 0.0 + ! Coefficient used for reducing mstar during convection due to reduction of + ! stable density gradient. +USE_MLD_ITERATION = False ! [Boolean] default = True + ! A logical that specifies whether or not to use the distance to the bottom of + ! the actively turbulent boundary layer to help set the EPBL length scale. +EPBL_TRANSITION_SCALE = 0.1 ! [nondim] default = 0.1 + ! A scale for the mixing length in the transition layer at the edge of the + ! boundary layer as a fraction of the boundary layer thickness. +EPBL_MIN_MIX_LEN = 0.0 ! [meter] default = 0.0 + ! The minimum mixing length scale that will be used by ePBL. The default (0) + ! does not set a minimum. +MIX_LEN_EXPONENT = 2.0 ! [nondim] default = 2.0 + ! The exponent applied to the ratio of the distance to the MLD and the MLD depth + ! which determines the shape of the mixing length. This is only used if + ! USE_MLD_ITERATION is True. +EPBL_VEL_SCALE_SCHEME = "CUBE_ROOT_TKE" ! default = "CUBE_ROOT_TKE" + ! Selects the method for translating TKE into turbulent velocities. Valid values + ! are: + ! CUBE_ROOT_TKE - A constant times the cube root of remaining TKE. + ! REICHL_H18 - Use the scheme based on a combination of w* and v* as + ! documented in Reichl & Hallberg, 2018. +WSTAR_USTAR_COEF = 1.0 ! [nondim] default = 1.0 + ! A ratio relating the efficiency with which convectively released energy is + ! converted to a turbulent velocity, relative to mechanically forced TKE. Making + ! this larger increases the BL diffusivity +EPBL_VEL_SCALE_FACTOR = 1.0 ! [nondim] default = 1.0 + ! An overall nondimensional scaling factor for wT. Making this larger increases + ! the PBL diffusivity. +VSTAR_SURF_FAC = 1.2 ! [nondim] default = 1.2 + ! The proportionality times ustar to set vstar at the surface. +EPBL_BBL_EFFIC = 0.0 ! [nondim] default = 0.0 + ! The efficiency of bottom boundary layer mixing via ePBL. Setting this to a + ! value that is greater than 0 to enable bottom boundary layer mixing from EPBL. +USE_LA_LI2016 = False ! [Boolean] default = False + ! A logical to use the Li et al. 2016 (submitted) formula to determine the + ! Langmuir number. +EPBL_LT = False ! [Boolean] default = False + ! A logical to use a LT parameterization. +EPBL_OPTIONS_DIFF = 0 ! default = 0 + ! If positive, this is a coded integer indicating a pair of settings whose + ! differences are diagnosed in a passive diagnostic mode via extra calls to + ! ePBL_column. If this is 0 or negative no extra calls occur. +!EPBL_USTAR_MIN = 1.45842E-18 ! [m s-1] + ! The (tiny) minimum friction velocity used within the ePBL code, derived from + ! OMEGA and ANGSTROM. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = False ! [Boolean] default = False + ! If defined, vertically restructure the near-surface layers when they have too + ! much lateral variations to allow for sensible lateral barotropic transports. + +! === module MOM_opacity === +OPACITY_SCHEME = "MANIZZA_05" ! default = "MANIZZA_05" + ! This character string specifies how chlorophyll concentrations are translated + ! into opacities. Currently valid options include: + ! MANIZZA_05 - Use Manizza et al., GRL, 2005. + ! MOREL_88 - Use Morel, JGR, 1988. +BLUE_FRAC_SW = 0.5 ! [nondim] default = 0.5 + ! The fraction of the penetrating shortwave radiation that is in the blue band. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. +OPTICS_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the optics + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. +PEN_SW_FLUX_ABSORB = 2.5E-11 ! [degC m s-1] default = 2.5E-11 + ! A minimum remaining shortwave heating rate that will be simply absorbed in the + ! next sufficiently thick layers for computational efficiency, instead of + ! continuing to penetrate. The default, 2.5e-11 degC m s-1, is about 1e-4 W m-2 + ! or 0.08 degC m century-1, but 0 is also a valid value. +PEN_SW_ABSORB_MINTHICK = 1.0 ! [m] default = 1.0 + ! A thickness that is used to absorb the remaining penetrating shortwave heat + ! flux when it drops below PEN_SW_FLUX_ABSORB. +OPACITY_VALUES_MANIZZA = 0.0232, 0.074, 0.225, 0.037, 2.86, 0.0 ! [m-1] default = 0.0232, 0.074, 0.225, 0.037, 2.86, 0.0 + ! Pairs of opacity coefficients for blue, red and near-infrared radiation with + ! parameterizations following the functional form from Manizza et al., GRL 2005, + ! namely in the form opacity = coef_1 + coef_2 * chl**pow for each band. + ! Although coefficients are set for 3 bands, more or less bands may actually be + ! used, with extra bands following the same properties as band 3. +CHOROPHYLL_POWER_MANIZZA = 0.674, 0.629, 0.0 ! [nondim] default = 0.674, 0.629, 0.0 + ! Powers of chlorophyll for blue, red and near-infrared radiation bands in + ! expressions for opacity of the form opacity = coef_1 + coef_2 * chl**pow. +OPACITY_BAND_WAVELENGTHS = 0.0, 550.0, 700.0, 2800.0 ! [nm] default = 0.0, 550.0, 700.0, 2800.0 + ! The bounding wavelengths for the various bands of shortwave radiation, with + ! defaults that depend on the setting for OPACITY_SCHEME. +OPACITY_LAND_VALUE = 10.0 ! [m-1] default = 10.0 + ! The value to use for opacity over land. The default is 10 m-1 - a value for + ! muddy water. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PPM:H3" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + ! PPM - Piecewise Parabolic Method (Colella-Woodward) +USE_HUYNH_STENCIL_BUG = False ! [Boolean] default = False + ! If true, use a stencil width of 2 in PPM:H3 tracer advection. This is + ! incorrect and will produce regressions in certain configurations, but may be + ! required to reproduce results in legacy simulations. + +! === module MOM_tracer_hor_diff === +KHTR = 600.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 0.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over grid-spacing in passivity, + ! where passivity is the ratio between along isopycnal mixing of tracers to + ! thickness mixing. A non-zero value enables this parameterization. +KHTR_PASSIVITY_MIN = 0.5 ! [nondim] default = 0.5 + ! The minimum passivity which is the ratio between along isopycnal mixing of + ! tracers to thickness mixing. +DIFFUSE_ML_TO_INTERIOR = False ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface boundary layer and the + ! interior. +CHECK_DIFFUSIVE_CFL = False ! [Boolean] default = False + ! If true, use enough iterations the diffusion to ensure that the diffusive + ! equivalent of the CFL limit is not violated. If false, always use the greater + ! of 1 or MAX_TR_DIFFUSION_CFL iteration. +MAX_TR_DIFFUSION_CFL = -1.0 ! [nondim] default = -1.0 + ! If positive, locally limit the along-isopycnal tracer diffusivity to keep the + ! diffusive CFL locally at or below this value. The number of diffusive + ! iterations is often this value or the next greater integer. +RECALC_NEUTRAL_SURF = False ! [Boolean] default = False + ! If true, then recalculate the neutral surfaces if the + ! diffusive CFL is exceeded. If false, assume that the + ! positions of the surfaces do not change + +! === module MOM_neutral_diffusion === +! This module implements neutral diffusion of tracers +USE_NEUTRAL_DIFFUSION = True ! [Boolean] default = False + ! If true, enables the neutral diffusion module. +NDIFF_CONTINUOUS = True ! [Boolean] default = True + ! If true, uses a continuous reconstruction of T and S when finding neutral + ! surfaces along which diffusion will happen. If false, a PPM discontinuous + ! reconstruction of T and S is done which results in a higher order routine but + ! exacts a higher computational cost. +NDIFF_REF_PRES = -1.0 ! [Pa] default = -1.0 + ! The reference pressure (Pa) used for the derivatives of the equation of state. + ! If negative (default), local pressure is used. +NDIFF_INTERIOR_ONLY = False ! [Boolean] default = False + ! If true, only applies neutral diffusion in the ocean interior.That is, the + ! algorithm will exclude the surface and bottomboundary layers. +NDIFF_USE_UNMASKED_TRANSPORT_BUG = False ! [Boolean] default = False + ! If true, use an older form for the accumulation of neutral-diffusion + ! transports that were unmasked, as used prior to Jan 2018. This is not + ! recommended. +NDIFF_ANSWER_DATE = 20240101 ! default = 20240101 + ! The vintage of the order of arithmetic to use for the neutral diffusion. + ! Values of 20240330 or below recover the answers from the original form of the + ! neutral diffusion code, while higher values use mathematically equivalent + ! expressions that recover rotational symmetry. + +! === module MOM_hor_bnd_diffusion === +! This module implements horizontal diffusion of tracers near boundaries +USE_HORIZONTAL_BOUNDARY_DIFFUSION = False ! [Boolean] default = False + ! If true, enables the horizonal boundary tracer's diffusion module. +OBSOLETE_DIAGNOSTIC_IS_FATAL = True ! [Boolean] default = True + ! If an obsolete diagnostic variable appears in the diag_table, cause a FATAL + ! error rather than issue a WARNING. + +! === module MOM_sum_output === +CALCULATE_APE = True ! [Boolean] default = True + ! If true, calculate the available potential energy of the interfaces. Setting + ! this to false reduces the memory footprint of high-PE-count models + ! dramatically. +WRITE_STOCKS = True ! [Boolean] default = True + ! If true, write the integrated tracer amounts to stdout when the energy files + ! are written. +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very large value if the velocity + ! is truncated more than MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +MAX_ENERGY = 0.0 ! [m2 s-2] default = 0.0 + ! The maximum permitted average energy per unit mass; the model will be stopped + ! if there is more energy than this. If zero or negative, this is set to + ! 10*MAXVEL^2. +ENERGYFILE = "ocean.stats" ! default = "ocean.stats" + ! The file to use to write the energies and globally summed diagnostics. +DATE_STAMPED_STDOUT = True ! [Boolean] default = True + ! If true, use dates (not times) in messages to stdout +TIMEUNIT = 8.64E+04 ! [s] default = 8.64E+04 + ! The time unit in seconds a number of input fields +READ_DEPTH_LIST = False ! [Boolean] default = False + ! Read the depth list from a file if it exists or create that file otherwise. +DEPTH_LIST_MIN_INC = 1.0E-10 ! [m] default = 1.0E-10 + ! The minimum increment between the depths of the entries in the depth-list + ! file. +ENERGYSAVEDAYS = 0.5 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the energies of the run and + ! other globally summed diagnostics. +ENERGYSAVEDAYS_GEOMETRIC = 0.0 ! [days] default = 0.0 + ! The starting interval in units of TIMEUNIT for the first call to save the + ! energies of the run and other globally summed diagnostics. The interval + ! increases by a factor of 2. after each call to write_energy. + +! === module ocean_stochastics_init === +DO_SPPT = False ! [Boolean] default = False + ! If true, then stochastically perturb the thermodynamic tendemcies of T,S, amd + ! h. Amplitude and correlations are controlled by the nam_stoch namelist in the + ! UFS model only. +PERT_EPBL = False ! [Boolean] default = False + ! If true, then stochastically perturb the kinetic energy production and + ! dissipation terms. Amplitude and correlations are controlled by the nam_stoch + ! namelist in the UFS model only. + +! === module ocean_model_init === +SINGLE_STEPPING_CALL = True ! [Boolean] default = True + ! If true, advance the state of MOM with a single step including both dynamics + ! and thermodynamics. If false, the two phases are advanced with separate + ! calls. +RESTART_CONTROL = 3 ! default = 1 + ! An integer whose bits encode which restart files are written. Add 2 (bit 1) + ! for a time-stamped file, and odd (bit 0) for a non-time-stamped file. A + ! restart file will be saved at the end of the run segment for any non-negative + ! value. +OCEAN_SURFACE_STAGGER = "C" ! default = "C" + ! A case-insensitive character string to indicate the staggering of the surface + ! velocity field that is returned to the coupler. Valid values include 'A', + ! 'B', or 'C'. +ICEBERGS_APPLY_RIGID_BOUNDARY = False ! [Boolean] default = False + ! If true, allows icebergs to change boundary condition felt by ocean + +! === module MOM_surface_forcing === +LATENT_HEAT_FUSION = 3.34E+05 ! [J/kg] default = 3.34E+05 + ! The latent heat of fusion. +LATENT_HEAT_VAPORIZATION = 2.5E+06 ! [J/kg] default = 2.5E+06 + ! The latent heat of fusion. +MAX_P_SURF = -1.0 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the atmosphere and + ! floating sea-ice or ice shelves. This is needed because the FMS coupling + ! structure does not limit the water that can be frozen out of the ocean and the + ! ice-ocean heat fluxes are treated explicitly. No limit is applied if a + ! negative value is used. +RESTORE_SALINITY = False ! [Boolean] default = False + ! If true, the coupled driver will add a globally-balanced fresh-water flux that + ! drives sea-surface salinity toward specified values. +RESTORE_TEMPERATURE = False ! [Boolean] default = False + ! If true, the coupled driver will add a heat flux that drives sea-surface + ! temperature toward specified values. +ADJUST_NET_SRESTORE_TO_ZERO = False ! [Boolean] default = False + ! If true, adjusts the salinity restoring seen to zero whether restoring is via + ! a salt flux or virtual precip. +ADJUST_NET_SRESTORE_BY_SCALING = False ! [Boolean] default = False + ! If true, adjustments to salt restoring to achieve zero net are made by scaling + ! values without moving the zero contour. +ADJUST_NET_FRESH_WATER_TO_ZERO = False ! [Boolean] default = False + ! If true, adjusts the net fresh-water forcing seen by the ocean (including + ! restoring) to zero. +ADJUST_NET_FRESH_WATER_BY_SCALING = False ! [Boolean] default = False + ! If true, adjustments to net fresh water to achieve zero net are made by + ! scaling values without moving the zero contour. +ICE_SALT_CONCENTRATION = 0.005 ! [kg/kg] default = 0.005 + ! The assumed sea-ice salinity needed to reverse engineer the melt flux (or + ! ice-ocean fresh-water flux). +USE_LIMITED_PATM_SSH = True ! [Boolean] default = True + ! If true, return the sea surface height with the correction for the atmospheric + ! (and sea-ice) pressure limited by max_p_surf instead of the full atmospheric + ! pressure. +APPROX_NET_MASS_SRC = False ! [Boolean] default = False + ! If true, use the net mass sources from the ice-ocean boundary type without any + ! further adjustments to drive the ocean dynamics. The actual net mass source + ! may differ due to internal corrections. +WIND_STAGGER = "C" ! default = "C" + ! A case-insensitive character string to indicate the staggering of the input + ! wind stress field. Valid values are 'A', 'B', or 'C'. +WIND_STRESS_MULTIPLIER = 1.0 ! [nondim] default = 1.0 + ! A factor multiplying the wind-stress given to the ocean by the coupler. This + ! is used for testing and should be =1.0 for any production runs. +CD_TIDES = 1.0E-04 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +TKE_TIDAL_RHO = 1035.0 ! [kg m-3] default = 1035.0 + ! The constant bottom density used to translate tidal amplitudes into the tidal + ! bottom TKE input used with INT_TIDE_DISSIPATION. +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from an input file +GUST_CONST = 0.02 ! [Pa] default = 0.0 + ! The background gustiness in the winds. +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in variable gustiness. +SURFACE_FORCING_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the gustiness + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use a simpler expression to calculate gustiness. +USTAR_GUSTLESS_BUG = False ! [Boolean] default = False + ! If true include a bug in the time-averaging of the gustless wind friction + ! velocity +USE_RIGID_SEA_ICE = False ! [Boolean] default = False + ! If true, sea-ice is rigid enough to exert a nonhydrostatic pressure that + ! resist vertical motion. +ALLOW_ICEBERG_FLUX_DIAGNOSTICS = False ! [Boolean] default = False + ! If true, makes available diagnostics of fluxes from icebergs as seen by MOM6. +ALLOW_FLUX_ADJUSTMENTS = False ! [Boolean] default = False + ! If true, allows flux adjustments to specified via the data_table using the + ! component name 'OCN'. + +! === module MOM_restart === +USE_WAVES = False ! [Boolean] default = False + ! If true, enables surface wave modules. + +! === module MOM_file_parser === +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +DOCUMENT_FILE = "MOM_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their settings, units and + ! defaults are documented. Blank will disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are documented in MOM_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are documented in + ! MOM_parameter_doc.short . diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.debugging b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.debugging new file mode 100644 index 0000000000..fb34ffff41 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.debugging @@ -0,0 +1,96 @@ +! This file was written by the model and records the debugging parameters used at run-time. + +! === module MOM_unit_scaling === +! Parameters for doing unit scaling of variables. +Z_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! depths and heights. Valid values range from -300 to 300. +L_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! lateral distances. Valid values range from -300 to 300. +T_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! time. Valid values range from -300 to 300. +R_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! density. Valid values range from -300 to 300. +Q_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! heat content. Valid values range from -300 to 300. +C_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! temperature. Valid values range from -300 to 300. +S_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! salinity. Valid values range from -300 to 300. + +! === module MOM === +VERBOSITY = 2 ! default = 2 + ! Integer controlling level of messaging + ! 0 = Only FATAL messages + ! 2 = Only FATAL, WARNING, NOTE [default] + ! 9 = All) +DO_UNIT_TESTS = False ! [Boolean] default = False + ! If True, exercises unit tests at model start up. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +DEBUG_TRUNCATIONS = False ! [Boolean] default = False + ! If true, calculate all diagnostics that are useful for debugging truncations. +ROTATE_INDEX = False ! [Boolean] default = False + ! Enable rotation of the horizontal indices. +DEBUG_CHKSUMS = False ! [Boolean] default = False + ! If true, checksums are performed on arrays in the various vec_chksum routines. +DEBUG_REDUNDANT = False ! [Boolean] default = False + ! If true, debug redundant data points during calls to the various vec_chksum + ! routines. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +H_RESCALE_POWER = 0 ! [nondim] default = 0 + ! An integer power of 2 that is used to rescale the model's intenal units of + ! thickness. Valid values range from -300 to 300. + +! === module MOM_vert_friction === +U_TRUNC_FILE = "U_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations leading to zonal + ! velocity truncations are written. Undefine this for efficiency if this + ! diagnostic is not needed. +V_TRUNC_FILE = "V_velocity_truncations" ! default = "" + ! The absolute path to a file into which the accelerations leading to meridional + ! velocity truncations are written. Undefine this for efficiency if this + ! diagnostic is not needed. + +! === module MOM_PointAccel === +MAX_TRUNC_FILE_SIZE_PER_PE = 50 ! default = 50 + ! The maximum number of columns of truncations that any PE will write out during + ! a run. +DEBUG_FULL_COLUMN = False ! [Boolean] default = False + ! If true, write out the accelerations in all massive layers; otherwise just + ! document the ones with large velocities. + +! === module MOM_barotropic === +DEBUG_BT = False ! [Boolean] default = False + ! If true, write out verbose debugging data within the barotropic time-stepping + ! loop. The data volume can be quite large if this is true. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +DEBUG_CONSERVATION = False ! [Boolean] default = False + ! If true, monitor conservation and extrema. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +WRITE_TRACER_MIN_MAX = False ! [Boolean] default = False + ! If true, write the maximum and minimum values of temperature, salinity and + ! some tracer concentrations to stdout when the energy files are written. + +! === module MOM_surface_forcing === +CHECK_NO_LAND_FLUXES = False ! [Boolean] default = False + ! If true, checks that values from IOB fluxes are zero above land points (i.e. + ! G%mask2dT = 0). + +! === module MOM_file_parser === +REPORT_UNUSED_PARAMS = True ! [Boolean] default = True + ! If true, report any parameter lines that are not used in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused parameters. diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.layout b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.layout new file mode 100644 index 0000000000..62d7cb620e --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.layout @@ -0,0 +1,69 @@ +! This file was written by the model and records the layout parameters used at run-time. + +! === module MOM === +GLOBAL_INDEXING = False ! [Boolean] default = False + ! If true, use a global lateral indexing convention, so that corresponding + ! points on different processors have the same index. This does not work with + ! static memory. + +! === module MOM_domains === +!SYMMETRIC_MEMORY_ = True ! [Boolean] + ! If defined, the velocity point data domain includes every face of the + ! thickness points. In other words, some arrays are larger than others, + ! depending on where they are on the staggered grid. Also, the starting index + ! of the velocity-point arrays is usually 0, not 1. This can only be set at + ! compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +THIN_HALO_UPDATES = True ! [Boolean] default = True + ! If true, optional arguments may be used to specify the width of the halos that + ! are updated with each call. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables will have sizes that are + ! statically determined at compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially faster, but does not allow + ! the PE count to be changed at run time. This can only be set at compile time. +AUTO_MASKTABLE = False ! [Boolean] default = False + ! Turn on automatic mask table generation to eliminate land blocks. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. This feature masks out + ! processors that contain only land points. The first line of mask_table is the + ! number of regions to be masked out. The second line is the layout of the model + ! and must be consistent with the actual model layout. The following (n_mask) + ! lines give the logical positions of the processors that are masked out. The + ! mask_table can be created by tools like check_mask. The following example of + ! mask_table masks out 2 processors, (1,2) and (3,6), out of the 24 in a 4x6 + ! layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +NIPROC = 4 ! + ! The number of processors in the x-direction. With STATIC_MEMORY_ this is set + ! in MOM_memory.h at compile time. +NJPROC = 2 ! + ! The number of processors in the y-direction. With STATIC_MEMORY_ this is set + ! in MOM_memory.h at compile time. +LAYOUT = 4, 2 ! + ! The processor layout that was actually used. +IO_LAYOUT = 1, 1 ! default = 1, 1 + ! The processor layout to be used, or 0,0 to automatically set the io_layout to + ! be the same as the layout. + +! === module MOM_grid === +! Parameters providing information about the lateral grid. +NIBLOCK = 1 ! default = 1 + ! The number of blocks in the x-direction on each processor (for openmp). +NJBLOCK = 1 ! default = 1 + ! The number of blocks in the y-direction on each processor (for openmp). + +! === module MOM_barotropic === +BT_USE_WIDE_HALOS = True ! [Boolean] default = True + ! If true, use wide halos and march in during the barotropic time stepping for + ! efficiency. +BTHALO = 0 ! default = 0 + ! The minimum halo size for the barotropic solver. +!BT x-halo = 4 ! + ! The barotropic x-halo size that is actually used. +!BT y-halo = 4 ! + ! The barotropic y-halo size that is actually used. diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.short b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.short new file mode 100644 index 0000000000..7bfc99f564 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/MOM_parameter_doc.short @@ -0,0 +1,573 @@ +! This file was written by the model and records the non-default parameters used at run-time. + +! === module MOM === +USE_REGRIDDING = True ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). If False, use the + ! layered isopycnal algorithm. +REMAP_UV_USING_OLD_ALG = True ! [Boolean] default = False + ! If true, uses the old remapping-via-a-delta-z method for remapping u and v. If + ! false, uses the new method that remaps between grids described by an old and + ! new thickness. +THICKNESSDIFFUSE = True ! [Boolean] default = False + ! If true, isopycnal surfaces are diffused with a Laplacian coefficient of KHTH. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion or interface height smoothing before dynamics. + ! This is only used if THICKNESSDIFFUSE or APPLY_INTERFACE_FILTER is true. +DT = 3600.0 ! [s] + ! The (baroclinic) dynamics time step. The time-step that is actually used will + ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode + ! or the coupling timestep in coupled mode.) +DT_THERM = 7200.0 ! [s] default = 3600.0 + ! The thermodynamic and tracer advection time step. Ideally DT_THERM should be + ! an integer multiple of DT and less than the forcing or coupling time-step, + ! unless THERMO_SPANS_COUPLING is true, in which case DT_THERM can be an integer + ! multiple of the coupling timestep. By default DT_THERM is set to DT. +DTBT_RESET_PERIOD = 0.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). If DTBT_RESET_PERIOD + ! is negative, DTBT is set based only on information available at + ! initialization. If 0, DTBT will be set every dynamics time step. The default + ! is set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the accumulated heat deficit + ! is returned in the surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice model may ask for more + ! salt than is available and drive the salinity negative otherwise.) +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a constant. This is only used + ! if ENABLE_THERMODYNAMICS is true. The default value is from the TEOS-10 + ! definition of conservative temperature. +USE_PSURF_IN_EOS = False ! [Boolean] default = True + ! If true, always include the surface pressure contributions in equation of + ! state calculations. +CHECK_BAD_SURFACE_VALS = True ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. + +! === module MOM_domains === +REENTRANT_X = False ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +NIGLOBAL = 23 ! + ! The total number of thickness grid points in the x-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. +NJGLOBAL = 14 ! + ! The total number of thickness grid points in the y-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time. + +! === module MOM_fixed_initialization === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for defining the horizontal + ! grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! bbuilder - build topography from list of functions. + ! benchmark - use the benchmark test case topography. + ! Neverworld - use the Neverworld test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a slope and channel configuration for the + ! ISOMIP test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! Kelvin - flat but with rotated land mask. + ! seamount - Gaussian bump for spontaneous motion test case. + ! dumbbell - Sloshing channel with reservoirs on both ends. + ! shelfwave - exponential slope for shelfwave test case. + ! Phillips - ACC-like idealized topography used in the Phillips config. + ! dense - Denmark Strait-like dense water formation and overflow. + ! USER - call a user modified routine. +MINIMUM_DEPTH = 0.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than MINIMUM_DEPTH is + ! assumed to be land and all fluxes are masked out. If MASKING_DEPTH is + ! specified, then all depths shallower than MINIMUM_DEPTH but deeper than + ! MASKING_DEPTH are rounded to MINIMUM_DEPTH. +MAXIMUM_DEPTH = 6000.0 ! [m] + ! The maximum depth of the ocean. +CHANNEL_CONFIG = "global_1deg" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +NK = 50 ! [nondim] + ! The number of model layers. + +! === module MOM_EOS === + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = True ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. +USE_ADVECTION_TEST_TRACER = True ! [Boolean] default = False + ! If true, use the advection_test_tracer tracer package. + +! === module ideal_age_example === + +! === module advection_test_tracer === +ADVECTION_TEST_X_ORIGIN = 19.5 ! [degrees_E] default = 0.0 + ! The x-coordinate of the center of the test-functions. +ADVECTION_TEST_Y_ORIGIN = 60.5 ! [degrees_N] default = 0.0 + ! The y-coordinate of the center of the test-functions. +ADVECTION_TEST_X_WIDTH = 1.0 ! [degrees_E] default = 0.0 + ! The x-width of the test-functions. +ADVECTION_TEST_Y_WIDTH = 1.0 ! [degrees_N] default = 0.0 + ! The y-width of the test-functions. + +! === module MOM_coord_initialization === +COORD_CONFIG = "file" ! default = "none" + ! This specifies how layers are to be defined: + ! ALE or none - used to avoid defining layers in ALE mode + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! BFB - Custom coords for buoyancy-forced basin case + ! based on SST_S, T_BOT and DRHO_DT. + ! linear - linear based on interfaces not layers + ! layer_ref - linear based on layer densities + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "Layer_coord50.nc" ! + ! The file from which the coordinate densities are read. +REGRIDDING_COORDINATE_MODE = "Z*" ! default = "LAYER" + ! Coordinate mode for vertical regridding. Choose among the following + ! possibilities: LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stretched geopotential z* + ! SIGMA_SHELF_ZSTAR - stretched geopotential z* ignoring shelf + ! SIGMA - terrain following coordinates + ! RHO - continuous isopycnal + ! SCALAR - any scalar variable ** for diagnostic grids only ** + ! HYCOM1 - HyCOM-like hybrid coordinate + ! HYBGEN - Hybrid coordinate from the Hycom hybgen code + ! ADAPTIVE - optimize for smooth neutral density surfaces +ALE_COORDINATE_CONFIG = "FILE:vgrid.nc,dz" ! default = "UNIFORM" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter ALE_RESOLUTION + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! WOA09INT[:N] - layers spanned by the WOA09 depths + ! WOA23INT[:N] - layers spanned by the WOA23 depths + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +!ALE_RESOLUTION = 3*10.1, 2*10.2, 10.3, 10.5, 10.7, 10.9, 11.3, 11.7, 12.4, 13.3, 14.6, 16.3, 18.6, 21.7, 25.9, 31.4, 38.5, 47.4, 58.4, 71.3, 86.0, 101.9, 118.1, 134.0, 148.7, 161.6, 172.6, 181.5, 188.6, 194.1, 198.3, 201.4, 203.7, 205.4, 206.7, 207.6, 208.3, 208.7, 209.1, 209.3, 209.5, 209.7, 2*209.8, 2*209.9, 209.0 ! [m] + ! The distribution of vertical resolution for the target + ! grid used for Eulerian-like coordinates. For example, + ! in z-coordinate mode, the parameter is a list of level + ! thicknesses (in m). In sigma-coordinate mode, the list + ! is of non-dimensional fractions of the water column. +REMAPPING_SCHEME = "PPM_H4" ! default = "PLM" + ! This sets the reconstruction scheme used for vertical remapping for all + ! variables. It can be one of the following schemes: + ! PCM (1st-order accurate) + ! PLM (2nd-order accurate) + ! PLM_HYBGEN (2nd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! PPM_HYBGEN (3rd-order accurate) + ! WENO_HYBGEN (3rd-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) + +! === module MOM_state_initialization === +INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False + ! If true, initialize the layer thicknesses, temperatures, and salinities from a + ! Z-space file on a latitude-longitude grid. + +! === module MOM_initialize_layers_from_Z === +TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize temperatures (T) and + ! salinities (S). If T and S are not in the same file, TEMP_Z_INIT_FILE and + ! SALT_Z_INIT_FILE must be set. +Z_INIT_FILE_PTEMP_VAR = "PTEMP" ! default = "ptemp" + ! The name of the potential temperature variable in TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "SALT" ! default = "salt" + ! The name of the salinity variable in SALT_Z_INIT_FILE. +Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. + +! === module MOM_diag_mediator === +NUM_DIAG_COORDS = 2 ! default = 1 + ! The number of diagnostic vertical coordinates to use. For each coordinate, an + ! entry in DIAG_COORDS must be provided. +DIAG_COORDS = "z Z ZSTAR", "scalar SCALAR SCALAR" ! + ! A list of string tuples associating diag_table modules to a coordinate + ! definition used for diagnostics. Each string is of the form + ! "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". +DIAG_COORD_DEF_SCALAR = "FILE:targetlayers_scalar.nc,interfaces=interfaces" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_SCALAR + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! WOA09INT[:N] - layers spanned by the WOA09 depths + ! WOA23INT[:N] - layers spanned by the WOA23 depths + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz +DIAG_COORD_P_REF_SCALAR = 0.0 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the diagnostic coordinate density. + ! (1 Pa = 1e4 dbar, so 2e7 is commonly used.) This is only used for the RHO + ! coordinate. +DIAG_COORD_HISTOGRAM_EXTENSIVE_DIAGS_SCALAR = True ! [nondim] default = False + ! If true, extensive diagnostics are remapped using a histogram procedureThis is + ! therefore suitable for coordinates that are non-monotonic in the vertical + ! dimension. This should only be set True for **diagnostic**coordinates. + +! === module MOM_MEKE === +USE_MEKE = True ! [Boolean] default = False + ! If true, turns on the MEKE scheme which calculates a sub-grid mesoscale eddy + ! kinetic energy budget. +MEKE_GMCOEFF = 1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy into MEKE by the + ! thickness mixing parameterization. If MEKE_GMCOEFF is negative, this + ! conversion is not used or calculated. +MEKE_ALPHA_RHINES = 0.05 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the Rhines scale in the expression for + ! mixing length used in MEKE-derived diffusivity. +MEKE_ALPHA_EADY = 0.05 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the Eady length scale in the + ! expression for mixing length used in MEKE-derived diffusivity. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This allows diagnostics to + ! be created even if the scheme is not used. If KHTR_SLOPE_CFF>0 or + ! KhTh_Slope_Cff>0, this is set to true regardless of what is in the parameter + ! file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away when the first + ! baroclinic deformation radius is well resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away when the first + ! baroclinic deformation radius is well resolved. +USE_STORED_SLOPES = True ! [Boolean] default = False + ! If true, the isopycnal slopes are calculated once and stored for re-use. This + ! uses more memory but avoids calling the equation of state more times than + ! should be necessary. +INTERNAL_WAVE_SPEED_BETTER_EST = False ! [Boolean] default = True + ! If true, use a more robust estimate of the first mode wave speed as the + ! starting point for iterations. + +! === module MOM_set_visc === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each layer proportional to the + ! fraction of the bottom it overlies. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a viscosity increased by + ! KV_EXTRA_BBL if BOTTOMDRAGLAW is not defined, or the thickness over which + ! near-bottom velocities are averaged for the drag law if BOTTOMDRAGLAW is + ! defined but LINEAR_DRAG is not. +DRAG_BG_VEL = 0.1 ! [m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with LINEAR_DRAG) or an + ! unresolved velocity that is combined with the resolved velocity to estimate + ! the velocity magnitude. DRAG_BG_VEL is only used when BOTTOMDRAGLAW is + ! defined. +BBL_THICK_MIN = 0.1 ! [m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be used with + ! BOTTOMDRAGLAW. This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. The molecular value, ~1e-6 + ! m2 s-1, may be used. + +! === module MOM_thickness_diffuse === +KHTH = 600.0 ! [m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity. +KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum horizontal thickness diffusivity. + +! === module MOM_dynamics_split_RK2 === +TIDES = True ! [Boolean] default = False + ! If true, apply tidal momentum forcing. + +! === module MOM_continuity_PPM === +ETA_TOLERANCE = 1.0E-06 ! [m] default = 2.5E-09 + ! The tolerance for the differences between the barotropic and baroclinic + ! estimates of the sea surface height due to the fluxes through each face. The + ! total tolerance for SSH is 4 times this value. The default is + ! 0.5*NK*ANGSTROM, and this should not be set less than about + ! 10^-15*MAXIMUM_DEPTH. +VELOCITY_TOLERANCE = 1.0E-04 ! [m s-1] default = 3.0E+08 + ! The tolerance for barotropic velocity discrepancies between the barotropic + ! solution and the sum of the layer thicknesses. + +! === module MOM_CoriolisAdv === +BOUND_CORIOLIS = True ! [Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by the four estimates of + ! (f+rv)v from the four neighboring v-points, and similarly at v-points. This + ! option would have no effect on the SADOURNY Coriolis scheme if it were + ! possible to use centered difference thickness fluxes. + +! === module MOM_self_attr_load === + +! === module MOM_tidal_forcing === +TIDE_M2 = True ! [Boolean] default = False + ! If true, apply tidal momentum forcing at the M2 frequency. This is only used + ! if TIDES is true. + +! === module MOM_PressureForce === + +! === module MOM_PressureForce_FV === +MASS_WEIGHT_IN_PRESSURE_GRADIENT = True ! [Boolean] default = False + ! If true, use mass weighting when interpolating T/S for integrals near the + ! bathymetry in FV pressure gradient calculations. + +! === module MOM_Zanna_Bolton === + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid spacing to calculate the + ! Laplacian viscosity. The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky and Leith viscosities, and KH. +AH_VEL_SCALE = 0.05 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of the grid spacing to + ! calculate the biharmonic viscosity. The final viscosity is the largest of this + ! scaled viscosity, the Smagorinsky and Leith viscosities, and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, typically 0.015 - 0.06. + +! === module MOM_vert_friction === +HMIX_FIXED = 0.5 ! [m] + ! The prescribed depth over which the near-surface viscosity and diffusivity are + ! elevated when the bulk mixed layer is not used. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity components are truncated. +CFL_TRUNCATE_RAMP_TIME = 7200.0 ! [s] default = 0.0 + ! The time over which the CFL truncation value is ramped up at the beginning of + ! the run. + +! === module MOM_barotropic === +BOUND_BT_CORRECTION = True ! [Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the barotropic solver are + ! limited to values that require less than maxCFL_BT_cont to be accommodated. +BT_PROJECT_VELOCITY = True ! [Boolean] default = False + ! If true, step the barotropic velocity first and project out the velocity + ! tendency by 1+BEBT when calculating the transport. The default (false) is to + ! use a predictor continuity step to find the pressure field, and then to do a + ! corrector continuity step using a weighted average of the old and new + ! velocities, with weights of (1-BEBT) and BEBT. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping uses the forward-backward + ! time-stepping scheme or a backward Euler scheme. BEBT is valid in the range + ! from 0 (for a forward-backward treatment of nonrotating gravity waves) to 1 + ! (for a backward Euler treatment). In practice, BEBT must be greater than about + ! 0.05. +DTBT = -0.95 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with the split explicit time + ! stepping. To set the time step automatically based the maximum stable value + ! use 0, or a negative value gives the fraction of the stable value. Setting + ! DTBT to 0 is the same as setting it to -0.98. The value of DTBT that will + ! actually be used is an integer fraction of DT, rounding down. + +! === module MOM_mixed_layer_restrat === +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying flow is imposed in the + ! mixed layer. Can be used in ALE mode without restriction but in layer mode can + ! only be used if BULKMIXEDLAYER is true. +MLE% +%MLE +FOX_KEMPER_ML_RESTRAT_COEF = 20.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to the ratio of the + ! deformation radius to the dominant lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the mesoscale eddy kinetic + ! energy to the large-scale geostrophic kinetic energy or 1 plus the square of + ! the grid spacing over the deformation radius, as detailed by Fox-Kemper et al. + ! (2011) + +! === module MOM_diagnostics === + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ENERGETICS_SFC_PBL = True ! [Boolean] default = False + ! If true, use an implied energetics planetary boundary layer scheme to + ! determine the diffusivity and viscosity in the surface boundary layer. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 0.001 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling factor for the heat flux read + ! from GEOTHERMAL_FILE, or 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_heating_cm2g.nc" ! default = "" + ! The file from which the geothermal heating is to be read, or blank to use a + ! constant heating rate. + +! === module MOM_set_diffusivity === + +! === module MOM_tidal_mixing === +! Vertical Tidal Mixing Parameterization +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to drive diapycnal mixing, + ! along the lines of St. Laurent et al. (2002) and Simmons et al. (2004). +INT_TIDE_DECAY_SCALE = 300.0 ! [m] default = 500.0 + ! The decay scale away from the bottom for tidal TKE with the new coding when + ! INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. The default is 2pi/10 + ! km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.75 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with INT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source available to mix above the bottom + ! boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing the tidal amplitude + ! with INT_TIDE_DISSIPATION. +H2_FILE = "sgs_h2.nc" ! + ! The path to the file containing the sub-grid-scale topographic roughness + ! amplitude with INT_TIDE_DISSIPATION. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the BBL mixing and the other + ! diffusivities. Otherwise, diffusivity from the BBL_mixing is simply added. +USE_LOTW_BBL_DIFFUSIVITY = True ! [Boolean] default = False + ! If true, uses a simple, imprecise but non-coordinate dependent, model of BBL + ! mixing diffusivity based on Law of the Wall. Otherwise, uses the original BBL + ! scheme. +SIMPLE_TKE_TO_KD = True ! [Boolean] default = False + ! If true, uses a simple estimate of Kd/TKE that will work for arbitrary + ! vertical coordinates. If false, calculates Kd/TKE and bounds based on exact + ! energetics for an isopycnal layer-formulation. + +! === module MOM_bkgnd_mixing === +! Adding static vertical background mixing coefficients +KD = 2.0E-05 ! [m2 s-1] default = 0.0 + ! The background diapycnal diffusivity of density in the interior. Zero or the + ! molecular value, ~1e-7 m2 s-1, may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near surface background + ! diffusivity, as described in Harrison & Hallberg, JPO 2008. +KD_MAX = 0.1 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal diffusivity from TKE-based + ! parameterizations, or a negative value for no limit. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) shear mixing + ! parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to estimate the Richardson + ! number driven mixing. + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine + ! the e-folding depth of incoming short wave radiation. +CHL_FILE = "seawifs_1998-2006_GOLD_smoothed_2X.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in the variable CHL_A. It + ! is used when VAR_PEN_SW and CHL_FROM_FILE are true. + +! === module MOM_energetic_PBL === +EPBL_ANSWER_DATE = 20231231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the energetic PBL + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use updated and more robust forms of the same expressions. + ! Values below 20240101 use A**(1./3.) to estimate the cube root of A in several + ! expressions, while higher values use the integer root function cuberoot(A) and + ! therefore can work with scaled variables. +USE_MLD_ITERATION = False ! [Boolean] default = True + ! A logical that specifies whether or not to use the distance to the bottom of + ! the actively turbulent boundary layer to help set the EPBL length scale. + +! === module MOM_opacity === +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PPM:H3" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + ! PPM - Piecewise Parabolic Method (Colella-Woodward) + +! === module MOM_tracer_hor_diff === +KHTR = 600.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_MIN = 50.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 900.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. + +! === module MOM_neutral_diffusion === +! This module implements neutral diffusion of tracers +USE_NEUTRAL_DIFFUSION = True ! [Boolean] default = False + ! If true, enables the neutral diffusion module. + +! === module MOM_sum_output === +MAXTRUNC = 5000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very large value if the velocity + ! is truncated more than MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +ENERGYSAVEDAYS = 0.5 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the energies of the run and + ! other globally summed diagnostics. + +! === module ocean_stochastics_init === + +! === module ocean_model_init === +RESTART_CONTROL = 3 ! default = 1 + ! An integer whose bits encode which restart files are written. Add 2 (bit 1) + ! for a time-stamped file, and odd (bit 0) for a non-time-stamped file. A + ! restart file will be saved at the end of the run segment for any non-negative + ! value. + +! === module MOM_surface_forcing === +READ_GUST_2D = True ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from an input file +GUST_CONST = 0.02 ! [Pa] default = 0.0 + ! The background gustiness in the winds. +GUST_2D_FILE = "gustiness_qscat.nc" ! + ! The file in which the wind gustiness is found in variable gustiness. diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/README.offline b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/README.offline new file mode 100644 index 0000000000..47161c4aa0 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/README.offline @@ -0,0 +1,80 @@ +Instructions for running passive tracers offline in MOM6 +Contact: Andrew Shao (andrew.shao@noaa.gov) +Last modified: 7 October 2016 + +---- +QUICK-START +---- +1) Follow instructions to compile MOM6 executables using ice_ocean_SIS2 and ocean_only drivers +2) Link executables to Baltic_ALE_z directory (replace 'intel' and 'repro' as necessary) + ln -s ../../build/intel/ice_ocean_SIS2/repro/MOM6 ./MOM6_coupled + ln -s ../../build/intel/ice_ocean_SIS2/repro/MOM6 ./MOM6_ocean_only +3) Run model forward using the provided script to generate necessary fields + source run_online.sh +4) Run model offline + source run_offline.sh + +---- +OVERVIEW +---- +'Offline tracer modeling' uses physical fields (e.g. mass transports and layer thicknesses) saved +from a previous integration of the physical model to transport passive tracers. These fields are +accumulated or averaged over a period of time (in this test case, 1 day) and used to integrate +portions of the MOM6 code base that handle the 3d advection and diffusion of passive tracers. +This capability has currently targeted the Baltic_ALE_z test case, though some work has also been +done with the OM4 1/2 degree configuration. Work is ongoing to develop recommendations and best +practices for investigators seeking to use MOM6 for offline tracer modeling. + +The subroutine step_tracers that coordinates this can be found in MOM.F90 and is only called +using the solo ocean driver. This is to avoid issues with coupling to other climate components +that may be relying on fluxes from the ocean to be coupled more often than the offline time step. +Other routines related to offline tracer modeling can be found in tracers/MOM_offline_control.F90 + +As can also be seen in the comments for the step_tracers subroutine, an offline time step +comprises the following steps + 1) Using the layer thicknesses and tracer concentrations from the previous timestep, + half of the accumulated vertical mixing (eatr and ebtr) is applied in the call to + tracer_column_fns. + For tracers whose source/sink terms need dt, this value is set to 1/2 dt_offline + 2) Half of the accumulated surface freshwater fluxes are applied + START ITERATION + 3) Accumulated mass fluxes are used to do horizontal transport. The number of iterations + used in advect_tracer is limited to 2 (e.g x->y->x->y). The remaining mass fluxes are + stored for later use and resulting layer thicknesses fed into the next step + 4) Tracers and the h-grid are regridded and remapped in a call to ALE. This allows for + layers which might 'vanish' because of horizontal mass transport to be 'reinflated' + and essentially allows for the vertical transport of tracers + 5) Check that transport is done if the remaining mass fluxes equals 0 or if the max + number of iterations has been reached + END ITERATION + 6) Repeat steps 1 and 2 + 7) Force a remapping to the stored layer thicknesses that correspond to the snapshot of + the online model at the end of an accumulation interval + 8) Reset T/S and h to their stored snapshotted values to prevent model drift + +---- +EVALUATING +---- +A framework for formally regression testing the offline capability still needs to be developed. +However, as a simple way of testing whether the offline model is nominally behaving as expected, +the total inventory of the advection test tracers (tr1, tr2, etc.) should be conserved between +time steps except for the last 4 decimal places. + +---- +MOM_input parameters +---- +OFFLINEDIR ! default = "" + ! Input directory where the offline fields can be found +OFF_SUM_FILE ! default = "" + ! Filename where the accumulated fields can be found +OFF_SNAP_FILE ! default = "" + ! Filename where snapshot fields can be found +START_INDEX = ! default = 1 + ! Which time index to start from +NUMTIME = ! default = 0 + ! Number of timelevels in offline input files +FIELDS_ARE_OFFSET ! [Boolean] default = False + ! True if the time-averaged fields and snapshot fields are offset by one time level +NUM_OFF_ITER ! + ! Number of iterations to subdivide the offline tracer advection and diffusion +DT_OFFLINE ! Length of the offline timestep diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_input b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_input new file mode 100644 index 0000000000..f3be6a452c --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_input @@ -0,0 +1,104 @@ +! This input file provides the adjustable run-time parameters for version 2 of the Sea Ice Simulator (SIS2). +! Where appropriate, parameters use usually given in MKS units. + +! This particular file is for the example in ice_ocean_SIS2/Baltic_ALE_z_offline_tracers. + +! This SIS_input file typically contains only the non-default values that are needed to reproduce this example. +! A full list of parameters for this example can be found in the corresponding SIS_parameter_doc.all file +! which is generated by the model at run-time. + +! === module ice_model === +ADD_DIURNAL_SW = True ! [Boolean] default = False + ! If true, add a synthetic diurnal cycle to the shortwave radiation. + +! === module MOM_domains === +REENTRANT_X = False ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +NIGLOBAL = 23 ! + ! The total number of thickness grid points in the x-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +NJGLOBAL = 14 ! + ! The total number of thickness grid points in the y-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +NIHALO = 2 ! default = 4 + ! The number of halo points on each side in the x-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. +NJHALO = 2 ! default = 4 + ! The number of halo points on each side in the y-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. + +! === module SIS_initialize_fixed === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for defining the horizontal + ! grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +!MAXIMUM_DEPTH = 608.4598627866924 ! [m] + ! The (diagnosed) maximum depth of the ocean. + +! === module hor_grid === +! Parameters providing information about the lateral grid. + +! === module SIS2_ice_thm (thermo) === +! This sub-module calculates ice thermodynamic quantities. + +! === module SIS_tracer_registry === + +! === module SIS_tracer_flow_control === + +! === module SIS_slow_thermo === +! This module calculates the slow evolution of the ice mass, heat, and salt budgets. +ICE_BULK_SALINITY = 5.0 ! [g/kg] default = 4.0 + ! The fixed bulk salinity of sea ice. +FILLING_FRAZIL_TIMESCALE = 8.64E+04 ! [s] default = 0.0 + ! A timescale with which the filling frazil causes the thinest cells to attain + ! similar thicknesses, or a negative number to apply the frazil flux uniformly. + +! === module SIS2_ice_thm (updates) === +! This sub-module does updates of the sea-ice due to thermodynamic changes. + +! === module SIS_dyn_trans === +! This module updates the ice momentum and does ice transport. +DT_ICE_DYNAMICS = 3600.0 ! [seconds] default = -1.0 + ! The time step used for the slow ice dynamics, including stepping the + ! continuity equation and interactions between the ice mass field and + ! velocities. If 0 or negative the coupling time step will be used. +DT_RHEOLOGY = 100.0 ! [seconds] default = -1.0 + ! The sub-cycling time step for iterating the rheology and ice momentum + ! equations. If DT_RHEOLOGY is negative, the time step is set via NSTEPS_DYN. +ICE_TDAMP_ELASTIC = 0.0 ! [s or nondim] default = -0.2 + ! The damping timescale associated with the elastic terms in the sea-ice + ! dynamics equations (if positive) or the fraction of DT_ICE_DYNAMICS (if + ! negative). + +! === module SIS_tracer_advect === +SIS_TRACER_ADVECTION_SCHEME = "PPM:H3" ! default = "UPWIND_2D" + ! The horizontal transport scheme for tracers: + ! UPWIND_2D - Non-directionally split upwind + ! PCM - Directionally split piecewise constant + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + +! === module SIS_sum_output === + +! === module SIS_ice_diagnostics === +! This module handles sea-ice state diagnostics. + +! === module SIS_fast_thermo === +! This module applies rapidly varying heat fluxes to the ice and does an implicit surface temperature +! calculation. + +! === module SIS2_ice_thm (updates) === +! This sub-module does updates of the sea-ice due to thermodynamic changes. + +! === module SIS_optics === +! This module calculates the albedo and absorption profiles for shortwave radiation. diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_override b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_override new file mode 100644 index 0000000000..5d67420dc4 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_override @@ -0,0 +1 @@ +! Blank file in which we can put "overrides" for parameters diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.all b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.all new file mode 100644 index 0000000000..f9e6373acf --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.all @@ -0,0 +1,560 @@ +! This file was written by the model and records all non-layout or debugging parameters used at run-time. + +! === module ice_model === +SPECIFIED_ICE = False ! [Boolean] default = False + ! If true, the ice is specified and there is no dynamics. +CGRID_ICE_DYNAMICS = True ! [Boolean] default = True + ! If true, use a C-grid discretization of the sea-ice dynamics; if false use a + ! B-grid discretization. +USE_SLAB_ICE = False ! [Boolean] default = False + ! If true, use the very old slab-style ice. +SINGLE_ICE_STATE_TYPE = True ! [Boolean] default = True + ! If true, the fast and slow portions of the ice use a single common + ! ice_state_type. Otherwise they point to different ice_state_types that need + ! to be explicitly copied back and forth. +EULERIAN_TSURF = True ! [Boolean] default = True + ! If true, use previous calculations of the ice-top surface skin temperature for + ! tsurf at the start of atmospheric time stepping, including interpolating + ! between tsurf values from other categories in the same location. +ICE_OCEAN_STRESS_STAGGER = "C" ! default = "C" + ! A case-insensitive character string to indicate the staggering of the stress + ! field on the ocean that is returned to the coupler. Valid values include 'A', + ! 'B', or 'C', with a default that follows the value of CGRID_ICE_DYNAMICS. +RHO_OCEAN = 1030.0 ! [kg m-3] default = 1030.0 + ! The nominal density of sea water as used by SIS. +RHO_ICE = 905.0 ! [kg m-3] default = 905.0 + ! The nominal density of sea ice as used by SIS. +RHO_SNOW = 330.0 ! [kg m-3] default = 330.0 + ! The nominal density of snow as used by SIS. +G_EARTH = 9.8 ! [m s-2] default = 9.8 + ! The gravitational acceleration of the Earth. +MOMENTUM_ROUGH_ICE = 1.0E-04 ! [m] default = 1.0E-04 + ! The default momentum roughness length scale for the ocean. +HEAT_ROUGH_ICE = 1.0E-04 ! [m] default = 1.0E-04 + ! The default roughness length scale for the turbulent transfer of heat into the + ! ocean. +CONSTANT_COSZEN_IC = -1.0 ! [nondim] default = -1.0 + ! A constant value to use to initialize the cosine of the solar zenith angle for + ! the first radiation step, or a negative number to use the current time and + ! astronomy. +DT_RADIATION = 3600.0 ! [s] default = 3600.0 + ! The time step with which the shortwave radiation and fields like albedos are + ! updated. Currently this is only used to initialize albedos when there is no + ! restart file. +ICE_KMELT = 240.0 ! [W m-2 K-1] default = 240.0 + ! A constant giving the proportionality of the ocean/ice base heat flux to the + ! tempature difference, given by the product of the heat capacity per unit + ! volume of sea water times a molecular diffusive piston velocity. +ICE_BOUNDS_CHECK = True ! [Boolean] default = True + ! If true, periodically check the values of ice and snow temperatures and + ! thicknesses to ensure that they are sensible, and issue warnings if they are + ! not. This does not change answers, but can increase model run time. +FIRST_DIRECTION = 0 ! default = 0 + ! An integer that indicates which direction goes first in parts of the code that + ! use directionally split updates, with even numbers (or 0) used for x- first + ! and odd numbers used for y-first. +ICE_SEES_ATMOS_WINDS = True ! [Boolean] default = True + ! If true, the sea ice is being given wind stresses with the atmospheric sign + ! convention, and need to have their sign changed. +APPLY_SLP_TO_OCEAN = False ! [Boolean] default = False + ! If true, apply the atmospheric sea level pressure to the ocean. +PASS_STRESS_MAG_TO_OCEAN = False ! [Boolean] default = False + ! If true, provide the time and area weighted mean magnitude of the stresses on + ! the ocean to the ocean. +DO_ICEBERGS = False ! [Boolean] default = False + ! If true, call the iceberg module. +ADD_DIURNAL_SW = True ! [Boolean] default = False + ! If true, add a synthetic diurnal cycle to the shortwave radiation. +DO_SUN_ANGLE_FOR_ALB = False ! [Boolean] default = False + ! If true, find the sun angle for calculating the ocean albedo within the sea + ! ice model. +DO_RIDGING = False ! [Boolean] default = False + ! If true, call the ridging routines. +RESTARTFILE = "ice_model.res.nc" ! default = "ice_model.res.nc" + ! The name of the restart file. +FAST_ICE_RESTARTFILE = "ice_model.res.nc" ! default = "ice_model.res.nc" + ! The name of the restart file for those elements of the the sea ice that are + ! handled by the fast ice PEs. +APPLY_MASKS_AFTER_RESTART = True ! [Boolean] default = True + ! If true, applies masks to mH_ice,mH_snow and part_size after a restart. +WRITE_GEOM = 1 ! default = 1 + ! If =0, never write the geometry and vertical grid files. If =1, write the + ! geometry and vertical grid files only for a new simulation. If =2, always + ! write the geometry and vertical grid files. Other values are invalid. +INTERPOLATE_FLUXES = True ! [Boolean] default = True + ! If true, interpolate a linearized version of the fast fluxes into arealess + ! categories. +REDO_FAST_ICE_UPDATE = False ! [Boolean] default = False + ! If true, recalculate the thermal updates from the fast dynamics on the slowly + ! evolving ice state, rather than copying over the slow ice state to the fast + ! ice state. +READ_HLIM_VALS = False ! [Boolean] default = False + ! If true, read the lower limits on the ice thicknesscategories. +NCAT_ICE = 5 ! [nondim] default = 5 + ! The number of sea ice thickness categories. +NK_ICE = 4 ! [nondim] default = 4 + ! The number of layers within the sea ice. +NK_SNOW = 1 ! [nondim] default = 1 + ! The number of layers within the snow atop the sea ice. +MIN_OCEAN_PARTSIZE = 0.0 ! [nondim] default = 0.0 + ! The minimum value for the fractional open-ocean area. This can be 0, but for + ! some purposes it may be useful to set this to a miniscule value (like 1e-40) + ! that will be lost to roundoff during any sums so that the open ocean fluxes + ! can be used in with new categories. + +! === module MOM_domains === +REENTRANT_X = False ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +REENTRANT_Y = False ! [Boolean] default = False + ! If true, the domain is meridionally reentrant. +TRIPOLAR_N = False ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the domain. With + ! TRIPOLAR_N, NIGLOBAL must be even. +NIGLOBAL = 23 ! + ! The total number of thickness grid points in the x-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +NJGLOBAL = 14 ! + ! The total number of thickness grid points in the y-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +NIHALO = 2 ! default = 4 + ! The number of halo points on each side in the x-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. +NJHALO = 2 ! default = 4 + ! The number of halo points on each side in the y-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. + +! === module MOM_hor_index === +! Sets the horizontal array index types. + +! === module SIS_restart === +PARALLEL_RESTARTFILES = False ! [Boolean] default = False + ! If true, each processor writes its own restart file, otherwise a single + ! restart file is generated +MAX_FIELDS = 100 ! default = 100 + ! The maximum number of restart fields that can be used. +RESTART_CHECKSUMS_REQUIRED = True ! [Boolean] default = True + ! If true, require the restart checksums to match and error out otherwise. Users + ! may want to avoid this comparison if for example the restarts are made from a + ! run with a different mask_table than the current run, in which case the + ! checksums will not match. + +! === module SIS_initialize_fixed === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for defining the horizontal + ! grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = False + ! If true, use older code that incorrectly sets the longitude in some points + ! along the tripolar fold to be off by 360 degrees. +RAD_EARTH = 6.378E+06 ! [m] default = 6.378E+06 + ! The radius of the Earth. +TOPO_CONFIG = "file" ! default = "file" + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with a vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. +TOPO_FILE = "topog.nc" ! default = "topog.nc" + ! The file from which the bathymetry is read. +TOPO_VARNAME = "depth" ! default = "depth" + ! The name of the bathymetry variable in TOPO_FILE. +TOPO_EDITS_FILE = "" ! default = "" + ! The file from which to read a list of i,j,z topography overrides. +ALLOW_LANDMASK_CHANGES = False ! [Boolean] default = False + ! If true, allow topography overrides to change land mask. +MINIMUM_DEPTH = 0.0 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than MINIMUM_DEPTH is + ! assumed to be land and all fluxes are masked out. If MASKING_DEPTH is + ! specified, then all depths shallower than MINIMUM_DEPTH but deeper than + ! MASKING_DEPTH are rounded to MINIMUM_DEPTH. +MASKING_DEPTH = -9999.0 ! [m] default = -9999.0 + ! The depth below which to mask points as land points, for which all fluxes are + ! zeroed out. MASKING_DEPTH is ignored if it has the special default value. +!MAXIMUM_DEPTH = 608.4598627866924 ! [m] + ! The (diagnosed) maximum depth of the ocean. + +! === module SIS_open_boundary === +! Controls where open boundaries are located, what kind of boundary condition to impose, and what data to apply, +! if any. +OBC_NUMBER_OF_SEGMENTS = 0 ! default = 0 + ! The number of open boundary segments. +CHANNEL_CONFIG = "none" ! default = "none" + ! A parameter that determines which set of channels are restricted to specific + ! widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +ROTATION = "2omegasinlat" ! default = "2omegasinlat" + ! This specifies how the Coriolis parameter is specified: + ! 2omegasinlat - Use twice the planetary rotation rate + ! times the sine of latitude. + ! betaplane - Use a beta-plane or f-plane. + ! USER - call a user modified routine. +OMEGA = 7.2921E-05 ! [s-1] default = 7.2921E-05 + ! The rotation rate of the earth. +GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = False + ! If true, use an older algorithm to calculate the sine and cosines needed + ! rotate between grid-oriented directions and true north and east. Differences + ! arise at the tripolar fold. + +! === module hor_grid === +! Parameters providing information about the lateral grid. + +! === module MOM_hor_index === +! Sets the horizontal array index types. +SIS_AVAILABLE_DIAGS_FILE = "SIS.available_diags" ! default = "SIS.available_diags" + ! A file into which to write a list of all available sea ice diagnostics that + ! can be included in a diag_table. + +! === module SIS2_ice_thm (thermo) === +! This sub-module calculates ice thermodynamic quantities. +LATENT_HEAT_FUSION = 3.34E+05 ! [J kg-1] default = 3.34E+05 + ! The latent heat of fusion as used by SIS. +LATENT_HEAT_VAPOR = 2.5E+06 ! [J kg-1] default = 2.5E+06 + ! The latent heat of vaporization of water at 0C as used by SIS. +CP_ICE = 2100.0 ! [J kg-1 K-1] default = 2100.0 + ! The heat capacity of fresh ice, approximated as a constant. +CP_SEAWATER = 4200.0 ! [J kg-1 K-1] default = 4200.0 + ! The heat capacity of sea water, approximated as a constant. +CP_BRINE = 4200.0 ! [J kg-1 K-1] default = 4200.0 + ! The heat capacity of water in brine pockets within the sea-ice, approximated + ! as a constant. CP_BRINE and CP_SEAWATER should be equal, but for + ! computational convenience CP_BRINE can be set equal to CP_ICE. +DTFREEZE_DS = -0.054 ! [deg C PSU-1] default = -0.054 + ! The derivative of the freezing temperature with salinity. +ENTHALPY_LIQUID_0 = 0.0 ! [J kg-1] default = 0.0 + ! The enthalpy of liquid fresh water at 0 C. The solutions should be physically + ! consistent when this is adjusted, because only the relative value is of + ! physical meaning, but roundoff errors can change the solution. +SUBLIMATION_BUG = False ! [Boolean] default = False + ! If true use an older calculation that omits the latent heat of fusion from the + ! latent heat of sublimation. This variable should be obsoleted as soon as + ! possible. + +! === module SIS_tracer_registry === + +! === module SIS_tracer_flow_control === +USE_ICE_AGE_TRACER = False ! [Boolean] default = False + ! If true, use the concentration based age tracer package. +SIS_FAST_AVAILABLE_DIAGS_FILE = "SIS_fast.available_diags" ! default = "SIS_fast.available_diags" + ! A file into which to write a list of all available sea ice diagnostics that + ! can be included in a diag_table. +CONCENTRATION_INIT_CONFIG = "data_override" ! default = "data_override" + ! A string that determines how the initial total sea ice concentration is + ! initialized for a new run: + ! file - read sea ice concentrations from a specified file + ! data_override - use the data_override capability or zero everywhere + ! zero - there is no sea ice anywhere + ! latitudes - initial sea ice concentration is a function of latitude. +ICE_THICKNESS_INIT_CONFIG = "data_override" ! default = "data_override" + ! A string that determines how the initial sea ice thickness is initialized for + ! a new run: + ! file - read sea ice thickesses from a specified file + ! data_override - use the data_override capability or zero everywhere + ! uniform - sea ice has uniform thickness where the concentration is + ! nonzero. +SNOW_THICKNESS_INIT_CONFIG = "data_override" ! default = "data_override" + ! A string that determines how the initial total snow thickness is initialized + ! for a new run: + ! file - read sea ice concentrations from a specified file + ! data_override - use the data_override capability or zero everywhere + ! uniform - snow has uniform thickness where the concentration is nonzero. +ICE_SALINITY_INIT_CONFIG = "uniform" ! default = "uniform" + ! A string that determines how the sea ice salinity is initialized for a new + ! run: + ! uniform - Use a constant ice salinity initial condition + ! file - Read sea ice salinities from a specified file + ! data_override - use the data_override capability or zero everywhere. +ICE_ENTHALPY_INIT_CONFIG = "uniform_temp" ! default = "uniform_temp" + ! A string that determines how the sea ice enthalpy is initialized for a new + ! run: + ! uniform_temp - Use a constant ice temperature initial condition + ! relative_temp - Use an ice temperature initial condition with a + ! specified depression below the bulk ice freezing point + ! file - Read sea ice temperatures or enthalpies from a specified file + ! data_override - use the data_override capability or freezing enthalpy + ! everywhere. +SNOW_ENTHALPY_INIT_CONFIG = "uniform_temp" ! default = "uniform_temp" + ! A string that determines how the snow enthalpy is initialized for a new run: + ! uniform_temp - Use a constant ice temperature initial condition + ! relative_temp - Use an ice temperature initial condition with a + ! specified depression below the bulk ice freezing point + ! file - Read sea ice temperatures or enthalpies from a specified file + ! data_override - use the data_override capability or freezing enthalpy + ! everywhere. +ICE_SALINITY_IC = 5.0 ! [g kg-1] default = 5.0 + ! The uniform sea ice salinity used for the initial condition +ICE_TEMPERATURE_IC = -4.0 ! [degC] default = -4.0 + ! The uniform sea ice and snow temperature used for the initial condition + +! === module SIS_slow_thermo === +! This module calculates the slow evolution of the ice mass, heat, and salt budgets. +ICE_BULK_SALINITY = 5.0 ! [g/kg] default = 4.0 + ! The fixed bulk salinity of sea ice. +ICE_RELATIVE_SALINITY = 0.0 ! [nondim] default = 0.0 + ! The initial salinity of sea ice as a fraction of the salinity of the seawater + ! from which it formed. +SIS2_FILLING_FRAZIL = True ! [Boolean] default = True + ! If true, apply frazil to fill as many categories as possible to fill in a + ! uniform (minimum) amount of ice in all the thinnest categories. Otherwise the + ! frazil is always assigned to a single category. +FILLING_FRAZIL_TIMESCALE = 8.64E+04 ! [s] default = 0.0 + ! A timescale with which the filling frazil causes the thinest cells to attain + ! similar thicknesses, or a negative number to apply the frazil flux uniformly. +APPLY_ICE_LIMIT = False ! [Boolean] default = False + ! If true, restore the sea ice state toward climatology. +DO_ICE_RESTORE = False ! [Boolean] default = False + ! If true, restore the sea ice state toward climatology. +NUDGE_SEA_ICE = False ! [Boolean] default = False + ! If true, constrain the sea ice concentrations using observations. +TRANSMUTE_SEA_ICE = False ! [Boolean] default = False + ! If true, allow ice to be transmuted directly into seawater with a spatially + ! varying rate as a form of outflow open boundary condition. + +! === module SIS2_ice_thm (updates) === +! This sub-module does updates of the sea-ice due to thermodynamic changes. +SNOW_CONDUCTIVITY = 0.31 ! [W m-1 K-1] default = 0.31 + ! The conductivity of heat in snow. +ICE_CONDUCTIVITY = 2.03 ! [W m-1 K-1] default = 2.03 + ! The conductivity of heat in ice. +MIN_H_FOR_TEMP_CALC = 0.0 ! [m] default = 0.0 + ! The minimum ice thickness at which to do temperature calculations. +DO_POND = False ! [Boolean] default = False + ! If true, calculate melt ponds and use them for shortwave radiation + ! calculation. +TDRAIN = -0.8 ! [degC] default = -0.8 + ! Melt ponds drain to sea level when ice average temp. exceeds TDRAIN (stand-in + ! for mushy layer thermo) +R_MIN_POND = 0.15 ! [nondim] default = 0.15 + ! Minimum retention rate of surface water sources in melt pond (retention scales + ! linearly with ice cover) +R_MAX_POND = 0.9 ! [nondim] default = 0.9 + ! Maximum retention rate of surface water sources in melt pond (retention scales + ! linearly with ice cover) +MIN_POND_FRAC = 0.2 ! [nondim] default = 0.2 + ! Minimum melt pond cover (by ponds at sea level) pond drains to this when ice + ! is porous. +MAX_POND_FRAC = 0.5 ! [nondim] default = 0.5 + ! Maximum melt pond cover - associated with pond volume that suppresses ice top + ! to waterline +ICE_TEMP_RANGE_ESTIMATE = 40.0 ! [degC] default = 40.0 + ! An estimate of the range of snow and ice temperatures that is used to evaluate + ! whether an explicit diffusive form of the heat fluxes or an inversion based on + ! the layer heat budget is more likely to be more accurate. Setting this to 0 + ! causes the explicit diffusive form. to always be used. + +! === module SIS_dyn_trans === +! This module updates the ice momentum and does ice transport. +DT_ICE_DYNAMICS = 3600.0 ! [seconds] default = -1.0 + ! The time step used for the slow ice dynamics, including stepping the + ! continuity equation and interactions between the ice mass field and + ! velocities. If 0 or negative the coupling time step will be used. +MERGED_CONTINUITY = False ! [Boolean] default = False + ! If true, update the continuity equations for the ice, snow, and melt pond + ! water together summed across categories, with proportionate fluxes for each + ! part. Otherwise the media are updated separately. +NSTEPS_ADV = 1 ! default = 1 + ! The number of advective iterations for each slow dynamics time step. +ICEBERG_WINDSTRESS_BUG = False ! [Boolean] default = False + ! If true, use older code that applied an old ice-ocean stress to the icebergs + ! in place of the current air-ocean stress. This option is here for backward + ! compatibility, but should be avoided. +WARSAW_SUM_ORDER = True ! [Boolean] default = True + ! If true, use the order of sums in the Warsaw version of SIS2. The default is + ! the opposite of MERGED_CONTINUITY. This option exists for backward + ! compatibilty but may eventually be obsoleted. +TIMEUNIT = 8.64E+04 ! [s] default = 8.64E+04 + ! The time unit for ICE_STATS_INTERVAL. +ICE_STATS_INTERVAL = 1.0 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between writes of the globally summed ice + ! statistics and conservation checks. +DT_RHEOLOGY = 100.0 ! [seconds] default = -1.0 + ! The sub-cycling time step for iterating the rheology and ice momentum + ! equations. If DT_RHEOLOGY is negative, the time step is set via NSTEPS_DYN. +ICE_TDAMP_ELASTIC = 0.0 ! [s or nondim] default = -0.2 + ! The damping timescale associated with the elastic terms in the sea-ice + ! dynamics equations (if positive) or the fraction of DT_ICE_DYNAMICS (if + ! negative). +WEAK_LOW_SHEAR_ICE = False ! [Boolean] default = False + ! If true, the divergent stresses go toward 0 in the C-grid dynamics when the + ! shear magnitudes are very weak. Otherwise they go to -P_ice. This setting is + ! temporary. +PROJECT_ICE_DRAG_VEL = True ! [Boolean] default = True + ! If true, project forward the ice velocity used in the drag calculation to + ! avoid an instability that can occur when a finite stress is applied to thin + ! ice moving with the velocity of the ocean. +ICE_YIELD_ELLIPTICITY = 2.0 ! [Nondim] default = 2.0 + ! The ellipticity coefficient for the plastic yield curve in the sea-ice + ! rheology. For an infinite ellipticity (i.e., a cavitating fluid rheology), + ! use 0. +ICE_STRENGTH_PSTAR = 2.75E+04 ! [Pa] default = 2.75E+04 + ! A constant in the expression for the ice strength, P* in Hunke & Dukowicz + ! 1997. +ICE_STRENGTH_CSTAR = 20.0 ! [nondim] default = 20.0 + ! A constant in the exponent of the expression for the ice strength, c* in Hunke + ! & Dukowicz 1997. +ICE_CDRAG_WATER = 0.00324 ! [nondim] default = 0.00324 + ! The drag coefficient between the sea ice and water. +MIN_OCN_INTERTIAL_H = 0.0 ! [m] default = 0.0 + ! A minimum ocean thickness used to limit the viscous coupling rate implied for + ! the ocean by the ice-ocean stress. Only used if positive. +ICE_DEL_SH_MIN_SCALE = 2.0 ! [nondim] default = 2.0 + ! A scaling factor for the lower bound on the shear rates used in the + ! denominator of the stress calculation. This probably needs to be greater than + ! 1. +PROJECT_ICE_CONCENTRATION = True ! [Boolean] default = True + ! If true, project the evolution of the ice concentration due to the convergence + ! or divergence of the ice flow. +VEL_UNDERFLOW = 0.0 ! [m s-1] default = 0.0 + ! A negligibly small velocity magnitude below which velocity components are set + ! to 0. A reasonable value might be 1e-30 m/s, which is less than an Angstrom + ! divided by the age of the universe. +STRESS_UNDERFLOW = 0.0 ! [Pa m] default = 0.0 + ! A negligibly small magnitude below which ice stress tensor components are set + ! to 0. A reasonable value might be 1e-15 kg m-1 s-1 times vel_underflow. +CFL_TRUNCATE = 0.5 ! [nondim] default = 0.5 + ! The value of the CFL number that will cause ice velocity components to be + ! truncated; instability can occur past 0.5. +CFL_TRUNC_DYN_ITS = False ! [Boolean] default = False + ! If true, check the CFL number for every iteration of the rheology solver; + ! otherwise only the final velocities that are used for transport are checked. +LEMIEUX_LANDFAST = False ! [Boolean] default = False + ! If true, turn on Lemieux landfast ice parameterization. +ITD_LANDFAST = False ! [Boolean] default = False + ! If true, turn on probabilistic landfast ice parameterization. +RECATEGORIZE_ICE = True ! [Boolean] default = True + ! If true, readjust the distribution into ice thickness categories after + ! advection. +SEA_ICE_ROLL_FACTOR = 1.0 ! [Nondim] default = 1.0 + ! A factor by which the propensity of small amounts of thick sea-ice to become + ! thinner by rolling is increased or 0 to disable rolling. This can be thought + ! of as the minimum number of ice floes in a grid cell divided by the horizontal + ! floe aspect ratio. Sensible values are 0 (no rolling) or larger than 1. +ICE_COVER_DISCARD = -1.0 ! [nondim] default = -1.0 + ! A tiny fractional ice coverage which if positive causes the mass in categories + ! with less than this coverage to be discarded. +SIS_THICKNESS_ADVECTION_SCHEME = "UPWIND_2D" ! default = "UPWIND_2D" + ! The horizontal transport scheme for thickness: + ! UPWIND_2D - Non-directionally split upwind + ! PCM - Directionally split piecewise constant + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) +INCONSISTENT_COVER_BUG = False ! [Boolean] default = False + ! If true, omit a recalculation of the fractional ice-free areal coverage after + ! the adjustment of the ice categories. +SIS_CONTINUITY_SCHEME = "UPWIND_2D" ! default = "UPWIND_2D" + ! The horizontal transport scheme used in continuity: + ! UPWIND_2D - Non-directionally split upwind + ! PCM - Directionally split piecewise constant + ! PPM:C2PD - Positive definite PPM with 2nd order edge values + ! PPM:C2MO - Monotonic PPM with 2nd order edge values +CONT_PPM_VOLUME_BASED_CFL = False ! [Boolean] default = False + ! If true, use the ratio of the open face lengths to the tracer cell areas when + ! estimating CFL numbers. +CONTINUITY_H_NEGLECT = 0.0 ! [kg m-2] default = 0.0 + ! The category ice mass per ocean cell area below which the transport within + ! this thickness category of out of a cell is set to zero. A suggested + ! non-default value might be of order 3e-32 kg m-2, which is one molecule of ice + ! per square kilometer. +CONTINUITY_FRAC_NEGLECT = 0.0 ! [nondim] default = 0.0 + ! When the total fluxes are distributed between categories with + ! MERGED_CONTINUITY, any category whose ice is less than this fraction of the + ! total mass contributes no flux. Without MERGED_CONTINUITY, any snow or melt + ! pond transport that is less than this fraction of the ice transport is zeroed + ! out. A suggested non-default value might be of order 1e-20. + +! === module SIS_tracer_advect === +SIS_TRACER_ADVECTION_SCHEME = "PPM:H3" ! default = "UPWIND_2D" + ! The horizontal transport scheme for tracers: + ! UPWIND_2D - Non-directionally split upwind + ! PCM - Directionally split piecewise constant + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) +CFL_MASS_NEGLECT_BUG = False ! [Boolean] default = False + ! If true use a globally constant negligible volume in the denominator of the + ! tracer advection CFL calculation, reproducing an older incorrect expression, + ! rather than using a proper scaling of this negligible mass with cell area. +ADCROFT_ADVECTIVE_CFL = False ! [Boolean] default = False + ! If true use the Adcroft reciprocal of the cell mass when calculating the + ! advective CFL numbers used in PPM tracer advection schemes, rather than adding + ! a small mass in the denominator of the advective CFL ratio. + +! === module SIS_sum_output === +WRITE_STOCKS = True ! [Boolean] default = True + ! If true, write the integrated tracer amounts to stdout when the statistics + ! files are written. +STDOUT_HEARTBEAT = True ! [Boolean] default = True + ! If true, periodically write sea ice statistics to stdout to allow the progress + ! to be seen. +MAXTRUNC = 0 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very large value if the velocity + ! is truncated more than MAXTRUNC times between writing ice statistics. Set + ! MAXTRUNC to 0 to stop if there is any truncation of sea ice velocities. +STATISTICS_FILE = "seaice.stats" ! default = "seaice.stats" + ! The file to use to write the globally integrated statistics. + +! === module SIS_ice_diagnostics === +! This module handles sea-ice state diagnostics. + +! === module SIS_fast_thermo === +! This module applies rapidly varying heat fluxes to the ice and does an implicit surface temperature +! calculation. +REORDER_0C_HEATFLUX = False ! [Boolean] default = False + ! If true, rearrange the calculation of the heat fluxes projected back to 0C to + ! work on each contribution separately, so that they can be indentically + ! replicated if there is a single fast timestep per coupled timestep and + ! REDO_FAST_ICE_UPDATE=True. +MAX_TSKIN_ITT = 10 ! default = 10 + ! The maximum number of iterations of the skin temperature and optical + ! properties during redo_update_ice_model_fast. + +! === module SIS2_ice_thm (updates) === +! This sub-module does updates of the sea-ice due to thermodynamic changes. + +! === module SIS_optics === +! This module calculates the albedo and absorption profiles for shortwave radiation. +DO_DELTA_EDDINGTON_SW = True ! [Boolean] default = True + ! If true, a delta-Eddington radiative transfer calculation for the shortwave + ! radiation within the sea-ice. +ICE_DELTA_EDD_R_ICE = 0.0 ! [nondimensional] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative propeties of sea + ! ice with the delta-Eddington radiative transfer calculation. +ICE_DELTA_EDD_R_SNOW = 0.0 ! [nondimensional] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative propeties of snow + ! on sea ice with the delta-Eddington radiative transfer calculation. +ICE_DELTA_EDD_R_POND = 0.0 ! [nondimensional] default = 0.0 + ! A dreadfully documented tuning parameter for the radiative propeties of + ! meltwater ponds on sea ice with the delta-Eddington radiative transfer + ! calculation. + +! === module MOM_file_parser === +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +DOCUMENT_FILE = "SIS_parameter_doc" ! default = "SIS_parameter_doc" + ! The basename for files where run-time parameters, their settings, units and + ! defaults are documented. Blank will disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are documented in SIS_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are documented in + ! SIS_parameter_doc.short . diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.debugging b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.debugging new file mode 100644 index 0000000000..83f366cb9f --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.debugging @@ -0,0 +1,66 @@ +! This file was written by the model and records the debugging parameters used at run-time. + +! === module MOM_unit_scaling === +! Parameters for doing unit scaling of variables. +Z_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! depths and heights. Valid values range from -300 to 300. +L_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! lateral distances. Valid values range from -300 to 300. +T_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! time. Valid values range from -300 to 300. +R_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! density. Valid values range from -300 to 300. +Q_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! heat content. Valid values range from -300 to 300. +C_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! temperature. Valid values range from -300 to 300. +S_RESCALE_POWER = 0 ! default = 0 + ! An integer power of 2 that is used to rescale the model's internal units of + ! salinity. Valid values range from -300 to 300. +DEBUG = False ! [Boolean] default = False + ! If true, write out verbose debugging data. +DEBUG_SLOW_ICE = False ! [Boolean] default = False + ! If true, write out verbose debugging data on the slow ice PEs. +DEBUG_FAST_ICE = False ! [Boolean] default = False + ! If true, write out verbose debugging data on the fast ice PEs. +DEBUG_CHKSUMS = False ! [Boolean] default = False + ! If true, checksums are performed on arrays in the various vec_chksum routines. +DEBUG_REDUNDANT = False ! [Boolean] default = False + ! If true, debug redundant data points during calls to the various vec_chksum + ! routines. +COLUMN_CHECK = False ! [Boolean] default = False + ! If true, add code to allow debugging of conservation column-by-column. This + ! does not change answers, but can increase model run time. +IMBALANCE_TOLERANCE = 1.0E-09 ! [nondim] default = 1.0E-09 + ! The tolerance for imbalances to be flagged by COLUMN_CHECK. +VERBOSE = False ! [Boolean] default = False + ! If true, write out verbose diagnostics. +DEBUG_EVP_SUBSTEPS = False ! [Boolean] default = False + ! If true, write out verbose debugging data for each of the steps within the EVP + ! solver. +U_TRUNC_FILE = "" ! default = "" + ! The absolute path to the file where the accelerations leading to zonal + ! velocity truncations are written. Leave this empty for efficiency if this + ! diagnostic is not needed. +V_TRUNC_FILE = "" ! default = "" + ! The absolute path to the file where the accelerations leading to meridional + ! velocity truncations are written. Leave this empty for efficiency if this + ! diagnostic is not needed. +MAX_TRUNC_FILE_SIZE_PER_PE = 50 ! default = 50 + ! The maximum number of colums of truncations that any PE will write out during + ! a run. +CHECK_ICE_TRANSPORT_CONSERVATION = False ! [Boolean] default = False + ! If true, use add multiple diagnostics of ice and snow mass conservation in the + ! sea-ice transport code. This is expensive and should be used sparingly. + +! === module MOM_file_parser === +REPORT_UNUSED_PARAMS = True ! [Boolean] default = True + ! If true, report any parameter lines that are not used in the run. +FATAL_UNUSED_PARAMS = False ! [Boolean] default = False + ! If true, kill the run if there are any unused parameters. diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.layout b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.layout new file mode 100644 index 0000000000..dac1f74906 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.layout @@ -0,0 +1,53 @@ +! This file was written by the model and records the layout parameters used at run-time. +GLOBAL_INDEXING = False ! [Boolean] default = False + ! If true, use a global lateral indexing convention, so that corresponding + ! points on different processors have the same index. This does not work with + ! static memory. + +! === module MOM_domains === +!SYMMETRIC_MEMORY_ = False ! [Boolean] + ! If defined, the velocity point data domain includes every face of the + ! thickness points. In other words, some arrays are larger than others, + ! depending on where they are on the staggered grid. Also, the starting index + ! of the velocity-point arrays is usually 0, not 1. This can only be set at + ! compile time. +NONBLOCKING_UPDATES = False ! [Boolean] default = False + ! If true, non-blocking halo updates may be used. +THIN_HALO_UPDATES = True ! [Boolean] default = True + ! If true, optional arguments may be used to specify the width of the halos that + ! are updated with each call. +!STATIC_MEMORY_ = False ! [Boolean] + ! If STATIC_MEMORY_ is defined, the principle variables will have sizes that are + ! statically determined at compile time. Otherwise the sizes are not determined + ! until run time. The STATIC option is substantially faster, but does not allow + ! the PE count to be changed at run time. This can only be set at compile time. +AUTO_MASKTABLE = False ! [Boolean] default = False + ! Turn on automatic mask table generation to eliminate land blocks. +MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" + ! A text file to specify n_mask, layout and mask_list. This feature masks out + ! processors that contain only land points. The first line of mask_table is the + ! number of regions to be masked out. The second line is the layout of the model + ! and must be consistent with the actual model layout. The following (n_mask) + ! lines give the logical positions of the processors that are masked out. The + ! mask_table can be created by tools like check_mask. The following example of + ! mask_table masks out 2 processors, (1,2) and (3,6), out of the 24 in a 4x6 + ! layout: + ! 2 + ! 4,6 + ! 1,2 + ! 3,6 +NIPROC = 4 ! + ! The number of processors in the x-direction. With STATIC_MEMORY_ this is set + ! in SIS2_memory.h at compile time. +NJPROC = 2 ! + ! The number of processors in the y-direction. With STATIC_MEMORY_ this is set + ! in SIS2_memory.h at compile time. +LAYOUT = 4, 2 ! + ! The processor layout that was actually used. +IO_LAYOUT = 1, 1 ! default = 1, 1 + ! The processor layout to be used, or 0,0 to automatically set the io_layout to + ! be the same as the layout. +NIBLOCK = 1 ! default = 1 + ! The number of blocks in the x-direction on each processor (for openmp). +NJBLOCK = 1 ! default = 1 + ! The number of blocks in the y-direction on each processor (for openmp). diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.short b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.short new file mode 100644 index 0000000000..dda898e71b --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/SIS_parameter_doc.short @@ -0,0 +1,97 @@ +! This file was written by the model and records the non-default parameters used at run-time. + +! === module ice_model === +ADD_DIURNAL_SW = True ! [Boolean] default = False + ! If true, add a synthetic diurnal cycle to the shortwave radiation. + +! === module MOM_domains === +REENTRANT_X = False ! [Boolean] default = True + ! If true, the domain is zonally reentrant. +NIGLOBAL = 23 ! + ! The total number of thickness grid points in the x-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +NJGLOBAL = 14 ! + ! The total number of thickness grid points in the y-direction in the physical + ! domain. With STATIC_MEMORY_ this is set in SIS2_memory.h at compile time. +NIHALO = 2 ! default = 4 + ! The number of halo points on each side in the x-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. +NJHALO = 2 ! default = 4 + ! The number of halo points on each side in the y-direction. How this is set + ! varies with the calling component and static or dynamic memory configuration. + +! === module SIS_initialize_fixed === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +GRID_CONFIG = "mosaic" ! + ! A character string that determines the method for defining the horizontal + ! grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +!MAXIMUM_DEPTH = 608.4598627866924 ! [m] + ! The (diagnosed) maximum depth of the ocean. + +! === module hor_grid === +! Parameters providing information about the lateral grid. + +! === module SIS2_ice_thm (thermo) === +! This sub-module calculates ice thermodynamic quantities. + +! === module SIS_tracer_registry === + +! === module SIS_tracer_flow_control === + +! === module SIS_slow_thermo === +! This module calculates the slow evolution of the ice mass, heat, and salt budgets. +ICE_BULK_SALINITY = 5.0 ! [g/kg] default = 4.0 + ! The fixed bulk salinity of sea ice. +FILLING_FRAZIL_TIMESCALE = 8.64E+04 ! [s] default = 0.0 + ! A timescale with which the filling frazil causes the thinest cells to attain + ! similar thicknesses, or a negative number to apply the frazil flux uniformly. + +! === module SIS2_ice_thm (updates) === +! This sub-module does updates of the sea-ice due to thermodynamic changes. + +! === module SIS_dyn_trans === +! This module updates the ice momentum and does ice transport. +DT_ICE_DYNAMICS = 3600.0 ! [seconds] default = -1.0 + ! The time step used for the slow ice dynamics, including stepping the + ! continuity equation and interactions between the ice mass field and + ! velocities. If 0 or negative the coupling time step will be used. +DT_RHEOLOGY = 100.0 ! [seconds] default = -1.0 + ! The sub-cycling time step for iterating the rheology and ice momentum + ! equations. If DT_RHEOLOGY is negative, the time step is set via NSTEPS_DYN. +ICE_TDAMP_ELASTIC = 0.0 ! [s or nondim] default = -0.2 + ! The damping timescale associated with the elastic terms in the sea-ice + ! dynamics equations (if positive) or the fraction of DT_ICE_DYNAMICS (if + ! negative). + +! === module SIS_tracer_advect === +SIS_TRACER_ADVECTION_SCHEME = "PPM:H3" ! default = "UPWIND_2D" + ! The horizontal transport scheme for tracers: + ! UPWIND_2D - Non-directionally split upwind + ! PCM - Directionally split piecewise constant + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + +! === module SIS_sum_output === + +! === module SIS_ice_diagnostics === +! This module handles sea-ice state diagnostics. + +! === module SIS_fast_thermo === +! This module applies rapidly varying heat fluxes to the ice and does an implicit surface temperature +! calculation. + +! === module SIS2_ice_thm (updates) === +! This sub-module does updates of the sea-ice due to thermodynamic changes. + +! === module SIS_optics === +! This module calculates the albedo and absorption profiles for shortwave radiation. diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/analysis.ipynb b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/analysis.ipynb new file mode 100644 index 0000000000..8a14c162ee --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/analysis.ipynb @@ -0,0 +1,185 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 92, + "id": "29a54806-71c0-42df-a6d5-ff9a65976870", + "metadata": {}, + "outputs": [], + "source": [ + "import xarray as xr" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "id": "b560155a-e533-4baa-b0c2-fba092483e90", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xarray/coding/times.py:992: SerializationWarning: Unable to decode time axis into full numpy.datetime64 objects, continuing using cftime.datetime objects instead, reason: dates out of range\n", + " dtype = _decode_cf_datetime_dtype(data, units, calendar, self.use_cftime)\n" + ] + } + ], + "source": [ + "ds = xr.open_mfdataset(\"00010101.ocean_hourly_sclr_thck_*.nc\")\n", + "ds_natv = xr.merge([\n", + " xr.open_mfdataset(\"00010101.ocean_hourly_natv_thck_*.nc\"),\n", + " xr.open_mfdataset(\"00010101.ocean_hourly_natv_heat_*.nc\")\n", + "])\n", + "og = xr.open_dataset(\"00010101.ocean_static.nc\")" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "id": "367e6997-1bdf-4ded-949d-65cad643a5a7", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "zi = np.concatenate([[0], 0.5*(ds_natv.zl.values[1:] + ds_natv.zl.values[:-1]), [6000]])\n", + "ds_natv = ds_natv.assign_coords({\"zi\": xr.DataArray(zi, dims=(\"zi\",))})" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "id": "fd41831d-c144-40fd-bc18-5ece0d258fad", + "metadata": {}, + "outputs": [], + "source": [ + "from xgcm import Grid\n", + "# z-coordinate dataset containing basic state variables\n", + "coords = {\n", + " 'X': {'center': 'xh'},\n", + " 'Y': {'center': 'yh'},\n", + " 'Z': {'center': 'zl', 'outer': 'zi'},\n", + "}\n", + "boundary = {\"X\":\"extend\", \"Y\":\"extend\", \"Z\":\"extend\"}\n", + "grid = Grid(ds_natv, coords=coords, boundary=boundary, autoparse_metadata=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "id": "9ca25617-8b06-4c4a-a506-0cadd47f9a4c", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xgcm/transform.py:464: UserWarning: The `target data` input is not located on the cell bounds. This method will continue with linear interpolation with repeated boundary values. For most accurate results provide values on cell bounds.\n", + " warnings.warn(\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xgcm/grid_ufunc.py:836: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + " out_dim: grid._ds.dims[out_dim] for arg in out_core_dims for out_dim in arg\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xgcm/transform.py:245: FutureWarning: ``output_sizes`` should be given in the ``dask_gufunc_kwargs`` parameter. It will be removed as direct parameter in a future version.\n", + " out = xr.apply_ufunc(\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xgcm/transform.py:464: UserWarning: The `target data` input is not located on the cell bounds. This method will continue with linear interpolation with repeated boundary values. For most accurate results provide values on cell bounds.\n", + " warnings.warn(\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xgcm/grid_ufunc.py:836: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + " out_dim: grid._ds.dims[out_dim] for arg in out_core_dims for out_dim in arg\n", + "/Users/henrifdrake/anaconda3/envs/xwmb_stack/lib/python3.12/site-packages/xgcm/transform.py:245: FutureWarning: ``output_sizes`` should be given in the ``dask_gufunc_kwargs`` parameter. It will be removed as direct parameter in a future version.\n", + " out = xr.apply_ufunc(\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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IAiCIASQCMYEQRAEQRACSARjLcA777xDUlISJpOJ5ORkVq5cGeghtSgvvPACgwcPJiQkhNjYWK644gr27NkT6GG1eC+88AKSJPHggw8GeigtTlZWFjfffDNRUVFYLBYGDBjApk2bAj2sFsXpdPLEE0+QlJSE2WymU6dOPP3008iyHOihNXsrVqzg0ksvJTExEUmS+OGHH6rcrigK//73v0lMTMRsNjN69Gh27twZmMHWkQjGmrm5c+fy4IMP8vjjj5OamsqIESMYP348hw8fDvTQWozly5dz77338tdff7FkyRKcTidjx46lvLw80ENrsTZs2MD7779Pv379Aj2UFqewsJBzzz0XvV7Pr7/+yq5du/jvf//b7LaPaepeeukl3n33Xd566y3S0tJ4+eWXeeWVV/i///u/QA+t2SsvL6d///689dZbNd7+8ssvM2vWLN566y02bNhAfHw8F154oXfv6SZJEZq1IUOGKFOmTKlyrEePHsqjjz4aoBG1fLm5uQqgLF++PNBDaZFKS0uVrl27KkuWLFFGjRqlPPDAA4EeUovyyCOPKOedd16gh9HiXXzxxcodd9xR5dhVV12l3HzzzQEaUcsEKPPnz/d+LcuyEh8fr7z44oveY1arVQkLC1PefffdAIywbkRmrBmz2+1s2rSJsWPHVjk+duxY1qxZE6BRtXzFxcUAREZGBngkLdO9997LxRdfzAUXXBDoobRICxYsICUlhWuvvZbY2FgGDhzIBx98EOhhtTjnnXcef/zxB3v37gVg69atrFq1igkTJgR4ZC1bRkYGOTk5VV4XjUYjo0aNatKvi2Kj8GYsPz8fl8tFXFxcleNxcXHk5OQEaFQtm6IoTJ8+nfPOO48+ffoEejgtzjfffMPmzZvZsGFDoIfSYh04cIDZs2czffp0HnvsMdavX8/999+P0Whk0qRJgR5ei/HII49QXFxMjx490Gq1uFwunnvuOW644YZAD61F87z21fS6eOjQoUAMqU5EMNYCSJJU5WtFUaodE/xj6tSpbNu2jVWrVgV6KC1OZmYmDzzwAIsXL8ZkMgV6OC2WLMukpKTw/PPPAzBw4EB27tzJ7NmzRTDmR3PnzuWLL77gq6++onfv3mzZsoUHH3yQxMREbr311kAPr8Vrbq+LIhhrxqKjo9FqtdWyYLm5udXeFQi+u++++1iwYAErVqygbdu2gR5Oi7Np0yZyc3NJTk72HnO5XKxYsYK33noLm82GVqsN4AhbhoSEBHr16lXlWM+ePZk3b16ARtQyPfzwwzz66KNcf/31APTt25dDhw7xwgsviGCsAcXHxwNqhiwhIcF7vKm/LoqasWbMYDCQnJzMkiVLqhxfsmQJw4cPD9CoWh5FUZg6dSrff/89f/75J0lJSYEeUot0/vnns337drZs2eL9SElJ4aabbmLLli0iEPOTc889t1prlr1799KhQ4cAjahlqqioQKOp+hKr1WpFa4sGlpSURHx8fJXXRbvdzvLly5v066LIjDVz06dP55ZbbiElJYVhw4bx/vvvc/jwYaZMmRLoobUY9957L1999RU//vgjISEh3kxkWFgYZrM5wKNrOUJCQqrV4QUFBREVFSXq8/xo2rRpDB8+nOeff57rrruO9evX8/777/P+++8HemgtyqWXXspzzz1H+/bt6d27N6mpqcyaNYs77rgj0ENr9srKykhPT/d+nZGRwZYtW4iMjKR9+/Y8+OCDPP/883Tt2pWuXbvy/PPPY7FYuPHGGwM46jMI7GJOwR/efvttpUOHDorBYFAGDRokWi74GVDjxyeffBLoobV4orVFw/jpp5+UPn36KEajUenRo4fy/vvvB3pILU5JSYnywAMPKO3bt1dMJpPSqVMn5fHHH1dsNlugh9bsLV26tMbn5FtvvVVRFLW9xVNPPaXEx8crRqNRGTlypLJ9+/bADvoMJEVRlADFgYIgCIIgCK2eqBkTBEEQBEEIIBGMCYIgCIIgBJAIxgRBEARBEAJIBGOCIAiCIAgBJIIxQRAEQRCEABLBmCAIgiAIQgCJYEwQBEEQBCGARDAmCILQyDp27IgkSUiSRFFRkd+u67lmeHi4364pCELDE8GYIAiMHj2aBx98MNDDaBT//ve/GTBgQKCHwdNPP012djZhYWEA7N69mzFjxpCcnMzAgQNZsGBBlfPT09O5/fbbadu2LUajkaSkJG644QY2btzoPSc7O5vXX3+9Mb8NQRD8QARjgiC0CHa7vVEfT1EUnE5nve8fEhJCfHw8kiQBcPvtt3PPPfewadMmvv/+eyZPnkxhYSEAGzduJDk5mb179/Lee++xa9cu5s+fT48ePfjnP//pvWZ8fLw3uBMEofkQwZggtHK33XYby5cv54033vBOcx08eBCAXbt2MWHCBIKDg4mLi+OWW24hPz/fe9/Ro0dz33338eCDDxIREUFcXBzvv/8+5eXl3H777YSEhNC5c2d+/fVX732WLVuGJEn88ssv9O/fH5PJxNChQ9m+fXuVca1Zs4aRI0diNptp164d999/P+Xl5d7bO3bsyLPPPsttt91GWFgYkydPBuCRRx6hW7duWCwWOnXqxJNPPonD4QBgzpw5/Oc//2Hr1q3e73XOnDkcPHgQSZLYsmWL9/pFRUVIksSyZcuqjPu3334jJSUFo9HIypUrURSFl19+mU6dOmE2m+nfvz/ffffdWf87bNu2jUsuuQSApKQkOnToQHp6OoqicNttt9G1a1dWrlzJxRdfTOfOnRkwYABPPfUUP/7441k/liAITYsIxgShlXvjjTcYNmwYkydPJjs7m+zsbNq1a0d2djajRo1iwIABbNy4kUWLFnHs2DGuu+66Kvf/9NNPiY6OZv369dx333384x//4Nprr2X48OFs3ryZcePGccstt1BRUVHlfg8//DCvvvoqGzZsIDY2lssuu8wbNG3fvp1x48Zx1VVXsW3bNubOncuqVauYOnVqlWu88sor9OnTh02bNvHkk08CasZpzpw57Nq1izfeeIMPPviA1157DYCJEyfyz3/+k969e3u/14kTJ57Vz2vGjBm88MILpKWl0a9fP5544gk++eQTZs+ezc6dO5k2bRo333wzy5cvP6vr9u3bl4ULFwJw6NAhDh06RJcuXdiyZQs7d+7kn//8JxpN9adsUR8mCC1AQLcpFwShSRg1apTywAMPVDn25JNPKmPHjq1yLDMzUwGUPXv2eO933nnneW93Op1KUFCQcsstt3iPZWdnK4Cydu1aRVEUZenSpQqgfPPNN95zjh8/rpjNZmXu3LmKoijKLbfcotx1111VHnvlypWKRqNRKisrFUVRlA4dOihXXHHFGb+3l19+WUlOTvZ+/dRTTyn9+/evck5GRoYCKKmpqd5jhYWFCqAsXbq0yrh/+OEH7zllZWWKyWRS1qxZU+V6f//735Ubbrih1jF16NBBee2116oc27lzpzJy5Ehl0KBBSv/+/ZXvv/9eURRFmTt3rgIomzdvPuP3qiiK8sknnyhhYWF1OlcQhKZBF8A4UBCEJmzTpk0sXbqU4ODgarft37+fbt26AdCvXz/vca1WS1RUFH379vUei4uLAyA3N7fKNYYNG+b9PDIyku7du5OWluZ97PT0dL788kvvOYqiIMsyGRkZ9OzZE4CUlJRqY/vuu+94/fXXSU9Pp6ysDKfTSWho6Fl//7U5+TF37dqF1WrlwgsvrHKO3W5n4MCBZ3XdXr161ZhNUxQFwFtbJghCyyOCMUEQaiTLMpdeeikvvfRStdsSEhK8n+v1+iq3SZJU5ZgniJBl+YyPefK5d999N/fff3+1c9q3b+/9PCgoqMptf/31F9dffz3/+c9/GDduHGFhYXzzzTf897//Pe3jeqb/PIEP4J0yPdXJj+n5nn755RfatGlT5Tyj0XjaxzzV5MmTWblypfdrnU7Hjh07vEFvWlpak1gFKgiC/4lgTBAEDAYDLperyrFBgwYxb948OnbsiE7n/6eKv/76yxtYFRYWsnfvXnr06OF97J07d9KlS5ezuubq1avp0KEDjz/+uPfYoUOHqpxT0/caExMDqK0hPBmtk4v5a9OrVy+MRiOHDx9m1KhRZzXWU33wwQc1Hh8wYAC9evXiv//9LxMnTqxWN1ZUVCTqxgShmRMF/IIg0LFjR9atW8fBgwfJz89HlmXuvfdeCgoKuOGGG1i/fj0HDhxg8eLF3HHHHdWCmfp4+umn+eOPP9ixYwe33XYb0dHRXHHFFYC6InLt2rXce++9bNmyhX379rFgwQLuu+++016zS5cuHD58mG+++Yb9+/fz5ptvMn/+/Grfa0ZGBlu2bCE/Px+bzYbZbOacc87hxRdfZNeuXaxYsYInnnjijN9DSEgIDz30ENOmTePTTz9l//79pKam8vbbb/Ppp5/W+2dzMkmS+OSTT9i7dy8jR45k4cKFHDhwgG3btvHcc89x+eWX++VxBEEIHBGMCYLAQw89hFarpVevXsTExHD48GESExNZvXo1LpeLcePG0adPHx544AHCwsJqXNV3tl588UUeeOABkpOTyc7OZsGCBRgMBkCtQ1u+fDn79u1jxIgRDBw4kCeffLLK9GhNLr/8cqZNm8bUqVMZMGAAa9as8a6y9Lj66qu56KKLGDNmDDExMXz99dcAfPzxxzgcDlJSUnjggQd49tln6/R9PPPMM/zrX//ihRdeoGfPnowbN46ffvqJpKSkevxUajZkyBA2btxI586dmTx5Mj179uSyyy5j586dosmrILQAknJykYQgCEIDW7ZsGWPGjKGwsLDVTq917NiRBx98sEF2PZgzZw4PPvigX7dZEgShYYnMmCAIQgA88sgjBAcHU1xc7LdrBgcHM2XKFL9dTxCExiEK+AVBEBrZ8uXLvas1Q0JC/HZdz6IDrVbrt2sKgtDwxDSlIAiCIAhCAIlpSkEQBEEQhAASwZggCIIgCEIAiWBMEARBEAQhgEQwJgiCIAiCEEAiGBMEQRAEQQggEYwJgiAIgiAEkAjGBEEQBEEQAkgEY4IgCIIgCAEkgjFBEARBEIQA+n+c6g2+fot2cQAAAABJRU5ErkJggg==", + "text/plain": [ + "

    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ds_off_lo = grid.transform(ds_natv.thkcello.fillna(0.).mean(\"time\"), \"Z\", ds.scalar_i.values, target_data=ds_natv.temp.mean(\"time\"), method=\"conservative\")\n", + "ds_off_hi = grid.transform(ds_natv.thkcello.fillna(0.), \"Z\", ds.scalar_i.values, target_data=ds_natv.temp, method=\"conservative\").mean(\"time\")\n", + "\n", + "import matplotlib.pyplot as plt\n", + "(ds.thkcello.mean(\"time\")*og.areacello).sum([\"xh\", \"yh\"]).plot(label=\"online histogramming (gmac)\")\n", + "(ds_off_hi*og.areacello).sum([\"xh\", \"yh\"]).plot(label=\"offline histogramming (xgcm) using timestep-averaged output\")\n", + "(ds_off_lo*og.areacello).sum([\"xh\", \"yh\"]).plot(label=\"offline histogramming (xgcm) using 5-day-averaged output\")\n", + "plt.xlim(-1, 10)\n", + "plt.title(\"Water volume distribution averaged over 5 days of Baltic simulation\")\n", + "plt.ylabel(r\"water volume [m$^3$ per 0.1ºC temperature bin]\")\n", + "plt.xlabel(\"temperature [ºC]\")\n", + "plt.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7bee1d44-a235-47c1-9d39-2bad46789f81", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/data_table b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/data_table new file mode 100644 index 0000000000..5fc61c3e4a --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/data_table @@ -0,0 +1,49 @@ +"ATM", "cfc_11_flux_pcair_atm","CFC_11","INPUT/cfc.bc.nc",.false., 1.0e-12 +"ATM", "cfc_12_flux_pcair_atm","CFC_12","INPUT/cfc.bc.nc",.false., 1.0e-12 +"ATM" , "p_surf" , "SLP" , "./INPUT/slp.clim.nc" , .false. , 1.0 +"ATM" , "p_bot" , "SLP" , "./INPUT/slp.clim.nc" , .false. , 1.0 +"ATM" , "t_bot" , "T_10_MOD" , "./INPUT/t_10_mod.clim.nc" , .false. , 1.0 +"ATM" , "sphum_bot" , "Q_10_MOD" , "./INPUT/q_10_mod.clim.nc" , .false. , 1.0 +"ATM" , "u_bot" , "U_10_MOD" , "./INPUT/u_10_mod.clim.nc" , .false. , 1.0 +"ATM" , "v_bot" , "V_10_MOD" , "./INPUT/v_10_mod.clim.nc" , .false. , 1.0 +"ATM" , "z_bot" , "" , "" , .false. , 10.0 +"ATM" , "gust" , "" , "" , .false. , 0.0 +"ICE" , "lw_flux_dn" , "LWDN_MOD" , "./INPUT/ncar_rad_clim.nc" , .false. , 1.0 +"ICE" , "sw_flux_vis_dir_dn", "SWDN_MOD", "./INPUT/ncar_rad_clim.nc", .false. , 0.285 +"ICE" , "sw_flux_vis_dif_dn", "SWDN_MOD", "./INPUT/ncar_rad_clim.nc", .false. , 0.285 +"ICE" , "sw_flux_nir_dir_dn", "SWDN_MOD", "./INPUT/ncar_rad_clim.nc", .false. , 0.215 +"ICE" , "sw_flux_nir_dif_dn", "SWDN_MOD", "./INPUT/ncar_rad_clim.nc", .false. , 0.215 +"ICE" , "lprec" , "RAIN" , "./INPUT/ncar_precip_clim.nc" , .false. , 0.9933 +"ICE" , "fprec" , "SNOW" , "./INPUT/ncar_precip_clim.nc" , .false. , 0.9933 +"ICE" , "runoff" , "runoff" , "./INPUT/runoff.nc" , .false. , 0.0 +"ICE" , "calving" , "" , "" , .true. , 0.0 +"ICE" , "dhdt" , "" , "" , .true. , 80.0 +"ICE" , "dedt" , "" , "" , .true. , 2.0e-6 +"ICE" , "drdt" , "" , "" , .true. , 10.0 +"ICE", "sic_obs" , "SIC" ,"./INPUT/sst_ice_clim.nc" , .false. , 0.00 +"ICE", "sit_obs" , "SIT" ,"./INPUT/sst_ice_clim.nc" , .false. , 0.00 +"ICE", "sst_obs" , "SST" ,"./INPUT/sst_ice_clim.nc" , .false. , 1.0 +"LND" , "t_surf" , "" , "" , .true. , 273.0 +"LND" , "t_ca" , "" , "" , .true. , 273.0 +"LND" , "q_ca" , "" , "" , .true. , 0.0 +"LND" , "rough_mom" , "" , "" , .true. , 0.01 +"LND" , "rough_heat" , "" , "" , .true. , 0.1 +"LND" , "albedo" , "" , "" , .true. , 0.1 +"LND" , "t_ca" , "" , "" , .true. , 273.0 +"LND" , "t_surf" , "" , "" , .true. , 273.0 +"LND" , "sphum_surf" , "" , "" , .true. , 0.0 +"LND" , "sphum_ca" , "" , "" , .true. , 0.0 +"LND" , "t_flux" , "" , "" , .true. , 0.0 +"LND" , "sphum_flux" , "" , "" , .true. , 0.0 +"LND" , "lw_flux" , "" , "" , .true. , 0.0 +"LND" , "sw_flux" , "" , "" , .true. , 0.0 +"LND" , "lprec" , "" , "" , .true. , 0.0 +"LND" , "fprec" , "" , "" , .true. , 0.0 +"LND" , "dhdt" , "" , "" , .true. , 5.0 +"LND" , "dedt" , "" , "" , .true. , 2e-6 +"LND" , "dedq" , "" , "" , .true. , 0.0 +"LND" , "drdt" , "" , "" , .true. , 5.0 +"LND" , "drag_q" , "" , "" , .true. , 0.0 +"LND" , "p_surf" , "" , "" , .true. , 1.e5 + + diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table new file mode 100644 index 0000000000..2ea0177d9d --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table @@ -0,0 +1,420 @@ +GOLD_SIS +1 1 1 0 0 0 + +#==================================================================================================== +# MOM6 +#==================================================================================================== +# MOM6 ocean diagnostics files + +# hourly +"ocean_hourly_natv_surf%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_natv_xtra%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_natv_thck%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_natv_heat%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_natv_salt%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_natv_snap%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" + +"ocean_hourly_zstr_surf%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_zstr_xtra%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_zstr_thck%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_zstr_heat%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_zstr_salt%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_zstr_snap%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" + +"ocean_hourly_sclr_surf%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_sclr_xtra%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_sclr_thck%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_sclr_heat%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_sclr_salt%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" +"ocean_hourly_sclr_snap%4yr_%2mo_%2dy", 1, "hours", 1, "minutes", "time", 1, "days" + +"ocean_static", -1, "hours", 1, "days", "time" # ocean_static is a protected name. Do not change this line. + +# --------------------------- # +# Static grid variables # +# --------------------------- # +"ocean_model", "areacello", "areacello", "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", "area_t", "area_t", "ocean_static", "all", "none", "none", 2 +"ocean_model", "area_u", "area_u", "ocean_static", "all", "none", "none", 2 +"ocean_model", "area_v", "area_v", "ocean_static", "all", "none", "none", 2 +"ocean_model", "area_q", "area_q", "ocean_static", "all", "none", "none", 2 +"ocean_model", "depth_ocean", "depth_ocean", "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", "Coriolis", "Coriolis", "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", "dxCvo", "dxCvo", "ocean_static", "all", "none", "none", 2 +"ocean_model", "dyCuo", "dyCuo", "ocean_static", "all", "none", "none", 2 + +##################################################### +# TIMESTEP # +# +############## +### NATIVE ### +# ------------------------------------------------- # +# Heat + budget terms [get from Andrew Shao github] # +# ------------------------------------------------- # + +# MEAN +"ocean_model", "temp", "temp" "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +"ocean_model", "opottemptend", "opottemptend", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "opottempdiff", "opottempdiff", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "opottemppmdiff", "opottemppmdiff", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "boundary_forcing_heat_tendency","boundary_forcing_heat_tendency", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "frazil_heat_tendency", "frazil_heat_tendency", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "T_advection_xy", "T_advection_xy", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "Th_tendency_vert_remap", "Th_tendency_vert_remap", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "internal_heat_heat_tendency", "internal_heat_heat_tendency", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# SNAP +"ocean_model", "temp", "temp" "ocean_hourly_natv_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 + +# ------------------- # +# Salt + budget terms # +# ------------------- # + +"ocean_model", "salt", "salt", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +"ocean_model", "osalttend", "osalttend", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "osaltdiff", "osaltdiff", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "osaltpmdiff", "osaltpmdiff", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "boundary_forcing_salt_tendency","boundary_forcing_salt_tendency", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "S_advection_xy", "S_advection_xy", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "Sh_tendency_vert_remap", "Sh_tendency_vert_remap", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# SNAP +"ocean_model", "salt", "salt" "ocean_hourly_natv_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 + +# ------------------- # +# Thickness + budget terms # +# ------------------- # + +# MEAN +"ocean_model", "thkcello", "thkcello", "ocean_hourly_natv_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +"ocean_model", "dhdt", "dhdt", "ocean_hourly_natv_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "dynamics_h_tendency", "dynamics_h_tendency", "ocean_hourly_natv_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "vert_remap_h_tendency", "vert_remap_h_tendency", "ocean_hourly_natv_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "boundary_forcing_h_tendency", "boundary_forcing_h_tendency", "ocean_hourly_natv_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "internal_heat_h_tendency", "internal_heat_h_tendency", "ocean_hourly_natv_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# SNAP +"ocean_model", "thkcello", "thkcello" "ocean_hourly_natv_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 +#"ocean_model", "e", "e" "ocean_hourly_natv_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 + +# ----------------------------------------- # +# Other terms necessary for WMT calculation # +# ----------------------------------------- # + +# MEAN +"ocean_model", "rhoinsitu", "rhoinsitu", "ocean_hourly_natv_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "rhopot0", "rhopot0", "ocean_hourly_natv_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "rhopot2", "rhopot2", "ocean_hourly_natv_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "drho_dT", "drho_dT", "ocean_hourly_natv_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "drho_dS", "drho_dS", "ocean_hourly_natv_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +#"ocean_model", "umo", "umo", "ocean_hourly_natv_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +#"ocean_model", "vmo", "vmo", "ocean_hourly_natv_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +#"ocean_model", "e", "e", "ocean_hourly_natv_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# SNAP +"ocean_model", "rhopot2", "rhopot2" "ocean_hourly_natv_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 + +# ----------------------------------------- # +# Surface fluxes # +# ----------------------------------------- # +# Surface scalars +"ocean_model", "tos", "tos", "ocean_hourly_natv_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "sos", "sos", "ocean_hourly_natv_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Mass +"ocean_model", "net_massin", "net_massin", "ocean_hourly_natv_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "net_massout", "net_massout", "ocean_hourly_natv_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "wfo", "wfo", "ocean_hourly_natv_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Salt +"ocean_model", "sfdsi", "sfdsi", "ocean_hourly_natv_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "salt_flux_added", "salt_flux_added", "ocean_hourly_natv_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Heat +"ocean_model", "hfds", "hfds", "ocean_hourly_natv_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# ----------------------------------------- # +# Lateral fluxes # +# ----------------------------------------- # +# Advective and diffusive fluxes +# Heat +# "ocean_model", "T_adx", "T_adx", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model", "T_ady", "T_ady", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model", "T_diffx", "T_diffx", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model", "T_diffy", "T_diffy", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Salt +# "ocean_model", "S_adx", "S_adx", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model", "S_ady", "S_ady", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model", "S_diffx", "S_diffx", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model", "S_diffy", "S_diffy", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# Depth-integrated advective and diffusive fluxes +# Heat +"ocean_model", "T_adx_2d", "T_adx_2d", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "T_ady_2d", "T_ady_2d", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "T_diffx_2d", "T_diffx_2d", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "T_diffy_2d", "T_diffy_2d", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Salt +"ocean_model", "S_adx_2d", "S_adx_2d", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "S_ady_2d", "S_ady_2d", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "S_diffx_2d", "S_diffx_2d", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "S_diffy_2d", "S_diffy_2d", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Depth-integrated tendencies due to advection and isoneutral diffusion +"ocean_model", "T_advection_xy_2d", "T_advection_xy_2d", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "opottemppmdiff_2d", "opottemppmdiff_2d", "ocean_hourly_natv_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "S_advection_xy_2d", "S_advection_xy_2d", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model", "osaltpmdiff_2d", "osaltpmdiff_2d", "ocean_hourly_natv_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +############ +#### Z* #### +# ------------------------------------------------- # +# Heat + budget terms [get from Andrew Shao github] # +# ------------------------------------------------- # + +# MEAN +"ocean_model_z", "temp", "temp" "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +"ocean_model_z", "opottemptend", "opottemptend", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "opottempdiff", "opottempdiff", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "opottemppmdiff", "opottemppmdiff", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "boundary_forcing_heat_tendency","boundary_forcing_heat_tendency", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "frazil_heat_tendency", "frazil_heat_tendency", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "T_advection_xy", "T_advection_xy", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "Th_tendency_vert_remap", "Th_tendency_vert_remap", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "internal_heat_heat_tendency", "internal_heat_heat_tendency", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# SNAP +"ocean_model_z", "temp", "temp" "ocean_hourly_zstr_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 + +# ------------------- # +# Salt + budget terms # +# ------------------- # + +"ocean_model_z", "salt", "salt", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +"ocean_model_z", "osalttend", "osalttend", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "osaltdiff", "osaltdiff", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "osaltpmdiff", "osaltpmdiff", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "boundary_forcing_salt_tendency","boundary_forcing_salt_tendency", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "S_advection_xy", "S_advection_xy", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "Sh_tendency_vert_remap", "Sh_tendency_vert_remap", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# SNAP +"ocean_model_z", "salt", "salt" "ocean_hourly_zstr_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 + +# ------------------------ # +# Thickness + budget terms # +# ------------------------ # + +# MEAN +"ocean_model_z", "thkcello", "thkcello", "ocean_hourly_zstr_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +"ocean_model_z", "dhdt", "dhdt", "ocean_hourly_zstr_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "dynamics_h_tendency", "dynamics_h_tendency", "ocean_hourly_zstr_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "vert_remap_h_tendency", "vert_remap_h_tendency", "ocean_hourly_zstr_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "boundary_forcing_h_tendency", "boundary_forcing_h_tendency", "ocean_hourly_zstr_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "internal_heat_h_tendency", "internal_heat_h_tendency", "ocean_hourly_zstr_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# SNAP +"ocean_model_z", "thkcello", "thkcello" "ocean_hourly_zstr_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 +#"ocean_model_z", "e", "e" "ocean_hourly_zstr_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 + +# ----------------------------------------- # +# Other terms necessary for WMT calculation # +# ----------------------------------------- # + +# MEAN +"ocean_model_z", "rhoinsitu", "rhoinsitu", "ocean_hourly_zstr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "rhopot0", "rhopot0", "ocean_hourly_zstr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "rhopot2", "rhopot2", "ocean_hourly_zstr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "drho_dT", "drho_dT", "ocean_hourly_zstr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "drho_dS", "drho_dS", "ocean_hourly_zstr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +#"ocean_model_z", "umo", "umo", "ocean_hourly_zstr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +#"ocean_model_z", "vmo", "vmo", "ocean_hourly_zstr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +#"ocean_model_z", "e", "e", "ocean_hourly_zstr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# SNAP +"ocean_model_z", "rhopot2", "rhopot2" "ocean_hourly_zstr_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 + +# ----------------------------------------- # +# Surface fluxes # +# ----------------------------------------- # +# Surface scalars +"ocean_model_z", "tos", "tos", "ocean_hourly_zstr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "sos", "sos", "ocean_hourly_zstr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Mass +"ocean_model_z", "net_massin", "net_massin", "ocean_hourly_zstr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "net_massout", "net_massout", "ocean_hourly_zstr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "wfo", "wfo", "ocean_hourly_zstr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Salt +"ocean_model_z", "sfdsi", "sfdsi", "ocean_hourly_zstr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "salt_flux_added", "salt_flux_added", "ocean_hourly_zstr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Heat +"ocean_model_z", "hfds", "hfds", "ocean_hourly_zstr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# ----------------------------------------- # +# Lateral fluxes # +# ----------------------------------------- # +# Advective and diffusive fluxes +# # Heat +# "ocean_model_z", "T_adx", "T_adx", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_z", "T_ady", "T_ady", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_z", "T_diffx", "T_diffx", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_z", "T_diffy", "T_diffy", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# # Salt +# "ocean_model_z", "S_adx", "S_adx", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_z", "S_ady", "S_ady", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_z", "S_diffx", "S_diffx", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_z", "S_diffy", "S_diffy", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Depth-integzd advective and diffusive fluxes +# Heat +"ocean_model_z", "T_adx_2d", "T_adx_2d", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "T_ady_2d", "T_ady_2d", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "T_diffx_2d", "T_diffx_2d", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "T_diffy_2d", "T_diffy_2d", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Salt +"ocean_model_z", "S_adx_2d", "S_adx_2d", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "S_ady_2d", "S_ady_2d", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "S_diffx_2d", "S_diffx_2d", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "S_diffy_2d", "S_diffy_2d", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Depth-integzd tendencies due to advection and isoneutral diffusion +"ocean_model_z", "T_advection_xy_2d", "T_advection_xy_2d", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "opottemppmdiff_2d", "opottemppmdiff_2d", "ocean_hourly_zstr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "S_advection_xy_2d", "S_advection_xy_2d", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_z", "osaltpmdiff_2d", "osaltpmdiff_2d", "ocean_hourly_zstr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +###################################### +### SCALAR (Potential Temperature) ### +# ------------------------------------------------- # +# Heat + budget terms [get from Andrew Shao github] # +# ------------------------------------------------- # + +# MEAN +"ocean_model_scalar", "temp", "temp" "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +"ocean_model_scalar", "opottemptend", "opottemptend", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "opottempdiff", "opottempdiff", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "opottemppmdiff", "opottemppmdiff", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "boundary_forcing_heat_tendency","boundary_forcing_heat_tendency", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "frazil_heat_tendency", "frazil_heat_tendency", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "T_advection_xy", "T_advection_xy", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "Th_tendency_vert_remap", "Th_tendency_vert_remap", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "internal_heat_heat_tendency", "internal_heat_heat_tendency", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# SNAP +"ocean_model_scalar", "temp", "temp" "ocean_hourly_sclr_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 + +# ------------------- # +# Salt + budget terms # +# ------------------- # + +"ocean_model_scalar", "salt", "salt", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +"ocean_model_scalar", "osalttend", "osalttend", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "osaltdiff", "osaltdiff", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "osaltpmdiff", "osaltpmdiff", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "boundary_forcing_salt_tendency","boundary_forcing_salt_tendency", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "S_advection_xy", "S_advection_xy", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "Sh_tendency_vert_remap", "Sh_tendency_vert_remap", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# SNAP +"ocean_model_scalar", "salt", "salt" "ocean_hourly_sclr_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 + +# ------------------- # +# Thickness + budget terms # +# ------------------- # + +# MEAN +"ocean_model_scalar", "thkcello", "thkcello", "ocean_hourly_sclr_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +"ocean_model_scalar", "dhdt", "dhdt", "ocean_hourly_sclr_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "dynamics_h_tendency", "dynamics_h_tendency", "ocean_hourly_sclr_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "vert_remap_h_tendency", "vert_remap_h_tendency", "ocean_hourly_sclr_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "boundary_forcing_h_tendency", "boundary_forcing_h_tendency", "ocean_hourly_sclr_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "internal_heat_h_tendency", "internal_heat_h_tendency", "ocean_hourly_sclr_thck%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# SNAP +"ocean_model_scalar", "thkcello", "thkcello" "ocean_hourly_sclr_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 +#"ocean_model_scalar", "e", "e" "ocean_hourly_sclr_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 + +# ----------------------------------------- # +# Other terms necessary for WMT calculation # +# ----------------------------------------- # + +# MEAN +"ocean_model_scalar", "rhoinsitu", "rhoinsitu", "ocean_hourly_sclr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "rhopot0", "rhopot0", "ocean_hourly_sclr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "rhopot2", "rhopot2", "ocean_hourly_sclr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "drho_dT", "drho_dT", "ocean_hourly_sclr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "drho_dS", "drho_dS", "ocean_hourly_sclr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_scalar", "umo", "umo", "ocean_hourly_sclr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_scalar", "vmo", "vmo", "ocean_hourly_sclr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_scalar", "e", "e", "ocean_hourly_sclr_xtra%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# SNAP +"ocean_model_scalar", "rhopot2", "rhopot2" "ocean_hourly_sclr_snap%4yr_%2mo_%2dy", "all", "none", "none", 2 + +# ----------------------------------------- # +# Surface fluxes # +# ----------------------------------------- # +# Surface scalars +"ocean_model_scalar", "tos", "tos", "ocean_hourly_sclr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "sos", "sos", "ocean_hourly_sclr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Mass +"ocean_model_scalar", "net_massin", "net_massin", "ocean_hourly_sclr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "net_massout", "net_massout", "ocean_hourly_sclr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "wfo", "wfo", "ocean_hourly_sclr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Salt +"ocean_model_scalar", "sfdsi", "sfdsi", "ocean_hourly_sclr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "salt_flux_added", "salt_flux_added", "ocean_hourly_sclr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Heat +"ocean_model_scalar", "hfds", "hfds", "ocean_hourly_sclr_surf%4yr_%2mo_%2dy", "all", "mean", "none", 2 + +# ----------------------------------------- # +# Lateral fluxes # +# ----------------------------------------- # +# Advective and diffusive fluxes +# # Heat +# "ocean_model_scalar", "T_adx", "T_adx", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_scalar", "T_ady", "T_ady", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_scalar", "T_diffx", "T_diffx", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_scalar", "T_diffy", "T_diffy", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# # Salt +# "ocean_model_scalar", "S_adx", "S_adx", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_scalar", "S_ady", "S_ady", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_scalar", "S_diffx", "S_diffx", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# "ocean_model_scalar", "S_diffy", "S_diffy", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Depth-integrated advective and diffusive fluxes +# Heat +"ocean_model_scalar", "T_adx_2d", "T_adx_2d", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "T_ady_2d", "T_ady_2d", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "T_diffx_2d", "T_diffx_2d", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "T_diffy_2d", "T_diffy_2d", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Salt +"ocean_model_scalar", "S_adx_2d", "S_adx_2d", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "S_ady_2d", "S_ady_2d", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "S_diffx_2d", "S_diffx_2d", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "S_diffy_2d", "S_diffy_2d", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +# Depth-integrated tendencies due to advection and isoneutral diffusion +"ocean_model_scalar", "T_advection_xy_2d", "T_advection_xy_2d", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "opottemppmdiff_2d", "opottemppmdiff_2d", "ocean_hourly_sclr_heat%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "S_advection_xy_2d", "S_advection_xy_2d", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 +"ocean_model_scalar", "osaltpmdiff_2d", "osaltpmdiff_2d", "ocean_hourly_sclr_salt%4yr_%2mo_%2dy", "all", "mean", "none", 2 diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table.original b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table.original new file mode 100644 index 0000000000..9a642599c5 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table.original @@ -0,0 +1,71 @@ +GOLD_SIS +1 1 1 0 0 0 +#output files + +"off_snap_1day", 1, "days", 1, "days", "time" +"off_sum_1day", 1, "days", 1, "days", "time" +"off_snap_2day", 2, "days", 1, "days", "time" +"off_sum_2day", 2, "days", 1, "days", "time" +"off_snap_5day", 5, "days", 1, "days", "time" +"off_sum_5day", 5, "days", 1, "days", "time" +"off_snap_10day", 10, "days", 1, "days", "time" +"off_sum_10day", 10, "days", 1, "days", "time" + +# One day resolution +"ocean_model","ea","ea_sum","off_sum_1day","all",sum,"none",1 +"ocean_model","eb","eb_sum","off_sum_1day","all",sum,"none",1 +"ocean_model","uhtr","uhtr","off_sum_1day","all",sum,"none",1 +"ocean_model","vhtr","vhtr","off_sum_1day","all",sum,"none",1 +"ocean_model","KHDT_x","khdt_x","off_sum_1day","all",sum,"none",1 +"ocean_model","KHDT_y","khdt_y","off_sum_1day","all",sum,"none",1 +"ocean_model","massout_flux","massout_flux","off_sum_1day","all",sum,"none",1 +"ocean_model","massin_flux","massin_flux","off_sum_1day","all",sum,"none",1 + +"ocean_model","h","h_end","off_snap_1day","all",.false.,"none",1 +"ocean_model","temp","temp","off_snap_1day","all",.false.,"none",1 +"ocean_model","salt","salt","off_snap_1day","all",.false.,"none",1 + +# Two day resolution +"ocean_model","ea","ea_sum","off_sum_2day","all",sum,"none",1 +"ocean_model","eb","eb_sum","off_sum_2day","all",sum,"none",1 +"ocean_model","uhtr","uhtr","off_sum_2day","all",sum,"none",1 +"ocean_model","vhtr","vhtr","off_sum_2day","all",sum,"none",1 +"ocean_model","KHDT_x","khdt_x","off_sum_2day","all",sum,"none",1 +"ocean_model","KHDT_y","khdt_y","off_sum_2day","all",sum,"none",1 +"ocean_model","massout_flux","massout_flux","off_sum_2day","all",sum,"none",1 +"ocean_model","massin_flux","massin_flux","off_sum_2day","all",sum,"none",1 + + +"ocean_model","h","h_end","off_snap_2day","all",.false.,"none",1 +"ocean_model","temp","temp","off_snap_2day","all",.false.,"none",1 +"ocean_model","salt","salt","off_snap_2day","all",.false.,"none",1 + +# 5 Day resolution +"ocean_model","ea","ea_sum","off_sum_5day","all",sum,"none",1 +"ocean_model","eb","eb_sum","off_sum_5day","all",sum,"none",1 +"ocean_model","uhtr","uhtr","off_sum_5day","all",sum,"none",1 +"ocean_model","vhtr","vhtr","off_sum_5day","all",sum,"none",1 +"ocean_model","KHDT_x","khdt_x","off_sum_5day","all",sum,"none",1 +"ocean_model","KHDT_y","khdt_y","off_sum_5day","all",sum,"none",1 +"ocean_model","massout_flux","massout_flux","off_sum_5day","all",sum,"none",1 +"ocean_model","massin_flux","massin_flux","off_sum_5day","all",sum,"none",1 + + +"ocean_model","h","h_end","off_snap_5day","all",.false.,"none",1 +"ocean_model","temp","temp","off_snap_5day","all",.false.,"none",1 +"ocean_model","salt","salt","off_snap_5day","all",.false.,"none",1 + +# 10 day resolution +"ocean_model","ea","ea_sum","off_sum_10day","all",sum,"none",1 +"ocean_model","eb","eb_sum","off_sum_10day","all",sum,"none",1 +"ocean_model","uhtr","uhtr","off_sum_10day","all",sum,"none",1 +"ocean_model","vhtr","vhtr","off_sum_10day","all",sum,"none",1 +"ocean_model","KHDT_x","khdt_x","off_sum_10day","all",sum,"none",1 +"ocean_model","KHDT_y","khdt_y","off_sum_10day","all",sum,"none",1 +"ocean_model","massout_flux","massout_flux","off_sum_10day","all",sum,"none",1 +"ocean_model","massin_flux","massin_flux","off_sum_10day","all",sum,"none",1 + + +"ocean_model","h","h_end","off_snap_10day","all",.false.,"none",1 +"ocean_model","temp","temp","off_snap_10day","all",.false.,"none",1 +"ocean_model","salt","salt","off_snap_10day","all",.false.,"none",1 diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table_offline b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table_offline new file mode 100644 index 0000000000..0cb3ac6801 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table_offline @@ -0,0 +1,12 @@ +GOLD_SIS +1 1 1 0 0 0 +#output files +# +"off_snap", 1, "days", 1, "days", "time" + +"ocean_model","uhr","uhr","off_snap","all",.false.,"none",1 +"ocean_model","vhr","vhr","off_snap","all",.false.,"none",1 +"ocean_model","eta_diff","eta_diff","off_snap","all",.false.,"none",1 +"ocean_model","tr1","tr1","off_snap","all",.false.,"none",1 +"ocean_model","age","age","off_snap","all",.false.,"none",1 + diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table_online b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table_online new file mode 100644 index 0000000000..b1318ed384 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/diag_table_online @@ -0,0 +1,25 @@ +GOLD_SIS +1 1 1 0 0 0 +#output files + +"off_snap_1day", 1, "days", 1, "days", "time" +"off_sum_1day", 1, "days", 1, "days", "time" +"off_avg_1day", 1, "days", 1, "days", "time" + +# One day resolution +"ocean_model","ea","ea_sum","off_sum_1day","all",sum,"none",1 +"ocean_model","eb","eb_sum","off_sum_1day","all",sum,"none",1 +"ocean_model","uhtr","uhtr","off_sum_1day","all",sum,"none",1 +"ocean_model","vhtr","vhtr","off_sum_1day","all",sum,"none",1 +"ocean_model","KHDT_x","khdt_x","off_sum_1day","all",sum,"none",1 +"ocean_model","KHDT_y","khdt_y","off_sum_1day","all",sum,"none",1 +"ocean_model","massout_flux","massout_flux","off_sum_1day","all",sum,"none",1 +"ocean_model","massin_flux","massin_flux","off_sum_1day","all",sum,"none",1 + +"ocean_model","h","h_end","off_snap_1day","all",.false.,"none",1 +"ocean_model","temp","temp","off_snap_1day","all",.false.,"none",1 +"ocean_model","salt","salt","off_snap_1day","all",.false.,"none",1 + +"ocean_model","salt","salt","off_avg_1day","all",.true.,"none",1 +"ocean_model","temp","temp","off_avg_1day","all",.true.,"none",1 +"ocean_model","Kd_interface","Kd_interface","off_avg_1day","all",.true.,"none",1 diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/field_table b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/field_table new file mode 100644 index 0000000000..dbd7e2e1c6 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/field_table @@ -0,0 +1,23 @@ + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" / + +# prognotic cloud scheme tracers + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud liquid specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "ice_wat" + "longname", "cloud ice water specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "cld_amt" + "longname", "cloud fraction" + "units", "none" / + +# test tracer for radon + +# "TRACER", "atmos_mod", "radon" +# "longname", "radon test tracer" +# "units", "kg/kg" / + + "TRACER", "land_mod", "sphum"/ + diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/input.nml b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/input.nml new file mode 100644 index 0000000000..73b5450d5b --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/input.nml @@ -0,0 +1,75 @@ + &MOM_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'MOM_input', + 'MOM_override' / + + &SIS_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'SIS_input', + 'SIS_override' / + + &diag_manager_nml + max_output_fields=1000 + max_input_fields=1000 + max_num_axis_sets=1000 + max_files=1000 + max_axes=2000 + / + + &coupler_nml + months = 0, + days = 5, + current_date = 1,1,1,0,0,0, + hours = 0 + minutes = 0 + seconds = 0 + calendar = 'NOLEAP', + dt_cpld = 3600, + dt_atmos = 3600, + do_atmos = .false., + do_land = .false., + do_ice = .true., + do_ocean = .true., + atmos_npes = 0, + ocean_npes = 0, + concurrent = .false. + use_lag_fluxes=.true. / + + &data_override_nml + / + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + / + + &fms_nml + clock_grain='MODULE' + domains_stack_size = 2000000 + clock_flags='SYNC' / + + &ice_albedo_nml + t_range = 10. / + + &ice_model_nml + / + + &monin_obukhov_nml + neutral = .true. / + + &ocean_albedo_nml + ocean_albedo_option = 5 / + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. / + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' / diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/input.offline.nml b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/input.offline.nml new file mode 100644 index 0000000000..79454d8b77 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/input.offline.nml @@ -0,0 +1,38 @@ + &MOM_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'MOM_input', + 'MOM_override' / + + &diag_manager_nml + max_output_fields=1000 + max_input_fields=1000 + max_num_axis_sets=1000 + max_files=1000 + max_axes=2000 + / + + + &data_override_nml + / + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + / + + &fms_nml + clock_grain='MODULE' + domains_stack_size = 2000000 + clock_flags='SYNC' / + + &ocean_solo_nml + months = 0 + days = 5 + date_init = 1,1,1,0,0,0 + hours = 0 + minutes = 0 + seconds = 0 + calendar = 'julian' / diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/input.online.nml b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/input.online.nml new file mode 100644 index 0000000000..73b5450d5b --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/input.online.nml @@ -0,0 +1,75 @@ + &MOM_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'MOM_input', + 'MOM_override' / + + &SIS_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'SIS_input', + 'SIS_override' / + + &diag_manager_nml + max_output_fields=1000 + max_input_fields=1000 + max_num_axis_sets=1000 + max_files=1000 + max_axes=2000 + / + + &coupler_nml + months = 0, + days = 5, + current_date = 1,1,1,0,0,0, + hours = 0 + minutes = 0 + seconds = 0 + calendar = 'NOLEAP', + dt_cpld = 3600, + dt_atmos = 3600, + do_atmos = .false., + do_land = .false., + do_ice = .true., + do_ocean = .true., + atmos_npes = 0, + ocean_npes = 0, + concurrent = .false. + use_lag_fluxes=.true. / + + &data_override_nml + / + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + / + + &fms_nml + clock_grain='MODULE' + domains_stack_size = 2000000 + clock_flags='SYNC' / + + &ice_albedo_nml + t_range = 10. / + + &ice_model_nml + / + + &monin_obukhov_nml + neutral = .true. / + + &ocean_albedo_nml + ocean_albedo_option = 5 / + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. / + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' / diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/run_offline.sh b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/run_offline.sh new file mode 100644 index 0000000000..2d237f7e9d --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/run_offline.sh @@ -0,0 +1,7 @@ +# Copy over the input files for the offline run +cp diag_table_offline diag_table +cp input.offline.nml input.nml +cp MOM_override_offline MOM_override + +# Run the forward model +mprun ./MOM6_ocean_only diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/run_online.sh b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/run_online.sh new file mode 100644 index 0000000000..3b8a79b921 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/run_online.sh @@ -0,0 +1,13 @@ +# Copy over the input files for the forward run +cp diag_table_online diag_table +cp input.online.nml input.nml +cp MOM_override_online MOM_override + +# Run the forward model +mprun ./MOM6_coupled + +# Make the directory where online fields will be stored and copy diagnostics +mkdir ONLINE +mv *off_snap* ONLINE/ +mv *off_sum* ONLINE/ +mv *off_avg* ONLINE/ diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/run_simulation b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/run_simulation new file mode 100644 index 0000000000..f5a9e3043d --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/run_simulation @@ -0,0 +1 @@ +mpirun -n 8 ../../build/ice_ocean_SIS2/MOM6 diff --git a/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/static_input.nml b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/static_input.nml new file mode 100644 index 0000000000..565ece0a87 --- /dev/null +++ b/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers_diagscalarhistogram/static_input.nml @@ -0,0 +1,30 @@ + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' / + + &fms_nml + clock_grain='MODULE' + domains_stack_size = 2000000 + clock_flags='SYNC' / + + &ice_albedo_nml + t_range = 10. / + + &ice_model_nml + / + + &monin_obukhov_nml + neutral = .true. / + + &ocean_albedo_nml + ocean_albedo_option = 5 / + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true., + construct_table_wrt_liq_and_ice = .true. / + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' / + From 05374fdbf107386ac1ed335f18b94573ea96e283 Mon Sep 17 00:00:00 2001 From: Henri Drake Date: Tue, 1 Apr 2025 08:57:45 -0700 Subject: [PATCH 12/12] Point to corresponding MOM6 branch with the scalar-diagnostic changes --- src/MOM6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MOM6 b/src/MOM6 index 8249510a23..749f112b2b 160000 --- a/src/MOM6 +++ b/src/MOM6 @@ -1 +1 @@ -Subproject commit 8249510a23e9815046a867f47d21b000dac23671 +Subproject commit 749f112b2bad031805c0e88d7a6fad24f333d250