SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
init_from_data_grdnn.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_grdn_n (DTGD, &
7  kdecade, hphoto, &
8  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 !!
39 !! AUTHOR
40 !! ------
41 !!
42 !! V. Masson Meteo-France
43 !!
44 !! MODIFICATION
45 !! ------------
46 !!
47 !! Original 01/2004
48 !
49 !! P Le Moigne 09/2005 AGS modifs of L. Jarlan
50 !----------------------------------------------------------------------------
51 !
52 !* 0. DECLARATION
53 ! -----------
54 !
55 
56 !
57 !
58 !
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_garden_t), INTENT(INOUT) :: dtgd
71 !
72 INTEGER, INTENT(IN) :: kdecade
73  CHARACTER(LEN=*), INTENT(IN) :: hphoto ! type of photosynthesis
74 !
75 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pveg
76 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: plai
77 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: prsmin
78 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pgamma
79 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pwrmax_cf
80 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: prgl
81 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pcv
82 REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: pdg
83 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pd_ice
84 REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: prootfrac
85 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pz0
86 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pz0_o_z0h
87 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: palbnir_veg
88 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: palbvis_veg
89 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: palbuv_veg
90 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pemis
91 !
92 REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: pvegtype
93 !
94 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pgmes
95 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pre25
96 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pbslai
97 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: plaimin
98 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: psefold
99 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pgc
100 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pdmax
101 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pf2i
102 LOGICAL, DIMENSION(:),OPTIONAL, INTENT(OUT) :: ostress
103 !
104 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: ph_tree
105 !
106 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pce_nitro
107 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pcf_nitro
108 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: pcna_nitro
109 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: palbnir_soil
110 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: palbvis_soil
111 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: palbuv_soil
112 !
113 !* 0.2 Declaration of local variables
114 ! ------------------------------
115 !
116 INTEGER :: itime
117 INTEGER :: iluout
118 REAL(KIND=JPRB) :: zhook_handle
119 !-------------------------------------------------------------------------------
120 !
121 !* 1. TIME INITIALIZATION
122 ! -------------------
123 !
124 ! data every month
125 IF (lhook) CALL dr_hook('INIT_FROM_DATA_GRDN_N',0,zhook_handle)
126 IF (dtgd%NTIME==12) THEN
127  itime = (kdecade+2)/3
128 ELSEIF (dtgd%NTIME==1) THEN
129  itime = 1
130 ENDIF
131 !
132 !* 2. SECONDARY VARIABLES
133 ! -------------------
134 !
135 !* 2.1 fields on natural surfaces only, taking into account patches/
136 ! -------------------------------
137 !
138 !
139 IF (present(ph_tree)) THEN
140  IF (SIZE(ph_tree)>0) ph_tree = dtgd%XDATA_H_TREE
141 ENDIF
142 !
143 IF (present(pvegtype)) pvegtype = dtgd%XDATA_VEGTYPE
144 !
145 ! vegetation fraction
146 ! -------------------
147 !
148 IF (present(pveg)) pveg(:) = dtgd%XDATA_VEG (:,itime)
149 !
150 ! Leaf Aera Index
151 ! ---------------
152 !
153 IF (present(plai)) plai(:) = dtgd%XDATA_LAI (:,itime)
154 !
155 ! roughness length
156 ! ----------------
157 !
158 IF (present(pz0)) pz0(:) = dtgd%XDATA_Z0 (:,itime)
159 !
160 IF (present(pz0_o_z0h)) pz0_o_z0h = dtgd%XDATA_Z0_O_Z0H
161 !
162 !
163 !emis-eco
164 !--------
165 !
166 IF (present(pemis)) pemis(:) = dtgd%XDATA_EMIS (:,itime)
167 !
168 !---------------------------------------------------------------------------------
169 !
170 !* 1/Rsmin
171 !
172 IF (present(prsmin)) THEN
173  IF (SIZE(prsmin)>0) prsmin = dtgd%XDATA_RSMIN
174 END IF
175 !
176 !* other vegetation parameters
177 !
178 IF (present(pgamma)) pgamma = dtgd%XDATA_GAMMA
179 IF (present(pwrmax_cf)) pwrmax_cf = dtgd%XDATA_WRMAX_CF
180 !
181 !
182 IF (present(prgl)) prgl = dtgd%XDATA_RGL
183 IF (present(pcv)) pcv = dtgd%XDATA_CV
184 !
185 !---------------------------------------------------------------------------------
186 !
187 !* soil layers
188 ! -----------
189 !
190 IF (present(pdg)) pdg = dtgd%XDATA_DG
191 !
192 !* cumulative root fraction
193 !
194 IF (present(prootfrac)) THEN
195  IF (SIZE(prootfrac)>0) prootfrac = dtgd%XDATA_ROOTFRAC
196 ENDIF
197 !
198 !* soil ice for runoff
199 !
200 IF (present(pd_ice)) pd_ice = dtgd%XDATA_DICE
201 !
202 !---------------------------------------------------------------------------------
203 IF (present(palbnir_veg)) palbnir_veg = dtgd%XDATA_ALBNIR_VEG
204 IF (present(palbvis_veg)) palbvis_veg = dtgd%XDATA_ALBVIS_VEG
205 IF (present(palbuv_veg)) palbuv_veg = dtgd%XDATA_ALBUV_VEG
206 
207 IF (present(palbnir_soil)) palbnir_soil(:) = dtgd%XDATA_ALBNIR_SOIL
208 IF (present(palbvis_soil)) palbvis_soil(:) = dtgd%XDATA_ALBVIS_SOIL
209 IF (present(palbuv_soil)) palbuv_soil(:) = dtgd%XDATA_ALBUV_SOIL
210 
211 IF (present(pgmes)) THEN
212  IF (SIZE(pgmes)>0) pgmes = dtgd%XDATA_GMES
213 END IF
214 
215 IF (present(pbslai)) THEN
216  IF (SIZE(pbslai)>0) pbslai = dtgd%XDATA_BSLAI
217 END IF
218 
219 IF (present(psefold)) THEN
220  IF (SIZE(psefold)>0) psefold = dtgd%XDATA_SEFOLD
221 END IF
222 
223 IF (present(pgc)) THEN
224  IF (SIZE(pgc)>0) pgc = dtgd%XDATA_GC
225 END IF
226 
227 IF (present(pdmax)) THEN
228  IF (SIZE(pdmax)>0) pdmax = dtgd%XDATA_DMAX
229 END IF
230 
231 IF (present(pre25)) THEN
232  IF (SIZE(pre25)>0) pre25 = dtgd%XDATA_RE25
233 END IF
234 
235 IF (present(plaimin)) THEN
236  IF (SIZE(plaimin)>0) plaimin = dtgd%XDATA_LAIMIN
237 END IF
238 
239 IF (present(pce_nitro)) THEN
240  IF (SIZE(pce_nitro)>0) pce_nitro = dtgd%XDATA_CE_NITRO
241 END IF
242 
243 IF (present(pcf_nitro)) THEN
244  IF (SIZE(pcf_nitro)>0) pcf_nitro = dtgd%XDATA_CF_NITRO
245 END IF
246 
247 IF (present(pcna_nitro)) THEN
248  IF (SIZE(pcna_nitro)>0) pcna_nitro = dtgd%XDATA_CNA_NITRO
249 END IF
250 
251 IF (present(pf2i)) THEN
252  IF (SIZE(pf2i)>0) pf2i = dtgd%XDATA_F2I
253 END IF
254 !
255 IF (present(ostress)) THEN
256  IF (SIZE(ostress)>0) ostress = dtgd%LDATA_STRESS
257 END IF
258 IF (lhook) CALL dr_hook('INIT_FROM_DATA_GRDN_N',1,zhook_handle)
259 !
260 !-------------------------------------------------------------------------------
261 !
262 END SUBROUTINE init_from_data_grdn_n
subroutine init_from_data_grdn_n(DTGD, KDECADE, HPHOTO, 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)