Spn GEM4.8.lts12

Un article de Informaticiens département des sciences de la Terre et l'atmosphère
Aller à: navigation, charcher

Spectral nudging parameters for GEM4.8.lts12


To activate spectral nudging in GEM4 one has to set several parameters in the file 'gem_settings.nml' in the namelist 'gem_cfgs'.

Example

Driving data: ERA5, 0.3 degrees

&grid
 Grd_ni     = 720      , Grd_nj    = 720
 Grd_dx     = 0.03     , Grd_dy    = 0.03
/
&gem_cfgs
 Spn_nudging_S = 'UV'
 Spn_start_lev = 0.85
 Spn_up_const_lev = 0.0
 Spn_trans_shape_S = 'LINEAR'
 Spn_relax_hours = 24.
 Spn_cutoff_scale_small=200.
 Spn_cutoff_scale_large=600.
 Spn_step=300
 Spn_weight_L = .false.
 Spn_wt_pwr=2
/

See description of parameters below.


Grid size restrictions

To be able to use spectral nudging in GEM4, the core grid needs to match the FFT criteria in x- and y-direction. You can use 'findfft' to get the possible values to set 'Grd_ni' and 'Grd_nj' in your gem_settings.nml. (You need to set the model environment first to have access to 'find'fft'.)
For example:

    findfft -min 100 -max 200

Your 'Grd_ni' and 'Grd_nj' will then have to be set to one of the values findfft is listing.
If your grid is smaller than 100 points or larger than 200 points, just set '-min' and '-max' accordingly.


Spectral nudging parameters in GEM4

Fields to nudge

In GEM4 one has the option of nudging u-wind, v-wind, and/or temperature.
Tests have shown that it is sufficient to nudge u-wind and v-wind and that nudging the temperature as well does not change the results much. Therefore I suggest to set:

    Spn_nudging_S = 'UV'     ,

One needs to set this parameter to switch the spectral nudging on!


Control the strength of the spectral nudging

There are 5 aspects controlling the strength of the spectral nudging which will all get applied one after the other:

  1. filter in spectral space (horizontal)
  2. shape of the vertical profile
  3. intensity of nudging applied at each time step
  4. nudging interval
  5. nudging weight


1) Controlling nudging strength according to wave length

There are two parameters to define which wave lengths should get nudged:

    Spn_cutoff_scale_small : The filter will be set zero for smaller scales (in km, default: 100.)
    Spn_cutoff_scale_large : The filter will be set 1.0 for larger scales (in km, default: 300.)

Between Spn_cutoff_scale_small and Spn_cutoff_scale_large the filter will have a 'COS2' transition.


spn_GEM4_wavelengths.png

Guidelines to set these two parameters

The values to which you want to set these two parameters depend mostly on the resolution of the driving data and the model grid size.

Spn_cutoff_scale_small
This value depends on the resolution of your driving data. As a rule of thumb this parameter should be larger than 6 times the resolution of the driving data. So when your driving data are at a resolution of about 30 km set this value to 200 km.

Spn_cutoff_scale_large
This value depends on the size of your domain. For this reason it is preferable to have square domains. As a rule of thumb this parameter should be smaller than 1/3 of the size of the domain, but larger than two times 'Spn_cutoff_scale_small'. So if your domain covers 2000 km set this value to 600 km.


2) Controlling the vertical profile

There are 3 parameters to control the nudging profile:

    Spn_up_const_lev    : above this level (in hybrid values) the profile is set to 1, to full strength nudging (default 0., model top).
    Spn_start_lev           : below this level (in hybrid values) the profile is set to 0, no nudging (default 1., surface).
    Spn_trans_shape_S : Between these two hybrid levels the profile goes from 0 to 1. Either linearly ('LINEAR') (default) or with a cos2 ('COS2') function.

For example set:

    Spn_up_const_lev   = 0.           ,
    Spn_start_lev         = 0.5         ,
    Spn_trans_shape_S = 'LINEAR' ,


spn_GEM4_profile.png

3) Controlling the strength

The spectral nudging gets applied at each time step. The difference between RCM and driving data gets calculated (for different wave lengths) and with that an increment, by which the model results would need to get nudged to match the driving data. But this increment is usually not fully applied, but only a fraction of it. Since the idea is to "nudge" the large scales of the model towards the ones of the driving data and not to impose them.

To control how strongly the model is nudged, one does not say "I want to apply n% of this increment", but one rather says "I want this increment to be applied over h hours". So if, for example, one wants to apply only 5% of the increment and the model time step is 30 minutes, the time needed to apply this increment fully (if applied at each time step) would be 10 hours. So in this case one would set:

    Spn_relax_hours = 10. ,

10 is the default value.


4) Nudging interval

    Spn_step : Nudging interval in seconds (eg. 1800, means nudging is performed every every 30 minutes), default 21600.

If you want to nudge every timestep - which we usually want - set this to the same value as 'Step_dt'.


5) Nudging weight

    Spn_weight_L : Nudging weight in temporal space (.true. or .false., default: .false.)

If the driving fields are available every 6 hours and Spn_step is set to 30 minutes then nudging will have more weight every six hours when the driving fields are available.

    Spn_wt_pwr  : The weight factor when Spn_weight_L=.true. (default: 2)

The weigh factor is COS2**(Spn_wt_pwr), Spn_wt_pwr could be set as 0, 2, 4, 6. If Spn_wt_pwr = 2, weight factor is COS2



Then launch your simulation as usual.