SPAWNING
The SPAWNING program performs horizontal interpolation from one Meso-NH file (file 1) to another (file 2). The grid of file 2 must be entirely contained within the grid of file 1. While file 2 can be used directly for a model run, its surface fields especially orography are smoothed. However, the model can still be run with both files using grid nesting, as an iterative procedure ensures the nesting condition for orography is met. The domain of file 2 can be defined in two ways:
By specifying the parameters in the namelist NAM_GRID2_SPA.
By using the domain of another Meso-NH file with a grid that is coherent with the input file. For example, this could be a PGD file generated by PREP_PGD, where the domain is derived from file 1 and uses the same specifications as those in NAM_GRID2_SPA.
Warning
When you want to force Meso-NH by Meso-NH you cannot create an independent grid at that time, the horizontal grids must be consistent.
Vertical grid can be changed when you force Meso-NH by an other Meso-NH simulation, without grid nesting.
Executable |
Namelist |
Function |
|---|---|---|
SPAWNING |
SPAWN1.nam |
Horizontal interpolations from a Meso-NH file into another Meso-NH file, with a finer resolution and smaller domain. |
The following namelists can be used in the SPAWN1.nam file :
NAM_CONFIO
Fortran name |
Fortran type |
Default value |
|---|---|---|
CIO_DIR |
CHARACTER(LEN=512) |
|
LVERB_OUTLST |
LOGICAL |
.TRUE. |
LVERB_STDOUT |
LOGICAL |
.FALSE. |
LVERB_ALLPRC |
LOGICAL |
.FALSE. |
NGEN_VERB |
INTEGER |
4 |
NGEN_ABORT_LEVEL |
INTEGER |
2 |
NBUD_VERB |
INTEGER |
4 |
NBUD_ABORT_LEVEL |
INTEGER |
2 |
NIO_VERB |
INTEGER |
4 |
NIO_ABORT_LEVEL |
INTEGER |
2 |
LIO_COMPRESS |
LOGICAL |
.TRUE. |
CIO_COMPRESS_ALGO |
CHARACTER(LEN=10) |
‘ZSTD’ |
NIO_COMPRESS_LEVEL |
INTEGER |
4 |
LDIAG_REDUCE_FLOAT_PRECISION |
LOGICAL |
.FALSE. |
LIO_ALLOW_REDUCED_PRECISION_BACKUP |
LOGICAL |
.FALSE. |
LIO_ALLOW_NO_BACKUP |
LOGICAL |
.FALSE. |
LIO_NO_WRITE |
LOGICAL |
.FALSE. |
NFILE_NUM_MAX |
INTEGER |
999 |
Warning
If a file is not found in the netCDF fileformat, Meso-NH will check if it exists in the LFI format and use it if found. This could be useful if you need to mix the reading of different files with different fileformats.
CIO_DIR: directory used to write outputs, backups and diachronic files (current directory by default). It can be overridden by CBAK_DIR for backups and diachronic files and by COUT_DIR for outputs.LVERB_OUTLST: flag to write application messages inOUTPUT_LISTINGnfiles (in current directory, n is for the current model)LVERB_STDOUT: flag to write application messages on the standard outputNGEN_VERB: set the verbosity level for generic messages0 : no messages
1 : fatal messages
2 : error messages (and lower values)
3 : warning messages (and lower values)
4 : info messages (and lower values)
5 : debug messages (and lower values)
NGEN_ABORT_LEVEL: set the minimum level of generic message to abort the application (same levels as for NGEN_VERB)NBUD_VERB: set the verbosity level for budget messages (same levels as for NGEN_VERB)NBUD_ABORT_LEVEL: set the minimum level of budget message to abort the application (same levels as for NGEN_VERB)NIO_VERB: set the verbosity level for IO messages (same levels as for NGEN_VERB)NIO_ABORT_LEVEL: set the minimum level of IO message to abort the application (same levels as for NGEN_VERB)
Warning
Not all messages use this infrastructure. Therefore, some of them are not affected by these options.
LIO_COMPRESS: enable lossless compression of data for all files. This can have a negative impact on performance. This option takes precedence over their equivalent NAM_BACKUP and NAM_OUTPUT namelists.CIO_COMPRESS_ALGO: set the compression algorithm (only for files in netCDF format, not for LFI format). The allowed values are ‘ZSTD’ (for Zstandard compression,default value), ‘DEFLATE’ (for zlib compression) or ‘NONE’. This option takes precedence over their equivalent in NAM_BACKUP and NAM_OUTPUT namelists (only if LIO_COMPRESS=.TRUE. which is the default). If set to ‘NONE’, all compression will be disabled (that stands also for lossy compression).LOUT_COMPRESS_LEVEL: set the compression level. The value must be in the 0 to 9 interval (0 for no compression, 9 for maximum compression). This option takes precedence over their equivalent in NAM_BACKUP and NAM_OUTPUT namelists (only if LIO_COMPRESS=.TRUE. which is the default).LDIAG_REDUCE_FLOAT_PRECISION: force writing of floating points numbers in single precision for diagnostic files (written by the DIAG program)LIO_ALLOW_REDUCED_PRECISION_BACKUP: flag to allow writing of backup files with a reduced precision as well as reading of reduced precision files and files written with Meso-NH compiled with a lower precision for integers or reals (ie MNH_INT=4 and MNH_REAL=4).LIO_ALLOW_NO_BACKUP: allow to have no valid backup time (useful for some tests)LIO_NO_WRITE: disable file writes (useful for benchs)NFILE_NUM_MAX: maximum number for numbered files (mainly backup and output files). If less than 1000, the numbers will be on 3 digits. From 1000, they will be on the number of digits of NFILE_NUM_MAX (5 if NFILE_NUM_MAX=12345).
NAM_CONFZ
Fortran name |
Fortran type |
Default value |
|---|---|---|
NZ_VERB |
INTEGER |
0 |
NZ_PROC |
INTEGER |
0 |
NB_PROCIO_R |
INTEGER |
1 |
NB_PROCIO_W |
INTEGER |
1 |
MPI_BUFFER_SIZE |
INTEGER |
40 |
LMNH_MPI_BSEND |
LOGICAL |
.TRUE. |
LMNH_MPI_ALLTOALLV_REMAP |
LOGICAL |
.FALSE. |
NZ_SPLITTING |
INTEGER |
10 |
NPMAX_T1DFLAT_R |
INTEGER |
130 |
NZ_VERB: level of message for NZ solver and I/ONZ_PROC: number of processes to use in the Z splitting. The default value (0) yields an automatic calculation of the number.NB_PROCIO_R: number of processes to use for parallel I/O when reading file. The default value (1) yields a reading from 1 file only. If more than 1 file, the 3D field are written as several 2D slices.NB_PROCIO_W: Number of processes to use for parallel I/O when writing file. The default value (1) yields a writing into 1 file only. If more than 1 file, the 3D field are written as several 2D slices.MPI_BUFFER_SIZE: default size for MPI_BSEND buffer in \(10^6\) bytes. MPI_BUFFER_SIZE corresponds approximately to the size of the domain, that is, \(NX*NY*NZ\) for I/O in 1 file, and \(NX*NY\) for I/O in N 2D-slice files.LMNH_MPI_BSEND: during HALO exchange and FFT transposition, switch to use bufferized either MPI_BSEND routine or asynchrone MPI_ISEND routine. Depending on the computer and size of the problem, one or the other option could run faster. MPI_ISEND also uses less memory so MPI_BUFFER_SIZE should be decreased.LMNH_MPI_ALLTOALLV_REMAP:FALSE: FFT remap with send/recv <=> NZ_SPLITTING=10
TRUE: FFT remap with mpi_alltoallv <=> NZ_SPLITTING=14 (BG/MPICH optimization)
NZ_SPLITTING: setting by namelist for debugging by expert user only. The non-expert user will use LMNH_MPI_ALLTOALLV_REMAP=T/F only: IZ=1=flat_inv; IZ=2=flat_invz; IZ=1+2=the two; +8=P1/P2.NPMAX_T1DFLAT_R: setting to determine the size of the memory buffer allocated for the GPU version of Meso-NH to store real fields. The total buffer size is this setting multiplied by the number of mesh points. This buffer is used to remove allocations and deallocations that are very costly on GPUs. This value can be increased when needed (if too small, an error will be raised at runtime), but it should not be too large to avoid wasting memory.
NAM_BLANKn
Fortran name |
Fortran type |
Default value |
|---|---|---|
XDUMMY1 |
REAL |
0.0 |
XDUMMY2 |
REAL |
0.0 |
XDUMMY3 |
REAL |
0.0 |
XDUMMY4 |
REAL |
0.0 |
XDUMMY5 |
REAL |
0.0 |
XDUMMY6 |
REAL |
0.0 |
XDUMMY7 |
REAL |
0.0 |
XDUMMY8 |
REAL |
0.0 |
NDUMMY1 |
INTEGER |
0 |
NDUMMY2 |
INTEGER |
0 |
NDUMMY3 |
INTEGER |
0 |
NDUMMY4 |
INTEGER |
0 |
NDUMMY5 |
INTEGER |
0 |
NDUMMY6 |
INTEGER |
0 |
NDUMMY7 |
INTEGER |
0 |
NDUMMY8 |
INTEGER |
0 |
LDUMMY1 |
LOGICAL |
TRUE |
LDUMMY2 |
LOGICAL |
TRUE |
LDUMMY3 |
LOGICAL |
TRUE |
LDUMMY4 |
LOGICAL |
TRUE |
LDUMMY5 |
LOGICAL |
TRUE |
LDUMMY6 |
LOGICAL |
TRUE |
LDUMMY7 |
LOGICAL |
TRUE |
LDUMMY8 |
LOGICAL |
TRUE |
CDUMMY1 |
CHARACTER(LEN=80) |
|
CDUMMY2 |
CHARACTER(LEN=80) |
|
CDUMMY3 |
CHARACTER(LEN=80) |
|
CDUMMY4 |
CHARACTER(LEN=80) |
|
CDUMMY5 |
CHARACTER(LEN=80) |
|
CDUMMY6 |
CHARACTER(LEN=80) |
|
CDUMMY7 |
CHARACTER(LEN=80) |
|
CDUMMY8 |
CHARACTER(LEN=80) |
Eight dummy variables and arrays (real, integer, logical, and character of length 80) are defined for testing and debugging. They are read through the namelist but are not used by any Meso-NH routine. If a developer wants to temporarily add a parameter to a subroutine, they can include a USE MODD_BLANK_n statement in that subroutine. This allows them to access and modify these variables via the namelist input.
NAM_GRID2_SPA
Fortran name |
Fortran type |
Default value |
|---|---|---|
IXOR |
INTEGER |
1 |
IYOR |
INTEGER |
1 |
IXSIZE |
INTEGER |
file 1 domain |
IYSIZE |
INTEGER |
file 1 domain |
IDXRATIO |
INTEGER |
1 |
IDYRATIO |
INTEGER |
1 |
GBAL_ONLY |
INTEGER |
.FALSE. |
IXOR: first point I index, according to the file 1 grid, left to and out of the new physical domain.IYOR: first point J index, according to the file 1 grid, under and out of the new physical domain.IXSIZE: number of grid points in I direction, according to file 1 grid, recovered by the new domain. It must be equal to \(2^m \times 3^n \times 5^p\) with \((m,n,p) \ge 0\)IYSIZE: number of grid points in J direction, according to file 1 grid, recovered by the new domain. It must be equal to \(2^m \times 3^n \times 5^p\) with \((m,n,p) \ge 0\)IDXRATIO: resolution factor in I direction between the file 1 grid and the new grid. It must be equal to \(2^m \times 3^n \times 5^p\) with \((m,n,p) \ge 0\)IDYRATIO: resolution factor in J direction between the file 1 grid and the new grid. It must be equal to \(2^m \times 3^n \times 5^p\) with \((m,n,p) \ge 0\)GBAL_ONLY: flag to enforce anelastic constraint only. The spawned file have the same characteristics as the CINIFILE one.
NAM_LUNIT2_SPA
Fortran name |
Fortran type |
Default value |
|---|---|---|
CINIFILE |
CHARACTER(LEN=128) |
‘INIFILE’ |
CINIFILEPGD |
CHARACTER(LEN=128) |
|
YDOMAIN |
CHARACTER(LEN=128) |
|
YSPAFILE |
CHARACTER(LEN=128) |
|
YSPANBR |
CHARACTER(LEN=2) |
‘00’ |
YDADINIFILE |
CHARACTER(LEN=128) |
|
YDADSPAFILE |
CHARACTER(LEN=128) |
|
YSONFILE |
CHARACTER(LEN=128) |
CINIFILE: name of the initial Meso-NH file of model 1 (parent domain) which will be used to spawn model 2.CINIFILEPGD: name of the PGD associated to the initial Meso-NH file 1 CINIFILE (father domain).YDOMAIN: name of the file which defines the domain for model 2. If a domain file is provided for YDOMAIN, then all the information of namelist NAM_GRID2_SPA will be ignored.YSPAFILE: optional name of the spawned Meso-NH file 2 (output file). If the user does not specify this name, or if YSPAFILE = CINIFILE, the code builds the spawned Meso-NH file name as:YSPAFILE = CINIFILE.spaYSPANBR
YSPAFILE = CINIFILE.sprYSPANBR if YSONFILE is provided.
YSPANBR: NumBeR which will be added to CINIFILE to generate the Meso-NH file name of the SPAwned file (string of 2 characters)YDADINIFILE: if GBAL_ONLY=.TRUE. : name of the CINIFILE dad.YDADSPAFILE: if GBAL_ONLY=.TRUE. : name of the YSPAFILE dad.
Note
Program will check that YDADINIFILE and YDADSPAFILE have the same characteristics, before replacing the dad name of YSPAFILE by YDADSPAFILE instead of YDADINIFILE. YDADSPAFILE must exist before running the spawning job.
YSONFILE: optional name of a spawned Meso-NH file (input file). It must have the same resolution as the spawned Meso-NH file 2 (output file). The fields of YSONFILE will be used at points included in the domain defined by YDOMAIN or NAM_GRID2_SPA, instead of interpolated fields of CINIFILE. This allows to keep finest information when defining a new finest domain to follow atmospheric system.
NAM_SPAWN_SURF
Fortran name |
Fortran type |
Default value |
|---|---|---|
LSPAWN_SURF |
LOGICAL |
.TRUE. |
LSPAWN_SURF: flag to perform or not the interpolation of all the surface fields (both physiographic and prognostic fields)..TRUE. : the interpolations are made
.FALSE. : the interpolations are not made and therefore no surface field will be present in the output spawned file.