source: branches/UKMO/r6232_tracer_advection/NEMOGCM/TOOLS/OBSTOOLS/src/in_out_manager.F90 @ 9295

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

Remove svn keywords

File size: 8.7 KB
Line 
1MODULE in_out_manager   
2   !!======================================================================
3   !!                       ***  MODULE  in_out_manager  ***
4   !! Ocean physics:  vertical mixing coefficient compute from the tke
5   !!                 turbulent closure parameterization
6   !!=====================================================================
7   !! History :   1.0  !  2002-06  (G. Madec)   original code
8   !!             2.0  !  2006-07  (S. Masson)  iom, add ctl_stop, ctl_warn
9   !!             3.0  !  2008-06  (G. Madec)   add ctmp4 to ctmp10
10   !!             3.2  !  2009-08  (S. MAsson)  add new ctl_opn
11   !!             3.3  !  2010-10  (A. Coward)  add NetCDF4 usage
12   !!----------------------------------------------------------------------
13
14   !!----------------------------------------------------------------------
15   USE par_oce       ! ocean parameter
16!   USE lib_print     ! formated print library
17!   USE nc4interface  ! NetCDF4 interface
18
19   IMPLICIT NONE
20   PUBLIC
21
22   !!----------------------------------------------------------------------
23   !!                   namrun namelist parameters
24   !!----------------------------------------------------------------------
25   CHARACTER(lc) ::   cn_exp        = "exp0"      !: experiment name used for output filename
26   CHARACTER(lc) ::   cn_ocerst_in  = "restart"   !: suffix of ocean restart name (input)
27   CHARACTER(lc) ::   cn_ocerst_out = "restart"   !: suffix of ocean restart name (output)
28   LOGICAL       ::   ln_rstart     = .FALSE.     !: start from (F) rest or (T) a restart file
29   INTEGER       ::   nn_no         = 0           !: job number
30   INTEGER       ::   nn_rstctl     = 0           !: control of the time step (0, 1 or 2)
31   INTEGER       ::   nn_rstssh     = 0           !: hand made initilization of ssh or not (1/0)
32   INTEGER       ::   nn_it000      = 1           !: index of the first time step
33   INTEGER       ::   nn_itend      = 10          !: index of the last time step
34   INTEGER       ::   nn_date0      = 961115      !: initial calendar date aammjj
35   INTEGER       ::   nn_leapy      = 0           !: Leap year calendar flag (0/1 or 30)
36   INTEGER       ::   nn_istate     = 0           !: initial state output flag (0/1)
37   INTEGER       ::   nn_write      =   10        !: model standard output frequency
38   INTEGER       ::   nn_stock      =   10        !: restart file frequency
39   LOGICAL       ::   ln_dimgnnn    = .FALSE.     !: type of dimgout. (F): 1 file for all proc
40                                                       !:                  (T): 1 file per proc
41   LOGICAL       ::   ln_mskland    = .FALSE.     !: mask land points in NetCDF outputs (costly: + ~15%)
42   LOGICAL       ::   ln_clobber    = .FALSE.     !: clobber (overwrite) an existing file
43   INTEGER       ::   nn_chunksz    = 0           !: chunksize (bytes) for NetCDF file (works only with iom_nf90 routines)
44#if defined key_netcdf4
45   !!----------------------------------------------------------------------
46   !!                   namnc4 namelist parameters                         (key_netcdf4)
47   !!----------------------------------------------------------------------
48   ! The following four values determine the partitioning of the output fields
49   ! into netcdf4 chunks. They are unrelated to the nn_chunk_sz setting which is
50   ! for runtime optimisation. The individual netcdf4 chunks can be optionally
51   ! gzipped (recommended) leading to significant reductions in I/O volumes
52   !                                   !!!**  variables only used with iom_nf90 routines and key_netcdf4 **
53   INTEGER ::   nn_nchunks_i = 1        !: number of chunks required in the i-dimension
54   INTEGER ::   nn_nchunks_j = 1        !: number of chunks required in the j-dimension
55   INTEGER ::   nn_nchunks_k = 1        !: number of chunks required in the k-dimension
56   INTEGER ::   nn_nchunks_t = 1        !: number of chunks required in the t-dimension
57   LOGICAL ::   ln_nc4zip    = .TRUE.   !: netcdf4 usage: (T) chunk and compress output using the HDF5 sublayers of netcdf4
58   !                                    !                 (F) ignore chunking request and use the netcdf4 library
59   !                                    !                     to produce netcdf3-compatible files
60#endif
61!$AGRIF_DO_NOT_TREAT
62!   TYPE(snc4_ctl)     :: snc4set        !: netcdf4 chunking control structure (always needed for decision making)
63!$AGRIF_END_DO_NOT_TREAT
64
65
66   !! conversion of DOCTOR norm namelist name into model name
67   !! (this should disappear in a near futur)
68
69   CHARACTER(lc) ::   cexper                      !: experiment name used for output filename
70   INTEGER       ::   no                          !: job number
71   INTEGER       ::   nrstdt                      !: control of the time step (0, 1 or 2)
72   INTEGER       ::   nit000                      !: index of the first time step
73   INTEGER       ::   nitend                      !: index of the last time step
74   INTEGER       ::   ndate0                      !: initial calendar date aammjj
75   INTEGER       ::   nleapy                      !: Leap year calendar flag (0/1 or 30)
76   INTEGER       ::   ninist                      !: initial state output flag (0/1)
77   INTEGER       ::   nwrite                      !: model standard output frequency
78   INTEGER       ::   nstock                      !: restart file frequency
79
80   !!----------------------------------------------------------------------
81   !! was in restart but moved here because of the OFF line... better solution should be found...
82   !!----------------------------------------------------------------------
83   INTEGER ::   nitrst   !: time step at which restart file should be written
84
85   !!----------------------------------------------------------------------
86   !!                    output monitoring
87   !!----------------------------------------------------------------------
88   LOGICAL ::   ln_ctl     = .FALSE.   !: run control for debugging
89   INTEGER ::   nn_print     =    0    !: level of print (0 no print)
90   INTEGER ::   nn_ictls     =    0    !: Start i indice for the SUM control
91   INTEGER ::   nn_ictle     =    0    !: End   i indice for the SUM control
92   INTEGER ::   nn_jctls     =    0    !: Start j indice for the SUM control
93   INTEGER ::   nn_jctle     =    0    !: End   j indice for the SUM control
94   INTEGER ::   nn_isplt     =    1    !: number of processors following i
95   INTEGER ::   nn_jsplt     =    1    !: number of processors following j
96   INTEGER ::   nn_bench     =    0    !: benchmark parameter (0/1)
97   INTEGER ::   nn_bit_cmp   =    0    !: bit reproducibility  (0/1)
98
99   !                                         
100   INTEGER ::   nprint, nictls, nictle, njctls, njctle, isplt, jsplt, nbench    !: OLD namelist names
101
102   INTEGER ::   ijsplt     =    1      !: nb of local domain = nb of processors
103
104   !!----------------------------------------------------------------------
105   !!                        logical units
106   !!----------------------------------------------------------------------
107   INTEGER ::   numstp     =   -1      !: logical unit for time step
108   INTEGER ::   numout     =    6      !: logical unit for output print
109   INTEGER ::   numnam     =   -1      !: logical unit for namelist
110   INTEGER ::   numnam_ice =   -1      !: logical unit for ice namelist
111   INTEGER ::   numevo_ice =   -1      !: logical unit for ice variables (temp. evolution)
112   INTEGER ::   numsol     =   -1      !: logical unit for solver statistics
113
114   !!----------------------------------------------------------------------
115   !!                          Run control 
116   !!----------------------------------------------------------------------
117   INTEGER       ::   nstop = 0             !: error flag (=number of reason for a premature stop run)
118   INTEGER       ::   nwarn = 0             !: warning flag (=number of warning found during the run)
119   CHARACTER(lc) ::   ctmp1, ctmp2, ctmp3   !: temporary characters 1 to 3
120   CHARACTER(lc) ::   ctmp4, ctmp5, ctmp6   !: temporary characters 4 to 6
121   CHARACTER(lc) ::   ctmp7, ctmp8, ctmp9   !: temporary characters 7 to 9
122   CHARACTER(lc) ::   ctmp10                !: temporary character 10
123   CHARACTER(lc) ::   cform_err = "(/,' ===>>> : E R R O R',     /,'         ===========',/)"       !:
124   CHARACTER(lc) ::   cform_war = "(/,' ===>>> : W A R N I N G', /,'         ===============',/)"   !:
125   LOGICAL       ::   lwp      = .FALSE.    !: boolean : true on the 1st processor only
126   LOGICAL       ::   lsp_area = .TRUE.     !: to make a control print over a specific area
127
128   !!----------------------------------------------------------------------
129   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
130   !! $Id$
131   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
132   !!=====================================================================
133END MODULE in_out_manager
Note: See TracBrowser for help on using the repository browser.