SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
init_from_data_greenroofn.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 init_from_data_greenroof_n (DTGR, TGRO, &
7  kdecade, hphoto, &
8  pom_gr, psand_gr, pclay_gr, pveg, &
9  plai,prsmin,pgamma,pwrmax_cf, &
10  prgl,pcv,pdg,pd_ice,pz0,pz0_o_z0h, &
11  palbnir_veg,palbvis_veg,palbuv_veg, &
12  pemis, &
13  pvegtype,prootfrac, &
14  pgmes,pbslai,plaimin,psefold,pgc, &
15  pdmax, pf2i, ostress, &
16  ph_tree, pre25, &
17  pce_nitro, pcf_nitro, pcna_nitro, &
18  palbnir_soil,palbvis_soil,palbuv_soil )
19 ! ##############################################################
20 !
21 !!**** *CONVERT_COVER* convert surface cover classes into secondary
22 !! physiographic variables for ISBA
23 !!
24 !! PURPOSE
25 !! -------
26 !!
27 !! METHOD
28 !! ------
29 !!
30 !! EXTERNAL
31 !! --------
32 !!
33 !! IMPLICIT ARGUMENTS
34 !! ------------------
35 !!
36 !! REFERENCE
37 !! ---------
38 !! Based on init_from_data_grdnn
39 !!
40 !! AUTHOR
41 !! ------
42 !!
43 !! C. de Munck & A. Lemonsu Meteo-France
44 !!
45 !! MODIFICATION
46 !! ------------
47 !!
48 !! Original 08/2011
49 !----------------------------------------------------------------------------
50 !
51 !* 0. DECLARATION
52 ! -----------
53 !
54 
55 !
56 !
57 !
60 !
61 USE yomhook ,ONLY : lhook, dr_hook
62 USE parkind1 ,ONLY : jprb
63 !
64 IMPLICIT NONE
65 !
66 !* 0.1 Declaration of arguments
67 ! ------------------------
68 !
69 !
70 TYPE(data_teb_greenroof_t), INTENT(INOUT) :: dtgr
71 TYPE(teb_greenroof_options_t), INTENT(INOUT) :: tgro
72 !
73 INTEGER, INTENT(IN) :: kdecade
74  CHARACTER(LEN=*), INTENT(IN) :: hphoto ! type of photosynthesis
75 !
76 REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: psand_gr
77 REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: pclay_gr
78 REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: pom_gr
79 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pveg
80 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: plai
81 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: prsmin
82 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pgamma
83 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pwrmax_cf
84 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: prgl
85 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pcv
86 REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: pdg
87 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pd_ice
88 REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: prootfrac
89 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pz0
90 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pz0_o_z0h
91 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: palbnir_veg
92 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: palbvis_veg
93 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: palbuv_veg
94 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pemis
95 !
96 REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: pvegtype
97 !
98 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pgmes
99 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pre25
100 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pbslai
101 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: plaimin
102 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: psefold
103 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pgc
104 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pdmax
105 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pf2i
106 LOGICAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: ostress
107 !
108 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: ph_tree
109 !
110 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pce_nitro
111 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pcf_nitro
112 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pcna_nitro
113 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: palbnir_soil
114 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: palbvis_soil
115 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: palbuv_soil
116 !
117 !* 0.2 Declaration of local variables
118 ! ------------------------------
119 !
120 INTEGER :: itime
121 INTEGER :: iluout
122 REAL(KIND=JPRB) :: zhook_handle
123 !
124 !-------------------------------------------------------------------------------
125 !
126 !* 1. TIME INITIALIZATION
127 ! -------------------
128 !
129 ! data every month
130 IF (lhook) CALL dr_hook('INIT_FROM_DATA_GREENROOF_N',0,zhook_handle)
131 IF (tgro%NTIME_GR==12) THEN
132  itime = (kdecade+2)/3
133 ELSE
134  itime = 1
135 END IF
136 !
137 !* 2. SECONDARY VARIABLES
138 ! -------------------
139 !
140 !* 2.0 fields for greenroofs
141 ! ---------------------
142 !
143 IF (present(pom_gr)) pom_gr(:,:) = dtgr%XPAR_OM_GR(:,:)
144 !
145 IF (present(psand_gr)) psand_gr(:,:) = dtgr%XPAR_SAND_GR(:,:)
146 !
147 IF (present(pclay_gr)) pclay_gr(:,:) = dtgr%XPAR_CLAY_GR(:,:)
148 !
149 !
150 !* 2.1 fields on natural surfaces only, taking into account patches/
151 ! -------------------------------
152 !
153 IF (present(pvegtype)) pvegtype = dtgr%XPAR_VEGTYPE
154 !
155 ! vegetation fraction
156 ! -------------------
157 !
158 IF (present(pveg)) pveg(:) = dtgr%XPAR_VEG (:,itime)
159 !
160 ! Leaf Area Index
161 ! ---------------
162 !
163 IF (present(plai)) plai(:) = dtgr%XPAR_LAI (:,itime)
164 !
165 ! roughness length
166 ! ----------------
167 !
168 IF (present(pz0)) pz0(:) = dtgr%XPAR_Z0 (:,itime)
169 !
170 IF (present(pz0_o_z0h)) pz0_o_z0h = dtgr%XPAR_Z0_O_Z0H
171 !
172 !
173 !emis-eco
174 !--------
175 !
176 IF (present(pemis)) pemis(:) = dtgr%XPAR_EMIS (:,itime)
177 !
178 !---------------------------------------------------------------------------------
179 !
180 !* 1/Rsmin
181 !
182 IF (present(prsmin)) THEN
183  IF (SIZE(prsmin)>0) prsmin = dtgr%XPAR_RSMIN
184 END IF
185 !
186 !* other vegetation parameters
187 !
188 IF (present(pgamma)) pgamma = dtgr%XPAR_GAMMA
189 IF (present(pwrmax_cf)) pwrmax_cf = dtgr%XPAR_WRMAX_CF
190 !
191 !
192 IF (present(prgl)) prgl = dtgr%XPAR_RGL
193 IF (present(pcv)) pcv = dtgr%XPAR_CV
194 !
195 !---------------------------------------------------------------------------------
196 !
197 !* soil layers
198 ! -----------
199 !
200 IF (present(pdg)) pdg = dtgr%XPAR_DG
201 !
202 !* cumulative root fraction
203 !
204 IF (present(prootfrac)) prootfrac = dtgr%XPAR_ROOTFRAC
205 !
206 !* soil ice for runoff
207 !
208 IF (present(pd_ice)) pd_ice = dtgr%XPAR_DICE
209 !
210 !---------------------------------------------------------------------------------
211 IF (present(palbnir_veg)) palbnir_veg = dtgr%XPAR_ALBNIR_VEG
212 IF (present(palbvis_veg)) palbvis_veg = dtgr%XPAR_ALBVIS_VEG
213 IF (present(palbuv_veg)) palbuv_veg = dtgr%XPAR_ALBUV_VEG
214 
215 IF (present(palbnir_soil)) palbnir_soil(:) = dtgr%XPAR_ALBNIR_SOIL
216 IF (present(palbvis_soil)) palbvis_soil(:) = dtgr%XPAR_ALBVIS_SOIL
217 IF (present(palbuv_soil)) palbuv_soil(:) = dtgr%XPAR_ALBUV_SOIL
218 
219 IF (present(pgmes)) THEN
220  IF (SIZE(pgmes)>0) pgmes = dtgr%XPAR_GMES
221 END IF
222 
223 IF (present(pbslai)) THEN
224  IF (SIZE(pbslai)>0) pbslai = dtgr%XPAR_BSLAI
225 END IF
226 
227 IF (present(psefold)) THEN
228  IF (SIZE(psefold)>0) psefold = dtgr%XPAR_SEFOLD
229 END IF
230 
231 IF (present(pgc)) THEN
232  IF (SIZE(pgc)>0) pgc = dtgr%XPAR_GC
233 END IF
234 
235 IF (present(pdmax)) THEN
236  IF (SIZE(pdmax)>0) pdmax = dtgr%XPAR_DMAX
237 END IF
238 
239 IF (present(pre25)) THEN
240  IF (SIZE(pre25)>0) pre25 = dtgr%XPAR_RE25
241 END IF
242 
243 IF (present(plaimin)) THEN
244  IF (SIZE(plaimin)>0) plaimin = dtgr%XPAR_LAIMIN
245 END IF
246 
247 IF (present(pce_nitro)) THEN
248  IF (SIZE(pce_nitro)>0) pce_nitro = dtgr%XPAR_CE_NITRO
249 END IF
250 
251 IF (present(pcf_nitro)) THEN
252  IF (SIZE(pcf_nitro)>0) pcf_nitro = dtgr%XPAR_CF_NITRO
253 END IF
254 
255 IF (present(pcna_nitro)) THEN
256  IF (SIZE(pcna_nitro)>0) pcna_nitro = dtgr%XPAR_CNA_NITRO
257 END IF
258 
259 IF (present(pf2i)) THEN
260  IF (SIZE(pf2i)>0) pf2i = dtgr%XPAR_F2I
261 END IF
262 !
263 IF (present(ostress)) THEN
264  IF (SIZE(ostress)>0) ostress = dtgr%LDATA_STRESS
265 END IF
266 IF (lhook) CALL dr_hook('INIT_FROM_DATA_GREENROOF_N',1,zhook_handle)
267 !
268 !-------------------------------------------------------------------------------
269 !
270 END SUBROUTINE init_from_data_greenroof_n
subroutine init_from_data_greenroof_n(DTGR, TGRO, KDECADE, HPHOTO, POM_GR, PSAND_GR, PCLAY_GR, PVEG, PLAI, PRSMIN, PGAMMA, PWRMAX_CF, PRGL, PCV, PDG, PD_ICE, PZ0, PZ0_O_Z0H, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PEMIS, PVEGTYPE, PROOTFRAC, PGMES, PBSLAI, PLAIMIN, PSEFOLD, PGC, PDMAX, PF2I, OSTRESS, PH_TREE, PRE25, PCE_NITRO, PCF_NITRO, PCNA_NITRO, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL)