6 SUBROUTINE coupling_isba_n (DTCO, UG, U, USS, IM, DTGD, DTGR, TGRO, DST, SLT, &
8 ptstep, kyear, kmonth, kday, ptime, ki, ksv, ksw, ptsun, pzenith, pzenith2, &
9 pzref, puref, pzs, pu, pv, pqa, pta, prhoa, psv, pco2, hsv, &
10 prain, psnow, plw, pdir_sw, psca_sw, psw_bands, pps, ppa, &
11 psftq, psfth, psfts, psfco2, psfu, psfv, &
12 ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0, pz0h, pqsurf, &
13 ppew_a_coef, ppew_b_coef, &
14 ppet_a_coef, ppeq_a_coef, ppet_b_coef, ppeq_b_coef, &
90 USE modd_csts, ONLY : xrd, xrv, xp00, xcpd, xpi, xavogadro, xmd
116 USE modi_irrigation_update
117 USE modi_add_forecast_to_date_surf
120 USE modi_average_flux
123 USE modi_average_diag_isba_n
124 USE modi_vegetation_evol
125 USE modi_vegetation_update
126 USE modi_albedo_veg_update
131 USE modi_diag_inline_isba_n
132 USE modi_diag_evap_isba_n
133 USE modi_diag_misc_isba_n
135 USE modi_update_rad_isba_n
136 USE modi_deepsoil_update
137 USE modi_isba_sgh_update
138 USE modi_isba_flood_properties
139 USE modi_diag_cpl_esm_isba
140 USE modi_hydro_glacier
142 USE modi_carbon_spinup
143 USE modi_pack_isba_patch_n
144 USE modi_pack_isba_patch_get_size_n
145 USE modi_pack_ch_isba_patch_n
146 USE modi_pack_diag_patch_n
147 USE modi_pack_diag_patch_get_size_n
148 USE modi_unpack_isba_patch_n
149 USE modi_unpack_ch_isba_patch_n
150 USE modi_unpack_diag_patch_n
153 USE modi_average_diag_evap_isba_n
154 USE modi_average_diag_misc_isba_n
156 USE modi_soilemisno_n
159 USE modi_coupling_dst_n
160 USE modi_coupling_surf_topd
161 USE modi_isba_budget_init
164 USE yomhook
,ONLY : lhook, dr_hook
165 USE parkind1
,ONLY : jprb
172 TYPE(isba_model_t
),
INTENT(INOUT) :: im
180 TYPE(dst_t),
INTENT(INOUT) :: dst
181 TYPE(slt_t),
INTENT(INOUT) :: slt
183 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
184 CHARACTER(LEN=1),
INTENT(IN) :: hcoupling
187 INTEGER,
INTENT(IN) :: kyear
188 INTEGER,
INTENT(IN) :: kmonth
189 INTEGER,
INTENT(IN) :: kday
190 REAL,
INTENT(IN) :: ptime
191 INTEGER,
INTENT(IN) :: ki
192 INTEGER,
INTENT(IN) :: ksv
193 INTEGER,
INTENT(IN) :: ksw
194 REAL,
DIMENSION(KI),
INTENT(IN) :: ptsun
195 REAL,
INTENT(IN) :: ptstep
196 REAL,
DIMENSION(KI),
INTENT(IN) :: pzref
197 REAL,
DIMENSION(KI),
INTENT(IN) :: puref
199 REAL,
DIMENSION(KI),
INTENT(IN) :: pta
200 REAL,
DIMENSION(KI),
INTENT(IN) :: pqa
201 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
202 REAL,
DIMENSION(KI,KSV),
INTENT(IN) :: psv
205 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN):: hsv
206 REAL,
DIMENSION(KI),
INTENT(IN) :: pu
207 REAL,
DIMENSION(KI),
INTENT(IN) :: pv
208 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: pdir_sw
210 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: psca_sw
212 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
213 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
214 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith2
215 REAL,
DIMENSION(KI),
INTENT(IN) :: plw
217 REAL,
DIMENSION(KI),
INTENT(IN) :: pps
218 REAL,
DIMENSION(KI),
INTENT(IN) :: ppa
219 REAL,
DIMENSION(KI),
INTENT(IN) :: pzs
220 REAL,
DIMENSION(KI),
INTENT(IN) :: pco2
221 REAL,
DIMENSION(KI),
INTENT(IN) :: psnow
222 REAL,
DIMENSION(KI),
INTENT(IN) :: prain
225 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfth
226 REAL,
DIMENSION(KI),
INTENT(OUT) :: psftq
227 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfu
228 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfv
229 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfco2
230 REAL,
DIMENSION(KI,KSV),
INTENT(OUT):: psfts
232 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptrad
233 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: pdir_alb
234 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: psca_alb
235 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
237 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
238 REAL,
DIMENSION(KI),
INTENT(OUT) :: pz0
239 REAL,
DIMENSION(KI),
INTENT(OUT) :: pz0h
240 REAL,
DIMENSION(KI),
INTENT(OUT) :: pqsurf
242 REAL,
DIMENSION(KI),
INTENT(IN) :: ppew_a_coef
243 REAL,
DIMENSION(KI),
INTENT(IN) :: ppew_b_coef
244 REAL,
DIMENSION(KI),
INTENT(IN) :: ppet_a_coef
245 REAL,
DIMENSION(KI),
INTENT(IN) :: ppeq_a_coef
246 REAL,
DIMENSION(KI),
INTENT(IN) :: ppet_b_coef
247 REAL,
DIMENSION(KI),
INTENT(IN) :: ppeq_b_coef
248 CHARACTER(LEN=2),
INTENT(IN) :: htest
255 REAL,
DIMENSION(KI) :: zwind
256 REAL,
DIMENSION(KI) :: zdir
257 REAL,
DIMENSION(KI) :: zexna
258 REAL,
DIMENSION(KI) :: zexns
259 REAL,
DIMENSION(KI) :: zalfa
260 REAL,
DIMENSION(KI) :: zqa
261 REAL,
DIMENSION(KI) :: zco2
263 REAL,
DIMENSION(KI) :: zpeq_a_coef
264 REAL,
DIMENSION(KI) :: zpeq_b_coef
270 REAL,
DIMENSION(KI,IM%I%NPATCH) :: zsfth_tile
271 REAL,
DIMENSION(KI,IM%I%NPATCH) :: zsftq_tile
272 REAL,
DIMENSION(KI,IM%I%NPATCH) :: zsfco2_tile
273 REAL,
DIMENSION(KI,IM%I%NPATCH) :: zsfu_tile
274 REAL,
DIMENSION(KI,IM%I%NPATCH) :: zsfv_tile
275 REAL,
DIMENSION(KI,IM%I%NPATCH) :: ztrad_tile
276 REAL,
DIMENSION(KI,IM%I%NPATCH) :: zemis_tile
277 REAL,
DIMENSION(KI,IM%I%NPATCH) :: ztsurf_tile
278 REAL,
DIMENSION(KI,IM%I%NPATCH) :: zz0_tile
279 REAL,
DIMENSION(KI,IM%I%NPATCH) :: zz0h_tile
280 REAL,
DIMENSION(KI,IM%I%NPATCH) :: zqsurf_tile
281 REAL,
DIMENSION(KI,KSW,IM%I%NPATCH) :: zdir_alb_tile
282 REAL,
DIMENSION(KI,KSW,IM%I%NPATCH) :: zsca_alb_tile
283 REAL,
DIMENSION(KI,KSV,IM%I%NPATCH) :: zsfts_tile
285 REAL,
DIMENSION(KI, IM%I%NPATCH) :: zcpl_drain
286 REAL,
DIMENSION(KI, IM%I%NPATCH) :: zcpl_runoff
287 REAL,
DIMENSION(KI, IM%I%NPATCH) :: zcpl_eflood
288 REAL,
DIMENSION(KI, IM%I%NPATCH) :: zcpl_pflood
289 REAL,
DIMENSION(KI, IM%I%NPATCH) :: zcpl_iflood
290 REAL,
DIMENSION(KI, IM%I%NPATCH) :: zcpl_iceflux
294 REAL,
DIMENSION(KI, IM%I%NPATCH) :: zsw_forbio
296 REAL :: zconvertfacm0_slt, zconvertfacm0_dst
297 REAL :: zconvertfacm3_slt, zconvertfacm3_dst
298 REAL :: zconvertfacm6_slt, zconvertfacm6_dst
305 INTEGER :: jsv, idst, imoment, ii
306 INTEGER :: jlayer, jmode, jsv_idx
313 REAL(KIND=JPRB) :: zhook_handle
316 IF (lhook) CALL dr_hook(
'COUPLING_ISBA_N',0,zhook_handle)
317 IF (htest/=
'OK')
THEN
318 CALL
abor1_sfx(
'COUPLING_ISBAN: FATAL ERROR DURING ARGUMENT TRANSFER')
328 zsfth_tile(:,:) = xundef
329 zsftq_tile(:,:) = xundef
330 zsfco2_tile(:,:) = xundef
331 zsfu_tile(:,:) = xundef
332 zsfv_tile(:,:) = xundef
333 ztrad_tile(:,:) = xundef
334 zemis_tile(:,:) = xundef
335 zdir_alb_tile(:,:,:) = xundef
336 zsca_alb_tile(:,:,:) = xundef
337 ztsurf_tile(:,:) = xundef
338 zz0_tile(:,:) = xundef
339 zz0h_tile(:,:) = xundef
340 zqsurf_tile(:,:) = xundef
342 zsfts_tile(:,:,:) = 0.
344 zcpl_drain(:,:) = 0.0
345 zcpl_runoff(:,:) = 0.0
346 zcpl_eflood(:,:) = 0.0
347 zcpl_pflood(:,:) = 0.0
348 zcpl_iflood(:,:) = 0.0
349 zcpl_iceflux(:,:) = 0.0
351 zsw_forbio(:,:) = xundef
362 zqa(jj) = pqa(jj) / prhoa(jj)
363 zpeq_a_coef(jj) = ppeq_a_coef(jj) / prhoa(jj)
364 zpeq_b_coef(jj) = ppeq_b_coef(jj) / prhoa(jj)
366 zco2(jj) = pco2(jj) / prhoa(jj)
370 zexns(jj) = (pps(jj)/xp00)**(xrd/xcpd)
371 zexna(jj) = (ppa(jj)/xp00)**(xrd/xcpd)
375 zwind(jj) = sqrt(pu(jj)**2+pv(jj)**2)
379 IF (zwind(jj)>0.) zdir(jj)=atan2(pu(jj),pv(jj))
383 zalfa(jj) = zdir(jj) - im%I%XZ0EFFJPDIR(jj) * xpi/180.
385 IF (zalfa(jj)<-xpi) zalfa(jj) = zalfa(jj) + 2.*xpi
386 IF (zalfa(jj)>=xpi) zalfa(jj) = zalfa(jj) - 2.*xpi
396 IF (lagrip .AND. (im%I%CPHOTO==
'LAI' .OR. im%I%CPHOTO==
'LST' .OR. &
397 im%I%CPHOTO==
'NIT'.OR. im%I%CPHOTO==
'NCB') )
THEN
399 im%I%XIRRIG,ptstep,kmonth,kday,ptime, &
400 im%I%TSEED(:,:)%TDATE%MONTH,im%I%TSEED(:,:)%TDATE%DAY, &
401 im%I%TREAP(:,:)%TDATE%MONTH,im%I%TREAP(:,:)%TDATE%DAY )
407 im%I%CISBA,im%I%CRUNOFF,im%I%CRAIN,prain,im%I%XMUF,im%I%XFSAT,im%I%XTOPQS)
414 im%I%TTIME%TDATE%MONTH)
423 IF(im%I%LSPINUPCARBS.OR.im%I%LSPINUPCARBW)
THEN
425 ispinend=im%I%NNBYEARSPINS-nint(im%I%NNBYEARSPINS*xspin_co2)
427 im%I%LAGRI_TO_GRASS = .false.
429 IF ( im%I%LSPINUPCARBS .AND. (im%I%NNBYEARSOLD <= ispinend) )
THEN
431 im%I%LAGRI_TO_GRASS = .true.
433 zco2(:) = im%I%XCO2_START * 1.e-6 * xmco2 / xmd
435 ELSEIF(im%I%LSPINUPCARBS .AND. (im%I%NNBYEARSOLD > ispinend) .AND. &
436 (im%I%NNBYEARSOLD <= im%I%NNBYEARSPINS) )
THEN
438 zspinco2 = im%I%XCO2_START + (im%I%XCO2_END-im%I%XCO2_START) * &
439 REAL(IM%I%NNBYEARSOLD - ISPINEND) /
REAL(im%i%nnbyearspins - ispinend)
441 zco2(:) = zspinco2 * 1.e-6 * xmco2 / xmd
445 CALL
carbon_spinup(im%I%TTIME%TDATE%MONTH,im%I%TTIME%TDATE%DAY,im%I%TTIME%TIME, &
446 im%I%LSPINUPCARBS, im%I%LSPINUPCARBW, im%I%XSPINMAXS, im%I%XSPINMAXW, &
447 im%I%NNBYEARSPINS, im%I%NNBYEARSPINW, im%I%NNBYEARSOLD, im%I%CPHOTO, &
448 im%I%CRESPSL, im%I%NSPINS, im%I%NSPINW )
456 im%I%TTIME%TIME = im%I%TTIME%TIME + ptstep
458 im%I%TTIME%TDATE%DAY,im%I%TTIME%TIME)
468 patch_loop:
DO jpatch=1,im%I%NPATCH
470 IF (im%I%NSIZE_NATURE_P(jpatch) == 0 ) cycle
475 IF (lcoupl_topd)nmaskt_patch(:)=im%I%NR_NATURE_P(:,jpatch)
477 CALL
treat_patch(im%I%NSIZE_NATURE_P(jpatch),im%I%NR_NATURE_P(:,jpatch))
485 IF(im%I%LCPL_RRM)
THEN
487 ptstep,zcpl_drain,zcpl_runoff,zcpl_eflood, &
488 zcpl_pflood,zcpl_iflood,zcpl_iceflux )
498 IF ((im%I%CPHOTO==
'NON' .OR. im%I%CPHOTO==
'AGS' .OR. im%I%CPHOTO==
'AST') .AND. im%I%LVEGUPD)
THEN
500 ptstep,im%I%TTIME,im%I%XCOVER, im%I%LCOVER, &
501 im%I%CISBA,im%I%LECOCLIMAP,im%I%CPHOTO,lagrip,im%I%LTR_ML,
'NAT', &
502 im%I%XLAI,im%I%XVEG,im%I%XZ0, &
503 im%I%XALBNIR,im%I%XALBVIS,im%I%XALBUV,im%I%XEMIS, &
504 im%I%XRSMIN,im%I%XGAMMA,im%I%XWRMAX_CF, &
505 im%I%XRGL,im%I%XCV, &
506 im%I%XGMES,im%I%XBSLAI,im%I%XLAIMIN,im%I%XSEFOLD,im%I%XGC,im%I%XDMAX, &
507 im%I%XF2I, im%I%LSTRESS, &
508 im%I%XAOSIP,im%I%XAOSIM,im%I%XAOSJP,im%I%XAOSJM, &
509 im%I%XHO2IP,im%I%XHO2IM,im%I%XHO2JP,im%I%XHO2JM, &
510 im%I%XZ0EFFIP,im%I%XZ0EFFIM,im%I%XZ0EFFJP,im%I%XZ0EFFJM, &
511 im%I%CALBEDO, im%I%XALBNIR_VEG, im%I%XALBVIS_VEG, im%I%XALBUV_VEG, &
512 im%I%XALBNIR_SOIL, im%I%XALBVIS_SOIL, im%I%XALBUV_SOIL, &
513 im%I%XCE_NITRO, im%I%XCF_NITRO, im%I%XCNA_NITRO, &
514 im%I%TSEED, im%I%TREAP, im%I%XWATSUP, im%I%XIRRIG, &
515 im%I%XGNDLITTER, im%I%XRGLGV,im%I%XGAMMAGV, &
516 im%I%XRSMINGV, im%I%XWRMAX_CFGV, &
517 im%I%XH_VEG, im%I%XLAIGV, im%I%XZ0LITTER, lupdated )
519 ELSEIF ((im%I%CPHOTO==
'LAI'.OR.im%I%CPHOTO==
'LST'.OR.im%I%CPHOTO==
'NIT'.OR.im%I%CPHOTO==
'NCB').AND.im%I%LVEGUPD)
THEN
522 ptstep,im%I%TTIME,im%I%XCOVER, im%I%LCOVER, &
523 im%I%CISBA,im%I%LECOCLIMAP,im%I%CPHOTO,lagrip,im%I%LTR_ML,
'NAT', &
524 im%I%XVEG,im%I%XALBNIR,im%I%XALBVIS,im%I%XALBUV, &
525 im%I%CALBEDO, im%I%XALBNIR_VEG, im%I%XALBVIS_VEG, im%I%XALBUV_VEG, &
526 im%I%XALBNIR_SOIL, im%I%XALBVIS_SOIL, im%I%XALBUV_SOIL )
529 IF(im%I%LPERTSURF.AND.lupdated)
THEN
532 im%I%XVEG(:,1) = im%I%XPERTVEG(:)
533 im%I%XLAI(:,1) = im%I%XPERTLAI(:)
534 im%I%XCV(:,1) = im%I%XPERTCV(:)
536 WHERE(im%I%XALBNIR(:,1)/=xundef) im%I%XALBNIR(:,1) =im%I%XALBNIR(:,1) *( 1.+ im%I%XPERTALB(:) )
537 WHERE(im%I%XALBVIS(:,1)/=xundef) im%I%XALBVIS(:,1) =im%I%XALBVIS(:,1) *( 1.+ im%I%XPERTALB(:) )
538 WHERE(im%I%XALBUV(:,1)/=xundef) im%I%XALBUV(:,1) =im%I%XALBUV(:,1) *( 1.+ im%I%XPERTALB(:) )
539 WHERE(im%I%XZ0(:,1)/=xundef) im%I%XZ0(:,1) =im%I%XZ0(:,1) *( 1.+ im%I%XPERTZ0(:) )
540 WHERE(im%I%XZ0EFFIP(:,1)/=xundef) im%I%XZ0EFFIP(:,1)=im%I%XZ0EFFIP(:,1)*( 1.+ im%I%XPERTZ0(:) )
541 WHERE(im%I%XZ0EFFIM(:,1)/=xundef) im%I%XZ0EFFIM(:,1)=im%I%XZ0EFFIM(:,1)*( 1.+ im%I%XPERTZ0(:) )
542 WHERE(im%I%XZ0EFFJP(:,1)/=xundef) im%I%XZ0EFFJP(:,1)=im%I%XZ0EFFJP(:,1)*( 1.+ im%I%XPERTZ0(:) )
543 WHERE(im%I%XZ0EFFJM(:,1)/=xundef) im%I%XZ0EFFJM(:,1)=im%I%XZ0EFFJM(:,1)*( 1.+ im%I%XPERTZ0(:) )
553 zsfth_tile, zsftq_tile, zsfts_tile, zsfco2_tile, &
554 zsfu_tile, zsfv_tile, &
555 psfth, psftq, psfts, psfco2, &
566 ztsurf_tile, zz0_tile, zz0h_tile, zqsurf_tile, &
567 puref, pzref, ptsurf, pz0, pz0h, pqsurf )
575 im%I%LFLOOD, im%I%TSNOW%SCHEME, pzenith2, psw_bands, &
576 im%I%XVEG, im%I%XLAI, im%I%XZ0, &
577 im%I%LMEB_PATCH,im%I%XLAIGV,im%I%XGNDLITTER,im%I%XZ0LITTER,im%I%XH_VEG, &
578 im%I%XALBNIR, im%I%XALBVIS, im%I%XALBUV, im%I%XEMIS, &
579 zdir_alb_tile,zsca_alb_tile,zemis_tile, &
581 im%I%XALBNIR_VEG, im%I%XALBNIR_SOIL, &
582 im%I%XALBVIS_VEG, im%I%XALBVIS_SOIL )
585 zdir_alb_tile, zsca_alb_tile, zemis_tile, ztrad_tile, &
586 pdir_alb, psca_alb, im%I%XEMIS_NAT, im%I%XTSRAD_NAT )
588 pemis = im%I%XEMIS_NAT
589 ptrad = im%I%XTSRAD_NAT
596 puref,pzref,psfco2,ptrad)
610 hprogram,u%NDIM_FULL)
620 IF (im%CHI%SVI%NBEQ>0 .AND. im%CHI%LCH_BIO_FLUX)
THEN
622 zsw_forbio,prhoa,psfts)
626 IF (im%CHI%LCH_NO_FLUX)
THEN
633 IF (lhook) CALL dr_hook(
'COUPLING_ISBA_N',1,zhook_handle)
641 INTEGER,
INTENT(IN) :: ksize
642 INTEGER,
INTENT(IN),
DIMENSION(KI) :: kmask
644 REAL,
DIMENSION(KSIZE) :: zp_zref
645 REAL,
DIMENSION(KSIZE) :: zp_uref
646 REAL,
DIMENSION(KSIZE) :: zp_u
647 REAL,
DIMENSION(KSIZE) :: zp_v
648 REAL,
DIMENSION(KSIZE) :: zp_wind
649 REAL,
DIMENSION(KSIZE) :: zp_dir
650 REAL,
DIMENSION(KSIZE) :: zp_qa
651 REAL,
DIMENSION(KSIZE) :: zp_ta
652 REAL,
DIMENSION(KSIZE) :: zp_co2
653 REAL,
DIMENSION(KSIZE,KSV) :: zp_sv
654 REAL,
DIMENSION(KSIZE) :: zp_zenith
655 REAL,
DIMENSION(KSIZE) :: zp_pew_a_coef
656 REAL,
DIMENSION(KSIZE) :: zp_pew_b_coef
657 REAL,
DIMENSION(KSIZE) :: zp_pet_a_coef
658 REAL,
DIMENSION(KSIZE) :: zp_pet_b_coef
659 REAL,
DIMENSION(KSIZE) :: zp_peq_a_coef
660 REAL,
DIMENSION(KSIZE) :: zp_peq_b_coef
661 REAL,
DIMENSION(KSIZE) :: zp_rain
662 REAL,
DIMENSION(KSIZE) :: zp_snow
663 REAL,
DIMENSION(KSIZE) :: zp_lw
664 REAL,
DIMENSION(KSIZE,ISWB) :: zp_dir_sw
665 REAL,
DIMENSION(KSIZE,ISWB) :: zp_sca_sw
666 REAL,
DIMENSION(KSIZE) :: zp_ps
667 REAL,
DIMENSION(KSIZE) :: zp_pa
668 REAL,
DIMENSION(KSIZE) :: zp_zs
669 REAL,
DIMENSION(KSIZE) :: zp_sftq
670 REAL,
DIMENSION(KSIZE) :: zp_sfth
671 REAL,
DIMENSION(KSIZE,KSV) :: zp_sfts
672 REAL,
DIMENSION(KSIZE) :: zp_sfco2
673 REAL,
DIMENSION(KSIZE) :: zp_ustar
674 REAL,
DIMENSION(KSIZE) :: zp_sfu
675 REAL,
DIMENSION(KSIZE) :: zp_sfv
676 REAL,
DIMENSION(KSIZE) :: zp_trad
677 REAL,
DIMENSION(KSIZE) :: zp_tsurf
678 REAL,
DIMENSION(KSIZE) :: zp_z0
679 REAL,
DIMENSION(KSIZE) :: zp_z0h
680 REAL,
DIMENSION(KSIZE) :: zp_qsurf
684 REAL,
DIMENSION(KSIZE) :: zp_rhoa
685 REAL,
DIMENSION(KSIZE) :: zp_exna
686 REAL,
DIMENSION(KSIZE) :: zp_exns
687 REAL,
DIMENSION(KSIZE) :: zp_alfa
691 REAL,
DIMENSION(KSIZE) :: zp_albnir_tveg
692 REAL,
DIMENSION(KSIZE) :: zp_albnir_tsoil
693 REAL,
DIMENSION(KSIZE) :: zp_albvis_tveg
694 REAL,
DIMENSION(KSIZE) :: zp_albvis_tsoil
695 REAL,
DIMENSION(KSIZE) :: zp_emis
696 REAL,
DIMENSION(KSIZE) :: zp_global_sw
697 REAL,
DIMENSION(KSIZE) :: zp_slope_cos
699 REAL,
DIMENSION(KSIZE) :: zp_z0flood
700 REAL,
DIMENSION(KSIZE) :: zp_ffgnos
701 REAL,
DIMENSION(KSIZE) :: zp_ffvnos
703 REAL,
DIMENSION(KSIZE,IM%I%NNBIOMASS) :: zp_resp_biomass_inst
707 REAL,
DIMENSION(KSIZE) :: zp_ac_agg
708 REAL,
DIMENSION(KSIZE) :: zp_hu_agg
712 REAL,
DIMENSION(KSIZE) :: zpalphan
713 REAL,
DIMENSION(KSIZE) :: zsnowdepth
714 REAL,
DIMENSION(KSIZE) :: zz0g_without_snow
715 REAL,
DIMENSION(KSIZE) :: zz0_mebv
716 REAL,
DIMENSION(KSIZE) :: zz0h_mebv
717 REAL,
DIMENSION(KSIZE) :: zz0eff_mebv
718 REAL,
DIMENSION(KSIZE) :: zz0_mebn
719 REAL,
DIMENSION(KSIZE) :: zz0h_mebn
720 REAL,
DIMENSION(KSIZE) :: zz0eff_mebn
722 REAL,
DIMENSION(KSIZE) :: zp_meb_sca_sw
726 REAL,
DIMENSION(KSIZE) :: zp_wg_ini
727 REAL,
DIMENSION(KSIZE) :: zp_wgi_ini
728 REAL,
DIMENSION(KSIZE) :: zp_wr_ini
729 REAL,
DIMENSION(KSIZE) :: zp_swe_ini
733 REAL,
DIMENSION(KSIZE) :: zp_deep_flux
734 REAL,
DIMENSION(KSIZE) :: zp_tdeep_a
735 REAL,
DIMENSION(KSIZE) :: zirrig_gr
740 INTEGER :: jj, ji, jk
741 REAL(KIND=JPRB) :: zhook_handle
743 IF (lhook) CALL dr_hook(
'COUPLING_ISBA_n:TREAT_PATCH',0,zhook_handle)
749 IF (im%I%NPATCH==1)
THEN
750 zp_zenith(:) = pzenith(:)
751 zp_zref(:) = pzref(:)
752 zp_uref(:) = puref(:)
753 zp_wind(:) = zwind(:)
760 zp_sv(:,:) = psv(:,:)
761 zp_pew_a_coef(:) = ppew_a_coef(:)
762 zp_pew_b_coef(:) = ppew_b_coef(:)
763 zp_pet_a_coef(:) = ppet_a_coef(:)
764 zp_pet_b_coef(:) = ppet_b_coef(:)
765 zp_peq_a_coef(:) = zpeq_a_coef(:)
766 zp_peq_b_coef(:) = zpeq_b_coef(:)
767 zp_rain(:) = prain(:)
768 zp_snow(:) = psnow(:)
770 zp_dir_sw(:,:) = pdir_sw(:,:)
771 zp_sca_sw(:,:) = psca_sw(:,:)
776 zp_rhoa(:) = prhoa(:)
777 zp_exna(:) = zexna(:)
778 zp_exns(:) = zexns(:)
779 zp_alfa(:) = zalfa(:)
785 zp_zenith(jj) = pzenith(ji)
786 zp_zref(jj) = pzref(ji)
787 zp_uref(jj) = puref(ji)
788 zp_wind(jj) = zwind(ji)
791 zp_dir(jj) = zdir(ji)
794 zp_co2(jj) = zco2(ji)
795 zp_pew_a_coef(jj) = ppew_a_coef(ji)
796 zp_pew_b_coef(jj) = ppew_b_coef(ji)
797 zp_pet_a_coef(jj) = ppet_a_coef(ji)
798 zp_pet_b_coef(jj) = ppet_b_coef(ji)
799 zp_peq_a_coef(jj) = zpeq_a_coef(ji)
800 zp_peq_b_coef(jj) = zpeq_b_coef(ji)
801 zp_rain(jj) = prain(ji)
802 zp_snow(jj) = psnow(ji)
808 zp_rhoa(jj) = prhoa(ji)
809 zp_exna(jj) = zexna(ji)
810 zp_exns(jj) = zexns(ji)
811 zp_alfa(jj) = zalfa(ji)
819 zp_sv(jj,jk) = psv(ji,jk)
823 DO jk=1,
SIZE(pdir_sw,2)
828 zp_dir_sw(jj,jk) = pdir_sw(ji,jk)
829 zp_sca_sw(jj,jk) = psca_sw(ji,jk)
838 gmeb=im%I%LMEB_PATCH(jpatch)
853 IF (im%CHI%SVI%NBEQ>0)
THEN
854 IF( im%CHI%CCH_DRY_DEP ==
"WES89")
THEN
856 kmask,ksize,im%I%NPATCH,jpatch)
869 zp_slope_cos(:) = 1./sqrt(1.+im%PKI%XP_SSO_SLOPE(:)**2)
870 IF(lnosof)zp_slope_cos(:) = 1.0
890 zp_z0flood,zp_ffgnos,zp_ffvnos)
899 zsnowdepth(:) = sum(im%PKI%XP_SNOWSWE(:,:)/im%PKI%XP_SNOWRHO(:,:),2)
900 zpalphan(:)=
mebpalphan(zsnowdepth,im%PKI%XP_H_VEG)
910 im%I%CROUGH, gmeb, zp_alfa, zp_zref, zp_uref, &
911 im%PKI%XP_Z0, im%PKI%XP_Z0REL, im%PKI%XP_PSN, &
912 zpalphan,im%PKI%XP_Z0LITTER, im%PKI%XP_SNOWSWE(:,1), &
913 im%PKI%XP_Z0EFFIP,im%PKI%XP_Z0EFFIM,im%PKI%XP_Z0EFFJP, &
914 im%PKI%XP_Z0EFFJM, im%PKI%XP_FF, zp_z0flood, &
915 im%PKI%XP_AOSIP,im%PKI%XP_AOSIM,im%PKI%XP_AOSJP,im%PKI%XP_AOSJM, &
916 im%PKI%XP_HO2IP,im%PKI%XP_HO2IM,im%PKI%XP_HO2JP,im%PKI%XP_HO2JM, &
917 im%PKI%XP_Z0_O_Z0H, im%PKDI%XP_Z0_WITH_SNOW, im%PKDI%XP_Z0H_WITH_SNOW, &
918 im%PKDI%XP_Z0EFF, zz0g_without_snow, &
919 zz0_mebv,zz0h_mebv,zz0eff_mebv, &
920 zz0_mebn,zz0h_mebn,zz0eff_mebn )
940 CALL
isba_albedo(im%I%TSNOW%SCHEME, im%I%LTR_ML, gmeb, &
941 zp_dir_sw, zp_sca_sw, psw_bands,iswb, &
942 im%PKI%XP_ALBNIR, im%PKI%XP_ALBVIS, im%PKI%XP_ALBUV, &
943 im%PKI%XP_ALBNIR_VEG, im%PKI%XP_ALBVIS_VEG, im%PKI%XP_ALBUV_VEG, &
944 im%PKI%XP_ALBNIR_SOIL, im%PKI%XP_ALBVIS_SOIL, im%PKI%XP_ALBUV_SOIL, &
945 im%PKI%XP_ALBF, im%PKI%XP_FFV, im%PKI%XP_FFG, &
946 zp_global_sw, im%PKDI%XP_SNOWFREE_ALB, im%PKDI%XP_SNOWFREE_ALB_VEG, &
947 im%PKDI%XP_SNOWFREE_ALB_SOIL, zp_meb_sca_sw, &
948 zp_albnir_tveg, zp_albvis_tveg, &
949 zp_albnir_tsoil, zp_albvis_tsoil )
956 im%I%CISBA,im%I%TSNOW%SCHEME, &
957 im%PKI%XP_WG,im%PKI%XP_WGI,im%PKI%XP_WR,im%PKI%XP_SNOWSWE, &
958 im%PKI%XP_DG, im%PKI%XP_DZG, zp_wg_ini, &
959 zp_wgi_ini, zp_wr_ini, &
967 CALL
isba(im%I%CISBA, im%I%CPHOTO, im%I%LTR_ML, im%I%CRUNOFF, im%I%CKSAT, im%I%CRAIN, &
968 im%I%CHORT, im%I%CC1DRY, im%I%CSCOND, im%I%TSNOW%SCHEME, im%I%CSNOWRES, &
969 im%I%CCPSURF, im%I%CSOILFRZ, im%I%CDIFSFCOND, im%I%TTIME, im%I%LFLOOD, &
970 im%I%LTEMP_ARP, im%I%LGLACIER, gmeb, im%I%LFORC_MEASURE, im%I%LMEB_LITTER, &
971 im%I%LMEB_GNDRES, ptstep, &
972 cimplicit_wind, im%I%LAGRI_TO_GRASS, im%I%LSNOWDRIFT, im%I%LSNOWDRIFT_SUBLIM, &
973 im%I%LSNOW_ABS_ZENITH, im%I%CSNOWMETAMO, im%I%CSNOWRAD, im%I%XCGMAX, zp_zref, &
974 zp_uref, zp_slope_cos, zp_ta, zp_qa, zp_exna, zp_rhoa, zp_ps, zp_exns, zp_rain, &
975 zp_snow, zp_zenith, zp_meb_sca_sw, zp_global_sw, zp_lw, zp_wind, zp_pew_a_coef, &
976 zp_pew_b_coef, zp_pet_a_coef, zp_peq_a_coef, zp_pet_b_coef, zp_peq_b_coef, &
977 im%PKI%XP_RSMIN, im%PKI%XP_RGL, im%PKI%XP_GAMMA, im%PKI%XP_CV, im%PKI%XP_RUNOFFD, &
978 im%PKI%XP_SOILWGHT, im%I%NLAYER_HORT, im%I%NLAYER_DUN, zp_albnir_tveg, zp_albvis_tveg, &
979 zp_albnir_tsoil, zp_albvis_tsoil, im%PKDI%XP_SNOWFREE_ALB, im%PKI%XP_WRMAX_CF, &
980 im%PKI%XP_VEG, im%PKI%XP_LAI, im%PKI%XP_EMIS, im%PKDI%XP_Z0_WITH_SNOW, &
981 im%PKDI%XP_Z0H_WITH_SNOW, im%PKI%XP_VEGTYPE_PATCH, im%PKDI%XP_Z0EFF, &
982 im%PKI%XP_RGLV, im%PKI%XP_GAMMAV, im%PKI%XP_RSMINV, &
983 im%PKI%XP_ROOTFRACV, im%PKI%XP_WRMAX_CFV, im%PKI%XP_LAIV, im%PKI%XP_BSLAI, &
984 im%PKI%XP_LAIMIN,im%PKI%XP_H_VEG,zpalphan, zz0g_without_snow, zz0_mebv, &
985 zz0h_mebv,zz0eff_mebv, zz0_mebn,zz0h_mebn,zz0eff_mebn, im%PKI%XP_GNDLITTER, &
986 im%PKI%XP_RUNOFFB, im%PKI%XP_CGSAT, im%PKI%XP_C1SAT, im%PKI%XP_C2REF, &
987 im%PKI%XP_C3, im%PKI%XP_C4B, im%PKI%XP_C4REF, im%PKI%XP_ACOEF, im%PKI%XP_PCOEF, &
988 im%PKI%XP_TAUICE, im%PKI%XP_WDRAIN, zp_tdeep_a, im%PKI%XP_TDEEP, im%PKI%XP_GAMMAT, &
989 im%PKI%XP_PSN, im%PKI%XP_PSNG, im%PKI%XP_PSNV, im%PKI%XP_PSNV_A, &
990 im%PKDI%XP_SNOWFREE_ALB_VEG, im%PKDI%XP_SNOWFREE_ALB_SOIL, im%PKI%XP_IRRIG, &
991 im%PKI%XP_WATSUP, im%PKI%XP_THRESHOLD, im%PKI%XP_LIRRIGATE, im%PKI%XP_LIRRIDAY, &
992 im%PKI%LP_STRESS, im%PKI%XP_GC, im%PKI%XP_F2I, im%PKI%XP_DMAX, im%PKI%XP_AH, &
993 im%PKI%XP_BH, zp_co2, im%PKI%XP_GMES, im%I%XPOI, im%PKI%XP_FZERO, im%PKI%XP_EPSO, &
994 im%PKI%XP_GAMM, im%PKI%XP_QDGAMM, im%PKI%XP_QDGMES, im%PKI%XP_T1GMES, im%PKI%XP_T2GMES, &
995 im%PKI%XP_AMAX, im%PKI%XP_QDAMAX, im%PKI%XP_T1AMAX, im%PKI%XP_T2AMAX, im%I%XABC, &
996 im%PKI%XP_DG, im%PKI%XP_DZG, im%PKI%XP_DZDIF, im%PKI%NK_WG_LAYER, im%PKI%XP_ROOTFRAC, &
997 im%PKI%XP_WFC, im%PKI%XP_WWILT, im%PKI%XP_WSAT, im%PKI%XP_BCOEF, im%PKI%XP_CONDSAT, &
998 im%PKI%XP_MPOTSAT, im%PKI%XP_HCAPSOIL, im%PKI%XP_CONDDRY, im%PKI%XP_CONDSLD, im%PKI%XP_D_ICE, &
999 im%PKI%XP_KSAT_ICE, im%PKI%XP_MUF, im%PKI%XP_FF, im%PKI%XP_FFG, im%PKI%XP_FFV, zp_ffgnos, &
1000 zp_ffvnos, im%PKI%XP_FFROZEN, im%PKI%XP_ALBF, im%PKI%XP_EMISF, im%PKI%XP_FFLOOD, im%PKI%XP_PIFLOOD, &
1001 im%PKDI%XP_IFLOOD, im%PKDI%XP_PFLOOD, im%PKDI%XP_LE_FLOOD, im%PKDI%XP_LEI_FLOOD, im%I%XSODELX, &
1002 im%PKI%XP_LAT, im%PKI%XP_LON, im%PKI%XP_TG, im%PKI%XP_WG, im%PKI%XP_WGI, im%PKI%XP_CPS, &
1003 im%PKI%XP_LVTT, im%PKI%XP_LSTT, im%PKI%XP_WR, im%PKI%XP_WRL, im%PKI%XP_WRLI, im%PKI%XP_WRVN, &
1004 im%PKI%XP_TV, im%PKI%XP_TL, &
1005 im%PKI%XP_RESA, im%PKI%XP_ANFM, im%PKI%XP_FSAT, im%PKI%XP_SNOWALB, im%PKI%XP_SNOWALBVIS, &
1006 im%PKI%XP_SNOWALBNIR, im%PKI%XP_SNOWALBFIR, im%PKI%XP_SNOWSWE, im%PKI%XP_SNOWHEAT, &
1007 im%PKI%XP_SNOWRHO, im%PKI%XP_SNOWGRAN1, im%PKI%XP_SNOWGRAN2, im%PKI%XP_SNOWHIST, im%PKI%XP_SNOWAGE, &
1008 im%PKDI%XP_GRNDFLUX, im%PKDI%XP_HPSNOW, im%PKDI%XP_SNOWHMASS, im%PKDI%XP_RNSNOW, im%PKDI%XP_HSNOW, &
1009 im%PKDI%XP_GFLUXSNOW, im%PKDI%XP_USTARSNOW, im%PKDI%XP_SRSFC, im%PKDI%XP_RRSFC, im%PKDI%XP_LESL, &
1010 im%PKI%XP_SNOWEMIS, im%PKDI%XP_CDSNOW, im%PKDI%XP_CHSNOW, im%PKDI%XP_TSRAD, im%PKDI%XP_TS, &
1011 im%PKDI%XP_HV, im%PKDI%XP_QS, im%PKDI%XP_SNOWTEMP, im%PKDI%XP_SNOWLIQ, im%PKDI%XP_SNOWDZ, &
1012 im%PKDI%XP_CG, im%PKDI%XP_C1, im%PKDI%XP_C2, im%PKDI%XP_WGEQ, im%PKDI%XP_CT, im%PKDI%XP_CH, im%PKDI%XP_CD, &
1013 im%PKDI%XP_CDN, im%PKDI%XP_RI, im%PKDI%XP_HU, im%PKDI%XP_HUG, zp_emis, im%PKDI%XP_ALBT, im%PKDI%XP_RS, &
1014 im%PKI%XP_LE, im%PKDI%XP_RN, im%PKDI%XP_H, im%PKDI%XP_LEI, im%PKDI%XP_LEGI, im%PKDI%XP_LEG, im%PKDI%XP_LEV, &
1015 im%PKDI%XP_LES, im%PKDI%XP_LER, im%PKDI%XP_LETR, im%PKDI%XP_EVAP, im%PKDI%XP_GFLUX, im%PKDI%XP_RESTORE, &
1016 zp_ustar, im%PKDI%XP_DRAIN, im%PKDI%XP_RUNOFF, im%PKDI%XP_MELT, im%PKDI%XP_MELTADV, im%PKI%XP_TC, &
1017 im%PKI%XP_QC, im%PKDI%XP_RN_ISBA, im%PKDI%XP_H_ISBA, im%PKDI%XP_LEG_ISBA, im%PKDI%XP_LEGI_ISBA, &
1018 im%PKDI%XP_LEV_ISBA, im%PKDI%XP_LETR_ISBA, im%PKDI%XP_USTAR_ISBA, im%PKDI%XP_LER_ISBA, im%PKDI%XP_LE_ISBA, &
1019 im%PKDI%XP_LEI_ISBA, im%PKDI%XP_GFLUX_ISBA, im%PKDI%XP_HORT, im%PKDI%XP_DRIP, im%PKDI%XP_RRVEG, &
1020 zp_ac_agg, zp_hu_agg, im%PKI%XP_FAPARC, im%PKI%XP_FAPIRC, im%PKI%XP_MUS, im%PKI%XP_LAI_EFFC, im%PKI%XP_AN, &
1021 im%PKI%XP_ANDAY, zp_resp_biomass_inst, im%PKDI%XP_IACAN, im%PKI%XP_ANF, im%PKDI%XP_GPP, im%PKDI%XP_FAPAR, &
1022 im%PKDI%XP_FAPIR, im%PKDI%XP_FAPAR_BS, im%PKDI%XP_FAPIR_BS, im%PKDI%XP_IRRIG_FLUX, zp_deep_flux, &
1023 im%PKDI%XP_SWNET_V, im%PKDI%XP_SWNET_G, im%PKDI%XP_SWNET_N, im%PKDI%XP_SWNET_NS, im%PKDI%XP_LWNET_V, &
1024 im%PKDI%XP_LWNET_G, im%PKDI%XP_LWNET_N, im%PKDI%XP_LEVCV, im%PKDI%XP_LESC, im%PKDI%XP_H_V_C, &
1025 im%PKDI%XP_H_G_C, im%PKDI%XP_LETRGV, im%PKDI%XP_LETRCV, im%PKDI%XP_LERGV, im%PKDI%XP_LELITTER, &
1026 im%PKDI%XP_LELITTERI,im%PKDI%XP_DRIPLIT,im%PKDI%XP_RRLIT, im%PKDI%XP_LERCV, im%PKDI%XP_H_C_A, &
1027 im%PKDI%XP_H_N_C, im%PKDI%XP_LE_C_A, im%PKDI%XP_LE_V_C, im%PKDI%XP_LE_G_C,im%PKDI%XP_LE_N_C, &
1028 im%PKDI%XP_EVAP_N_C, im%PKDI%XP_EVAP_G_C, im%PKDI%XP_SR_GN, im%PKDI%XP_MELTCV, im%PKDI%XP_FRZCV, &
1029 im%PKDI%XP_SWDOWN_GN, im%PKDI%XP_LWDOWN_GN, zirrig_gr, im%PKI%XP_TOPQS, im%PKDI%XP_QSB, im%PKDI%XP_SUBL, &
1030 im%PKI%XP_FWTD, im%PKI%XP_WTD, im%PKDI%XP_SNDRIFT )
1032 zp_trad=im%PKDI%XP_TSRAD
1038 IF(im%I%LGLACIER)
THEN
1041 ptstep,zp_snow,im%PKI%XP_SNOWRHO,im%PKI%XP_SNOWSWE,im%PKI%XP_ICE_STO,im%PKDI%XP_ICEFLUX)
1050 im%I%CISBA,im%I%TSNOW%SCHEME,im%I%LGLACIER,ptstep, &
1051 im%PKI%XP_WG,im%PKI%XP_WGI,im%PKI%XP_WR,im%PKI%XP_SNOWSWE, &
1052 im%PKI%XP_DG,im%PKI%XP_DZG,zp_wg_ini,zp_wgi_ini,zp_wr_ini, &
1053 zp_swe_ini,zp_rain,zp_snow,im%PKDI%XP_EVAP,im%PKDI%XP_DRAIN,&
1054 im%PKDI%XP_RUNOFF,im%PKDI%XP_IFLOOD,im%PKDI%XP_PFLOOD, &
1055 im%PKDI%XP_LE_FLOOD, im%PKDI%XP_LEI_FLOOD, &
1056 im%PKDI%XP_ICEFLUX,im%PKDI%XP_IRRIG_FLUX,im%PKDI%XP_SNDRIFT,&
1057 im%PKI%XP_LVTT, im%PKI%XP_LSTT, &
1058 im%PKDI%XP_DWG,im%PKDI%XP_DWGI,im%PKDI%XP_DWR, &
1059 im%PKDI%XP_DSWE,im%PKDI%XP_WATBUD )
1065 IF (im%I%CALBEDO==
'EVOL' .AND. im%I%LECOCLIMAP)
THEN
1067 im%PKI%XP_WSAT(:,1),im%PKI%XP_WG(:,1), &
1068 im%PKI%XP_ALBVIS_DRY,im%PKI%XP_ALBNIR_DRY,im%PKI%XP_ALBUV_DRY, &
1069 im%PKI%XP_ALBVIS_WET,im%PKI%XP_ALBNIR_WET,im%PKI%XP_ALBUV_WET, &
1070 im%PKI%XP_ALBVIS_SOIL,im%PKI%XP_ALBNIR_SOIL,im%PKI%XP_ALBUV_SOIL )
1072 CALL
albedo(im%I%CALBEDO, &
1073 im%PKI%XP_ALBVIS_VEG,im%PKI%XP_ALBNIR_VEG,im%PKI%XP_ALBUV_VEG,im%PKI%XP_VEG, &
1074 im%PKI%XP_ALBVIS_SOIL,im%PKI%XP_ALBNIR_SOIL,im%PKI%XP_ALBUV_SOIL, &
1075 im%PKI%XP_ALBVIS,im%PKI%XP_ALBNIR,im%PKI%XP_ALBUV )
1082 IF (im%I%CPHOTO==
'LAI' .OR. im%I%CPHOTO==
'LST' .OR. im%I%CPHOTO==
'NIT' .OR. im%I%CPHOTO==
'NCB')
THEN
1083 CALL
vegetation_evol(im%I%CISBA, im%I%CPHOTO, im%I%CRESPSL, im%I%CALBEDO, lagrip, im%I%LTR_ML, &
1084 im%I%LNITRO_DILU, im%I%LAGRI_TO_GRASS, im%DTI%LIMP_VEG, im%DTI%LIMP_Z0, im%DTI%LIMP_EMIS, &
1085 ptstep, kmonth, kday, im%I%NSPINW, ptime, im%PKI%XP_LAT, zp_rhoa, &
1086 im%PKI%XP_DG, im%PKI%XP_DZG, im%PKI%NK_WG_LAYER, &
1087 im%PKI%XP_TG, im%PKI%XP_ALBNIR_VEG, im%PKI%XP_ALBVIS_VEG, im%PKI%XP_ALBUV_VEG, &
1088 im%PKI%XP_ALBNIR_SOIL, im%PKI%XP_ALBVIS_SOIL, im%PKI%XP_ALBUV_SOIL, &
1089 im%PKI%XP_VEGTYPE_PATCH, im%PKI%XP_SEFOLD, im%PKI%XP_ANMAX, im%PKI%XP_H_TREE, im%PKI%XP_BSLAI,&
1090 im%PKI%XP_LAIMIN, zp_co2, im%PKI%XP_CE_NITRO, im%PKI%XP_CF_NITRO, im%PKI%XP_CNA_NITRO, &
1091 im%PKI%XP_BSLAI_NITRO, im%PKI%XP_GMES, im%PKI%XP_TAU_WOOD, im%PKI%TP_SEED, &
1092 im%PKI%TP_REAP, im%PKI%XP_AOSIP, im%PKI%XP_AOSIM, im%PKI%XP_AOSJP, im%PKI%XP_AOSJM, &
1093 im%PKI%XP_HO2IP, im%PKI%XP_HO2IM, im%PKI%XP_HO2JP, im%PKI%XP_HO2JM, im%PKI%XP_Z0EFFIP, &
1094 im%PKI%XP_Z0EFFIM, im%PKI%XP_Z0EFFJP, im%PKI%XP_Z0EFFJM, im%PKI%XP_LAI, im%PKI%XP_VEG, &
1095 im%PKI%XP_Z0, im%PKI%XP_ALBNIR, im%PKI%XP_ALBVIS, im%PKI%XP_ALBUV, im%PKI%XP_EMIS, &
1096 im%PKI%XP_ANFM, im%PKI%XP_ANDAY, im%PKI%XP_BIOMASS, im%PKI%XP_RESP_BIOMASS, &
1097 zp_resp_biomass_inst, im%PKI%XP_INCREASE, im%PKI%XP_TURNOVER, &
1100 pswdir=zp_global_sw )
1109 im%PKDI%XP_RESP_ECO (:)=0.
1110 im%PKDI%XP_RESP_AUTO(:)=0.
1112 IF ( im%I%CPHOTO/=
'NON' .AND. im%I%CRESPSL/=
'NON' .AND. any(im%PKI%XP_LAI(:)/=xundef) )
THEN
1113 CALL
carbon_evol(im%I%CISBA, im%I%CRESPSL, im%I%CPHOTO, ptstep, im%I%NSPINS, &
1114 zp_rhoa, im%PKI%XP_TG, im%PKI%XP_WG, im%PKI%XP_WFC, im%PKI%XP_WWILT, im%PKI%XP_WSAT, im%PKI%XP_SAND,&
1115 im%PKI%XP_DG, im%PKI%XP_DZG, im%PKI%NK_WG_LAYER, &
1116 im%PKI%XP_RE25, im%PKI%XP_LAI, zp_resp_biomass_inst, im%PKI%XP_TURNOVER, &
1117 im%PKI%XP_LITTER, im%PKI%XP_LIGNIN_STRUC , im%PKI%XP_SOILCARB, &
1118 im%PKDI%XP_RESP_AUTO, im%PKDI%XP_RESP_ECO )
1121 zp_sfco2(:) = im%PKDI%XP_RESP_ECO(:) - im%PKDI%XP_GPP(:)
1128 CALL
subscale_z0eff(im%PKI%XP_AOSIP,im%PKI%XP_AOSIM,im%PKI%XP_AOSJP,im%PKI%XP_AOSJM, &
1129 im%PKI%XP_HO2IP,im%PKI%XP_HO2IM,im%PKI%XP_HO2JP,im%PKI%XP_HO2JM,im%PKI%XP_Z0, &
1130 im%PKI%XP_Z0EFFIP,im%PKI%XP_Z0EFFIM,im%PKI%XP_Z0EFFJP,im%PKI%XP_Z0EFFJM, &
1131 omask=(im%PKI%XP_SNOWSWE(:,1)==0. .AND. im%PKI%XP_PSN(:)>0.) )
1137 zp_sfth(:) = im%PKDI%XP_H(:)
1138 zp_sftq(:) = im%PKDI%XP_EVAP(:)
1143 zp_sfu(:) = - zp_u(:)/zp_wind(:) * zp_ustar(:)**2 * zp_rhoa(:)
1144 zp_sfv(:) = - zp_v(:)/zp_wind(:) * zp_ustar(:)**2 * zp_rhoa(:)
1158 IF (im%CHI%SVI%NBEQ>0)
THEN
1159 IF( im%CHI%CCH_DRY_DEP ==
"WES89")
THEN
1161 CALL
ch_dep_isba(zp_ustar, im%PKDI%XP_HU, im%PKI%XP_PSN, &
1162 im%PKI%XP_VEG, im%PKI%XP_LAI, im%PKI%XP_SAND, im%PKI%XP_CLAY, im%PKI%XP_RESA, &
1163 im%PKDI%XP_RS(:), im%PKI%XP_Z0(:), &
1164 zp_ta, zp_pa, zp_trad(:), &
1165 im%PKI%XP_VEGTYPE_PATCH(:,nvt_no), &
1166 im%PKI%XP_VEGTYPE_PATCH(:,nvt_rock), &
1167 im%CHI%SVI%CSV(im%CHI%SVI%NSV_CHSBEG:im%CHI%SVI%NSV_CHSEND), &
1168 im%PKCI%XP_SOILRC_SO2, im%PKCI%XP_SOILRC_O3 , &
1169 im%PKCI%XP_DEP(:,1:im%CHI%SVI%NBEQ) )
1171 zp_sfts(:,im%CHI%SVI%NSV_CHSBEG:im%CHI%SVI%NSV_CHSEND) = - zp_sv(:,im%CHI%SVI%NSV_CHSBEG:im%CHI%SVI%NSV_CHSEND) &
1172 * im%PKCI%XP_DEP(:,1:im%CHI%SVI%NBEQ)
1173 IF (im%CHI%SVI%NAEREQ > 0 )
THEN
1174 CALL
ch_aer_dep(zp_sv(:,im%CHI%SVI%NSV_AERBEG:im%CHI%SVI%NSV_AEREND),&
1175 zp_sfts(:,im%CHI%SVI%NSV_AERBEG:im%CHI%SVI%NSV_AEREND),&
1176 zp_ustar, im%PKI%XP_RESA,zp_ta,zp_rhoa)
1179 zp_sfts(:,im%CHI%SVI%NSV_CHSBEG:im%CHI%SVI%NSV_CHSEND) = 0.
1180 zp_sfts(:,im%CHI%SVI%NSV_AERBEG:im%CHI%SVI%NSV_AEREND) = 0.
1188 IF(im%CHI%SVI%NDSTEQ>0)
THEN
1189 idst = im%CHI%SVI%NSV_DSTEND - im%CHI%SVI%NSV_DSTBEG + 1
1196 im%PKI%XP_CLAY(:,1), &
1202 im%PKI%XP_SAND(:,1), &
1205 im%PKI%XP_TG(:,1), &
1209 im%PKI%XP_WG(:,1), &
1210 im%PKI%XP_WSAT(:,1), &
1216 im%PKDI%XP_Z0H_WITH_SNOW, &
1217 zp_sfts(:,im%CHI%SVI%NSV_DSTBEG:im%CHI%SVI%NSV_DSTEND) &
1220 IF (im%CHI%SVI%NSV_AEREND > 0)
THEN
1224 IF (lvarsig_dst)
THEN
1225 jsv_idx = (jmode-1)*3
1226 ELSE IF (lrgfix_dst)
THEN
1229 jsv_idx = (jmode-1)*2
1233 IF ((trim(hsv(jsv)) ==
"@DSTI").AND.(jmode==3))
THEN
1235 zp_sfts(:,jsv) = zp_sfts(:,jsv) + zp_sfts(:,im%CHI%SVI%NSV_DSTBEG-1+jsv_idx+2)*xavogadro/xmolarweight_dst
1237 IF ( (trim(hsv(jsv)) ==
"@DSTJ").AND.(jmode==2))
THEN
1239 zp_sfts(:,jsv) = zp_sfts(:,jsv) + zp_sfts(:,im%CHI%SVI%NSV_DSTBEG-1+jsv_idx+2)*xavogadro/xmolarweight_dst
1247 CALL
dslt_dep(zp_sv(:,im%CHI%SVI%NSV_DSTBEG:im%CHI%SVI%NSV_DSTEND), &
1248 zp_sfts(:,im%CHI%SVI%NSV_DSTBEG:im%CHI%SVI%NSV_DSTEND), &
1249 zp_ustar, im%PKI%XP_RESA, zp_ta, zp_rhoa, dst%XEMISSIG_DST, dst%XEMISRADIUS_DST, &
1250 jpmode_dst, xdensity_dst, xmolarweight_dst, zconvertfacm0_dst, &
1251 zconvertfacm6_dst, zconvertfacm3_dst, lvarsig_dst, lrgfix_dst, &
1256 zp_sfts(:,im%CHI%SVI%NSV_DSTBEG:im%CHI%SVI%NSV_DSTEND), &
1258 dst%XEMISRADIUS_DST, &
1261 zconvertfacm0_dst, &
1262 zconvertfacm6_dst, &
1263 zconvertfacm3_dst, &
1264 lvarsig_dst, lrgfix_dst )
1272 IF (im%CHI%SVI%NSLTEQ>0)
THEN
1273 CALL
dslt_dep(zp_sv(:,im%CHI%SVI%NSV_SLTBEG:im%CHI%SVI%NSV_SLTEND), &
1274 zp_sfts(:,im%CHI%SVI%NSV_SLTBEG:im%CHI%SVI%NSV_SLTEND), &
1275 zp_ustar, im%PKI%XP_RESA, zp_ta, zp_rhoa, slt%XEMISSIG_SLT, slt%XEMISRADIUS_SLT, &
1276 jpmode_slt, xdensity_slt, xmolarweight_slt, zconvertfacm0_slt, &
1277 zconvertfacm6_slt, zconvertfacm3_slt, lvarsig_slt, lrgfix_slt, &
1281 zp_sfts(:,im%CHI%SVI%NSV_SLTBEG:im%CHI%SVI%NSV_SLTEND), &
1283 slt%XEMISRADIUS_SLT, &
1286 zconvertfacm0_slt, &
1287 zconvertfacm6_slt, &
1288 zconvertfacm3_slt, &
1289 lvarsig_slt, lrgfix_slt )
1297 zp_ta, im%PKDI%XP_TS, zp_qa, zp_pa, zp_ps, zp_rhoa, zp_u, zp_v, &
1299 im%PKDI%XP_CD, im%PKDI%XP_CDN, im%PKDI%XP_CH, im%PKDI%XP_RI, &
1300 im%PKDI%XP_HU, im%PKDI%XP_Z0_WITH_SNOW, &
1301 im%PKDI%XP_Z0H_WITH_SNOW, im%PKDI%XP_Z0EFF, &
1302 zp_sfth, zp_sftq, zp_sfu, zp_sfv, im%PKDI%XP_QS, &
1303 im%PKI%XP_DIR_ALB_WITH_SNOW, im%PKI%XP_SCA_ALB_WITH_SNOW, &
1304 zp_dir_sw, zp_sca_sw, zp_lw, im%PKDI%XP_RN )
1313 zp_tsurf(:) = im%PKDI%XP_TS (:)
1314 zp_z0(:) = im%PKDI%XP_Z0_WITH_SNOW (:)
1315 zp_z0h(:) = im%PKDI%XP_Z0H_WITH_SNOW(:)
1316 zp_qsurf(:) = im%PKDI%XP_QS (:)
1325 im%I%CPHOTO,ptstep,kmask,ksize,jpatch,zp_rhoa)
1332 ptstep, im%I%CISBA, im%I%CPHOTO, im%I%TSNOW%SCHEME, lagrip, im%I%LTR_ML, &
1333 ptime, ksize, jpatch, kmask, im%PKI%XP_THRESHOLD, &
1334 im%PKI%XP_PSN, im%PKI%XP_PSNG, im%PKI%XP_PSNV, im%PKI%XP_FF, im%PKI%XP_FFG, im%PKI%XP_FFV, &
1335 im%PKI%XP_WG, im%PKI%XP_WGI, im%PKI%XP_WFC, im%PKI%XP_WWILT, im%PKI%XP_SNOWSWE, im%PKI%XP_SNOWRHO,&
1336 im%PKI%XP_FAPARC, im%PKI%XP_FAPIRC, im%PKI%XP_LAI_EFFC, im%PKI%XP_MUS, im%PKI%XP_FSAT, &
1337 im%PKI%XP_DG, im%PKI%XP_TG )
1344 kmask,ksize,im%I%NPATCH,jpatch, &
1345 zcpl_drain,zcpl_runoff,zcpl_eflood,zcpl_pflood, &
1346 zcpl_iflood, zcpl_iceflux)
1350 IF (im%CHI%SVI%NBEQ>0)
THEN
1351 IF( im%CHI%CCH_DRY_DEP ==
"WES89")
THEN
1353 kmask,ksize,im%I%NPATCH,jpatch)
1366 IF (im%CHI%SVI%NBEQ>0 .AND. im%CHI%LCH_BIO_FLUX)
THEN
1369 zsw_forbio(kmask(jj),jpatch) = 0.
1376 zsw_forbio(kmask(jj),jpatch) = zsw_forbio(kmask(jj),jpatch) &
1377 + zp_dir_sw(jj,jswb) + zp_sca_sw(jj,jswb)
1386 IF (im%I%NPATCH==1)
THEN
1387 zsftq_tile(:,jpatch) = zp_sftq(:)
1388 zsfth_tile(:,jpatch) = zp_sfth(:)
1389 zsfts_tile(:,:,jpatch)= zp_sfts(:,:)
1390 zsfco2_tile(:,jpatch) = zp_sfco2(:)
1391 zsfu_tile(:,jpatch) = zp_sfu(:)
1392 zsfv_tile(:,jpatch) = zp_sfv(:)
1393 ztrad_tile(:,jpatch) = zp_trad(:)
1394 ztsurf_tile(:,jpatch) = zp_tsurf(:)
1395 zz0_tile(:,jpatch) = zp_z0(:)
1396 zz0h_tile(:,jpatch) = zp_z0h(:)
1397 zqsurf_tile(:,jpatch) = zp_qsurf(:)
1403 zsftq_tile(ji,jpatch) = zp_sftq(jj)
1404 zsfth_tile(ji,jpatch) = zp_sfth(jj)
1405 zsfco2_tile(ji,jpatch) = zp_sfco2(jj)
1406 zsfu_tile(ji,jpatch) = zp_sfu(jj)
1407 zsfv_tile(ji,jpatch) = zp_sfv(jj)
1408 ztrad_tile(ji,jpatch) = zp_trad(jj)
1409 ztsurf_tile(ji,jpatch) = zp_tsurf(jj)
1410 zz0_tile(ji,jpatch) = zp_z0(jj)
1411 zz0h_tile(ji,jpatch) = zp_z0h(jj)
1412 zqsurf_tile(ji,jpatch) = zp_qsurf(jj)
1417 DO jk=1,
SIZE(zp_sfts,2)
1420 zsfts_tile(ji,jk,jpatch)= zp_sfts(jj,jk)
1428 IF (ndstmde .GE. 1) imoment = int(idst / ndstmde)
1429 IF (im%CHI%SVI%NDSTEQ>0)
THEN
1431 IF (imoment == 1)
THEN
1432 dst%XSFDST(:,jsv,jpatch)=zsfts_tile(:,ndst_mdebeg+jsv-1,jpatch)
1434 dst%XSFDST(:,jsv,jpatch)=zsfts_tile(:,ndst_mdebeg+(jsv-1)*imoment+1,jpatch)
1437 dst%XSFDSTM(:,jsv,jpatch)=dst%XSFDSTM(:,jsv,jpatch) + dst%XSFDST(:,jsv,jpatch) * ptstep
1441 IF (lhook) CALL dr_hook(
'COUPLING_ISBA_n:TREAT_PATCH',1,zhook_handle)
subroutine pack_isba_patch_get_size_n(I, PKI, KPATCH)
subroutine isba_budget(DGEI, HISBA, HSNOW_ISBA, OGLACIER, PTSTEP, PWG, PWGI, PWR, PSNOWSWE, PDG, PDZG, PWG_INI, PWGI_INI, PWR_INI, PSWE_INI, PRAIN, PSNOW, PEVAP, PDRAIN, PRUNOFF, PIFLOOD, PPFLOOD, PLE_FLOOD, PLEI_FLOOD, PICEFLUX, PIRRIG_FLUX, PSNDRIFT, PLVTT, PLSTT, PDWG, PDWGI, PDWR, PDSWE, PWATBUD)
subroutine deepsoil_update(I, KMONTH)
subroutine coupling_surf_topd(DGEI, DGMI, IG, I, UG, U, HPROGRAM, KI)
subroutine isba_flood_properties(PLAI, PFFLOOD, PFFROZEN, PZ0FLOOD, PFFG_NOSNOW, PFFV_NOSNOW)
subroutine average_diag_misc_isba_n(DGMI, I)
subroutine diag_evap_isba_n(DGEI, DGI, I, PKDI, PKI, HPHOTO, PTSTEP, KMASK, KSIZE, KPATCH, PRHOA)
subroutine unpack_ch_isba_patch_n(CHI, PKCI, KMASK, KSIZE, KNPATCH, KPATCH)
subroutine treat_patch(KSIZE, KMASK)
subroutine diag_misc_isba_n(DGMI, PKDI, PTSTEP, HISBA, HPHOTO, HSNOW, OAGRIP, OTR_ML, PTIME, KSIZE, KPATCH, KMASK, PSEUIL, PPSN, PPSNG, PPSNV, PFF, PFFG, PFFV, PWG, PWGI, PWFC, PWWILT, PWSNOW, PRSNOW, PFAPARC, PFAPIRC, PLAI_EFFC, PMUS, PFSAT, PDG, PTG)
subroutine soilemisno_n(GB, I, PUA, PVA)
subroutine albedo_veg_update(DTCO, DTI, IG, I, PTSTEP, TTIME, PCOVER, OCOVER, HISBA, OECOCLIMAP, HPHOTO, OAGRIP, OTR_ML, HSFTYPE, PVEG, PALBNIR, PALBVIS, PALBUV, HALBEDO, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL)
subroutine pack_diag_patch_n(DGEI, DGI, DGMI, I, PKDI, KSIZE, KSW, KPATCH)
subroutine update_rad_isba_n(I, OFLOOD, HSNOW, PZENITH, PSW_BANDS, PVEG, PLAI, PZ0, OMEB_PATCH, PLAIGV, PGNDLITTER, PZ0LITTER, PH_VEG, PALBNIR, PALBVIS, PALBUV, PEMIS, PDIR_ALB_WITH_SNOW, PSCA_ALB_WITH_SNOW, PEMIST, PDIR_SW, PSCA_SW, PALBNIR_VEG, PALBNIR_SOIL, PALBVIS_VEG, PALBVIS_SOIL)
subroutine average_diag_isba_n(DGEI, DGI, I, PHW, PHT, PSFCO2, PTRAD)
subroutine ch_bvocem_n(CHI, GB, I, PSW_FORBIO, PRHOA, PSFTS)
subroutine coupling_isba_n(DTCO, UG, U, USS, IM, DTGD, DTGR, TGRO, DST, SLT, HPROGRAM, HCOUPLING, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PZREF, PUREF, PZS, PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST)
subroutine isba_sgh_update(IG, I, HISBA, HRUNOFF, HRAIN, PRAIN, PMUF, PFSAT, PTOPQS)
subroutine ch_aer_dep(PSVT, PFSVT, PUSTAR, PRESA, PTA, PRHODREF)
subroutine unpack_diag_patch_n(DGI, GB, I, PKDI, PKI, KMASK, KSIZE, KNPATCH, KPATCH, PCPL_DRAIN, PCPL_RUNOFF, PCPL_EFLOOD, PCPL_PFLOOD, PCPL_IFLOOD, PCPL_ICEFLUX)
subroutine pack_isba_patch_n(AG, IG, I, PKI, KMASK, KSIZE, KPATCH)
subroutine coupling_dst_n(DST, PKI, HPROGRAM, KI, KDST, KPATCH, PCLAY, PPS, PTS, PQA, PRA, PRHOA, PSAND, PPA, PTA, PTG, PU, PUREF, PV, PWG, PWSAT, PZREF, PCD, PCDN, PCH, PRI, PZ0H_WITH_SNOW, PSFDST)
subroutine carbon_spinup(KMONTH, KDAY, PTIME, OSPINUPCARBS, OSPINUPCARBW, PSPINMAXS, PSPINMAXW, KNBYEARSPINS, KNBYEARSPINW, KNBYEARSOLD, HPHOTO, HRESPSL, KSPINS, KSPINW)
subroutine vegetation_update(DTCO, DTI, DTGD, DTGR, IG, I, TGRO, PTSTEP, TTIME, PCOVER, OCOVER, HISBA, OECOCLIMAP, HPHOTO, OAGRIP, OTR_ML, HSFTYPE, PLAI, PVEG, PZ0, PALBNIR, PALBVIS, PALBUV, PEMIS, PRSMIN, PGAMMA, PWRMAX_CF, PRGL, PCV, PGMES, PBSLAI, PLAIMIN, PSEFOLD, PGC, PDMAX, PF2I, OSTRESS, PAOSIP, PAOSIM, PAOSJP, PAOSJM, PHO2IP, PHO2IM, PHO2JP, PHO2JM, PZ0EFFIP, PZ0EFFIM, PZ0EFFJP, PZ0EFFJM, HALBEDO, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL, PCE_NITRO, PCF_NITRO, PCNA_NITRO, TPSEED, TPREAP, PWATSUP, PIRRIG, PGNDLITTER, PRGLGV, PGAMMAGV, PRSMINGV, PWRMAX_CFGV, PH_VEG, PLAIGV, PZ0LITTER, ODUPDATED, OABSENT)
subroutine abor1_sfx(YTEXT)
subroutine average_phy(PFRAC_TILE, PTSURF_TILE, PZ0_TILE, PZ0H_TILE, PQSURF_TILE, PUREF, PZREF, PTSURF, PZ0, PZ0H, PQSURF)
subroutine pack_diag_patch_get_size_n(DGEI, DGI, DGMI, I, PKDI, KPATCH)
subroutine hydro_glacier(I, PTSTEP, PSR, PSNOWRHO, PSNOWSWE, PGLASTO, PICEFLUX)
subroutine average_rad(PFRAC_TILE, PDIR_ALB_TILE, PSCA_ALB_TILE, PEMIS_TILE, PTRAD_TILE, PDIR_ALB, PSCA_ALB, PEMIS, PTRAD)
subroutine massflux2momentflux(PFLUX, PRHODREF, PEMISRADIUS, PEMISSIG, KMDE, PCONVERTFACM0, PCONVERTFACM6, PCONVERTFACM3, OVARSIG, ORGFIX)
subroutine isba_albedo(HSNOW, OTR_ML, OMEB, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PALBNIR, PALBVIS, PALBUV, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL, PFALB, PFFV, PFFG, PGLOBAL_SW, PSNOWFREE_ALB, PSNOWFREE_ALB_VEG, PSNOWFREE_ALB_SOIL, PMEB_SCA_SW, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL)
subroutine dslt_dep(PSVT, PFSVT, PUSTAR, PRESA, PTA, PRHODREF, PEMISSIG, PEMISRADIUS, KPMODE, PDENSITY, PMOLARWEIGHT, PCONVERTFACM0, PCONVERTFACM6, PCONVERTFACM3, OVARSIG, ORGFIX, HVERMOD)
subroutine average_flux(PFRAC_TILE, PSFTH_TILE, PSFTQ_TILE, PSFTS_TILE, PSFCO2_TILE, PSFU_TILE, PSFV_TILE, PSFTH, PSFTQ, PSFTS, PSFCO2, PSFU, PSFV)
subroutine unpack_isba_patch_n(AG, I, PKI, KMASK, KSIZE, KPATCH)
subroutine isba_budget_init(DGEI, HISBA, HSNOW_ISBA, PWG, PWGI, PWR, PSNOWSWE, PDG, PDZG, PWG_INI, PWGI_INI, PWR_INI, PSWE_INI)
subroutine average_diag_evap_isba_n(DGEI, I, PTSTEP, PRAIN, PSNOW)
subroutine diag_inline_isba_n(DGEI, DGI, I, PKDI, PTA, PTS, PQA, PPA, PPS, PRHOA, PZONA, PMERA, PHT, PHW, PCD, PCDN, PCH, PRI, PHU, PZ0, PZ0H, PZ0EFF, PSFTH, PSFTQ, PSFZON, PSFMER, PQS, PDIR_ALB, PSCA_ALB, PDIR_SW, PSCA_SW, PLW, PRN)
subroutine pack_ch_isba_patch_n(CHI, PKCI, KMASK, KSIZE, KNPATCH, KPATCH)
subroutine diag_cpl_esm_isba(I, PTSTEP, PCPL_DRAIN, PCPL_RUNOFF, PCPL_EFLOOD, PCPL_PFLOOD, PCPL_IFLOOD, PCPL_ICEFLUX)
subroutine add_forecast_to_date_surf(KYEAR, KMONTH, KDAY, PSEC)
subroutine isba(HISBA, HPHOTO, OTR_ML, HRUNOFF, HKSAT, HRAIN, HHORT, HC1DRY, HSCOND, HSNOW_ISBA, HSNOWRES, HCPSURF, HSOILFRZ, HDIFSFCOND, TPTIME, OFLOOD, OTEMP_ARP, OGLACIER, OMEB, OFORC_MEASURE, OMEB_LITTER, OMEB_GNDRES, PTSTEP, HIMPLICIT_WIND, OAGRI_TO_GRASS, OSNOWDRIFT, OSNOWDRIFT_SUBLIM, OSNOW_ABS_ZENITH, HSNOWMETAMO, HSNOWRAD, PCGMAX, PZREF, PUREF, PDIRCOSZW, PTA, PQA, PEXNA, PRHOA, PPS, PEXNS, PRR, PSR, PZENITH, PSCA_SW, PSW_RAD, PLW_RAD, PVMOD, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, PRSMIN, PRGL, PGAMMA, PCV, PRUNOFFD, PSOILWGHT, KLAYER_HORT, KLAYER_DUN, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL, PALB, PWRMAX_CF, PVEG, PLAI, PEMIS, PZ0_WITH_SNOW, PZ0H_WITH_SNOW, PVEGTYPE, PZ0EFF, PRGLCV, PGAMMACV, PRSMINCV, PROOTFRACCV, PWRMAX_CFCV, PLAIV, PBSLAI, PLAIMIN, PH_VEG, PPALPHAN, PZ0G_WITHOUT_SNOW, PZ0_MEBV, PZ0H_MEBV, PZ0EFF_MEBV, PZ0_MEBN, PZ0H_MEBN, PZ0EFF_MEBN, PGNDLITTER, PRUNOFFB, PCGSAT, PC1SAT, PC2REF, PC3, PC4B, PC4REF, PACOEF, PPCOEF, PTAUICE, PWDRAIN, PTDEEP_A, PTDEEP_B, PGAMMAT, PPSN, PPSNG, PPSNV, PPSNV_A, PSNOWFREE_ALB_VEG, PSNOWFREE_ALB_SOIL, PIRRIG, PWATSUP, PTHRESHOLD, LIRRIGATE, LIRRIDAY, OSTRESSDEF, PGC, PF2I, PDMAX, PAH, PBH, PCSP, PGMES, PPOI, PFZERO, PEPSO, PGAMM, PQDGAMM, PQDGMES, PT1GMES, PT2GMES, PAMAX, PQDAMAX, PT1AMAX, PT2AMAX, PABC, PD_G, PDZG, PDZDIF, KWG_LAYER, PROOTFRAC, PWFC, PWWILT, PWSAT, PBCOEF, PCONDSAT, PMPOTSAT, PHCAPSOIL, PCONDDRY, PCONDSLD, PD_ICE, PKSAT_ICE, PMUF, PFF, PFFG, PFFV, PFFG_NOSNOW, PFFV_NOSNOW, PFFROZEN, PFALB, PFEMIS, PFFLOOD, PPIFLOOD, PIFLOOD, PPFLOOD, PLE_FLOOD, PLEI_FLOOD, PSODELX, PLAT, PLON, PTG, PWG, PWGI, PCPS, PLVTT, PLSTT, PWR, PWRL, PWRLI, PWRVN, PTV, PTL, PRESA, PANFM, PFSAT, PSNOWALB, PSNOWALBVIS, PSNOWALBNIR, PSNOWALBFIR, PSNOWSWE, PSNOWHEAT, PSNOWRHO, PSNOWGRAN1, PSNOWGRAN2, PSNOWHIST, PSNOWAGE, PGRNDFLUX, PHPSNOW, PSNOWHMASS, PRNSNOW, PHSNOW, PGFLUXSNOW, PUSTARSNOW, PSRSFC, PRRSFC, PLESL, PEMISNOW, PCDSNOW, PCHSNOW, PTS_RAD, PTS, PHV, PQS, PSNOWTEMP, PSNOWLIQ, PSNOWDZ, PCG, PC1, PC2, PWGEQ, PCT, PCH, PCD, PCDN, PRI, PHU, PHUG, PEMIST, PALBT, PRS, PLE, PRN, PH, PLEI, PLEGI, PLEG, PLEV, PLES, PLER, PLETR, PEVAP, PGFLUX, PRESTORE, PUSTAR, PDRAIN, PRUNOFF, PMELT, PMELTADV, PTC, PQC, PRN_ISBA, PH_ISBA, PLEG_ISBA, PLEGI_ISBA, PLEV_ISBA, PLETR_ISBA, PUSTAR_ISBA, PLER_ISBA, PLE_ISBA, PLEI_ISBA, PGFLUX_ISBA, PHORT, PDRIP, PRRVEG, PAC_AGG, PHU_AGG, PFAPARC, PFAPIRC, PMUS, PLAI_EFFC, PAN, PANDAY, PRESP_BIOMASS_INST, PIACAN, PANF, PGPP, PFAPAR, PFAPIR, PFAPAR_BS, PFAPIR_BS, PIRRIG_FLUX, PDEEP_FLUX, PSWNET_V, PSWNET_G, PSWNET_N, PSWNET_NS, PLWNET_V, PLWNET_G, PLWNET_N, PLEV_V_C, PLES_V_C, PH_V_C, PH_G_C, PLETR_G_C, PLETR_V_C, PLER_G_C, PLELITTER, PLELITTERI, PDRIPLIT, PRRLIT, PLER_V_C, PH_C_A, PH_N_C, PLE_C_A, PLE_V_C, PLE_G_C, PLE_N_C, PEVAP_N_C, PEVAP_G_C, PSR_GN, PMELTCV, PFRZCV, PSWDOWN_GN, PLWDOWN_GN, PIRRIG_GR, PTOPQS, PQSB, PSUBL, PFWTD, PWTD, PSNDRIFT)
subroutine ch_dep_isba(PUSTAR, PHU, PPSN, PVEG, PLAI, PSAND, PCLAY, PRESA, PRS, PZ0, PTA, PPA, PTRAD, PNO, PROCK, HSV, PSOILRC_SO2, PSOILRC_O3, PDEP)
subroutine irrigation_update(AG, PIRRIG, PTSTEP, KMONTH, KDAY, PTIME, TSEEDMONTH, TSEEDDAY, TREAPMONTH, TREAPDAY)
subroutine vegetation_evol(HISBA, HPHOTO, HRESPSL, HALBEDO, OAGRIP, OTR_ML, ONITRO_DILU, OAGRI_TO_GRASS, OIMP_VEG, OIMP_Z0, OIMP_EMIS, PTSTEP, KMONTH, KDAY, KSPINW, PTIME, PLAT, PRHOA, PDG, PDZG, KWG_LAYER, PTG, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL, PVEGTYPE, PSEFOLD, PANMAX, PH_TREE, PBSLAI, PLAIMIN, P_CO2, PCE_NITRO, PCF_NITRO, PCNA_NITRO, PBSLAI_NITRO, PGMES, PTAU_WOOD, TPSEED, TPREAP, PAOSIP, PAOSIM, PAOSJP, PAOSJM, PHO2IP, PHO2IM, PHO2JP, PHO2JM, PZ0EFFIP, PZ0EFFIM, PZ0EFFJP, PZ0EFFJM, PLAI, PVEG, PZ0, PALBNIR, PALBVIS, PALBUV, PEMIS, PANFM, PANDAY, PBIOMASS, PRESP_BIOMASS, PRESP_BIOMASS_INST, PINCREASE, PTURNOVER, PSWDIR)
subroutine z0eff(I, HROUGH, OMEB, PALFA, PZREF, PUREF, PZ0, PZ0REL, PPSN, PPALPHAN, PZ0LITTER, PWSNOW, PZ0EFFIP, PZ0EFFIM, PZ0EFFJP, PZ0EFFJM, PFF, PZ0_FLOOD, PAOSIP, PAOSIM, PAOSJP, PAOSJM, PHO2IP, PHO2IM, PHO2JP, PHO2JM, PZ0_O_Z0H, PZ0_WITH_SNOW, PZ0H_WITH_SNOW, PZ0EFF, PZ0G_WITHOUT_SNOW, PZ0_MEBV, PZ0H_MEBV, PZ0EFF_MEBV, PZ0_MEBN, PZ0H_MEBN, PZ0EFF_MEBN)
subroutine carbon_evol(HISBA, HRESPSL, HPHOTO, PTSTEP, KSPINS, PRHOA, PTG, PWG, PWFC, PWWILT, PWSAT, PSAND, PDG, PDZG, KWG_LAYER, PRE25, PLAI, PRESP_BIOMASS_INST, PTURNOVER, PLITTER, PLIGNIN_STRUC, PSOILCARB, PRESP_AUTO, PRESP_ECO)