7 ptv,ptg,ptn,plw_rad,plwnet_n,plwnet_v,plwnet_g, &
8 plwnet_v_dtv,plwnet_v_dtg,plwnet_v_dtn, &
9 plwnet_g_dtv,plwnet_g_dtg,plwnet_g_dtn, &
10 plwnet_n_dtv,plwnet_n_dtg,plwnet_n_dtn, &
64 USE yomhook
,ONLY : lhook, dr_hook
65 USE parkind1
,ONLY : jprb
71 REAL,
DIMENSION(:),
INTENT(IN) :: plai, ppsn, ppsna, plw_rad, psigma_f
73 REAL,
DIMENSION(:),
INTENT(IN) :: ptv, ptg, ptn
75 REAL,
DIMENSION(:),
INTENT(IN) :: pemis_n, pemis_f, pff
77 REAL,
DIMENSION(:),
INTENT(OUT) :: plwnet_n, plwnet_v, plwnet_g
79 REAL,
DIMENSION(:),
INTENT(OUT) :: plwdown_gn
81 REAL,
DIMENSION(:),
INTENT(OUT) :: plwnet_v_dtv, plwnet_v_dtg, plwnet_v_dtn
85 REAL,
DIMENSION(:),
INTENT(OUT) :: plwnet_g_dtv, plwnet_g_dtg, plwnet_g_dtn
89 REAL,
DIMENSION(:),
INTENT(OUT) :: plwnet_n_dtv, plwnet_n_dtg, plwnet_n_dtn
93 REAL,
DIMENSION(:),
INTENT(OUT) :: psigma_fn
98 REAL,
DIMENSION(SIZE(PLAI)) :: zlwup
100 REAL,
DIMENSION(SIZE(PLAI)) :: zsigma_fa, zpn, zfrac, zemis
102 REAL,
DIMENSION(SIZE(PLAI)) :: zlw_g_a, zlw_g_b, zlw_g_c, &
103 zlw_g_d, zlw_g_e, zlw_g_f, zlw_g_g, &
104 zlw_g_h, zlw_g_i, zlw_g_j, zlw_g_k, &
107 REAL,
DIMENSION(SIZE(PLAI)) :: zlw_n_a, zlw_n_b, zlw_n_c, &
108 zlw_n_d, zlw_n_e, zlw_n_f, zlw_n_g, &
109 zlw_n_h, zlw_n_i, zlw_n_j, zlw_n_k, &
112 REAL,
DIMENSION(SIZE(PEMIS_N)) :: zemis_g
114 REAL(KIND=JPRB) :: zhook_handle
120 IF (lhook) CALL dr_hook(
'ISBA_LWNET_MEB',0,zhook_handle)
125 zemis_g(:) = xemissoil*(1.-pff(:)) + pff(:)*pemis_f(:)
138 zfrac(:) = 1.-ppsn(:)
139 zpn(:) = ppsn(:)*(1.-ppsna(:))
140 zsigma_fa(: ) = (1.-zpn(:))*psigma_f(:) + zpn(:)*psigma_fn(:)
142 CALL
lw_flux_comp(zpn,plw_rad,zfrac,psigma_f,zsigma_fa, &
144 zlw_g_a,zlw_g_b,zlw_g_c,zlw_g_d,zlw_g_e,zlw_g_f, &
145 zlw_g_g,zlw_g_h,zlw_g_i,zlw_g_j,zlw_g_k,zlw_g_l )
150 zpn(:) = ppsn(:) + ppsna(:)*(1.-ppsn(:))
151 zsigma_fa(: ) = (1.-zpn(:))*psigma_f(:) + zpn(:)*psigma_fn(:)
153 CALL
lw_flux_comp(zpn,plw_rad,zfrac,psigma_fn,zsigma_fa, &
155 zlw_n_a,zlw_n_b,zlw_n_c,zlw_n_d,zlw_n_e,zlw_n_f, &
156 zlw_n_g,zlw_n_h,zlw_n_i,zlw_n_j,zlw_n_k,zlw_n_l )
165 plwdown_gn(:) = zlw_g_c(:) + zlw_g_f(:) + zlw_n_c(:) + zlw_n_f(:) + &
166 zlw_g_j(:) + zlw_g_k(:) + zlw_n_j(:) + zlw_n_k(:)
172 plwnet_v_dtv(:) = ( zlw_g_g(:) - zlw_g_h(:) - 2*zlw_g_f(:) &
173 + zlw_n_g(:) - zlw_n_h(:) - 2*zlw_n_f(:) )*4/ptv(:)
174 plwnet_v_dtg(:) = ( zlw_g_i(:) - zlw_g_j(:) - zlw_g_k(:) &
175 - zlw_g_l(:) )*4/ptg(:)
176 plwnet_v_dtn(:) = ( zlw_n_i(:) - zlw_n_j(:) - zlw_n_k(:) &
177 - zlw_n_l(:) )*4/ptn(:)
179 plwnet_g_dtv(:) = ( zlw_g_f(:) - zlw_g_g(:) )*4/ptv(:)
180 plwnet_g_dtg(:) = ( zlw_g_j(:) - zlw_g_i(:) )*4/ptg(:)
181 plwnet_g_dtn(:) = zlw_n_j(:) *4/ptn(:)
183 plwnet_n_dtv(:) = ( zlw_n_f(:) - zlw_n_g(:) )*4/ptv(:)
184 plwnet_n_dtg(:) = zlw_g_k(:) *4/ptg(:)
185 plwnet_n_dtn(:) = ( zlw_n_j(:) - zlw_n_i(:) )*4/ptn(:)
193 zlwup(:) = zlw_g_b(:) + zlw_g_e(:) + zlw_g_f(:) + zlw_g_h(:) &
195 + zlw_n_b(:) + zlw_n_e(:) + zlw_n_f(:) + zlw_n_h(:) &
198 plwnet_g(:) = zlw_g_c(:) + zlw_g_f(:) + zlw_g_j(:) &
199 - zlw_g_i(:) - zlw_g_d(:) - zlw_g_g(:) &
202 plwnet_n(:) = zlw_n_c(:) + zlw_n_f(:) + zlw_n_k(:) &
203 - zlw_n_i(:) - zlw_n_d(:) - zlw_n_g(:) &
206 plwnet_v(:) = plw_rad(:) - zlwup(:) - plwnet_g(:) - plwnet_n(:)
208 IF (lhook) CALL dr_hook(
'ISBA_LWNET_MEB',1,zhook_handle)
213 pemis_s,ptv,ptemp_s, &
214 plw_a,plw_b,plw_c,plw_d,plw_e,plw_f,plw_g,plw_h, &
215 plw_i,plw_j,plw_k,plw_l )
221 REAL,
DIMENSION(:),
INTENT(IN) :: ppn, plw_rad, psigma_f, psigma_fa, pfrac
222 REAL,
DIMENSION(:),
INTENT(IN) :: ptemp_s, ptv
223 REAL,
DIMENSION(:),
INTENT(IN) :: pemis_s
224 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_a, plw_b, plw_c, plw_d, plw_e, plw_f, &
225 plw_g, plw_h, plw_i, plw_j, plw_k, plw_l
229 REAL,
DIMENSION(SIZE(PLW_RAD)) :: zwork
230 REAL(KIND=JPRB) :: zhook_handle
232 IF (lhook) CALL dr_hook(
'LW_FLUX_COMP',0,zhook_handle)
234 plw_a(:) = plw_rad(:)*pfrac(:)
235 plw_b(:) = plw_a(:)* psigma_f(:) *(1.-xemisveg)
236 plw_c(:) = plw_a(:)*(1.-psigma_f(:))
237 plw_d(:) = plw_c(:) *(1.-pemis_s(:))
238 plw_e(:) = plw_d(:)*(1.-psigma_fa(:))
240 plw_f(:) = psigma_fa(:) * xemisveg * pfrac(:) *xstefan*(ptv(:)**4)
241 plw_g(:) = plw_f(:) *(1.-pemis_s(:))
242 plw_h(:) = plw_g(:)*(1.-psigma_fa(:))
244 zwork(:) = (1.-xemisveg)*psigma_fa(:)
245 plw_i(:) = pemis_s(:) * pfrac(:) *xstefan*(ptemp_s(:)**4)
246 plw_j(:) = plw_i(:)*zwork(:) *(1.-ppn(:))
247 plw_k(:) = plw_i(:)*zwork(:)* ppn(:)
248 plw_l(:) = plw_i(:)*(1.-psigma_fa(:))
250 IF (lhook) CALL dr_hook(
'LW_FLUX_COMP',1,zhook_handle)
subroutine lw_flux_comp(PPN, PLW_RAD, PFRAC, PSIGMA_F, PSIGMA_FA, EMIS_S, PTV, PTEMP_S, LW_A, PLW_B, PLW_C, PLW_D, PLW_E, PLW_F, PLW_G, PLW_H, LW_I, PLW_J, PLW_K, PLW_L)
subroutine isba_lwnet_meb(PLAI, PPSN, PPSNA, PEMIS_N, PEMIS_F, PFF, PTV, PTG, PTN, PLW_RAD, PLWNET_N, PLWNET_V, PLWNET_G, 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, PSIGMA_F, PSIGMA_FN, PLWDOWN_GN)