From f754cc2499914bc91824906f706beec8fb2519a5 Mon Sep 17 00:00:00 2001 From: Gustavo Marques Date: Sun, 1 Sep 2024 09:01:06 -0600 Subject: [PATCH 1/5] New defaults for CESM 3.0 KHTH_MIN = KHTR_MIN = 50 OPACITY_SCHEME = "OHLMANN" DIABATIC_FIRST = False REMAP_VEL_CONSERVE_KE = True FULL_DEPTH_KHTR_MIN = True FULL_DEPTH_KHTH_MIN = True KHTH_MIN = 50 MOM6_VERTICAL_GRID = hycom1 When grid is hycom1: REGRID_COMPRESSIBILITY_FRACTION = 0 MAX_LAYER_THICKNESS_CONFIG = "FILE:dz_max_90th_quantile.nc,dz" Z_INIT_REMAP_GENERAL = True --- cime_config/config_component.xml | 1 + param_templates/MOM_input.yaml | 73 ++++++++++++++++++++++++----- param_templates/json/MOM_input.json | 60 ++++++++++++++++++++---- 3 files changed, 112 insertions(+), 22 deletions(-) diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml index 27d22db..7e1061d 100644 --- a/cime_config/config_component.xml +++ b/cime_config/config_component.xml @@ -73,6 +73,7 @@ zstar_75L,zstar_65L,hycom1,sigma_shelf_zstar zstar_65L + hycom1 hycom1 sigma_shelf_zstar diff --git a/param_templates/MOM_input.yaml b/param_templates/MOM_input.yaml index ffe71d6..c094dd2 100644 --- a/param_templates/MOM_input.yaml +++ b/param_templates/MOM_input.yaml @@ -115,16 +115,6 @@ Global: units: Boolean value: $OCN_GRID == "tx2_3v2": False - DIABATIC_FIRST: - description: | - "[Boolean] default = False - If true, apply diabatic and thermodynamic processes, - including buoyancy forcing and mass gain or loss, - before stepping the dynamics forward." - datatype: logical - units: Boolean - value: - $OCN_GRID == "tx2_3v2": True USE_REGRIDDING: description: | "[Boolean] default = False @@ -615,6 +605,16 @@ Global: PQM_IH6IH5 (5th-order accurate)" datatype: string value: "PPM_CW" + REMAP_VEL_CONSERVE_KE: + description: | + "[Boolean] default = False + If true, a correction is applied to the baroclinic component of velocity after + remapping so that total KE is conserved. KE may not be conserved when + (CS%BBL_h_vel_mask > 0.0) .and. (CS%h_vel_mask > 0.0)" + datatype: logical + units: Boolean + value: + $OCN_GRID == "tx2_3v2": True INIT_LAYERS_FROM_Z_FILE: description: | "[Boolean] default = False @@ -662,6 +662,15 @@ Global: datatype: logical units: Boolean value: False + Z_INIT_REMAP_GENERAL: + description: | + "[Boolean] default = False + If false, only initializes to z* coordinates. If true, allows initialization + directly to general coordinates." + datatype: logical + units: Boolean + value: + $MOM6_VERTICAL_GRID == "hycom1" and $OCN_GRID in ["tx2_3v2"]: True USE_VARIABLE_MIXING: description: | "[Boolean] default = False @@ -913,7 +922,7 @@ Global: datatype: real units: not defined value: - $MOM6_VERTICAL_GRID == "hycom1": 0.01 + $MOM6_VERTICAL_GRID == "hycom1": 0.0 MAXIMUM_INT_DEPTH_CONFIG: description: | "default = 'NONE' @@ -943,7 +952,8 @@ Global: The list of maximum thickness for each layer." datatype: string value: - $MOM6_VERTICAL_GRID == "hycom1": '"FNC1:400,31000.0,0.1,.01"' + $MOM6_VERTICAL_GRID == "hybrid" and $OCN_GRID in ["tx2_3v2"]: '"FILE:dz_max_90th_quantile.nc,dz"' + else: '"FNC1:400,31000.0,0.1,.01"' BOUND_CORIOLIS: description: | "[Boolean] default = False @@ -1366,6 +1376,24 @@ Global: value: $OCN_GRID == "tx2_3v2": 0.0 $OCN_GRID == "MISOMIP": 0.0 + KHTH_MIN: + description: | + "[m2 s-1] default = 0.0 + The minimum horizontal thickness diffusivity" + datatype: real + units: m2 s-1 + value: + $OCN_GRID == "tx2_3v2": 50.0 + FULL_DEPTH_KHTH_MIN: + description: | + "[Boolean] default = False + KHTH_MIN is enforced throughout the whole water column. Otherwise, + KHTH_MIN is only enforced at the surface. This parameter is only available + when KHTH_USE_EBT_STRUCT=True and KHTH_MIN>0." + datatype: logical + units: Boolean + value: + $OCN_GRID == "tx2_3v2": True KHTH_MAX_CFL: description: | "[nondimensional] default = 0.8 @@ -2002,6 +2030,17 @@ Global: value: $OCN_GRID == "tx0.25v1": 3 $OCN_GRID == "tx2_3v2": 3 + OPACITY_SCHEME: + description: | + "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. + OHLMANN_03 - Use Ohlmann, J Clim, 2003." + datatype: string + value: + $OCN_GRID == "tx2_3v2": "OHLMANN_03" TRACER_ADVECTION_SCHEME: description: | "default = 'PLM' @@ -2037,6 +2076,16 @@ Global: units: m2 s-1 value: $OCN_GRID == "tx2_3v2": 50.0 + FULL_DEPTH_KHTR_MIN: + description: | + "[Boolean] default = False + KHTR_MIN is enforced throughout the whole water column. Otherwise, + KHTR_MIN is only enforced at the surface. This parameter is only available + when KHTR_USE_EBT_STRUCT=True and KHTR_MIN>0." + datatype: logical + units: Boolean + value: + $OCN_GRID == "tx2_3v2": True DEBUG: description: | "If true, write out verbose debugging data." diff --git a/param_templates/json/MOM_input.json b/param_templates/json/MOM_input.json index 4e4039d..22cfcf6 100644 --- a/param_templates/json/MOM_input.json +++ b/param_templates/json/MOM_input.json @@ -68,14 +68,6 @@ "$OCN_GRID == \"tx2_3v2\"": false } }, - "DIABATIC_FIRST": { - "description": "\"[Boolean] default = False\nIf true, apply diabatic and thermodynamic processes,\nincluding buoyancy forcing and mass gain or loss,\nbefore stepping the dynamics forward.\"\n", - "datatype": "logical", - "units": "Boolean", - "value": { - "$OCN_GRID == \"tx2_3v2\"": true - } - }, "USE_REGRIDDING": { "description": "\"[Boolean] default = False\nIf True, use the ALE algorithm (regridding/remapping).\nIf False, use the layered isopycnal algorithm.\"\n", "datatype": "logical", @@ -467,6 +459,14 @@ "datatype": "string", "value": "PPM_CW" }, + "REMAP_VEL_CONSERVE_KE": { + "description": "\"[Boolean] default = False\nIf true, a correction is applied to the baroclinic component of velocity after\nremapping so that total KE is conserved. KE may not be conserved when\n(CS%BBL_h_vel_mask > 0.0) .and. (CS%h_vel_mask > 0.0)\"\n", + "datatype": "logical", + "units": "Boolean", + "value": { + "$OCN_GRID == \"tx2_3v2\"": true + } + }, "INIT_LAYERS_FROM_Z_FILE": { "description": "\"[Boolean] default = False\nIf true, intialize the layer thicknesses, temperatures,\nand salnities from a Z-space file on a latitude-\nlongitude grid.\"\n", "datatype": "logical", @@ -505,6 +505,14 @@ "units": "Boolean", "value": false }, + "Z_INIT_REMAP_GENERAL": { + "description": "\"[Boolean] default = False\nIf false, only initializes to z* coordinates. If true, allows initialization\ndirectly to general coordinates.\"\n", + "datatype": "logical", + "units": "Boolean", + "value": { + "$MOM6_VERTICAL_GRID == \"hycom1\" and $OCN_GRID in [\"tx2_3v2\"]": true + } + }, "USE_VARIABLE_MIXING": { "description": "\"[Boolean] default = False\nIf true, the variable mixing code will be called. This\nallows diagnostics to be created even if the scheme is\nnot used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0,\nthis is set to true regardless of what is in the\nparameter file.\"\n", "datatype": "logical", @@ -694,7 +702,7 @@ "datatype": "real", "units": "not defined", "value": { - "$MOM6_VERTICAL_GRID == \"hycom1\"": 0.01 + "$MOM6_VERTICAL_GRID == \"hycom1\"": 0.0 } }, "MAXIMUM_INT_DEPTH_CONFIG": { @@ -708,7 +716,8 @@ "description": "\"default = 'NONE'\nDetermines how to specify the maximum layer thicknesses.\nValid options are:\nNONE - there are no maximum layer thicknesses\nPARAM - use the vector-parameter MAX_LAYER_THICKNESS\nFILE:string - read from a file. The string specifies\nthe filename and variable name, separated\nby a comma or space, e.g. FILE:lev.nc,Z\nFNC1:string - FNC1:dz_min,H_total,power,precision\nThe list of maximum thickness for each layer.\"\n", "datatype": "string", "value": { - "$MOM6_VERTICAL_GRID == \"hycom1\"": "\"FNC1:400,31000.0,0.1,.01\"" + "$MOM6_VERTICAL_GRID == \"hybrid\" and $OCN_GRID in [\"tx2_3v2\"]": "\"FILE:dz_max_90th_quantile.nc,dz\"", + "else": "\"FNC1:400,31000.0,0.1,.01\"" } }, "BOUND_CORIOLIS": { @@ -1021,6 +1030,22 @@ "$OCN_GRID == \"MISOMIP\"": 0.0 } }, + "KHTH_MIN": { + "description": "\"[m2 s-1] default = 0.0\nThe minimum horizontal thickness diffusivity\"\n", + "datatype": "real", + "units": "m2 s-1", + "value": { + "$OCN_GRID == \"tx2_3v2\"": 50.0 + } + }, + "FULL_DEPTH_KHTH_MIN": { + "description": "\"[Boolean] default = False\nKHTH_MIN is enforced throughout the whole water column. Otherwise,\nKHTH_MIN is only enforced at the surface. This parameter is only available\nwhen KHTH_USE_EBT_STRUCT=True and KHTH_MIN>0.\"\n", + "datatype": "logical", + "units": "Boolean", + "value": { + "$OCN_GRID == \"tx2_3v2\"": true + } + }, "KHTH_MAX_CFL": { "description": "\"[nondimensional] default = 0.8\nThe maximum value of the local diffusive CFL ratio that\nis permitted for the thickness diffusivity. 1.0 is the\nmarginally unstable value in a pure layered model, but\nmuch smaller numbers (e.g. 0.1) seem to work better for\nALE-based models.\"\n", "datatype": "real", @@ -1560,6 +1585,13 @@ "$OCN_GRID == \"tx2_3v2\"": 3 } }, + "OPACITY_SCHEME": { + "description": "\"default = 'MANIZZA_05'\nThis character string specifies how chlorophyll concentrations are translated\ninto opacities. Currently valid options include:\n MANIZZA_05 - Use Manizza et al., GRL, 2005.\n MOREL_88 - Use Morel, JGR, 1988.\n OHLMANN_03 - Use Ohlmann, J Clim, 2003.\"\n", + "datatype": "string", + "value": { + "$OCN_GRID == \"tx2_3v2\"": "OHLMANN_03" + } + }, "TRACER_ADVECTION_SCHEME": { "description": "\"default = 'PLM'\nThe horizontal transport scheme for tracers:\nPLM - Piecewise Linear Method\nPPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order)\"\n", "datatype": "string", @@ -1592,6 +1624,14 @@ "$OCN_GRID == \"tx2_3v2\"": 50.0 } }, + "FULL_DEPTH_KHTR_MIN": { + "description": "\"[Boolean] default = False\nKHTR_MIN is enforced throughout the whole water column. Otherwise,\nKHTR_MIN is only enforced at the surface. This parameter is only available\nwhen KHTR_USE_EBT_STRUCT=True and KHTR_MIN>0.\"\n", + "datatype": "logical", + "units": "Boolean", + "value": { + "$OCN_GRID == \"tx2_3v2\"": true + } + }, "DEBUG": { "description": "\"If true, write out verbose debugging data.\"\n", "datatype": "logical", From 193be46d5955e26e278577771db77d0a7a1a5dbe Mon Sep 17 00:00:00 2001 From: Gustavo Marques Date: Sun, 1 Sep 2024 10:51:37 -0600 Subject: [PATCH 2/5] Set PEN_SW_NBANDS = 2 for tx2_3v2 --- param_templates/MOM_input.yaml | 2 +- param_templates/json/MOM_input.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/param_templates/MOM_input.yaml b/param_templates/MOM_input.yaml index c094dd2..995e44d 100644 --- a/param_templates/MOM_input.yaml +++ b/param_templates/MOM_input.yaml @@ -2029,7 +2029,7 @@ Global: datatype: integer value: $OCN_GRID == "tx0.25v1": 3 - $OCN_GRID == "tx2_3v2": 3 + $OCN_GRID == "tx2_3v2": 2 OPACITY_SCHEME: description: | "default = 'MANIZZA_05' diff --git a/param_templates/json/MOM_input.json b/param_templates/json/MOM_input.json index 22cfcf6..2eed71e 100644 --- a/param_templates/json/MOM_input.json +++ b/param_templates/json/MOM_input.json @@ -1582,7 +1582,7 @@ "datatype": "integer", "value": { "$OCN_GRID == \"tx0.25v1\"": 3, - "$OCN_GRID == \"tx2_3v2\"": 3 + "$OCN_GRID == \"tx2_3v2\"": 2 } }, "OPACITY_SCHEME": { From 9a1e53ce1cce659e78b5477de8942df1b9947f2a Mon Sep 17 00:00:00 2001 From: Gustavo Marques Date: Tue, 3 Sep 2024 11:36:01 -0600 Subject: [PATCH 3/5] Add prefix to maximum thickness file --- param_templates/MOM_input.yaml | 3 ++- param_templates/json/MOM_input.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/param_templates/MOM_input.yaml b/param_templates/MOM_input.yaml index 995e44d..0d60f33 100644 --- a/param_templates/MOM_input.yaml +++ b/param_templates/MOM_input.yaml @@ -952,7 +952,8 @@ Global: The list of maximum thickness for each layer." datatype: string value: - $MOM6_VERTICAL_GRID == "hybrid" and $OCN_GRID in ["tx2_3v2"]: '"FILE:dz_max_90th_quantile.nc,dz"' + $MOM6_VERTICAL_GRID == "hybrid" and $OCN_GRID in ["tx2_3v2"]: | + '"FILE:${DIN_LOC_ROOT}/ocn/mom/grid_indpt/dz_max_90th_quantile.nc,dz"' else: '"FNC1:400,31000.0,0.1,.01"' BOUND_CORIOLIS: description: | diff --git a/param_templates/json/MOM_input.json b/param_templates/json/MOM_input.json index 2eed71e..60c0570 100644 --- a/param_templates/json/MOM_input.json +++ b/param_templates/json/MOM_input.json @@ -716,7 +716,7 @@ "description": "\"default = 'NONE'\nDetermines how to specify the maximum layer thicknesses.\nValid options are:\nNONE - there are no maximum layer thicknesses\nPARAM - use the vector-parameter MAX_LAYER_THICKNESS\nFILE:string - read from a file. The string specifies\nthe filename and variable name, separated\nby a comma or space, e.g. FILE:lev.nc,Z\nFNC1:string - FNC1:dz_min,H_total,power,precision\nThe list of maximum thickness for each layer.\"\n", "datatype": "string", "value": { - "$MOM6_VERTICAL_GRID == \"hybrid\" and $OCN_GRID in [\"tx2_3v2\"]": "\"FILE:dz_max_90th_quantile.nc,dz\"", + "$MOM6_VERTICAL_GRID == \"hybrid\" and $OCN_GRID in [\"tx2_3v2\"]": "'\"FILE:${DIN_LOC_ROOT}/ocn/mom/grid_indpt/dz_max_90th_quantile.nc,dz\"'\n", "else": "\"FNC1:400,31000.0,0.1,.01\"" } }, From 43d8481e6ac47a014047d4519e77409e9b15b624 Mon Sep 17 00:00:00 2001 From: Gustavo Marques Date: Tue, 3 Sep 2024 11:56:22 -0600 Subject: [PATCH 4/5] Fix a typo hybrid ==> hycom1 --- param_templates/MOM_input.yaml | 2 +- param_templates/json/MOM_input.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/param_templates/MOM_input.yaml b/param_templates/MOM_input.yaml index 0d60f33..b1339be 100644 --- a/param_templates/MOM_input.yaml +++ b/param_templates/MOM_input.yaml @@ -952,7 +952,7 @@ Global: The list of maximum thickness for each layer." datatype: string value: - $MOM6_VERTICAL_GRID == "hybrid" and $OCN_GRID in ["tx2_3v2"]: | + $MOM6_VERTICAL_GRID == "hycom1" and $OCN_GRID in ["tx2_3v2"]: | '"FILE:${DIN_LOC_ROOT}/ocn/mom/grid_indpt/dz_max_90th_quantile.nc,dz"' else: '"FNC1:400,31000.0,0.1,.01"' BOUND_CORIOLIS: diff --git a/param_templates/json/MOM_input.json b/param_templates/json/MOM_input.json index 60c0570..8c6d0e4 100644 --- a/param_templates/json/MOM_input.json +++ b/param_templates/json/MOM_input.json @@ -716,7 +716,7 @@ "description": "\"default = 'NONE'\nDetermines how to specify the maximum layer thicknesses.\nValid options are:\nNONE - there are no maximum layer thicknesses\nPARAM - use the vector-parameter MAX_LAYER_THICKNESS\nFILE:string - read from a file. The string specifies\nthe filename and variable name, separated\nby a comma or space, e.g. FILE:lev.nc,Z\nFNC1:string - FNC1:dz_min,H_total,power,precision\nThe list of maximum thickness for each layer.\"\n", "datatype": "string", "value": { - "$MOM6_VERTICAL_GRID == \"hybrid\" and $OCN_GRID in [\"tx2_3v2\"]": "'\"FILE:${DIN_LOC_ROOT}/ocn/mom/grid_indpt/dz_max_90th_quantile.nc,dz\"'\n", + "$MOM6_VERTICAL_GRID == \"hycom1\" and $OCN_GRID in [\"tx2_3v2\"]": "'\"FILE:${DIN_LOC_ROOT}/ocn/mom/grid_indpt/dz_max_90th_quantile.nc,dz\"'\n", "else": "\"FNC1:400,31000.0,0.1,.01\"" } }, From 6bcd6245b84cce1ee3762226c9fcc3f5cd9d49c6 Mon Sep 17 00:00:00 2001 From: Gustavo Marques Date: Tue, 3 Sep 2024 19:25:27 -0600 Subject: [PATCH 5/5] Revert REMAP_VEL_CONSERVE_KE to False --- param_templates/MOM_input.yaml | 2 +- param_templates/json/MOM_input.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/param_templates/MOM_input.yaml b/param_templates/MOM_input.yaml index b1339be..f83a64c 100644 --- a/param_templates/MOM_input.yaml +++ b/param_templates/MOM_input.yaml @@ -614,7 +614,7 @@ Global: datatype: logical units: Boolean value: - $OCN_GRID == "tx2_3v2": True + $OCN_GRID == "tx2_3v2": False INIT_LAYERS_FROM_Z_FILE: description: | "[Boolean] default = False diff --git a/param_templates/json/MOM_input.json b/param_templates/json/MOM_input.json index 8c6d0e4..ea5463d 100644 --- a/param_templates/json/MOM_input.json +++ b/param_templates/json/MOM_input.json @@ -464,7 +464,7 @@ "datatype": "logical", "units": "Boolean", "value": { - "$OCN_GRID == \"tx2_3v2\"": true + "$OCN_GRID == \"tx2_3v2\"": false } }, "INIT_LAYERS_FROM_Z_FILE": {