source: branches/UKMO/r6232_tracer_advection/NEMOGCM/NEMO/OPA_SRC/IOM/in_out_manager.F90

Last change on this file was 9295, checked in by jcastill, 3 years ago

Remove svn keywords

File size: 10.5 KB
RevLine 
[544]1MODULE in_out_manager   
2   !!======================================================================
3   !!                       ***  MODULE  in_out_manager  ***
[3294]4   !! I/O manager utilities : Defines run parameters together with logical units
[544]5   !!=====================================================================
[1581]6   !! History :   1.0  !  2002-06  (G. Madec)   original code
[1056]7   !!             2.0  !  2006-07  (S. Masson)  iom, add ctl_stop, ctl_warn
[1581]8   !!             3.0  !  2008-06  (G. Madec)   add ctmp4 to ctmp10
9   !!             3.2  !  2009-08  (S. MAsson)  add new ctl_opn
[2528]10   !!             3.3  !  2010-10  (A. Coward)  add NetCDF4 usage
[544]11   !!----------------------------------------------------------------------
12
13   !!----------------------------------------------------------------------
[2528]14   USE par_oce       ! ocean parameter
15   USE lib_print     ! formated print library
16   USE nc4interface  ! NetCDF4 interface
[544]17
18   IMPLICIT NONE
19   PUBLIC
20
[4147]21 
22   !
[544]23   !!----------------------------------------------------------------------
24   !!                   namrun namelist parameters
25   !!----------------------------------------------------------------------
[4147]26   CHARACTER(lc) ::   cn_exp           !: experiment name used for output filename
27   CHARACTER(lc) ::   cn_ocerst_in     !: suffix of ocean restart name (input)
[5341]28   CHARACTER(lc) ::   cn_ocerst_indir  !: restart input directory
[4147]29   CHARACTER(lc) ::   cn_ocerst_out    !: suffix of ocean restart name (output)
[5341]30   CHARACTER(lc) ::   cn_ocerst_outdir !: restart output directory
[4147]31   LOGICAL       ::   ln_rstart        !: start from (F) rest or (T) a restart file
[5341]32   LOGICAL       ::   ln_rst_list      !: output restarts at list of times (T) or by frequency (F)
[4147]33   INTEGER       ::   nn_no            !: job number
34   INTEGER       ::   nn_rstctl        !: control of the time step (0, 1 or 2)
35   INTEGER       ::   nn_rstssh   = 0  !: hand made initilization of ssh or not (1/0)
36   INTEGER       ::   nn_it000         !: index of the first time step
37   INTEGER       ::   nn_itend         !: index of the last time step
38   INTEGER       ::   nn_date0         !: initial calendar date aammjj
39   INTEGER       ::   nn_leapy         !: Leap year calendar flag (0/1 or 30)
40   INTEGER       ::   nn_istate        !: initial state output flag (0/1)
41   INTEGER       ::   nn_write         !: model standard output frequency
42   INTEGER       ::   nn_stock         !: restart file frequency
[5341]43   INTEGER, DIMENSION(10) :: nn_stocklist  !: restart dump times
[4147]44   LOGICAL       ::   ln_dimgnnn       !: type of dimgout. (F): 1 file for all proc
[1229]45                                                       !:                  (T): 1 file per proc
[4147]46   LOGICAL       ::   ln_mskland       !: mask land points in NetCDF outputs (costly: + ~15%)
[5363]47   LOGICAL       ::   ln_cfmeta        !: output additional data to netCDF files required for compliance with the CF metadata standard
[4147]48   LOGICAL       ::   ln_clobber       !: clobber (overwrite) an existing file
49   INTEGER       ::   nn_chunksz       !: chunksize (bytes) for NetCDF file (works only with iom_nf90 routines)
[2528]50#if defined key_netcdf4
51   !!----------------------------------------------------------------------
52   !!                   namnc4 namelist parameters                         (key_netcdf4)
53   !!----------------------------------------------------------------------
54   ! The following four values determine the partitioning of the output fields
55   ! into netcdf4 chunks. They are unrelated to the nn_chunk_sz setting which is
56   ! for runtime optimisation. The individual netcdf4 chunks can be optionally
57   ! gzipped (recommended) leading to significant reductions in I/O volumes
[4147]58   !                         !!!**  variables only used with iom_nf90 routines and key_netcdf4 **
59   INTEGER ::   nn_nchunks_i   !: number of chunks required in the i-dimension
60   INTEGER ::   nn_nchunks_j   !: number of chunks required in the j-dimension
61   INTEGER ::   nn_nchunks_k   !: number of chunks required in the k-dimension
62   INTEGER ::   nn_nchunks_t   !: number of chunks required in the t-dimension
63   LOGICAL ::   ln_nc4zip      !: netcdf4 usage: (T) chunk and compress output using the HDF5 sublayers of netcdf4
64   !                           !                 (F) ignore chunking request and use the netcdf4 library
65   !                           !                     to produce netcdf3-compatible files
[2528]66#endif
67!$AGRIF_DO_NOT_TREAT
68   TYPE(snc4_ctl)     :: snc4set        !: netcdf4 chunking control structure (always needed for decision making)
69!$AGRIF_END_DO_NOT_TREAT
[1601]70
[2528]71
[1601]72   !! conversion of DOCTOR norm namelist name into model name
73   !! (this should disappear in a near futur)
74
[2528]75   CHARACTER(lc) ::   cexper                      !: experiment name used for output filename
76   INTEGER       ::   no                          !: job number
77   INTEGER       ::   nrstdt                      !: control of the time step (0, 1 or 2)
78   INTEGER       ::   nit000                      !: index of the first time step
79   INTEGER       ::   nitend                      !: index of the last time step
80   INTEGER       ::   ndate0                      !: initial calendar date aammjj
81   INTEGER       ::   nleapy                      !: Leap year calendar flag (0/1 or 30)
82   INTEGER       ::   ninist                      !: initial state output flag (0/1)
83   INTEGER       ::   nwrite                      !: model standard output frequency
84   INTEGER       ::   nstock                      !: restart file frequency
[5341]85   INTEGER, DIMENSION(10) :: nstocklist           !: restart dump times
[1601]86
[544]87   !!----------------------------------------------------------------------
[557]88   !! was in restart but moved here because of the OFF line... better solution should be found...
89   !!----------------------------------------------------------------------
[3680]90   INTEGER ::   nitrst                !: time step at which restart file should be written
91   LOGICAL ::   lrst_oce              !: logical to control the oce restart write
[5518]92   INTEGER ::   numror = 0            !: logical unit for ocean restart (read). Init to 0 is needed for SAS (in daymod.F90)
93   INTEGER ::   numrow                !: logical unit for ocean restart (write)
[5341]94   INTEGER ::   nrst_lst              !: number of restart to output next
[1601]95
[557]96   !!----------------------------------------------------------------------
[544]97   !!                    output monitoring
98   !!----------------------------------------------------------------------
[4147]99   LOGICAL ::   ln_ctl       !: run control for debugging
100   INTEGER ::   nn_timing    !: run control for timing
101   INTEGER ::   nn_print     !: level of print (0 no print)
102   INTEGER ::   nn_ictls     !: Start i indice for the SUM control
103   INTEGER ::   nn_ictle     !: End   i indice for the SUM control
104   INTEGER ::   nn_jctls     !: Start j indice for the SUM control
105   INTEGER ::   nn_jctle     !: End   j indice for the SUM control
106   INTEGER ::   nn_isplt     !: number of processors following i
107   INTEGER ::   nn_jsplt     !: number of processors following j
108   INTEGER ::   nn_bench     !: benchmark parameter (0/1)
[2528]109   INTEGER ::   nn_bit_cmp   =    0    !: bit reproducibility  (0/1)
[1601]110
[2528]111   !                                         
112   INTEGER ::   nprint, nictls, nictle, njctls, njctle, isplt, jsplt, nbench    !: OLD namelist names
[1601]113
[2528]114   INTEGER ::   ijsplt     =    1      !: nb of local domain = nb of processors
[1601]115
[544]116   !!----------------------------------------------------------------------
117   !!                        logical units
118   !!----------------------------------------------------------------------
[4147]119   INTEGER ::   numstp          =   -1      !: logical unit for time step
120   INTEGER ::   numtime         =   -1      !: logical unit for timing
[4990]121   INTEGER ::   numout          =    6      !: logical unit for output print; Set to stdout to ensure any early
122                                            !  output can be collected; do not change
[4147]123   INTEGER ::   numnam_ref      =   -1      !: logical unit for reference namelist
124   INTEGER ::   numnam_cfg      =   -1      !: logical unit for configuration specific namelist
[4990]125   INTEGER ::   numond          =   -1      !: logical unit for Output Namelist Dynamics
[4147]126   INTEGER ::   numnam_ice_ref  =   -1      !: logical unit for ice reference namelist
127   INTEGER ::   numnam_ice_cfg  =   -1      !: logical unit for ice reference namelist
[4990]128   INTEGER ::   numoni          =   -1      !: logical unit for Output Namelist Ice
[4147]129   INTEGER ::   numevo_ice      =   -1      !: logical unit for ice variables (temp. evolution)
130   INTEGER ::   numsol          =   -1      !: logical unit for solver statistics
131   INTEGER ::   numdct_in       =   -1      !: logical unit for transports computing
132   INTEGER ::   numdct_vol      =   -1      !: logical unit for voulume transports output
133   INTEGER ::   numdct_heat     =   -1      !: logical unit for heat    transports output
134   INTEGER ::   numdct_salt     =   -1      !: logical unit for salt    transports output
135   INTEGER ::   numfl           =   -1      !: logical unit for floats ascii output
136   INTEGER ::   numflo          =   -1      !: logical unit for floats ascii output
[544]137
138   !!----------------------------------------------------------------------
139   !!                          Run control 
140   !!----------------------------------------------------------------------
[2528]141   INTEGER       ::   nstop = 0             !: error flag (=number of reason for a premature stop run)
142   INTEGER       ::   nwarn = 0             !: warning flag (=number of warning found during the run)
143   CHARACTER(lc) ::   ctmp1, ctmp2, ctmp3   !: temporary characters 1 to 3
144   CHARACTER(lc) ::   ctmp4, ctmp5, ctmp6   !: temporary characters 4 to 6
145   CHARACTER(lc) ::   ctmp7, ctmp8, ctmp9   !: temporary characters 7 to 9
146   CHARACTER(lc) ::   ctmp10                !: temporary character 10
147   CHARACTER(lc) ::   cform_err = "(/,' ===>>> : E R R O R',     /,'         ===========',/)"       !:
148   CHARACTER(lc) ::   cform_war = "(/,' ===>>> : W A R N I N G', /,'         ===============',/)"   !:
[4624]149   LOGICAL       ::   lwm      = .FALSE.    !: boolean : true on the 1st processor only (always)
150   LOGICAL       ::   lwp      = .FALSE.    !: boolean : true on the 1st processor only .OR. ln_ctl
[2528]151   LOGICAL       ::   lsp_area = .TRUE.     !: to make a control print over a specific area
[5407]152   CHARACTER(lc) ::   cxios_context         !: context name used in xios
[2528]153
[544]154   !!----------------------------------------------------------------------
[2528]155   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
[1146]156   !! $Id$
[2528]157   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
[544]158   !!=====================================================================
159END MODULE in_out_manager
Note: See TracBrowser for help on using the repository browser.