7 OAGRIP, HSFTYPE, KPATCH, KK, PK, PEK, OFIX, OTIME, &
8 OMEB, OIRR, OALB, OUPDATE_ALB, PSOILGRID, PWG1, PWSAT, PPERM )
61 USE modd_data_cover_par
, ONLY : nvegtype, nvt_no, nvt_rock, nvt_snow
108 INTEGER,
INTENT(IN) :: KDEC
109 INTEGER,
INTENT(IN) :: KDEC2
110 REAL,
DIMENSION(:,:),
INTENT(IN) :: PCOVER
111 LOGICAL,
DIMENSION(:),
INTENT(IN) :: OCOVER
112 LOGICAL,
INTENT(IN) :: OAGRIP
113 CHARACTER(LEN=*),
INTENT(IN) :: HSFTYPE
114 INTEGER,
INTENT(IN) :: KPATCH
120 LOGICAL,
INTENT(IN) :: OFIX
121 LOGICAL,
INTENT(IN) :: OTIME
122 LOGICAL,
INTENT(IN) :: OMEB
123 LOGICAL,
INTENT(IN) :: OIRR
124 LOGICAL,
INTENT(IN) :: OALB
125 LOGICAL,
INTENT(IN) :: OUPDATE_ALB
127 REAL,
DIMENSION(:),
OPTIONAL,
INTENT(IN) :: PWG1
128 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(IN) :: PWSAT
129 REAL,
DIMENSION(:),
OPTIONAL,
INTENT(IN) :: PPERM
131 REAL,
DIMENSION(:) ,
OPTIONAL,
INTENT(IN) :: PSOILGRID
136 REAL,
DIMENSION(:),
ALLOCATABLE :: ZWORKI
137 CHARACTER(LEN=3) :: YTREE, YNAT, YLAI, YVEG, YBAR, YDIF
149 INTEGER :: ISIZE_LMEB_PATCH
151 REAL,
ALLOCATABLE,
DIMENSION(:) :: ZH_VEG
157 REAL(KIND=JPRB) :: ZHOOK_HANDLE
163 IF (
lhook)
CALL dr_hook(
'CONVERT_PATCH_ISBA',0,zhook_handle)
165 IF (
ASSOCIATED(dtco%XDATA_WEIGHT))
DEALLOCATE(dtco%XDATA_WEIGHT)
167 IF (hsftype==
'NAT')
THEN 175 isize_lmeb_patch =
count(io%LMEB_PATCH(:))
176 ELSEIF (hsftype==
'GRD')
THEN 199 IF (io%CISBA/=
'DIF')
THEN 200 IF (gdata .AND. any(dtv%LDATA_DICE))
THEN 202 pk%XD_ICE,dtv%XPAR_VEGTYPE,dtv%XPAR_DICE,ynat,
'ARI' 209 IF (gdata .AND. any(dtv%LDATA_Z0_O_Z0H))
THEN 211 pk%XZ0_O_Z0H,dtv%XPAR_VEGTYPE,dtv%XPAR_Z0_O_Z0H,ynat
'ARI' 218 IF (gdata .AND. any(dtv%LDATA_H_TREE))
THEN 220 pk%XH_TREE,dtv%XPAR_VEGTYPE,dtv%XPAR_H_TREE,ytree,
'ARI' 227 IF (io%CPHOTO/=
'NON')
THEN 229 IF (
SIZE(pk%XRE25)>0)
THEN 230 IF (gdata .AND. any(dtv%LDATA_RE25))
THEN 232 pk%XRE25,dtv%XPAR_VEGTYPE,dtv%XPAR_RE25,ynat,
'ARI' 239 IF (
SIZE(pk%XDMAX)>0)
THEN 240 IF (gdata .AND. any(dtv%LDATA_DMAX))
THEN 242 pk%XDMAX,dtv%XPAR_VEGTYPE,dtv%XPAR_DMAX,ytree,
'ARI' 255 IF (.NOT.oupdate_alb)
THEN 258 IF (gdata .AND. any(dtv%LDATA_VEG))
THEN 259 CALL av_pgd_param(dtv%XPAR_LAI, dtv%XPAR_VEG, pek%XVEG,dtv%XPAR_VEGTYPE
260 'ARI',pk%NR_P,io%NPATCH,kpatch)
268 IF (gdata .AND. any(dtv%LDATA_LAI))
THEN 270 pek%XLAI,dtv%XPAR_VEGTYPE,dtv%XPAR_LAI(:,kdec2,:),yveg
'ARI' 280 IF (gdata .AND. any(dtv%LDATA_EMIS))
THEN 282 pek%XEMIS ,dtv%XPAR_VEGTYPE,dtv%XPAR_EMIS(:,kdec2,
'ARI' 291 IF (gdata .AND. any(dtv%LDATA_Z0))
THEN 293 pek%XZ0,dtv%XPAR_VEGTYPE,dtv%XPAR_Z0(:,kdec2,:),ynat
'CDN' 302 IF (gdata .AND. any(dtv%LDATA_ALBNIR_VEG))
THEN 304 pek%XALBNIR_VEG,dtv%XPAR_VEGTYPE,dtv%XPAR_ALBNIR_VEG
'ARI' 306 ELSEIF (io%CALBEDO==
'CM13')
THEN 314 IF (gdata .AND. any(dtv%LDATA_ALBVIS_VEG))
THEN 316 pek%XALBVIS_VEG,dtv%XPAR_VEGTYPE,dtv%XPAR_ALBVIS_VEG
'ARI' 318 ELSEIF (io%CALBEDO==
'CM13')
THEN 326 IF ((io%CALBEDO==
'CM13'.OR.io%LTR_ML))
THEN 327 pek%XALBUV_VEG(:)=pek%XALBVIS_VEG(:)
328 ELSEIF (gdata .AND. any(dtv%LDATA_ALBUV_VEG))
THEN 330 pek%XALBUV_VEG,dtv%XPAR_VEGTYPE,dtv%XPAR_ALBUV_VEG
'ARI' 337 IF (.NOT.oupdate_alb)
THEN 340 IF(
SIZE(pek%XRSMIN)>0)
THEN 341 IF (gdata .AND. any(dtv%LDATA_RSMIN))
THEN 343 pek%XRSMIN,dtv%XPAR_VEGTYPE,dtv%XPAR_RSMIN,ylai,
'INV' 347 ocover,pk%NR_P,io%NPATCH,kpatch,kdecade=kdec)
351 IF (gdata .AND. any(dtv%LDATA_GAMMA))
THEN 353 pek%XGAMMA,dtv%XPAR_VEGTYPE,dtv%XPAR_GAMMA,yveg,
'ARI' 360 IF (gdata .AND. any(dtv%LDATA_WRMAX_CF))
THEN 362 pek%XWRMAX_CF,dtv%XPAR_VEGTYPE,dtv%XPAR_WRMAX_CF,yveg
'ARI' 369 IF (gdata .AND. any(dtv%LDATA_RGL))
THEN 371 pek%XRGL,dtv%XPAR_VEGTYPE,dtv%XPAR_RGL,yveg,
'ARI',
375 pk%NR_P,io%NPATCH,kpatch,kdecade=kdec)
378 IF (gdata .AND. any(dtv%LDATA_CV))
THEN 380 pek%XCV,dtv%XPAR_VEGTYPE,dtv%XPAR_CV,yveg,
'INV',&
381 pk%NR_P,io%NPATCH,kpatch,kdecade=kdec2)
384 pk%NR_P,io%NPATCH,kpatch,kdecade=kdec)
387 IF (isize_lmeb_patch>0 .OR. io%CPHOTO/=
'NON')
THEN 389 IF(
SIZE(pek%XBSLAI)>0)
THEN 390 IF (gdata .AND. any(dtv%LDATA_BSLAI))
THEN 392 pek%XBSLAI,dtv%XPAR_VEGTYPE,dtv%XPAR_BSLAI,yveg,
'ARI' 401 IF (io%CPHOTO/=
'NON')
THEN 403 IF (
SIZE(pek%XLAIMIN)>0)
THEN 404 IF (gdata .AND. any(dtv%LDATA_LAIMIN))
THEN 406 pek%XLAIMIN,dtv%XPAR_VEGTYPE,dtv%XPAR_LAIMIN,yveg,
'ARI' 414 IF (
SIZE(pek%XSEFOLD)>0)
THEN 415 IF (gdata .AND. any(dtv%LDATA_SEFOLD))
THEN 417 pek%XSEFOLD,dtv%XPAR_VEGTYPE,dtv%XPAR_SEFOLD,yveg,
'ARI' 425 IF (
SIZE(pek%XGMES)>0)
THEN 426 IF (gdata .AND. any(dtv%LDATA_GMES))
THEN 428 pek%XGMES,dtv%XPAR_VEGTYPE,dtv%XPAR_GMES,yveg,
'ARI' 436 IF (
SIZE(pek%XGC)>0)
THEN 437 IF (gdata .AND. any(dtv%LDATA_GC))
THEN 439 pek%XGC,dtv%XPAR_VEGTYPE,dtv%XPAR_GC,yveg,
'ARI' 447 IF (
SIZE(pek%XF2I)>0)
THEN 448 IF (gdata .AND. any(dtv%LDATA_F2I))
THEN 450 pek%XF2I,dtv%XPAR_VEGTYPE,dtv%XPAR_F2I,yveg,
'ARI',&
451 pk%NR_P,io%NPATCH,kpatch,kdecade=kdec2)
458 IF (io%CPHOTO==
'NIT' .OR. io%CPHOTO==
'NCB')
THEN 460 IF (
SIZE(pek%XCE_NITRO)>0)
THEN 461 IF (gdata .AND. any(dtv%LDATA_CE_NITRO))
THEN 463 pek%XCE_NITRO,dtv%XPAR_VEGTYPE,dtv%XPAR_CE_NITRO,yveg
'ARI' 471 IF (
SIZE(pek%XCF_NITRO)>0)
THEN 472 IF (gdata .AND. any(dtv%LDATA_CF_NITRO))
THEN 474 pek%XCF_NITRO,dtv%XPAR_VEGTYPE,dtv%XPAR_CF_NITRO,yveg
'ARI' 482 IF (
SIZE(pek%XCNA_NITRO)>0)
THEN 483 IF (gdata .AND. any(dtv%LDATA_CNA_NITRO))
THEN 485 pek%XCNA_NITRO,dtv%XPAR_VEGTYPE,dtv%XPAR_CNA_NITRO,yveg
'ARI' 499 IF (
SIZE(pek%LSTRESS)>0)
THEN 507 IF (omeb .AND. .NOT.oupdate_alb)
THEN 511 IF (gdata .AND. any(dtv%LDATA_GNDLITTER))
THEN 512 CALL av_pgd_param(dtv%XPAR_LAI, dtv%XPAR_VEG, pek%XGNDLITTER,dtv%XPAR_VEGTYPE
521 IF (gdata .AND. any(dtv%LDATA_H_VEG))
THEN 523 pek%XH_VEG,dtv%XPAR_VEGTYPE,dtv%XPAR_H_VEG(:,kdec2
'ARI' 530 IF(io%LMEB_PATCH(kpatch))
THEN 531 ALLOCATE(zh_veg(
SIZE(pek%XH_VEG)))
533 WHERE(zh_veg>1000.) zh_veg=0.
534 zh_veg=max(zh_veg,1.0e-3)
541 IF (gdata .AND. any(dtv%LDATA_Z0LITTER))
THEN 543 pek%XZ0LITTER,dtv%XPAR_VEGTYPE,dtv%XPAR_Z0LITTER(:
'CDN' 552 IF (oirr .AND. .NOT.oupdate_alb)
THEN 554 IF ((io%CPHOTO ==
'NIT' .OR. io%CPHOTO==
'NCB') .AND. oagrip)
THEN 559 ALLOCATE(zworki(
SIZE(pek%TSEED,1)))
561 IF(
SIZE(pek%TSEED)>0)
THEN 562 IF (gdata .AND. any(dtv%LDATA_SEED_M) .AND. any(dtv%LDATA_SEED_D)
THEN 564 zworki,dtv%XPAR_VEGTYPE,dtv%XPAR_SEED_M(:,:)
'MAJ' 568 zworki,dtv%XPAR_VEGTYPE,dtv%XPAR_SEED_D(:,:)
'MAJ' 580 IF (
SIZE(pek%TREAP)>0)
THEN 581 IF (gdata .AND. any(dtv%LDATA_REAP_M) .AND. any(dtv%LDATA_REAP_D)
THEN 583 zworki,dtv%XPAR_VEGTYPE,dtv%XPAR_REAP_M(:,:)
'MAJ' 587 zworki,dtv%XPAR_VEGTYPE,dtv%XPAR_REAP_D(:,:)
'MAJ' 598 IF (
SIZE(pek%XIRRIG)>0)
THEN 599 IF (gdata .AND. any(dtv%LDATA_IRRIG))
THEN 601 pek%XIRRIG,dtv%XPAR_VEGTYPE,dtv%XPAR_IRRIG(:,kdec2
'ARI' 609 IF (
SIZE(pek%XWATSUP)>0)
THEN 610 IF (gdata .AND. any(dtv%LDATA_WATSUP))
THEN 612 pek%XWATSUP,dtv%XPAR_VEGTYPE,dtv%XPAR_WATSUP(:,kdec2
'ARI' 626 IF (gdata .AND. any(dtv%LDATA_ALBNIR_SOIL))
THEN 628 pek%XALBNIR_SOIL,dtv%XPAR_VEGTYPE,dtv%XPAR_ALBNIR_SOIL
'ARI' 630 ELSEIF (io%CALBEDO==
'CM13')
THEN 634 CALL soil_albedo (io%CALBEDO, pwsat(:,1), pwg1, kk, pek,
"NIR" )
637 IF (gdata .AND. any(dtv%LDATA_ALBVIS_SOIL))
THEN 639 pek%XALBVIS_SOIL,dtv%XPAR_VEGTYPE,dtv%XPAR_ALBVIS_SOIL
'ARI' 641 ELSEIF (io%CALBEDO==
'CM13')
THEN 645 CALL soil_albedo (io%CALBEDO, pwsat(:,1), pwg1, kk, pek,
"VIS" )
649 IF (io%CALBEDO==
'CM13'.OR.io%LTR_ML)
THEN 650 pek%XALBUV_SOIL(:)=pek%XALBVIS_SOIL(:)
651 ELSEIF (gdata .AND. any(dtv%LDATA_ALBUV_SOIL))
THEN 653 pek%XALBUV_SOIL,dtv%XPAR_VEGTYPE,dtv%XPAR_ALBUV_SOIL
'ARI' 656 CALL soil_albedo (io%CALBEDO, pwsat(:,1), pwg1, kk, pek,
"UV" )
661 IF (
ASSOCIATED(dtco%XDATA_WEIGHT))
DEALLOCATE(dtco%XDATA_WEIGHT)
663 IF (
lhook)
CALL dr_hook(
'CONVERT_PATCH_ISBA',1,zhook_handle)
673 REAL,
DIMENSION(PK%NSIZE_P) :: ZWORK
674 REAL,
DIMENSION(SIZE(DTV%LPAR_STRESS,1),NVEGTYPE) :: ZSTRESS
676 REAL(KIND=JPRB) :: ZHOOK_HANDLE
678 IF (
lhook)
CALL dr_hook(
'CONVERT_PATCH_ISBA:SET_STRESS',0,zhook_handle)
680 IF (gdata .AND. any(dtv%LDATA_STRESS))
THEN 684 IF (dtv%LPAR_STRESS(ji,jveg)) zstress(pk%NR_P(ji),jveg) = 1.
688 zwork,dtv%XPAR_VEGTYPE,zstress,yveg,
'ARI',pk%NR_P,io%NPATCH
694 pek%LSTRESS(:) = .false.
696 pek%LSTRESS(:) = .true.
699 IF (
lhook)
CALL dr_hook(
'CONVERT_PATCH_ISBA:SET_STRESS',1,zhook_handle)
708 USE modd_isba_par
, ONLY : xpermfrac
712 USE modi_ini_data_rootfrac
713 USE modi_ini_data_soil
719 INTEGER,
INTENT(IN) :: KNI
720 INTEGER,
INTENT(IN) :: KGROUND
722 REAL,
DIMENSION (SIZE(XDATA_GROUND_DEPTH,1),NVEGTYPE) :: ZDATA_GROUND_DEPTH
724 REAL,
DIMENSION (KNI) :: ZDTOT, ZDG2, ZROOT_EXT, ZROOT_LIN
729 LOGICAL :: GDATA_DG, GDATA_GROUND_DEPTH, GDATA_ROOT_DEPTH, GDATA_ROOTFRAC
732 REAL(KIND=JPRB) :: ZHOOK_HANDLE
734 IF (
lhook)
CALL dr_hook(
'CONVERT_PATCH_ISBA:SET_GRID_PARAM',0,zhook_handle
736 IF(io%CISBA==
'DIF')
THEN 737 IF(.NOT.ofix)
CALL abor1_sfx(
'CONVERT_PATCH_ISBA: SET_GRID_PARAM: KWG_LAYER, PDROOT and PGD2 must be present with DIF' 741 gmeb = (omeb .AND. (isize_lmeb_patch>0))
747 pk%XROOTFRAC(:,:) =
xundef 751 gdata_dg = gdata .AND. any(dtv%LDATA_DG)
752 gdata_ground_depth = gdata .AND. any(dtv%LDATA_GROUND_DEPTH)
753 gdata_root_depth = gdata .AND. any(dtv%LDATA_ROOT_DEPTH)
754 gdata_rootfrac = gdata .AND. any(dtv%LDATA_ROOTFRAC)
771 pk%XDG(:,jlayer),dtv%XPAR_VEGTYPE,dtv%XPAR_DG(:,jlayer
777 IF(.NOT.gdata_ground_depth.AND.io%CISBA==
'DIF'.AND.
cdgdif==
'ROOT')
THEN 784 ELSEIF(jveg/=nvt_rock.AND.jveg/=nvt_snow)
THEN 794 IF (io%CISBA/=
'2-L')
THEN 796 IF (gdata_ground_depth .AND. (io%CISBA==
'DIF' .OR. .NOT.gdata_dg))
THEN 799 zdtot(:),dtv%XPAR_VEGTYPE,dtv%XPAR_GROUND_DEPTH(:,
804 IF (gdata_dg) zdtot(:) = min(zdtot(:),pk%XDG(:,kground))
805 ELSEIF (gdata_dg)
THEN 807 zdtot(:) = pk%XDG(:,kground)
810 CALL av_pgd_1p(dtco, zdtot(:),pcover,zdata_ground_depth(:,:),ynat,
cdgavg 812 IF(io%CISBA==
'DIF'.AND.
cdgdif==
'ROOT')zdg2(:)=zdtot(:)
821 IF (io%CISBA==
'DIF' .OR. .NOT.gdata_dg)
THEN 823 gnoeco=(gdata_root_depth .AND. .NOT.gdata_rootfrac)
827 zdg2(:),dtv%XPAR_VEGTYPE,dtv%XPAR_ROOT_DEPTH(:,:),ynat
832 IF (any(dtv%LDATA_DG)) zdg2(:) = min(zdg2(:),pk%XDG(:,kground))
833 zdtot(:) = max(zdg2(:),zdtot(:))
834 IF (io%CISBA==
'DIF')
THEN 836 pk%XDROOT(:),dtv%XPAR_VEGTYPE,dtv%XPAR_ROOT_DEPTH(
839 WHERE(pk%XDROOT(:)/=
xundef)
843 WHERE(pk%XDROOT(:).NE.
xundef) zdtot(:) = max(pk%XDROOT(:),zdtot
844 WHERE(pk%XDROOT(:).NE.
xundef) zdg2(:) = max(pk%XDROOT(:),zdg2
850 IF (gdata_dg)
WHERE (pk%XDROOT(:).NE.
xundef) pk%XDROOT(:) = min(pk%XDROOT
854 IF (io%CISBA==
'DIF')
THEN 858 WHERE(pk%XDROOT(:).NE.
xundef) zdtot(:) = max(pk%XDROOT(:),zdtot
859 WHERE(pk%XDROOT(:).NE.
xundef) zdg2(:) = max(pk%XDROOT(:),zdg2
868 IF ( gdata_ground_depth .OR. gdata_dg )
THEN 869 zdg2(:) = min(zdg2(:),zdtot(:))
870 IF (io%CISBA==
'DIF')
WHERE (pk%XDROOT(:).NE.
xundef) pk%XDROOT(:) =
875 IF (.NOT.gdata_dg)
THEN 877 IF (io%CISBA==
'DIF')
THEN 878 IF( maxval(zdtot,zdtot/=
xundef)>psoilgrid(kground) )
THEN 879 CALL abor1_sfx(
'CONVERT_PATCH_ISBA: not enough soil layer with optimized grid' 886 CALL ini_data_soil(io%CISBA, pk%XDG,prootdepth=zdg2, psoildepth=zdtot
888 IF (io%CISBA==
'DIF'.AND.
cdgdif==
'ROOT')
THEN 890 IF(io%LPERM.AND.pk%NWG_LAYER(jj)/=
nundef)
THEN 891 IF(pperm(jj)<xpermfrac) zdg2(jj)=pk%XDG(jj,pk%NWG_LAYER(jj
892 ELSEIF(pk%NWG_LAYER(jj)/=
nundef)
THEN 893 zdg2(jj)=pk%XDG(jj,pk%NWG_LAYER(jj))
901 ELSEIF ( io%CISBA==
'DIF')
THEN 904 IF(gdata_ground_depth)
THEN 907 IF( pk%XDG(jj,jl) <= zdtot(jj) .AND. zdtot(jj) <
xundef ) &
908 pk%NWG_LAYER(jj) = jl
912 pk%NWG_LAYER(:) = kground
918 IF (io%CISBA==
'DIF' .AND. .NOT.any(dtv%LDATA_ROOTFRAC))
THEN 921 IF(pk%NWG_LAYER(jj)/=
nundef)
THEN 922 jl = pk%NWG_LAYER(jj)
923 zdg2(jj)=min(zdg2(jj),pk%XDG(jj,jl))
924 IF (pk%XDROOT(jj)/=
xundef) pk%XDROOT(jj)=min(pk%XDROOT(jj),pk%XDG
933 IF (io%CISBA==
'DIF')
THEN 935 IF (gdata_rootfrac)
THEN 940 pk%XROOTFRAC(:,jl),dtv%XPAR_VEGTYPE,dtv%XPAR_ROOTFRAC
'ARI' 950 IF( pk%XROOTFRAC(jj,jl)>=1.0 )
THEN 951 zdg2(jj) = pk%XDG(jj,jl)
952 pk%XDROOT(jj) = pk%XDG(jj,jl)
953 ELSEIF (jl<kground.AND.pk%XROOTFRAC(jj,jl)>0.0)
THEN 954 IF (pk%NWG_LAYER(jj)<=jl) pk%NWG_LAYER(jj) = jl+1
959 IF(pk%XDROOT(jj)==0.0.AND.zdg2(jj)==0.0)
THEN 961 zdg2(jj)=min(0.6,pk%XDG(jj,jl))
969 IF (gdata .AND. any(dtv%LDATA_ROOT_LIN))
THEN 971 zroot_lin(:),dtv%XPAR_VEGTYPE,dtv%XPAR_ROOT_LIN(:,
'ARI' 978 IF (gdata .AND. any(dtv%LDATA_ROOT_EXTINCTION))
THEN 980 zroot_ext(:),dtv%XPAR_VEGTYPE,dtv%XPAR_ROOT_EXTINCTION
'ARI' 990 WHERE(pk%XROOTFRAC(:,:)/=
xundef) pk%XROOTFRAC(:,:)=nint(pk%XROOTFRAC(:
996 IF (
lhook)
CALL dr_hook(
'CONVERT_PATCH_ISBA:SET_GRID_PARAM',1,zhook_handle
real, dimension(:,:), allocatable xdata_irrig
real, dimension(:,:), allocatable xdata_ce_nitro
real, dimension(:,:), allocatable xdata_albnir_veg
real, dimension(:,:), allocatable xdata_sefold_st
real, dimension(:,:), allocatable xdata_root_lin
real, dimension(:,:), allocatable xdata_albvis_veg
real, dimension(:,:,:), allocatable xdata_z0
real, dimension(:,:), allocatable xdata_rgl
subroutine convert_patch_isba(DTCO, DTV, IO, KDEC, KDEC2, PCOVER,
real, dimension(:,:), allocatable xdata_gc
real, dimension(:,:), allocatable xdata_dmax
type(date_time), dimension(:,:), pointer tdata_seed
real, dimension(:,:), allocatable xdata_gmes_st
real, dimension(:,:), allocatable xdata_albuv_veg
real, dimension(:,:,:), allocatable xdata_alb_soil_nir
real, dimension(:,:), allocatable xdata_gamma
real, dimension(:,:), allocatable xdata_root_depth
real, dimension(:,:), allocatable xdata_laimin
real, dimension(:,:), allocatable xdata_gmes
subroutine ini_data_soil(HISBA, PDG_OUT, PSURF, PSURF2, PROOTDEPTH, PSOILDEPTH, PSOILGRID, KWG_LAYER)
real, dimension(:,:), allocatable xdata_cv
subroutine abor1_sfx(YTEXT)
real, dimension(:,:), allocatable xdata_z0_o_z0h
real, dimension(:,:), allocatable xdata_bslai
real, dimension(:,:), allocatable xdata_dmax_st
type(date_time), dimension(:,:), pointer tdata_reap
real, dimension(:,:), allocatable xdata_rsmin
real, dimension(:,:), allocatable xdata_bslai_st
real, dimension(:,:,:), allocatable xdata_alb_veg_nir
integer, parameter nundef
real, dimension(:,:), allocatable xdata_cf_nitro
real, dimension(:,:), allocatable xdata_wrmax_cf
subroutine soil_albedo(HALBEDO, PWSAT, PWG1, KK, PEK, HBAND)
real, dimension(:,:,:), allocatable xdata_veg
subroutine ini_data_rootfrac(PDG, PROOTDEPTH, PROOT_EXT, PROOT_LI
real, dimension(:,:), allocatable xdata_dice
subroutine set_grid_param(KNI, KGROUND)
real, dimension(:,:,:), allocatable xdata_h_veg
real, dimension(:,:), allocatable xdata_h_tree
real, dimension(:,:,:), allocatable xdata_alb_veg_vis
real, dimension(:,:,:), allocatable xdata_lai
real, dimension(:,:,:), allocatable xdata_z0litter
real, dimension(:,:), allocatable xdata_watsup
real, dimension(:,:), allocatable xdata_gc_st
real, dimension(:,:), allocatable xdata_re25
real, dimension(:,:), allocatable xdata_ground_depth
real, dimension(:,:), allocatable xdata_cna_nitro
real, dimension(:,:), allocatable xdata_stress
real, dimension(:,:), allocatable xdata_f2i
subroutine av_pgd_param(PLAI_IN, PVEG_IN, PFIELD, PVEGTYPE, PDATA, HSFTYPE, HATYPE, KMAS
real, dimension(:,:,:), allocatable xdata_emis_eco
real, dimension(:,:), allocatable xdata_sefold
real, dimension(:,:,:), allocatable xdata_alb_soil_vis
real, dimension(:,:), allocatable xdata_root_extinction
real, dimension(:,:,:), allocatable xdata_gndlitter