7 PTSTEP, TTIME ,PCOVER, OCOVER, &
8 OAGRIP, HSFTYPE, OALB, ISSK, ODUPDATED, OABSENT )
56 USE modd_data_cover_par
, ONLY : nvt_snow
59 USE modi_init_isba_mixpar
60 USE modi_convert_patch_isba
61 USE modi_init_from_data_teb_veg_n
62 USE modi_subscale_z0eff
64 USE modi_update_data_cover
78 INTEGER,
INTENT(IN) :: KDIM
84 INTEGER,
INTENT(IN) :: KPATCH
86 REAL,
INTENT(IN) :: PTSTEP
88 REAL,
DIMENSION(:,:),
INTENT(IN) :: PCOVER
89 LOGICAL,
DIMENSION(:),
INTENT(IN) :: OCOVER
90 LOGICAL,
INTENT(IN) :: OAGRIP
91 CHARACTER(LEN=*),
INTENT(IN) :: HSFTYPE
93 LOGICAL,
INTENT(IN) :: OALB
95 TYPE(
sso_t),
INTENT(INOUT) :: ISSK
97 LOGICAL,
INTENT(OUT) :: ODUPDATED
98 LOGICAL,
DIMENSION(:),
INTENT(IN),
OPTIONAL :: OABSENT
102 INTEGER :: IDECADE, IDECADE2, JI, ISNOWPATCH
103 REAL(KIND=JPRB) :: ZHOOK_HANDLE
106 IF (
lhook)
CALL dr_hook(
'VEGETATION_UPDATE',0,zhook_handle)
114 idecade = 3 * ( ttime%TDATE%MONTH - 1 ) + min(ttime%TDATE%DAY-1,29) / 10 + 1
122 IF ( mod(min(ttime%TDATE%DAY,30),10)==1 .AND. ttime%TIME - ptstep < 0.)
THEN 127 IF (io%LECOCLIMAP .OR. hsftype==
'NAT')
THEN 130 IF (kpatch==1)
CALL update_data_cover(dtco, dtv, kdim, io%NPATCH, io%LMEB_PATCH, ttime%TDATE%YEAR)
132 IF (hsftype==
'NAT')
THEN 135 CALL init_isba_mixpar(dtco, dtv, kdim, io, idecade,idecade2,pcover,ocover,hsftype)
138 IF (dtv%NTIME==2) idecade2 = idecade2 + 10
139 idecade2 = (idecade2-1) * dtv%NTIME / 36 + 1
140 IF (dtv%NTIME==2 .AND. idecade2==3) idecade2 = 1
144 oagrip, hsftype, kpatch, kk, pk, pek, &
145 .false., .true., .true., .true., .false., oalb)
149 oagrip, hsftype, kpatch, kk, pk, pek, &
150 .false., .true., .false., .false., .false., oalb)
153 IF ( io%CALBEDO==
'CM13')
THEN 155 oagrip, hsftype, kpatch, kk, pk, pek, &
156 .false., .false., .false., .false., .true., .false.)
159 ELSEIF (.NOT.oalb .AND. (hsftype==
'GRD'.OR.hsftype==
'GNR') )
THEN 167 IF (
PRESENT(oabsent) .AND. .NOT.oalb)
THEN 174 pek%XWRMAX_CF (:) = 0.2
178 pek%XALBNIR_VEG(:) = 0.30
179 pek%XALBVIS_VEG(:) = 0.30
180 pek%XALBUV_VEG (:) = 0.06
183 IF (io%CPHOTO/=
'NON')
THEN 185 pek%XGMES (:) = 0.020
186 pek%XBSLAI (:) = 0.36
187 pek%XLAIMIN (:) = 0.3
188 pek%XSEFOLD (:) = 90*86400.
189 pek%XGC (:) = 0.00025
191 WHERE (oabsent(:)) pek%XF2I(:) = 0.3
192 IF (io%CPHOTO==
'NIT' .OR. io%CPHOTO==
'NCB')
THEN 194 pek%XCE_NITRO (:) = 7.68
195 pek%XCF_NITRO (:) = -4.33
196 pek%XCNA_NITRO (:) = 1.3
203 IF (hsftype==
'NAT')
THEN 205 CALL albedo(io%CALBEDO, pek )
214 IF (
lhook)
CALL dr_hook(
'VEGETATION_UPDATE',1,zhook_handle)
subroutine init_isba_mixpar(DTCO, DTV, KDIM, IO, KDECADE, KDECADE2, PCOVER, OCOVER, HSFTYP
subroutine update_data_cover(DTCO, DTV, KDIM, KPATCH, OMEB_PATCH,
subroutine convert_patch_isba(DTCO, DTV, IO, KDEC, KDEC2, PCOVER,
subroutine subscale_z0eff(ISSK, PZ0VEG, OZ0REL, OMASK)
subroutine vegetation_update(DTCO, DTV, KDIM, IO, KK, PK, PEK, KPATCH, PTSTEP, TTIME, PCOVER, OCOVER, OAGRIP, HSFTYPE, OALB, ISSK, ODUPDATED, OABSENT)
subroutine albedo(HALBEDO, PEK, PSNOW, OMASK)
subroutine init_from_data_teb_veg_n(DTV, K, P, PEK, KDECADE, OUPD