SURFEX v8.1
General documentation of Surfex
read_nam_pgd_isba.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 ! #########
6  SUBROUTINE read_nam_pgd_isba(HPROGRAM, KPATCH, KGROUND_LAYER, &
7  HISBA, HPEDOTF, HPHOTO, OTR_ML, HALBEDO, PRM_PATCH, &
8  HCLAY, HCLAYFILETYPE, PUNIF_CLAY, OIMP_CLAY, &
9  HSAND, HSANDFILETYPE, PUNIF_SAND, OIMP_SAND, &
10  HSOC_TOP, HSOC_SUB, HSOCFILETYPE, PUNIF_SOC_TOP, &
11  PUNIF_SOC_SUB, OIMP_SOC, HCTI, HCTIFILETYPE, OIMP_CTI, &
12  HPERM, HPERMFILETYPE, PUNIF_PERM, OIMP_PERM, OMEB, &
13  HRUNOFFB, HRUNOFFBFILETYPE, PUNIF_RUNOFFB, &
14  HWDRAIN, HWDRAINFILETYPE , PUNIF_WDRAIN, PSOILGRID, &
15  HPH, HPHFILETYPE, PUNIF_PH, HFERT, HFERTFILETYPE, &
16  PUNIF_FERT )
17 ! ##############################################################
18 !
19 !!**** *READ_NAM_PGD_ISBA* reads namelist for ISBA
20 !!
21 !! PURPOSE
22 !! -------
23 !!
24 !! METHOD
25 !! ------
26 !!
27 !
28 !! EXTERNAL
29 !! --------
30 !OTR_ML, !
31 !! IMPLICIT ARGUMENTS
32 !! ------------------
33 !!
34 !! REFERENCE
35 !! ---------
36 !!
37 !! AUTHOR
38 !! ------
39 !!
40 !! V. Masson Meteo-France
41 !!
42 !! MODIFICATION
43 !! ------------
44 !!
45 !! Original 01/2005
46 !! 2008 B. Decharme : uniform value of subgrid drainage coefficient
47 !! 12/2008 E. Martin : files of data for subgrid drainage
48 !! and subgridrunoff
49 !! 06/2009 B. Decharme : files of data for topographic index
50 !! 07/2012 B. Decharme : files of data for permafrost area and for SOC top and sub soil
51 !! 10/2014 P. Samuelsson: MEB
52 !! 10/2016 B. Decharme : bug surface/groundwater coupling
53 !----------------------------------------------------------------------------
54 !
55 !* 0. DECLARATION
56 ! -----------
57 !
58 USE modd_surf_par, ONLY : xundef, nundef
59 !
60 USE modi_get_luout
61 USE modi_open_namelist
62 USE modi_close_namelist
63 !
64 USE mode_pos_surf
65 !
66 !
67 USE yomhook ,ONLY : lhook, dr_hook
68 USE parkind1 ,ONLY : jprb
69 !
70 IMPLICIT NONE
71 !
72 !* 0.1 Declaration of arguments
73 ! ------------------------
74 !
75  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! Type of program
76 INTEGER, INTENT(OUT) :: KPATCH ! number of patches
77 INTEGER, INTENT(OUT) :: KGROUND_LAYER ! number of soil layers
78  CHARACTER(LEN=3), INTENT(OUT) :: HISBA ! ISBA option
79  CHARACTER(LEN=4), INTENT(OUT) :: HPEDOTF ! Pedo-transfert function for DIF
80  CHARACTER(LEN=3), INTENT(OUT) :: HPHOTO ! photosynthesis option
81 LOGICAL, INTENT(OUT) :: OTR_ML ! new radiative transfert
82  CHARACTER(LEN=4), INTENT(OUT) :: HALBEDO
83 REAL, INTENT(OUT) :: PRM_PATCH ! threshold to remove little fractions of patches
84  CHARACTER(LEN=28), INTENT(OUT) :: HSAND ! file name for sand fraction
85  CHARACTER(LEN=28), INTENT(OUT) :: HCLAY ! file name for clay fraction
86  CHARACTER(LEN=28), INTENT(OUT) :: HCTI ! file name for topographic index
87  CHARACTER(LEN=28), INTENT(OUT) :: HPERM ! file name for permafrost distribution
88  CHARACTER(LEN=28), INTENT(OUT) :: HRUNOFFB ! file name for runoffb parameter
89  CHARACTER(LEN=28), INTENT(OUT) :: HWDRAIN ! file name for wdrain parameter
90  CHARACTER(LEN=6), INTENT(OUT) :: HSANDFILETYPE ! sand data file type
91  CHARACTER(LEN=6), INTENT(OUT) :: HCLAYFILETYPE ! clay data file type
92  CHARACTER(LEN=6), INTENT(OUT) :: HCTIFILETYPE ! topographic index data file type
93  CHARACTER(LEN=6), INTENT(OUT) :: HPERMFILETYPE ! permafrost distribution data file type
94  CHARACTER(LEN=6), INTENT(OUT) :: HRUNOFFBFILETYPE ! subgrid runoff data file type
95  CHARACTER(LEN=6), INTENT(OUT) :: HWDRAINFILETYPE ! subgrid drainage data file type
96 REAL, INTENT(OUT) :: PUNIF_SAND ! uniform value of sand fraction
97 REAL, INTENT(OUT) :: PUNIF_CLAY ! uniform value of clay fraction
98 REAL, INTENT(OUT) :: PUNIF_RUNOFFB ! uniform value of subgrid runoff coefficient
99 REAL, INTENT(OUT) :: PUNIF_WDRAIN ! uniform value of subgrid drainage coefficient
100 REAL, INTENT(OUT) :: PUNIF_PERM ! uniform value of permafrost distribution
101 LOGICAL, INTENT(OUT) :: OIMP_SAND ! Imposed values for Sand
102 LOGICAL, INTENT(OUT) :: OIMP_CLAY ! Imposed values for Clay
103 LOGICAL, INTENT(OUT) :: OIMP_CTI ! Imposed values for topographic index statistics
104 LOGICAL, INTENT(OUT) :: OMEB ! MEB
105 LOGICAL, INTENT(OUT) :: OIMP_PERM ! Imposed maps of permafrost distribution
106  CHARACTER(LEN=28), INTENT(OUT) :: HSOC_TOP ! file name for organic carbon
107  CHARACTER(LEN=28), INTENT(OUT) :: HSOC_SUB ! file name for organic carbon
108  CHARACTER(LEN=6), INTENT(OUT) :: HSOCFILETYPE ! organic carbon data file type
109 REAL, INTENT(OUT) :: PUNIF_SOC_TOP ! uniform value of organic carbon top soil (kg/m2)
110 REAL, INTENT(OUT) :: PUNIF_SOC_SUB ! uniform value of organic carbon sub soil (kg/m2)
111 LOGICAL, INTENT(OUT) :: OIMP_SOC ! Imposed maps of organic carbon
112 REAL, DIMENSION(:), INTENT(OUT) :: PSOILGRID ! Soil layer thickness for DIF
113  CHARACTER(LEN=28), INTENT(OUT) :: HPH ! file name for pH
114  CHARACTER(LEN=28), INTENT(OUT) :: HFERT ! file name for fertilisation rate
115  CHARACTER(LEN=6), INTENT(OUT) :: HPHFILETYPE ! pH data file type
116  CHARACTER(LEN=6), INTENT(OUT) :: HFERTFILETYPE ! fertilisation data file type
117 REAL, INTENT(OUT) :: PUNIF_PH ! uniform value of pH
118 REAL, INTENT(OUT) :: PUNIF_FERT ! uniform value of fertilisation rate
119 !
120 !
121 !* 0.2 Declaration of local variables
122 ! ------------------------------
123 !
124 INTEGER :: ILUOUT ! output listing logical unit
125 INTEGER :: ILUNAM ! namelist file logical unit
126 LOGICAL :: GFOUND ! flag when namelist is present
127 !
128 !* 0.3 Declaration of namelists
129 ! ------------------------
130 !
131 INTEGER :: NPATCH ! number of patches
132 INTEGER :: NGROUND_LAYER ! number of soil layers
133  CHARACTER(LEN=3) :: CISBA ! ISBA option
134  CHARACTER(LEN=4) :: CPEDO_FUNCTION ! Pedo-transfert function for DIF
135  CHARACTER(LEN=3) :: CPHOTO ! photosynthesis option
136 LOGICAL :: LTR_ML ! new radiative transfert
137  CHARACTER(LEN=4) :: CALBEDO
138 REAL :: XRM_PATCH ! threshold to remove little fractions of patches
139  CHARACTER(LEN=28) :: YSAND ! file name for sand fraction
140  CHARACTER(LEN=28) :: YCLAY ! file name for clay fraction
141  CHARACTER(LEN=28) :: YCTI ! file name for topographic index
142  CHARACTER(LEN=28) :: YPERM ! file name for permafrost distribution
143  CHARACTER(LEN=28) :: YRUNOFFB ! file name for runoffb parameter
144  CHARACTER(LEN=28) :: YWDRAIN ! file name for wdrain parameter
145  CHARACTER(LEN=28) :: YPH ! file name for pH
146  CHARACTER(LEN=28) :: YFERT ! file name for fertilisation rate
147  CHARACTER(LEN=6) :: YSANDFILETYPE ! sand data file type
148  CHARACTER(LEN=6) :: YCLAYFILETYPE ! clay data file type
149  CHARACTER(LEN=6) :: YCTIFILETYPE ! topographic index data file type
150  CHARACTER(LEN=6) :: YPERMFILETYPE ! permafrost distribution data file type
151  CHARACTER(LEN=6) :: YRUNOFFBFILETYPE ! subgrid runoff data file type
152  CHARACTER(LEN=6) :: YWDRAINFILETYPE ! subgrid drainage data file type
153  CHARACTER(LEN=6) :: YPHFILETYPE ! pH data file type
154  CHARACTER(LEN=6) :: YFERTFILETYPE ! fertilisation data file type
155 LOGICAL :: LIMP_SAND ! Imposed maps of Sand from another PGD file
156 LOGICAL :: LIMP_CLAY ! Imposed maps of Clay from another PGD file
157 LOGICAL :: LIMP_CTI ! Imposed values for topographic index statistics from another PGD file
158 LOGICAL :: LMEB ! MEB
159 LOGICAL :: LIMP_PERM ! Imposed maps of permafrost distribution
160 REAL :: XUNIF_SAND ! uniform value of sand fraction
161 REAL :: XUNIF_CLAY ! uniform value of clay fraction
162 REAL :: XUNIF_RUNOFFB ! uniform value of subgrid runoff coefficient
163 REAL :: XUNIF_WDRAIN ! uniform value of subgrid drainage coefficient
164 REAL :: XUNIF_PERM ! uniform value of permafrost distribution
165 REAL :: XUNIF_PH ! uniform value of pH
166 REAL :: XUNIF_FERT ! uniform value of fertilisation rate
167 !
168 REAL, DIMENSION(150) :: XSOILGRID ! Soil layer thickness for DIF
169 !
170  CHARACTER(LEN=28) :: YSOC_TOP ! file name for organic carbon expressed in kg/m2
171  CHARACTER(LEN=28) :: YSOC_SUB ! file name for organic carbon expressed in kg/m2
172  CHARACTER(LEN=6) :: YSOCFILETYPE ! organic carbon data file type
173 REAL :: XUNIF_SOC_TOP ! uniform value of organic carbon (kg/m2)
174 REAL :: XUNIF_SOC_SUB ! uniform value of organic carbon (kg/m2)
175 LOGICAL :: LIMP_SOC ! Imposed maps of organic carbon
176 !
177 REAL(KIND=JPRB) :: ZHOOK_HANDLE
178 !
179 NAMELIST/nam_isba/ npatch, nground_layer, cisba, cpedo_function, cphoto, &
180  ltr_ml, calbedo, xrm_patch, yclay, yclayfiletype, xunif_clay, &
181  limp_clay, ysand, ysandfiletype, xunif_sand, limp_sand, &
182  ysoc_top, ysoc_sub, ysocfiletype, xunif_soc_top, &
183  xunif_soc_sub, limp_soc, ycti, yctifiletype, limp_cti, &
184  yperm, ypermfiletype, xunif_perm, limp_perm, lmeb, &
185  yrunoffb, yrunoffbfiletype, xunif_runoffb, &
186  ywdrain, ywdrainfiletype, xunif_wdrain, xsoilgrid, &
187  yph, yphfiletype, xunif_ph, yfert, yfertfiletype, &
188  xunif_fert
189 !
190 !-------------------------------------------------------------------------------
191 !
192 !* 1. Initializations of defaults
193 ! ---------------------------
194 !
195 !#####################
196 IF (lhook) CALL dr_hook('READ_NAM_PGD_ISBA',0,zhook_handle)
197 npatch = 1
198 nground_layer = nundef
199 CISBA = '3-L'
200 CPEDO_FUNCTION = 'CH78'
201 CPHOTO = 'NON'
202 ltr_ml = .false.
203 CALBEDO = 'DRY '
204 xsoilgrid(:) = xundef
205 xrm_patch = 0.0
206 !#####################
207 !
208 xunif_clay = 0.33
209 xunif_sand = 0.33
210 xunif_soc_top = xundef
211 xunif_soc_sub = xundef
212 xunif_runoffb = 0.5
213 xunif_wdrain = 0.
214 xunif_perm = xundef
215 xunif_ph = xundef
216 xunif_fert = xundef
217 !
218 yclay = ' '
219 ysand = ' '
220 ysoc_top = ' '
221 ysoc_sub = ' '
222 ycti = ' '
223 yperm = ' '
224 yrunoffb = ' '
225 ywdrain = ' '
226 yph = ' '
227 yfert = ' '
228 !
229 yclayfiletype = ' '
230 ysandfiletype = ' '
231 ysocfiletype = ' '
232 yctifiletype = ' '
233 ypermfiletype = ' '
234 yrunoffbfiletype = ' '
235 ywdrainfiletype = ' '
236 yphfiletype = ' '
237 yphfiletype = ' '
238 !
239 limp_clay = .false.
240 limp_sand = .false.
241 limp_soc = .false.
242 limp_cti = .false.
243 lmeb = .false.
244 limp_perm = .false.
245 !
246  CALL get_luout(hprogram,iluout)
247 !
248 !-------------------------------------------------------------------------------
249 !
250 !* 2. Reading of namelist
251 ! -------------------
252 !
253  CALL open_namelist(hprogram,ilunam)
254 !
255  CALL posnam(ilunam,'NAM_ISBA',gfound,iluout)
256 IF (gfound) READ(unit=ilunam,nml=nam_isba)
257 !
258  CALL close_namelist(hprogram,ilunam)
259 !
260 !-------------------------------------------------------------------------------
261 !
262 kpatch = npatch ! number of patches
263 kground_layer = nground_layer ! number of soil layers
264 psoilgrid = xsoilgrid ! soil layer tickness for DIF
265 hisba = cisba ! ISBA option
266 hpedotf = cpedo_function ! Pedo-transfert function for DIF
267 hphoto = cphoto ! photosynthesis option
268 otr_ml = ltr_ml ! new radiative transfert
269 halbedo = calbedo
270 prm_patch = xrm_patch ! threshol to remove little fractions of patches
271 hsand = ysand ! file name for sand fraction
272 hclay = yclay ! file name for clay fraction
273 hsoc_top = ysoc_top ! file name for organic carbon
274 hsoc_sub = ysoc_sub ! file name for organic carbon
275 hcti = ycti ! file name for topographic index
276 hperm = yperm ! file name for permafrost distribution
277 hrunoffb = yrunoffb ! file name for subgrid runoff
278 hwdrain = ywdrain ! file name for subgrid drainage
279 hsandfiletype = ysandfiletype ! sand data file type
280 hclayfiletype = yclayfiletype ! clay data file type
281 hsocfiletype = ysocfiletype ! organic carbon data file type
282 hctifiletype = yctifiletype ! topographic index data file type
283 hpermfiletype = ypermfiletype ! permafrost distribution data file type
284 hrunoffbfiletype = yrunoffbfiletype ! subgrid runoff data file type
285 hwdrainfiletype = ywdrainfiletype ! subgrid drainage data file type
286 punif_sand = xunif_sand ! uniform value of sand fraction
287 punif_clay = xunif_clay ! uniform value of clay fraction
288 punif_soc_top = xunif_soc_top ! uniform value of organic carbon top soil
289 punif_soc_sub = xunif_soc_sub ! uniform value of organic carbon sub soil
290 punif_runoffb = xunif_runoffb ! uniform value of subgrid runoff coefficient
291 punif_wdrain = xunif_wdrain ! uniform value of subgrid drainage coefficient
292 punif_perm = xunif_perm ! uniform value of permafrost distribution
293 oimp_sand = limp_sand ! Imposed values for SAND
294 oimp_clay = limp_clay ! Imposed values for CLAY
295 oimp_soc = limp_soc ! Imposed values for organic carbon
296 oimp_cti = limp_cti ! Imposed values for topographic index statistics
297 oimp_perm = limp_perm ! Imposed values for permafrost distribution
298 omeb = lmeb ! MEB
299 !
300 hph = yph ! file name for pH value
301 hfert = yfert ! file name for fertilisation data
302 hphfiletype = yphfiletype ! pH data file type
303 hfertfiletype = yfertfiletype ! Fertilisation data file type
304 punif_ph = xunif_ph ! uniform value of pH
305 punif_fert = xunif_fert ! uniform value of fertilisation rate
306 !
307 IF (lhook) CALL dr_hook('READ_NAM_PGD_ISBA',1,zhook_handle)
308 !
309 !-------------------------------------------------------------------------------
310 !
311 END SUBROUTINE read_nam_pgd_isba
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine read_nam_pgd_isba(HPROGRAM, KPATCH, KGROUND_LAYER,
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
integer, parameter nundef
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:7
logical lhook
Definition: yomhook.F90:15
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)