7 IO, DTI, SB, S, IG, K, NK, NIG, NP, NPE, &
8 NAG, NISS, ISS, NCHI, CHI, ID, GB, NGB, &
9 NDST, SLT, SV, HPROGRAM,HINIT,OLAND_USE, &
10 KI,KSV,KSW,HSV,PCO2,PRHOA, &
11 PZENITH,PSW_BANDS,PDIR_ALB,PSCA_ALB, &
12 PEMIS,PTSRAD,PTSURF, HTEST )
94 USE modd_assim
, ONLY : cassim_isba, lassim
96 USE modd_deepsoil
, ONLY : lphysdomc, ldeepsoil, xtdeep_cli, xgammat_cli
97 USE modd_agri
, ONLY : lagrip, xthreshold
102 USE modd_data_cover_par
, ONLY : nvegtype
104 USE modd_snow_par
, ONLY : xemissn
115 USE modi_init_io_surf_n
116 USE modi_allocate_physio
117 USE modi_init_isba_mixpar
118 USE modi_convert_patch_isba
119 USE modi_init_veg_pgd_n
121 USE modi_exp_decay_soil_fr
123 USE modi_soiltemp_arp_par
124 USE modi_end_io_surf_n
126 USE modi_make_choice_array
129 USE modi_init_isba_landuse
132 USE modi_init_chemical_n
133 USE modi_open_namelist
134 USE modi_ch_init_dep_isba_n
135 USE modi_close_namelist
138 USE modi_averaged_albedo_emis_isba
139 USE modi_diag_isba_init_n
140 USE modi_init_surf_topd
141 USE modi_isba_soc_parameters
145 USE modi_isba_to_topd
161 LOGICAL,
INTENT(IN) :: OREAD_BUDGETC
169 TYPE(
grid_t),
INTENT(INOUT) :: IG
176 TYPE(
sso_np_t),
INTENT(INOUT) :: NISS
177 TYPE(
sso_t),
INTENT(INOUT) :: ISS
184 TYPE(
dst_np_t),
INTENT(INOUT) :: NDST
185 TYPE(
slt_t),
INTENT(INOUT) :: SLT
186 TYPE(
sv_t),
INTENT(INOUT) :: SV
188 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
189 CHARACTER(LEN=3),
INTENT(IN) :: HINIT
190 LOGICAL,
INTENT(IN) :: OLAND_USE
191 INTEGER,
INTENT(IN) :: KI
192 INTEGER,
INTENT(IN) :: KSV
193 INTEGER,
INTENT(IN) :: KSW
194 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN) :: HSV
195 REAL,
DIMENSION(KI),
INTENT(IN) :: PCO2
196 REAL,
DIMENSION(KI),
INTENT(IN) :: PRHOA
197 REAL,
DIMENSION(KI),
INTENT(IN) :: PZENITH
198 REAL,
DIMENSION(KSW),
INTENT(IN) :: PSW_BANDS
199 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: PDIR_ALB
200 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: PSCA_ALB
201 REAL,
DIMENSION(KI),
INTENT(OUT) :: PEMIS
202 REAL,
DIMENSION(KI),
INTENT(OUT) :: PTSRAD
203 REAL,
DIMENSION(KI),
INTENT(OUT) :: PTSURF
205 CHARACTER(LEN=2),
INTENT(IN) :: HTEST
211 TYPE(
grid_t),
POINTER :: GK
215 TYPE(
agri_t),
POINTER :: AGK
216 TYPE(
sso_t),
POINTER :: ISSK
217 TYPE(
dst_t),
POINTER :: DSTK
219 REAL,
DIMENSION(U%NDIM_FULL) :: ZF_PARAM, ZC_DEPTH_RATIO
221 REAL,
DIMENSION(KI) :: ZTSRAD_NAT
222 REAL,
DIMENSION(KI) :: ZTSURF_NAT
223 REAL,
DIMENSION(KI) :: ZM
225 REAL,
DIMENSION(KI) :: ZWG1
226 REAL,
DIMENSION(KI,IO%NPATCH) :: ZTG1
227 REAL,
DIMENSION(KI,IO%NPATCH) :: ZF
229 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZWORK
230 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZDG_SOIL, ZDG_SOIL_P
231 REAL,
DIMENSION(:),
ALLOCATABLE :: ZSUM_PATCH
237 INTEGER :: IDECADE, IDECADE2
239 INTEGER :: ISIZE_LMEB_PATCH
241 LOGICAL :: GDIM, GCAS1, GCAS2, GCAS3
242 INTEGER :: JVEG, IVERSION, IBUGFIX, IMASK, JMAXLOC
244 CHARACTER(LEN=4) :: YLVL
245 CHARACTER(LEN=12) :: YRECFM
247 REAL(KIND=JPRB) :: ZHOOK_HANDLE
253 IF (
lhook)
CALL dr_hook(
'COMPUTE_ISBA_PARAMETERS',0,zhook_handle)
256 IF (htest/=
'OK')
THEN 257 CALL abor1_sfx(
'COMPUTE_ISBA_PARAMETERS: FATAL ERROR DURING ARGUMENT TRANSFER')
270 ALLOCATE(s%XVEGTYPE(ki,nvegtype))
271 IF (dti%LDATA_VEGTYPE)
THEN 272 s%XVEGTYPE = dti%XPAR_VEGTYPE
276 CALL av_pgd(dtco, s%XVEGTYPE(:,jveg),s%XCOVER ,dtco%XDATA_VEGTYPE(:,jveg),
'NAT',
'ARI',s%LCOVER)
281 ALLOCATE(s%XPATCH(ki,io%NPATCH))
282 ALLOCATE(s%XVEGTYPE_PATCH(ki,nvegtype,io%NPATCH))
283 CALL surf_patch(io%NPATCH,s%XVEGTYPE,s%XPATCH,s%XVEGTYPE_PATCH)
287 IF (io%XRM_PATCH/=0.)
THEN 289 WRITE(iluout,*)
" REMOVE PATCH below 5 % add to dominant patch " 293 jmaxloc = maxval(
maxloc(s%XPATCH(ji,:)))
296 IF ( s%XPATCH(ji,jp)<io%XRM_PATCH )
THEN 297 s%XPATCH(ji,jmaxloc) = s%XPATCH(ji,jmaxloc) + s%XPATCH(ji,jp)
298 s%XPATCH(ji,jp) = 0.0
314 IF (s%TTIME%TDATE%MONTH /=
nundef)
THEN 315 idecade = 3 * ( s%TTIME%TDATE%MONTH - 1 ) + min(s%TTIME%TDATE%DAY-1,29) / 10 + 1
323 CALL init_isba_mixpar(dtco, dti, ig%NDIM, io, idecade, idecade2, s%XCOVER, s%LCOVER,
'NAT')
325 isize_lmeb_patch=
count(io%LMEB_PATCH(:))
326 IF (isize_lmeb_patch>0)
THEN 327 CALL fix_meb_veg(dti, ig%NDIM, io%LMEB_PATCH, io%NPATCH)
334 IF (hinit ==
'ALL' .AND. io%CRESPSL==
'CNT' .AND. io%CPHOTO ==
'NCB')
CALL carbon_init 352 pk%NSIZE_P =
count(s%XPATCH(:,jp) > 0.0)
355 ALLOCATE(pk%NR_P (pk%NSIZE_P))
356 CALL get_1d_mask(pk%NSIZE_P, ki, s%XPATCH(:,jp), pk%NR_P)
359 ALLOCATE(kk%XVEGTYPE(pk%NSIZE_P,nvegtype))
362 ALLOCATE(pk%XPATCH(pk%NSIZE_P))
363 ALLOCATE(pk%XVEGTYPE_PATCH (pk%NSIZE_P,nvegtype))
365 CALL pack_same_rank(pk%NR_P,s%XVEGTYPE_PATCH(:,:,jp),pk%XVEGTYPE_PATCH)
371 ALLOCATE(kk%XPERM(pk%NSIZE_P))
374 ALLOCATE(kk%XPERM(0))
378 ALLOCATE(kk%XSAND(pk%NSIZE_P,io%NGROUND_LAYER))
379 ALLOCATE(kk%XCLAY(pk%NSIZE_P,io%NGROUND_LAYER))
381 ALLOCATE(issk%XAOSIP(pk%NSIZE_P))
382 ALLOCATE(issk%XAOSIM(pk%NSIZE_P))
383 ALLOCATE(issk%XAOSJP(pk%NSIZE_P))
384 ALLOCATE(issk%XAOSJM(pk%NSIZE_P))
385 ALLOCATE(issk%XHO2IP(pk%NSIZE_P))
386 ALLOCATE(issk%XHO2IM(pk%NSIZE_P))
387 ALLOCATE(issk%XHO2JP(pk%NSIZE_P))
388 ALLOCATE(issk%XHO2JM(pk%NSIZE_P))
410 lagrip,
'NAT', jp, kk, pk, pek, &
411 .true., .true., .true., .true., .false., .false., &
412 psoilgrid=io%XSOILGRID, pperm=kk%XPERM )
417 CALL init_veg_pgd_n(issk, dti, io, s, k, kk, pk, pek, agk, ki, &
418 hprogram,
'NATURE', iluout, pk%NSIZE_P, s%TTIME%TDATE%MONTH, &
419 ldeepsoil, lphysdomc, xtdeep_cli, xgammat_cli, &
420 lagrip, xthreshold, hinit, pco2, prhoa )
428 IF(io%CRAIN==
'SGH')
THEN 429 ALLOCATE(kk%XMUF(pk%NSIZE_P))
435 ALLOCATE(kk%XFSAT(pk%NSIZE_P))
440 ALLOCATE(kk%XFFLOOD (pk%NSIZE_P))
441 ALLOCATE(kk%XPIFLOOD(pk%NSIZE_P))
442 ALLOCATE(kk%XFF (pk%NSIZE_P))
443 ALLOCATE(kk%XFFG (pk%NSIZE_P))
444 ALLOCATE(kk%XFFV (pk%NSIZE_P))
445 ALLOCATE(kk%XFFROZEN(pk%NSIZE_P))
446 ALLOCATE(kk%XALBF (pk%NSIZE_P))
447 ALLOCATE(kk%XEMISF (pk%NSIZE_P))
459 IF (dti%LDATA_CONDSAT)
DEALLOCATE(dti%XPAR_CONDSAT)
469 IF(io%CRAIN==
'SGH')
THEN 475 ALLOCATE(iss%XZ0REL(ki))
490 CALL init_chemical_n(iluout, ksv, hsv, chi%SVI, chi%CCH_NAMES, chi%CAER_NAMES, &
491 hdstnames=chi%CDSTNAMES, hsltnames=chi%CSLTNAMES )
495 IF (chi%SVI%NBEQ > 0)
THEN 501 CALL ch_init_dep_isba_n(chi, nchi, np, dtco, io%NPATCH, s%LCOVER, s%XCOVER, ich, iluout, ki)
509 IF (chi%SVI%NDSTEQ >=1)
THEN 511 ALLOCATE (dstk%XSFDST (pk%NSIZE_P, chi%SVI%NDSTEQ))
512 ALLOCATE (dstk%XSFDSTM(pk%NSIZE_P, chi%SVI%NDSTEQ))
513 dstk%XSFDST (:,:) = 0.
514 dstk%XSFDSTM(:,:) = 0.
515 CALL init_dst(dstk, u, hprogram, pk%NSIZE_P, pk%NR_P, pk%XVEGTYPE_PATCH)
517 ALLOCATE(dstk%XSFDST (0,0))
518 ALLOCATE(dstk%XSFDSTM(0,0))
523 IF (chi%SVI%NSLTEQ >=1)
THEN 541 IF(io%CISBA==
'DIF' .AND. io%CKSAT==
'SGH')
THEN 543 WRITE(iluout,*)
'THE KSAT EXP PROFILE WITH ISBA-DF IS NOT PHYSIC AND HAS BEEN REMOVED FOR NOW' 544 WRITE(iluout,*)
'A NEW PHYSICAL APPROACH WILL BE DEVELLOPED ACCOUNTING FOR COMPACTION IN ALL ' 545 WRITE(iluout,*)
'HYDRODYNAMIC PARAMETERS (WSAT, PSISAT, KSAT, B) AND NOT ONLY IN KSAT ' 546 CALL abor1_sfx(
'CKSAT=SGH is not physic with ISBA-DF and has been removed for now')
550 IF(io%CISBA==
'DIF' .AND. io%LSOC)
THEN 552 IF(.NOT.io%LSOCP)
THEN 553 WRITE(iluout,*)
'LSOC = T can be activated only if SOC data given in PGD fields' 554 CALL abor1_sfx(
'LSOC = T can be activated only if SOC data given in PGD fields')
557 ALLOCATE(s%XFRACSOC(ki,io%NGROUND_LAYER))
559 k%XWSAT, k%XWFC, k%XWWILT, io%NPATCH )
562 ALLOCATE(s%XFRACSOC(0,0))
573 IF( io%CRUNOFF==
'SGH '.AND. hinit/=
'PRE' .AND. .NOT.lassim )
THEN 578 IF(io%CISBA==
'DIF')
THEN 579 ALLOCATE(pk%XTOPQS(pk%NSIZE_P,io%NGROUND_LAYER))
582 ALLOCATE(pk%XTOPQS(0,0))
586 ALLOCATE(s%XTAB_FSAT(ki,
ndimtab))
587 ALLOCATE(s%XTAB_WTOP(ki,
ndimtab))
588 ALLOCATE(s%XTAB_QTOP(ki,
ndimtab))
589 s%XTAB_FSAT(:,:) = 0.0
590 s%XTAB_WTOP(:,:) = 0.0
591 s%XTAB_QTOP(:,:) = 0.0
594 CALL init_top(io, s, k, nk, np, iluout, zm )
600 ALLOCATE(pk%XTOPQS(0,0))
603 ALLOCATE(s%XTAB_FSAT(0,0))
604 ALLOCATE(s%XTAB_WTOP(0,0))
605 ALLOCATE(s%XTAB_QTOP(0,0))
612 IF ( io%CISBA/=
'DIF' .AND. hinit/=
'PRE' .AND. .NOT.lassim )
THEN 614 gcas1 = (io%CKSAT==
'EXP' .AND. io%CISBA==
'3-L')
615 gcas2 = (io%CKSAT==
'SGH')
616 gcas3 = (hprogram/=
'AROME ' .AND. hprogram/=
'MESONH ')
618 IF ( gcas1 .OR. gcas2 )
THEN 620 ALLOCATE(s%XF_PARAM (ki))
623 IF ( gcas1 .AND. gcas3 )
THEN 626 CALL open_file(
'ASCII ',
nunit,hfile=
'carte_f_dc.txt',hform=
'FORMATTED',haction=
'READ ')
627 DO ji = 1,u%NDIM_FULL
628 READ(
nunit,*) zf_param(ji), zc_depth_ratio(ji)
638 ELSEIF ( gcas1 )
THEN 639 WRITE(iluout,*)
"COMPUTE_ISBA_PARAMETERS: WITH CKSAT=EXP, IN NOT OFFLINE "//&
640 "MODE, TOPMODEL FILE FOR F_PARAM IS NOT READ " 653 IF ( gcas2 .AND. io%CRUNOFF==
'SGH' .AND. zm(imask)/=
xundef )
THEN 654 zf(ji,jp) = (k%XWSAT(imask,1)-k%XWD0(imask,1)) / zm(imask)
655 ELSEIF ( gcas1 )
THEN 656 zf(ji,jp) = s%XF_PARAM(imask)
664 WHERE ( zf(1:pk%NSIZE_P,jp)==
xundef.AND.pk%XDG(:,2)/=
xundef )
665 zf(1:pk%NSIZE_P,jp) = 4.0/pk%XDG(:,2)
667 zf(1:pk%NSIZE_P,jp) = min(zf(1:pk%NSIZE_P,jp),
xf_decay)
669 zc_depth_ratio(1:pk%NSIZE_P) = 1.
675 CALL exp_decay_soil_fr(io%CISBA, zf(1:pk%NSIZE_P,jp), pk, zc_depth_ratio(1:pk%NSIZE_P))
680 DO ji = 1,np%AL(1)%NSIZE_P
681 imask = np%AL(1)%NR_P(ji)
682 s%XF_PARAM(imask) = zf(ji,1)
695 io%LCPL_RRM = .false.
707 ALLOCATE(s%XCPL_DRAIN (ki))
708 ALLOCATE(s%XCPL_RUNOFF(ki))
709 s%XCPL_DRAIN (:) = 0.0
710 s%XCPL_RUNOFF(:) = 0.0
713 ALLOCATE(s%XCPL_ICEFLUX(ki))
714 s%XCPL_ICEFLUX(:) = 0.0
716 ALLOCATE(s%XCPL_ICEFLUX(0))
721 ALLOCATE(s%XCPL_EFLOOD(ki))
722 ALLOCATE(s%XCPL_PFLOOD(ki))
723 ALLOCATE(s%XCPL_IFLOOD(ki))
724 s%XCPL_EFLOOD(:)= 0.0
725 s%XCPL_PFLOOD(:)= 0.0
726 s%XCPL_IFLOOD(:)= 0.0
728 ALLOCATE(s%XCPL_EFLOOD(0))
729 ALLOCATE(s%XCPL_PFLOOD(0))
730 ALLOCATE(s%XCPL_IFLOOD(0))
735 ALLOCATE(s%XCPL_RUNOFF (0))
736 ALLOCATE(s%XCPL_DRAIN (0))
737 ALLOCATE(s%XCPL_ICEFLUX (0))
738 ALLOCATE(s%XCPL_EFLOOD (0))
739 ALLOCATE(s%XCPL_PFLOOD (0))
740 ALLOCATE(s%XCPL_IFLOOD (0))
747 ALLOCATE(k%XFWTD(ki))
748 ALLOCATE(k%XWTD (ki))
753 ALLOCATE(k%XFFLOOD (ki))
754 ALLOCATE(k%XPIFLOOD(ki))
760 ALLOCATE(k%XFFLOOD (0))
761 ALLOCATE(k%XPIFLOOD(0))
769 ALLOCATE(k%XFFLOOD (0))
770 ALLOCATE(k%XPIFLOOD(0))
777 IF(.NOT.io%LGLACIER)
THEN 778 CALL abor1_sfx(
'COMPUTE_ISBA_PARAMETERS: LGLACIER MUST BE ACTIVATED IF LCPL_CALVING')
803 ALLOCATE(kk%XMPOTSAT(pk%NSIZE_P,io%NGROUND_LAYER))
804 ALLOCATE(kk%XBCOEF (pk%NSIZE_P,io%NGROUND_LAYER))
806 ALLOCATE(kk%XWWILT (pk%NSIZE_P,io%NGROUND_LAYER))
807 ALLOCATE(kk%XWFC (pk%NSIZE_P,io%NGROUND_LAYER))
808 ALLOCATE(kk%XWSAT (pk%NSIZE_P,io%NGROUND_LAYER))
817 IF (io%CISBA==
'2-L' .OR. io%CISBA==
'3-L')
THEN 818 ALLOCATE(kk%XCGSAT(pk%NSIZE_P))
819 ALLOCATE(kk%XC4B (pk%NSIZE_P))
820 ALLOCATE(kk%XACOEF(pk%NSIZE_P))
821 ALLOCATE(kk%XPCOEF(pk%NSIZE_P))
828 IF (io%CSCOND==
'PL98'.OR.io%CISBA==
'DIF')
THEN 829 ALLOCATE(kk%XHCAPSOIL(pk%NSIZE_P,io%NGROUND_LAYER))
830 ALLOCATE(kk%XCONDDRY (pk%NSIZE_P,io%NGROUND_LAYER))
831 ALLOCATE(kk%XCONDSLD (pk%NSIZE_P,io%NGROUND_LAYER))
837 ALLOCATE(kk%XWDRAIN (pk%NSIZE_P))
838 ALLOCATE(kk%XRUNOFFB(pk%NSIZE_P))
843 ALLOCATE(issk%XZ0REL (pk%NSIZE_P))
844 ALLOCATE(issk%XSSO_SLOPE(pk%NSIZE_P))
849 ALLOCATE(gk%XLAT(pk%NSIZE_P))
850 ALLOCATE(gk%XLON(pk%NSIZE_P))
875 k%XHCAPSOIL => null()
886 IF (hinit/=
'ALL' .AND. hinit/=
'SOD')
THEN 887 IF (
lhook)
CALL dr_hook(
'COMPUTE_ISBA_PARAMETERS',1,zhook_handle)
897 IF (cassim_isba==
"ENKF ")
CALL init_random_seed()
905 CALL read_isba_n(dtco, io, s, np, npe, k%XCLAY, u, hprogram)
907 IF (hinit/=
'ALL')
THEN 909 IF (
lhook)
CALL dr_hook(
'COMPUTE_ISBA_PARAMETERS',1,zhook_handle)
913 IF (hinit==
'PRE' .AND. npe%AL(1)%TSNOW%SCHEME.NE.
'3-L' .AND. &
914 npe%AL(1)%TSNOW%SCHEME.NE.
'CRO' .AND. io%CISBA==
'DIF') &
915 CALL abor1_sfx(
"INIT_ISBAN: WITH CISBA = DIF, CSNOW MUST BE 3-L OR CRO")
924 CALL read_surf(hprogram,
'VERSION',iversion,iresp)
925 CALL read_surf(hprogram,
'BUG',ibugfix,iresp)
926 gdim = (iversion>8 .OR. iversion==8 .AND. ibugfix>0)
927 IF (gdim)
CALL read_surf(hprogram,
'SPLIT_PATCH',gdim,iresp)
929 ALLOCATE(zwork(ki,io%NPATCH))
934 ALLOCATE(np%AL(jp)%XPATCH_OLD(np%AL(jp)%NSIZE_P))
939 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),np%AL(jp)%XPATCH_OLD(:))
945 ALLOCATE(np%AL(jp)%XDG_OLD(np%AL(jp)%NSIZE_P,io%NGROUND_LAYER))
948 DO jl=1,io%NGROUND_LAYER
949 WRITE(ylvl,
'(I4)') jl
950 yrecfm=
'OLD_DG'//adjustl(ylvl(:len_trim(ylvl)))
953 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),np%AL(jp)%XDG_OLD(:,jl))
966 CALL read_sbl_n(dtco, u, sb, io%LCANOPY, hprogram,
"NATURE")
979 ALLOCATE(kk%XDIR_ALB_WITH_SNOW(pk%NSIZE_P,ksw))
980 ALLOCATE(kk%XSCA_ALB_WITH_SNOW(pk%NSIZE_P,ksw))
981 kk%XDIR_ALB_WITH_SNOW = 0.0
982 kk%XSCA_ALB_WITH_SNOW = 0.0
984 CALL init_veg_n(io, kk, pk, pek, dti, id%DM%LSURF_DIAG_ALBEDO, pdir_alb, psca_alb, pemis, ptsrad )
986 zwg1(1:pk%NSIZE_P) = pek%XWG(:,1)
987 ztg1(1:pk%NSIZE_P,jp) = pek%XTG(:,1)
990 lagrip,
'NAT', jp, kk, pk, pek, &
991 .false., .false., .false., .false., .true., .false., &
992 pwg1=zwg1(1:pk%NSIZE_P), pwsat=kk%XWSAT)
998 IF(io%LPERTSURF)
THEN 1000 CALL read_surf(hprogram,
'VERSION',iversion,iresp)
1001 CALL read_surf(hprogram,
'BUG',ibugfix,iresp)
1002 gdim = (iversion>8 .OR. iversion==8 .AND. ibugfix>0)
1004 ALLOCATE(zwork(ki,io%NPATCH))
1007 ALLOCATE(s%XPERTVEG(ki))
1008 s%XPERTVEG(:)=zwork(:,1)
1011 ALLOCATE(s%XPERTLAI(ki))
1012 s%XPERTLAI(:)=zwork(:,1)
1015 ALLOCATE(s%XPERTCV(ki))
1016 s%XPERTCV(:)=zwork(:,1)
1019 ALLOCATE(s%XPERTALB(ki))
1020 s%XPERTALB(:)=zwork(:,1)
1025 WHERE(pek%XALBNIR_VEG (:)/=
xundef) pek%XALBNIR_VEG(:) = pek%XALBNIR_VEG (:) *( 1.+ s%XPERTALB(:) )
1026 WHERE(pek%XALBVIS_VEG (:)/=
xundef) pek%XALBVIS_VEG(:) = pek%XALBVIS_VEG (:) *( 1.+ s%XPERTALB(:) )
1027 WHERE(pek%XALBUV_VEG (:)/=
xundef) pek%XALBUV_VEG (:) = pek%XALBUV_VEG (:) *( 1.+ s%XPERTALB(:) )
1028 WHERE(pek%XALBNIR_SOIL(:)/=
xundef) pek%XALBNIR_SOIL(:) = pek%XALBNIR_SOIL(:) *( 1.+ s%XPERTALB(:) )
1029 WHERE(pek%XALBVIS_SOIL(:)/=
xundef) pek%XALBVIS_SOIL(:) = pek%XALBVIS_SOIL(:) *( 1.+ s%XPERTALB(:) )
1030 WHERE(pek%XALBUV_SOIL (:)/=
xundef) pek%XALBUV_SOIL (:) = pek%XALBUV_SOIL (:) *( 1.+ s%XPERTALB(:) )
1033 ALLOCATE(s%XPERTZ0(ki))
1034 s%XPERTZ0(:)=zwork(:,1)
1035 WHERE(pek%XZ0(:)/=
xundef) pek%XZ0(:) = pek%XZ0(:) *( 1.+ s%XPERTZ0(:) )
1036 WHERE(issk%XZ0EFFIP(:)/=
xundef) issk%XZ0EFFIP(:) = issk%XZ0EFFIP(:)*( 1.+ s%XPERTZ0(:) )
1037 WHERE(issk%XZ0EFFIM(:)/=
xundef) issk%XZ0EFFIM(:) = issk%XZ0EFFIM(:)*( 1.+ s%XPERTZ0(:) )
1038 WHERE(issk%XZ0EFFJP(:)/=
xundef) issk%XZ0EFFJP(:) = issk%XZ0EFFJP(:)*( 1.+ s%XPERTZ0(:) )
1039 WHERE(issk%XZ0EFFJM(:)/=
xundef) issk%XZ0EFFJM(:) = issk%XZ0EFFJM(:)*( 1.+ s%XPERTZ0(:) )
1048 ALLOCATE(s%XEMIS_NAT (ki))
1052 pzenith, ztg1, psw_bands, pdir_alb, psca_alb, &
1053 s%XEMIS_NAT, ztsrad_nat, ztsurf_nat )
1064 IF(io%NPATCH<=1) id%O%LPATCH_BUDGET=.false.
1067 id%D, id%DC, id%ND, id%NDC, id%DM, id%NDM, &
1068 oread_budgetc, ngb, gb, io, np, npe%AL(1)%TSNOW%SCHEME, &
1069 npe%AL(1)%TSNOW%NLAYER,
SIZE(s%XABC), hprogram,ki,ksw)
1073 CALL init_surf_topd(id%DEC, io, s, k, np, npe, ug, u, hprogram, u%NDIM_FULL)
1081 IF (
lhook)
CALL dr_hook(
'COMPUTE_ISBA_PARAMETERS',1,zhook_handle)
subroutine init_top(IO, S, K, NK, NP, KLUOUT, PM)
subroutine init_chemical_n(KLUOUT, KSV, HSV, SV, HCH_NAMES, HAER_NAMES, HDSTNAMES, HSLTNAMES)
integer, parameter ndimtab
subroutine read_isba_n(DTCO, IO, S, NP, NPE, PCLAY, U, HPROGRAM)
subroutine fix_meb_veg(DTV, KDIM, OMEB_PATCH, KPATCH)
subroutine init_veg_n(IO, KK, PK, PEK, DTV, OSURF_DIAG_ALBEDO, PDIR_ALB, PSCA_ALB, PEMIS_OUT, PTSRAD)
subroutine make_choice_array(HPROGRAM, KNPATCH, ODIM, HRECFM, PWORK, HDIR, KPATCH)
subroutine init_isba_mixpar(DTCO, DTV, KDIM, IO, KDECADE, KDECADE2, PCOVER, OCOVER, HSFTYP
subroutine diag_isba_init_n(CHI, DE, DEC, NDE, NDEC, DGO, D, DC,
subroutine open_file(HPROGRAM, KUNIT, HFILE, HFORM, HACTION, HACCESS, KR
real, parameter xice_deph_max
subroutine convert_patch_isba(DTCO, DTV, IO, KDEC, KDEC2, PCOVER,
subroutine init_surf_topd(DEC, IO, S, K, NP, NPE, UG, U, HPROGRAM
subroutine init_slt(SLT, HPROGRAM)
subroutine isba_soc_parameters(HRUNOFF, PSOC, K, NP, PFRACSOC, PWSAT, PWFC, PWWILT, KPATCH)
subroutine init_veg_pgd_n(ISSK, DTI, IO, S, K, KK, PK, PEK, AGK, KI, HPROGRAM, HSURF, KLUOUT, KSIZE, KMONTH, ODEEPSOIL, OPHYSDOMC, PTDEEP_CLI, PGAMMAT_CLI, OAGRIP, PTHRESHOLD, HINIT, PCO2, PRHOA)
subroutine init_isba_landuse(DTCO, UG, U, IO, NK, NP, NPE, PMESH_SIZE, HPROGRAM)
subroutine init_dst(DSTK, U, HPROGRAM, KSIZE_P, KR_P, PVEGTYPE_PATCH)
subroutine read_sbl_n(DTCO, U, SB, OSBL, HPROGRAM, HSURF)
subroutine abor1_sfx(YTEXT)
subroutine compute_isba_parameters(DTCO, OREAD_BUDGETC, UG, U, IO, DTI, SB, S, IG, K, NK, NIG, NP, NPE, NAG, NISS, ISS, NCHI, CHI, ID, GB, NGB, NDST, SLT, SV, HPROGRAM, HINIT, OLAND_USE, KI, KSV, KSW, HSV, PCO2, PRHOA, PZENITH, PSW_BANDS, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, HTEST)
real, dimension(:), allocatable xc_depth_ratio
integer, parameter nundef
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine close_file(HPROGRAM, KUNIT)
subroutine ch_init_dep_isba_n(CHI, NCHI, NP, DTCO, KPATCH, OCOVER
subroutine end_io_surf_n(HPROGRAM)
subroutine allocate_physio(IO, KK, PK, PEK, KVEGTYPE)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine get_1d_mask(KSIZE, KFRAC, PFRAC, KMASK)
subroutine exp_decay_soil_fr(HISBA, PF, PK, PC_DEPTH_RATIO)
subroutine averaged_albedo_emis_isba(IO, S, NK, NP, NPE, PZENITH, PTG1, PSW_BANDS, PDIR_ALB, PSC
subroutine get_z0rel(ISS, OMASK)
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)
subroutine init_io_surf_n(DTCO, U, HPROGRAM, HMASK, HSCHEME, HACTION
subroutine soiltemp_arp_par(IO, HPROGRAM)