[544] | 1 | MODULE iom_def |
---|
[9019] | 2 | !!====================================================================== |
---|
[544] | 3 | !! *** MODULE iom_def *** |
---|
| 4 | !! IOM variables definitions |
---|
[9019] | 5 | !!====================================================================== |
---|
| 6 | !! History : 9.0 ! 2006 09 (S. Masson) Original code |
---|
| 7 | !! - ! 2007 07 (D. Storkey) Add uldname |
---|
| 8 | !! 4.0 ! 2017-11 (M. Andrejczuk) Extend IOM interface to write any 3D fields |
---|
| 9 | !!---------------------------------------------------------------------- |
---|
[544] | 10 | USE par_kind |
---|
[13970] | 11 | USE netcdf |
---|
[544] | 12 | |
---|
| 13 | IMPLICIT NONE |
---|
| 14 | PRIVATE |
---|
| 15 | |
---|
[13286] | 16 | INTEGER, PARAMETER, PUBLIC :: jpdom_global = 1 !: ( 1 :Ni0glo, 1 :Nj0glo) |
---|
| 17 | INTEGER, PARAMETER, PUBLIC :: jpdom_local = 2 !: (Nis0: Nie0 ,Njs0: Nje0 ) |
---|
| 18 | INTEGER, PARAMETER, PUBLIC :: jpdom_unknown = 3 !: No dimension checking |
---|
[14072] | 19 | INTEGER, PARAMETER, PUBLIC :: jpdom_auto = 4 !: |
---|
[13286] | 20 | INTEGER, PARAMETER, PUBLIC :: jpdom_auto_xy = 5 !: Automatically set horizontal dimensions only |
---|
[544] | 21 | |
---|
[556] | 22 | INTEGER, PARAMETER, PUBLIC :: jp_r8 = 200 !: write REAL(8) |
---|
| 23 | INTEGER, PARAMETER, PUBLIC :: jp_r4 = 201 !: write REAL(4) |
---|
| 24 | INTEGER, PARAMETER, PUBLIC :: jp_i4 = 202 !: write INTEGER(4) |
---|
| 25 | INTEGER, PARAMETER, PUBLIC :: jp_i2 = 203 !: write INTEGER(2) |
---|
| 26 | INTEGER, PARAMETER, PUBLIC :: jp_i1 = 204 !: write INTEGER(1) |
---|
[544] | 27 | |
---|
[7646] | 28 | INTEGER, PARAMETER, PUBLIC :: jpmax_files = 100 !: maximum number of simultaneously opened file |
---|
| 29 | INTEGER, PARAMETER, PUBLIC :: jpmax_vars = 1200 !: maximum number of variables in one file |
---|
[544] | 30 | INTEGER, PARAMETER, PUBLIC :: jpmax_dims = 4 !: maximum number of dimensions for one variable |
---|
[13062] | 31 | INTEGER, PARAMETER, PUBLIC :: jpmax_digits = 9 !: maximum number of digits for the cpu number in the file name |
---|
[544] | 32 | |
---|
[571] | 33 | !$AGRIF_DO_NOT_TREAT |
---|
[1359] | 34 | INTEGER, PUBLIC :: iom_open_init = 0 !: used to initialize iom_file(:)%nfid to 0 |
---|
[14072] | 35 | !XIOS write restart |
---|
[13558] | 36 | LOGICAL, PUBLIC :: lwxios = .FALSE. !: write single file restart using XIOS |
---|
| 37 | INTEGER, PUBLIC :: nxioso = 0 !: type of restart file when writing using XIOS 1 - single, 2 - multiple |
---|
[14072] | 38 | !XIOS read restart |
---|
[13970] | 39 | LOGICAL, PUBLIC :: lrxios = .FALSE. !: read single file restart using XIOS main switch |
---|
[9367] | 40 | LOGICAL, PUBLIC :: lxios_sini = .FALSE. ! is restart in a single file |
---|
[571] | 41 | |
---|
[13970] | 42 | |
---|
| 43 | |
---|
[556] | 44 | TYPE, PUBLIC :: file_descriptor |
---|
[544] | 45 | CHARACTER(LEN=240) :: name !: name of the file |
---|
[12649] | 46 | CHARACTER(LEN=3 ) :: comp !: name of component opening the file ('OCE', 'ICE'...) |
---|
[544] | 47 | INTEGER :: nfid !: identifier of the file (0 if closed) |
---|
[6140] | 48 | !: jpioipsl option has been removed) |
---|
[544] | 49 | INTEGER :: nvars !: number of identified varibles in the file |
---|
| 50 | INTEGER :: iduld !: id of the unlimited dimension |
---|
[6140] | 51 | INTEGER :: lenuld !: length of the unlimited dimension (number of records in file) |
---|
[14072] | 52 | INTEGER :: irec !: writing record position |
---|
[911] | 53 | CHARACTER(LEN=32) :: uldname !: name of the unlimited dimension |
---|
[577] | 54 | CHARACTER(LEN=32), DIMENSION(jpmax_vars) :: cn_var !: names of the variables |
---|
[544] | 55 | INTEGER, DIMENSION(jpmax_vars) :: nvid !: id of the variables |
---|
| 56 | INTEGER, DIMENSION(jpmax_vars) :: ndims !: number of dimensions of the variables |
---|
| 57 | LOGICAL, DIMENSION(jpmax_vars) :: luld !: variable using the unlimited dimension |
---|
[14072] | 58 | INTEGER, DIMENSION(jpmax_dims,jpmax_vars) :: dimsz !: size of variables dimensions |
---|
[544] | 59 | REAL(kind=wp), DIMENSION(jpmax_vars) :: scf !: scale_factor of the variables |
---|
| 60 | REAL(kind=wp), DIMENSION(jpmax_vars) :: ofs !: add_offset of the variables |
---|
[556] | 61 | END TYPE file_descriptor |
---|
| 62 | TYPE(file_descriptor), DIMENSION(jpmax_files), PUBLIC :: iom_file !: array containing the info for all opened files |
---|
[550] | 63 | !$AGRIF_END_DO_NOT_TREAT |
---|
[9367] | 64 | ! |
---|
[12377] | 65 | !! * Substitutions |
---|
| 66 | # include "do_loop_substitute.h90" |
---|
[9019] | 67 | !!---------------------------------------------------------------------- |
---|
[9598] | 68 | !! NEMO/OCE 4.0 , NEMO Consortium (2018) |
---|
[9019] | 69 | !! $Id$ |
---|
[10068] | 70 | !! Software governed by the CeCILL license (see ./LICENSE) |
---|
[9019] | 71 | !!====================================================================== |
---|
[544] | 72 | END MODULE iom_def |
---|