#2075 closed Enhancement (fixed)
LDF: scale-aware setting of viscous and diffusive coefficient
Reported by: | gm | Owned by: | gm |
---|---|---|---|
Priority: | normal | Milestone: | 2018 release-4.0 |
Component: | OCE | Version: | trunk |
Severity: | minor | Keywords: | LDF OPA v4.0 |
Cc: |
Description (last modified by nemo)
Context
In the current version of the trunk as well as in dev_merge_2017:
1- the diffusive and viscous coefficients are defined in a "scale-aware" way which may be problematic, especially with AGRIF zoom.
2- the masking of the coefficients has an error with under ice-shelf cavities: when a space-only variation is chosen, the coefficients are zero in the cavities.
3- simplification of the setting of passive tracer diffusivity.
Proposal
change in the dev_merge_2017 the following things:
1- scale-aware definition of diffusive and viscous coefficients:
The coefficients are now defined from characteristic velocity and length scale provided in the namelist:
laplacian case: ah = 1/2 Ud*Ld — bi-laplacian case: ah = 1/12 Ud*Ld^{3 }
Note that when the grid dependent option is used, only Ud is used, Ld is replaced by max(e1,e2) and when a velocity dependent case is chosen, Ud=|Un| and Ld=max(e1,e2).
2- Bug correction for under ice-shelf cavities:
remove all masking from ldfc1d_c2d.F90 and, in ldfdyn.F90 and ldftra.F90 add the masking only at the end of the initialization.
3- the choice for passive tracer operator/coefficient becomes simply : no diffusivity or use the active tracer choice with the possibility of a multiplier of aht.
4- update the NEMO ocean engine documentation.
Code modifications :
- namelist : namtra_ldf, namtra_eiv and namdyn_ldf (_ref and all _cfg namelists) become:
!----------------------------------------------------------------------- &namtra_ldf ! lateral diffusion scheme for tracers (default: NO selection) !----------------------------------------------------------------------- ! ! Operator type: ln_traldf_NONE = .false. ! No explicit diffusion ln_traldf_lap = .false. ! laplacian operator ln_traldf_blp = .false. ! bilaplacian operator ! ! ! Direction of action: ln_traldf_lev = .false. ! iso-level ln_traldf_hor = .false. ! horizontal (geopotential) ln_traldf_iso = .false. ! iso-neutral (standard operator) ln_traldf_triad = .false. ! iso-neutral (triad operator) ! ! ! iso-neutral options: ln_traldf_msc = .false. ! Method of Stabilizing Correction (both operators) rn_slpmax = 0.01 ! slope limit (both operators) ln_triad_iso = .false. ! pure horizontal mixing in ML (triad only) rn_sw_triad = 1 ! =1 switching triad ; =0 all 4 triads used (triad only) ln_botmix_triad = .false. ! lateral mixing on bottom (triad only) ! ! ! Coefficients: nn_aht_ijk_t = 0 ! space/time variation of eddy coefficient: ! ! =-20 (=-30) read in eddy_diffusivity_2D.nc (..._3D.nc) file ! ! = 0 constant ! ! = 10 F(k) =ldf_c1d ! ! = 20 F(i,j) =ldf_c2d ! ! = 21 F(i,j,t) =Treguier et al. JPO 1997 formulation ! ! = 30 F(i,j,k) =ldf_c2d * ldf_c1d ! ! = 31 F(i,j,k,t)=F(local velocity and grid-spacing) ! ! time invariant coefficients: aht = 1/2 Ud*Ld (lap case) ! ! or = 1/12 Ud*Ld^3 (blp case) rn_Ud = 0.1 ! lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30) rn_Ld = 10.e+3 ! lateral diffusive length [m] (nn_aht_ijk_t= 0, 10) / &namtra_eiv ! eddy induced velocity param. (default: NO eiv) !----------------------------------------------------------------------- ln_ldfeiv = .false. ! use eddy induced velocity parameterization ! ! ! Coefficients: nn_aht_ijk_t = 0 ! space/time variation of eddy coefficient: ! ! =-20 (=-30) read in eddy_induced_velocity_2D.nc (..._3D.nc) file ! ! = 0 constant ! ! = 10 F(k) =ldf_c1d ! ! = 20 F(i,j) =ldf_c2d ! ! = 21 F(i,j,t) =Treguier et al. JPO 1997 formulation ! ! = 30 F(i,j,k) =ldf_c2d * ldf_c1d ! ! time invariant coefficients: aei = 1/2 Ue*Le rn_Ue = 0.02 ! lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30) rn_Le = 200.e+3 ! lateral diffusive length [m] (nn_aht_ijk_t= 0, 10) ! ln_ldfeiv_dia =.false. ! diagnose eiv stream function and velocities / ... !----------------------------------------------------------------------- &namdyn_ldf ! lateral diffusion on momentum (default: NO selection) !----------------------------------------------------------------------- ! ! Type of the operator : ln_dynldf_NONE= .false. ! No operator (i.e. no explicit diffusion) ln_dynldf_lap = .false. ! laplacian operator ln_dynldf_blp = .false. ! bilaplacian operator ! ! Direction of action : ln_dynldf_lev = .false. ! iso-level ln_dynldf_hor = .false. ! horizontal (geopotential) ln_dynldf_iso = .false. ! iso-neutral (lap only) ! ! Coefficient nn_ahm_ijk_t = 0 ! space/time variation of eddy coefficient : ! ! =-30 read in eddy_viscosity_3D.nc file ! ! =-20 read in eddy_viscosity_2D.nc file ! ! = 0 constant ! ! = 10 F(k)=c1d ! ! = 20 F(i,j)=F(grid spacing)=c2d ! ! = 30 F(i,j,k)=c2d*c1d ! ! = 31 F(i,j,k)=F(grid spacing and local velocity) ! ! = 32 F(i,j,k)=F(local gridscale and deformation rate) ! ! time invariant coefficients : ahm = 1/2 Uv*Lv (lap case) ! ! or = 1/12 Uv*Lv^3 (blp case) rn_Uv = 0.1 ! lateral viscous velocity [m/s] (nn_ahm_ijk_t= 0, 10, 20, 30) rn_Lv = 10.e+3 ! lateral viscous length [m] (nn_ahm_ijk_t= 0, 10) ! ! Smagorinsky settings (nn_ahm_ijk_t= 32) : rn_csmc = 3.5 ! Smagorinsky constant of proportionality rn_minfac = 1.0 ! multiplier of theorectical lower limit rn_maxfac = 1.0 ! multiplier of theorectical upper limit ! ! iso-neutral laplacian operator (ln_dynldf_iso=T) : rn_ahm_b = 0.0 ! background eddy viscosity [m2/s] /
- LDF : modifications in all the modules (ldfc1d_c2d.F90 ; ldfdyn.F90 ; ldfslp.F90 ; ldftra.F90)
- DYN and TRA : move operator choice from dynldf/traldf to ldfdyn/ldftra. Modification in dynldf_iso.F90 as it uses tracer mixing coefficient. move the definition of np_... parameters from traldf_lap_blp.F90 to ldftra.F90 and from dyn_ldf.F90 to ldfdyn.F90.
- TOP : significant simplification in trcldf.F90 and oce_trc.F90. The namtrc_ldf simply becomes:
!----------------------------------------------------------------------- &namtrc_ldf ! lateral diffusion scheme for passive tracer (default: NO selection) !----------------------------------------------------------------------- ! ! Type of the operator: ln_trcldf_NONE = .false. ! No explicit diffusion ln_trcldf_tra = .false. ! use active tracer setting ! ! Coefficient (defined with namtra_ldf coefficient) rn_ldf_multi = 1. ! multiplier of aht for TRC mixing coefficient rn_fact_lap = 1. ! Equatorial enhanced zonal eddy diffusivity (lap only) /
- DOC update the Chapter LDF (chap_LDF.tex)
- miscellaneous issues
1- dynhpg.F90 : add np_ERROR, _zco, _sps ,... parameter and use them in SELECT CASE( nhpg)
2- nemogcm.F90 : change the size of cltxt arrays from 30 to 60 to correct a out-of-bound issue in TEST_CASES/CANAL configuration
3- some minor changes in comments in diatmb.F90, dom_oce.F90, domain.F90, step.F90
Commit History (2)
Changeset | Author | Time | ChangeLog |
---|---|---|---|
9516 | gm | 2018-04-27T16:46:20+02:00 | #2075 - dev_merge_2017: CONFIG:correct the namelist_top_cfg + activate ln_traldf_msc in ORCA2 and NORDIC |
9490 | gm | 2018-04-23T10:44:07+02:00 | #2075 - dev_merge_2017: scale-aware setting of lateral viscous and diffusive coefficient |
Change History (7)
comment:1 Changed 5 years ago by acc
comment:2 Changed 5 years ago by nemo
- Description modified (diff)
comment:3 Changed 5 years ago by gm
In 9490:
comment:4 Changed 5 years ago by gm
In 9516:
comment:5 Changed 5 years ago by nemo
- Status changed from new to assigned
comment:6 Changed 5 years ago by gm
- Resolution set to fixed
- Status changed from assigned to closed
comment:7 Changed 20 months ago by nemo
- Keywords OPA v4.0 added
Do we really need both:
if the only choice is to use the active tracer setting or not? Just:
would do the job