6 SUBROUTINE fapair(PABC, PFD_SKY, PIA, PLAI, PXMUS, PSSA_SUP, PSSA_INF, &
7 PB_SUP, PB_INF, PALB_VEG, PALB_SOIL, OSHADE, &
8 PFAPR, PFAPR_BS, PLAI_EFF, PIACAN, &
9 PIACAN_SHADE, PIACAN_SUNLIT, PFRAC_SUN )
52 USE modd_co2v_par
, ONLY : xk_sup, xk_inf, xxsi_sup, xxsi_inf
67 REAL,
DIMENSION(:),
INTENT(IN) :: PABC
70 REAL,
DIMENSION(:),
INTENT(IN) :: PFD_SKY
71 REAL,
DIMENSION(:),
INTENT(IN) :: PIA
72 REAL,
DIMENSION(:),
INTENT(IN) :: PLAI
73 REAL,
DIMENSION(:),
INTENT(IN) :: PXMUS
74 REAL,
INTENT(IN) :: PSSA_SUP, PSSA_INF
75 REAL,
DIMENSION(:),
INTENT(IN) :: PB_SUP, PB_INF
76 REAL,
DIMENSION(:),
INTENT(IN) :: PALB_VEG, PALB_SOIL
77 LOGICAL,
DIMENSION(:),
INTENT(IN) :: OSHADE
79 REAL,
DIMENSION(:),
INTENT(OUT) :: PFAPR
80 REAL,
DIMENSION(:),
INTENT(OUT) :: PFAPR_BS
81 REAL,
DIMENSION(:),
OPTIONAL,
INTENT(OUT) :: PLAI_EFF
83 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(OUT) :: PIACAN
84 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(OUT) :: PIACAN_SHADE
85 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(OUT) :: PIACAN_SUNLIT
86 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(OUT) :: PFRAC_SUN
91 REAL,
DIMENSION(SIZE(PLAI)) :: ZXIA, ZXIA_SUP, ZKMUSP_SUP, ZKMUSP_INF
92 REAL,
DIMENSION(SIZE(PLAI)) :: ZB_DR_SUP, ZB_DR_INF, ZOMEGA_DR_SUP, ZOMEGA_DR_INF, &
93 ZOMEGA_DF_SUP, ZOMEGA_DF_INF
95 REAL,
DIMENSION(SIZE(PLAI)) :: ZTR, ZFD_VEG, ZFD_SUP, ZLAI_EFF0, ZLAI_EFF
104 REAL,
DIMENSION(SIZE(PLAI),SIZE(PABC)) :: ZIACAN, ZIACAN_SUNLIT, ZIACAN_SHADE, ZFRAC_SUN
105 REAL :: ZABC, ZWEIGHT, ZCOEF, ZSUP, ZINF, &
106 ZSSA_SUP, ZSSA_INF, ZB_DF_SUP, ZB_DF_INF
113 REAL(KIND=JPRB) :: ZHOOK_HANDLE
134 ziacan_sunlit(:,:) = 0.
135 ziacan_shade(:,:) = 0.
144 IF (pabc(
SIZE(pabc)).GT.0.8) zfd_veg(:) = min(pfd_sky(:),1.)
147 zssa_sup = sqrt(1.-pssa_sup)
148 zssa_inf = sqrt(1.-pssa_inf)
150 zsup = - 0.461 * xxsi_sup + 3.8
151 zinf = - 0.461 * xxsi_inf + 3.8
154 IF (pia(i).NE.0.)
THEN 155 zkmusp_sup(i) = exp(-xk_sup*(acos(pxmus(i)))**zsup)
156 zkmusp_inf(i) = exp(-xk_inf*(acos(pxmus(i)))**zinf)
159 zb_dr_sup(i) = 1.-(1.-zssa_sup)/(1.+2.*pxmus(i)*zssa_sup)
160 zb_dr_inf(i) = 1.-(1.-zssa_sup)/(1.+2.*pxmus(i)*zssa_inf)
162 zomega_dr_sup(i) = 1. / (1.+ pb_sup(i)*zkmusp_sup(i))
163 zomega_dr_inf(i) = 1. / (1.+ pb_inf(i)*zkmusp_inf(i))
166 zomega_df_sup(i) = (1.+pb_sup(i)/2.)/(1.+pb_sup(i))
167 zomega_df_inf(i) = (1.+pb_inf(i)/2.)/(1.+pb_inf(i))
172 zb_df_sup = 1.-(1.-zssa_sup)/(1.+ zssa_sup)
173 zb_df_inf = 1.-(1.-zssa_inf)/(1.+ zssa_inf)
178 DO jint =
SIZE(pabc),1,-1
181 IF (jint.LT.
SIZE(pabc)) zabc = pabc(jint+1)
182 zweight = zabc - pabc(jint)
184 IF (pabc(jint).GT.0.8)
THEN 186 CALL ccetr_pair (jint, pabc(jint), zabc, pia, pxmus, zb_dr_sup, &
187 zomega_dr_sup, zomega_df_sup, zb_df_sup, plai, &
188 palb_veg, palb_soil, pfd_sky, zfd_veg, ztr, &
191 CALL ccetr_pair (jint, pabc(jint), zabc, pia, pxmus, zb_dr_inf, &
192 zomega_dr_inf, zomega_df_inf, zb_df_inf, plai, &
193 palb_veg, palb_soil, pfd_sky, zfd_veg, ztr, &
199 zxia(i) = max(0.,zxia(i))
200 ziacan(i,jint) = max(0.,zxia(i)-zxia_sup(i))
201 zxia_sup(i) = zxia(i)
203 zlai_eff0(i) = max(0.,zlai_eff0(i))
204 zlai_eff(i) = zlai_eff(i) + zlai_eff0(i)
207 pfapr(i) = pfapr(i) + ziacan(i,jint)
219 zcoef = (1.0-zfd_sup(i))/ztr(i)+ zfd_sup(i)
220 ziacan_sunlit(i,jint) = zcoef/(zweight*max(0.0001,plai(i)))*ziacan(i,jint)
222 ziacan_shade(i,jint) = max(0.,zfd_sup(i)/(zweight*max(0.0001,plai(i)))*ziacan(i,jint))
230 zfrac_sun(i,jint) = ztr(i)
234 ziacan_sunlit(i,jint) = max(0.,ziacan(i,jint)/(zweight*max(0.0001,plai(i))))
239 zfd_sup(i) = zfd_veg(i)
247 pfapr(:) = pfapr(:) / pia(:)
248 pfapr_bs(:)= ztr(:)*(1.-palb_soil(:)*(1. - palb_veg(:)*(1.-ztr(:))))
254 IF (
PRESENT(plai_eff)) plai_eff = zlai_eff
255 IF (
PRESENT(piacan)) piacan = ziacan
256 IF (
PRESENT(piacan_sunlit)) piacan_sunlit = ziacan_sunlit
257 IF (
PRESENT(piacan_shade)) piacan_shade = ziacan_shade
258 IF (
PRESENT(pfrac_sun)) pfrac_sun = zfrac_sun
subroutine ccetr_pair(KNIV, PABC, PABC_SUP, PIA, PXMUS, PB_DR, POMEGA_DR, POMEGA_DF, PB_DF, PLAI, PALB_VEG, PALB_SOIL, PFD_SKY, PFD_VEG, PTR, PXIA, PLAI_EFF)
subroutine fapair(PABC, PFD_SKY, PIA, PLAI, PXMUS, PSSA_SUP, PSSA_INF, PB_SUP, PB_INF, PALB_VEG, PALB_SOIL, OSHADE, PFAPR, PFAPR_BS, PLAI_EFF, PIACAN, PIACAN_SHADE, PIACAN_SUNLIT, PFRAC_SUN)