SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
init_veg_gardenn.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_veg_garden_n(KI, OCANOPY, HROUGH, TPSNOW, &
7  hphoto, plaimin, ph_tree, pvegtype, plai, pz0, pveg, pemis, &
8  otr_ml, pfaparc, pfapirc, plai_effc, pmus, &
9  palbnir_soil, palbvis_soil, palbuv_soil, palbnir, palbvis, palbuv, &
10  osurf_diag_albedo, ppsn, ppsng, ppsnv, ppsnv_a, &
11  pdir_alb, psca_alb, pemis_out, ptsrad )
12 !#############################################################
13 !
14 !!**** *INIT_VEG_GARDEN_n* - routine to initialize ISBA
15 !!
16 !! PURPOSE
17 !! -------
18 !!
19 !!** METHOD
20 !! ------
21 !!
22 !! EXTERNAL
23 !! --------
24 !!
25 !!
26 !! IMPLICIT ARGUMENTS
27 !! ------------------
28 !!
29 !! REFERENCE
30 !! ---------
31 !!
32 !!
33 !! AUTHOR
34 !! ------
35 !! V. Masson *Meteo France*
36 !!
37 !! MODIFICATIONS
38 !!
39 !-------------------------------------------------------------------------------
40 !
41 !* 0. DECLARATIONS
42 ! ------------
43 !
45 USE modd_data_cover_par, ONLY: nvegtype
46 !
47 USE modi_init_veg_n
48 !
49 USE yomhook ,ONLY : lhook, dr_hook
50 USE parkind1 ,ONLY : jprb
51 !
52 IMPLICIT NONE
53 !
54 !* 0.1 Declarations of arguments
55 ! -------------------------
56 !
57 INTEGER, INTENT(IN) :: ki
58 LOGICAL, INTENT(IN) :: ocanopy
59  CHARACTER(LEN=4), INTENT(INOUT) :: hrough
60 TYPE(surf_snow), INTENT(INOUT) :: tpsnow ! snow characteristics
61 !
62  CHARACTER(LEN=3), INTENT(IN) :: hphoto
63 REAL, DIMENSION(:), INTENT(IN) :: plaimin
64 REAL, DIMENSION(:), INTENT(IN) :: ph_tree
65 REAL, DIMENSION(:,:), INTENT(IN) :: pvegtype
66 REAL, DIMENSION(:), INTENT(INOUT) :: plai
67 REAL, DIMENSION(:), INTENT(INOUT) :: pz0
68 REAL, DIMENSION(:), INTENT(INOUT) :: pveg
69 REAL, DIMENSION(:), INTENT(INOUT) :: pemis
70 !
71 LOGICAL, INTENT(IN) :: otr_ml
72 REAL, DIMENSION(:), POINTER :: pfaparc
73 REAL, DIMENSION(:), POINTER :: pfapirc
74 REAL, DIMENSION(:), POINTER :: plai_effc
75 REAL, DIMENSION(:), POINTER :: pmus
76 !
77 REAL, DIMENSION(:), POINTER :: palbnir_soil
78 REAL, DIMENSION(:), POINTER :: palbvis_soil
79 REAL, DIMENSION(:), POINTER :: palbuv_soil
80 REAL, DIMENSION(:), POINTER :: palbnir
81 REAL, DIMENSION(:), POINTER :: palbvis
82 REAL, DIMENSION(:), POINTER :: palbuv
83 !
84 LOGICAL, INTENT(OUT) :: osurf_diag_albedo
85 !
86 REAL, DIMENSION(:), POINTER :: ppsn
87 REAL, DIMENSION(:), POINTER :: ppsng
88 REAL, DIMENSION(:), POINTER :: ppsnv
89 REAL, DIMENSION(:), POINTER :: ppsnv_a
90 !
91 REAL, DIMENSION(:,:), INTENT(OUT) :: pdir_alb
92 REAL, DIMENSION(:,:), INTENT(OUT) :: psca_alb
93 REAL, DIMENSION(:), INTENT(OUT) :: pemis_out
94 REAL, DIMENSION(:), INTENT(OUT) :: ptsrad
95 !
96 !* 0.2 Declarations of local variables
97 ! -------------------------------
98 !
99 REAL, DIMENSION(:,:), POINTER :: zfaparc
100 REAL, DIMENSION(:,:), POINTER :: zfapirc
101 REAL, DIMENSION(:,:), POINTER :: zlai_effc
102 REAL, DIMENSION(:,:), POINTER :: zmus
103 !
104 REAL, DIMENSION(:,:), POINTER :: zalbnir_soil
105 REAL, DIMENSION(:,:), POINTER :: zalbvis_soil
106 REAL, DIMENSION(:,:), POINTER :: zalbuv_soil
107 REAL, DIMENSION(:,:), POINTER :: zalbnir
108 REAL, DIMENSION(:,:), POINTER :: zalbvis
109 REAL, DIMENSION(:,:), POINTER :: zalbuv
110 !
111 REAL, DIMENSION(:,:), POINTER :: zpsn
112 REAL, DIMENSION(:,:), POINTER :: zpsng
113 REAL, DIMENSION(:,:), POINTER :: zpsnv
114 REAL, DIMENSION(:,:), POINTER :: zpsnv_a
115 !
116 REAL, DIMENSION(KI,NVEGTYPE,1) :: zvegtype_patch
117 !
118 REAL, DIMENSION(SIZE(PLAIMIN),1) :: zlaimin
119 REAL, DIMENSION(SIZE(PH_TREE),1) :: zh_tree
120 REAL, DIMENSION(SIZE(PLAI),1) :: zlai
121 REAL, DIMENSION(SIZE(PZ0),1) :: zz0
122 REAL, DIMENSION(SIZE(PVEG),1) :: zveg
123 REAL, DIMENSION(SIZE(PEMIS),1) :: zemis
124 !
125 LOGICAL :: lagri_to_grass
126 !
127 REAL(KIND=JPRB) :: zhook_handle
128 !
129 !-------------------------------------------------------------------------------
130 !
131 ! Initialisation for IO
132 !
133 IF (lhook) CALL dr_hook('INIT_VEG_GARDEN_n',0,zhook_handle)
134 !
135 nullify(zfaparc)
136 nullify(zfapirc)
137 nullify(zlai_effc)
138 nullify(zmus)
139 !
140 nullify(zalbnir_soil)
141 nullify(zalbvis_soil)
142 nullify(zalbuv_soil)
143 nullify(zalbnir)
144 nullify(zalbvis)
145 nullify(zalbuv)
146 !
147 nullify(zpsn)
148 nullify(zpsng)
149 nullify(zpsnv)
150 nullify(zpsnv_a)
151 !
152 zlaimin(:,1) = plaimin(:)
153 zh_tree(:,1) = ph_tree(:)
154 zlai(:,1) = plai(:)
155 zz0(:,1) = pz0(:)
156 zveg(:,1) = pveg(:)
157 zemis(:,1) = pemis(:)
158 !
159 lagri_to_grass = .false.
160 !
161 zvegtype_patch(:,:,1) = pvegtype(:,:)
162 !-------------------------------------------------------------------------------
163 !
164  CALL init_veg_n(1, ki, ocanopy, hrough, lagri_to_grass, tpsnow, &
165  hphoto, .false., .false., .false., &
166  zlaimin, zh_tree, zvegtype_patch, zlai, zz0, zveg, zemis, &
167  otr_ml, zfaparc, zfapirc, zlai_effc, zmus, &
168  zalbnir_soil, zalbvis_soil, zalbuv_soil, zalbnir, zalbvis, zalbuv, &
169  osurf_diag_albedo, zpsn, zpsng, zpsnv, zpsnv_a, &
170  pdir_alb, psca_alb, pemis, ptsrad )
171 !
172 plai(:) = zlai(:,1)
173 pz0(:) = zz0(:,1)
174 pveg(:) = zveg(:,1)
175 pemis(:) = zemis(:,1)
176 !
177 ALLOCATE(pfaparc(SIZE(zfaparc,1)))
178 IF (SIZE(zfaparc)>0) &
179 pfaparc(:)=zfaparc(:,1)
180 
181 ALLOCATE(pfapirc(SIZE(zfapirc,1)))
182 IF (SIZE(zfapirc)>0) &
183 pfapirc(:)=zfapirc(:,1)
184 
185 ALLOCATE(plai_effc(SIZE(zlai_effc,1)))
186 IF (SIZE(zlai_effc)>0) &
187 plai_effc(:)=zlai_effc(:,1)
188 
189 ALLOCATE(pmus(SIZE(zmus,1)))
190 IF (SIZE(zmus)>0) &
191 pmus(:)=zmus(:,1)
192 !
193 ALLOCATE(palbnir_soil(SIZE(zalbnir_soil,1)))
194 palbnir_soil(:)=zalbnir_soil(:,1)
195 ALLOCATE(palbvis_soil(SIZE(zalbvis_soil,1)))
196 palbvis_soil(:)=zalbvis_soil(:,1)
197 ALLOCATE(palbuv_soil(SIZE(zalbuv_soil,1)))
198 palbuv_soil(:)=zalbuv_soil(:,1)
199 ALLOCATE(palbnir(SIZE(zalbnir,1)))
200 palbnir(:)=zalbnir(:,1)
201 ALLOCATE(palbvis(SIZE(zalbvis,1)))
202 palbvis(:)=zalbvis(:,1)
203 ALLOCATE(palbuv(SIZE(zalbuv,1)))
204 palbuv(:)=zalbuv(:,1)
205 !
206 ALLOCATE(ppsn(SIZE(zpsn,1)))
207 IF (SIZE(zpsn)>0) &
208 ppsn(:)=zpsn(:,1)
209 
210 ALLOCATE(ppsng(SIZE(zpsng,1)))
211 IF (SIZE(zpsng)>0) &
212 ppsng(:)=zpsng(:,1)
213 
214 ALLOCATE(ppsnv(SIZE(zpsnv,1)))
215 IF (SIZE(zpsnv)>0) &
216 ppsnv(:)=zpsnv(:,1)
217 
218 ALLOCATE(ppsnv_a(SIZE(zpsnv_a,1)))
219 IF (SIZE(zpsnv_a)>0) &
220 ppsnv_a(:)=zpsnv_a(:,1)
221 !
222 IF (lhook) CALL dr_hook('INIT_VEG_GARDEN_n',1,zhook_handle)
223 !
224 END SUBROUTINE init_veg_garden_n
subroutine init_veg_n(KPATCH, KI, OCANOPY, HROUGH, OAGRI_TO_GRASS, TPSNOW, HPHOTO, OIMP_VEG, OIMP_Z0, OIMP_EMIS, PLAIMIN, PH_TREE, PVEGTYPE_PATCH, PLAI, PZ0, PVEG, PEMIS, OTR_ML, PFAPARC, PFAPIRC, PLAI_EFFC, PMUS, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL, PALBNIR, PALBVIS, PALBUV, OSURF_DIAG_ALBEDO, PPSN, PPSNG, PPSNV, PPSNV_A, PDIR_ALB, PSCA_ALB, PEMIS_OUT, PTSRAD)
Definition: init_vegn.F90:6
subroutine init_veg_garden_n(KI, OCANOPY, HROUGH, TPSNOW, HPHOTO, PLAIMIN, PH_TREE, PVEGTYPE, PLAI, PZ0, PVEG, PEMIS, OTR_ML, PFAPARC, PFAPIRC, PLAI_EFFC, PMUS, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL, PALBNIR, PALBVIS, PALBUV, OSURF_DIAG_ALBEDO, PPSN, PPSNG, PPSNV, PPSNV_A, PDIR_ALB, PSCA_ALB, PEMIS_OUT, PTSRAD)