High Resolution Modelling
This page gives some details and advice on settings for running HARMONIE-AROME at sub-kilometre resolutions. A number of workshops have been held on this topic; more information and presentations may be found on hirlam.org.
Default configuration to be made available via scr/Harmonie_configurations.pm
. Below are some details on the various options.
Practicalities
Since experiments with higher resolutions may take a longer time than usual, it can be worthwhile to increase the PATIENCE beyond the default. For example, add the following to Env_submit
if ( $ENV{SIMULATION_TYPE} eq 'nwp' ) {
$job_list{'Forecast'}{'ENV'} = $submit_type.'-v PATIENCE=28800' ;
}
Grid choice
Within ecf/config_exp.h
, it is recommended to use quadratic or cubic spectral truncations:
GRID_TYPE=QUADRATIC # Type of grid (LINEAR|QUADRATIC|CUBIC)
These choices are cheaper and more stable. No problematic reduction in accuracy has been reported, and quadratic grids are used operationally at a number of centres.
For 750m resolution and a quadratic grid, TSTEP=30
should work well. For linear truncation, 20s will be needed.
Boundaries
Use of IFS boundaries has been found to be satisfactory.
With higher sub-kilometric resolutions, smaller domains are inevitable. To deal with domain spin-up issues with precipitation, it may be worth coupling hydrometeors from the boundary files. Within scr/MARS_get_bd
and scr/gl_bd
there is an option USE_IFS_CLOUD_COND
, which adds cloud and hydrometeors to the the boundary files. This can be added and exported in ecf/config_exp.h
if needed.
The coupling is then activated in nam/harmonie_namelists.pm
under NAMGFL
, e.g. for cloud ice:
'YI_NL%NCOUPLING' => '1,',
Diffusion and controlling noise
LGWADV
By default, LGWADV=FALSE
and LRDBBC=TRUE
. These can be found in NAMDYNA
.
It has been found that changing the values can remove noise visible in certain situations in MSLP fields; i.e. set LGWADV=TRUE
and LRDBBC=FALSE
. These are the values used at Météo France and ALADIN centres using the predictor-corrector time-stepping, rather than semi-implicit SETTLS (default in HARMONIE).
'''Update''': new defaults in 43h2.1.1, LGWADV=TRUE
and LRDBBC=FALSE
VESL
Another option to control noise is the off-centering parameter VESL, found in NAMDYN
, which is 0 by default in operational 2.5km configurations. A non-zero value such as 0.1 will smooth small-scale noise.
For some (currently unknown) reason, the LGWADV option described above cannot be used with a non-zero value of VESL; forecasts crash quickly. Given the potential of VESL to stabilise higher-resolution runs, it is probably a preferable option, i.e.
NAMDYN=>{
'VESL' => '0.1,',
},
NAMDYNA=>{
'LGWADV' => '.FALSE.,',
'LRDBBC' => '.TRUE.,',
},
'''Update post-ASW2021''': this instability may in fact have been a bug, caused by the following in src/arpifs/adiab/lattex.F90
:
!* 2.1 Momentum equation.
! * LSETTLS is replaced by LLSETTLSW=.FALSE. for wind-eqn if VESL>0 because
! stable extrapolation deteriorates scores without improving stability.
IF (PESGP > PESGM) THEN
LLSETTLSW=.FALSE.
ELSE
LLSETTLSW=LSETTLS
ENDIF
This is when VESL>0
, SETTLS
is switched off for wind equations, but no others. Seems to trigger the problem. Removing the if and keeping just
LLSETTLSW=LSETTLS
in all cases allows VESL to run stably with LGWADV
and SETTLS
. (No long term verification scores tested)
Spectral horizontal diffusion
The strength of the spectral diffusion is controlled by the various RDAMP*
parameters. Defaults in nam/harmonie_namelists.pm
are:
NAMDYN=>{
'RDAMPDIV' => '20.,',
'RDAMPPD' => '200000.,',
'RDAMPQ' => '20.,',
'RDAMPT' => '20.,',
'RDAMPVD' => '20.,',
'RDAMPVOR' => '20.,',
},
With a quadratic or cubic grid with non-zero VESL, these defaults have been found to be adequate. Without VESL, higher levels of diffusion through lover RDAMP*
values of 10 or even 1 are necessary.
SLHD
Experiments at Météo France suggest not to use SLHD on hydrometeors: c.f. ASM 2020 presentation by Yann Seity.
Other recommended settings
In ecf/config_exp.h
LGRADSP=yes # Apply Wedi/Hortal vorticity dealiasing (yes|no)
LUNBC=yes # Apply upper nested boundary condition (yes|no)
Sample configurations
Coming soon...