Skip to content

Namelists Modifications

Abstract

In this fourth tutorial of the NEMO SURGE demonstrator, we cover the changes to the namelist_cfg required to perform the AMM12_surge example simulation.

Namelist

Below we discuss the important changes to the namelist_cfg required for the AMM12 1-layer barotropic storm surge model.

Two modified namelist_cfg files are available in the SURGE_demo/namelists/nemo/ directory.

Let's add links to these files in our run directory:

cd nemo_5.0.1/cfgs/AMM12_SURGE/EXP00/

ln -s .../SURGE_demo/namelists/nemo/namelist_cdf_SURGE .
ln -s .../SURGE_demo/namelists/nemo/namelist_cdf_SURGE_NO_TIDES .

Temperature & Salinity (&namtsd)

  • Initialise our 1-layer regional model using constant temperature (10 degrees C) and salinity (35 PSU) from the init_state_AMM12_SURGE_y2012.nc file created in Atmospheric Forcing Creation 🌀.
!-----------------------------------------------------------------------
&namtsd        !    Temperature & Salinity Data  (init/dmp)             (default: OFF)
!-----------------------------------------------------------------------
   !                       ! =T  read T-S fields for:
   ln_tsd_init = .true.         !  ocean initialisation
   ln_tsd_dmp  = .false.         !  T-S restoring   (see namtra_dmp)

   cn_dir      = './'      !  root directory for the T-S data location
   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
   !           !  file name              ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
   !           !                         !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
   sn_tem = 'init_state_AMM12_SURGE',  -1.     , 'votemper',   .false.    , .false. , 'yearly'  ,    ''            ,    ''    ,    ''
   sn_sal = 'init_state_AMM12_SURGE',  -1.     , 'vosaline',   .false.    , .false. , 'yearly'  ,    ''            ,    ''    ,    ''
/

Surface Boundary Conditions (&namsbc)

  • Use flux formulation to impose surface boundary conditions (ln_flx) and take the atmospheric pressure into account when computing the surface pressure gradient (ln_apr_dyn).

  • Hourly zonal (utau) and meridional (vtau) wind stress is read from daily files generated in Atmospheric Forcing Creation 🌀.

  • Dummy surface heat (0 W m-2) and freshwater fluxes (0 kg s-1 m-2) are read as climatologies from annual file.

!-----------------------------------------------------------------------
&namsbc        !   Surface Boundary Condition (surface module)          (default: NO selection)
!-----------------------------------------------------------------------
   nn_fsbc     = 1         !  frequency of SBC module call
   ln_flx      = .true.    !  flux formulation                          (T => fill namsbc_flx)
   ln_traqsr   = .false.   !  Light penetration in the ocean            (T => fill namtra_qsr)
   ln_ssr      = .false.   !  Sea Surface Restoring on T and/or S       (T => fill namsbc_ssr)
   ln_rnf      = .false.   !  runoffs                                   (T => fill namsbc_rnf)
   ln_apr_dyn  = .true.    !  Patm gradient added in ocean & ice Eqs.   (T => fill namsbc_apr )
/
!-----------------------------------------------------------------------
&namsbc_flx    !   surface boundary condition : flux formulation
!-----------------------------------------------------------------------
   cn_dir      = './fluxes/'  !  root directory for the fluxes data location
   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
   !           !  file name              ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
   !           !                         !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
   sn_utau     = 'amm12_surge_utau'      ,          1.       , 'utau'    ,  .true.     , .false., 'daily'   ,  ''              ,  ''      , ''
   sn_vtau     = 'amm12_surge_vtau'      ,          1.       , 'vtau'    ,  .true.     , .false., 'daily'   ,  ''              ,  ''      , ''
   sn_qtot     = 'AMM12_SURGE_dummy_flx' ,          -12      , 'sonsfldo',  .false.    , .true. , 'yearly'   ,  ''              ,  ''      , ''
   sn_qsr      = 'AMM12_SURGE_dummy_flx' ,          -12      , 'soshfldo',  .false.    , .true. , 'yearly'   ,  ''              ,  ''      , ''
   sn_emp      = 'AMM12_SURGE_dummy_flx' ,          -12      , 'sowafldo',  .false.    , .true. , 'yearly'   ,  ''              ,  ''      , ''
/
  • Transform atmospheric pressure into an equivalent inverse barometer sea surface height.

  • Hourly mean sea level pressure is read from daily files generated in Atmospheric Forcing Creation 🌀.

!-----------------------------------------------------------------------
&namsbc_apr    !   Atmospheric pressure used as ocean forcing           (ln_apr_dyn =T)
!-----------------------------------------------------------------------
   rn_pref     = 101000.   !  reference atmospheric pressure   [N/m2]/
   nn_ref_apr  =   0       !  ref. pressure: 0: constant, 1: global mean or 2: read in a file
   ln_apr_obc  = .true.    !  inverse barometer added to OBC ssh data

   cn_dir = './fluxes/'    !  root directory for the Patm data location
   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
   !           !  file name              ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
   !           !                         !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
   sn_apr      = 'amm12_surge_somslpre'  ,          1.       ,'somslpre' ,   .true.    , .false., 'daily'  ,    ''            ,    ''    ,      ''
/

Tides (&nam_tide)

  • Activate tidal forcing, including tidal potential, on the domain boundaries.

  • Use a linear ramp to introduce the tides over the duration of 1-day.

!-----------------------------------------------------------------------
&nam_tide      !   tide parameters                                      (default: OFF)
!-----------------------------------------------------------------------
   ln_tide     = .true.        ! Activate tides
   ln_tide_pot = .true. !  use tidal potential forcing
   sn_tide_cnames(1)  = 'Q1'   !  name of constituent
   sn_tide_cnames(2)  = 'O1'
   sn_tide_cnames(3)  = 'P1'
   sn_tide_cnames(4)  = 'S1'
   sn_tide_cnames(5)  = 'K1'
   sn_tide_cnames(6)  = '2N2'
   sn_tide_cnames(7)  = 'MU2'
   sn_tide_cnames(8)  = 'N2'
   sn_tide_cnames(9)  = 'NU2'
   sn_tide_cnames(10) = 'M2'
   sn_tide_cnames(11) = 'L2'
   sn_tide_cnames(12) = 'T2'
   sn_tide_cnames(13) = 'S2'
   sn_tide_cnames(14) = 'K2'
   sn_tide_cnames(15) = 'M4'

   ln_tide_ramp  = .true.               !  Use linear ramp for tides at startup
   rn_tide_ramp_dt = 1.               !  ramp duration in days
/

Unstructured Open Boundaries (&nambdy)

  • Use Flather radiation scheme for the barotropic variables cn_dyn2d = 'flather'.

  • Use tidal harmonic forcing without external tidal data.

  • Use the Flow Relaxation Scheme (FRS) for all variables (cn_tra, cn_dyn3d) & set bdy data equal to the initial state (nn_tra_dta = 0).

!-----------------------------------------------------------------------
&nambdy        !  unstructured open boundaries                          (default: OFF)
!-----------------------------------------------------------------------
    ln_bdy     = .true.   !  Use unstructured open boundaries
    nb_bdy     =  1       !  number of open boundary sets
    !
    cn_dyn2d     = 'flather'
    nn_dyn2d_dta =  2
    cn_tra       = 'frs'
    nn_tra_dta   =  0 
    cn_dyn3d     = 'frs' 
/

Bottom Drag (&namdrg)

  • Use non-linear bottom friction parameterisation assuming quadratic bottom friction.
!-----------------------------------------------------------------------
&namdrg        !   top/bottom drag coefficient                          (default: NO selection)
!-----------------------------------------------------------------------
! Quadratic
   ln_non_lin  = .true.      !  non-linear drag coefficient
   ln_loglayer = .false.     !  logarithmic drag: Cd = vkarmn/log(z/z0) |U|
/

Equation Of Seawater (&nameos)

  • Use simplified Equation of State for Seawater with reference temperature and salinity consistent with initial conditions.
!-----------------------------------------------------------------------
&nameos        !   ocean Equation Of Seawater                           (default: NO selection)
!-----------------------------------------------------------------------
   ln_teos10   = .false.         ! = Use TEOS-10 equation of state
   ln_seos     = .true.          ! = Simplified EOS.
   rn_T0       = 10.             !  reference temperature
   rn_S0       = 35.             !  reference salinity
/

Tracer Lateral Diffusion (&namtra_ldf)

  • Turn off lateral mixing - lateral diffusive tendency will not be applied to the tracer equation.
!-----------------------------------------------------------------------
&namtra_ldf    !   lateral diffusion scheme for tracers                 (default: NO selection)
!-----------------------------------------------------------------------
   ln_traldf_OFF   =  .true.   !  No explicit diffusion
   ln_traldf_lap   =  .false.   !    laplacian operator
   ln_traldf_hor   =  .true.   !  horizontal (geopotential)
   !                       !  Coefficients:
   nn_aht_ijk_t    = 0         !  =  0   constant = 1/2  Ud*Ld   (lap case) 
      rn_Ud        = 0.01           !  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)
/

Hydrostatic Pressure Gradient (&namdyn_hpg)

  • Use standard Jacobian formulation for pressure gradient with a generalised s(x, y, z, t) coordinates.
!-----------------------------------------------------------------------
&namdyn_hpg    !   Hydrostatic pressure gradient option                 (default: NO selection)
!-----------------------------------------------------------------------
   ln_hpg_prj  = .false.    !  s-coordinate (Pressure Jacobian scheme)
   ln_hpg_sco  = .true.     !  s-coordinate (standard jacobian formulation)
/

Vertical Physics (&namzdf)

  • Do not compute the vertical eddy viscosity and diffusivity coefficients using the Generic Length Scale (GLS) scheme ln_zdfgls = .false..
!-----------------------------------------------------------------------
&namzdf        !   vertical physics                                     (default: NO selection)
!-----------------------------------------------------------------------
   ln_zdfgls   = .false.     !  Generic Length Scale closure              (T =>   fill namzdf_gls)
   ln_zdfcst   = .true.      !  constant mixing
   !                       ! coefficients
   rn_avm0     =   0.1e-6     !  vertical eddy viscosity   [m2/s]       (background Kz if ln_zdfcst=F)
   rn_avt0     =   0.1e-6     !  vertical eddy diffusivity [m2/s]       (background Kz if ln_zdfcst=F)
   nn_avb      =    0         !  profile for background avt & avm (=1) or not (=0)
   nn_havtb    =    0         !  horizontal shape for avtb (=1) or not (=0)
/

Success

You have now modified the namelist_cfg file for the case of a 1-layer barotropic model.

Next, continue to the fifth tutorial Running AMM12_SURGE ⏩ to learn how to run a simulation both with and without tidal boundary forcing.