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.

SPAWNING program and its corresponding namelist and function

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

NAM_CONFIO content

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 in OUTPUT_LISTINGn files (in current directory, n is for the current model)

  • LVERB_STDOUT : flag to write application messages on the standard output

  • NGEN_VERB : set the verbosity level for generic messages

    • 0 : 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

NAM_CONFZ content

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/O

  • NZ_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

NAM_BLANKn content

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

NAM_GRID2_SPA content

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

NAM_LUNIT2_SPA content

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

NAM_SPAWN_SURF content

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.