Tracer damping (tradmp.F90)

&namtra_dmp    !   tracer: T & S newtonian damping
   ln_tradmp   =  .true.   !  add a damping termn (T) or not (F)
   nn_zdmp     =    0      !  vertical   shape =0    damping throughout the water column
                           !                   =1 no damping in the mixing layer (kz  criteria)
                           !                   =2 no damping in the mixed  layer (rho crieria)
   cn_resto    = '' ! Name of file containing restoration coefficient field (use dmp_tools to create this)

In some applications it can be useful to add a Newtonian damping term into the temperature and salinity equations:

\begin{displaymath}\begin{split}\frac{\partial T}{\partial t}=\;\cdots \;-\gamma...
...ial t}=\;\cdots \;-\gamma  \left( {S-S_o } \right) \end{split}\end{displaymath} (5.23)

where $ \gamma$ is the inverse of a time scale, and $ T_o$ and $ S_o$ are given temperature and salinity fields (usually a climatology). Options are defined through the namtra_dmp namelist variables. The restoring term is added when the namelist parameter ln_tradmp is set to true. It also requires that both ln_tsd_init and ln_tsd_tradmp are set to true in namtsd namelist as well as sn_tem and sn_sal structures are correctly set ($ i.e.$ that $ T_o$ and $ S_o$ are provided in input files and read using fldread.F90, see §7.2.1). The restoring coefficient $ \gamma$ is a three-dimensional array read in during the tra_dmp_init routine. The file name is specified by the namelist variable cn_resto. The DMP_TOOLS tool is provided to allow users to generate the netcdf file.

The two main cases in which (5.23) is used are (a) the specification of the boundary conditions along artificial walls of a limited domain basin and (b) the computation of the velocity field associated with a given $ T$-$ S$ field (for example to build the initial state of a prognostic simulation, or to use the resulting velocity field for a passive tracer study). The first case applies to regional models that have artificial walls instead of open boundaries. In the vicinity of these walls, $ \gamma$ takes large values (equivalent to a time scale of a few days) whereas it is zero in the interior of the model domain. The second case corresponds to the use of the robust diagnostic method [Sarmiento and Bryan, 1982]. It allows us to find the velocity field consistent with the model dynamics whilst having a $ T$, $ S$ field close to a given climatological field ($ T_o$, $ S_o$).

The robust diagnostic method is very efficient in preventing temperature drift in intermediate waters but it produces artificial sources of heat and salt within the ocean. It also has undesirable effects on the ocean convection. It tends to prevent deep convection and subsequent deep-water formation, by stabilising the water column too much.

The namelist parameter nn_zdmp sets whether the damping should be applied in the whole water column or only below the mixed layer (defined either on a density or $ S_o$ criterion). It is common to set the damping to zero in the mixed layer as the adjustment time scale is short here [Madec et al., 1996].

Generating using DMP_TOOLS

DMP_TOOLS can be used to generate a netcdf file containing the restoration coefficient $ \gamma$. Note that in order to maintain bit comparison with previous NEMO versions DMP_TOOLS must be compiled and run on the same machine as the NEMO model. A file for the model configuration is required as an input. This can be generated by carrying out a short model run with the namelist parameter nn_msh set to 1. The namelist parameter ln_tradmp will also need to be set to .false. for this to work. The bluenam_dmp_create namelist in the DMP_TOOLS directory is used to specify options for the restoration coefficient.

    cp_cfg = 'orca'            ! Name of model grid (orca and C1D have special options 
                               ! otherwise ignored)
    cp_cfz = 'antarctic'       ! Name of zoom configuration (arctic and antarctic have 
                               ! some special treatment if lzoom=.true.)
    jp_cfg = 2                 ! Resolution of the model (used for med_red_seas damping)
    lzoom = .false.            ! Zoom configuration or not
    ln_full_field = .false.    ! Calculate coefficient over whole of domain
    ln_med_red_seas = .true.   ! Damping in Med/Red Seas 
                               ! (or local modifications here if ln_full_field=.true.)
    ln_old_31_lev_code = .true.   ! Replicate behaviour of old online code for 31 level model 
                                  ! (Med/Red seas damping based on level number instead of depth)
    ln_coast = .true.          ! Reduce near to coastlines
    ln_zero_top_layer = .true. ! No damping in top layer
    ln_custom = .false.        ! Call "custom" module to apply user modifications to the 
                               ! damping coefficient field
    pn_surf = 0.25             ! Surface Relaxation timescale (days)
    pn_bot = 0.25              ! Bottom relaxation timescale (days)
    pn_dep = 1000              ! Transition depth from upper to deep ocean
    nn_hdmp = 10               ! Damp poleward of this latitude (smooth transition up to maximum damping)
    jperio = 2                 ! Lateral boundary condition (as specified in namelist_cfg for model run).

cp_cfg, cp_cpz, jp_cfg and jperio specify the model configuration being used and should be the same as specified in bluenamcfg. The variable bluelzoom is used to specify that the damping is being used as in case a above to provide boundary conditions to a zoom configuration. In the case of the arctic or antarctic zoom configurations this includes some specific treatment. Otherwise damping is applied to the 6 grid points along the ocean boundaries. The open boundaries are specified by the variables lzoom_n, lzoom_e, lzoom_s, lzoom_w in the bluenam_zoom_dmp name list.

The remaining switch namelist variables determine the spatial variation of the restoration coefficient in non-zoom configurations. ln_full_field specifies that newtonian damping should be applied to the whole model domain. ln_med_red_seas specifies grid specific restoration coefficients in the Mediterranean Sea for the ORCA4, ORCA2 and ORCA05 configurations. If ln_old_31_lev_code is set then the depth variation of the coeffients will be specified as a function of the model number. This option is included to allow backwards compatability of the ORCA2 reference configurations with previous model versions. ln_coast specifies that the restoration coefficient should be reduced near to coastlines. This option only has an effect if ln_full_field is true. ln_zero_top_layer specifies that the restoration coefficient should be zero in the surface layer. Finally ln_custom specifies that the custom module will be called. This module is contained in the file custom.F90 and can be edited by users. For example damping could be applied in a specific region.

The restoration coefficient can be set to zero in equatorial regions by specifying a positive value of nn_hdmp. Equatorward of this latitude the restoration coefficient will be zero with a smooth transition to the full values of a 10latitud band. This is often used because of the short adjustment time scale in the equatorial region [Reverdin et al., 1991, Marti, 1992, Fujio and Imasato, 1991]. The time scale associated with the damping depends on the depth as a hyperbolic tangent, with rn_surf as surface value, rn_bot as bottom value and a transition depth of rn_dep.

Gurvan Madec and the NEMO Team
NEMO European Consortium2017-02-17