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.
Changeset 14623 for utils/tools/DOMAINcfg/src/in_out_manager.F90 – NEMO

Ignore:
Timestamp:
2021-03-21T19:40:22+01:00 (3 years ago)
Author:
ldebreu
Message:

AGFdomcfg: 1) Update DOMAINcfg to be compliant with the removal of halo cells 2) Update most of the LBC ... subroutines to a recent NEMO 4 version #2638

File:
1 edited

Legend:

Unmodified
Added
Removed
  • utils/tools/DOMAINcfg/src/in_out_manager.F90

    r13204 r14623  
    2222   !!---------------------------------------------------------------------- 
    2323   CHARACTER(lc) ::   cn_exp           !: experiment name used for output filename 
     24   CHARACTER(lc) ::   cn_ocerst_in     !: suffix of ocean restart name (input) 
     25   CHARACTER(lc) ::   cn_ocerst_indir  !: restart input directory 
     26   CHARACTER(lc) ::   cn_ocerst_out    !: suffix of ocean restart name (output) 
     27   CHARACTER(lc) ::   cn_ocerst_outdir !: restart output directory 
     28   LOGICAL       ::   ln_rstart        !: start from (F) rest or (T) a restart file 
     29   LOGICAL       ::   ln_rst_list      !: output restarts at list of times (T) or by frequency (F) 
     30   INTEGER       ::   nn_rstctl        !: control of the time step (0, 1 or 2) 
     31   INTEGER       ::   nn_rstssh   = 0  !: hand made initilization of ssh or not (1/0) 
    2432   INTEGER       ::   nn_it000         !: index of the first time step 
    2533   INTEGER       ::   nn_itend         !: index of the last time step 
     
    2735   INTEGER       ::   nn_time0         !: initial time of day in hhmm 
    2836   INTEGER       ::   nn_leapy         !: Leap year calendar flag (0/1 or 30) 
     37   INTEGER       ::   nn_istate        !: initial state output flag (0/1) 
     38   INTEGER       ::   nn_write         !: model standard output frequency 
     39   INTEGER       ::   nn_stock         !: restart file frequency 
     40   INTEGER, DIMENSION(10) :: nn_stocklist  !: restart dump times 
    2941   LOGICAL       ::   ln_mskland       !: mask land points in NetCDF outputs (costly: + ~15%) 
    3042   LOGICAL       ::   ln_cfmeta        !: output additional data to netCDF files required for compliance with the CF metadata standard 
     
    3345   LOGICAL       ::   ln_xios_read     !: use xios to read single file restart 
    3446   INTEGER       ::   nn_wxios         !: write resart using xios 0 - no, 1 - single, 2 - multiple file output 
     47   INTEGER       ::   nn_no            !: Assimilation cycle 
    3548 
    3649#if defined key_netcdf4 
     
    6174 
    6275   CHARACTER(lc) ::   cexper                      !: experiment name used for output filename 
     76   INTEGER       ::   nrstdt                      !: control of the time step (0, 1 or 2) 
    6377   INTEGER       ::   nit000                      !: index of the first time step 
    6478   INTEGER       ::   nitend                      !: index of the last time step 
    6579   INTEGER       ::   ndate0                      !: initial calendar date aammjj 
    6680   INTEGER       ::   nleapy                      !: Leap year calendar flag (0/1 or 30) 
     81   INTEGER       ::   ninist                      !: initial state output flag (0/1) 
     82 
     83   !!---------------------------------------------------------------------- 
     84   !! was in restart but moved here because of the OFF line... better solution should be found... 
     85   !!---------------------------------------------------------------------- 
     86   INTEGER ::   nitrst                !: time step at which restart file should be written 
     87   LOGICAL ::   lrst_oce              !: logical to control the oce restart write  
     88   LOGICAL ::   lrst_ice              !: logical to control the ice restart write  
     89   LOGICAL ::   lrst_abl              !: logical to control the abl restart write  
     90   INTEGER ::   numror = 0            !: logical unit for ocean restart (read). Init to 0 is needed for SAS (in daymod.F90) 
     91   INTEGER ::   numrir                !: logical unit for ice   restart (read) 
     92   INTEGER ::   numrar                !: logical unit for abl   restart (read) 
     93   INTEGER ::   numrow                !: logical unit for ocean restart (write) 
     94   INTEGER ::   numriw                !: logical unit for ice   restart (write) 
     95   INTEGER ::   numraw                !: logical unit for abl   restart (write) 
     96   INTEGER ::   nrst_lst              !: number of restart to output next 
     97 
     98   !!---------------------------------------------------------------------- 
     99   !!                    output monitoring 
     100   !!---------------------------------------------------------------------- 
     101   TYPE :: sn_ctl                !: structure for control over output selection 
     102      LOGICAL :: l_runstat = .FALSE.  !: Produce/do not produce run.stat file (T/F) 
     103      LOGICAL :: l_trcstat = .FALSE.  !: Produce/do not produce tracer.stat file (T/F) 
     104      LOGICAL :: l_oceout  = .FALSE.  !: Produce all ocean.outputs    (T) or just one (F) 
     105      LOGICAL :: l_layout  = .FALSE.  !: Produce all layout.dat files (T) or just one (F) 
     106      LOGICAL :: l_prtctl  = .FALSE.  !: Produce/do not produce mpp.output_XXXX files (T/F) 
     107      LOGICAL :: l_prttrc  = .FALSE.  !: Produce/do not produce mpp.top.output_XXXX files (T/F) 
     108      LOGICAL :: l_oasout  = .FALSE.  !: Produce/do not write oasis setup info to ocean.output (T/F) 
     109                                      !  Optional subsetting of processor report files 
     110                                      !  Default settings of 0/1000000/1 should ensure all areas report. 
     111                                      !  Set to a more restrictive range to select specific areas 
     112      INTEGER :: procmin   = 0        !: Minimum narea to output 
     113      INTEGER :: procmax   = 1000000  !: Maximum narea to output 
     114      INTEGER :: procincr  = 1        !: narea increment to output 
     115      INTEGER :: ptimincr  = 1        !: timestep increment to output (time.step and run.stat) 
     116   END TYPE 
     117   TYPE(sn_ctl), SAVE :: sn_cfctl     !: run control structure for selective output, must have SAVE for default init. of sn_ctl 
     118   LOGICAL ::   ln_timing        !: run control for timing 
     119   LOGICAL ::   ln_diacfl        !: flag whether to create CFL diagnostics 
     120   INTEGER ::   nn_ictls         !: Start i indice for the SUM control 
     121   INTEGER ::   nn_ictle         !: End   i indice for the SUM control 
     122   INTEGER ::   nn_jctls         !: Start j indice for the SUM control 
     123   INTEGER ::   nn_jctle         !: End   j indice for the SUM control 
     124   INTEGER ::   nn_isplt         !: number of processors following i 
     125   INTEGER ::   nn_jsplt         !: number of processors following j 
    67126 
    68127   !!---------------------------------------------------------------------- 
     
    74133   INTEGER ::   numnul          =   -1      !: logical unit for /dev/null 
    75134      !                                     !  early output can be collected; do not change 
    76    INTEGER ::   numnam_ref      =   -1      !: logical unit for reference namelist 
    77    INTEGER ::   numnam_cfg      =   -1      !: logical unit for configuration specific namelist 
    78135   INTEGER ::   numond          =   -1      !: logical unit for Output Namelist Dynamics 
    79136   INTEGER ::   numoni          =   -1      !: logical unit for Output Namelist Ice 
     137   INTEGER ::   numevo_ice      =   -1      !: logical unit for ice variables (temp. evolution) 
    80138   INTEGER ::   numrun          =   -1      !: logical unit for run statistics 
     139   INTEGER ::   numdct_in       =   -1      !: logical unit for transports computing 
     140   INTEGER ::   numdct_vol      =   -1      !: logical unit for volume transports output 
     141   INTEGER ::   numdct_heat     =   -1      !: logical unit for heat   transports output 
     142   INTEGER ::   numdct_salt     =   -1      !: logical unit for salt   transports output 
     143   INTEGER ::   numfl           =   -1      !: logical unit for floats ascii output 
     144   INTEGER ::   numflo          =   -1      !: logical unit for floats ascii output 
     145      ! 
     146   CHARACTER(LEN=:), ALLOCATABLE :: numnam_ref      !: character buffer for reference namelist 
     147   CHARACTER(LEN=:), ALLOCATABLE :: numnam_cfg      !: character buffer for configuration specific namelist 
     148   CHARACTER(LEN=:), ALLOCATABLE :: numnam_ice_ref  !: character buffer for ice reference namelist 
     149   CHARACTER(LEN=:), ALLOCATABLE :: numnam_ice_cfg  !: character buffer for ice configuration specific namelist 
    81150 
    82151   !!---------------------------------------------------------------------- 
     
    85154   INTEGER       ::   no_print = 0          !: optional argument of fld_fill (if present, suppress some control print) 
    86155   INTEGER       ::   nstop = 0             !: error flag (=number of reason for a premature stop run) 
     156!$AGRIF_DO_NOT_TREAT 
     157   INTEGER       ::   ngrdstop = -1         !: grid number having nstop > 1 
     158!$AGRIF_END_DO_NOT_TREAT 
    87159   INTEGER       ::   nwarn = 0             !: warning flag (=number of warning found during the run) 
    88160   CHARACTER(lc) ::   ctmp1, ctmp2, ctmp3   !: temporary characters 1 to 3 
     
    90162   CHARACTER(lc) ::   ctmp7, ctmp8, ctmp9   !: temporary characters 7 to 9 
    91163   CHARACTER(lc) ::   ctmp10                !: temporary character 10 
    92    CHARACTER(lc) ::   cform_err = "(/,' ===>>> : E R R O R',     /,'         ===========',/)"       !: 
    93    CHARACTER(lc) ::   cform_war = "(/,' ===>>> : W A R N I N G', /,'         ===============',/)"   !: 
    94164   LOGICAL       ::   lwm      = .FALSE.    !: boolean : true on the 1st processor only (always) 
    95    LOGICAL       ::   lwp      = .FALSE.    !: boolean : true on the 1st processor only .OR. ln_ctl 
     165   LOGICAL       ::   lwp      = .FALSE.    !: boolean : true on the 1st processor only .OR. sn_cfctl%l_oceout=T 
     166   LOGICAL       ::   lsp_area = .TRUE.     !: to make a control print over a specific area 
    96167   CHARACTER(lc) ::   cxios_context         !: context name used in xios 
    97168   CHARACTER(lc) ::   crxios_context         !: context name used in xios to read restart 
    98169   CHARACTER(lc) ::   cwxios_context        !: context name used in xios to write restart file 
    99170 
     171   !! * Substitutions 
     172#  include "do_loop_substitute.h90" 
    100173   !!---------------------------------------------------------------------- 
    101174   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
    102    !! $Id: in_out_manager.F90 10570 2019-01-24 15:14:49Z acc $ 
     175   !! $Id: in_out_manager.F90 13286 2020-07-09 15:48:29Z smasson $ 
    103176   !! Software governed by the CeCILL license (see ./LICENSE) 
    104177   !!===================================================================== 
Note: See TracChangeset for help on using the changeset viewer.