| ... | ... | @@ -9,11 +9,11 @@ |
|
|
|
|
|
|
|
<a name="tune-nemo"></a>
|
|
|
|
===============================
|
|
|
|
## Tune Nemo
|
|
|
|
# Tune Nemo
|
|
|
|
|
|
|
|
<a name="tune-nemo-build-grid"></a>
|
|
|
|
===============================
|
|
|
|
#### Build the grid
|
|
|
|
## Build the grid
|
|
|
|
|
|
|
|
|
|
|
|
Most of our configuration are designed using parameters from original ORCA configuration to build our grid.
|
| ... | ... | @@ -38,33 +38,35 @@ rn_e3zps_rat= 0.2 ! rn_e3zps_min and rn_e3zps_rat * e3t, with |
|
|
|
__Hmin value__ : Min depth viewed by the model.
|
|
|
|
In case of Tidal cycles, it 's a key parameter to increase, this is to prevent model blowup, (tricky for runoff to deal with high resolution configuration)
|
|
|
|
|
|
|
|
```console
|
|
|
|
rn_hmin = -3 ! min depth of the ocean (>0) or min number of ocean level (<0)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a name="tune-nemo-namelist-key"></a>
|
|
|
|
========================
|
|
|
|
#### Some description of namelist keys
|
|
|
|
--------------------
|
|
|
|
## Some description of namelist keys
|
|
|
|
|
|
|
|
|
|
|
|
| **Domain & Run management** keys | Description | tips | dependency |
|
|
|
|
#### Domain and run management
|
|
|
|
| **Domain & Run management** sections | keys | tips | dependencies |
|
|
|
|
|:---:|:---:|:---|:---|
|
|
|
|
| namrun | nn_rstctl | 2: read the date on restart file | |
|
|
|
|
| | nn_leapy | False for clim runs | |
|
|
|
|
| | ln_rstart | if True, nn_rstctl = 2 | |
|
|
|
|
| | ln_rst_list | with nn_stock_list (list of restarts index) | |
|
|
|
|
| | ln_rstart | | if True nn_rstctl = 2 |
|
|
|
|
| | ln_rst_list | with nn_stock_list (list of restarts index) | ln_rstart=T |
|
|
|
|
| namdom | rn_dt | time step | divisible by 86400s : .. 150/160/180/200/240/270/ .../900/960/1080/1152/1200/1350/1440/1600/1800.. |
|
|
|
|
| | ln_linssh | linear free surface e3 before, now and after are set equal one for all, and we use exactly the same calculation as in non-linear case (except that update of e3 at each time-step is by-passed) | importance for tidal forcing |
|
|
|
|
| | ln_linssh | linear free surface e3 before, now and after are set equal one for all, and we use exactly the same calculation as in non-linear case (except that update of e3 at each time-step is by-passed) | importance for tidal forcing => lin_ssh=false |
|
|
|
|
| | ln_meshmask | | jpni!=0 / jpnj!=0 |
|
|
|
|
| namtsd | ln_tsd_init | | if False, it will wait for a restart file (if ln_restart T) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-------------------
|
|
|
|
| **Surface Boundary Condition** keys | Description | tips | dependency |
|
|
|
|
#### Surface boundary condition
|
|
|
|
|
|
|
|
| **Surface Boundary Condition** sections | keys | tips | dependencies |
|
|
|
|
|:---:|:---:|:---|:---|
|
|
|
|
| namsbc | nn_fsbc | ( timestep * nn_fsbc )./60 = frequency in minutes you prescribed the 1h atmo field interpolated in time ) | for instance if you have 1h hour input frequency (ts=150s/nn_fsbc=8) => each 20 min, nemo will interpolate your input data / better if 15,20,30 ... |
|
|
|
|
| | ln_usr | user defined | ln_blk=F |
|
| ... | ... | @@ -73,32 +75,29 @@ rn_hmin = -3 ! min depth of the ocean (>0) or min number of ocean level (<0) |
|
|
|
| | ln_dm2dc | dependant of frequency of shortwave radiation | if shortwave inputs frequency <24h then ln_dm2dc= .false. |
|
|
|
|
| | ln_apr_dyn | | ln_apr_obc=T |
|
|
|
|
| namsbc_blk | ln_NCAR | often used | |
|
|
|
|
| | ln_ECMWF | prefered | |
|
|
|
|
| | ln_ECMWF | prefered for ERA | |
|
|
|
|
| | rn_zqt | caution with rhum z value | |
|
|
|
|
| namsbc_rnf | ln_rnf_mouth | add mixing term for runoff | |
|
|
|
|
| namsbc_rnf | ln_rnf_mouth | add mixing terms for runoff | |
|
|
|
|
| | ln_rnf_depth | use of runoff file (ln_rnf_depth_ini=T) and change depth manually for each points / need to be generated with the same number of procs | |
|
|
|
|
| | ln_rnf_tem | use of runoff file and give a given value for each points | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| | ln_rnf_tem | often a clim value given for each runoffs points / resolve some issues if you deal with high resolution configuration where the model try to compensate low number of levels at runoffs points with high flux, giving us finally high temperature on runoffs points (> 50°C) | |
|
|
|
|
| namsbc_apr | ln_apr_dyn | Atmospheric pressure used as ocean forcing (if large domain) | if OBC (ln_apr_obc=T) |
|
|
|
|
|
|
|
|
--------------------
|
|
|
|
| **Lateral boundary condition** keys | Description | tips | dependency |
|
|
|
|
#### Lateral boundary condition
|
|
|
|
|
|
|
|
| **Lateral boundary condition** sections | keys | tips | dependencies |
|
|
|
|
|:---:|:---:|:---|:---|
|
|
|
|
| namlbc | rn_shlat | | |
|
|
|
|
| namlbc | rn_shlat | if high resolution shlat increase (not 0) | |
|
|
|
|
| namtide | ln_tide | for SAL ln_tide_pot=T / ln_scal_load=T | |
|
|
|
|
| nambdy (need coordinates files) | (physical) | | if condition "frs" on tracers : cn_tra ='frs' the same for "dyn3d" |
|
|
|
|
| | (physical+tide) | | |
|
|
|
|
| | (runoff) | | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| | ln_vol=T / nn_volctl=0| |
|
|
|
|
| nambdydta | here user give coordinate and file ready to be used by nemo | |
|
|
|
|
| | ln_full_vel | compute full velocity but normally we give Ubar / u on inputs | bn_u2d = 'none' / bn_v2d = 'none' |
|
|
|
|
|
|
|
|
| nambdy_dta | ln_coords_file | for us, usually we give a coordinate file | |
|
|
|
|
| | ln_full_vel | compute barotropic velocity but normally we give Ubar / U as inputs | on nambdydta : bn_u2d = 'none' / bn_v2d = 'none' |
|
|
|
|
|
|
|
|
### bdy
|
|
|
|
----
|
|
|
|
###### Bdy management
|
|
|
|
```console
|
|
|
|
nb_bdy=1
|
|
|
|
ln_coords_file = .true. ! =T : read bdy coordinates from file
|
| ... | ... | @@ -116,32 +115,33 @@ rn_hmin = -3 ! min depth of the ocean (>0) or min number of ocean level (<0) |
|
|
|
cn_tra = 'frs' !
|
|
|
|
nn_tra_dta = 1
|
|
|
|
```
|
|
|
|
Which give :
|
|
|
|
```console
|
|
|
|
------ Open boundary data set 1 ------
|
|
|
|
Boundary definition read from file bdy_coordinates.nc
|
|
|
|
|
|
|
|
Boundary conditions for barotropic solution:
|
|
|
|
* Boundary conditions for barotropic solution
|
|
|
|
Flather radiation condition
|
|
|
|
boundary data taken from file
|
|
|
|
|
|
|
|
Boundary conditions for baroclinic velocities:
|
|
|
|
* Boundary conditions for baroclinic velocities
|
|
|
|
Flow Relaxation Scheme
|
|
|
|
boundary data taken from file
|
|
|
|
NO relaxation on baroclinic velocities
|
|
|
|
|
|
|
|
Boundary conditions for temperature and salinity:
|
|
|
|
* Boundary conditions for temperature and salinity
|
|
|
|
Flow Relaxation Scheme
|
|
|
|
boundary data taken from file
|
|
|
|
NO T/S relaxation
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### bdy tide
|
|
|
|
-----
|
|
|
|
###### Bdy tide management
|
|
|
|
```console
|
|
|
|
nb_bdy =1
|
|
|
|
ln_coords_file = .true.
|
|
|
|
cn_coords_file = 'bdy_coordinates.nc',
|
|
|
|
cn_dyn2d = 'flather' !
|
|
|
|
cn_dyn2d = 'flather'
|
|
|
|
nn_dyn2d_dta = 3
|
|
|
|
cn_dyn3d = 'frs'
|
|
|
|
nn_dyn3d_dta = 1
|
| ... | ... | @@ -149,9 +149,10 @@ rn_hmin = -3 ! min depth of the ocean (>0) or min number of ocean level (<0) |
|
|
|
nn_tra_dta = 1
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### runoff
|
|
|
|
-----
|
|
|
|
###### Runoff bdy management
|
|
|
|
```console
|
|
|
|
|
|
|
|
nb_bdy =2
|
|
|
|
ln_coords_file = .true., .true.
|
|
|
|
cn_coords_file = 'bdy_coordinates.nc', 'bdy_runoffs_coordinates.nc'
|
| ... | ... | @@ -163,30 +164,34 @@ rn_hmin = -3 ! min depth of the ocean (>0) or min number of ocean level (<0) |
|
|
|
nn_tra_dta = 1 , 1
|
|
|
|
nn_rimwidth = 10 ,1
|
|
|
|
|
|
|
|
* and on nambdydta sections all as none except :
|
|
|
|
|
|
|
|
for 2e set
|
|
|
|
bn_u2d = 'bdyU_u2d_runoffs' , 24 , 'vobtcrtx', .true. , .false., 'yearly' , '' , '' , ''
|
|
|
|
bn_v2d = 'bdyV_u2d_runoffs' , 24 , 'vobtcrty',
|
|
|
|
bn_v2d = 'bdyV_u2d_runoffs' , 24 , 'vobtcrty', .true. , .false., 'yearly' , '' , '' , ''
|
|
|
|
|
|
|
|
```
|
|
|
|
Boundary definition read from file bdy_runoffs_coordinates.nc
|
|
|
|
Which give :
|
|
|
|
```console
|
|
|
|
|
|
|
|
Boundary conditions for barotropic solution:
|
|
|
|
* Boundary definition read from file bdy_runoffs_coordinates.nc
|
|
|
|
|
|
|
|
* Boundary conditions for barotropic solution:
|
|
|
|
Flow Relaxation Scheme
|
|
|
|
boundary data taken from file
|
|
|
|
|
|
|
|
Boundary conditions for baroclinic velocities:
|
|
|
|
* Boundary conditions for baroclinic velocities:
|
|
|
|
no open boundary condition
|
|
|
|
NO relaxation on baroclinic velocities
|
|
|
|
|
|
|
|
Boundary conditions for temperature and salinity:
|
|
|
|
* Boundary conditions for temperature and salinity:
|
|
|
|
Runoff conditions : Neumann for T and specified to 0.1 for salinity
|
|
|
|
NO T/S relaxation
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### exemple slices
|
|
|
|
-----
|
|
|
|
###### No coordinate input file
|
|
|
|
Here, we let nemo compute the coordinates indexes of your boundary (ln_coords_file=F)
|
|
|
|
```console
|
|
|
|
nb_bdy = 5 ! number of open boundary sets
|
|
|
|
!
|
| ... | ... | @@ -206,13 +211,12 @@ rn_hmin = -3 ! min depth of the ocean (>0) or min number of ocean level (<0) |
|
|
|
! ! = 1, bdy data are read in 'bdydata .nc' files
|
|
|
|
cn_tra = 'frs','frs','frs','frs','frs' !
|
|
|
|
nn_tra_dta = 1,1,1,1,1
|
|
|
|
|
|
|
|
nn_rimwidth = 10,10,10,10,10 ! width of the relaxation zone
|
|
|
|
ln_vol = .false.
|
|
|
|
nn_volctl = 1
|
|
|
|
|
|
|
|
* and on nambdy_index sections :
|
|
|
|
|
|
|
|
## no coordinates.nc
|
|
|
|
!-----------------------------------------------------------------------
|
|
|
|
&nambdy_index ! structured open boundaries definition
|
|
|
|
!-----------------------------------------------------------------------
|
| ... | ... | @@ -238,6 +242,7 @@ rn_hmin = -3 ! min depth of the ocean (>0) or min number of ocean level (<0) |
|
|
|
nbdyend = 139 ! indice of segment end
|
|
|
|
/
|
|
|
|
|
|
|
|
* and on nambdy_dta sections :
|
|
|
|
|
|
|
|
!-----------------------------------------------------------------------
|
|
|
|
&nambdy_dta ! N1 ! open boundaries - external data (see nam_bdy)
|
| ... | ... | @@ -245,7 +250,7 @@ rn_hmin = -3 ! min depth of the ocean (>0) or min number of ocean level (<0) |
|
|
|
ln_zinterp = .false.
|
|
|
|
ln_full_vel = .true.
|
|
|
|
cn_dir = './BDY/'
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
|
|
!-----------------------------------------------------------------------
|
|
|
|
&nambdy_tide ! N1 ! tidal forcing at open boundaries (default: OFF)
|
| ... | ... | @@ -254,33 +259,56 @@ rn_hmin = -3 ! min depth of the ocean (>0) or min number of ocean level (<0) |
|
|
|
/
|
|
|
|
....
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
--------------------
|
|
|
|
#### Top/Bottom boundary condition
|
|
|
|
|
|
|
|
|
|
|
|
---------------------
|
|
|
|
| **Top/Bottom boundary condition** keys | Description | tips | dependency |
|
|
|
|
| **Top/Bottom boundary condition** sections | keys | tips | dependencies |
|
|
|
|
|:---:|:---:|:---:|:---:|
|
|
|
|
| ln_lin | | | |
|
|
|
|
| ln_trabbl | | | |
|
|
|
|
| namdrg | ln_nonlin = f(U) / ln_loglayer = f(Zo,U) | | |
|
|
|
|
| | ln_drgimp | ??? | |
|
|
|
|
| namdrg_bot | rn_Uc0 | | ln_lin=T |
|
|
|
|
| | rn_Cdmax/rn_z0 | | ln_loglayer=T |
|
|
|
|
| | rn_ke0 | | ln_nonlin=T|
|
|
|
|
| nambbl | ln_trabbl | cost increase | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
---------------------
|
|
|
|
| **Tracer (T-S) namelists** keys | Description | tips | dependency |
|
|
|
|
--------------------
|
|
|
|
#### Tracer (T-S) namelists
|
|
|
|
| **Tracer (T-S) namelists** sections | keys | tips | dependencies |
|
|
|
|
|:---:|:---:|:---:|:---:|
|
|
|
|
eos
|
|
|
|
| nameos | | ??? differences | |
|
|
|
|
| namtra_adv | ln_traadv_ubs | 3rd order so numerical diffusion added | |
|
|
|
|
| | ln_traadv_fct | usually used | |
|
|
|
|
| namtra_ldf | ln_traldf_lap/blp | usually we add these operator | |
|
|
|
|
| | lntraldf_iso | standard | |
|
|
|
|
| | nn_aht_ijk_t | None ?? | |
|
|
|
|
| namtra_mle | ln_mle | ?? | |
|
|
|
|
|
|
|
|
Advection scheme tracers
|
|
|
|
|
|
|
|
aht/avt
|
|
|
|
--------------------
|
|
|
|
#### Dynamics namelists
|
|
|
|
| **Dynamics namelists** sections | keys | tips | dependencies |
|
|
|
|
|:---:|:---:|:---|:---|
|
|
|
|
| nam_vvl | ln_vvl_zstar | | ln_hpg_sco=T/ln_linssh=F |
|
|
|
|
| | ln_vvl_layer | | |
|
|
|
|
| namdyn_adv | ln_dynadv_OFF | | |
|
|
|
|
| | ln_dynadv_vec | Vector form | |
|
|
|
|
| | ln_dynadv_ubs | Flux form | ln_dynldf_OFF=T because 3rd order scheme |
|
|
|
|
| namdyn_hpg | ln_hpg_sco | | if VVL=T |
|
|
|
|
| namdyn_ldf | ln_dynldf_OFF | | |
|
|
|
|
| | ln_dynldf_lap/blp | | |
|
|
|
|
| | nn_ahm_ijk_t | None ?? | |
|
|
|
|
| namdta_dyn | Offline (see SARG025) | | |
|
|
|
|
|
|
|
|
ldf
|
|
|
|
mle
|
|
|
|
|
|
|
|
---------------------
|
|
|
|
| **Dynamics namelists** keys | Description | tips | dependency |
|
|
|
|
|
|
|
|
Vertical coordinate :
|
|
|
|
Vertical coordinates example :
|
|
|
|
|
|
|
|
 [ from Nemo book 4.2 Chapter1 Model basics ]
|
|
|
|
a) Z coordinate with linear free surface
|
| ... | ... | @@ -290,43 +318,36 @@ ln_vvl_layer = .true. / ln_linssh = .false. |
|
|
|
c) Zstar coordinate
|
|
|
|
ln_vvl_zstar = .true.
|
|
|
|
|
|
|
|
Advection scheme momentum
|
|
|
|
|
|
|
|
ahm/avm
|
|
|
|
|
|
|
|
namdyn_hpg
|
|
|
|
|
|
|
|
lateral diffusion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
----------------------
|
|
|
|
| **Vertical physics** keys | Description | tips | dependency |
|
|
|
|
--------------------
|
|
|
|
#### Vertical physics
|
|
|
|
| **Vertical physics** sections | keys | tips | dependencies |
|
|
|
|
|:---:|:---:|:---:|:---:|
|
|
|
|
TKE/GLS
|
|
|
|
double diffusive mixing
|
|
|
|
|
|
|
|
vertical eddy viscosity avm0 / diffusivity avt0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| namzdf | ln_zad_Aimp | to be tested | |
|
|
|
|
| | ln_zdf_tke | | |
|
|
|
|
| | ln_zdf_gls | | |
|
|
|
|
| | ln_zdf_ddm | | |
|
|
|
|
| | rn_avm0 | | |
|
|
|
|
| | rn_avt0 | | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--------------
|
|
|
|
<a name="tune-nemo-tuning-config"></a>
|
|
|
|
========================
|
|
|
|
#### Some Tuning for your config
|
|
|
|
## Some Tuning for your config
|
|
|
|
|
|
|
|
|
|
|
|
_VVL_:
|
|
|
|
**_VVL_**:
|
|
|
|
|
|
|
|
for Variable volume activated (VVL) cases
|
|
|
|
|
|
|
|
* namelist_cfg / &namdom / ln_linssh=.false.
|
|
|
|
|
|
|
|
|
|
|
|
_tides_:
|
|
|
|
**_Tides_**:
|
|
|
|
|
|
|
|
to process tides simulation on namelist_cfg:
|
|
|
|
* VVL activation
|
| ... | ... | @@ -339,7 +360,7 @@ to process tides simulation on namelist_cfg: |
|
|
|
* ln_bdytide_2ddta =T if you prescribe 2d file
|
|
|
|
|
|
|
|
|
|
|
|
_Update bathy_ :
|
|
|
|
**_Update bathy_** :
|
|
|
|
|
|
|
|
You will need to update the domain_cfg.nc file.
|
|
|
|
2 cases :
|
| ... | ... | @@ -348,7 +369,7 @@ You will need to update the domain_cfg.nc file. |
|
|
|
|
|
|
|
In both cases, you need to change the bathymetry file
|
|
|
|
|
|
|
|
1 ) From NESTING, you process a normal zoom from global orca files and a bathy (Here Gebco) on namelist:
|
|
|
|
**1 )** From NESTING, you process a normal zoom from global orca files and a bathy (Here Gebco) on namelist:
|
|
|
|
```console
|
|
|
|
&coarse_grid_files
|
|
|
|
parent_coordinate_file = 'coordinates_ORCA12.nc'
|
| ... | ... | @@ -380,11 +401,11 @@ then, next to process your nesting binaries, you will have : |
|
|
|
* 1_coordinates_ORCA12.nc
|
|
|
|
* 1_bathy_meter_ORCA12.nc
|
|
|
|
|
|
|
|
2 )
|
|
|
|
**2 )**
|
|
|
|
Change values on Bathymetry variable from your bathy_meter file (here : 1_bathy_meter_ORCA12.nc) and rename it on __1_bathy_meter_ORCA12_retoque.nc__ with nco or python scripts
|
|
|
|
|
|
|
|
|
|
|
|
3 )
|
|
|
|
**3 )**
|
|
|
|
Again on NESTING,
|
|
|
|
```console
|
|
|
|
&coarse_grid_files
|
| ... | ... | @@ -418,7 +439,7 @@ then, reprocess your nesting, you will have : |
|
|
|
* 1_bathy_meter_ORCA12.nc
|
|
|
|
|
|
|
|
|
|
|
|
4 )
|
|
|
|
**4 )**
|
|
|
|
On Domaincfg tools, we use the new bathymetry files :
|
|
|
|
```console
|
|
|
|
ln -s ../NESTING/1_coordinates_ORCA12.nc coordinates.nc
|
| ... | ... | @@ -438,7 +459,7 @@ then, process your domaincfg binary (./make_domain_cfg.exe) |
|
|
|
you will have the domain_cfg.nc file ....
|
|
|
|
|
|
|
|
|
|
|
|
4')
|
|
|
|
**4')**
|
|
|
|
Change the original bathymetry like on step 2)
|
|
|
|
and then process your domaincfg binary
|
|
|
|
|
| ... | ... | @@ -451,10 +472,22 @@ and then process your domaincfg binary |
|
|
|
|
|
|
|
<a name="tune-nemo-set-diags"></a>
|
|
|
|
========================
|
|
|
|
--------------------
|
|
|
|
#### Set diagnostics
|
|
|
|
| **Diagnostics** sections | keys | tips | dependencies |
|
|
|
|
|:---:|:---:|:---:|:---:|
|
|
|
|
| namtrd | ln_dyn_trd | | |
|
|
|
|
| | ln_dyn_mxl | | |
|
|
|
|
| | ln_tra_trd | | |
|
|
|
|
| | ln_tra_mxl | | |
|
|
|
|
| | nn_trd | check nn_ctls method (hard coded) | |
|
|
|
|
| nam_diaharm | ln_diaharm | | ln_tide=T |
|
|
|
|
| nam_dia25h | ln_dia25h | | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_Trends mld_:
|
|
|
|
----
|
|
|
|
**_Trends mld_**:
|
|
|
|
|
|
|
|
activation of trends 2D on mixed layer depth (mld) , here the entrainment term of the trend terms is considered as 0
|
|
|
|
|
| ... | ... | @@ -467,10 +500,13 @@ _Trends mld_: |
|
|
|
e) if one year 365 days , be dividible by the time step ....
|
|
|
|
|
|
|
|
|
|
|
|
_Trends 3D_:
|
|
|
|
----
|
|
|
|
**_Trends 3D_**:
|
|
|
|
|
|
|
|
empty
|
|
|
|
|
|
|
|
_Tides Diags_:
|
|
|
|
----
|
|
|
|
**_Tides Diags_**:
|
|
|
|
|
|
|
|
|
|
|
|
dia25h & diaharm si tide actif
|
| ... | ... | |
| ... | ... | |