New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
iom_def.F90 in NEMO/trunk/src/OCE/IOM – NEMO

source: NEMO/trunk/src/OCE/IOM/iom_def.F90 @ 12515

Last change on this file since 12515 was 12377, checked in by acc, 4 years ago

The big one. Merging all 2019 developments from the option 1 branch back onto the trunk.

This changeset reproduces 2019/dev_r11943_MERGE_2019 on the trunk using a 2-URL merge
onto a working copy of the trunk. I.e.:

svn merge --ignore-ancestry \

svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk \
svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/branches/2019/dev_r11943_MERGE_2019 ./

The --ignore-ancestry flag avoids problems that may otherwise arise from the fact that
the merge history been trunk and branch may have been applied in a different order but
care has been taken before this step to ensure that all applicable fixes and updates
are present in the merge branch.

The trunk state just before this step has been branched to releases/release-4.0-HEAD
and that branch has been immediately tagged as releases/release-4.0.2. Any fixes
or additions in response to tickets on 4.0, 4.0.1 or 4.0.2 should be done on
releases/release-4.0-HEAD. From now on future 'point' releases (e.g. 4.0.2) will
remain unchanged with periodic releases as needs demand. Note release-4.0-HEAD is a
transitional naming convention. Future full releases, say 4.2, will have a release-4.2
branch which fulfills this role and the first point release (e.g. 4.2.0) will be made
immediately following the release branch creation.

2020 developments can be started from any trunk revision later than this one.

  • Property svn:keywords set to Id
File size: 5.4 KB
RevLine 
[544]1MODULE 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
11
12   IMPLICIT NONE
13   PRIVATE
14
[7646]15   INTEGER, PARAMETER, PUBLIC ::   jpdom_data          = 1   !: ( 1  :jpiglo, 1  :jpjglo)    !!gm to be suppressed
[544]16   INTEGER, PARAMETER, PUBLIC ::   jpdom_global        = 2   !: ( 1  :jpiglo, 1  :jpjglo)
17   INTEGER, PARAMETER, PUBLIC ::   jpdom_local         = 3   !: One of the 3 following cases
18   INTEGER, PARAMETER, PUBLIC ::   jpdom_local_full    = 4   !: ( 1  :jpi   , 1  :jpi   )
19   INTEGER, PARAMETER, PUBLIC ::   jpdom_local_noextra = 5   !: ( 1  :nlci  , 1  :nlcj  )
20   INTEGER, PARAMETER, PUBLIC ::   jpdom_local_noovlap = 6   !: (nldi:nlei  ,nldj:nlej  )
21   INTEGER, PARAMETER, PUBLIC ::   jpdom_unknown       = 7   !: No dimension checking
[679]22   INTEGER, PARAMETER, PUBLIC ::   jpdom_autoglo       = 8   !:
[6140]23   INTEGER, PARAMETER, PUBLIC ::   jpdom_autoglo_xy    = 9   !: Automatically set horizontal dimensions only
24   INTEGER, PARAMETER, PUBLIC ::   jpdom_autodta       = 10  !:
[544]25
[556]26   INTEGER, PARAMETER, PUBLIC ::   jp_r8    = 200      !: write REAL(8)
27   INTEGER, PARAMETER, PUBLIC ::   jp_r4    = 201      !: write REAL(4)
28   INTEGER, PARAMETER, PUBLIC ::   jp_i4    = 202      !: write INTEGER(4)
29   INTEGER, PARAMETER, PUBLIC ::   jp_i2    = 203      !: write INTEGER(2)
30   INTEGER, PARAMETER, PUBLIC ::   jp_i1    = 204      !: write INTEGER(1)
[544]31
[7646]32   INTEGER, PARAMETER, PUBLIC ::   jpmax_files  = 100  !: maximum number of simultaneously opened file
33   INTEGER, PARAMETER, PUBLIC ::   jpmax_vars   = 1200 !: maximum number of variables in one file
[544]34   INTEGER, PARAMETER, PUBLIC ::   jpmax_dims   =  4   !: maximum number of dimensions for one variable
35   INTEGER, PARAMETER, PUBLIC ::   jpmax_digits =  5   !: maximum number of digits for the cpu number in the file name
36
[9367]37
[571]38!$AGRIF_DO_NOT_TREAT
[1359]39   INTEGER, PUBLIC            ::   iom_open_init = 0   !: used to initialize iom_file(:)%nfid to 0
[9367]40!XIOS write restart   
41   LOGICAL, PUBLIC            ::   lwxios          !: write single file restart using XIOS
42   INTEGER, PUBLIC            ::   nxioso          !: type of restart file when writing using XIOS 1 - single, 2 - multiple
43!XIOS read restart   
44   LOGICAL, PUBLIC            ::   lrxios          !: read single file restart using XIOS
45   LOGICAL, PUBLIC            ::   lxios_sini = .FALSE. ! is restart in a single file
46   LOGICAL, PUBLIC            ::   lxios_set  = .FALSE. 
[571]47
[9367]48
49
[556]50   TYPE, PUBLIC ::   file_descriptor
[544]51      CHARACTER(LEN=240)                        ::   name     !: name of the file
52      INTEGER                                   ::   nfid     !: identifier of the file (0 if closed)
[6140]53                                                              !: jpioipsl option has been removed)
[544]54      INTEGER                                   ::   nvars    !: number of identified varibles in the file
55      INTEGER                                   ::   iduld    !: id of the unlimited dimension
[6140]56      INTEGER                                   ::   lenuld   !: length of the unlimited dimension (number of records in file)
[544]57      INTEGER                                   ::   irec     !: writing record position 
[911]58      CHARACTER(LEN=32)                         ::   uldname  !: name of the unlimited dimension
[577]59      CHARACTER(LEN=32), DIMENSION(jpmax_vars)  ::   cn_var   !: names of the variables
[544]60      INTEGER, DIMENSION(jpmax_vars)            ::   nvid     !: id of the variables
61      INTEGER, DIMENSION(jpmax_vars)            ::   ndims    !: number of dimensions of the variables
62      LOGICAL, DIMENSION(jpmax_vars)            ::   luld     !: variable using the unlimited dimension
63      INTEGER, DIMENSION(jpmax_dims,jpmax_vars) ::   dimsz    !: size of variables dimensions
64      REAL(kind=wp), DIMENSION(jpmax_vars)      ::   scf      !: scale_factor of the variables
65      REAL(kind=wp), DIMENSION(jpmax_vars)      ::   ofs      !: add_offset of the variables
[9019]66      INTEGER                                   ::   nlev     ! number of vertical levels
[556]67   END TYPE file_descriptor
68   TYPE(file_descriptor), DIMENSION(jpmax_files), PUBLIC ::   iom_file !: array containing the info for all opened files
[9367]69   INTEGER, PARAMETER, PUBLIC                   :: max_rst_fields = 95 !: maximum number of restart variables defined in iom_set_rst_vars
70   TYPE, PUBLIC :: RST_FIELD 
71    CHARACTER(len=30) :: vname = "NO_NAME" ! names of variables in restart file
72    CHARACTER(len=30) :: grid = "NO_GRID"
73    LOGICAL           :: active =.FALSE. ! for restart write only: true - write field, false do not write field
74   END TYPE RST_FIELD
[550]75!$AGRIF_END_DO_NOT_TREAT
[9367]76   !
[9598]77   TYPE(RST_FIELD), PUBLIC, SAVE :: rst_wfields(max_rst_fields), rst_rfields(max_rst_fields)
[9367]78   !
[12377]79   !! * Substitutions
80#  include "do_loop_substitute.h90"
[9019]81   !!----------------------------------------------------------------------
[9598]82   !! NEMO/OCE 4.0 , NEMO Consortium (2018)
[9019]83   !! $Id$
[10068]84   !! Software governed by the CeCILL license (see ./LICENSE)
[9019]85   !!======================================================================
[544]86END MODULE iom_def
Note: See TracBrowser for help on using the repository browser.