7 & LBi, UBi, LBj, UBj, &
8 & IminS, ImaxS, JminS, JmaxS, &
9 & Zscale, Z, ad_Z, ad_swdk)
51 integer,
intent(in) :: ng, tile
52 integer,
intent(in) :: LBi, UBi, LBj, UBj
53 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
55 real(r8),
intent(in) :: Zscale
57 real(r8),
intent(in) :: Z(IminS:ImaxS,JminS:JmaxS)
59 real(r8),
intent(inout) :: ad_Z(IminS:ImaxS,JminS:JmaxS)
60 real(r8),
intent(inout) :: ad_swdk(IminS:ImaxS,JminS:JmaxS)
64 integer :: Jindex, i, j
66 real(r8) :: cff1, cff2
67 real(r8) :: ad_cff1, ad_cff2
69 real(r8),
dimension(IminS:ImaxS) :: fac1, fac2, fac3
71# include "set_bounds.h"
87 jindex=int(
mixing(ng)%Jwtype(i,j))
94 cff1=exp(z(i,j)*fac1(i))
95 cff2=exp(z(i,j)*fac2(i))
99 ad_cff1=ad_cff1+fac3(i)*ad_swdk(i,j)
100 ad_cff2=ad_cff2+(1.0_r8-fac3(i))*ad_swdk(i,j)
105 ad_z(i,j)=ad_z(i,j)+ &
106 & fac1(i)*cff1*ad_cff1+ &
107 & fac2(i)*cff2*ad_cff2
subroutine ad_lmd_swfrac_tile(ng, tile, lbi, ubi, lbj, ubj, imins, imaxs, jmins, jmaxs, zscale, z, ad_z, ad_swdk)