SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
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 !
60 !* Names of files
61 ! --------------
62 !
63  CHARACTER(LEN=28):: CPGDFILE ='PGD' ! name of the PGD file
64  CHARACTER(LEN=28):: CPREPFILE ='PREP' ! name of the INITIAL file
65  CHARACTER(LEN=28):: CSURFFILE ='SURFOUT' ! name of the final output CSURFEX file
66  CHARACTER(LEN=28):: CNAMELIST ='OPTIONS.nam' ! name of namelist file
67 !
68 !
69 !* General flags defining output options
70 ! -------------------------------------
71 !
72 LOGICAL :: LPRINT = .FALSE. ! write some information on screen
73 LOGICAL :: LRESTART = .FALSE. ! write restart file
74 LOGICAL :: LRESTART_2M = .FALSE. ! write restart file
75 LOGICAL :: LINQUIRE = .FALSE. ! inquiry mode
76 !
77 LOGICAL :: LWRITE_COORD = .FALSE. ! write lat/lon of the target grid
78 !
79 LOGICAL :: LOUT_TIMENAME = .FALSE.! change the name of output file at the end of a day
80  ! (ex: 19860502_00h00 -> 19860501_24h00)
81 !
82 LOGICAL :: LDIAG_FA_NOCOMPACT = .FALSE. ! fa compaction for diagnostic files
83 !
84 !* Variables
85 ! ---------
86 !
87 INTEGER :: NSCAL = 0 ! Number of scalar species
88 INTEGER :: NHALO = 2
89 !
90 !* Time steps
91 ! ----------
92 !
93 REAL :: XTSTEP_SURF = 300. ! time step of the surface
94 REAL :: XTSTEP_OUTPUT = 1800. ! time step of the output time-series
95 INTEGER :: NB_READ_FORC = 0 ! subdivisions of the reading of forcings
96 !
97 !* General flag for coherence between forcing file orography and surface file orography
98 ! ----------
99 !
100 LOGICAL :: LSET_FORC_ZS =.FALSE. ! .T. : the orography of the
101 ! ! forcing file is
102 ! ! automatically set to the same
103 ! ! value as in the surface file
104 ! ! .F. : the orography of the
105 ! ! forcing file is kept as it is
106 REAL :: XDELTA_OROG = 200. ! maximum difference allowed between
107 ! ! forcing and surface file
108 ! ! orographies if LSET_FORC_ZS=.F.
109 !
110 !* General flag for coherence between forcing Qair and calculated Qsat(Tair)
111 ! ----------
112 !
113 LOGICAL :: LLIMIT_QAIR = .FALSE. ! .T. : Qair always <= Qsat(Tair)
114  ! .F. : No limitation
115 !
116 !* General flag for using land use scheme
117 ! ----------
118 !
119 LOGICAL :: LLAND_USE = .FALSE.
120 !
121 !* General flag for using simple coherence between solar zenithal angle and radiation
122 ! ----------
123 !
124 LOGICAL :: LADAPT_SW = .FALSE.
125 !
126 !* General flag to modify direct solar radiation due to slopes and shadows.
127 ! ----------
128 !
129 LOGICAL :: LSHADOWS_SLOPE = .FALSE.
130 LOGICAL :: LSHADOWS_OTHER = .FALSE.
131 !
132 ! * For offline driver with openMP
133 INTEGER :: NPROMA ! Size of openMP packets
134 INTEGER :: NI,NJ ! Domain size
135 !
136 REAL :: XIO_FRAC = 1. ! fraction of ISIZE deduced to I/O
137 !
138  CHARACTER(LEN=4) :: YALG_MPI = "LIN " ! type of distribution algorithm for MPI
139 !
140 !-------------------------------------------------------------------------------
141 !
142 !* 1. NAMELISTS
143 ! ---------
144 !
145 namelist/nam_io_offline/csurf_filetype, ctimeseries_filetype, cforcing_filetype, &
146  cpgdfile, cprepfile, csurffile, lrestart_2m, &
147  lprint, lrestart, linquire, nscal, nhalo, &
148  xtstep_surf, xtstep_output, ldiag_fa_nocompact, &
149  lset_forc_zs, lwrite_coord, lout_timename, llimit_qair, &
150  lshadows_slope,lshadows_other, &
151  nb_read_forc, lland_use, nproma, ni, nj, xio_frac, &
152  yalg_mpi, xdelta_orog, ladapt_sw
153 !
154 !-------------------------------------------------------------------------------
155 END MODULE modn_io_offline