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, &
62 USE modd_isba_par
, ONLY : xemissoil, xemisveg
73 REAL,
DIMENSION(:),
INTENT(IN) :: PLAI, PPSN, PPSNA, PLW_RAD, PSIGMA_F
75 REAL,
DIMENSION(:),
INTENT(IN) :: PTV, PTG, PTN
77 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIS_N, PEMIS_F, PFF
79 REAL,
DIMENSION(:),
INTENT(OUT) :: PLWNET_N, PLWNET_V, PLWNET_G
81 REAL,
DIMENSION(:),
INTENT(OUT) :: PLWDOWN_GN
83 REAL,
DIMENSION(:),
INTENT(OUT) :: PLWNET_V_DTV, PLWNET_V_DTG, PLWNET_V_DTN
87 REAL,
DIMENSION(:),
INTENT(OUT) :: PLWNET_G_DTV, PLWNET_G_DTG, PLWNET_G_DTN
91 REAL,
DIMENSION(:),
INTENT(OUT) :: PLWNET_N_DTV, PLWNET_N_DTG, PLWNET_N_DTN
95 REAL,
DIMENSION(:),
INTENT(OUT) :: PSIGMA_FN
100 REAL,
DIMENSION(SIZE(PLAI)) :: ZLWUP
102 REAL,
DIMENSION(SIZE(PLAI)) :: ZSIGMA_FA, ZPN, ZFRAC, ZEMIS
104 REAL,
DIMENSION(SIZE(PLAI)) :: ZLW_G_A, ZLW_G_B, ZLW_G_C, &
105 ZLW_G_D, ZLW_G_E, ZLW_G_F, ZLW_G_G, &
106 ZLW_G_H, ZLW_G_I, ZLW_G_J, ZLW_G_K, &
109 REAL,
DIMENSION(SIZE(PLAI)) :: ZLW_N_A, ZLW_N_B, ZLW_N_C, &
110 ZLW_N_D, ZLW_N_E, ZLW_N_F, ZLW_N_G, &
111 ZLW_N_H, ZLW_N_I, ZLW_N_J, ZLW_N_K, &
114 REAL,
DIMENSION(SIZE(PEMIS_N)) :: ZEMIS_G
118 REAL,
PARAMETER :: ZTGRAD_MAX = 60.
120 REAL,
PARAMETER :: ZTGRAD_DIF = 10.
123 REAL(KIND=JPRB) :: ZHOOK_HANDLE
129 IF (
lhook)
CALL dr_hook(
'ISBA_LWNET_MEB',0,zhook_handle)
134 zemis_g(:) = xemissoil*(1.-pff(:)) + pff(:)*pemis_f(:)
147 zfrac(:) = 1.-ppsn(:)
148 zpn(:) = ppsn(:)*(1.-ppsna(:))
149 zsigma_fa(: ) = (1.-zpn(:))*psigma_f(:) + zpn(:)*psigma_fn(:)
151 CALL lw_flux_comp(zpn,plw_rad,zfrac,psigma_f,zsigma_fa, &
153 zlw_g_a,zlw_g_b,zlw_g_c,zlw_g_d,zlw_g_e,zlw_g_f, &
154 zlw_g_g,zlw_g_h,zlw_g_i,zlw_g_j,zlw_g_k,zlw_g_l )
159 zpn(:) = ppsn(:) + ppsna(:)*(1.-ppsn(:))
160 zsigma_fa(: ) = (1.-zpn(:))*psigma_f(:) + zpn(:)*psigma_fn(:)
162 CALL lw_flux_comp(zpn,plw_rad,zfrac,psigma_fn,zsigma_fa, &
164 zlw_n_a,zlw_n_b,zlw_n_c,zlw_n_d,zlw_n_e,zlw_n_f, &
165 zlw_n_g,zlw_n_h,zlw_n_i,zlw_n_j,zlw_n_k,zlw_n_l )
174 plwdown_gn(:) = zlw_g_c(:) + zlw_g_f(:) + zlw_n_c(:) + zlw_n_f(:) + &
175 zlw_g_j(:) + zlw_g_k(:) + zlw_n_j(:) + zlw_n_k(:)
181 plwnet_v_dtv(:) = ( zlw_g_g(:) - zlw_g_h(:) - 2*zlw_g_f(:) &
182 + zlw_n_g(:) - zlw_n_h(:) - 2*zlw_n_f(:) )*4/ptv(:)
183 plwnet_v_dtg(:) = ( zlw_g_i(:) - zlw_g_j(:) - zlw_g_k(:) &
184 - zlw_g_l(:) )*4/ptg(:)
185 plwnet_v_dtn(:) = ( zlw_n_i(:) - zlw_n_j(:) - zlw_n_k(:) &
186 - zlw_n_l(:) )*4/ptn(:)
188 plwnet_g_dtv(:) = ( zlw_g_f(:) - zlw_g_g(:) )*4/ptv(:)
189 plwnet_g_dtg(:) = ( zlw_g_j(:) - zlw_g_i(:) )*4/ptg(:)
190 plwnet_g_dtn(:) = zlw_n_j(:) *4/ptn(:)
192 plwnet_n_dtv(:) = ( zlw_n_f(:) - zlw_n_g(:) )*4/ptv(:)
193 plwnet_n_dtg(:) = zlw_g_k(:) *4/ptg(:)
194 plwnet_n_dtn(:) = ( zlw_n_k(:) - zlw_n_i(:) )*4/ptn(:)
207 plwnet_n_dtn(:) = plwnet_n_dtn(:)*min(1., max(0., ztgrad_max-max(0.,ptn(
215 zlwup(:) = zlw_g_b(:) + zlw_g_e(:) + zlw_g_f(:) + zlw_g_h(:) &
217 + zlw_n_b(:) + zlw_n_e(:) + zlw_n_f(:) + zlw_n_h(:) &
220 plwnet_g(:) = zlw_g_c(:) + zlw_g_f(:) + zlw_g_j(:) &
221 - zlw_g_i(:) - zlw_g_d(:) - zlw_g_g(:) &
224 plwnet_n(:) = zlw_n_c(:) + zlw_n_f(:) + zlw_n_k(:) &
225 - zlw_n_i(:) - zlw_n_d(:) - zlw_n_g(:) &
228 plwnet_v(:) = plw_rad(:) - zlwup(:) - plwnet_g(:) - plwnet_n(:)
230 IF (
lhook)
CALL dr_hook(
'ISBA_LWNET_MEB',1,zhook_handle)
234 SUBROUTINE lw_flux_comp(PPN,PLW_RAD,PFRAC,PSIGMA_F,PSIGMA_FA, &
235 PEMIS_S,PTV,PTEMP_S, &
236 PLW_A,PLW_B,PLW_C,PLW_D,PLW_E,PLW_F,PLW_G,PLW_H, &
237 PLW_I,PLW_J,PLW_K,PLW_L )
243 REAL,
DIMENSION(:),
INTENT(IN) :: PPN, PLW_RAD, PSIGMA_F, PSIGMA_FA, PFRAC
244 REAL,
DIMENSION(:),
INTENT(IN) :: PTEMP_S, PTV
245 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIS_S
246 REAL,
DIMENSION(:),
INTENT(OUT) :: PLW_A, PLW_B, PLW_C, PLW_D, PLW_E, PLW_F
251 REAL,
DIMENSION(SIZE(PLW_RAD)) :: ZWORK
252 REAL(KIND=JPRB) :: ZHOOK_HANDLE
256 plw_a(:) = plw_rad(:)*pfrac(:)
257 plw_b(:) = plw_a(:)* psigma_f(:) *(1.-xemisveg)
258 plw_c(:) = plw_a(:)*(1.-psigma_f(:))
259 plw_d(:) = plw_c(:) *(1.-pemis_s(:))
260 plw_e(:) = plw_d(:)*(1.-psigma_fa(:))
262 plw_f(:) = psigma_fa(:) * xemisveg * pfrac(:) *
xstefan
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,