6 SUBROUTINE isba_meb(TPTIME, OMEB, OMEB_LITTER, OMEB_GNDRES, PGNDLITTER, &
7 oforc_measure, oglacier, &
8 otr_ml, oagri_to_grass, oshade, ostressdef, &
9 osnowdrift, osnowdrift_sublim, osnow_abs_zenith, oirrigate, oirriday, &
10 hsnowmetamo, hsnowrad, hphoto, &
11 hisba, hcpsurf, hrain, hsnow_isba, hsnowres, himplicit_wind, &
12 kwg_layer, ptstep, pvegtype, plat, plon, &
13 pthreshold, pwatsup, pirrig, pirrig_flux, &
14 psoilhcapz, psoilcondz, pfrozen1, &
15 pps, pzenith, psca_sw, psw_rad, pvmod, prr, psr, prhoa, pta, pqa, &
17 pexns, pexna, ppet_a_coef, ppet_b_coef, ppeq_a_coef, ppeq_b_coef, &
18 ppew_a_coef, ppew_b_coef, &
19 pzref, puref, pch, pcd, pcdn, pri, presa, phug, phv, phu, pqs, &
21 pz0_mebv, pz0h_mebv, pz0eff_mebv, &
22 pz0_mebn, pz0h_mebn, pz0eff_mebn, &
23 pz0_with_snow, pz0h_with_snow, pz0eff, &
24 ptv, ptl, ptg, ptc, pqc, pwr, pwrl, pwrli, pwrvn, pwg, pwgi, &
25 pwrmax_cf, prgl, prsmin, pgamma, prs, &
26 palbnir_tveg, palbvis_tveg,palbnir_tsoil, palbvis_tsoil, pfalb, &
27 psnowalb, psnowalbvis, psnowalbnir, psnowalbfir, &
28 pabc, pfaparc, pfapirc, pmus, plai_effc, &
29 piacan, pfapar, pfapir, pfapar_bs, pfapir_bs, &
30 pah, pbh, pf2i, pdmax, ppoi, pcsp, pfzero, pepso, &
31 pgamm, pqdgamm, pgmes, pgc, pqdgmes, pt1gmes, pt2gmes, &
32 pamax, pqdamax, pt1amax, pt2amax, &
33 pan, panday, panfm, pgpp, panf, presp_biomass_inst, &
34 pff, ppsn, ppalphan, plai, pf2, &
36 psnowgran1, psnowgran2, psnowhist,psnowage, &
37 psnowrho, psnowswe, psnowheat, psnowtemp, psnowdz, psnowliq, pfemis, &
38 pswnet_n, pswnet_v, pswnet_g, pswnet_ns, palbt, pswdown_gn, &
39 plw_rad, plwnet_n, plwnet_v, plwnet_g, plwdown_gn, &
40 plev_v_c, ples_v_c, ph_v_c, ph_g_c, pletr_v_c, pler_v_c, ph_c_a, &
41 ph_n_c, ple_v_c, ple_g_c, ple_c_a, ple_n_c, pevap_n_c, pevap_g_c, &
42 psr_gn, pmeltcv, pfrzcv, pmeltadv, &
43 ple_flood, plei_flood, &
44 ple, ph, prn, plei, plegi, pleg,plelitteri,plelitter,pdriplit,prrlit, &
45 plev, pler, pletr, pevap, ples, plesl, &
46 psubl, prestore, pgrndflux, pflsn_cor, pustar, &
47 phpsnow, psnowhmass, prnsnow, phsnow, pgfluxsnow, &
48 pustarsnow, psrsfc, prrsfc, pemisnow, pcdsnow, pchsnow, &
49 pemist, pts_rad, phu_agg, pac_agg, &
50 pdelheatv_sfc, pdelheatg_sfc, pdelheatg, &
51 pdelheatn, pdelheatn_sfc, prestoren, &
52 pd_g, pdzg, pcps, plvtt, plstt, pct, pcv, pcg, pffrozen, &
53 ptdeep_a, ptdeep_b, pdeep_flux, pmuf, pdrip, prrveg, &
54 prisnow, psnow_thrufal, psnow_thrufal_soil, pevapcor, psubvcor,plitcor,&
55 psnowsfch, psndrift, pqsnow )
113 USE modi_wet_leaves_frac
115 USE modi_snow_leaves_frac_meb
116 USE modi_preps_for_meb_ebud_rad
117 USE modi_isba_lwnet_meb
119 USE modi_e_budget_meb
120 USE modi_isba_fluxes_meb
121 USE modi_snow_load_meb
124 USE modi_radiative_transfert
128 USE yomhook
,ONLY : lhook, dr_hook
129 USE parkind1
,ONLY : jprb
142 LOGICAL,
INTENT(IN) :: omeb
144 LOGICAL,
INTENT(IN) :: omeb_litter
145 LOGICAL,
INTENT(IN) :: omeb_gndres
146 LOGICAL,
INTENT(IN) :: oforc_measure
147 LOGICAL,
INTENT(IN) :: oglacier
151 LOGICAL,
INTENT(IN) :: osnowdrift
152 LOGICAL,
INTENT(IN) :: osnowdrift_sublim
153 LOGICAL,
INTENT(IN) :: osnow_abs_zenith
155 LOGICAL,
INTENT(IN) :: otr_ml
156 LOGICAL,
INTENT(IN) :: oagri_to_grass
157 LOGICAL,
DIMENSION(:),
INTENT(IN) :: oirrigate
158 LOGICAL,
DIMENSION(:),
INTENT(IN) :: ostressdef
160 LOGICAL,
DIMENSION(:),
INTENT(INOUT) :: oshade
161 LOGICAL,
DIMENSION(:),
INTENT(INOUT) :: oirriday
163 CHARACTER(LEN=*),
INTENT(IN) :: hisba
167 CHARACTER(LEN=*),
INTENT(IN) :: hcpsurf
170 CHARACTER(LEN=*),
INTENT(IN) :: hrain
173 CHARACTER(LEN=*),
INTENT(IN) :: hsnow_isba
177 CHARACTER(LEN=*),
INTENT(IN) :: hsnowres
180 CHARACTER(LEN=*),
INTENT(IN) :: himplicit_wind
183 CHARACTER(LEN=*),
INTENT(IN) :: hsnowmetamo
188 CHARACTER(LEN=*),
INTENT(IN) :: hsnowrad
194 CHARACTER(LEN=*),
INTENT(IN) :: hphoto
201 INTEGER,
DIMENSION(:),
INTENT(IN) :: kwg_layer
203 REAL,
INTENT(IN) :: ptstep
204 REAL,
DIMENSION(:,:),
INTENT(IN) :: pvegtype
205 REAL,
DIMENSION(:),
INTENT(IN) :: plat
206 REAL,
DIMENSION(:),
INTENT(IN) :: plon
207 REAL,
DIMENSION(:),
INTENT(IN) :: pps
208 REAL,
DIMENSION(:),
INTENT(IN) :: pzenith
209 REAL,
DIMENSION(:),
INTENT(IN) :: psw_rad
210 REAL,
DIMENSION(:),
INTENT(IN) :: plw_rad
211 REAL,
DIMENSION(:),
INTENT(IN) :: psca_sw
212 REAL,
DIMENSION(:),
INTENT(IN) :: pexna
213 REAL,
DIMENSION(:),
INTENT(IN) :: pexns
214 REAL,
DIMENSION(:),
INTENT(IN) :: prr
215 REAL,
DIMENSION(:),
INTENT(IN) :: psr
216 REAL,
DIMENSION(:),
INTENT(IN) :: prhoa
217 REAL,
DIMENSION(:),
INTENT(IN) :: pvmod
219 REAL,
DIMENSION(:),
INTENT(IN) :: pta
220 REAL,
DIMENSION(:),
INTENT(IN) :: pqa
221 REAL,
DIMENSION(:),
INTENT(IN) :: ph_veg
222 REAL,
DIMENSION(:),
INTENT(IN) :: pzref
225 REAL,
DIMENSION(:),
INTENT(IN) :: puref
229 REAL,
DIMENSION(:),
INTENT(IN) :: pdircoszw
231 REAL,
DIMENSION(:,:),
INTENT(IN) :: psoilhcapz
233 REAL,
DIMENSION(:,:),
INTENT(IN) :: psoilcondz
235 REAL,
DIMENSION(:),
INTENT(IN) :: pfrozen1
236 REAL,
DIMENSION(:),
INTENT(IN) :: plai
237 REAL,
DIMENSION(:),
INTENT(IN) :: pgndlitter
238 REAL,
DIMENSION(:),
INTENT(IN) :: prgl
240 REAL,
DIMENSION(:),
INTENT(IN) :: prsmin
241 REAL,
DIMENSION(:),
INTENT(IN) :: pgamma
243 REAL,
DIMENSION(:),
INTENT(IN) :: pff
244 REAL,
DIMENSION(:),
INTENT(IN) :: ppsn
246 REAL,
DIMENSION(:),
INTENT(IN) :: ppalphan
247 REAL,
DIMENSION(:),
INTENT(IN) :: pfalb
248 REAL,
DIMENSION(:),
INTENT(IN) :: palbnir_tveg
250 REAL,
DIMENSION(:),
INTENT(IN) :: palbvis_tveg
252 REAL,
DIMENSION(:),
INTENT(IN) :: palbnir_tsoil
254 REAL,
DIMENSION(:),
INTENT(IN) :: palbvis_tsoil
255 REAL,
DIMENSION(:),
INTENT(IN) :: pwrmax_cf
256 REAL,
DIMENSION(:),
INTENT(IN) :: pfemis
257 REAL,
DIMENSION(:),
INTENT(IN) :: pf2
258 REAL,
DIMENSION(:,:),
INTENT(IN) :: pwfc
259 REAL,
DIMENSION(:,:),
INTENT(IN) :: pwsat
260 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pwg, pwgi
262 REAL,
DIMENSION(:),
INTENT(IN) :: pz0g_without_snow
263 REAL,
DIMENSION(:),
INTENT(IN) :: pz0_mebv
264 REAL,
DIMENSION(:),
INTENT(IN) :: pz0h_mebv
265 REAL,
DIMENSION(:),
INTENT(IN) :: pz0eff_mebv
266 REAL,
DIMENSION(:),
INTENT(IN) :: pz0_mebn
267 REAL,
DIMENSION(:),
INTENT(IN) :: pz0h_mebn
268 REAL,
DIMENSION(:),
INTENT(IN) :: pz0eff_mebn
269 REAL,
DIMENSION(:),
INTENT(IN) :: pz0_with_snow
271 REAL,
DIMENSION(:),
INTENT(IN) :: pz0h_with_snow
273 REAL,
DIMENSION(:),
INTENT(IN) :: pz0eff
274 REAL,
DIMENSION(:,:),
INTENT(IN) :: pd_g
275 REAL,
DIMENSION(:,:),
INTENT(IN) :: pdzg
276 REAL,
DIMENSION(:),
INTENT(IN) :: pct
277 REAL,
DIMENSION(:),
INTENT(IN) :: pcv
278 REAL,
DIMENSION(:),
INTENT(IN) :: pcg
279 REAL,
DIMENSION(:),
INTENT(IN) :: pffrozen
280 REAL,
DIMENSION(:),
INTENT(IN) :: pmuf
284 REAL,
DIMENSION(:),
INTENT(IN) :: ppet_a_coef, ppet_b_coef, &
285 ppeq_a_coef, ppeq_b_coef, &
286 ppew_a_coef, ppew_b_coef
293 REAL,
DIMENSION(:),
INTENT(IN) :: ptdeep_a, ptdeep_b
306 REAL,
DIMENSION(:),
INTENT(IN) :: pthreshold, pwatsup, pirrig
314 REAL,
DIMENSION(:),
INTENT(IN) :: pgc
315 REAL,
DIMENSION(:),
INTENT(IN) :: pf2i
317 REAL,
DIMENSION(:),
INTENT(IN) :: pdmax
319 REAL,
DIMENSION(:),
INTENT(IN) :: pah,pbh
322 REAL,
DIMENSION(:),
INTENT(IN) :: pcsp
324 REAL,
DIMENSION(:),
INTENT(IN) :: pgmes
326 REAL,
DIMENSION(:),
INTENT(IN) :: ppoi
328 REAL,
DIMENSION(:),
INTENT(IN) :: pfzero
330 REAL,
DIMENSION(:),
INTENT(IN) :: pepso
332 REAL,
DIMENSION(:),
INTENT(IN) :: pgamm
333 REAL,
DIMENSION(:),
INTENT(IN) :: pqdgamm
335 REAL,
DIMENSION(:),
INTENT(IN) :: pqdgmes
336 REAL,
DIMENSION(:),
INTENT(IN) :: pt1gmes
340 REAL,
DIMENSION(:),
INTENT(IN) :: pt2gmes
344 REAL,
DIMENSION(:),
INTENT(IN) :: pamax
345 REAL,
DIMENSION(:),
INTENT(IN) :: pqdamax
346 REAL,
DIMENSION(:),
INTENT(IN) :: pt1amax
350 REAL,
DIMENSION(:),
INTENT(IN) :: pt2amax
357 REAL,
DIMENSION(:),
INTENT(INOUT) :: psnowalb
358 REAL,
DIMENSION(:),
INTENT(INOUT) :: psnowalbvis
359 REAL,
DIMENSION(:),
INTENT(INOUT) :: psnowalbnir
360 REAL,
DIMENSION(:),
INTENT(INOUT) :: psnowalbfir
361 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: psnowswe
363 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: psnowheat
364 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: psnowrho
365 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: psnowgran1
366 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: psnowgran2
367 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: psnowhist
368 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: psnowage
372 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: ptg
373 REAL,
DIMENSION(:),
INTENT(INOUT) :: ptv
374 REAL,
DIMENSION(:),
INTENT(INOUT) :: ptl
375 REAL,
DIMENSION(:),
INTENT(INOUT) :: ptc
376 REAL,
DIMENSION(:),
INTENT(INOUT) :: pqc
377 REAL,
DIMENSION(:),
INTENT(INOUT) :: pwr
379 REAL,
DIMENSION(:),
INTENT(INOUT) :: pwrl
380 REAL,
DIMENSION(:),
INTENT(INOUT) :: pwrli
381 REAL,
DIMENSION(:),
INTENT(INOUT) :: pwrvn
383 REAL,
DIMENSION(:),
INTENT(INOUT) :: presa
384 REAL,
DIMENSION(:),
INTENT(INOUT) :: ple
385 REAL,
DIMENSION(:),
INTENT(INOUT) :: ple_flood
386 REAL,
DIMENSION(:),
INTENT(INOUT) :: plei_flood
388 REAL,
DIMENSION(:),
INTENT(INOUT) :: pabc
391 REAL,
DIMENSION(:),
INTENT(INOUT) :: pfaparc
392 REAL,
DIMENSION(:),
INTENT(INOUT) :: pfapirc
393 REAL,
DIMENSION(:),
INTENT(INOUT) :: pmus
394 REAL,
DIMENSION(:),
INTENT(INOUT) :: plai_effc
398 REAL,
DIMENSION(:),
INTENT(INOUT) :: panfm
399 REAL,
DIMENSION(:),
INTENT(INOUT) :: pan
400 REAL,
DIMENSION(:),
INTENT(INOUT) :: panday
404 REAL,
DIMENSION(:,:),
INTENT(OUT) :: piacan
405 REAL,
DIMENSION(:),
INTENT(OUT) :: pfapar
406 REAL,
DIMENSION(:),
INTENT(OUT) :: pfapir
407 REAL,
DIMENSION(:),
INTENT(OUT) :: pfapar_bs
408 REAL,
DIMENSION(:),
INTENT(OUT) :: pfapir_bs
410 REAL,
DIMENSION(:,:),
INTENT(OUT) :: psnowtemp
411 REAL,
DIMENSION(:,:),
INTENT(OUT) :: psnowdz
412 REAL,
DIMENSION(:),
INTENT(OUT) :: pemisnow
413 REAL,
DIMENSION(:),
INTENT(OUT) :: pswnet_n
414 REAL,
DIMENSION(:),
INTENT(OUT) :: pswnet_ns
416 REAL,
DIMENSION(:),
INTENT(OUT) :: pswnet_v
418 REAL,
DIMENSION(:),
INTENT(OUT) :: pswnet_g
419 REAL,
DIMENSION(:),
INTENT(OUT) :: palbt
420 REAL,
DIMENSION(:),
INTENT(OUT) :: pswdown_gn
422 REAL,
DIMENSION(:),
INTENT(OUT) :: plwnet_v
423 REAL,
DIMENSION(:),
INTENT(OUT) :: plwnet_g
424 REAL,
DIMENSION(:),
INTENT(OUT) :: plwnet_n
425 REAL,
DIMENSION(:),
INTENT(OUT) :: plwdown_gn
427 REAL,
DIMENSION(:),
INTENT(OUT) :: prs
428 REAL,
DIMENSION(:),
INTENT(OUT) :: pch
429 REAL,
DIMENSION(:),
INTENT(OUT) :: pcd
430 REAL,
DIMENSION(:),
INTENT(OUT) :: pcdn
431 REAL,
DIMENSION(:),
INTENT(OUT) :: pri
432 REAL,
DIMENSION(:),
INTENT(OUT) :: phv
433 REAL,
DIMENSION(:),
INTENT(OUT) :: phu
434 REAL,
DIMENSION(:),
INTENT(OUT) :: phug
435 REAL,
DIMENSION(:),
INTENT(OUT) :: pqs
436 REAL,
DIMENSION(:),
INTENT(OUT) :: prn
437 REAL,
DIMENSION(:),
INTENT(OUT) :: ph
438 REAL,
DIMENSION(:),
INTENT(OUT) :: plei
439 REAL,
DIMENSION(:),
INTENT(OUT) :: plegi
440 REAL,
DIMENSION(:),
INTENT(OUT) :: pleg
441 REAL,
DIMENSION(:),
INTENT(OUT) :: plelitteri
442 REAL,
DIMENSION(:),
INTENT(OUT) :: plelitter
443 REAL,
DIMENSION(:),
INTENT(OUT) :: pdriplit
444 REAL,
DIMENSION(:),
INTENT(OUT) :: prrlit
446 REAL,
DIMENSION(:),
INTENT(OUT) :: plev
448 REAL,
DIMENSION(:),
INTENT(OUT) :: pler
451 REAL,
DIMENSION(:),
INTENT(OUT) :: pletr
453 REAL,
DIMENSION(:),
INTENT(OUT) :: pevap
454 REAL,
DIMENSION(:),
INTENT(OUT) :: ples
455 REAL,
DIMENSION(:),
INTENT(OUT) :: plesl
456 REAL,
DIMENSION(:),
INTENT(OUT) :: psubl
457 REAL,
DIMENSION(:),
INTENT(OUT) :: prestore
459 REAL,
DIMENSION(:),
INTENT(OUT) :: pustar
460 REAL,
DIMENSION(:),
INTENT(OUT) :: pmeltadv
461 REAL,
DIMENSION(:),
INTENT(OUT) :: pcps
462 REAL,
DIMENSION(:),
INTENT(OUT) :: plvtt
463 REAL,
DIMENSION(:),
INTENT(OUT) :: plstt
464 REAL,
DIMENSION(:),
INTENT(OUT) :: plev_v_c
465 REAL,
DIMENSION(:),
INTENT(OUT) :: ples_v_c
466 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_v_c
467 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_g_c
468 REAL,
DIMENSION(:),
INTENT(OUT) :: pletr_v_c
469 REAL,
DIMENSION(:),
INTENT(OUT) :: pler_v_c
470 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_c_a
473 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_n_c
476 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_v_c
477 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_g_c
478 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_c_a
481 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_n_c
484 REAL,
DIMENSION(:),
INTENT(OUT) :: pevap_n_c
485 REAL,
DIMENSION(:),
INTENT(OUT) :: pevap_g_c
486 REAL,
DIMENSION(:),
INTENT(OUT) :: psr_gn
487 REAL,
DIMENSION(:),
INTENT(OUT) :: pmeltcv
488 REAL,
DIMENSION(:),
INTENT(OUT) :: pfrzcv
489 REAL,
DIMENSION(:),
INTENT(OUT) :: pgrndflux
490 REAL,
DIMENSION(:),
INTENT(OUT) :: pflsn_cor
491 REAL,
DIMENSION(:),
INTENT(OUT) :: phpsnow
492 REAL,
DIMENSION(:),
INTENT(OUT) :: psnowhmass
493 REAL,
DIMENSION(:),
INTENT(OUT) :: prnsnow
494 REAL,
DIMENSION(:),
INTENT(OUT) :: phsnow
495 REAL,
DIMENSION(:),
INTENT(OUT) :: pgfluxsnow
496 REAL,
DIMENSION(:),
INTENT(OUT) :: pustarsnow
497 REAL,
DIMENSION(:),
INTENT(OUT) :: psrsfc
499 REAL,
DIMENSION(:),
INTENT(OUT) :: prrsfc
501 REAL,
DIMENSION(:),
INTENT(OUT) :: pcdsnow
502 REAL,
DIMENSION(:),
INTENT(OUT) :: pchsnow
503 REAL,
DIMENSION(:),
INTENT(OUT) :: pemist
504 REAL,
DIMENSION(:),
INTENT(OUT) :: pts_rad
506 REAL,
DIMENSION(:,:),
INTENT(OUT) :: psnowliq
507 REAL,
DIMENSION(:),
INTENT(OUT) :: pac_agg
509 REAL,
DIMENSION(:),
INTENT(OUT) :: phu_agg
511 REAL,
DIMENSION(:),
INTENT(OUT) :: pdelheatv_sfc
512 REAL,
DIMENSION(:),
INTENT(OUT) :: pdelheatg_sfc
513 REAL,
DIMENSION(:),
INTENT(OUT) :: pdelheatg
514 REAL,
DIMENSION(:),
INTENT(OUT) :: prestoren
517 REAL,
DIMENSION(:),
INTENT(OUT) :: pdelheatn
518 REAL,
DIMENSION(:),
INTENT(OUT) :: pdelheatn_sfc
519 REAL,
DIMENSION(:),
INTENT(OUT) :: pdeep_flux
520 REAL,
DIMENSION(:),
INTENT(OUT) :: pdrip
521 REAL,
DIMENSION(:),
INTENT(OUT) :: prrveg
522 REAL,
DIMENSION(:),
INTENT(OUT) :: prisnow
523 REAL,
DIMENSION(:),
INTENT(OUT) :: psnow_thrufal
525 REAL,
DIMENSION(:),
INTENT(OUT) :: psnow_thrufal_soil
529 REAL,
DIMENSION(:),
INTENT(OUT) :: pevapcor
533 REAL,
DIMENSION(:),
INTENT(OUT) :: psubvcor
535 REAL,
DIMENSION(:),
INTENT(OUT) :: plitcor
537 REAL,
DIMENSION(:),
INTENT(OUT) :: psnowsfch
539 REAL,
DIMENSION(:),
INTENT(OUT) :: psndrift
540 REAL,
DIMENSION(:),
INTENT(OUT) :: pqsnow
541 REAL,
DIMENSION(:),
INTENT(OUT) :: pirrig_flux
545 REAL,
DIMENSION(:),
INTENT(OUT) :: panf
546 REAL,
DIMENSION(:),
INTENT(OUT) :: pgpp
547 REAL,
DIMENSION(:,:),
INTENT(OUT) :: presp_biomass_inst
553 REAL,
PARAMETER :: ztstep_eb = 300.
555 INTEGER :: jtsplit_eb
559 REAL,
DIMENSION(SIZE(PPS)) :: zwork,zwork2,zwork3,zwork4
560 REAL,
DIMENSION(SIZE(PSNOWSWE,1),SIZE(PSNOWSWE,2)) :: zsnowcond
561 REAL,
DIMENSION(SIZE(PSNOWSWE,1),SIZE(PSNOWSWE,2)) :: zsnowhcap
562 REAL,
DIMENSION(SIZE(PSNOWSWE,1),SIZE(PSNOWSWE,2)) :: zsnowrho
563 REAL,
DIMENSION(SIZE(PSNOWSWE,1),SIZE(PSNOWSWE,2)) :: zsnowage
564 REAL,
DIMENSION(SIZE(PSNOWSWE,1),SIZE(PSNOWSWE,2)) :: zsnowswe
565 REAL,
DIMENSION(SIZE(PSNOWSWE,1),SIZE(PSNOWSWE,2)) :: ztau_n
566 REAL,
DIMENSION(SIZE(PPS)) :: zchip
567 REAL,
DIMENSION(SIZE(PPS)) :: zalbg
568 REAL,
DIMENSION(SIZE(PPS)) :: zsigma_f
569 REAL,
DIMENSION(SIZE(PPS)) :: zsigma_fn
571 REAL,
DIMENSION(SIZE(PPS)) :: zdlwnet_v_dtv
572 REAL,
DIMENSION(SIZE(PPS)) :: zdlwnet_v_dtg
573 REAL,
DIMENSION(SIZE(PPS)) :: zdlwnet_v_dtn
574 REAL,
DIMENSION(SIZE(PPS)) :: zdlwnet_g_dtv
575 REAL,
DIMENSION(SIZE(PPS)) :: zdlwnet_g_dtg
576 REAL,
DIMENSION(SIZE(PPS)) :: zdlwnet_g_dtn
577 REAL,
DIMENSION(SIZE(PPS)) :: zdlwnet_n_dtv
578 REAL,
DIMENSION(SIZE(PPS)) :: zdlwnet_n_dtg
579 REAL,
DIMENSION(SIZE(PPS)) :: zdlwnet_n_dtn
580 REAL,
DIMENSION(SIZE(PPS)) :: zwrmax
581 REAL,
DIMENSION(SIZE(PPS)) :: zwrlmax
582 REAL,
DIMENSION(SIZE(PPS)) :: zrs
583 REAL,
DIMENSION(SIZE(PPS)) :: zrsn
585 REAL,
DIMENSION(SIZE(PPS)) :: zwrvnmax
586 REAL,
DIMENSION(SIZE(PPS)) :: zpsncv
588 REAL,
DIMENSION(SIZE(PPS)) :: zmeltvn
590 REAL,
DIMENSION(SIZE(PPS)) :: zthrma_ta
591 REAL,
DIMENSION(SIZE(PPS)) :: zthrmb_ta
592 REAL,
DIMENSION(SIZE(PPS)) :: zthrma_tc
593 REAL,
DIMENSION(SIZE(PPS)) :: zthrmb_tc
594 REAL,
DIMENSION(SIZE(PPS)) :: zthrma_tn
595 REAL,
DIMENSION(SIZE(PPS)) :: zthrmb_tn
596 REAL,
DIMENSION(SIZE(PPS)) :: zthrma_tg
597 REAL,
DIMENSION(SIZE(PPS)) :: zthrmb_tg
598 REAL,
DIMENSION(SIZE(PPS)) :: zthrma_tv
599 REAL,
DIMENSION(SIZE(PPS)) :: zthrmb_tv
600 REAL,
DIMENSION(SIZE(PPS)) :: zpet_a_coef
601 REAL,
DIMENSION(SIZE(PPS)) :: zpet_b_coef
602 REAL,
DIMENSION(SIZE(PPS)) :: zkvn
603 REAL,
DIMENSION(SIZE(PPS)) :: zvelc
604 REAL,
DIMENSION(SIZE(PPS)) :: zdelta
606 REAL,
DIMENSION(SIZE(PPS)) :: zhugi
607 REAL,
DIMENSION(SIZE(PPS)) :: zhvn
608 REAL,
DIMENSION(SIZE(PPS)) :: zhvg
609 REAL,
DIMENSION(SIZE(PPS)) :: zleg_delta
610 REAL,
DIMENSION(SIZE(PPS)) :: zlegi_delta
611 REAL,
DIMENSION(SIZE(PPS)) :: zhsgl
612 REAL,
DIMENSION(SIZE(PPS)) :: zhsgf
613 REAL,
DIMENSION(SIZE(PPS)) :: zflxc_c_a
614 REAL,
DIMENSION(SIZE(PPS)) :: zflxc_n_a
615 REAL,
DIMENSION(SIZE(PPS)) :: zflxc_g_c
616 REAL,
DIMENSION(SIZE(PPS)) :: zflxc_n_c
617 REAL,
DIMENSION(SIZE(PPS)) :: zflxc_vg_c
618 REAL,
DIMENSION(SIZE(PPS)) :: zflxc_vn_c
619 REAL,
DIMENSION(SIZE(PPS)) :: zflxc_v_c
620 REAL,
DIMENSION(SIZE(PPS)) :: zflxc_mom
621 REAL,
DIMENSION(SIZE(PPS)) :: zqsatg
622 REAL,
DIMENSION(SIZE(PPS)) :: zqsatv
623 REAL,
DIMENSION(SIZE(PPS)) :: zqsatc
624 REAL,
DIMENSION(SIZE(PPS)) :: zqsatn
625 REAL,
DIMENSION(SIZE(PPS)) :: zdeltavk
626 REAL,
DIMENSION(SIZE(PPS)) :: zcheatv
627 REAL,
DIMENSION(SIZE(PPS)) :: zcheatg
628 REAL,
DIMENSION(SIZE(PPS)) :: zcheatn
629 REAL,
DIMENSION(SIZE(PPS)) :: zhvgs
632 REAL,
DIMENSION(SIZE(PPS)) :: zhvns
635 REAL,
DIMENSION(SIZE(PPS)) :: zdqsat_g
636 REAL,
DIMENSION(SIZE(PPS)) :: zdqsat_v
638 REAL,
DIMENSION(SIZE(PPS)) :: zdqsati_n
640 REAL,
DIMENSION(SIZE(PPS)) :: zdeltat_g
641 REAL,
DIMENSION(SIZE(PPS)) :: zdeltat_v
642 REAL,
DIMENSION(SIZE(PPS)) :: zdeltat_n
643 REAL,
DIMENSION(SIZE(PPS)) :: zrnet_v
644 REAL,
DIMENSION(SIZE(PPS)) :: zrnet_g
645 REAL,
DIMENSION(SIZE(PPS)) :: zflxc_c_a_f
648 REAL,
DIMENSION(SIZE(PPS)) :: zflxc_n_a_f
651 REAL,
DIMENSION(SIZE(PPS)) :: zevap_c_a
653 REAL,
DIMENSION(SIZE(PPS)) :: zevap_n_a
655 REAL,
DIMENSION(SIZE(PPS)) :: zh_n_a
657 REAL,
DIMENSION(SIZE(PPS)) :: zvegfact
659 REAL,
DIMENSION(SIZE(PPS)) :: zrrsfc
660 REAL,
DIMENSION(SIZE(PPS)) :: zrrsfcl
662 REAL,
DIMENSION(SIZE(PPS)) :: zles3l
664 REAL,
DIMENSION(SIZE(PPS)) :: zlel3l
666 REAL,
DIMENSION(SIZE(PPS)) :: zevap3l
667 REAL,
DIMENSION(SIZE(PPS)) :: zustar2_ic
668 REAL,
DIMENSION(SIZE(PPS)) :: zta_ic
669 REAL,
DIMENSION(SIZE(PPS)) :: zqa_ic
670 REAL,
DIMENSION(SIZE(PPS)) :: zswup
671 REAL,
DIMENSION(SIZE(PPS)) :: zlwup
672 REAL,
DIMENSION(SIZE(PPS)) :: zustar2snow
673 REAL,
DIMENSION(SIZE(PPS)) :: zvmod
674 REAL,
DIMENSION(SIZE(PPS)) :: zrr
675 REAL,
DIMENSION(SIZE(PPS)) :: zflsn_cor
676 REAL,
DIMENSION(SIZE(PPS)) :: zwsfc
677 REAL,
DIMENSION(SIZE(PPS)) :: zwisfc
678 REAL,
DIMENSION(SIZE(PPS)) :: zlesfc
679 REAL,
DIMENSION(SIZE(PPS)) :: zlesfci
680 REAL,
DIMENSION(SIZE(PPS)) :: zpermsnowfrac
684 REAL,
DIMENSION(SIZE(PPS),SIZE(PABC)) :: ziacan_sunlit
685 REAL,
DIMENSION(SIZE(PPS),SIZE(PABC)) :: ziacan_shade
686 REAL,
DIMENSION(SIZE(PPS),SIZE(PABC)) :: zfrac_sun
688 REAL,
DIMENSION(SIZE(PPS)) :: zlai
689 REAL,
DIMENSION(SIZE(PPS)) :: zalbvis_tsoil
690 REAL,
DIMENSION(SIZE(PPS)) :: zalbnir_tsoil
691 REAL,
DIMENSION(SIZE(PPS)) :: zswnet_s
696 REAL,
DIMENSION(SIZE(PPS)) :: zqsat
697 REAL,
DIMENSION(SIZE(PPS)) :: zffv
698 REAL,
DIMENSION(SIZE(PPS),SIZE(PABC)) :: ziacan
701 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ztgl
702 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zsoilhcapz
703 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zsoilcondz
704 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zd_g
705 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zdzg
706 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zwfc
707 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zwsat
711 REAL,
DIMENSION(SIZE(PPS)) :: zh_sum, zh_c_a_sum, zh_n_a_sum, zh_v_c_sum, zh_g_c_sum, &
712 zh_n_c_sum, zhsnow_sum, zhpsnow_sum
713 REAL,
DIMENSION(SIZE(PPS)) :: zhu_agg_sum, zac_agg_sum
715 REAL,
DIMENSION(SIZE(PPS)) :: zle_sum, zle_c_a_sum, zle_v_c_sum, zle_g_c_sum, &
716 zle_n_c_sum, zletr_v_c_sum, zleg_sum,zlegi_sum,zlesfc_sum,&
718 zler_v_c_sum, zle_flood_sum, zlei_flood_sum, &
719 zles_v_c_sum, zletr_sum, zler_sum, zlev_sum, &
720 zlei_sum, zles3l_sum, zlel3l_sum, zevap3l_sum, &
721 zustar2_sum, zustar2snow_sum, zcdsnow_sum, &
722 zchsnow_sum, zrisnow_sum, zevap_sum
724 REAL,
DIMENSION(SIZE(PPS)) :: zgrndflux_sum, zrestore_sum
726 REAL,
DIMENSION(SIZE(PPS)) :: zswnet_v_sum, zswnet_g_sum, zswnet_n_sum, zlwnet_v_sum, &
727 zlwnet_g_sum, zlwnet_n_sum, zemist_sum, zswup_sum, &
729 REAL,
DIMENSION(SIZE(PPS)) :: zdelheatg_sfc_sum, zdelheatv_sfc_sum, zdelheatg_sum
731 REAL(KIND=JPRB) :: zhook_handle
733 INTEGER :: ini, inl, jj, jl
734 REAL,
DIMENSION(SIZE(PWR)) :: zphasel
735 REAL,
DIMENSION(SIZE(PWR)) :: zctsfc
736 REAL,
DIMENSION(SIZE(PFROZEN1)) :: zfrozen1sfc
742 IF (lhook) CALL dr_hook(
'ISBA_MEB',0,zhook_handle)
758 ziacan_sunlit(:,:) = xundef
759 ziacan_shade(:,:) = xundef
760 zfrac_sun(:,:) = xundef
762 zalbvis_tsoil(:) = xundef
763 zalbnir_tsoil(:) = xundef
786 CALL
prep_meb_soil(omeb_litter,psoilhcapz,psoilcondz,pwsat,pwfc,pd_g,pdzg,ptg, &
787 pwg(:,1),pwgi(:,1),pwrl,pwrli,ptl,pgndlitter,zd_g,zdzg,ztgl, &
788 zsoilhcapz,zsoilcondz,zwsat,zwfc,zwsfc,zwisfc,zctsfc,pct, &
789 pfrozen1,zfrozen1sfc )
796 zpermsnowfrac(:) = pvegtype(:,nvt_snow)
801 zsnowrho(:,:) = psnowrho(:,:)
802 zsnowage(:,:) = psnowage(:,:)
803 zsnowswe(:,:) = psnowswe(:,:)
806 plai,zsnowrho,zsnowswe,psnowheat, &
807 psnowtemp,psnowdz,zsnowcond,zsnowhcap,pemisnow, &
809 ptstep,psr,pta,pvmod,zsnowage,zpermsnowfrac )
819 ppsn,psnowdz,pzenith, &
820 psnowalbvis,psnowalbnir,psnowalbfir,ztau_n)
826 WHERE(psnowalb(:) /= xundef)
827 zlai(:) = plai(:)*(1.0-ppalphan(:))
828 zalbvis_tsoil(:) = palbvis_tsoil(:)*(1.-ppsn(:)) + ppsn(:)*psnowalbvis(:)
829 zalbnir_tsoil(:) = palbnir_tsoil(:)*(1.-ppsn(:)) + ppsn(:)*psnowalbnir(:)
832 zalbvis_tsoil(:) = palbvis_tsoil(:)
833 zalbnir_tsoil(:) = palbnir_tsoil(:)
837 palbvis_tveg, zalbvis_tsoil, palbnir_tveg, zalbnir_tsoil, &
838 psw_rad, zlai, pzenith, pabc, &
839 pfaparc, pfapirc, pmus, plai_effc, oshade, ziacan, &
840 ziacan_sunlit, ziacan_shade, zfrac_sun, &
841 pfapar, pfapir, pfapar_bs, pfapir_bs )
846 palbt(:) = 1. - (xsw_wght_vis*(pfapar(:)+pfapar_bs(:)) + &
847 xsw_wght_nir*(pfapir(:)+pfapir_bs(:)))
848 zswup(:) = psw_rad(:)*palbt(:)
849 palbt(:) = zswup(:)/max(1.e-5, psw_rad(:))
853 pswnet_v(:) = psw_rad(:)*(xsw_wght_vis*pfapar(:) + &
854 xsw_wght_nir*pfapir(:) )
855 zswnet_s(:) = psw_rad(:)*(xsw_wght_vis*pfapar_bs(:) + &
856 xsw_wght_nir*pfapir_bs(:))
857 pswnet_n(:) = zswnet_s(:)* ppsn(:)
858 pswnet_g(:) = zswnet_s(:)*(1.-ppsn(:))
862 pswnet_ns(:) = pswnet_n(:)*(1.0 - ztau_n(:,1))
866 zalbg(:) = xsw_wght_nir*zalbnir_tsoil(:) + &
867 xsw_wght_vis*zalbvis_tsoil(:)
872 ztau_n(:,
SIZE(psnowswe,2)) = ztau_n(:,
SIZE(psnowswe,2))*(1.-zalbg(:))
876 pswdown_gn(:) = zswnet_s(:)/(1.-zalbg(:))
885 pemisnow,pfemis,pff, &
886 ptv,ztgl(:,1),psnowtemp(:,1), &
887 plw_rad,plwnet_n,plwnet_v,plwnet_g, &
888 zdlwnet_v_dtv,zdlwnet_v_dtg,zdlwnet_v_dtn, &
889 zdlwnet_g_dtv,zdlwnet_g_dtg,zdlwnet_g_dtn, &
890 zdlwnet_n_dtv,zdlwnet_n_dtg,zdlwnet_n_dtn, &
891 zsigma_f,zsigma_fn,plwdown_gn )
902 zwork(:) = (1.0 - ppsn(:) + ppsn(:)*(1.0 - ppalphan(:)))
904 CALL
wet_leaves_frac(pwr, zwork, pwrmax_cf, pz0_mebv, plai, zwrmax, zdelta)
914 IF (hphoto==
'NON')
THEN
918 CALL
veg(psw_rad, ptc, pqc, pps, prgl, plai, prsmin, pgamma, pf2, zrs)
921 ELSE IF (maxval(pgmes) /= xundef .OR. minval(pgmes) /= xundef)
THEN
929 zqsat(:) =
qsat(ptv,pps)
930 CALL
cotwores(ptstep, hphoto, otr_ml, oshade, &
931 pvegtype, ostressdef, pah, pbh, pf2i, pdmax, &
932 ppoi, pcsp, ptv, pf2, psw_rad, presa, pqc, zqsat, ple, &
933 ppalphan, zdelta, plai, prhoa, pzenith, pfzero, pepso, &
934 pgamm, pqdgamm, pgmes, pgc, pqdgmes, pt1gmes, pt2gmes, &
935 pamax, pqdamax, pt1amax, pt2amax, zffv, &
936 ziacan_sunlit, ziacan_shade, zfrac_sun, ziacan, &
937 pabc, pan, panday, zrs, panfm, pgpp, panf, presp_biomass_inst(:,1))
939 piacan(:,:) = ziacan(:,:)
942 presp_biomass_inst(:,1) = 0.0
948 zrsn(:) = zrs(:)/( 1.0 - min(ppalphan(:), 1.0 - (zrs(:)/xrs_max)) )
956 zwrvnmax,zpsncv,zmeltvn)
966 zpet_a_coef(:) = -ppet_a_coef(:)*xcpd
967 zpet_b_coef(:) = ppet_b_coef(:)*xcpd
968 zthrma_ta(:) = xcpd/pexna(:)
970 zwork(:) = xcpd/pexns(:)
971 zthrma_tc(:) = zwork(:)
973 zthrma_tn(:) = zwork(:)
975 zthrma_tg(:) = zwork(:)
977 zthrma_tv(:) = zwork(:)
992 jtsplit_eb = 1 + int(ptstep/ztstep_eb)
993 ztstep = ptstep/jtsplit_eb
1011 loop_time_split_eb:
DO jdt=1,jtsplit_eb
1016 ztgl(:,1), ptc, ptv, psnowtemp(:,1), &
1017 zta_ic, pqc, zqa_ic, zvmod, &
1018 zwsfc, zwisfc, zwsat(:,1), zwfc(:,1), &
1019 pexns, pexna, pps, &
1020 prr, psr, prhoa, pz0g_without_snow, &
1021 pz0_mebv, pz0h_mebv, pz0eff_mebv, &
1022 pz0_mebn, pz0h_mebn, pz0eff_mebn, &
1023 pz0_with_snow, pz0h_with_snow, pz0eff, &
1025 pwr, zchip, ztstep, zrs, zrsn, &
1026 ppsn, ppalphan, pzref, puref, ph_veg, pdircoszw, &
1027 zpsncv, zdelta, plai, omeb_gndres, &
1028 pch, pcd, pcdn, pri, presa, zvelc, &
1029 pcdsnow, pchsnow, prisnow, zustar2snow, &
1030 phug, zhugi, phv, zhvg, zhvn, phu, pqs, prs, &
1031 zleg_delta, zlegi_delta, zhsgl, zhsgf, &
1032 zflxc_c_a, zflxc_n_a, zflxc_g_c, zflxc_n_c, &
1033 zflxc_vg_c, zflxc_vn_c, zflxc_mom, &
1034 zqsatg, zqsatv, zqsatc, zqsatn, zdeltavk )
1042 pps,pcg,zctsfc,pcv,pwrvn,pwr, &
1043 ptdeep_a,ptdeep_b,zd_g,zsoilcondz,zsoilhcapz, &
1044 psnowdz,zsnowcond,zsnowhcap, &
1045 pswnet_v,pswnet_g,pswnet_ns,ztau_n, &
1046 plwnet_v,plwnet_g,plwnet_n, &
1047 zdlwnet_v_dtv,zdlwnet_v_dtg,zdlwnet_v_dtn, &
1048 zdlwnet_g_dtv,zdlwnet_g_dtg,zdlwnet_g_dtn, &
1049 zdlwnet_n_dtv,zdlwnet_n_dtg,zdlwnet_n_dtn, &
1050 ppew_a_coef,ppew_b_coef,zpet_a_coef,ppeq_a_coef,zpet_b_coef,ppeq_b_coef, &
1051 zthrma_ta,zthrmb_ta,zthrma_tc,zthrmb_tc, &
1052 zthrma_tg,zthrmb_tg,zthrma_tv,zthrmb_tv,zthrma_tn,zthrmb_tn, &
1053 zqsatg,zqsatv,zqsatn, &
1054 pff,pffrozen,ppsn,ppalphan,zpsncv, &
1055 zcheatv,zcheatg,zcheatn, &
1056 zleg_delta,zlegi_delta,phug,zhugi,zhvg,zhvn,zfrozen1sfc, &
1057 zflxc_c_a,zflxc_g_c,zflxc_vg_c,zflxc_vn_c,zflxc_n_c,zflxc_n_a, &
1059 ztgl,ptv,psnowtemp, &
1060 zflxc_v_c,zhvgs,zhvns, &
1061 zdqsat_g,zdqsat_v,zdqsati_n, &
1062 ptc,pqc,zta_ic,zqa_ic,zustar2_ic,zvmod, &
1063 zdeltat_g,zdeltat_v,zdeltat_n,pgrndflux,pcps,plvtt,plstt, &
1064 phpsnow,pmeltadv,prestore,pdeep_flux, &
1065 pdelheatv_sfc,pdelheatg_sfc,pdelheatg )
1071 zsigma_f,zsigma_fn,pemisnow, &
1072 zrnet_v,zrnet_g,prnsnow, &
1073 pswnet_v,pswnet_g,pswnet_n, &
1074 plwnet_v,plwnet_g,plwnet_n, &
1075 zdlwnet_v_dtv,zdlwnet_v_dtg,zdlwnet_v_dtn, &
1076 zdlwnet_g_dtv,zdlwnet_g_dtg,zdlwnet_g_dtn, &
1077 zdlwnet_n_dtv,zdlwnet_n_dtg,zdlwnet_n_dtn, &
1078 zthrma_ta,zthrmb_ta,zthrma_tc,zthrmb_tc, &
1079 zthrma_tg,zthrmb_tg,zthrma_tv,zthrmb_tv,zthrma_tn,zthrmb_tn, &
1080 zqsatg,zqsatv,zqsatn, &
1081 pff,ppsn,ppalphan,zpsncv,zfrozen1sfc,pffrozen, &
1082 zleg_delta,zlegi_delta,phug,zhugi,zhvg,zhvn, &
1083 zflxc_c_a,zflxc_g_c,zflxc_vg_c,zflxc_vn_c,zflxc_n_c,zflxc_n_a, &
1084 zflxc_mom,zflxc_v_c,zhvgs,zhvns, &
1085 ztgl,ptv,psnowtemp, &
1086 zdqsat_g,zdqsat_v,zdqsati_n, &
1087 ptc,pqc,zta_ic,zqa_ic, &
1089 zdeltat_g,zdeltat_v,zdeltat_n, &
1090 zswup,psw_rad,plw_rad, &
1092 ph_c_a,ph_v_c,ph_g_c,ph_n_c,zh_n_a,phsnow,ph, &
1093 ple_c_a,ple_v_c,ple_g_c,ple_n_c, &
1094 zevap_c_a,plev_v_c,pevap_g_c,pevap_n_c,zevap_n_a, &
1095 pevap,psubl,pletr_v_c,pler_v_c,zlesfc,zlesfci, &
1096 ple_flood,plei_flood,zles3l,zlel3l, &
1097 zevap3l,ples_v_c,pletr,pler,plev,ple,plei, &
1098 pts_rad,pemist,plstt )
1103 zflxc_c_a_f(:) = zflxc_c_a(:)*(1.0-ppsn(:)*ppalphan(:))
1104 zflxc_n_a_f(:) = zflxc_n_a(:)* ppsn(:)*ppalphan(:)
1106 phu_agg(:) = (zflxc_c_a_f(:)*pqc(:) + zflxc_n_a_f(:)*zqsatn(:))/ &
1107 (zflxc_c_a_f(:)*zqsatc(:) + zflxc_n_a_f(:)*zqsatn(:))
1109 pac_agg(:) = zflxc_c_a_f(:) + zflxc_n_a_f(:)
1115 ENDDO loop_time_split_eb
1124 CALL
snow_load_meb(ptstep,psr,ptv,zwrvnmax,zkvn,zcheatv,pler_v_c,ples_v_c,zmeltvn, &
1125 zvelc,pmeltcv,pfrzcv,psr_gn,pwr,pwrvn,psubvcor,plvtt,plstt)
1133 pirrig_flux(:) = 0.0
1138 IF (
SIZE(oirrigate)>0)
THEN
1139 WHERE (oirrigate(:) .AND. pirrig(:)>0. .AND. pirrig(:) /= xundef .AND. (pf2(:)<pthreshold(:)) )
1140 pirrig_flux(:) = pwatsup(:) / xday
1141 zrr(:) = prr(:) + pwatsup(:)/xday
1142 oirriday(:) = .true.
1151 zvegfact(:) = zsigma_f(:)*(1.0-ppalphan(:)*ppsn(:))
1159 zrr, plev_v_c, pletr_v_c, zvegfact, zpsncv, &
1160 pwr, zwrmax, zrrsfc, pdrip, prrveg, plvtt )
1167 CALL
snow3l_isba(hisba, hsnow_isba, hsnowres, omeb, oglacier, himplicit_wind, &
1168 tptime, ptstep, pvegtype, &
1169 psnowswe, psnowheat, psnowrho, psnowalb, &
1170 psnowgran1, psnowgran2, psnowhist,psnowage, &
1171 ztgl, pcg, zctsfc, zsoilhcapz, zsoilcondz(:,1), &
1172 pps, pta, psw_rad, pqa, pvmod, plw_rad, zrrsfc, psr_gn, &
1173 prhoa, puref, pexns, pexna, pdircoszw, plvtt, plstt, &
1174 pzref, pz0_with_snow, pz0eff, pz0h_with_snow, zalbg, zd_g, zdzg, &
1175 ppew_a_coef, ppew_b_coef, &
1176 ppet_a_coef, ppeq_a_coef, ppet_b_coef, ppeq_b_coef, &
1177 psnow_thrufal, pgrndflux, pflsn_cor, prestoren, pevapcor, &
1178 pswnet_n, pswnet_ns, plwnet_n, &
1179 prnsnow, phsnow, pgfluxsnow, phpsnow, ples, plesl, zevap3l, &
1180 psndrift, pustarsnow, &
1181 ppsn, psrsfc, prrsfc, psnowsfch, pdelheatn, pdelheatn_sfc, &
1182 pemisnow, pcdsnow, pchsnow, psnowtemp, psnowliq, psnowdz, &
1183 psnowhmass, prisnow, pzenith, pdelheatg, pdelheatg_sfc, plat, plon, pqsnow, &
1184 osnowdrift, osnowdrift_sublim, osnow_abs_zenith, &
1185 hsnowmetamo, hsnowrad )
1194 zwork4(:) = psnow_thrufal(:) + zrrsfc(:)*(1-ppsn)
1195 zwrlmax(:) = pgndlitter(:)*zwfc(:,1)*xrholw
1198 zwork4(:), zlesfc,zwork, zwork3, zwork,&
1199 pwrl , zwrlmax, zrrsfcl, pdriplit, prrlit, plvtt)
1201 prrsfc(:) = zrrsfcl(:)
1202 psnow_thrufal_soil(:) = 0.0
1206 psnow_thrufal_soil(:) = psnow_thrufal(:)
1215 pleg,plegi,plelitter,plelitteri)
1226 ptg, ptl, pwgi, pwg, kwg_layer, &
1227 pdzg,pwrl,pwrli,pgndlitter,zphasel, &
1228 zctsfc,plstt,plitcor)
1232 IF (lhook) CALL dr_hook(
'ISBA_MEB',1,zhook_handle)
1247 REAL(KIND=JPRB) :: zhook_handle
1251 IF (lhook) CALL dr_hook(
'ISBA_MEB:INIT_SUM_FLUXES_MEB_TSPLIT ',0,zhook_handle)
1266 zle_c_a_sum(:) = 0.0
1267 zle_v_c_sum(:) = 0.0
1268 zle_g_c_sum(:) = 0.0
1269 zle_n_c_sum(:) = 0.0
1270 zletr_v_c_sum(:) = 0.0
1274 zlesfci_sum(:) = 0.0
1275 zler_v_c_sum(:) = 0.0
1276 zle_flood_sum(:) = 0.0
1277 zlei_flood_sum(:)= 0.0
1278 zles_v_c_sum(:) = 0.0
1285 zevap3l_sum(:) = 0.0
1288 zhu_agg_sum(:) = 0.0
1289 zac_agg_sum(:) = 0.0
1293 zustar2_sum(:) = 0.0
1294 zustar2snow_sum(:) = 0.
1301 zgrndflux_sum(:) = 0.0
1302 zrestore_sum(:) = 0.0
1303 zhpsnow_sum(:) = 0.0
1307 zswnet_v_sum(:) = 0.0
1308 zswnet_g_sum(:) = 0.0
1309 zswnet_n_sum(:) = 0.0
1310 zlwnet_v_sum(:) = 0.0
1311 zlwnet_g_sum(:) = 0.0
1312 zlwnet_n_sum(:) = 0.0
1317 zdelheatv_sfc_sum(:) = 0.0
1318 zdelheatg_sfc_sum(:) = 0.0
1319 zdelheatg_sum(:) = 0.0
1321 IF (lhook) CALL dr_hook(
'ISBA_MEB:INIT_SUM_FLUXES_MEB_TSPLIT ',1,zhook_handle)
1333 REAL(KIND=JPRB) :: zhook_handle
1337 IF (lhook) CALL dr_hook(
'ISBA_MEB:SUM_FLUXES_MEB_TSPLIT ',0,zhook_handle)
1343 zh_sum(:) = zh_sum(:) + ph(:)
1344 zh_c_a_sum(:) = zh_c_a_sum(:) + ph_c_a(:)
1345 zh_n_a_sum(:) = zh_n_a_sum(:) + zh_n_a(:)
1346 zh_v_c_sum(:) = zh_v_c_sum(:) + ph_v_c(:)
1347 zh_g_c_sum(:) = zh_g_c_sum(:) + ph_g_c(:)
1348 zh_n_c_sum(:) = zh_n_c_sum(:) + ph_n_c(:)
1349 zhsnow_sum(:) = zhsnow_sum(:) + phsnow(:)
1353 zle_sum(:) = zle_sum(:) + ple(:)
1354 zle_c_a_sum(:) = zle_c_a_sum(:) + ple_c_a(:)
1355 zle_v_c_sum(:) = zle_v_c_sum(:) + ple_v_c(:)
1356 zle_g_c_sum(:) = zle_g_c_sum(:) + ple_g_c(:)
1357 zle_n_c_sum(:) = zle_n_c_sum(:) + ple_n_c(:)
1358 zletr_v_c_sum(:) = zletr_v_c_sum(:) + pletr_v_c(:)
1359 zleg_sum(:) = zleg_sum(:) + pleg(:)
1360 zlegi_sum(:) = zlegi_sum(:) + plegi(:)
1361 zlesfc_sum(:) = zlesfc_sum(:) + zlesfc(:)
1362 zlesfci_sum(:) = zlesfci_sum(:) + zlesfci(:)
1363 zler_v_c_sum(:) = zler_v_c_sum(:) + pler_v_c(:)
1364 zle_flood_sum(:) = zle_flood_sum(:) + ple_flood(:)
1365 zlei_flood_sum(:)= zlei_flood_sum(:)+ plei_flood(:)
1366 zles_v_c_sum(:) = zles_v_c_sum(:) + ples_v_c(:)
1367 zletr_sum(:) = zletr_sum(:) + pletr(:)
1368 zler_sum(:) = zler_sum(:) + pler(:)
1369 zlev_sum(:) = zlev_sum(:) + plev(:)
1370 zlei_sum(:) = zlei_sum(:) + plei(:)
1371 zles3l_sum(:) = zles3l_sum(:) + zles3l(:)
1372 zlel3l_sum(:) = zlel3l_sum(:) + zlel3l(:)
1373 zevap3l_sum(:) = zevap3l_sum(:) + zevap3l(:)
1374 zevap_sum(:) = zevap_sum(:) + pevap(:)
1376 zhu_agg_sum(:) = zhu_agg_sum(:) + phu_agg(:)
1377 zac_agg_sum(:) = zac_agg_sum(:) + pac_agg(:)
1381 zustar2_sum(:) = zustar2_sum(:) + zustar2_ic(:)
1382 zustar2snow_sum(:) = zustar2snow_sum(:) + zustar2snow(:)
1383 zcdsnow_sum(:) = zcdsnow_sum(:) + pcdsnow(:)
1384 zchsnow_sum(:) = zchsnow_sum(:) + pchsnow(:)
1385 zrisnow_sum(:) = zrisnow_sum(:) + prisnow(:)
1389 zgrndflux_sum(:) = zgrndflux_sum(:) + pgrndflux(:)
1390 zrestore_sum(:) = zrestore_sum(:) + prestore(:)
1391 zhpsnow_sum(:) = zhpsnow_sum(:) + phpsnow(:)
1395 zswnet_v_sum(:) = zswnet_v_sum(:) + pswnet_v(:)
1396 zswnet_g_sum(:) = zswnet_g_sum(:) + pswnet_g(:)
1397 zswnet_n_sum(:) = zswnet_n_sum(:) + pswnet_n(:)
1398 zlwnet_v_sum(:) = zlwnet_v_sum(:) + plwnet_v(:)
1399 zlwnet_g_sum(:) = zlwnet_g_sum(:) + plwnet_g(:)
1400 zlwnet_n_sum(:) = zlwnet_n_sum(:) + plwnet_n(:)
1401 zemist_sum(:) = zemist_sum(:) + pemist(:)
1402 zswup_sum(:) = zswup_sum(:) + zswup(:)
1403 zlwup_sum(:) = zlwup_sum(:) + zlwup(:)
1405 zdelheatv_sfc_sum(:) = zdelheatv_sfc_sum(:) + pdelheatv_sfc(:)
1406 zdelheatg_sfc_sum(:) = zdelheatg_sfc_sum(:) + pdelheatg_sfc(:)
1407 zdelheatg_sum(:) = zdelheatg_sum(:) + pdelheatg(:)
1409 IF (lhook) CALL dr_hook(
'ISBA_MEB:SUM_FLUXES_MEB_TSPLIT ',1,zhook_handle)
1423 REAL(KIND=JPRB) :: zhook_handle
1427 IF (lhook) CALL dr_hook(
'ISBA_MEB:AVG_FLUXES_MEB_TSPLIT ',0,zhook_handle)
1433 ph(:) = zh_sum(:) /jtsplit_eb
1434 ph_c_a(:) = zh_c_a_sum(:) /jtsplit_eb
1435 zh_n_a(:) = zh_n_a_sum(:) /jtsplit_eb
1436 ph_v_c(:) = zh_v_c_sum(:) /jtsplit_eb
1437 ph_g_c(:) = zh_g_c_sum(:) /jtsplit_eb
1438 ph_n_c(:) = zh_n_c_sum(:) /jtsplit_eb
1439 phsnow(:) = zhsnow_sum(:) /jtsplit_eb
1443 ple(:) = zle_sum(:) /jtsplit_eb
1444 ple_c_a(:) = zle_c_a_sum(:) /jtsplit_eb
1445 ple_v_c(:) = zle_v_c_sum(:) /jtsplit_eb
1446 ple_g_c(:) = zle_g_c_sum(:) /jtsplit_eb
1447 ple_n_c(:) = zle_n_c_sum(:) /jtsplit_eb
1448 pletr_v_c(:) = zletr_v_c_sum(:) /jtsplit_eb
1449 pleg(:) = zleg_sum(:) /jtsplit_eb
1450 plegi(:) = zlegi_sum(:) /jtsplit_eb
1451 zlesfc(:) = zlesfc_sum(:) /jtsplit_eb
1452 zlesfci(:) = zlesfci_sum(:) /jtsplit_eb
1453 pler_v_c(:) = zler_v_c_sum(:) /jtsplit_eb
1454 ple_flood(:) = zle_flood_sum(:) /jtsplit_eb
1455 plei_flood(:)= zlei_flood_sum(:)/jtsplit_eb
1456 ples_v_c(:) = zles_v_c_sum(:) /jtsplit_eb
1457 pletr(:) = zletr_sum(:) /jtsplit_eb
1458 pler(:) = zler_sum(:) /jtsplit_eb
1459 plev(:) = zlev_sum(:) /jtsplit_eb
1460 plei(:) = zlei_sum(:) /jtsplit_eb
1461 ples(:) = zles3l_sum(:) /jtsplit_eb
1462 plesl(:) = zlel3l_sum(:) /jtsplit_eb
1463 zevap3l(:) = zevap3l_sum(:) /jtsplit_eb
1464 pevap(:) = zevap_sum(:) /jtsplit_eb
1466 phu_agg(:) = zhu_agg_sum(:) /jtsplit_eb
1467 pac_agg(:) = zac_agg_sum(:) /jtsplit_eb
1471 pustar(:) = sqrt( zustar2_sum(:) /jtsplit_eb )
1472 pustarsnow(:) = sqrt( zustar2snow_sum(:)/jtsplit_eb )
1473 pcdsnow(:) = zcdsnow_sum(:) /jtsplit_eb
1474 pchsnow(:) = zchsnow_sum(:) /jtsplit_eb
1475 prisnow(:) = zrisnow_sum(:) /jtsplit_eb
1479 pgrndflux(:) = zgrndflux_sum(:) /jtsplit_eb
1480 prestore(:) = zrestore_sum(:) /jtsplit_eb
1481 phpsnow(:) = zhpsnow_sum(:) /jtsplit_eb
1485 pswnet_v(:) = zswnet_v_sum(:) /jtsplit_eb
1486 pswnet_g(:) = zswnet_g_sum(:) /jtsplit_eb
1487 pswnet_n(:) = zswnet_n_sum(:) /jtsplit_eb
1488 plwnet_v(:) = zlwnet_v_sum(:) /jtsplit_eb
1489 plwnet_g(:) = zlwnet_g_sum(:) /jtsplit_eb
1490 plwnet_n(:) = zlwnet_n_sum(:) /jtsplit_eb
1491 pemist(:) = zemist_sum(:) /jtsplit_eb
1492 zswup(:) = zswup_sum(:) /jtsplit_eb
1493 zlwup(:) = zlwup_sum(:) /jtsplit_eb
1495 pdelheatv_sfc(:) = zdelheatv_sfc_sum(:) /jtsplit_eb
1496 pdelheatg_sfc(:) = zdelheatg_sfc_sum(:) /jtsplit_eb
1497 pdelheatg(:) = zdelheatg_sum(:) /jtsplit_eb
1501 pts_rad(:) = ((zlwup(:) - plw_rad(:)*(1.0-pemist(:)))/(xstefan*pemist(:)))**0.25
1503 zrnet_v(:) = pswnet_v(:) + plwnet_v(:)
1505 zrnet_g(:) = pswnet_g(:) + plwnet_g(:)
1507 prnsnow(:) = pswnet_n(:) + plwnet_n(:)
1509 prn(:) = zrnet_v(:) + zrnet_g(:) + prnsnow(:)
1511 plev_v_c(:) = ple_v_c(:) - ples_v_c(:)
1513 IF (lhook) CALL dr_hook(
'ISBA_MEB:AVG_FLUXES_MEB_TSPLIT ',1,zhook_handle)
1519 ppsn,psnowdz,pzenith, &
1520 psnowalbvis,psnowalbnir,psnowalbfir, &
1538 REAL,
DIMENSION(:,:),
INTENT(IN) :: pvegtype
1539 REAL,
DIMENSION(:),
INTENT(IN) :: psnowalb
1540 REAL,
DIMENSION(:,:),
INTENT(IN) :: psnowrho
1541 REAL,
DIMENSION(:,:),
INTENT(IN) :: psnowdz
1542 REAL,
DIMENSION(:),
INTENT(IN) :: pzenith
1543 REAL,
DIMENSION(:),
INTENT(IN) :: ppsn
1544 REAL,
DIMENSION(:,:),
INTENT(IN) :: psnowage
1545 REAL,
DIMENSION(:),
INTENT(IN) :: pps
1546 REAL,
DIMENSION(:),
INTENT(OUT) :: psnowalbvis
1547 REAL,
DIMENSION(:),
INTENT(OUT) :: psnowalbnir
1548 REAL,
DIMENSION(:),
INTENT(OUT) :: psnowalbfir
1549 REAL,
DIMENSION(:,:),
INTENT(OUT) :: ptau_n
1553 INTEGER :: jj, ji, ini, inlvls
1554 REAL,
DIMENSION(SIZE(PPS)) :: zwork, zworka, zage
1555 REAL,
DIMENSION(SIZE(PPS)) :: zprojlat, zdsgrain, zbeta1, zbeta2, zbeta3, &
1556 zopticalpath1, zopticalpath2, zopticalpath3
1557 REAL,
DIMENSION(SIZE(PPS)) :: zpermsnowfrac
1558 REAL,
DIMENSION(SIZE(PSNOWDZ,1),SIZE(PSNOWDZ,2)) :: zsnowdz
1559 REAL,
DIMENSION(SIZE(PPS),NSPEC_BAND_SNOW) :: zspectralalbedo
1564 REAL(KIND=JPRB) :: zhook_handle
1568 IF (lhook) CALL dr_hook(
'ISBA_MEB:SNOWALB_SPECTRAL_BANDS_MEB',0,zhook_handle)
1570 ini =
SIZE(psnowdz,1)
1571 inlvls =
SIZE(psnowdz,2)
1577 zworka(:) = psnowalb(:)
1578 zpermsnowfrac(:) = pvegtype(:,nvt_snow)
1580 CALL
snow3lalb(zworka,zspectralalbedo,psnowrho(:,1),psnowage(:,1),zpermsnowfrac,pps)
1585 WHERE(psnowalb(:)/=xundef)
1587 psnowalbvis(:) = zspectralalbedo(:,1)
1592 psnowalbnir(:) = (psnowalb(:) - xsw_wght_vis*psnowalbvis(:))/xsw_wght_nir
1596 psnowalbfir(:) = xundef
1600 zspectralalbedo(:,1) = psnowalbvis(:)
1601 zspectralalbedo(:,2) = psnowalbnir(:)
1602 zspectralalbedo(:,3) = psnowalbfir(:)
1606 psnowalbvis(:) = xundef
1607 psnowalbnir(:) = xundef
1608 psnowalbfir(:) = xundef
1614 zage(:) = (1.0-zpermsnowfrac(:))*psnowage(:,1)
1622 zspectralalbedo(:,1) = zspectralalbedo(:,1)
1623 zspectralalbedo(:,2) = (psnowalb(:) - xsw_wght_vis*zspectralalbedo(:,1))/xsw_wght_nir
1629 zsnowdz(ji,jj) = psnowdz(ji,jj)/max(1.e-4,ppsn(ji))
1633 CALL
snow3lradtrans(xsnowdzmin, zspectralalbedo, zsnowdz, psnowrho, &
1634 zpermsnowfrac, pzenith, psnowage, ptau_n)
1636 IF (lhook) CALL dr_hook(
'ISBA_MEB:SNOWALB_SPECTRAL_BANDS_MEB',1,zhook_handle)
1641 ppermsnowfrac, pzenith, psnowage, pradtrans)
1650 USE modd_snow_par, ONLY : xvspec1,xvspec2,xvspec3,xvbeta1,xvbeta2, &
1651 xvbeta4,xvbeta3,xvbeta5, xmincoszen
1660 REAL,
INTENT(IN) :: psnowdzmin
1662 REAL,
DIMENSION(:),
INTENT(IN) :: ppermsnowfrac
1663 REAL,
DIMENSION(:),
INTENT(IN) :: pzenith
1664 REAL,
DIMENSION(:,:),
INTENT(IN) :: psnowrho, psnowdz, psnowage
1665 REAL,
DIMENSION(:,:),
INTENT(IN) :: pspectralalbedo
1667 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pradtrans
1677 REAL,
DIMENSION(SIZE(PSNOWRHO,1)) :: zradtot, zprojlat, zcoszen
1678 REAL,
DIMENSION(SIZE(PSNOWRHO,1)) :: zopticalpath1, zopticalpath2, zopticalpath3
1680 REAL,
DIMENSION(SIZE(PSNOWRHO,1),SIZE(PSNOWRHO,2)) :: zdsgrain, zcoef, zsnowdz, zage
1681 REAL,
DIMENSION(SIZE(PSNOWRHO,1),SIZE(PSNOWRHO,2)) :: zbeta1, zbeta2, zbeta3, zwork
1683 REAL(KIND=JPRB) :: zhook_handle
1689 IF (lhook) CALL dr_hook(
'SNOW3LRADTRANS',0,zhook_handle)
1691 ini =
SIZE(psnowdz(:,:),1)
1692 inlvls =
SIZE(psnowdz(:,:),2)
1703 zsnowdz(:,:) = max(psnowdzmin, psnowdz(:,:))
1715 zcoszen(:)=max(xmincoszen,cos(pzenith(:)))
1721 zprojlat(:)=(1.0-ppermsnowfrac(:))+ppermsnowfrac(:)/zcoszen(:)
1728 IF(psnowage(ji,jj)/=xundef)
THEN
1729 zage(ji,jj) = (1.0-ppermsnowfrac(ji))*psnowage(ji,jj)
1738 zwork(:,:)=sqrt(zdsgrain(:,:))
1740 zbeta1(:,:)=max(xvbeta1*psnowrho(:,:)/zwork(:,:),xvbeta2)
1741 zbeta2(:,:)=max(xvbeta3*psnowrho(:,:)/zwork(:,:),xvbeta4)
1744 zopticalpath1(:) = 0.0
1745 zopticalpath2(:) = 0.0
1746 zopticalpath3(:) = 0.0
1751 zopticalpath1(ji) = zopticalpath1(ji) + zbeta1(ji,jj)*zsnowdz(ji,jj)
1752 zopticalpath2(ji) = zopticalpath2(ji) + zbeta2(ji,jj)*zsnowdz(ji,jj)
1754 zcoef(ji,jj) = xsw_wght_vis*(1.0-pspectralalbedo(ji,1))*exp(-zopticalpath1(ji)*zprojlat(ji)) &
1755 + xsw_wght_nir*(1.0-pspectralalbedo(ji,2))*exp(-zopticalpath2(ji)*zprojlat(ji))
1764 pradtrans(:,:) = zcoef(:,:)
1766 IF (lhook) CALL dr_hook(
'SNOW3LRADTRANS',1,zhook_handle)
1780 REAL(KIND=JPRB) :: zhook_handle
1784 IF (lhook) CALL dr_hook(
'ISBA_MEB:ALLOCATE_LOCAL_VARS_PREP_GRID_SOIL ',0,zhook_handle)
1787 IF(omeb_litter)inll = inl + 1
1789 ALLOCATE ( ztgl(ini, inll ))
1790 ALLOCATE ( zsoilhcapz(ini, inll ))
1791 ALLOCATE ( zsoilcondz(ini, inll ))
1792 ALLOCATE ( zd_g(ini, inll ))
1793 ALLOCATE ( zdzg(ini, inll ))
1794 ALLOCATE ( zwfc(ini, inll ))
1795 ALLOCATE ( zwsat(ini, inll ))
1797 IF (lhook) CALL dr_hook(
'ISBA_MEB:ALLOCATE_LOCAL_VARS_PREP_GRID_SOIL ',1,zhook_handle)
1807 REAL(KIND=JPRB) :: zhook_handle
1811 IF (lhook) CALL dr_hook(
'ISBA_MEB:DEALLOCATE_LOCAL_VARS_PREP_GRID_SOIL ',0,zhook_handle)
1814 DEALLOCATE ( zsoilhcapz )
1815 DEALLOCATE ( zsoilcondz )
1818 DEALLOCATE ( zwsat )
1821 IF (lhook) CALL dr_hook(
'ISBA_MEB:DEALLOCATE_LOCAL_VARS_PREP_GRID_SOIL ',1,zhook_handle)
1826 pleg,plegi,plelitter,plelitteri)
1832 LOGICAL,
INTENT(IN) :: omeb_litter
1833 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptgl
1834 REAL,
DIMENSION(:),
INTENT(IN) :: plesfc
1835 REAL,
DIMENSION(:),
INTENT(IN) :: plesfci
1836 REAL,
DIMENSION(:),
INTENT(OUT) :: pleg
1837 REAL,
DIMENSION(:),
INTENT(OUT) :: plegi
1838 REAL,
DIMENSION(:),
INTENT(OUT) :: plelitter
1839 REAL,
DIMENSION(:),
INTENT(OUT) :: plelitteri
1840 REAL,
DIMENSION(:),
INTENT(OUT) :: ptl
1841 REAL,
DIMENSION(:,:),
INTENT(OUT) :: ptg
1847 REAL(KIND=JPRB) :: zhook_handle
1854 IF (lhook) CALL dr_hook(
'ISBA_MEB:FINISH_MEB_SOIL ',0,zhook_handle)
1856 IF (omeb_litter)
THEN
1862 ptg(jj,jl) = ptgl(jj,jl+1)
1868 plelitter(:) = plesfc(:)
1869 plelitteri(:) = plesfci(:)
1872 ptg(:,:) = ptgl(:,:)
1875 plegi(:) = plesfci(:)
1882 IF (lhook) CALL dr_hook(
'ISBA_MEB:FINISH_MEB_SOIL ',1,zhook_handle)
1886 SUBROUTINE prep_meb_soil(OMEB_LITTER,PSOILHCAPZ,PSOILCONDZ,PWSAT,PWFC,PD_G,PDZG,PTG,PWG,PWGI,PWRL,PWRLI, &
1887 ptl,pgndlitter,pd_gl,pdzgl,ptgl,psoilhcapl,psoilcondl,pwsatl,pwfcl,pwsfc,pwisfc,&
1888 pctsfc,pct,pfrozen1,pfrozen1sfc )
1890 USE modd_csts, ONLY : xrholw,xrholi, xcl, xci
1897 LOGICAL,
INTENT(IN) :: omeb_litter
1898 REAL,
DIMENSION(:,:),
INTENT(IN) :: psoilhcapz
1899 REAL,
DIMENSION(:,:),
INTENT(IN) :: psoilcondz
1900 REAL,
DIMENSION(:,:),
INTENT(IN) :: pwsat
1901 REAL,
DIMENSION(:,:),
INTENT(IN) :: pwfc
1902 REAL,
DIMENSION(:,:),
INTENT(IN) :: pd_g
1903 REAL,
DIMENSION(:,:),
INTENT(IN) :: pdzg
1904 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptg
1905 REAL,
DIMENSION(:),
INTENT(IN) :: pwg
1906 REAL,
DIMENSION(:),
INTENT(IN) :: pwgi
1907 REAL,
DIMENSION(:),
INTENT(IN) :: pct
1908 REAL,
DIMENSION(:),
INTENT(IN) :: pwrl
1909 REAL,
DIMENSION(:),
INTENT(IN) :: pwrli
1910 REAL,
DIMENSION(:),
INTENT(IN) :: ptl
1911 REAL,
DIMENSION(:),
INTENT(IN) :: pfrozen1
1912 REAL,
DIMENSION(:),
INTENT(IN) :: pgndlitter
1913 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pd_gl
1914 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pdzgl
1915 REAL,
DIMENSION(:,:),
INTENT(OUT) :: ptgl
1916 REAL,
DIMENSION(:,:),
INTENT(OUT) :: psoilhcapl
1917 REAL,
DIMENSION(:,:),
INTENT(OUT) :: psoilcondl
1918 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pwsatl
1919 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pwfcl
1920 REAL,
DIMENSION(:),
INTENT(OUT) :: pwsfc
1921 REAL,
DIMENSION(:),
INTENT(OUT) :: pwisfc
1922 REAL,
DIMENSION(:),
INTENT(OUT) :: pctsfc
1923 REAL,
DIMENSION(:),
INTENT(OUT) :: pfrozen1sfc
1927 INTEGER :: ini, inl, jj, jl
1929 REAL(KIND=JPRB) :: zhook_handle
1933 REAL,
PARAMETER :: z1 = 45.0
1934 REAL,
PARAMETER :: z2 = 0.1
1935 REAL,
PARAMETER :: z3 = 0.03
1936 REAL,
PARAMETER :: z4 = 0.95
1937 REAL,
PARAMETER :: z5 = 0.12
1939 REAL,
DIMENSION(SIZE(PWG)) :: zwork
1943 IF (lhook) CALL dr_hook(
'ISBA_MEB:PREP_MEB_SOIL',0,zhook_handle)
1951 zwork(:) = pwrl(:)/(xrholw*pgndlitter(:))
1952 psoilhcapl(:,1) = xomsph*z1 + (xcl*xrholw)*zwork(:) + (xci*xrholi/xrholw)*pwrli(:)/pgndlitter(:)
1953 psoilcondl(:,1) = z2 + z3 * zwork(:)
1956 pd_gl(:,1) = pgndlitter(:)
1957 pdzgl(:,1) = pgndlitter(:)
1958 pctsfc(:) = 1. / (psoilhcapl(:,1) * pgndlitter(:))
1959 pfrozen1sfc(:) = pwrli(:) / ( pwrli(:) + max(pwrl(:), (xwgmin*xrholw)*pgndlitter(:) ))
1963 ptgl(jj,jl+1) = ptg(jj,jl)
1964 psoilhcapl(jj,jl+1) = psoilhcapz(jj,jl)
1965 psoilcondl(jj,jl+1) = psoilcondz(jj,jl)
1966 pwsatl(jj,jl+1) = pwsat(jj,jl)
1967 pwfcl(jj,jl+1) = pwfc(jj,jl)
1968 pd_gl(jj,jl+1) = pgndlitter(jj) + pd_g(jj,jl)
1969 pdzgl(jj,jl+1) = pdzg(jj,jl)
1972 pwsfc(:) = pwrl(:) /(xrholw*pgndlitter(:))
1973 pwisfc(:) = pwrli(:)/(xrholw*pgndlitter(:))
1976 ptgl(:,:) = ptg(:,:)
1977 psoilhcapl(:,:) = psoilhcapz(:,:)
1978 psoilcondl(:,:) = psoilcondz(:,:)
1979 pwsatl(:,:) = pwsat(:,:)
1980 pwfcl(:,:) = pwfc(:,:)
1981 pd_gl(:,:) = pd_g(:,:)
1982 pdzgl(:,:) = pdzg(:,:)
1986 pfrozen1sfc(:) = pfrozen1(:)
1988 IF (lhook) CALL dr_hook(
'ISBA_MEB:PREP_MEB_SOIL',1,zhook_handle)
1994 ptg, ptl, pwgi, pwg, kwg_layer, &
1995 pdzg,pwrl,pwrli,pgndlitter,pphasel, &
1996 pctsfc,plstt,plitcor)
1998 USE modd_csts, ONLY : xlmtt, xtt, xci, xrholi, xrholw
2004 REAL,
INTENT(IN) :: ptstep
2007 REAL,
DIMENSION(:),
INTENT(IN) :: plelitteri
2009 REAL,
DIMENSION(:),
INTENT(IN) :: pctsfc
2010 REAL,
DIMENSION(:),
INTENT(IN) :: plstt
2012 REAL,
DIMENSION(:),
INTENT(INOUT) :: ptl, pwrl, pwrli
2016 REAL,
DIMENSION(:,:),
INTENT(IN) :: psoilhcapz
2018 REAL,
DIMENSION(:,:),
INTENT(IN) :: pdzg
2020 REAL,
DIMENSION(:),
INTENT(IN) :: pgndlitter
2022 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: ptg, pwgi, pwg
2027 INTEGER,
DIMENSION(:),
INTENT(IN) :: kwg_layer
2030 REAL,
DIMENSION(:),
INTENT(OUT) :: pphasel
2032 REAL,
DIMENSION(:),
INTENT(OUT) :: plitcor
2042 REAL,
DIMENSION(SIZE(PTG,1)) :: zexcess, zk, zhcapl,zelitteri, &
2043 zdeltat,zphase,zphasem,zphasef,zphasex, &
2044 zwrl,zwrli,z0,zphasec
2048 REAL(KIND=JPRB) :: zhook_handle
2052 REAL,
PARAMETER :: zertol = 1.e-6
2053 REAL,
PARAMETER :: ztauice = 3300.
2054 REAL,
PARAMETER :: zwrlsat = 0.85
2058 IF (lhook) CALL dr_hook(
'ISBA_MEB:ICE_LITTER',0,zhook_handle)
2064 inl = maxval(kwg_layer(:))
2070 zhcapl(:) = 1/(pctsfc(:)*pgndlitter(:))
2080 zwrl(:) = pwrl(:) /(xrholw*pgndlitter(:))
2081 zwrli(:) = pwrli(:)/(xrholw*pgndlitter(:))
2086 zdeltat(:) = ptl(:) - xtt
2091 zphasem(:) = (ptstep/ztauice)*min((xci*xrholi)*max(0.0,zdeltat(:)),zwrli(:)*(xlmtt*xrholw))
2095 zphasef(:) = (ptstep/ztauice)*min((xci*xrholi)*max(0.0,-zdeltat(:)),zwrl(:)*(xlmtt*xrholw))
2096 zphasef(:) = min(zphasef(:) , (zwrlsat - zwrli(:)) * (xlmtt*xrholw) )
2098 zphase(:) = zphasef(:) - zphasem(:)
2102 ptl(:) = ptl(:) + zphase(:)/zhcapl(:)
2106 zphasex(:) = zphase(:)
2110 zwrl(:) = zwrl(:) - zphasex/(xlmtt*xrholw)
2111 zwrli(:) = zwrli(:) + zphasex/(xlmtt*xrholw)
2116 pwrl(:) = zwrl(:) * pgndlitter(:) * xrholw
2117 pwrli(:)= zwrli(:) * pgndlitter(:) * xrholw
2123 zelitteri(:) = plelitteri(:) * (ptstep/plstt)
2124 zexcess(:) = max( 0.0 , zelitteri(:) - pwrli(:) )
2125 plitcor=zexcess/ptstep
2126 pwrli(:) = pwrli(:) - ( zelitteri(:) - zexcess(:) )
2131 pwgi(:,1) = pwgi(:,1)- zexcess(:) / (xrholw * pdzg(:,1))
2133 zexcess(:) = max( 0.0, - pwgi(:,1) )
2134 pwgi(:,1) = pwgi(:,1) + zexcess(:)
2135 pwg(:,1) = pwg(:,1) - zexcess(:)
2136 ptg(:,1) = ptg(:,1) + zexcess(:) * (xlmtt*xrholw)/psoilhcapz(:,1)
2139 zexcess(:) = max(0.0,-pwg(:,jl))
2140 pwg(:,jl+1) = pwg(:,jl+1) - zexcess(:)*pdzg(:,jl)/pdzg(:,jl+1)
2141 pwg(:,jl) = pwg(:,jl) + zexcess(:)
2147 WHERE (pwrli(:) < zertol )
2148 pwrl(:) = pwrl(:) + pwrli(:)
2149 ptl(:) = ptl(:) + pwrli(:) * xlmtt / pgndlitter(:) / zhcapl(:)
2150 zphasec(:) = pwrli(:) * xlmtt / pgndlitter(:)
2156 pphasel(:)=(zphase(:) + zphasec(:))/ptstep*pgndlitter(:)
2159 IF (lhook) CALL dr_hook(
'ISBA_MEB:ICE_LITTER',1,zhook_handle)
subroutine snow3lradtrans(PSNOWDZMIN, PSPECTRALALBEDO, PSNOWDZ, PSNOWRHO, PPERMSNOWFRAC, PZENITH, PSNOWAGE, PRADTRANS)
subroutine snow3l_isba(HISBA, HSNOW_ISBA, HSNOWRES, OMEB, OGLACIER, HIMPLICIT_WIND, TPTIME, PTSTEP, PVEGTYPE, PSNOWSWE, PSNOWHEAT, PSNOWRHO, PSNOWALB, PSNOWGRAN1, PSNOWGRAN2, PSNOWHIST, PSNOWAGE, PTG, PCG, PCT, PSOILHCAPZ, PSOILCONDZ, PPS, PTA, PSW_RAD, PQA, PVMOD, PLW_RAD, PRR, PSR, PRHOA, PUREF, PEXNS, PEXNA, PDIRCOSZW, PLVTT, PLSTT, PZREF, PZ0NAT, PZ0EFF, PZ0HNAT, PALB, PD_G, PDZG, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, PTHRUFAL, PGRNDFLUX, PFLSN_COR, PGSFCSNOW, PEVAPCOR, PSWNETSNOW, PSWNETSNOWS, PLWNETSNOW, PRNSNOW, PHSNOW, PGFLUXSNOW, PHPSNOW, PLES3L, PLEL3L, PEVAP, PSNDRIFT, PUSTARSNOW, PPSN, PSRSFC, PRRSFC, PSNOWSFCH, PDELHEATN, PDELHEATN_SFC, PEMISNOW, PCDSNOW, PCHSNOW, PSNOWTEMP, PSNOWLIQ, PSNOWDZ, PSNOWHMASS, PRI, PZENITH, PDELHEATG, PDELHEATG_SFC, PLAT, PLON, PQS, OSNOWDRIFT, OSNOWDRIFT_SUBLIM, OSNOW_ABS_ZENITH, HSNOWMETAMO, HSNOWRAD)
subroutine deallocate_local_vars_prep_grid_soil
subroutine hydro_veg(HRAIN, PTSTEP, PMUF, PRR, PLEV, PLETR, PVEG, PPSNV, PWR, PWRMAX, PPG, PDRIP, PRRVEG, PLVTT)
subroutine isba_meb(TPTIME, OMEB, OMEB_LITTER, OMEB_GNDRES, PGNDLITTER, OFORC_MEASURE, OGLACIER, OTR_ML, OAGRI_TO_GRASS, OSHADE, OSTRESSDEF, OSNOWDRIFT, OSNOWDRIFT_SUBLIM, OSNOW_ABS_ZENITH, OIRRIGATE, OIRRIDAY, HSNOWMETAMO, HSNOWRAD, HPHOTO, HISBA, HCPSURF, HRAIN, HSNOW_ISBA, HSNOWRES, HIMPLICIT_WIND, KWG_LAYER, PTSTEP, PVEGTYPE, PLAT, PLON, PTHRESHOLD, PWATSUP, PIRRIG, PIRRIG_FLUX, PSOILHCAPZ, PSOILCONDZ, PFROZEN1, PPS, PZENITH, PSCA_SW, PSW_RAD, PVMOD, PRR, PSR, PRHOA, PTA, PQA, PH_VEG, PDIRCOSZW, PEXNS, PEXNA, PPET_A_COEF, PPET_B_COEF, PPEQ_A_COEF, PPEQ_B_COEF, PPEW_A_COEF, PPEW_B_COEF, PZREF, PUREF, PCH, PCD, PCDN, PRI, PRESA, PHUG, PHV, PHU, PQS, PZ0G_WITHOUT_SNOW, PZ0_MEBV, PZ0H_MEBV, PZ0EFF_MEBV, PZ0_MEBN, PZ0H_MEBN, PZ0EFF_MEBN, PZ0_WITH_SNOW, PZ0H_WITH_SNOW, PZ0EFF, PTV, PTL, PTG, PTC, PQC, PWR, PWRL, PWRLI, PWRVN, PWG, PWGI, PWRMAX_CF, PRGL, PRSMIN, PGAMMA, PRS, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL, PFALB, PSNOWALB, PSNOWALBVIS, PSNOWALBNIR, PSNOWALBFIR, PABC, PFAPARC, PFAPIRC, PMUS, PLAI_EFFC, PIACAN, PFAPAR, PFAPIR, PFAPAR_BS, PFAPIR_BS, PAH, PBH, PF2I, PDMAX, PPOI, PCSP, PFZERO, PEPSO, PGAMM, PQDGAMM, PGMES, PGC, PQDGMES, PT1GMES, PT2GMES, PAMAX, PQDAMAX, PT1AMAX, PT2AMAX, PAN, PANDAY, PANFM, PGPP, PANF, PRESP_BIOMASS_INST, PFF, PPSN, PPALPHAN, PLAI, PF2, PWSAT, PWFC, PSNOWGRAN1, PSNOWGRAN2, PSNOWHIST, PSNOWAGE, PSNOWRHO, PSNOWSWE, PSNOWHEAT, PSNOWTEMP, PSNOWDZ, PSNOWLIQ, PFEMIS, PSWNET_N, PSWNET_V, PSWNET_G, PSWNET_NS, PALBT, PSWDOWN_GN, PLW_RAD, PLWNET_N, PLWNET_V, PLWNET_G, PLWDOWN_GN, PLEV_V_C, PLES_V_C, PH_V_C, PH_G_C, PLETR_V_C, PLER_V_C, PH_C_A, PH_N_C, PLE_V_C, PLE_G_C, PLE_C_A, PLE_N_C, PEVAP_N_C, PEVAP_G_C, PSR_GN, PMELTCV, PFRZCV, PMELTADV, PLE_FLOOD, PLEI_FLOOD, PLE, PH, PRN, PLEI, PLEGI, PLEG, PLELITTERI, PLELITTER, PDRIPLIT, PRRLIT, PLEV, PLER, PLETR, PEVAP, PLES, PLESL, PSUBL, PRESTORE, PGRNDFLUX, PFLSN_COR, PUSTAR, PHPSNOW, PSNOWHMASS, PRNSNOW, PHSNOW, PGFLUXSNOW, PUSTARSNOW, PSRSFC, PRRSFC, PEMISNOW, PCDSNOW, PCHSNOW, PEMIST, PTS_RAD, PHU_AGG, PAC_AGG, PDELHEATV_SFC, PDELHEATG_SFC, PDELHEATG, PDELHEATN, PDELHEATN_SFC, PRESTOREN, PD_G, PDZG, PCPS, PLVTT, PLSTT, PCT, PCV, PCG, PFFROZEN, PTDEEP_A, PTDEEP_B, PDEEP_FLUX, PMUF, PDRIP, PRRVEG, PRISNOW, PSNOW_THRUFAL, PSNOW_THRUFAL_SOIL, PEVAPCOR, PSUBVCOR, PLITCOR, PSNOWSFCH, PSNDRIFT, PQSNOW)
subroutine prep_meb_soil(OMEB_LITTER, PSOILHCAPZ, PSOILCONDZ, PWSAT, PWFC, PD_G, PDZG, PTG, PWG, PWGI, PWRL, PWRLI, PTL, PGNDLITTER, PD_GL, PDZGL, PTGL, PSOILHCAPL, PSOILCONDL, PWSATL, PWFCL, PWSFC, PWISFC, PCTSFC, PCT, PFROZEN1, PFROZEN1SFC)
subroutine ice_litter(PTSTEP, PLELITTERI, PSOILHCAPZ, PTG, PTL, PWGI, PWG, KWG_LAYER, PDZG, PWRL, PWRLI, PGNDLITTER, PPHASEL, PCTSFC, PLSTT, PLITCOR)
subroutine snow_load_meb(PTSTEP, PSR, PTV, PWRVNMAX, PKVN, PCHEATV, PLERCV, PLESC, PMELTVN, PVELC, PMELTCV, PFRZCV, PUNLOADSNOW, PWRV, PWRVN, PSUBVCOR, PLVTT, PLSTT)
subroutine preps_for_meb_ebud_rad(PPS, PLAICV, PSNOWRHO, PSNOWSWE, PSNOWHEAT, PSNOWTEMP, PSNOWDZ, PSCOND, PHEATCAPS, PEMISNOW, PSIGMA_F, PCHIP, PTSTEP, PSR, PTA, PVMOD, PSNOWAGE, PPERMSNOWFRAC)
subroutine reshift_meb_soil(OMEB_LITTER, PTGL, PTL, PTG, PLESFC, PLESFCI, PLEG, PLEGI, PLELITTER, PLELITTERI)
subroutine sum_fluxes_meb_tsplit
subroutine wet_leaves_frac(PWRM, PVEG, PWRMAX_CF, PZ0, PLAI, PWRMAX, PDELTA)
subroutine allocate_local_vars_prep_grid_soil
subroutine drag_meb(LFORC_MEASURE, PTG, PTC, PTV, PSNOWTEMP, PTA, PQC, PQA, PVMOD, PWG, PWGI, PWSAT, PWFC, PEXNS, PEXNA, PPS, PRR, PSR, PRHOA, PZ0G_WITHOUT_SNOW, PZ0_MEBV, PZ0H_MEBV, PZ0EFF_MEBV, PZ0_MEBN, PZ0H_MEBN, PZ0EFF_MEBN, PZ0_WITH_SNOW, PZ0H_WITH_SNOW, PZ0EFF, PSNOWSWE, PWR, PCHIP, PTSTEP, PRS_VG, PRS_VN, PPSN, PPALPHAN, PZREF, PUREF, PH_VEG, PDIRCOSZW, PPSNCV, PDELTA, PLAI, OMEB_GNDRES, PCH, PCD, PCDN, PRI, PRA, PVELC, PCDSNOW, PCHSNOW, PRISNOW, PUSTAR2SNOW, PHUG, PHUGI, PHV, PHVG, PHVN, PHU, PQS, PRS, PLEG_DELTA, PLEGI_DELTA, PHSGL, PHSGF, PFLXC_C_A, PFLXC_N_A, PFLXC_G_C, PFLXC_N_C, PFLXC_VG_C, PFLXC_VN_C, PFLXC_MOM, PQSATG, PQSATV, PQSATC, PQSATN, PDELTAVK)
subroutine avg_fluxes_meb_tsplit
subroutine isba_fluxes_meb(PRHOA, PSIGMA_F, PSIGMA_FN, PEMIS_N, PRNET_V, PRNET_G, PRNET_N, PSWNET_V, PSWNET_G, PSWNET_N, PLWNET_V, PLWNET_G, PLWNET_N, PLWNET_V_DTV, PLWNET_V_DTG, PLWNET_V_DTN, PLWNET_G_DTV, PLWNET_G_DTG, PLWNET_G_DTN, PLWNET_N_DTV, PLWNET_N_DTG, PLWNET_N_DTN, PTHRMA_TA, PTHRMB_TA, PTHRMA_TC, PTHRMB_TC, PTHRMA_TG, PTHRMB_TG, PTHRMA_TV, PTHRMB_TV, PTHRMA_TN, PTHRMB_TN, PQSAT_G, PQSAT_V, PQSATI_N, PFF, PPSN, PPSNA, PPSNCV, PFROZEN1, PFFROZEN, PLEG_DELTA, PLEGI_DELTA, PHUG, PHUGI, PHVG, PHVN, PFLXC_C_A, PFLXC_G_C, PFLXC_VG_C, PFLXC_VN_C, PFLXC_N_C, PFLXC_N_A, PFLXC_MOM, PFLXC_V_C, PHVGS, PHVNS, PTG, PTV, PTN, PDQSAT_G, PDQSAT_V, PDQSATI_N, PTC, PQC, PTA_IC, PQA_IC, PDELTA_V, PDELTAT_G, PDELTAT_V, PDELTAT_N, PSW_UP, PSW_RAD, PLW_RAD, PRNET, PLW_UP, PH_C_A, PH_V_C, PH_G_C, PH_N_C, PH_N_A, PH_N, PH, PLE_C_A, PLE_V_C, PLE_G_C, PLE_N_C, PEVAP_C_A, PLEV_V_C, PEVAP_G_C, PEVAP_N_C, PEVAP_N_A, PEVAP, PSUBL, PLETR_V_C, PLER_V_C, PLEG, PLEGI, PLE_FLOOD, PLEI_FLOOD, PLES, PLEL, PEVAPN, PLES_V_C, PLETR, PLER, PLEV, PLE, PLEI, PTS_RAD, PEMIS, PLSTT)
subroutine init_sum_fluxes_meb_tsplit
subroutine isba_lwnet_meb(PLAI, PPSN, PPSNA, PEMIS_N, PEMIS_F, PFF, PTV, PTG, PTN, PLW_RAD, PLWNET_N, PLWNET_V, PLWNET_G, PLWNET_V_DTV, PLWNET_V_DTG, PLWNET_V_DTN, PLWNET_G_DTV, PLWNET_G_DTG, PLWNET_G_DTN, PLWNET_N_DTV, PLWNET_N_DTG, PLWNET_N_DTN, PSIGMA_F, PSIGMA_FN, PLWDOWN_GN)
subroutine cotwores(PTSTEP, HPHOTO, OTR_ML, OSHADE, PVEGTYPE, OSTRESSDEF, PAH, PBH, PF2I, PDMAX, PPOI, PCSP, PTG, PF2, PSW_RAD, PRA, PQA, PQSAT, PLE, PPSNV, PDELTA, PLAI, PRHOA, PZENITH, PFZERO, PEPSO, PGAMM, PQDGAMM, PGMES, PGC, PQDGMES, PT1GMES, PT2GMES, PAMAX, PQDAMAX, PT1AMAX, PT2AMAX, PFFV, PIACAN_SUNLIT, PIACAN_SHADE, PFRAC_SUN, PIACAN, PABC, PAN, PANDAY, PRS, PANFM, PGPP, PANF, PRESP_LEAF)
subroutine e_budget_meb(HISBA, HCPSURF, PTSTEP, PPS, PCG, PCT, PCV, PWRVN, PWR, PTDEEP_A, PTDEEP_B, PD_G, PSOILCONDZ, PSOILHCAPZ, PSNOWDZ, PSNOWCONDZ, PSNOWHCAPZ, PSWNET_V, PSWNET_G, PSWNET_N, PTAU_N, PLWNET_V, PLWNET_G, PLWNET_N, PLWNET_V_DTV, PLWNET_V_DTG, PLWNET_V_DTN, PLWNET_G_DTV, PLWNET_G_DTG, PLWNET_G_DTN, PLWNET_N_DTV, PLWNET_N_DTG, PLWNET_N_DTN, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, PTHRMA_TA, PTHRMB_TA, PTHRMA_TC, PTHRMB_TC, PTHRMA_TG, PTHRMB_TG, PTHRMA_TV, PTHRMB_TV, PTHRMA_TN, PTHRMB_TN, PQSAT_G, PQSAT_V, PQSATI_N, PFF, PFFROZEN, PPSN, PPSNA, PPSNCV, PCHEATV, PCHEATG, PCHEATN, PLEG_DELTA, PLEGI_DELTA, PHUG, PHUGI, PHVG, PHVN, PFROZEN1, PFLXC_C_A, PFLXC_G_C, PFLXC_VG_C, PFLXC_VN_C, PFLXC_N_C, PFLXC_N_A, PFLXC_MOM, PTG, PTV, PTN, PFLXC_V_C, PHVGS, PHVNS, PDQSAT_G, PDQSAT_V, PDQSATI_N, PTC, PQC, PTA_IC, PQA_IC, PUSTAR2_IC, PVMOD, PDELTAT_G, PDELTAT_V, PDELTAT_N, PGRNDFLUX, PCPS, PLVTT, PLSTT, PHPSNOW, PMELTADV, PRESTORE, PDEEP_FLUX, PDELHEATV_SFC, PDELHEATG_SFC, PDELHEATG)
subroutine veg(PSW_RAD, PTA, PQA, PPS, PRGL, PLAI, PRSMIN, PGAMMA, PF2, PRS)
subroutine snow_leaves_frac_meb(PPSN, PPALPHAN, PWRVN, PTV, PCHIP, PLAIV, PWRVNMAX, PDELTAVN, PMELTVN)
subroutine radiative_transfert(OAGRI_TO_GRASS, PVEGTYPE, PALBVIS_VEG, PALBVIS_SOIL, PALBNIR_VEG, PALBNIR_SOIL, PSW_RAD, PLAI, PZENITH, PABC, PFAPARC, PFAPIRC, PMUS, PLAI_EFFC, OSHADE, PIACAN, PIACAN_SUNLIT, PIACAN_SHADE, PFRAC_SUN, PFAPAR, PFAPIR, PFAPAR_BS, PFAPIR_BS)
subroutine snowalb_spectral_bands_meb(PVEGTYPE, PSNOWALB, PSNOWRHO, PSNOWAGE, PPS, PPSN, PSNOWDZ, PZENITH, PSNOWALBVIS, PSNOWALBNIR, PSNOWALBFIR, PTAU_N)