SURFEX v8.1
General documentation of Surfex
modn_io_offline.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #######################
7 ! #######################
8 !
9 !!**** *MODN_IO_OFFLINE* define the variables and namelist for SURFEX
10 ! offline programs (pgd, prep, offline)
11 !!
12 !! PURPOSE
13 !! -------
14 !!
15 !!** METHOD
16 !! ------
17 !!
18 !! EXTERNAL
19 !! --------
20 !!
21 !!
22 !! IMPLICIT ARGUMENTS
23 !! ------------------
24 !!
25 !! REFERENCE
26 !! ---------
27 !!
28 !!
29 !! AUTHOR
30 !! ------
31 !! V. Masson *Meteo France*
32 !!
33 !! MODIFICATIONS
34 !! -------------
35 !! Original 04/2008
36 !! P. Lemoigne 04/2013 Add XDELTA_OROG to fix the maximum difference allowed between
37 !! forcing and surface file orographies if LSET_FORC_ZS=.F
38 !-------------------------------------------------------------------------------
39 !
40 !* 0. DECLARATIONS
41 ! ------------
42 !
43 IMPLICIT NONE
44 !
45 !* Types of files
46 ! --------------
47 !
48  CHARACTER(LEN=6) :: csurf_filetype = 'ASCII ' ! type of SURFEX surface files
49 ! ! 'NETDF '
50 ! ! 'FA '
51 ! ! 'ASCII '
52 ! ! 'LFI '
53  CHARACTER(LEN=6) :: ctimeseries_filetype = 'NONE ' ! type of the files contining the
54 ! ! output diagnostic time series
55 ! ! 'NETCDF ', 'TEXTE '
56  CHARACTER(LEN=6) :: cforcing_filetype = 'NETCDF' ! type of atmospheric FORCING files
57 ! ! 'NETDF', 'BINARY', or 'ASCII '
58 !
59 !* Names of files
60 ! --------------
61 !
62  CHARACTER(LEN=28):: cpgdfile ='PGD' ! name of the PGD file
63  CHARACTER(LEN=28):: cprepfile ='PREP' ! name of the INITIAL file
64  CHARACTER(LEN=28):: csurffile ='SURFOUT' ! name of the final output CSURFEX file
65  CHARACTER(LEN=28):: cnamelist ='OPTIONS.nam' ! name of namelist file
66 !
67 !
68 !* General flags defining output options
69 ! -------------------------------------
70 !
71 LOGICAL :: lprint = .false. ! write some information on screen
72 LOGICAL :: lrestart = .false. ! write restart file
73 LOGICAL :: lrestart_2m = .false. ! write restart file
74 LOGICAL :: linquire = .false. ! inquiry mode
75 !
76 LOGICAL :: lwrite_coord = .false. ! write lat/lon of the target grid
77 !
78 LOGICAL :: lout_timename = .false.! change the name of output file at the end of a day
79  ! (ex: 19860502_00h00 -> 19860501_24h00)
80 !
81 LOGICAL :: ldiag_fa_nocompact = .false. ! fa compaction for diagnostic files
82 !
83  LOGICAL :: lallow_add_dim = .false. ! allow multi-dimensional output
84  ! if IO scheme can deal with- e.g. XIOS
85 !
86 !* Variables
87 ! ---------
88 !
89 INTEGER :: nscal = 0 ! Number of scalar species
90 INTEGER :: nhalo = 0
91 !
92 !* Time steps
93 ! ----------
94 !
95 REAL :: xtstep_surf = 300. ! time step of the surface
96 REAL :: xtstep_output = 1800. ! time step of the output time-series
97 INTEGER :: nb_read_forc = 0 ! subdivisions of the reading of forcings
98 !
99 !* Allow the simulation to start from a different time step than the first record of a netcdf file
100 ! ----------
101 LOGICAL :: ldelayedstart_nc = .false.
102 INTEGER,DIMENSION(4) :: ndatestop=(/0,0,0,0/) ! Year month day time (sec) to stop the simulation before the end of the netcdf forcing file
103 !
104 !* General flag for coherence between forcing file orography and surface file orography
105 ! ----------
106 !
107 LOGICAL :: lset_forc_zs =.false. ! .T. : the orography of the
108 ! ! forcing file is
109 ! ! automatically set to the same
110 ! ! value as in the surface file
111 ! ! .F. : the orography of the
112 ! ! forcing file is kept as it is
113 REAL :: xdelta_orog = 200. ! maximum difference allowed between
114 ! ! forcing and surface file
115 ! ! orographies if LSET_FORC_ZS=.F.
116 !
117 !* General flag for coherence between forcing Qair and calculated Qsat(Tair)
118 ! ----------
119 !
120 LOGICAL :: llimit_qair = .false. ! .T. : Qair always <= Qsat(Tair)
121  ! .F. : No limitation
122 !
123 !* General flag for using land use scheme
124 ! ----------
125 !
126 LOGICAL :: lland_use = .false.
127 !
128 !* General flag for using simple coherence between solar zenithal angle and radiation
129 ! ----------
130 !
131 LOGICAL :: ladapt_sw = .false.
132 LOGICAL :: linterp_sw = .false.
133 !
134 !* General flag to modify direct solar radiation due to slopes and shadows.
135 ! ----------
136 !
137 LOGICAL :: lshadows_slope = .false.
138 LOGICAL :: lshadows_other = .false.
139 !
140 LOGICAL :: lwr_vegtype = .false.
141 !
142 ! * For offline driver with openMP
143 INTEGER :: nproma ! Size of openMP packets
144 INTEGER :: ni,nj ! Domain size
145 !
146 REAL :: xio_frac = 1. ! fraction of ISIZE deduced to I/O
147 !
148  CHARACTER(LEN=4) :: yalg_mpi = "LIN " ! type of distribution algorithm for MPI
149 !
150 !-------------------------------------------------------------------------------
151 !
152 !* 1. NAMELISTS
153 ! ---------
154 !
155 NAMELIST/nam_io_offline/csurf_filetype, ctimeseries_filetype, cforcing_filetype, &
164 !
165 !-------------------------------------------------------------------------------
166 END MODULE modn_io_offline
character(len=28) cnamelist
character(len=6) csurf_filetype
character(len=6) cforcing_filetype
character(len=28) csurffile
logical ldiag_fa_nocompact
integer, dimension(4) ndatestop
character(len=4) yalg_mpi
character(len=6) ctimeseries_filetype
character(len=28) cpgdfile
character(len=28) cprepfile