diff --git a/.gitmodules b/.gitmodules index 3ffc7ff53..dc3aa2e32 100644 --- a/.gitmodules +++ b/.gitmodules @@ -26,10 +26,6 @@ path = src/ice_param url = https://github.com/NOAA-GFDL/ice_param.git branch = 2024.02 -[submodule "src/MOM6"] - path = src/MOM6 - url = https://github.com/NOAA-CEFI-Regional-Ocean-Modeling/MOM6.git - branch = dev/cefi [submodule "src/FMS"] path = src/FMS url = https://github.com/NOAA-GFDL/FMS.git @@ -46,3 +42,7 @@ path = src/ocean_BGC url = https://github.com/NOAA-CEFI-Regional-Ocean-Modeling/ocean_BGC.git branch = dev/cefi +[submodule "src/MOM6"] + path = src/MOM6 + url = https://github.com/NOAA-CEFI-Regional-Ocean-Modeling/MOM6.git + branch = dev/cefi diff --git a/exps/NEP10.COBALT/INPUT/MOM_input b/exps/NEP10.COBALT/INPUT/MOM_input index 432c9030f..fa8cdcb7b 100755 --- a/exps/NEP10.COBALT/INPUT/MOM_input +++ b/exps/NEP10.COBALT/INPUT/MOM_input @@ -205,10 +205,10 @@ OBC_TRACER_RESERVOIR_LENGTH_SCALE_IN = 9000.0 ! [m] default = 0.0 OBC_TIDE_N_CONSTITUENTS = 10 OBC_TIDE_CONSTITUENTS = "M2,S2,N2,K2,K1,O1,P1,Q1,MM,MF" -OBC_TIDE_REF_DATE = 1993,1,1 -OBC_TIDE_ADD_EQ_PHASE = True -OBC_TIDE_ADD_NODAL = True -OBC_TIDE_NODAL_REF_DATE = 1993,7,2 +TIDE_REF_DATE = 1993,1,1 +TIDE_ADD_EQ_PHASE = True +TIDE_ADD_NODAL = True +TIDE_NODAL_REF_DATE = 1993,7,2 TIDAL_SAL_FLATHER = True ! === module MOM_boundary_update === @@ -921,7 +921,6 @@ TIDE_SAL_SCALAR_VALUE = 0.010 ! [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. -TIDE_REF_DATE = 1993,1,1 TIDE_USE_EQ_PHASE = True ! === module ocean_model_init === diff --git a/exps/NEP10.COBALT/INPUT/MOM_override b/exps/NEP10.COBALT/INPUT/MOM_override index c0c1b987c..17ffb56f9 100644 --- a/exps/NEP10.COBALT/INPUT/MOM_override +++ b/exps/NEP10.COBALT/INPUT/MOM_override @@ -4,7 +4,7 @@ #override DO_GEOTHERMAL = True #override DT = 400 # Update the nodal modulation of the tide every year -#override OBC_TIDE_NODAL_REF_DATE = 1993,7,2 +#override TIDE_NODAL_REF_DATE = 1993,7,2 #override MLE%USE_BODNER23 = True #override MLE%CR = 0.03 #override MLE%BLD_DECAYING_TFILTER = 8.64E+04 diff --git a/exps/NEP10.COBALT/MOM_parameter_doc.all b/exps/NEP10.COBALT/MOM_parameter_doc.all index 902d384a4..f03a533bb 100644 --- a/exps/NEP10.COBALT/MOM_parameter_doc.all +++ b/exps/NEP10.COBALT/MOM_parameter_doc.all @@ -70,15 +70,26 @@ DT = 400.0 ! [s] ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode ! or the coupling timestep in coupled mode.) DT_THERM = 1200.0 ! [s] default = 400.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. + ! The thermodynamic time step. Ideally DT_THERM should be an integer multiple of + ! DT and of DT_TRACER_ADVECT and less than the forcing or coupling time-step. + ! However, if THERMO_SPANS_COUPLING is true, 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. + ! If true, the MOM will take thermodynamic 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. +DT_TRACER_ADVECT = 1200.0 ! [s] default = 1200.0 + ! The tracer advection time step. Ideally DT_TRACER_ADVECT should be an integer + ! multiple of DT, less than DT_THERM, and less than the forcing or coupling + ! time-step. However, if TRADV_SPANS_COUPLING is true, DT_TRACER_ADVECT can be + ! longer than the coupling timestep. By default DT_TRACER_ADVECT is set to + ! DT_THERM. +TRADV_SPANS_COUPLING = False ! [Boolean] default = False + ! If true, the MOM will take tracer advection timesteps that can be longer than + ! the coupling timestep. The actual tracer advection timestep that is used in + ! this case is the largest integer multiple of the coupling timestep that is + ! less than or equal to DT_TRACER_ADVECT. 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 @@ -376,14 +387,6 @@ OBC_REMAPPING_USE_OM4_SUBCELLS = False ! [Boolean] default = False ! option to false. OBC_TIDE_CONSTITUENTS = "M2,S2,N2,K2,K1,O1,P1,Q1,MM,MF" ! ! Names of tidal constituents being added to the open boundaries. -OBC_TIDE_ADD_EQ_PHASE = True ! [Boolean] default = False - ! If true, add the equilibrium phase argument to the specified tidal phases. -OBC_TIDE_ADD_NODAL = True ! [Boolean] default = False - ! If true, include 18.6 year nodal modulation in the boundary tidal forcing. -OBC_TIDE_REF_DATE = 1993, 1, 1 ! - ! Reference date to use for tidal calculations and equilibrium phase. -OBC_TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0, 0, 0 - ! Fixed reference date to use for nodal modulation of boundary tides. 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 @@ -497,12 +500,9 @@ RESTART_CHECKSUMS_REQUIRED = True ! [Boolean] default = True ! 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. +USE_FILTER = False ! [Boolean] default = False + ! If true, use streaming band-pass filters to detect the instantaneous tidal + ! signals in the simulation. ! === module MOM_tracer_flow_control === USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False @@ -1090,6 +1090,10 @@ PV_ADV_SCHEME = "PV_ADV_CENTERED" ! default = "PV_ADV_CENTERED" ! 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. @@ -1203,6 +1207,11 @@ TIDE_MM_AMP = 0.022191 ! [m] default = 0.022191 TIDE_MM_PHASE_T0 = -2.542600025447928 ! [radians] default = -2.542600025447928 ! Phase of the MM tidal constituent at time 0. This is only used if TIDES and ! TIDE_MM are true. +TIDE_ADD_NODAL = True ! [Boolean] default = False + ! If true, include 18.6 year nodal modulation in the astronomical tidal forcing. +TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0, 0, 0 + ! Fixed reference date to use for nodal modulation of astronomical tidal + ! forcing. 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 @@ -1235,9 +1244,18 @@ RHO_PGF_REF = 1035.0 ! [kg m-3] default = 1035.0 ! 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 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. + ! 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 @@ -1705,6 +1723,8 @@ 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. + ! Values above 20250301 also use less confusing expressions to set the + ! bottom-drag generated diffusivity when USE_LOTW_BBL_DIFFUSIVITY is false. ! === module MOM_tidal_mixing === ! Vertical Tidal Mixing Parameterization @@ -2042,6 +2062,9 @@ VSTAR_SURF_FAC = 1.8258 ! [nondim] default = 1.2 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. +EPBL_BBL_TIDAL_EFFIC = 0.0 ! [nondim] default = 0.0 + ! The efficiency of bottom boundary layer mixing via ePBL driven by the bottom + ! drag dissipation of tides, as provided in fluxes%BBL_tidal_dis. USE_LA_LI2016 = True ! [Boolean] default = False ! A logical to use the Li et al. 2016 (submitted) formula to determine the ! Langmuir number. @@ -2107,6 +2130,18 @@ PEN_SW_FLUX_ABSORB = 2.5E-11 ! [degC m s-1] default = 2.5E-11 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. diff --git a/exps/NEP10.COBALT/MOM_parameter_doc.short b/exps/NEP10.COBALT/MOM_parameter_doc.short index b2e413800..42d9808cd 100644 --- a/exps/NEP10.COBALT/MOM_parameter_doc.short +++ b/exps/NEP10.COBALT/MOM_parameter_doc.short @@ -14,10 +14,10 @@ DT = 400.0 ! [s] ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode ! or the coupling timestep in coupled mode.) DT_THERM = 1200.0 ! [s] default = 400.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. + ! The thermodynamic time step. Ideally DT_THERM should be an integer multiple of + ! DT and of DT_TRACER_ADVECT and less than the forcing or coupling time-step. + ! However, if THERMO_SPANS_COUPLING is true, DT_THERM can be an integer multiple + ! of the coupling timestep. By default DT_THERM is set to DT. 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 @@ -161,14 +161,6 @@ BRUSHCUTTER_MODE = True ! [Boolean] default = False ! If true, read external OBC data on the supergrid. OBC_TIDE_CONSTITUENTS = "M2,S2,N2,K2,K1,O1,P1,Q1,MM,MF" ! ! Names of tidal constituents being added to the open boundaries. -OBC_TIDE_ADD_EQ_PHASE = True ! [Boolean] default = False - ! If true, add the equilibrium phase argument to the specified tidal phases. -OBC_TIDE_ADD_NODAL = True ! [Boolean] default = False - ! If true, include 18.6 year nodal modulation in the boundary tidal forcing. -OBC_TIDE_REF_DATE = 1993, 1, 1 ! - ! Reference date to use for tidal calculations and equilibrium phase. -OBC_TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0, 0, 0 - ! Fixed reference date to use for nodal modulation of boundary tides. ! === module MOM_verticalGrid === ! Parameters providing information about the vertical grid. @@ -396,6 +388,11 @@ TIDE_REF_DATE = 1993, 1, 1 ! default = 0, 0, 0 ! defaults to 0. TIDE_USE_EQ_PHASE = True ! [Boolean] default = False ! Correct phases by calculating equilibrium phase arguments for TIDE_REF_DATE. +TIDE_ADD_NODAL = True ! [Boolean] default = False + ! If true, include 18.6 year nodal modulation in the astronomical tidal forcing. +TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0, 0, 0 + ! Fixed reference date to use for nodal modulation of astronomical tidal + ! forcing. ! === module MOM_PressureForce === diff --git a/exps/NEP10.COBALT/driver.sh b/exps/NEP10.COBALT/driver.sh index 2241a0b95..1dbdbafc6 100644 --- a/exps/NEP10.COBALT/driver.sh +++ b/exps/NEP10.COBALT/driver.sh @@ -72,7 +72,7 @@ mv ocean.stats RESTART_24hrs_rst # Define the directories containing the files module load nccmp DIR1="./RESTART_24hrs_rst" -DIR2="/gpfs/f6/ira-cefi/proj-shared/github/ci_data/reference/main/NEP10.COBALT/20241115" +DIR2="/gpfs/f6/ira-cefi/proj-shared/github/ci_data/reference/main/NEP10.COBALT/20250131" # Define the files to compare FILES=("$DIR2"/MOM.res*.nc) diff --git a/exps/NEP10.COBALT/ref/docker-linux-intel-repro/ocean.stats b/exps/NEP10.COBALT/ref/docker-linux-intel-repro/ocean.stats deleted file mode 100644 index d88933a62..000000000 --- a/exps/NEP10.COBALT/ref/docker-linux-intel-repro/ocean.stats +++ /dev/null @@ -1,4 +0,0 @@ - Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean Sea Level, Total Mass, Mean Salin, Mean Temp, Frac Mass Err, Salin Err, Temp Err - [days] [m2 s-2] [Nondim] [m] [kg] [PSU] [degC] [Nondim] [PSU] [degC] - 0, 727563.000, 0, En 9.8480593715804025E-04, CFL 0.03314, SL 0.0000E+00, M 7.10037E+19, S 34.4969, T 2.7277, Me 0.00E+00, Se 0.00E+00, Te 0.00E+00 - 24, 727564.000, 0, En 1.1779247449752001E-03, CFL 0.16810, SL 0.0000E+00, M 7.10012E+19, S 34.4969, T 2.7272, Me -3.48E-05, Se -1.21E-03, Te 9.86E-05 diff --git a/exps/NWA12.CFC/MOM_input b/exps/NWA12.CFC/MOM_input index a7618ded5..6570a9e9a 100644 --- a/exps/NWA12.CFC/MOM_input +++ b/exps/NWA12.CFC/MOM_input @@ -149,13 +149,13 @@ BRUSHCUTTER_MODE = True ! [Boolean] default = False ! If true, read external OBC data on the supergrid. OBC_TIDE_CONSTITUENTS = "M2,S2,N2,K2,K1,O1,P1,Q1,MM,MF" ! ! Names of tidal constituents being added to the open boundaries. -OBC_TIDE_ADD_EQ_PHASE = True ! [Boolean] default = False +TIDE_ADD_EQ_PHASE = True ! [Boolean] default = False ! If true, add the equilibrium phase argument to the specified tidal phases. -OBC_TIDE_ADD_NODAL = True ! [Boolean] default = False +TIDE_ADD_NODAL = True ! [Boolean] default = False ! If true, include 18.6 year nodal modulation in the boundary tidal forcing. -OBC_TIDE_REF_DATE = 1993, 1, 1 ! +TIDE_REF_DATE = 1993, 1, 1 ! ! Reference date to use for tidal calculations and equilibrium phase. -OBC_TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0 +TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0 ! Fixed reference date to use for nodal modulation of boundary tides. TIDAL_SAL_FLATHER = True @@ -415,9 +415,6 @@ SAL_SCALAR_VALUE = 0.010 ! [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. -TIDE_REF_DATE = 1993, 1, 1 ! default = 0 - ! Year,month,day to use as reference date for tidal forcing. If not specified, - ! defaults to 0. TIDE_USE_EQ_PHASE = True ! [Boolean] default = False ! Correct phases by calculating equilibrium phase arguments for TIDE_REF_DATE. diff --git a/exps/NWA12.CFC/MOM_override b/exps/NWA12.CFC/MOM_override index 7cef84c3f..b2f2032dc 100644 --- a/exps/NWA12.CFC/MOM_override +++ b/exps/NWA12.CFC/MOM_override @@ -1,6 +1,6 @@ #override USE_generic_tracer = True #override MAX_FIELDS=500 -#override OBC_TIDE_NODAL_REF_DATE = 1995,7,2 +#override TIDE_NODAL_REF_DATE = 1995,7,2 #override DT_OBC_SEG_UPDATE_OBGC = 1800 #override CHL_FROM_FILE = True #override DO_GEOTHERMAL = True diff --git a/exps/NWA12.COBALT/INPUT/MOM_input b/exps/NWA12.COBALT/INPUT/MOM_input index 4c81d7bcd..c24118050 100644 --- a/exps/NWA12.COBALT/INPUT/MOM_input +++ b/exps/NWA12.COBALT/INPUT/MOM_input @@ -149,13 +149,13 @@ BRUSHCUTTER_MODE = True ! [Boolean] default = False ! If true, read external OBC data on the supergrid. OBC_TIDE_CONSTITUENTS = "M2,S2,N2,K2,K1,O1,P1,Q1,MM,MF" ! ! Names of tidal constituents being added to the open boundaries. -OBC_TIDE_ADD_EQ_PHASE = True ! [Boolean] default = False +TIDE_ADD_EQ_PHASE = True ! [Boolean] default = False ! If true, add the equilibrium phase argument to the specified tidal phases. -OBC_TIDE_ADD_NODAL = True ! [Boolean] default = False +TIDE_ADD_NODAL = True ! [Boolean] default = False ! If true, include 18.6 year nodal modulation in the boundary tidal forcing. -OBC_TIDE_REF_DATE = 1993, 1, 1 ! +TIDE_REF_DATE = 1993, 1, 1 ! ! Reference date to use for tidal calculations and equilibrium phase. -OBC_TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0 +TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0 ! Fixed reference date to use for nodal modulation of boundary tides. TIDAL_SAL_FLATHER = True @@ -416,9 +416,6 @@ TIDE_SAL_SCALAR_VALUE = 0.01 ! [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. -TIDE_REF_DATE = 1993, 1, 1 ! default = 0 - ! Year,month,day to use as reference date for tidal forcing. If not specified, - ! defaults to 0. TIDE_USE_EQ_PHASE = True ! [Boolean] default = False ! Correct phases by calculating equilibrium phase arguments for TIDE_REF_DATE. diff --git a/exps/NWA12.COBALT/INPUT/MOM_override b/exps/NWA12.COBALT/INPUT/MOM_override index 0377a1061..f9af5c15b 100644 --- a/exps/NWA12.COBALT/INPUT/MOM_override +++ b/exps/NWA12.COBALT/INPUT/MOM_override @@ -1,6 +1,6 @@ #override USE_generic_tracer = True #override MAX_FIELDS=500 -#override OBC_TIDE_NODAL_REF_DATE = 1993,7,2 +#override TIDE_NODAL_REF_DATE = 1993,7,2 DT_OBC_SEG_UPDATE_OBGC = 1800 #override CHL_FROM_FILE = False #override DO_GEOTHERMAL = True diff --git a/exps/NWA12.COBALT/MOM_parameter_doc.all b/exps/NWA12.COBALT/MOM_parameter_doc.all index 54831c1e5..6521f7617 100644 --- a/exps/NWA12.COBALT/MOM_parameter_doc.all +++ b/exps/NWA12.COBALT/MOM_parameter_doc.all @@ -70,15 +70,26 @@ DT = 600.0 ! [s] ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode ! or the coupling timestep in coupled mode.) DT_THERM = 1800.0 ! [s] default = 600.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. + ! The thermodynamic time step. Ideally DT_THERM should be an integer multiple of + ! DT and of DT_TRACER_ADVECT and less than the forcing or coupling time-step. + ! However, if THERMO_SPANS_COUPLING is true, 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. + ! If true, the MOM will take thermodynamic 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. +DT_TRACER_ADVECT = 1800.0 ! [s] default = 1800.0 + ! The tracer advection time step. Ideally DT_TRACER_ADVECT should be an integer + ! multiple of DT, less than DT_THERM, and less than the forcing or coupling + ! time-step. However, if TRADV_SPANS_COUPLING is true, DT_TRACER_ADVECT can be + ! longer than the coupling timestep. By default DT_TRACER_ADVECT is set to + ! DT_THERM. +TRADV_SPANS_COUPLING = False ! [Boolean] default = False + ! If true, the MOM will take tracer advection timesteps that can be longer than + ! the coupling timestep. The actual tracer advection timestep that is used in + ! this case is the largest integer multiple of the coupling timestep that is + ! less than or equal to DT_TRACER_ADVECT. 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 @@ -370,14 +381,6 @@ OBC_REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True ! option to false. OBC_TIDE_CONSTITUENTS = "M2,S2,N2,K2,K1,O1,P1,Q1,MM,MF" ! ! Names of tidal constituents being added to the open boundaries. -OBC_TIDE_ADD_EQ_PHASE = True ! [Boolean] default = False - ! If true, add the equilibrium phase argument to the specified tidal phases. -OBC_TIDE_ADD_NODAL = True ! [Boolean] default = False - ! If true, include 18.6 year nodal modulation in the boundary tidal forcing. -OBC_TIDE_REF_DATE = 1993, 1, 1 ! - ! Reference date to use for tidal calculations and equilibrium phase. -OBC_TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0, 0, 0 - ! Fixed reference date to use for nodal modulation of boundary tides. 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 @@ -500,12 +503,9 @@ RESTART_CHECKSUMS_REQUIRED = True ! [Boolean] default = True ! 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. +USE_FILTER = False ! [Boolean] default = False + ! If true, use streaming band-pass filters to detect the instantaneous tidal + ! signals in the simulation. ! === module MOM_tracer_flow_control === USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False @@ -1102,6 +1102,10 @@ PV_ADV_SCHEME = "PV_ADV_CENTERED" ! default = "PV_ADV_CENTERED" ! 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. @@ -1215,6 +1219,11 @@ TIDE_MM_AMP = 0.022191 ! [m] default = 0.022191 TIDE_MM_PHASE_T0 = -2.542600025447928 ! [radians] default = -2.542600025447928 ! Phase of the MM tidal constituent at time 0. This is only used if TIDES and ! TIDE_MM are true. +TIDE_ADD_NODAL = True ! [Boolean] default = False + ! If true, include 18.6 year nodal modulation in the astronomical tidal forcing. +TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0, 0, 0 + ! Fixed reference date to use for nodal modulation of astronomical tidal + ! forcing. 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 @@ -1247,9 +1256,18 @@ RHO_PGF_REF = 1035.0 ! [kg m-3] default = 1035.0 ! 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 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. + ! 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 @@ -1737,6 +1755,8 @@ 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. + ! Values above 20250301 also use less confusing expressions to set the + ! bottom-drag generated diffusivity when USE_LOTW_BBL_DIFFUSIVITY is false. ! === module MOM_tidal_mixing === ! Vertical Tidal Mixing Parameterization @@ -2074,6 +2094,9 @@ VSTAR_SURF_FAC = 1.8258 ! [nondim] default = 1.2 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. +EPBL_BBL_TIDAL_EFFIC = 0.0 ! [nondim] default = 0.0 + ! The efficiency of bottom boundary layer mixing via ePBL driven by the bottom + ! drag dissipation of tides, as provided in fluxes%BBL_tidal_dis. USE_LA_LI2016 = True ! [Boolean] default = False ! A logical to use the Li et al. 2016 (submitted) formula to determine the ! Langmuir number. @@ -2139,6 +2162,18 @@ PEN_SW_FLUX_ABSORB = 2.5E-11 ! [degC m s-1] default = 2.5E-11 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. diff --git a/exps/NWA12.COBALT/MOM_parameter_doc.short b/exps/NWA12.COBALT/MOM_parameter_doc.short index 23adab7d6..343e33551 100644 --- a/exps/NWA12.COBALT/MOM_parameter_doc.short +++ b/exps/NWA12.COBALT/MOM_parameter_doc.short @@ -14,10 +14,10 @@ DT = 600.0 ! [s] ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode ! or the coupling timestep in coupled mode.) DT_THERM = 1800.0 ! [s] default = 600.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. + ! The thermodynamic time step. Ideally DT_THERM should be an integer multiple of + ! DT and of DT_TRACER_ADVECT and less than the forcing or coupling time-step. + ! However, if THERMO_SPANS_COUPLING is true, DT_THERM can be an integer multiple + ! of the coupling timestep. By default DT_THERM is set to DT. 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 @@ -157,14 +157,6 @@ BRUSHCUTTER_MODE = True ! [Boolean] default = False ! If true, read external OBC data on the supergrid. OBC_TIDE_CONSTITUENTS = "M2,S2,N2,K2,K1,O1,P1,Q1,MM,MF" ! ! Names of tidal constituents being added to the open boundaries. -OBC_TIDE_ADD_EQ_PHASE = True ! [Boolean] default = False - ! If true, add the equilibrium phase argument to the specified tidal phases. -OBC_TIDE_ADD_NODAL = True ! [Boolean] default = False - ! If true, include 18.6 year nodal modulation in the boundary tidal forcing. -OBC_TIDE_REF_DATE = 1993, 1, 1 ! - ! Reference date to use for tidal calculations and equilibrium phase. -OBC_TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0, 0, 0 - ! Fixed reference date to use for nodal modulation of boundary tides. ! === module MOM_verticalGrid === ! Parameters providing information about the vertical grid. @@ -378,6 +370,11 @@ TIDE_REF_DATE = 1993, 1, 1 ! default = 0, 0, 0 ! defaults to 0. TIDE_USE_EQ_PHASE = True ! [Boolean] default = False ! Correct phases by calculating equilibrium phase arguments for TIDE_REF_DATE. +TIDE_ADD_NODAL = True ! [Boolean] default = False + ! If true, include 18.6 year nodal modulation in the astronomical tidal forcing. +TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0, 0, 0 + ! Fixed reference date to use for nodal modulation of astronomical tidal + ! forcing. ! === module MOM_PressureForce === diff --git a/exps/NWA12.COBALT/driver.sh b/exps/NWA12.COBALT/driver.sh index f8ac85409..57fc0c8db 100644 --- a/exps/NWA12.COBALT/driver.sh +++ b/exps/NWA12.COBALT/driver.sh @@ -78,7 +78,7 @@ mv ocean.stats RESTART_24hrs_rst # Define the directories containing the files module load nccmp DIR1="./RESTART_24hrs_rst" -DIR2="/gpfs/f6/ira-cefi/proj-shared/github/ci_data/reference/main/NWA12.COBALT/20241115" +DIR2="/gpfs/f6/ira-cefi/proj-shared/github/ci_data/reference/main/NWA12.COBALT/20250131" # Define the files to compare FILES=("$DIR2"/*.nc) diff --git a/exps/NWA12.tidesonly/MOM_input b/exps/NWA12.tidesonly/MOM_input index 0753cb770..3199d72e2 100644 --- a/exps/NWA12.tidesonly/MOM_input +++ b/exps/NWA12.tidesonly/MOM_input @@ -112,7 +112,7 @@ BRUSHCUTTER_MODE = True ! [Boolean] default = False ! If true, read external OBC data on the supergrid. OBC_TIDE_CONSTITUENTS = "M2,S2,N2,K2,K1,O1,P1,Q1,MM,MF" ! ! Names of tidal constituents being added to the open boundaries. -OBC_TIDE_REF_DATE = 1993, 1, 1 ! +TIDE_REF_DATE = 1993, 1, 1 ! ! Reference date to use for tidal calculations and equilibrium phase. ! === module MOM_verticalGrid === diff --git a/exps/NWA12.tidesonly/MOM_parameter_doc.all b/exps/NWA12.tidesonly/MOM_parameter_doc.all index 35cedfcb3..8cf401aaa 100644 --- a/exps/NWA12.tidesonly/MOM_parameter_doc.all +++ b/exps/NWA12.tidesonly/MOM_parameter_doc.all @@ -61,15 +61,26 @@ DT = 600.0 ! [s] ! 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 = 600.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. + ! The thermodynamic time step. Ideally DT_THERM should be an integer multiple of + ! DT and of DT_TRACER_ADVECT and less than the forcing or coupling time-step. + ! However, if THERMO_SPANS_COUPLING is true, 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. + ! If true, the MOM will take thermodynamic 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. +DT_TRACER_ADVECT = 3600.0 ! [s] default = 3600.0 + ! The tracer advection time step. Ideally DT_TRACER_ADVECT should be an integer + ! multiple of DT, less than DT_THERM, and less than the forcing or coupling + ! time-step. However, if TRADV_SPANS_COUPLING is true, DT_TRACER_ADVECT can be + ! longer than the coupling timestep. By default DT_TRACER_ADVECT is set to + ! DT_THERM. +TRADV_SPANS_COUPLING = False ! [Boolean] default = False + ! If true, the MOM will take tracer advection timesteps that can be longer than + ! the coupling timestep. The actual tracer advection timestep that is used in + ! this case is the largest integer multiple of the coupling timestep that is + ! less than or equal to DT_TRACER_ADVECT. 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 @@ -337,14 +348,6 @@ OBC_REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True ! option to false. OBC_TIDE_CONSTITUENTS = "M2,S2,N2,K2,K1,O1,P1,Q1,MM,MF" ! ! Names of tidal constituents being added to the open boundaries. -OBC_TIDE_ADD_EQ_PHASE = False ! [Boolean] default = False - ! If true, add the equilibrium phase argument to the specified tidal phases. -OBC_TIDE_ADD_NODAL = False ! [Boolean] default = False - ! If true, include 18.6 year nodal modulation in the boundary tidal forcing. -OBC_TIDE_REF_DATE = 1993, 1, 1 ! - ! Reference date to use for tidal calculations and equilibrium phase. -OBC_TIDE_NODAL_REF_DATE = 0, 0, 0 ! default = 0, 0, 0 - ! Fixed reference date to use for nodal modulation of boundary tides. 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 @@ -456,12 +459,9 @@ RESTART_CHECKSUMS_REQUIRED = True ! [Boolean] default = True ! 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. +USE_FILTER = False ! [Boolean] default = False + ! If true, use streaming band-pass filters to detect the instantaneous tidal + ! signals in the simulation. ! === module MOM_tracer_flow_control === USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False @@ -1003,6 +1003,10 @@ PV_ADV_SCHEME = "PV_ADV_CENTERED" ! default = "PV_ADV_CENTERED" ! 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. @@ -1051,7 +1055,7 @@ TIDAL_SAL_FROM_FILE = False ! [Boolean] default = False 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 +TIDE_REF_DATE = 1993, 1, 1 ! 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 @@ -1116,6 +1120,11 @@ TIDE_MM_AMP = 0.022191 ! [m] default = 0.022191 TIDE_MM_PHASE_T0 = 0.0 ! [radians] default = 0.0 ! Phase of the MM tidal constituent at time 0. This is only used if TIDES and ! TIDE_MM are true. +TIDE_ADD_NODAL = False ! [Boolean] default = False + ! If true, include 18.6 year nodal modulation in the astronomical tidal forcing. +TIDE_NODAL_REF_DATE = 0, 0, 0 ! default = 0, 0, 0 + ! Fixed reference date to use for nodal modulation of astronomical tidal + ! forcing. 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 @@ -1148,9 +1157,11 @@ RHO_PGF_REF = 1035.0 ! [kg m-3] default = 1035.0 ! 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 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. + ! 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. 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. diff --git a/exps/NWA12.tidesonly/MOM_parameter_doc.layout b/exps/NWA12.tidesonly/MOM_parameter_doc.layout index 6ea7c5e31..ca43b590f 100644 --- a/exps/NWA12.tidesonly/MOM_parameter_doc.layout +++ b/exps/NWA12.tidesonly/MOM_parameter_doc.layout @@ -38,13 +38,13 @@ MASKTABLE = "MOM_mask_table" ! default = "MOM_mask_table" ! 4,6 ! 1,2 ! 3,6 -NIPROC = 2 ! +NIPROC = 12 ! ! The number of processors in the x-direction. With STATIC_MEMORY_ this is set ! in MOM_memory.h at compile time. -NJPROC = 2 ! +NJPROC = 16 ! ! The number of processors in the y-direction. With STATIC_MEMORY_ this is set ! in MOM_memory.h at compile time. -LAYOUT = 2, 2 ! +LAYOUT = 12, 16 ! ! 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 diff --git a/exps/NWA12.tidesonly/MOM_parameter_doc.short b/exps/NWA12.tidesonly/MOM_parameter_doc.short index 1338592c9..ac2d3bb0e 100644 --- a/exps/NWA12.tidesonly/MOM_parameter_doc.short +++ b/exps/NWA12.tidesonly/MOM_parameter_doc.short @@ -12,10 +12,10 @@ DT = 600.0 ! [s] ! 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 = 600.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. + ! The thermodynamic time step. Ideally DT_THERM should be an integer multiple of + ! DT and of DT_TRACER_ADVECT and less than the forcing or coupling time-step. + ! However, if THERMO_SPANS_COUPLING is true, DT_THERM can be an integer multiple + ! of the coupling timestep. By default DT_THERM is set to DT. DTBT_RESET_PERIOD = -1.0 ! [s] default = 3600.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 @@ -112,8 +112,6 @@ BRUSHCUTTER_MODE = True ! [Boolean] default = False ! If true, read external OBC data on the supergrid. OBC_TIDE_CONSTITUENTS = "M2,S2,N2,K2,K1,O1,P1,Q1,MM,MF" ! ! Names of tidal constituents being added to the open boundaries. -OBC_TIDE_REF_DATE = 1993, 1, 1 ! - ! Reference date to use for tidal calculations and equilibrium phase. ! === module MOM_verticalGrid === ! Parameters providing information about the vertical grid. @@ -238,6 +236,9 @@ TIDE_MF = True ! [Boolean] default = False TIDE_MM = True ! [Boolean] default = False ! If true, apply tidal momentum forcing at the MM frequency. This is only used ! if TIDES is true. +TIDE_REF_DATE = 1993, 1, 1 ! default = 0, 0, 0 + ! Year,month,day to use as reference date for tidal forcing. If not specified, + ! defaults to 0. ! === module MOM_PressureForce === diff --git a/exps/NWA12.tidesonly/ref/docker-linux-intel-repro/ocean.stats b/exps/NWA12.tidesonly/ref/docker-linux-intel-repro/ocean.stats index 271f3a809..a598f76fd 100644 --- a/exps/NWA12.tidesonly/ref/docker-linux-intel-repro/ocean.stats +++ b/exps/NWA12.tidesonly/ref/docker-linux-intel-repro/ocean.stats @@ -1,23 +1,23 @@ Step, Day, Truncs, Energy/Mass, Maximum CFL, Mean sea level, Total Mass, Frac Mass Err [days] [m2 s-2] [Nondim] [m] [kg] [Nondim] 0, 0.000, 0, En 1.5092494254117544E-22, CFL 0.00000, SL -3.3409E-10, Mass 8.11438E+19, Me 0.00E+00 - 12, 0.083, 0, En 1.4999019557174591E-04, CFL 0.07148, SL 1.1575E-01, Mass 8.11464E+19, Me 3.19E-05 - 30, 0.208, 0, En 2.0454138384993581E-04, CFL 0.05428, SL 1.3799E-01, Mass 8.11469E+19, Me 6.14E-06 - 42, 0.292, 0, En 2.7942363841550693E-04, CFL 0.11554, SL 3.6843E-02, Mass 8.11446E+19, Me -2.79E-05 - 60, 0.417, 0, En 3.8103106444967318E-04, CFL 0.10538, SL -7.9581E-02, Mass 8.11420E+19, Me -3.21E-05 - 72, 0.500, 0, En 3.4696604413099160E-04, CFL 0.11679, SL -2.8743E-02, Mass 8.11432E+19, Me 1.40E-05 - 84, 0.583, 0, En 4.6160271944294118E-04, CFL 0.13349, SL 6.4210E-02, Mass 8.11452E+19, Me 2.57E-05 - 102, 0.708, 0, En 4.0909830360842480E-04, CFL 0.08875, SL 1.0621E-01, Mass 8.11462E+19, Me 1.16E-05 - 114, 0.792, 0, En 4.3210471651192813E-04, CFL 0.16203, SL 3.9691E-02, Mass 8.11447E+19, Me -1.84E-05 - 132, 0.917, 0, En 5.3720131556803075E-04, CFL 0.12831, SL -3.9899E-02, Mass 8.11429E+19, Me -2.20E-05 - 144, 1.000, 0, En 5.1250180500421135E-04, CFL 0.11065, SL -1.5048E-02, Mass 8.11435E+19, Me 6.86E-06 - 156, 1.083, 0, En 5.9314299210131490E-04, CFL 0.13379, SL 4.3197E-02, Mass 8.11448E+19, Me 1.61E-05 - 174, 1.208, 0, En 5.8565023905179957E-04, CFL 0.16473, SL 7.1361E-02, Mass 8.11454E+19, Me 7.77E-06 - 186, 1.292, 0, En 6.1472516673260092E-04, CFL 0.13515, SL 1.6822E-02, Mass 8.11442E+19, Me -1.51E-05 - 204, 1.417, 0, En 6.3100935774340898E-04, CFL 0.18191, SL -6.7162E-02, Mass 8.11423E+19, Me -2.32E-05 - 216, 1.500, 0, En 5.4438532394097613E-04, CFL 0.13877, SL -6.2370E-02, Mass 8.11424E+19, Me 1.32E-06 - 228, 1.583, 0, En 6.0548625027999109E-04, CFL 0.24583, SL -1.2420E-02, Mass 8.11435E+19, Me 1.38E-05 - 246, 1.708, 0, En 5.8285552735854568E-04, CFL 0.19926, SL 6.5042E-02, Mass 8.11453E+19, Me 2.14E-05 - 258, 1.792, 0, En 5.3398299716110619E-04, CFL 0.14777, SL 6.6318E-02, Mass 8.11453E+19, Me 3.52E-07 - 276, 1.917, 0, En 6.0388595791072727E-04, CFL 0.24701, SL 2.2959E-03, Mass 8.11438E+19, Me -1.77E-05 - 288, 2.000, 0, En 5.9222817304614771E-04, CFL 0.16609, SL -2.5902E-02, Mass 8.11432E+19, Me -7.78E-06 + 12, 0.083, 0, En 1.4064603249952431E-04, CFL 0.07039, SL 1.2228E-01, Mass 8.11465E+19, Me 3.37E-05 + 30, 0.208, 0, En 2.1074440062917064E-04, CFL 0.05460, SL 1.7971E-01, Mass 8.11478E+19, Me 1.58E-05 + 42, 0.292, 0, En 2.2870458432501452E-04, CFL 0.11157, SL 9.0051E-02, Mass 8.11458E+19, Me -2.47E-05 + 60, 0.417, 0, En 4.2397924051754935E-04, CFL 0.09462, SL -8.1320E-02, Mass 8.11420E+19, Me -4.73E-05 + 72, 0.500, 0, En 4.2475960530033571E-04, CFL 0.11075, SL -8.1583E-02, Mass 8.11420E+19, Me -7.26E-08 + 84, 0.583, 0, En 4.4909274680552384E-04, CFL 0.13702, SL -1.2708E-03, Mass 8.11438E+19, Me 2.22E-05 + 102, 0.708, 0, En 5.6329649266262014E-04, CFL 0.09447, SL 1.0578E-01, Mass 8.11462E+19, Me 2.95E-05 + 114, 0.792, 0, En 5.5195944403448093E-04, CFL 0.17740, SL 8.1551E-02, Mass 8.11456E+19, Me -6.69E-06 + 132, 0.917, 0, En 6.1497123018241411E-04, CFL 0.12276, SL -2.0422E-02, Mass 8.11433E+19, Me -2.81E-05 + 144, 1.000, 0, En 6.0779978881113513E-04, CFL 0.12721, SL -4.0782E-02, Mass 8.11429E+19, Me -5.62E-06 + 156, 1.083, 0, En 5.5869321052304482E-04, CFL 0.16974, SL -2.4960E-03, Mass 8.11437E+19, Me 1.06E-05 + 174, 1.208, 0, En 5.7641914974756016E-04, CFL 0.15722, SL 7.0120E-02, Mass 8.11454E+19, Me 2.00E-05 + 186, 1.292, 0, En 5.1592907524682216E-04, CFL 0.20833, SL 4.6962E-02, Mass 8.11448E+19, Me -6.39E-06 + 204, 1.417, 0, En 5.8948327861037459E-04, CFL 0.18444, SL -7.2832E-02, Mass 8.11422E+19, Me -3.31E-05 + 216, 1.500, 0, En 6.2026604959846061E-04, CFL 0.14153, SL -1.1955E-01, Mass 8.11411E+19, Me -1.29E-05 + 228, 1.583, 0, En 5.8204367797759233E-04, CFL 0.24568, SL -8.4037E-02, Mass 8.11419E+19, Me 9.80E-06 + 246, 1.708, 0, En 7.5145909301191415E-04, CFL 0.18042, SL 7.6203E-02, Mass 8.11455E+19, Me 4.42E-05 + 258, 1.792, 0, En 7.2041971765832537E-04, CFL 0.23450, SL 1.4508E-01, Mass 8.11470E+19, Me 1.90E-05 + 276, 1.917, 0, En 6.7306854091584713E-04, CFL 0.22474, SL 8.2748E-02, Mass 8.11457E+19, Me -1.72E-05 + 288, 2.000, 0, En 7.3100243272944409E-04, CFL 0.16845, SL -1.8710E-03, Mass 8.11438E+19, Me -2.34E-05 diff --git a/exps/OM4.single_column.COBALT/MOM_parameter_doc.all b/exps/OM4.single_column.COBALT/MOM_parameter_doc.all index 82c87625e..5bfc9fde0 100644 --- a/exps/OM4.single_column.COBALT/MOM_parameter_doc.all +++ b/exps/OM4.single_column.COBALT/MOM_parameter_doc.all @@ -70,15 +70,26 @@ DT = 900.0 ! [s] ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode ! or the coupling timestep in coupled mode.) DT_THERM = 900.0 ! [s] default = 900.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. + ! The thermodynamic time step. Ideally DT_THERM should be an integer multiple of + ! DT and of DT_TRACER_ADVECT and less than the forcing or coupling time-step. + ! However, if THERMO_SPANS_COUPLING is true, 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. + ! If true, the MOM will take thermodynamic 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. +DT_TRACER_ADVECT = 900.0 ! [s] default = 900.0 + ! The tracer advection time step. Ideally DT_TRACER_ADVECT should be an integer + ! multiple of DT, less than DT_THERM, and less than the forcing or coupling + ! time-step. However, if TRADV_SPANS_COUPLING is true, DT_TRACER_ADVECT can be + ! longer than the coupling timestep. By default DT_TRACER_ADVECT is set to + ! DT_THERM. +TRADV_SPANS_COUPLING = False ! [Boolean] default = False + ! If true, the MOM will take tracer advection timesteps that can be longer than + ! the coupling timestep. The actual tracer advection timestep that is used in + ! this case is the largest integer multiple of the coupling timestep that is + ! less than or equal to DT_TRACER_ADVECT. 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 @@ -380,12 +391,9 @@ RESTART_CHECKSUMS_REQUIRED = True ! [Boolean] default = True ! 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. +USE_FILTER = False ! [Boolean] default = False + ! If true, use streaming band-pass filters to detect the instantaneous tidal + ! signals in the simulation. ! === module MOM_tracer_flow_control === USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False @@ -570,6 +578,90 @@ 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 = False ! [Boolean] default = False + ! If true, initialize the layer thicknesses, temperatures, and salinities from a + ! Z-space file on a latitude-longitude grid. +THICKNESS_CONFIG = "coord" ! default = "uniform" + ! A string that determines how the initial layer thicknesses are specified for a + ! new run: + ! file - read interface heights from the file specified + ! by (THICKNESS_FILE). + ! thickness_file - read thicknesses from the file specified + ! by (THICKNESS_FILE). + ! mass_file - read thicknesses in units of mass per unit area from the file + ! specified by (THICKNESS_FILE). + ! coord - determined by ALE coordinate. + ! uniform - uniform thickness layers evenly distributed + ! between the surface and MAXIMUM_DEPTH. + ! list - read a list of positive interface depths. + ! param - use thicknesses from parameter THICKNESS_INIT_VALUES. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a configuration for the + ! ISOMIP test case. + ! benchmark - use the benchmark test case thicknesses. + ! Neverworld - use the Neverworld test case thicknesses. + ! search - search a density profile for the interface + ! densities. This is not yet implemented. + ! circle_obcs - the circle_obcs test case is used. + ! DOME2D - 2D version of DOME initialization. + ! adjustment2d - 2D lock exchange thickness ICs. + ! sloshing - sloshing gravity thickness ICs. + ! seamount - no motion test with seamount ICs. + ! dumbbell - sloshing channel ICs. + ! soliton - Equatorial Rossby soliton. + ! rossby_front - a mixed layer front in thermal wind balance. + ! USER - call a user modified routine. +TS_CONFIG = "file" ! + ! A string that determines how the initial temperatures and salinities are + ! specified for a new run: + ! file - read velocities from the file specified + ! by (TS_FILE). + ! fit - find the temperatures that are consistent with + ! the layer densities and salinity S_REF. + ! TS_profile - use temperature and salinity profiles + ! (read from TS_FILE) to set layer densities. + ! benchmark - use the benchmark test case T & S. + ! linear - linear in logical layer space. + ! DOME2D - 2D DOME initialization. + ! ISOMIP - ISOMIP initialization. + ! adjustment2d - 2d lock exchange T/S ICs. + ! sloshing - sloshing mode T/S ICs. + ! seamount - no motion test with seamount ICs. + ! dumbbell - sloshing channel ICs. + ! rossby_front - a mixed layer front in thermal wind balance. + ! SCM_CVMix_tests - used in the SCM CVMix tests. + ! USER - call a user modified routine. +TS_FILE = "MOM_IC.nc" ! + ! The initial condition file for temperature. +TEMP_IC_VAR = "Temp" ! default = "PTEMP" + ! The initial condition variable for potential temperature. +SALT_IC_VAR = "Salt" ! default = "SALT" + ! The initial condition variable for salinity. +SALT_FILE = "MOM_IC.nc" ! default = "MOM_IC.nc" + ! The initial condition file for salinity. +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 @@ -1387,6 +1479,8 @@ 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. + ! Values above 20250301 also use less confusing expressions to set the + ! bottom-drag generated diffusivity when USE_LOTW_BBL_DIFFUSIVITY is false. ! === module MOM_tidal_mixing === ! Vertical Tidal Mixing Parameterization @@ -1700,6 +1794,9 @@ VSTAR_SURF_FAC = 1.2 ! [nondim] default = 1.2 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. +EPBL_BBL_TIDAL_EFFIC = 0.0 ! [nondim] default = 0.0 + ! The efficiency of bottom boundary layer mixing via ePBL driven by the bottom + ! drag dissipation of tides, as provided in fluxes%BBL_tidal_dis. USE_LA_LI2016 = True ! [Boolean] default = False ! A logical to use the Li et al. 2016 (submitted) formula to determine the ! Langmuir number. @@ -1765,6 +1862,18 @@ PEN_SW_FLUX_ABSORB = 2.5E-11 ! [degC m s-1] default = 2.5E-11 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. diff --git a/exps/OM4.single_column.COBALT/MOM_parameter_doc.short b/exps/OM4.single_column.COBALT/MOM_parameter_doc.short index 034a2aec1..8130a4976 100644 --- a/exps/OM4.single_column.COBALT/MOM_parameter_doc.short +++ b/exps/OM4.single_column.COBALT/MOM_parameter_doc.short @@ -186,6 +186,63 @@ REMAPPING_SCHEME = "PPM_H4" ! default = "PLM" ! PQM_IH6IH5 (5th-order accurate) ! === module MOM_state_initialization === +THICKNESS_CONFIG = "coord" ! default = "uniform" + ! A string that determines how the initial layer thicknesses are specified for a + ! new run: + ! file - read interface heights from the file specified + ! by (THICKNESS_FILE). + ! thickness_file - read thicknesses from the file specified + ! by (THICKNESS_FILE). + ! mass_file - read thicknesses in units of mass per unit area from the file + ! specified by (THICKNESS_FILE). + ! coord - determined by ALE coordinate. + ! uniform - uniform thickness layers evenly distributed + ! between the surface and MAXIMUM_DEPTH. + ! list - read a list of positive interface depths. + ! param - use thicknesses from parameter THICKNESS_INIT_VALUES. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a configuration for the + ! ISOMIP test case. + ! benchmark - use the benchmark test case thicknesses. + ! Neverworld - use the Neverworld test case thicknesses. + ! search - search a density profile for the interface + ! densities. This is not yet implemented. + ! circle_obcs - the circle_obcs test case is used. + ! DOME2D - 2D version of DOME initialization. + ! adjustment2d - 2D lock exchange thickness ICs. + ! sloshing - sloshing gravity thickness ICs. + ! seamount - no motion test with seamount ICs. + ! dumbbell - sloshing channel ICs. + ! soliton - Equatorial Rossby soliton. + ! rossby_front - a mixed layer front in thermal wind balance. + ! USER - call a user modified routine. +TS_CONFIG = "file" ! + ! A string that determines how the initial temperatures and salinities are + ! specified for a new run: + ! file - read velocities from the file specified + ! by (TS_FILE). + ! fit - find the temperatures that are consistent with + ! the layer densities and salinity S_REF. + ! TS_profile - use temperature and salinity profiles + ! (read from TS_FILE) to set layer densities. + ! benchmark - use the benchmark test case T & S. + ! linear - linear in logical layer space. + ! DOME2D - 2D DOME initialization. + ! ISOMIP - ISOMIP initialization. + ! adjustment2d - 2d lock exchange T/S ICs. + ! sloshing - sloshing mode T/S ICs. + ! seamount - no motion test with seamount ICs. + ! dumbbell - sloshing channel ICs. + ! rossby_front - a mixed layer front in thermal wind balance. + ! SCM_CVMix_tests - used in the SCM CVMix tests. + ! USER - call a user modified routine. +TS_FILE = "MOM_IC.nc" ! + ! The initial condition file for temperature. +TEMP_IC_VAR = "Temp" ! default = "PTEMP" + ! The initial condition variable for potential temperature. +SALT_IC_VAR = "Salt" ! default = "SALT" + ! The initial condition variable for salinity. ! === module MOM_diag_mediator === NUM_DIAG_COORDS = 2 ! default = 1 diff --git a/exps/OM4p25.COBALT/MOM_parameter_doc.all b/exps/OM4p25.COBALT/MOM_parameter_doc.all index 8513f297f..89551eae8 100644 --- a/exps/OM4p25.COBALT/MOM_parameter_doc.all +++ b/exps/OM4p25.COBALT/MOM_parameter_doc.all @@ -73,15 +73,26 @@ DT = 900.0 ! [s] ! 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 = 900.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. + ! The thermodynamic time step. Ideally DT_THERM should be an integer multiple of + ! DT and of DT_TRACER_ADVECT and less than the forcing or coupling time-step. + ! However, if THERMO_SPANS_COUPLING is true, DT_THERM can be an integer multiple + ! of the coupling timestep. By default DT_THERM is set to DT. THERMO_SPANS_COUPLING = True ! [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. + ! If true, the MOM will take thermodynamic 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. +DT_TRACER_ADVECT = 7200.0 ! [s] default = 7200.0 + ! The tracer advection time step. Ideally DT_TRACER_ADVECT should be an integer + ! multiple of DT, less than DT_THERM, and less than the forcing or coupling + ! time-step. However, if TRADV_SPANS_COUPLING is true, DT_TRACER_ADVECT can be + ! longer than the coupling timestep. By default DT_TRACER_ADVECT is set to + ! DT_THERM. +TRADV_SPANS_COUPLING = True ! [Boolean] default = True + ! If true, the MOM will take tracer advection timesteps that can be longer than + ! the coupling timestep. The actual tracer advection timestep that is used in + ! this case is the largest integer multiple of the coupling timestep that is + ! less than or equal to DT_TRACER_ADVECT. 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 @@ -384,12 +395,9 @@ RESTART_CHECKSUMS_REQUIRED = True ! [Boolean] default = True ! 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. +USE_FILTER = False ! [Boolean] default = False + ! If true, use streaming band-pass filters to detect the instantaneous tidal + ! signals in the simulation. ! === module MOM_tracer_flow_control === USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False @@ -1817,6 +1825,8 @@ 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. + ! Values above 20250301 also use less confusing expressions to set the + ! bottom-drag generated diffusivity when USE_LOTW_BBL_DIFFUSIVITY is false. ! === module MOM_tidal_mixing === ! Vertical Tidal Mixing Parameterization @@ -2224,6 +2234,9 @@ VSTAR_SURF_FAC = 1.2 ! [nondim] default = 1.2 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. +EPBL_BBL_TIDAL_EFFIC = 0.0 ! [nondim] default = 0.0 + ! The efficiency of bottom boundary layer mixing via ePBL driven by the bottom + ! drag dissipation of tides, as provided in fluxes%BBL_tidal_dis. USE_LA_LI2016 = True ! [Boolean] default = False ! A logical to use the Li et al. 2016 (submitted) formula to determine the ! Langmuir number. @@ -2289,6 +2302,18 @@ PEN_SW_FLUX_ABSORB = 2.5E-11 ! [degC m s-1] default = 2.5E-11 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. diff --git a/exps/OM4p25.COBALT/MOM_parameter_doc.short b/exps/OM4p25.COBALT/MOM_parameter_doc.short index 17b1df6b1..46d28e240 100644 --- a/exps/OM4p25.COBALT/MOM_parameter_doc.short +++ b/exps/OM4p25.COBALT/MOM_parameter_doc.short @@ -18,15 +18,15 @@ DT = 900.0 ! [s] ! 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 = 900.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. + ! The thermodynamic time step. Ideally DT_THERM should be an integer multiple of + ! DT and of DT_TRACER_ADVECT and less than the forcing or coupling time-step. + ! However, if THERMO_SPANS_COUPLING is true, DT_THERM can be an integer multiple + ! of the coupling timestep. By default DT_THERM is set to DT. THERMO_SPANS_COUPLING = True ! [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. + ! If true, the MOM will take thermodynamic 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. 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 diff --git a/src/MOM6 b/src/MOM6 index 7f63b80bd..eea50a605 160000 --- a/src/MOM6 +++ b/src/MOM6 @@ -1 +1 @@ -Subproject commit 7f63b80bd0d480dc8c6ebc71f4cb9a2653a65a78 +Subproject commit eea50a6055e1005e50db8561f6d589c12ba01b52 diff --git a/xmls/NEP10/CEFI_NEP_cobalt.xml b/xmls/NEP10/CEFI_NEP_cobalt.xml index 98caa9a51..b98064208 100644 --- a/xmls/NEP10/CEFI_NEP_cobalt.xml +++ b/xmls/NEP10/CEFI_NEP_cobalt.xml @@ -586,7 +586,7 @@ cat > $work/INPUT/MOM_override << MOM_OVERRIDE_EOF #override DO_GEOTHERMAL = True #override DT = 400 # Update the nodal modulation of the tide every year -#override OBC_TIDE_NODAL_REF_DATE = ${fyear},7,2 +#override TIDE_NODAL_REF_DATE = ${fyear},7,2 #override MLE%USE_BODNER23 = True #override MLE%CR = 0.03 #override MLE%BLD_DECAYING_TFILTER = 8.64E+04 diff --git a/xmls/NEP10/MOM_inputs/2024_08/MOM_input b/xmls/NEP10/MOM_inputs/2024_08/MOM_input index 417b356cd..56f813f37 100644 --- a/xmls/NEP10/MOM_inputs/2024_08/MOM_input +++ b/xmls/NEP10/MOM_inputs/2024_08/MOM_input @@ -201,10 +201,10 @@ OBC_TRACER_RESERVOIR_LENGTH_SCALE_IN = 9000.0 ! [m] default = 0.0 OBC_TIDE_N_CONSTITUENTS = 10 OBC_TIDE_CONSTITUENTS = "M2,S2,N2,K2,K1,O1,P1,Q1,MM,MF" -OBC_TIDE_REF_DATE = 1993,1,1 -OBC_TIDE_ADD_EQ_PHASE = True -OBC_TIDE_ADD_NODAL = True -OBC_TIDE_NODAL_REF_DATE = 1993,7,2 +TIDE_REF_DATE = 1993,1,1 +TIDE_ADD_EQ_PHASE = True +TIDE_ADD_NODAL = True +TIDE_NODAL_REF_DATE = 1993,7,2 TIDAL_SAL_FLATHER = True ! === module MOM_boundary_update === @@ -917,7 +917,6 @@ TIDE_SAL_SCALAR_VALUE = 0.010 ! [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. -TIDE_REF_DATE = 1993,1,1 TIDE_USE_EQ_PHASE = True ! === module ocean_model_init === diff --git a/xmls/NWA12/CEFI_NWA12_cobalt.xml b/xmls/NWA12/CEFI_NWA12_cobalt.xml index cdcb5c157..ddf2d0274 100644 --- a/xmls/NWA12/CEFI_NWA12_cobalt.xml +++ b/xmls/NWA12/CEFI_NWA12_cobalt.xml @@ -582,7 +582,7 @@ truncate -s 0 $work/INPUT/MOM_override cat > $work/INPUT/MOM_override << MOM_OVERRIDE_EOF #override USE_generic_tracer = True #override MAX_FIELDS=500 -#override OBC_TIDE_NODAL_REF_DATE = ${fyear},7,2 +#override TIDE_NODAL_REF_DATE = ${fyear},7,2 DT_OBC_SEG_UPDATE_OBGC = 1800 #override CHL_FROM_FILE = False #override DO_GEOTHERMAL = True diff --git a/xmls/NWA12/CEFI_NWA12_cobalt_fms2_yaml.xml b/xmls/NWA12/CEFI_NWA12_cobalt_fms2_yaml.xml index e52b61822..314780bb4 100644 --- a/xmls/NWA12/CEFI_NWA12_cobalt_fms2_yaml.xml +++ b/xmls/NWA12/CEFI_NWA12_cobalt_fms2_yaml.xml @@ -582,7 +582,7 @@ truncate -s 0 $work/INPUT/MOM_override cat > $work/INPUT/MOM_override << MOM_OVERRIDE_EOF #override USE_generic_tracer = True #override MAX_FIELDS=500 -#override OBC_TIDE_NODAL_REF_DATE = ${fyear},7,2 +#override TIDE_NODAL_REF_DATE = ${fyear},7,2 DT_OBC_SEG_UPDATE_OBGC = 1800 #override CHL_FROM_FILE = False #override DO_GEOTHERMAL = True diff --git a/xmls/NWA12/MOM_inputs/2024_03/MOM_input b/xmls/NWA12/MOM_inputs/2024_03/MOM_input index a8f50bc63..e646f0c0f 100644 --- a/xmls/NWA12/MOM_inputs/2024_03/MOM_input +++ b/xmls/NWA12/MOM_inputs/2024_03/MOM_input @@ -149,13 +149,13 @@ BRUSHCUTTER_MODE = True ! [Boolean] default = False ! If true, read external OBC data on the supergrid. OBC_TIDE_CONSTITUENTS = "M2,S2,N2,K2,K1,O1,P1,Q1,MM,MF" ! ! Names of tidal constituents being added to the open boundaries. -OBC_TIDE_ADD_EQ_PHASE = True ! [Boolean] default = False +TIDE_ADD_EQ_PHASE = True ! [Boolean] default = False ! If true, add the equilibrium phase argument to the specified tidal phases. -OBC_TIDE_ADD_NODAL = True ! [Boolean] default = False +TIDE_ADD_NODAL = True ! [Boolean] default = False ! If true, include 18.6 year nodal modulation in the boundary tidal forcing. -OBC_TIDE_REF_DATE = 1993, 1, 1 ! +TIDE_REF_DATE = 1993, 1, 1 ! ! Reference date to use for tidal calculations and equilibrium phase. -OBC_TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0 +TIDE_NODAL_REF_DATE = 1993, 7, 2 ! default = 0 ! Fixed reference date to use for nodal modulation of boundary tides. TIDAL_SAL_FLATHER = True @@ -416,9 +416,6 @@ TIDE_SAL_SCALAR_VALUE = 0.01 ! [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. -TIDE_REF_DATE = 1993, 1, 1 ! default = 0 - ! Year,month,day to use as reference date for tidal forcing. If not specified, - ! defaults to 0. TIDE_USE_EQ_PHASE = True ! [Boolean] default = False ! Correct phases by calculating equilibrium phase arguments for TIDE_REF_DATE. diff --git a/xmls/NWA12/diag_tables/diag_table_CEFI_COBALT_default b/xmls/NWA12/diag_tables/diag_table_CEFI_COBALT_default index 6feea19f4..4f9fc39c5 100644 --- a/xmls/NWA12/diag_tables/diag_table_CEFI_COBALT_default +++ b/xmls/NWA12/diag_tables/diag_table_CEFI_COBALT_default @@ -127,7 +127,7 @@ "generic_cobalt","fcadet_calc_btm", "fcadet_calc_btm", "ocean_cobalt_btm","all","mean","none",2 # Calcite sinking flux at bottom "generic_cobalt","fcased_burial", "fcased_burial", "ocean_cobalt_btm","all","mean","none",2 # Calcite permanent burial flux "generic_cobalt","fcased_redis", "fcased_redis", "ocean_cobalt_btm","all","mean","none",2 # Calcite redissolution from sediments -"generic_cobalt","fnfeso4red_sed", "fnfeso4red_sed", "ocean_cobalt_btm","all","mean","none",2 # Sediment Ndet Fe and SO4 reduction flux +"generic_cobalt","fnso4red_sed", "fnso4red_sed", "ocean_cobalt_btm","all","mean","none",2 # Sediment Ndet remineralized by SO4 reduction without HS- oxidation "generic_cobalt","fno3denit_sed", "fno3denit_sed", "ocean_cobalt_btm","all","mean","none",2 # Sediment denitrification flux "generic_cobalt","fnoxic_sed", "fnoxic_sed", "ocean_cobalt_btm","all","mean","none",2 # Sediment oxic Ndet remineralization flux "generic_cobalt","cased_2d", "cased", "ocean_cobalt_btm","all","mean","none",2 # calcium carbonate in sediment