From 48bff80650c4f5f645f0a34b97ea1fae77b7fbd7 Mon Sep 17 00:00:00 2001 From: Mathew Maltrud Date: Mon, 26 Feb 2024 11:28:29 -0600 Subject: [PATCH 1/3] add distinct passive tracer background vert diffusivity --- components/mpas-ocean/bld/build-namelist | 2 ++ .../namelist_defaults_mpaso.xml | 2 ++ .../namelist_definition_mpaso.xml | 16 ++++++++++++++++ components/mpas-ocean/src/Registry.xml | 12 ++++++++++++ .../shared/mpas_ocn_diagnostics_variables.F | 6 ++++++ .../mpas-ocean/src/shared/mpas_ocn_vmix.F | 19 ++++++++++++++++++- 6 files changed, 56 insertions(+), 1 deletion(-) diff --git a/components/mpas-ocean/bld/build-namelist b/components/mpas-ocean/bld/build-namelist index 0b8d3c782fa7..238af2be2ab1 100755 --- a/components/mpas-ocean/bld/build-namelist +++ b/components/mpas-ocean/bld/build-namelist @@ -616,6 +616,8 @@ add_default($nl, 'config_use_cvmix'); add_default($nl, 'config_cvmix_prandtl_number'); add_default($nl, 'config_cvmix_background_scheme'); add_default($nl, 'config_cvmix_background_diffusion'); +add_default($nl, 'config_cvmix_background_diffusion_passive_enable'); +add_default($nl, 'config_cvmix_background_diffusion_passive'); add_default($nl, 'config_cvmix_background_viscosity'); add_default($nl, 'config_cvmix_BryanLewis_bl1'); add_default($nl, 'config_cvmix_BryanLewis_bl2'); diff --git a/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml b/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml index 4069eb144cff..d7e0485168c8 100644 --- a/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml +++ b/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml @@ -229,6 +229,8 @@ 1.0 'constant' 0.0 +.false. +0.0 1.0e-4 8.0e-5 1.05E-4 diff --git a/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml b/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml index 01456cd6583a..6b1026ea4d11 100644 --- a/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml +++ b/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml @@ -747,6 +747,22 @@ Valid values: Any positive real value. Default: Defined in namelist_defaults.xml + +Enable different background vertical diffusion value for passive tracer quantities + +Valid values: .true. or .false. +Default: Defined in namelist_defaults.xml + + + +Background vertical diffusion applied to passive tracer quantities if enabled + +Valid values: Any positive real value. +Default: Defined in namelist_defaults.xml + + Background vertical viscosity applied to horizontal velocity diff --git a/components/mpas-ocean/src/Registry.xml b/components/mpas-ocean/src/Registry.xml index f8b56c083d44..5524651cc185 100644 --- a/components/mpas-ocean/src/Registry.xml +++ b/components/mpas-ocean/src/Registry.xml @@ -477,6 +477,14 @@ description="Background vertical diffusion applied to tracer quantities" possible_values="Any positive real value." /> + + + Date: Wed, 8 May 2024 12:01:12 -0500 Subject: [PATCH 2/3] added explicit k-loop for calculating vertDiffPassive --- .../mpas-ocean/src/shared/mpas_ocn_vmix.F | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/components/mpas-ocean/src/shared/mpas_ocn_vmix.F b/components/mpas-ocean/src/shared/mpas_ocn_vmix.F index 4c96c6e952dc..5eefa945a68c 100644 --- a/components/mpas-ocean/src/shared/mpas_ocn_vmix.F +++ b/components/mpas-ocean/src/shared/mpas_ocn_vmix.F @@ -1585,15 +1585,33 @@ subroutine ocn_vmix_implicit(dt, meshPool, statePool, forcingPool, scratchPool, if (trim(groupItr % memberName) /= 'activeTracers' .and. & config_cvmix_background_diffusion_passive_enable) then - vertDiffPassiveTopOfCell = vertDiffTopOfCell - & + + +#ifdef MPAS_OPENACC + !$acc parallel loop gang vector collapse(3) present(vertDiffPassiveTopOfCell, vertDiffTopOfCell) +#else + !$omp parallel + !$omp do schedule(runtime) private(k, iTracer) +#endif + do iCell = 1, nCellsOwned + do k = 2, maxLevelCell(iCell) + vertDiffPassiveTopOfCell(k,iCell) = vertDiffTopOfCell(k,iCell) - & config_cvmix_background_diffusion + config_cvmix_background_diffusion_passive + end do + end do +#ifndef MPAS_OPENACC + !$omp end do + !$omp end parallel +#endif + + + + + + #ifdef MPAS_OPENACC !$acc update host (vertDiffPassiveTopOfCell) #endif -!maltrud debug - do k = 1, maxLevelCell(1) - write(*,*)' DEBUG01: ',k,vertDiffPassiveTopOfCell(k,1) - enddo call ocn_tracer_vmix_tend_implicit(dt, vertDiffPassiveTopOfCell, layerThickness, tracersGroup, & vertNonLocalFlux, tracerGroupSurfaceFlux, & From b25883b1fec41c95bc5bd095afd3b023d89a108c Mon Sep 17 00:00:00 2001 From: Jon Wolfe Date: Thu, 9 May 2024 15:21:41 -0500 Subject: [PATCH 3/3] Make bld files consistent with mpaso Registry using automated scripts --- components/mpas-ocean/bld/build-namelist | 4 ++-- components/mpas-ocean/bld/build-namelist-section | 4 +++- .../bld/namelist_files/namelist_defaults_mpaso.xml | 8 ++------ .../namelist_files/namelist_definition_mpaso.xml | 14 +++++++------- 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/components/mpas-ocean/bld/build-namelist b/components/mpas-ocean/bld/build-namelist index 238af2be2ab1..99bbb8c68edc 100755 --- a/components/mpas-ocean/bld/build-namelist +++ b/components/mpas-ocean/bld/build-namelist @@ -557,9 +557,9 @@ add_default($nl, 'config_Redi_constant_kappa'); add_default($nl, 'config_Redi_maximum_slope'); add_default($nl, 'config_Redi_use_slope_taper'); add_default($nl, 'config_Redi_use_surface_taper'); +add_default($nl, 'config_Redi_limit_term1'); add_default($nl, 'config_Redi_use_quasi_monotone_limiter'); add_default($nl, 'config_Redi_quasi_monotone_safety_factor'); -add_default($nl, 'config_Redi_limit_term1'); add_default($nl, 'config_Redi_min_layers_diag_terms'); add_default($nl, 'config_Redi_horizontal_taper'); add_default($nl, 'config_Redi_horizontal_ramp_min'); @@ -616,8 +616,8 @@ add_default($nl, 'config_use_cvmix'); add_default($nl, 'config_cvmix_prandtl_number'); add_default($nl, 'config_cvmix_background_scheme'); add_default($nl, 'config_cvmix_background_diffusion'); -add_default($nl, 'config_cvmix_background_diffusion_passive_enable'); add_default($nl, 'config_cvmix_background_diffusion_passive'); +add_default($nl, 'config_cvmix_background_diffusion_passive_enable'); add_default($nl, 'config_cvmix_background_viscosity'); add_default($nl, 'config_cvmix_BryanLewis_bl1'); add_default($nl, 'config_cvmix_BryanLewis_bl2'); diff --git a/components/mpas-ocean/bld/build-namelist-section b/components/mpas-ocean/bld/build-namelist-section index 28030392442d..bebd11c72b31 100644 --- a/components/mpas-ocean/bld/build-namelist-section +++ b/components/mpas-ocean/bld/build-namelist-section @@ -96,9 +96,9 @@ add_default($nl, 'config_Redi_constant_kappa'); add_default($nl, 'config_Redi_maximum_slope'); add_default($nl, 'config_Redi_use_slope_taper'); add_default($nl, 'config_Redi_use_surface_taper'); +add_default($nl, 'config_Redi_limit_term1'); add_default($nl, 'config_Redi_use_quasi_monotone_limiter'); add_default($nl, 'config_Redi_quasi_monotone_safety_factor'); -add_default($nl, 'config_Redi_limit_term1'); add_default($nl, 'config_Redi_min_layers_diag_terms'); add_default($nl, 'config_Redi_horizontal_taper'); add_default($nl, 'config_Redi_horizontal_ramp_min'); @@ -155,6 +155,8 @@ add_default($nl, 'config_use_cvmix'); add_default($nl, 'config_cvmix_prandtl_number'); add_default($nl, 'config_cvmix_background_scheme'); add_default($nl, 'config_cvmix_background_diffusion'); +add_default($nl, 'config_cvmix_background_diffusion_passive'); +add_default($nl, 'config_cvmix_background_diffusion_passive_enable'); add_default($nl, 'config_cvmix_background_viscosity'); add_default($nl, 'config_cvmix_BryanLewis_bl1'); add_default($nl, 'config_cvmix_BryanLewis_bl2'); diff --git a/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml b/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml index d7e0485168c8..8d7c8cdce7a7 100644 --- a/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml +++ b/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml @@ -146,15 +146,14 @@ 0.01 .true. .true. +.true. .true. 0.9 -.true. 0 15 'ramp' 'RossbyRadius' 'RossbyRadius' - 'ramp' 20e3 30e3 @@ -180,7 +179,6 @@ 'constant' 'N2_dependent' 'N2_dependent' - 'constant' 900.0 600.0 @@ -198,7 +196,6 @@ 3.0 1.0 1.0 - 3.0 0.13 1000.0 @@ -209,7 +206,6 @@ 'ramp' 'RossbyRadius' 'RossbyRadius' - 'ramp' 20e3 30e3 @@ -229,8 +225,8 @@ 1.0 'constant' 0.0 -.false. 0.0 +.false. 1.0e-4 8.0e-5 1.05E-4 diff --git a/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml b/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml index 6b1026ea4d11..c2fac6fc35ce 100644 --- a/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml +++ b/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml @@ -747,19 +747,19 @@ Valid values: Any positive real value. Default: Defined in namelist_defaults.xml - -Enable different background vertical diffusion value for passive tracer quantities +Background vertical diffusion applied to passive tracer quantities -Valid values: .true. or .false. +Valid values: Any positive real value. Default: Defined in namelist_defaults.xml - -Background vertical diffusion applied to passive tracer quantities if enabled +flag to enable using a different background vertical diffusion for passive tracers -Valid values: Any positive real value. +Valid values: .true. or .false. Default: Defined in namelist_defaults.xml @@ -2054,7 +2054,7 @@ Default: Defined in namelist_defaults.xml -number of large iterations over stages 1-3 +number of large iterations over stages 1-3; For the split_explicit_ab2 time integrator, this value only affects the first time step when it is not a restart run. For restart runs, this value has no effect on the split_explicit_ab2 time integrator. Valid values: any positive integer, but typically 1, 2, or 3 Default: Defined in namelist_defaults.xml