10 prnet_v,prnet_g,prnet_n, &
11 pswnet_v,pswnet_g,pswnet_n, &
12 plwnet_v,plwnet_g,plwnet_n, &
13 plwnet_v_dtv,plwnet_v_dtg,plwnet_v_dtn, &
14 plwnet_g_dtv,plwnet_g_dtg,plwnet_g_dtn, &
15 plwnet_n_dtv,plwnet_n_dtg,plwnet_n_dtn, &
16 pthrma_ta,pthrmb_ta,pthrma_tc,pthrmb_tc, &
17 pthrma_tg,pthrmb_tg,pthrma_tv,pthrmb_tv,pthrma_tn,pthrmb_tn, &
18 pqsat_g,pqsat_v,pqsati_n, &
19 pff,ppsn,ppsna,ppsncv,pfrozen1,pffrozen, &
20 pleg_delta,plegi_delta,phug,phugi,phvg,phvn, &
21 pflxc_c_a,pflxc_g_c,pflxc_vg_c,pflxc_vn_c,pflxc_n_c,pflxc_n_a, &
22 pflxc_mom,pflxc_v_c,phvgs,phvns, &
24 pdqsat_g,pdqsat_v,pdqsati_n, &
25 ptc,pqc,pta_ic,pqa_ic, &
27 pdeltat_g,pdeltat_v,pdeltat_n, &
28 psw_up,psw_rad,plw_rad, &
30 ph_c_a,ph_v_c,ph_g_c,ph_n_c,ph_n_a,ph_n,ph, &
31 ple_c_a,ple_v_c,ple_g_c,ple_n_c, &
32 pevap_c_a,plev_v_c,pevap_g_c,pevap_n_c,pevap_n_a, &
33 pevap,psubl,pletr_v_c,pler_v_c,pleg,plegi, &
34 ple_flood,plei_flood,ples,plel, &
35 pevapn,ples_v_c,pletr,pler,plev,ple,plei,pts_rad,pemis,plstt )
85 USE modd_csts, ONLY : xlvtt, xlstt, xstefan
87 USE modi_isba_emis_meb
89 USE yomhook
,ONLY : lhook, dr_hook
90 USE parkind1
,ONLY : jprb
96 REAL,
DIMENSION(:),
INTENT(IN) :: prhoa
99 REAL,
DIMENSION(:),
INTENT(IN) :: pswnet_v, pswnet_g, pswnet_n
104 REAL,
DIMENSION(:),
INTENT(IN) :: psigma_f, psigma_fn, pemis_n
106 REAL,
DIMENSION(:),
INTENT(IN) :: plwnet_v_dtv, plwnet_v_dtg, plwnet_v_dtn
110 REAL,
DIMENSION(:),
INTENT(IN) :: plwnet_g_dtv, plwnet_g_dtg, plwnet_g_dtn
114 REAL,
DIMENSION(:),
INTENT(IN) :: plwnet_n_dtv, plwnet_n_dtg, plwnet_n_dtn
118 REAL,
DIMENSION(:),
INTENT(IN) :: pthrma_ta, pthrmb_ta, pthrma_tc, pthrmb_tc, &
119 pthrma_tg, pthrmb_tg, pthrma_tv, pthrmb_tv, pthrma_tn, pthrmb_tn
133 REAL,
DIMENSION(:),
INTENT(IN) :: pqsat_g, pqsat_v, pqsati_n
138 REAL,
DIMENSION(:),
INTENT(IN) :: pff, ppsn, ppsna, ppsncv, pfrozen1, pffrozen, plstt
148 REAL,
DIMENSION(:),
INTENT(IN) :: pleg_delta, plegi_delta, phugi, phug, phvg, phvn
153 REAL,
DIMENSION(:),
INTENT(IN) :: pflxc_c_a, pflxc_g_c, pflxc_vg_c, pflxc_vn_c, pflxc_n_c, pflxc_n_a, &
165 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptn
168 REAL,
DIMENSION(:),
INTENT(IN) :: ptv
171 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptg
174 REAL,
DIMENSION(:),
INTENT(IN) :: pdqsat_g, pdqsat_v, pdqsati_n
182 REAL,
DIMENSION(:),
INTENT(IN) :: phvgs, phvns
188 REAL,
DIMENSION(:),
INTENT(IN) :: ptc, pqc, pta_ic, pqa_ic
194 REAL,
DIMENSION(:),
INTENT(IN) :: psw_up, psw_rad, plw_rad
199 REAL,
DIMENSION(:),
INTENT(IN) :: pdelta_v
202 REAL,
DIMENSION(:),
INTENT(IN) :: pdeltat_v, pdeltat_n, pdeltat_g
207 REAL,
DIMENSION(:),
INTENT(INOUT):: plwnet_v, plwnet_g, plwnet_n
212 REAL,
DIMENSION(:),
INTENT(OUT) :: prnet_v, prnet_g, prnet_n
217 REAL,
DIMENSION(:),
INTENT(OUT) :: prnet, plw_up
221 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_c_a, ph_v_c, ph_g_c, ph_n_c, ph_n, ph, ph_n_a
230 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_c_a, ple_v_c, ple_g_c, ple_n_c
236 REAL,
DIMENSION(:),
INTENT(OUT) :: pevap_c_a, plev_v_c, pevap_g_c, pevap_n_c, pevap_n_a, &
247 REAL,
DIMENSION(:),
INTENT(OUT) :: pletr_v_c, pler_v_c, pleg, plegi, ple_flood, &
248 plei_flood, ples, plel, ples_v_c, pletr, plev, ple, plei, pler
264 REAL,
DIMENSION(:),
INTENT(OUT) :: pts_rad, pemis
273 REAL,
DIMENSION(SIZE(PTV)) :: zfff, zwork
277 REAL,
DIMENSION(SIZE(PTV)) :: zsair, zsairc
281 REAL,
DIMENSION(SIZE(PTV)) :: zevap_v_c
284 REAL,
DIMENSION(SIZE(PTV)) :: zqsatn_v, zqsatin_n, zqsatn_g
292 REAL(KIND=JPRB) :: zhook_handle
298 IF (lhook) CALL dr_hook(
'ISBA_FLUXES_MEB',0,zhook_handle)
306 plwnet_v(:) = plwnet_v(:) + plwnet_v_dtv(:)*pdeltat_v(:) &
307 + plwnet_v_dtg(:)*pdeltat_g(:) &
308 + plwnet_v_dtn(:)*pdeltat_n(:)
310 plwnet_g(:) = plwnet_g(:) + plwnet_g_dtv(:)*pdeltat_v(:) &
311 + plwnet_g_dtg(:)*pdeltat_g(:) &
312 + plwnet_g_dtn(:)*pdeltat_n(:)
314 plwnet_n(:) = plwnet_n(:) + plwnet_n_dtv(:)*pdeltat_v(:) &
315 + plwnet_n_dtg(:)*pdeltat_g(:) &
316 + plwnet_n_dtn(:)*pdeltat_n(:)
320 plw_up(:) = plw_rad(:) - (plwnet_v(:) + plwnet_g(:) + plwnet_n(:))
339 pts_rad(:) = ((plw_up(:) - plw_rad(:)*(1.0-pemis(:)))/(xstefan*pemis(:)))**0.25
344 prnet_v(:) = pswnet_v(:) + plwnet_v(:)
346 prnet_g(:) = pswnet_g(:) + plwnet_g(:)
348 prnet_n(:) = pswnet_n(:) + plwnet_n(:)
353 prnet(:) = prnet_g(:) + prnet_v(:) + prnet_n(:)
361 zsair(:) = pthrmb_ta(:) + pthrma_ta(:) *pta_ic(:)
362 zsairc(:) = pthrmb_tc(:) + pthrma_tc(:) *ptc(:)
369 ph_c_a(:) = pflxc_c_a(:) *( zsairc(:) - zsair(:) )*(1.0 - ppsn(:)*ppsna(:))
370 ph_v_c(:) = pflxc_v_c(:) *( pthrmb_tv(:) + pthrma_tv(:)*ptv(:) - zsairc(:) )
371 ph_g_c(:) = pflxc_g_c(:) *( pthrmb_tg(:) + pthrma_tg(:)*ptg(:,1) - zsairc(:) )*(1.0-ppsn(:))
372 ph_n_c(:) = pflxc_n_c(:) *( pthrmb_tn(:) + pthrma_tn(:)*ptn(:,1) - zsairc(:) )* ppsn(:) *(1.0-ppsna(:))
373 ph_n_a(:) = pflxc_n_a(:) *( pthrmb_tn(:) + pthrma_tn(:)*ptn(:,1) - zsair(:) )* ppsn(:) * ppsna(:)
378 ph_n(:) = ph_n_c(:) + ph_n_a(:)
382 ph(:) = ph_c_a(:) + ph_n_a(:)
392 zqsatn_g(:) = pqsat_g(:) + pdqsat_g(:) * pdeltat_g(:)
393 zqsatn_v(:) = pqsat_v(:) + pdqsat_v(:) * pdeltat_v(:)
394 zqsatin_n(:) = pqsati_n(:) + pdqsati_n(:) * pdeltat_n(:)
398 zfff(:) = pff(:)*( 1.0 - pffrozen(:)*(1.0 - (xlstt/xlvtt)) )
403 zwork(:) = (1.-ppsn(:)-zfff(:)) * pflxc_g_c(:)
405 pleg(:) = zwork(:)*pleg_delta(:) *( phug(:) *zqsatn_g(:) - pqc(:) )*(1.-pfrozen1(:))*xlvtt
407 plegi(:) = zwork(:)*plegi_delta(:)*( phugi(:)*zqsatn_g(:) - pqc(:) )* pfrozen1(:) *xlstt
411 zwork(:) = pff(:) * pflxc_g_c(:)*( zqsatn_g(:) - pqc(:) )
412 ple_flood(:) = zwork(:) * (1.-pffrozen(:))* xlvtt
413 plei_flood(:) = zwork(:) * pffrozen(:) * xlstt
417 zevap_v_c(:) = (1.-ppsncv(:)) * phvgs(:) * pflxc_v_c(:)*( zqsatn_v(:) - pqc(:) )
421 pler_v_c(:) = ( (1.-ppsna(:))*ppsn(:) * pflxc_vn_c(:) + &
422 (1.-ppsn(:))* pflxc_vg_c(:) ) * &
423 xlvtt * (1.-ppsncv(:))* pdelta_v(:) * ( zqsatn_v(:) - pqc(:) )
427 pletr_v_c(:) = zevap_v_c(:) * xlvtt - pler_v_c(:)
431 ples_v_c(:) = ppsncv(:) * xlstt * phvns(:) * pflxc_v_c(:)*( zqsatn_v(:) - pqc(:) )
436 plev_v_c(:) = xlvtt*zevap_v_c(:)
441 ple_v_c(:) = plev_v_c(:) + ples_v_c(:)
445 pevap_n_c(:) = pflxc_n_c(:)*(zqsatin_n(:) - pqc(:))*ppsn(:)*(1.0-ppsna(:))*(xlstt/xlvtt)
447 ple_n_c(:) = xlvtt*pevap_n_c(:)
451 pletr(:) = pletr_v_c(:)
456 plev(:) = pletr(:) + pler_v_c(:)
461 pler(:) = pler_v_c(:)
465 pevap_n_a(:) = pflxc_n_a(:) *( zqsatin_n(:) - pqa_ic(:))* ppsn(:)* ppsna(:) *(xlstt/xlvtt)
469 ples(:) = ( pflxc_n_c(:) *( zqsatin_n(:) - pqc(:) )* ppsn(:)*(1.0-ppsna(:)) + &
470 pflxc_n_a(:) *( zqsatin_n(:) - pqa_ic(:))* ppsn(:)* ppsna(:) ) * xlstt
474 plel(:) = xlvtt*(pevap_n_c(:) + pevap_n_a(:)) - ples(:)
478 pevapn(:) = (plel(:) + ples(:))/xlvtt
483 ple_g_c(:) = ple_flood(:) + plei_flood(:) + plegi(:) + pleg(:)
485 pevap_g_c(:) = ple_g_c(:)/xlvtt
489 pevap_c_a(:) = pflxc_c_a(:) *( pqc(:) - pqa_ic(:))*(1.0 - ppsn(:)*ppsna(:))
491 ple_c_a(:) = xlvtt * pevap_c_a(:)
497 pevap(:) = pevap_c_a(:) + pevap_n_a(:)
501 ple(:) = pevap(:)*xlvtt
505 plei(:) = ples(:) + plegi(:) + plei_flood(:)
509 psubl(:) = plei(:)/plstt(:)
511 IF (lhook) CALL dr_hook(
'ISBA_FLUXES_MEB',1,zhook_handle)
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 isba_emis_meb(PPSN, PPSNA, PSIGMA_F, PSIGMA_FN, PEMIS_N, PEMIS)