[544] | 1 | MODULE iom_def |
---|
| 2 | !!===================================================================== |
---|
| 3 | !! *** MODULE iom_def *** |
---|
| 4 | !! IOM variables definitions |
---|
| 5 | !!==================================================================== |
---|
| 6 | !! History : 9.0 ! 06 09 (S. Masson) Original code |
---|
[911] | 7 | !! " ! 07 07 (D. Storkey) Add uldname |
---|
[544] | 8 | !!-------------------------------------------------------------------- |
---|
[556] | 9 | !!--------------------------------------------------------------------------------- |
---|
[2528] | 10 | !! NEMO/OPA 3.3 , NEMO Consortium (2010) |
---|
[6486] | 11 | !! $Id$ |
---|
[2528] | 12 | !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) |
---|
[556] | 13 | !!--------------------------------------------------------------------------------- |
---|
| 14 | |
---|
[544] | 15 | USE par_kind |
---|
| 16 | |
---|
| 17 | IMPLICIT NONE |
---|
| 18 | PRIVATE |
---|
| 19 | |
---|
| 20 | INTEGER, PARAMETER, PUBLIC :: jpdom_data = 1 !: ( 1 :jpidta, 1 :jpjdta) |
---|
| 21 | INTEGER, PARAMETER, PUBLIC :: jpdom_global = 2 !: ( 1 :jpiglo, 1 :jpjglo) |
---|
| 22 | INTEGER, PARAMETER, PUBLIC :: jpdom_local = 3 !: One of the 3 following cases |
---|
| 23 | INTEGER, PARAMETER, PUBLIC :: jpdom_local_full = 4 !: ( 1 :jpi , 1 :jpi ) |
---|
| 24 | INTEGER, PARAMETER, PUBLIC :: jpdom_local_noextra = 5 !: ( 1 :nlci , 1 :nlcj ) |
---|
| 25 | INTEGER, PARAMETER, PUBLIC :: jpdom_local_noovlap = 6 !: (nldi:nlei ,nldj:nlej ) |
---|
| 26 | INTEGER, PARAMETER, PUBLIC :: jpdom_unknown = 7 !: No dimension checking |
---|
[679] | 27 | INTEGER, PARAMETER, PUBLIC :: jpdom_autoglo = 8 !: |
---|
[6491] | 28 | INTEGER, PARAMETER, PUBLIC :: jpdom_autoglo_xy = 9 !: Automatically set horizontal dimensions only |
---|
| 29 | INTEGER, PARAMETER, PUBLIC :: jpdom_autodta = 10 !: |
---|
[544] | 30 | |
---|
[556] | 31 | INTEGER, PARAMETER, PUBLIC :: jpioipsl = 100 !: Use ioipsl (fliocom only) library |
---|
| 32 | INTEGER, PARAMETER, PUBLIC :: jpnf90 = 101 !: Use nf90 library |
---|
| 33 | INTEGER, PARAMETER, PUBLIC :: jprstdimg = 102 !: Use restart dimgs (fortran direct acces) library |
---|
[547] | 34 | #if defined key_dimgout |
---|
| 35 | INTEGER, PARAMETER, PUBLIC :: jprstlib = jprstdimg !: restarts io library |
---|
| 36 | #else |
---|
| 37 | INTEGER, PARAMETER, PUBLIC :: jprstlib = jpnf90 !: restarts io library |
---|
| 38 | #endif |
---|
[544] | 39 | |
---|
[556] | 40 | INTEGER, PARAMETER, PUBLIC :: jp_r8 = 200 !: write REAL(8) |
---|
| 41 | INTEGER, PARAMETER, PUBLIC :: jp_r4 = 201 !: write REAL(4) |
---|
| 42 | INTEGER, PARAMETER, PUBLIC :: jp_i4 = 202 !: write INTEGER(4) |
---|
| 43 | INTEGER, PARAMETER, PUBLIC :: jp_i2 = 203 !: write INTEGER(2) |
---|
| 44 | INTEGER, PARAMETER, PUBLIC :: jp_i1 = 204 !: write INTEGER(1) |
---|
[544] | 45 | |
---|
[3680] | 46 | INTEGER, PARAMETER, PUBLIC :: jpmax_files = 100 !: maximum number of simultaneously opened file |
---|
[4205] | 47 | INTEGER, PARAMETER, PUBLIC :: jpmax_vars = 600 !: maximum number of variables in one file |
---|
[544] | 48 | INTEGER, PARAMETER, PUBLIC :: jpmax_dims = 4 !: maximum number of dimensions for one variable |
---|
| 49 | INTEGER, PARAMETER, PUBLIC :: jpmax_digits = 5 !: maximum number of digits for the cpu number in the file name |
---|
| 50 | |
---|
[571] | 51 | !$AGRIF_DO_NOT_TREAT |
---|
[1359] | 52 | INTEGER, PUBLIC :: iom_open_init = 0 !: used to initialize iom_file(:)%nfid to 0 |
---|
[7924] | 53 | !XIOS read restart |
---|
[8001] | 54 | LOGICAL, PUBLIC :: lxios_read !: read single file restart using XIOS |
---|
[7924] | 55 | LOGICAL, PUBLIC :: lxios_sini = .FALSE. ! is restart in a single file |
---|
| 56 | LOGICAL, PUBLIC :: lxios_set = .FALSE. |
---|
[571] | 57 | |
---|
[556] | 58 | TYPE, PUBLIC :: file_descriptor |
---|
[544] | 59 | CHARACTER(LEN=240) :: name !: name of the file |
---|
| 60 | INTEGER :: nfid !: identifier of the file (0 if closed) |
---|
| 61 | INTEGER :: iolib !: library used to read the file (jpioipsl, jpnf90 or jprstdimg) |
---|
| 62 | INTEGER :: nvars !: number of identified varibles in the file |
---|
| 63 | INTEGER :: iduld !: id of the unlimited dimension |
---|
[6491] | 64 | INTEGER :: lenuld !: length of the unlimited dimension (number of records in file) |
---|
[544] | 65 | INTEGER :: irec !: writing record position |
---|
[911] | 66 | CHARACTER(LEN=32) :: uldname !: name of the unlimited dimension |
---|
[577] | 67 | CHARACTER(LEN=32), DIMENSION(jpmax_vars) :: cn_var !: names of the variables |
---|
[544] | 68 | INTEGER, DIMENSION(jpmax_vars) :: nvid !: id of the variables |
---|
| 69 | INTEGER, DIMENSION(jpmax_vars) :: ndims !: number of dimensions of the variables |
---|
| 70 | LOGICAL, DIMENSION(jpmax_vars) :: luld !: variable using the unlimited dimension |
---|
| 71 | INTEGER, DIMENSION(jpmax_dims,jpmax_vars) :: dimsz !: size of variables dimensions |
---|
| 72 | REAL(kind=wp), DIMENSION(jpmax_vars) :: scf !: scale_factor of the variables |
---|
| 73 | REAL(kind=wp), DIMENSION(jpmax_vars) :: ofs !: add_offset of the variables |
---|
[556] | 74 | END TYPE file_descriptor |
---|
| 75 | TYPE(file_descriptor), DIMENSION(jpmax_files), PUBLIC :: iom_file !: array containing the info for all opened files |
---|
[8001] | 76 | |
---|
[8038] | 77 | INTEGER, PARAMETER, PUBLIC :: max_rst_fields = 85 |
---|
| 78 | ! CHARACTER(len=30),DIMENSION(max_rst_fields), PUBLIC :: rst_fields ! names of variables in restart file |
---|
| 79 | |
---|
| 80 | TYPE, PUBLIC :: RST_FIELD |
---|
| 81 | CHARACTER(len=30) :: vname ! names of variables in restart file |
---|
| 82 | CHARACTER(len=30) :: grid |
---|
| 83 | END TYPE RST_FIELD |
---|
| 84 | TYPE(RST_FIELD), PUBLIC :: rst_fields(max_rst_fields) |
---|
| 85 | |
---|
[550] | 86 | !$AGRIF_END_DO_NOT_TREAT |
---|
[544] | 87 | |
---|
| 88 | !!===================================================================== |
---|
| 89 | END MODULE iom_def |
---|