SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
compute_isba_parameters.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 compute_isba_parameters (DTCO, DGU, UG, U, IM, DST, SLT, SV, &
7  hprogram,hinit,oland_use, &
8  ki,ksv,ksw, &
9  hsv,pco2,prhoa, &
10  pzenith,psw_bands,pdir_alb,psca_alb, &
11  pemis,ptsrad,ptsurf, &
12  htest )
13 !#############################################################
14 !
15 !!**** *COMPUTE_ISBA_PARAMETERS_n* - routine to initialize ISBA
16 !!
17 !! PURPOSE
18 !! -------
19 !!
20 !!** METHOD
21 !! ------
22 !!
23 !! EXTERNAL
24 !! --------
25 !!
26 !!
27 !! IMPLICIT ARGUMENTS
28 !! ------------------
29 !!
30 !! REFERENCE
31 !! ---------
32 !!
33 !!
34 !! AUTHOR
35 !! ------
36 !! V. Masson *Meteo France*
37 !!
38 !! MODIFICATIONS
39 !! -------------
40 !! Original 01/2004
41 !! Modified by P. Le Moigne (11/2004): miscellaneous diagnostics
42 !! Modified by P. Le Moigne (06/2006): seeding and irrigation
43 !! Modified by B. Decharme (2008) : SGH and Flooding scheme
44 !! Modified by B. Decharme (01/2009): optional deep soil temperature as in Arpege
45 !! Modified by R. Hamdi (01/2009): Cp and L
46 !! Modified by B. Decharme (06/2009): read topographic index statistics
47 !! Modified by P. Le Moigne (01/2009): Beljaars sso
48 !! Modified by B. Decharme (08/2009): Active Trip coupling variable if Earth System Model
49 !! A.L. Gibelin 04/09 : change BSLAI_NITRO initialisation
50 !! A.L. Gibelin 04/09 : modifications for CENTURY model
51 !! A.L. Gibelin 06/09 : soil carbon initialisation
52 !! Modified by B. Decharme (09/2012): Bug in exponential profile calculation with DIF
53 !! F. Bouttier 08/13 : apply random perturbation patterns for ensembles
54 !! B. Vincendon 03/14 : bug correction for CISBA=3L and CKSAT=EXP (TOPD coupling)
55 !! Modified by B. Decharme (04/2013): Subsurface runoff if SGH (DIF option only)
56 !! Delete CTOPREG (never used)
57 !! Delete NWG_LAYER_TOT, NWG_SIZE
58 !! water table / Surface coupling
59 !! P. Samuelsson 02/14 : MEB
60 !! B. Decharme 01/16 : Bug when vegetation veg, z0 and emis are imposed whith interactive vegetation
61 !!
62 !-------------------------------------------------------------------------------
63 !
64 !* 0. DECLARATIONS
65 ! ------------
66 !
67 USE modd_surfex_n, ONLY : isba_model_t
68 !
72 USE modd_surf_atm_n, ONLY : surf_atm_t
73 USE modd_dst_n, ONLY : dst_t
74 USE modd_slt_n, ONLY : slt_t
75 USE modd_sv_n, ONLY : sv_t
76 !
77 USE modd_sfx_oasis, ONLY : lcpl_land, lcpl_flood, lcpl_gw, lcpl_calving
78 !
79 !
80 #ifdef TOPD
81 USE modd_dummy_exp_profile,ONLY : xc_depth_ratio
82 #endif
83 !
84 USE modd_assim, ONLY : cassim_isba, lassim
85 !
86 USE modd_deepsoil, ONLY : lphysdomc, ldeepsoil, xtdeep_cli, xgammat_cli
87 USE modd_agri, ONLY : lagrip, xthreshold
88 !
89 !
90 USE modd_sgh_par, ONLY : ndimtab, xice_deph_max, xf_decay
91 !
92 USE modd_data_cover_par, ONLY : nvegtype
93 USE modd_surf_par, ONLY : xundef, nundef
94 USE modd_snow_par, ONLY : xemissn
95 !
96 USE modd_topd_par, ONLY : nunit
97 USE modd_topodyn, ONLY : nncat, nmesht
98 !
99 !
100 USE mode_random
101 !
102 USE modi_get_luout
103 USE modi_abor1_sfx
104 USE modi_init_io_surf_n
105 USE modi_allocate_physio
106 USE modi_init_isba_mixpar
107 USE modi_convert_patch_isba
108 USE modi_init_veg_pgd_n
109 USE modi_init_top
110 USE modi_exp_decay_soil_fr
111 USE modi_carbon_init
112 USE modi_soiltemp_arp_par
113 USE modi_end_io_surf_n
114 !
115 USE modi_read_surf
116 USE modi_read_isba_n
117 USE modi_init_isba_landuse
118 USE modi_read_isba_canopy_n
119 USE modi_init_veg_n
120 USE modi_averaged_albedo_emis_isba
121 USE modi_diag_isba_init_n
122 USE modi_init_surf_topd
123 USE modi_isba_soc_parameters
124 !
126 USE modi_isba_to_topd
127 USE modi_open_file
128 USE modi_close_file
129 USE modi_fix_meb_veg
130 !
131 USE yomhook ,ONLY : lhook, dr_hook
132 USE parkind1 ,ONLY : jprb
133 !
134 IMPLICIT NONE
135 !
136 !* 0.1 Declarations of arguments
137 ! -------------------------
138 !
139 !
140 TYPE(isba_model_t), INTENT(INOUT) :: im
141 TYPE(data_cover_t), INTENT(INOUT) :: dtco
142 TYPE(diag_surf_atm_t), INTENT(INOUT) :: dgu
143 TYPE(surf_atm_grid_t), INTENT(INOUT) :: ug
144 TYPE(surf_atm_t), INTENT(INOUT) :: u
145 TYPE(dst_t), INTENT(INOUT) :: dst
146 TYPE(slt_t), INTENT(INOUT) :: slt
147 TYPE(sv_t), INTENT(INOUT) :: sv
148 !
149  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling surf. schemes
150  CHARACTER(LEN=3), INTENT(IN) :: hinit ! choice of fields to initialize
151 LOGICAL, INTENT(IN) :: oland_use !
152 INTEGER, INTENT(IN) :: ki ! number of points
153 INTEGER, INTENT(IN) :: ksv ! number of scalars
154 INTEGER, INTENT(IN) :: ksw ! number of short-wave spectral bands
155  CHARACTER(LEN=6), DIMENSION(KSV), INTENT(IN) :: hsv ! name of all scalar variables
156 REAL, DIMENSION(KI), INTENT(IN) :: pco2 ! CO2 concentration (kg/m3)
157 REAL, DIMENSION(KI), INTENT(IN) :: prhoa ! air density
158 REAL, DIMENSION(KI), INTENT(IN) :: pzenith ! solar zenithal angle
159 REAL, DIMENSION(KSW), INTENT(IN) :: psw_bands ! middle wavelength of each band
160 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: pdir_alb ! direct albedo for each band
161 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: psca_alb ! diffuse albedo for each band
162 REAL, DIMENSION(KI), INTENT(OUT) :: pemis ! emissivity
163 REAL, DIMENSION(KI), INTENT(OUT) :: ptsrad ! radiative temperature
164 REAL, DIMENSION(KI), INTENT(OUT) :: ptsurf ! surface effective temperature (K)
165 !
166  CHARACTER(LEN=2), INTENT(IN) :: htest ! must be equal to 'OK'
167 !
168 !
169 !* 0.2 Declarations of local variables
170 ! -------------------------------
171 !
172 REAL, DIMENSION(U%NDIM_FULL) :: zf_param, zc_depth_ratio
173 !
174 REAL, DIMENSION(KI) :: ztsrad_nat !radiative temperature
175 REAL, DIMENSION(KI) :: ztsurf_nat !effective temperature
176 !
177 REAL, DIMENSION(KI,IM%I%NPATCH) :: zwg1 ! work array for surface water content
178 REAL, DIMENSION(KI,IM%I%NPATCH) :: ztg1 ! work array for surface temperature
179 !
180 REAL, DIMENSION(KI) :: zm, zwork
181 REAL, DIMENSION(KI,IM%I%NPATCH) :: zf, zpertbuf
182 !
183 INTEGER :: idim_full, jl
184 INTEGER :: jilu ! loop increment
185 INTEGER :: iluout ! unit of output listing file
186 INTEGER :: iresp ! return code
187 INTEGER :: idecade, idecade2 ! decade of simulation
188 INTEGER :: jpatch ! loop counter on tiles
189 INTEGER :: infompi
190 INTEGER :: isize_lmeb_patch ! Number of patches with MEB=true
191 !
192 LOGICAL :: lwork
193 !
194 REAL(KIND=JPRB) :: zhook_handle
195 !
196 !-------------------------------------------------------------------------------
197 !
198 ! Initialisation for IO
199 !
200 IF (lhook) CALL dr_hook('COMPUTE_ISBA_PARAMETERS',0,zhook_handle)
201  CALL get_luout(hprogram,iluout)
202 !
203 IF (htest/='OK') THEN
204  CALL abor1_sfx('COMPUTE_ISBA_PARAMETERS: FATAL ERROR DURING ARGUMENT TRANSFER')
205 END IF
206 !
207 zf(:,:) = xundef
208 zm(:) = xundef
209 zwork(:) = xundef
210 !
211 !* 2.3 Physiographic data fields from land cover:
212 ! -----------------------------------------
213 !
214  CALL allocate_physio(im%I, &
215  im%I%CPHOTO, im%I%CISBA, ki, nvegtype, im%I%NGROUND_LAYER, im%I%NPATCH, &
216  im%I%XVEGTYPE, im%I%XLAI, im%I%XVEG, im%I%XZ0, im%I%XEMIS, im%I%XDG, im%I%XD_ICE, &
217  im%I%XRSMIN, im%I%XGAMMA, im%I%XWRMAX_CF, im%I%XRGL, im%I%XCV, &
218  im%I%XZ0_O_Z0H, im%I%XALBNIR_VEG, im%I%XALBVIS_VEG, im%I%XALBUV_VEG, &
219  im%I%XH_TREE, im%I%XRE25, im%I%XLAIMIN, im%I%XBSLAI, im%I%XSEFOLD, &
220  im%I%XGMES, im%I%XGC, im%I%XF2I, im%I%XDMAX, im%I%LSTRESS, &
221  im%I%XCE_NITRO, im%I%XCF_NITRO, im%I%XCNA_NITRO, &
222  im%I%TSEED, im%I%TREAP, im%I%XWATSUP, im%I%XIRRIG, &
223  im%I%XROOTFRAC, im%I%NWG_LAYER, im%I%XDROOT, im%I%XDG2, &
224  im%I%XGNDLITTER,im%I%XRGLGV,im%I%XGAMMAGV,im%I%XRSMINGV, &
225  im%I%XROOTFRACGV,im%I%XWRMAX_CFGV,im%I%XLAIGV,im%I%XZ0LITTER,im%I%XH_VEG )
226 !
227 IF (im%I%TTIME%TDATE%MONTH /= nundef) THEN
228  idecade = 3 * ( im%I%TTIME%TDATE%MONTH - 1 ) + min(im%I%TTIME%TDATE%DAY-1,29) / 10 + 1
229 ELSE
230  idecade = 1
231 END IF
232 !
233 idecade2 = idecade
234 !
235  CALL init_isba_mixpar(dtco, im%DTI, im%IG, im%I, &
236  im%I%CISBA,idecade,idecade2,im%I%XCOVER,im%I%LCOVER,im%I%CPHOTO,'NAT')
237 !
238 isize_lmeb_patch=count(im%I%LMEB_PATCH(:))
239 IF (isize_lmeb_patch>0) THEN
240  CALL fix_meb_veg(im%DTI, im%IG, im%I, &
241  im%I%NPATCH)
242 ENDIF
243 !
244  CALL convert_patch_isba(dtco, im%DTI, im%I, &
245  im%I%CISBA,idecade,idecade2,im%I%XCOVER,im%I%LCOVER,im%I%CPHOTO,lagrip, &
246  im%I%LPERM,im%I%LTR_ML,'NAT',pveg=im%I%XVEG,plai=im%I%XLAI, &
247  prsmin=im%I%XRSMIN,pgamma=im%I%XGAMMA,pwrmax_cf=im%I%XWRMAX_CF, &
248  prgl=im%I%XRGL,pcv=im%I%XCV,psoilgrid=im%I%XSOILGRID, &
249  pdg=im%I%XDG,kwg_layer=im%I%NWG_LAYER,pdroot=im%I%XDROOT,pdg2=im%I%XDG2, &
250  pz0=im%I%XZ0,pz0_o_z0h=im%I%XZ0_O_Z0H, &
251  palbnir_veg=im%I%XALBNIR_VEG,palbvis_veg=im%I%XALBVIS_VEG, &
252  palbuv_veg=im%I%XALBUV_VEG,pemis_eco=im%I%XEMIS, &
253  pvegtype=im%I%XVEGTYPE,prootfrac=im%I%XROOTFRAC, &
254  pgmes=im%I%XGMES,pbslai=im%I%XBSLAI,plaimin=im%I%XLAIMIN, &
255  psefold=im%I%XSEFOLD,pgc=im%I%XGC, &
256  pdmax=im%I%XDMAX,pf2i=im%I%XF2I,ostress=im%I%LSTRESS,ph_tree=im%I%XH_TREE, &
257  pre25=im%I%XRE25,pce_nitro=im%I%XCE_NITRO,pcf_nitro=im%I%XCF_NITRO, &
258  pcna_nitro=im%I%XCNA_NITRO,pd_ice=im%I%XD_ICE,tpseed=im%I%TSEED, &
259  tpreap=im%I%TREAP,pwatsup=im%I%XWATSUP,pirrig=im%I%XIRRIG, &
260  pgndlitter=im%I%XGNDLITTER, &
261  prglgv=im%I%XRGLGV, &
262  pgammagv=im%I%XGAMMAGV,prsmingv=im%I%XRSMINGV, &
263  prootfracgv=im%I%XROOTFRACGV,pwrmax_cfgv=im%I%XWRMAX_CFGV, &
264  plaigv=im%I%XLAIGV,pz0litter=im%I%XZ0LITTER,ph_veg=im%I%XH_VEG )
265 !
266 !-------------------------------------------------------------------------------
267 !
268  CALL init_veg_pgd_n(im%CHI, dtco, dst, im%I, slt, u, &
269  hprogram, 'NATURE', iluout, ki, im%I%NPATCH, im%I%NGROUND_LAYER, &
270  im%I%TTIME%TDATE%MONTH, &
271  im%I%XVEGTYPE, im%I%XPATCH, im%I%XVEGTYPE_PATCH, im%I%NSIZE_NATURE_P, &
272  im%I%NR_NATURE_P, im%I%XRM_PATCH, &
273  ldeepsoil, lphysdomc, xtdeep_cli, xgammat_cli, im%I%XTDEEP, &
274  im%I%XGAMMAT, lagrip, xthreshold, im%AG%NIRRINUM, im%AG%LIRRIDAY, im%AG%LIRRIGATE, &
275  im%AG%XTHRESHOLDSPT, &
276  im%I%CPHOTO, hinit, im%I%LTR_ML, im%I%NNBIOMASS, pco2, prhoa, im%I%XABC, im%I%XPOI, &
277  im%I%XGMES, im%I%XGC, im%I%XDMAX, im%I%XANMAX, im%I%XFZERO, im%I%XEPSO, im%I%XGAMM, im%I%XQDGAMM, &
278  im%I%XQDGMES, im%I%XT1GMES, im%I%XT2GMES, im%I%XAMAX, im%I%XQDAMAX, im%I%XT1AMAX, im%I%XT2AMAX,&
279  im%I%XAH, im%I%XBH, im%I%XTAU_WOOD, im%I%XINCREASE, im%I%XTURNOVER, &
280  ksv, hsv, im%CHI%SVI, im%CHI%CCH_NAMES, im%CHI%CAER_NAMES, &
281  im%CHI%CDSTNAMES, im%CHI%CSLTNAMES, im%CHI%CCHEM_SURF_FILE, &
282  dst%XSFDST, dst%XSFDSTM, slt%XSFSLT, &
283  im%I%XAOSIP, im%I%XAOSIM, im%I%XAOSJP, im%I%XAOSJM, im%I%XHO2IP, im%I%XHO2IM, im%I%XHO2JP, &
284  im%I%XHO2JM, im%I%XZ0, im%I%XZ0EFFIP, im%I%XZ0EFFIM, im%I%XZ0EFFJP, im%I%XZ0EFFJM, im%I%XZ0REL,&
285  im%I%XCLAY, im%I%XSAND, im%I%CPEDOTF, &
286  im%I%XCONDSAT, im%I%XMPOTSAT, im%I%XBCOEF, im%I%XWWILT, im%I%XWFC, im%I%XWSAT, im%I%XWD0, &
287  im%I%XKANISO, im%I%CRUNOFF, &
288  im%I%XTAUICE, im%I%XCGSAT, im%I%XC1SAT, im%I%XC2REF, im%I%XC3, im%I%XC4B, im%I%XACOEF, im%I%XPCOEF, &
289  im%I%XC4REF, im%I%XPCPS, im%I%XPLVTT, im%I%XPLSTT, &
290  im%I%CSCOND, im%I%CISBA, im%I%XHCAPSOIL, im%I%XCONDDRY, im%I%XCONDSLD, im%I%CCPSURF, &
291  im%I%XDG, im%I%XDROOT, im%I%XDG2, im%I%XROOTFRAC, im%I%XRUNOFFD, im%I%XDZG, im%I%XDZDIF, &
292  im%I%XSOILWGHT, im%I%NWG_LAYER, im%I%NLAYER_HORT, im%I%NLAYER_DUN, im%I%XD_ICE, &
293  im%I%XKSAT_ICE, im%I%XALBNIR_DRY, im%I%XALBVIS_DRY, im%I%XALBUV_DRY, &
294  im%I%XALBNIR_WET, im%I%XALBVIS_WET, im%I%XALBUV_WET, im%I%XBSLAI_NITRO, &
295  im%I%XCE_NITRO, im%I%XCNA_NITRO, im%I%XCF_NITRO, im%I%XFWTD, im%I%XWTD )
296 !
297 !-------------------------------------------------------------------------------
298 !
299 !DIF option :
300 ! Anisotropy coeficient for hydraulic conductivity for topmodel drainage (Fan et al. 2006)
301 ! Soil organic matter effect and/or Exponential decay for DIF option
302 ! Must be call before INIT_TOP
303 !
304 !
305 IF(im%I%CISBA=='DIF') THEN
306  !
307  IF( im%I%CKSAT=='SGH' )THEN
308  WRITE(iluout,*)'THE KSAT EXP PROFILE WITH ISBA-DF IS NOT PHYSIC AND HAS BEEN REMOVED FOR NOW'
309  WRITE(iluout,*)'A NEW PHYSICAL APPROACH WILL BE DEVELLOPED ACCOUNTING FOR COMPACTION IN ALL '
310  WRITE(iluout,*)'HYDRODYNAMIC PARAMETERS (WSAT, PSISAT, KSAT, B) AND NOT ONLY IN KSAT '
311  CALL abor1_sfx('CKSAT=SGH is not physic with ISBA-DF and has been removed for now')
312  ENDIF
313  !
314  IF(im%I%LSOC)THEN
315  IF(.NOT.im%I%LSOCP)THEN
316  WRITE(iluout,*)'LSOC = T can be activated only if SOC data given in PGD fields'
317  CALL abor1_sfx('LSOC = T can be activated only if SOC data given in PGD fields')
318  ENDIF
319  ALLOCATE(im%I%XFRACSOC(ki,im%I%NGROUND_LAYER))
320  im%I%XFRACSOC(:,:)=0.0
321  CALL isba_soc_parameters(im%I%CRUNOFF,im%I%XPATCH,im%I%XDG,im%I%XSOC,im%I%XBCOEF,im%I%XMPOTSAT, &
322  im%I%XCONDSAT,im%I%XWSAT,im%I%XHCAPSOIL,im%I%XCONDDRY, &
323  im%I%XCONDSLD,im%I%XWFC,im%I%XWWILT,im%I%XWD0,im%I%XKANISO,im%I%XFRACSOC )
324  ELSE
325  ALLOCATE(im%I%XFRACSOC(0,0))
326  ENDIF
327 !
328 ELSE
329  ALLOCATE(im%I%XFRACSOC(0,0))
330 ENDIF
331 !
332 !Topmodel
333 !
334 !CRUNOFF used in hydro_sgh and isba_sgh_update
335 IF( im%I%CRUNOFF=='SGH ') THEN
336 !
337  ALLOCATE(im%I%XTAB_FSAT(ki,ndimtab))
338  ALLOCATE(im%I%XTAB_WTOP(ki,ndimtab))
339  ALLOCATE(im%I%XTAB_QTOP(ki,ndimtab))
340 !
341  im%I%XTAB_FSAT(:,:) = 0.0
342  im%I%XTAB_WTOP(:,:) = 0.0
343  im%I%XTAB_QTOP(:,:) = 0.0
344 !
345  IF(hinit/='PRE' .AND. .NOT.lassim)THEN
346 !
347  WHERE(im%I%XCLAY(:,1)==xundef.AND.im%I%XTI_MEAN(:)/=xundef) im%I%XTI_MEAN(:)=xundef
348 !
349  CALL init_top(im%I, &
350  im%I%CISBA, iluout, im%I%XPATCH, im%I%XRUNOFFD, &
351  im%I%XWD0, im%I%XWSAT, im%I%XTI_MIN, &
352  im%I%XTI_MAX, im%I%XTI_MEAN, im%I%XTI_STD, im%I%XTI_SKEW, &
353  im%I%XSOILWGHT, im%I%XTAB_FSAT, im%I%XTAB_WTOP, &
354  im%I%XTAB_QTOP, zm )
355 !
356 !
357  IF (im%I%CKSAT=='SGH' .AND. im%I%CISBA/='DIF') THEN
358 ! Exponential decay factor calculate using soil properties
359 ! (eq. 11, Decharme et al., J. Hydrometeor, 2006)
360  DO jilu=1,ki
361  IF (zm(jilu)/=xundef) zf(jilu,:) = (im%I%XWSAT(jilu,1)-im%I%XWD0(jilu,1))/zm(jilu)
362  ENDDO
363 !
364  ENDIF
365 !
366  ENDIF
367 !
368 ! Subsurface flow by layer (m/s)
369  IF(im%I%CISBA=='DIF') THEN
370  ALLOCATE(im%I%XTOPQS(ki,im%I%NGROUND_LAYER,im%I%NPATCH))
371  im%I%XTOPQS(:,:,:)=0.0
372  ELSE
373  ALLOCATE(im%I%XTOPQS(0,0,0))
374  ENDIF
375 !
376 ELSE
377 !
378  ALLOCATE(im%I%XTAB_FSAT(0,0))
379  ALLOCATE(im%I%XTAB_WTOP(0,0))
380  ALLOCATE(im%I%XTAB_QTOP(0,0))
381  ALLOCATE(im%I%XTOPQS(0,0,0))
382 !
383 ENDIF
384 !
385 !Exponential decay for ISBA-FR option
386 !CKSAT used in hydro_soil.F90 and soil.F90
387 IF(hinit/='PRE'.AND.im%I%CISBA/='DIF')THEN
388  !
389  IF(im%I%CKSAT=='SGH') THEN
390  !
391  WHERE(zf(:,:)==xundef.AND.im%I%XDG(:,2,:)/=xundef)
392  zf(:,:) = 4.0/im%I%XDG(:,2,:)
393  ENDWHERE
394  zf(:,:) = min(zf(:,:),xf_decay)
395  !
396  ALLOCATE(im%I%XF_PARAM (ki))
397  im%I%XF_PARAM(:) = zf(:,1)
398  !
399  DO jpatch=1,im%I%NPATCH
400  IF (im%I%NSIZE_NATURE_P(jpatch) == 0 ) cycle
401  CALL exp_decay_soil_fr(im%I%CISBA, zf(:,jpatch),im%I%XC1SAT(:,jpatch),im%I%XC2REF(:,jpatch), &
402  im%I%XDG(:,:,jpatch),im%I%XD_ICE(:,jpatch),im%I%XC4REF(:,jpatch), &
403  im%I%XC3(:,:,jpatch),im%I%XCONDSAT(:,:,jpatch),im%I%XKSAT_ICE(:,jpatch))
404  ENDDO
405  !
406  ELSEIF ( im%I%CKSAT=='EXP' .AND. im%I%CISBA=='3-L' ) THEN
407  !
408  ALLOCATE(im%I%XF_PARAM (ki))
409  im%I%XF_PARAM(:) = xundef
410  !
411  IF (hprogram/='AROME ' .AND. hprogram/='MESONH ') THEN
412  !
413  CALL open_file('ASCII ',nunit,hfile='carte_f_dc.txt',hform='FORMATTED',haction='READ ')
414  DO jilu=1,u%NDIM_FULL
415  READ(nunit,*) zf_param(jilu), zc_depth_ratio(jilu)
416  ENDDO
417  CALL close_file('ASCII ',nunit)
418  CALL read_and_send_mpi(zf_param,im%I%XF_PARAM,u%NR_NATURE)
419 #ifdef TOPD
420 IF (.NOT.ALLOCATED(xc_depth_ratio)) ALLOCATE(xc_depth_ratio(ki))
421  xc_depth_ratio(:) = xundef
422  CALL read_and_send_mpi(zc_depth_ratio,xc_depth_ratio,u%NR_NATURE)
423 #endif
424  !
425  ELSE
426  WRITE(iluout,*) "COMPUTE_ISBA_PARAMETERS: WITH CKSAT=EXP, IN NOT OFFLINE "//&
427  "MODE, TOPMODEL FILE FOR F_PARAM IS NOT READ "
428  ENDIF
429  !
430  DO jpatch=1,im%I%NPATCH
431  WHERE (im%I%XF_PARAM(:)==xundef.AND.im%I%XDG(:,2,jpatch)/=xundef)
432  zf(:,jpatch) = 4.0/im%I%XDG(:,2,jpatch)
433  ELSEWHERE
434  zf(:,jpatch) = im%I%XF_PARAM(:)
435  ENDWHERE
436  ENDDO
437  zf(:,:) = min(zf(:,:),xf_decay)
438  !
439  DO jpatch=1,im%I%NPATCH
440  CALL exp_decay_soil_fr(im%I%CISBA, zf(:,jpatch),im%I%XC1SAT(:,jpatch),im%I%XC2REF(:,jpatch), &
441  im%I%XDG(:,:,jpatch),im%I%XD_ICE(:,jpatch),im%I%XC4REF(:,jpatch), &
442  im%I%XC3(:,:,jpatch),im%I%XCONDSAT(:,:,jpatch), &
443  im%I%XKSAT_ICE(:,jpatch))
444  ENDDO
445  !
446  ENDIF
447  !
448 ENDIF
449 !
450 !
451 !* 2.10 Soil carbon
452 ! -----------
453 !
454 IF (hinit == 'ALL' .AND. im%I%CRESPSL=='CNT' .AND. im%I%CPHOTO == 'NCB') THEN
455  CALL carbon_init(im%I%NNBIOMASS, im%I%NNLITTER, im%I%NNLITTLEVS, im%I%NNSOILCARB)
456 ENDIF
457 !
458 !Rainfall spatial distribution
459 !CRAIN used in HYDRO_VEG and HYDRO_SGH and ISBA_SGH_UPDATE
460 IF(im%I%CRAIN=='SGH')THEN
461  ALLOCATE(im%I%XMUF(ki))
462  im%I%XMUF(:)=0.0
463 ELSE
464  ALLOCATE(im%I%XMUF(0))
465 ENDIF
466 !
467 ALLOCATE(im%I%XFSAT(ki))
468 im%I%XFSAT(:) = 0.0
469 !
470 !-------------------------------------------------------------------------------
471 !
472 !* 6.2 Initialize of SFX - RRM coupling:
473 ! ---------------------------------
474 !
475 ! * Check some key :
476 !
477 IF(lcpl_calving)THEN
478  IF(.NOT.im%I%LGLACIER)THEN
479  CALL abor1_sfx('COMPUTE_ISBA_PARAMETERS: LGLACIER MUST BE ACTIVATED IF LCPL_CALVING')
480  ENDIF
481 ENDIF
482 !
483 ! * Initialize required coupling fields :
484 !
485 im%I%LCPL_RRM = .false.
486 im%I%LFLOOD = .false.
487 im%I%LWTD = .false.
488 !
489 IF(lcpl_land)THEN
490 !
491  im%I%LCPL_RRM = .true.
492 !
493  ALLOCATE(im%I%XCPL_DRAIN (ki))
494  ALLOCATE(im%I%XCPL_RUNOFF(ki))
495  im%I%XCPL_DRAIN (:) = 0.0
496  im%I%XCPL_RUNOFF(:) = 0.0
497 !
498  IF(im%I%LGLACIER)THEN
499  ALLOCATE(im%I%XCPL_ICEFLUX(ki))
500  im%I%XCPL_ICEFLUX(:) = 0.0
501  ELSE
502  ALLOCATE(im%I%XCPL_ICEFLUX(0))
503  ENDIF
504 !
505  IF(lcpl_gw)THEN
506  im%I%LWTD = .true.
507  ALLOCATE(im%I%XCPL_RECHARGE(ki))
508  im%I%XCPL_RECHARGE(:) = 0.0
509  ELSE
510  ALLOCATE(im%I%XCPL_RECHARGE(0))
511  ENDIF
512 !
513  IF(lcpl_flood)THEN
514  im%I%LFLOOD = .true.
515  ALLOCATE(im%I%XCPL_EFLOOD(ki))
516  ALLOCATE(im%I%XCPL_PFLOOD(ki))
517  ALLOCATE(im%I%XCPL_IFLOOD(ki))
518  im%I%XCPL_EFLOOD(:)= 0.0
519  im%I%XCPL_PFLOOD(:)= 0.0
520  im%I%XCPL_IFLOOD(:)= 0.0
521  ELSE
522  ALLOCATE(im%I%XCPL_EFLOOD(0))
523  ALLOCATE(im%I%XCPL_PFLOOD(0))
524  ALLOCATE(im%I%XCPL_IFLOOD(0))
525  ENDIF
526 !
527 ELSE
528 !
529  ALLOCATE(im%I%XCPL_RUNOFF (0))
530  ALLOCATE(im%I%XCPL_DRAIN (0))
531  ALLOCATE(im%I%XCPL_ICEFLUX (0))
532  ALLOCATE(im%I%XCPL_RECHARGE(0))
533  ALLOCATE(im%I%XCPL_EFLOOD (0))
534  ALLOCATE(im%I%XCPL_PFLOOD (0))
535  ALLOCATE(im%I%XCPL_IFLOOD (0))
536 !
537 ENDIF
538 !
539 IF(im%I%LWTD.AND..NOT.im%I%LGW)THEN
540  WRITE(iluout,*)'COMPUTE_ISBA_PARAMETERS: Groundwater map is required by SFX - Groundwater coupling '
541  WRITE(iluout,*)'COMPUTE_ISBA_PARAMETERS: Please check your pgd namelist where this map must be '
542  WRITE(iluout,*)'COMPUTE_ISBA_PARAMETERS: specified (YGW and YGWFILETYPE, or XUNIF_GW, or LIMP_GW) '
543  CALL abor1_sfx('COMPUTE_ISBA_PARAMETERS: Groundwater map is required by SFX - Groundwater coupling')
544 ENDIF
545 !
546 ! * Initialize flood scheme :
547 !
548 IF(im%I%LFLOOD)THEN
549  ALLOCATE(im%I%XFFLOOD (ki))
550  ALLOCATE(im%I%XPIFLOOD(ki))
551  ALLOCATE(im%I%XFF (ki,im%I%NPATCH))
552  ALLOCATE(im%I%XFFG (ki,im%I%NPATCH))
553  ALLOCATE(im%I%XFFV (ki,im%I%NPATCH))
554  ALLOCATE(im%I%XFFROZEN(ki,im%I%NPATCH))
555  ALLOCATE(im%I%XALBF (ki,im%I%NPATCH))
556  ALLOCATE(im%I%XEMISF (ki,im%I%NPATCH))
557  im%I%XFFLOOD = 0.0
558  im%I%XPIFLOOD = 0.0
559  im%I%XFF = 0.0
560  im%I%XFFG = 0.0
561  im%I%XFFV = 0.0
562  im%I%XFFROZEN = 0.0
563  im%I%XALBF = 0.0
564  im%I%XEMISF = 0.0
565 ELSE
566  ALLOCATE(im%I%XFFLOOD (0))
567  ALLOCATE(im%I%XPIFLOOD (0))
568  ALLOCATE(im%I%XFF (0,0))
569  ALLOCATE(im%I%XFFG (0,0))
570  ALLOCATE(im%I%XFFV (0,0))
571  ALLOCATE(im%I%XFFROZEN(0,0))
572  ALLOCATE(im%I%XALBF (0,0))
573  ALLOCATE(im%I%XEMISF (0,0))
574 ENDIF
575 !
576 !-------------------------------------------------------------------------------
577 !
578 !* 7. ISBA time-varying deep force-restore temperature initialization
579 ! ---------------------------------------------------------------
580 !
581  CALL soiltemp_arp_par(im%I, &
582  hprogram,im%I%LTEMP_ARP,im%I%NTEMPLAYER_ARP)
583 !
584 !-------------------------------------------------------------------------------
585 !
586 !* 9. Prints of cover parameters in a tex file
587 ! ----------------------------------------
588 !
589 !* if only physiographic fields are to be initialized, stop here.
590 !
591 IF (hinit/='ALL' .AND. hinit/='SOD') THEN
592  IF (lhook) CALL dr_hook('COMPUTE_ISBA_PARAMETERS',1,zhook_handle)
593  RETURN
594 END IF
595 !
596 !-------------------------------------------------------------------------------
597 !
598 IF (cassim_isba=="ENKF ") THEN
599  !
600  CALL init_random_seed()
601  !
602 ENDIF
603 !
604  CALL init_io_surf_n(dtco, dgu, u, &
605  hprogram,'NATURE','ISBA ','READ ')
606 !
607 !* 10. Prognostic and semi-prognostic fields
608 ! -------------------------------------
609 !
610  CALL read_isba_n(dtco, im%I, u, &
611  hprogram)
612 !
613 IF (hinit/='ALL') THEN
614  CALL end_io_surf_n(hprogram)
615  IF (lhook) CALL dr_hook('COMPUTE_ISBA_PARAMETERS',1,zhook_handle)
616  RETURN
617 END IF
618 !
619 IF (hinit=='PRE' .AND. im%I%TSNOW%SCHEME.NE.'3-L' .AND. im%I%TSNOW%SCHEME.NE.'CRO' .AND. im%I%CISBA=='DIF') THEN
620  CALL abor1_sfx("INIT_ISBAN: WITH CISBA = DIF, CSNOW MUST BE 3-L OR CRO")
621 ENDIF
622 !
623 !-------------------------------------------------------------------------------
624 !
625 !* 11. Extrapolation of the prognostic and semi-prognostic fields
626 ! LAND USE case
627 ! -------------------------------------
628 !
629 IF (oland_use) THEN
630  CALL init_isba_landuse(dtco, im%IG, im%I, ug, u, &
631  hprogram)
632 END IF
633 !
634 !-------------------------------------------------------------------------------
635 !
636 !* 12. Canopy air fields:
637 ! -----------------
638 !
639  CALL read_isba_canopy_n(dtco, im%ICP, im%I, u, &
640  hprogram)
641 !
642 !-------------------------------------------------------------------------------
643 !
644 !* 13. initialize radiative and physical properties
645 ! --------------------------------------------
646 !
647 ALLOCATE(im%I%XDIR_ALB_WITH_SNOW(ki,ksw,im%I%NPATCH))
648 ALLOCATE(im%I%XSCA_ALB_WITH_SNOW(ki,ksw,im%I%NPATCH))
649 im%I%XDIR_ALB_WITH_SNOW = 0.0
650 im%I%XSCA_ALB_WITH_SNOW = 0.0
651 !
652  CALL init_veg_n(im%I%NPATCH, ki, im%I%LCANOPY, im%I%CROUGH, im%I%LAGRI_TO_GRASS, im%I%TSNOW, &
653  im%I%CPHOTO, im%DTI%LIMP_VEG, im%DTI%LIMP_Z0, im%DTI%LIMP_EMIS, &
654  im%I%XLAIMIN, im%I%XH_TREE, im%I%XVEGTYPE_PATCH, im%I%XLAI, &
655  im%I%XZ0, im%I%XVEG, im%I%XEMIS, &
656  im%I%LTR_ML, im%I%XFAPARC, im%I%XFAPIRC, im%I%XLAI_EFFC, im%I%XMUS, &
657  im%I%XALBNIR_SOIL, im%I%XALBVIS_SOIL, im%I%XALBUV_SOIL, im%I%XALBNIR, &
658  im%I%XALBVIS, im%I%XALBUV, &
659  im%DGMI%LSURF_DIAG_ALBEDO, im%I%XPSN, im%I%XPSNG, im%I%XPSNV, im%I%XPSNV_A, &
660  pdir_alb, psca_alb, pemis, ptsrad )
661 !
662 DO jpatch=1,im%I%NPATCH
663  zwg1(:,jpatch) = im%I%XWG(:,1,jpatch)
664  ztg1(:,jpatch) = im%I%XTG(:,1,jpatch)
665 END DO
666 !
667  CALL convert_patch_isba(dtco, im%DTI, im%I, &
668  im%I%CISBA,idecade,idecade2,im%I%XCOVER,im%I%LCOVER,&
669  im%I%CPHOTO,lagrip,im%I%LPERM,im%I%LTR_ML,'NAT', &
670  pwg1 = zwg1, &
671  palbnir_soil=im%I%XALBNIR_SOIL, &
672  palbvis_soil=im%I%XALBVIS_SOIL, &
673  palbuv_soil=im%I%XALBUV_SOIL )
674 !
675 ! Load randomly perturbed fields. Perturbation ratios are saved in case fields are reset later.
676 IF(im%I%LPERTSURF) THEN
677 !
678  CALL read_surf(&
679  hprogram,'VEG',im%I%XVEG(:,:),iresp)
680  ALLOCATE(im%I%XPERTVEG(ki))
681  im%I%XPERTVEG(:)=im%I%XVEG(:,1)
682 !
683  CALL read_surf(&
684  hprogram,'LAI',im%I%XLAI(:,:),iresp)
685  ALLOCATE(im%I%XPERTLAI(ki))
686  im%I%XPERTLAI(:)=im%I%XLAI(:,1)
687 !
688  CALL read_surf(&
689  hprogram,'CV',im%I%XCV(:,:),iresp)
690  ALLOCATE(im%I%XPERTCV(ki))
691  im%I%XPERTCV(:)=im%I%XCV(:,1)
692 !
693  CALL read_surf(&
694  hprogram,'PERTALB',zpertbuf(:,:),iresp)
695  ALLOCATE(im%I%XPERTALB(ki))
696  im%I%XPERTALB(:)=zpertbuf(:,1)
697  WHERE(im%I%XALBNIR_VEG(:,1)/=xundef) im%I%XALBNIR_VEG(:,1) = im%I%XALBNIR_VEG(:,1) *( 1.+ im%I%XPERTALB(:) )
698  WHERE(im%I%XALBVIS_VEG(:,1)/=xundef) im%I%XALBVIS_VEG(:,1) = im%I%XALBVIS_VEG(:,1) *( 1.+ im%I%XPERTALB(:) )
699  WHERE(im%I%XALBUV_VEG(:,1)/=xundef) im%I%XALBUV_VEG(:,1) = im%I%XALBUV_VEG(:,1) *( 1.+ im%I%XPERTALB(:) )
700  WHERE(im%I%XALBNIR_SOIL(:,1)/=xundef) im%I%XALBNIR_SOIL(:,1)= im%I%XALBNIR_SOIL(:,1)*( 1.+ im%I%XPERTALB(:) )
701  WHERE(im%I%XALBVIS_SOIL(:,1)/=xundef) im%I%XALBVIS_SOIL(:,1)= im%I%XALBVIS_SOIL(:,1)*( 1.+ im%I%XPERTALB(:) )
702  WHERE(im%I%XALBUV_SOIL(:,1)/=xundef) im%I%XALBUV_SOIL(:,1) = im%I%XALBUV_SOIL(:,1) *( 1.+ im%I%XPERTALB(:) )
703 !
704  CALL read_surf(&
705  hprogram,'PERTZ0LAND',zpertbuf(:,:),iresp)
706  ALLOCATE(im%I%XPERTZ0(ki))
707  im%I%XPERTZ0(:)=zpertbuf(:,1)
708  WHERE(im%I%XZ0(:,1)/=xundef) im%I%XZ0(:,1) =im%I%XZ0(:,1) *( 1.+ im%I%XPERTZ0(:) )
709  WHERE(im%I%XZ0EFFIP(:,1)/=xundef) im%I%XZ0EFFIP(:,1)=im%I%XZ0EFFIP(:,1)*( 1.+ im%I%XPERTZ0(:) )
710  WHERE(im%I%XZ0EFFIM(:,1)/=xundef) im%I%XZ0EFFIM(:,1)=im%I%XZ0EFFIM(:,1)*( 1.+ im%I%XPERTZ0(:) )
711  WHERE(im%I%XZ0EFFJP(:,1)/=xundef) im%I%XZ0EFFJP(:,1)=im%I%XZ0EFFJP(:,1)*( 1.+ im%I%XPERTZ0(:) )
712  WHERE(im%I%XZ0EFFJM(:,1)/=xundef) im%I%XZ0EFFJM(:,1)=im%I%XZ0EFFJM(:,1)*( 1.+ im%I%XPERTZ0(:) )
713 !
714 ENDIF
715 !
716 !-------------------------------------------------------------------------------
717 !
718 !* 14. Output radiative fields
719 ! -----------------------
720 !
721 ALLOCATE(im%I%XEMIS_NAT (ki))
722 im%I%XEMIS_NAT (:) = xundef
723 !
724  CALL averaged_albedo_emis_isba(im%I, &
725  im%I%LFLOOD, im%I%CALBEDO, pzenith, &
726  im%I%XVEG,im%I%XZ0,im%I%XLAI, &
727  im%I%LMEB_PATCH,im%I%XGNDLITTER,im%I%XZ0LITTER,im%I%XLAIGV, &
728  im%I%XH_VEG, im%I%XTV, &
729  ztg1, &
730  im%I%XPATCH, &
731  psw_bands, &
732  im%I%XALBNIR_VEG,im%I%XALBVIS_VEG,im%I%XALBUV_VEG, &
733  im%I%XALBNIR_SOIL,im%I%XALBVIS_SOIL,im%I%XALBUV_SOIL, &
734  im%I%XEMIS, &
735  im%I%TSNOW, &
736  im%I%XALBNIR,im%I%XALBVIS,im%I%XALBUV, &
737  pdir_alb, psca_alb, &
738  im%I%XEMIS_NAT,ztsrad_nat,ztsurf_nat )
739 !
740 pemis = im%I%XEMIS_NAT
741 ptsrad = ztsrad_nat
742 ptsurf = ztsurf_nat
743 !
744 !-------------------------------------------------------------------------------
745 !
746 !* 15. ISBA diagnostics initialization
747 ! -------------------------------
748 !
749 IF(im%I%NPATCH<=1) im%DGI%LPATCH_BUDGET=.false.
750 !
751  CALL diag_isba_init_n(&
752  im%CHI, im%DGEI, im%DGI, im%DGMI, dgu, im%GB, im%I, &
753  hprogram,ki,ksw)
754 !
755 !-------------------------------------------------------------------------------
756 !
757  CALL init_surf_topd(im%DGEI, im%I, ug, u, &
758  hprogram,u%NDIM_FULL)
759 !
760 !-------------------------------------------------------------------------------
761 !
762 ! End of IO
763 !
764  CALL end_io_surf_n(hprogram)
765 IF (lhook) CALL dr_hook('COMPUTE_ISBA_PARAMETERS',1,zhook_handle)
766 !
767 END SUBROUTINE compute_isba_parameters
768 
769 
subroutine init_io_surf_n(DTCO, DGU, U, HPROGRAM, HMASK, HSCHEME, HACTION)
subroutine isba_soc_parameters(HRUNOFF, PPATCH, PDG, PSOC, PBCOEF, PMPOTSAT, PCONDSAT, PWSAT, PHCAPSOIL, PCONDDRY, PCONDSLD, PWFC, PWWILT, PWD0, PANISO, PFRACSOC)
subroutine init_top(I, HISBA, KLUOUT, PPATCH, PRUNOFFD, PWD0, PWSAT, PTI_MIN, PTI_MAX, PTI_MEAN, PTI_STD, PTI_SKEW, PSOILWGHT, PTAB_FSAT, PTAB_WTOP, PTAB_QTOP, PM)
Definition: init_top.F90:6
subroutine init_isba_mixpar(DTCO, DTI, IG, I, HISBA, KDECADE, KDECADE2, PCOVER, OCOVER, HPHOTO, HSFTYPE)
subroutine init_isba_landuse(DTCO, IG, I, UG, U, HPROGRAM)
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_surf_topd(DGEI, I, UG, U, HPROGRAM, KI)
subroutine soiltemp_arp_par(I, HPROGRAM, OTEMP_ARP, KTEMPLAYER_ARP)
subroutine read_isba_n(DTCO, I, U, HPROGRAM)
Definition: read_isban.F90:6
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:6
subroutine fix_meb_veg(DTI, IG, I, KPATCH)
Definition: fix_meb_veg.F90:6
subroutine carbon_init(KNBIOMASS, KNLITTER, KNLITTLEVS, KNSOILCARB)
Definition: carbon_init.F90:6
subroutine close_file(HPROGRAM, KUNIT)
Definition: close_file.F90:6
subroutine end_io_surf_n(HPROGRAM)
Definition: end_io_surfn.F90:6
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:6
subroutine init_veg_pgd_n(CHI, DTCO, DST, I, SLT, U, HPROGRAM, HSURF, KLUOUT, KI, KPATCH, KGROUND_LAYER, KMONTH, PVEGTYPE, PPATCH, PVEGTYPE_PATCH, KSIZE_NATURE_P, KR_NATURE_P, PRM_PATCH, ODEEPSOIL, OPHYSDOMC, PTDEEP_CLI, PGAMMAT_CLI, PTDEEP, PGAMMAT, OAGRIP, PTHRESHOLD, KIRRINUM, OIRRIDAY, OIRRIGATE, PTHRESHOLDSPT, HPHOTO, HINIT, OTR_ML, KNBIOMASS, PCO2, PRHOA, PABC, PPOI, PGMES, PGC, PDMAX, PANMAX, PFZERO, PEPSO, PGAMM, PQDGAMM, PQDGMES, PT1GMES, PT2GMES, PAMAX, PQDAMAX, PT1AMAX, PT2AMAX, PAH, PBH, PTAU_WOOD, PINCREASE, PTURNOVER, KSV, HSV, YSV, HCH_NAMES, HAER_NAMES, HDSTNAMES, HSLTNAMES, HCHEM_SURF_FILE, PSFDST, PSFDSTM, PSFSLT, PAOSIP, PAOSIM, PAOSJP, PAOSJM, PHO2IP, PHO2IM, PHO2JP, PHO2JM, PZ0, PZ0EFFIP, PZ0EFFIM, PZ0EFFJP, PZ0EFFJM, PZ0REL, PCLAY, PSAND, HPEDOTF, PCONDSAT, PMPOTSAT, PBCOEF, PWWILT, PWFC, PWSAT, PWD0, PKANISO, HRUNOFF, PTAUICE, PCGSAT, PC1SAT, PC2REF, PC3, PC4B, PACOEF, PPCOEF, PC4REF, PPCPS, PPLVTT, PPLSTT, HSCOND, HISBA, PHCAPSOIL, PCONDDRY, PCONDSLD, HCPSURF, PDG, PDROOT, PDG2, PROOTFRAC, PRUNOFFD, PDZG, PDZDIF, PSOILWGHT, KWG_LAYER, KLAYER_HORT, KLAYER_DUN, PD_ICE, PKSAT_ICE, PALBNIR_DRY, PALBVIS_DRY, PALBUV_DRY, PALBNIR_WET, PALBVIS_WET, PALBUV_WET, PBSLAI_NITRO, PCE_NITRO, PCNA_NITRO, PCF_NITRO, PFWTD, PWTD)
subroutine read_isba_canopy_n(DTCO, ICP, I, U, HPROGRAM)
subroutine exp_decay_soil_fr(HISBA, PF, PC1SAT, PC2REF, PD_G, PD_ICE, PC4REF, PC3, PCONDSAT, PKSAT_ICE)
subroutine diag_isba_init_n(CHI, DGEI, DGI, DGMI, DGU, GB, I, HPROGRAM, KLU, KSW)
subroutine init_random_seed()
subroutine averaged_albedo_emis_isba(I, OFLOOD, HALBEDO, PZENITH, PVEG, PZ0, PLAI, OMEB_PATCH, PGNDLITTER, PZ0LITTER, PLAIGV, PH_VEG, PTV, PTG1, PPATCH, PSW_BANDS, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL, PEMIS_ECO, TPSNOW, PALBNIR_ECO, PALBVIS_ECO, PALBUV_ECO, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, PDIR_SW, PSCA_SW)
subroutine compute_isba_parameters(DTCO, DGU, UG, U, IM, DST, SLT, SV, HPROGRAM, HINIT, OLAND_USE, KI, KSV, KSW, HSV, PCO2, PRHOA, PZENITH, PSW_BANDS, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, HTEST)
subroutine convert_patch_isba(DTCO, DTI, I, HISBA, KDECADE, KDECADE2, PCOVER, OCOVER, HPHOTO, OAGRIP, OPERM, OTR_ML, HSFTYPE, PVEG, PLAI, PRSMIN, PGAMMA, PWRMAX_CF, PRGL, PCV, PSOILGRID, PDG, KWG_LAYER, PDROOT, PDG2, PZ0, PZ0_O_Z0H, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PEMIS_ECO, PVEGTYPE, PROOTFRAC, PGMES, PBSLAI, PLAIMIN, PSEFOLD, PGC, PDMAX, PF2I, OSTRESS, PH_TREE, PRE25, PCE_NITRO, PCF_NITRO, PCNA_NITRO, PD_ICE, PWG1, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL, TPSEED, TPREAP, PWATSUP, PIRRIG, PGNDLITTER, PRGLGV, PGAMMAGV, PRSMINGV, PROOTFRACGV, PWRMAX_CFGV, PLAIGV, PZ0LITTER, PH_VEG)
subroutine open_file(HPROGRAM, KUNIT, HFILE, HFORM, HACTION, HACCESS, KRECL)
Definition: open_file.F90:6
subroutine allocate_physio(I, HPHOTO, HISBA, KLU, KVEGTYPE, KGROUND_LAYER, KPATCH, PVEGTYPE, PLAI, PVEG, PZ0, PEMIS, PDG, PD_ICE, PRSMIN, PGAMMA, PWRMAX_CF, PRGL, PCV, PZ0_O_Z0H, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PH_TREE, PRE25, PLAIMIN, PBSLAI, PSEFOLD, PGMES, PGC, PF2I, PDMAX, OSTRESS, PCE_NITRO, PCF_NITRO, PCNA_NITRO, PTSEED, PTREAP, PWATSUP, PIRRIG, PROOTFRAC, KWG_LAYER, PDROOT, PDG2, PGNDLITTER, PRGLGV, PGAMMAGV, PRSMINGV, PROOTFRACGV, PWRMAX_CFGV, PLAIGV, PZ0LITTER, PH_VEG)