4 &, psct , pcardi, pcldsw, ppmb , ppsol, prmu0, ptave, pwv &
5 &, paki , pcld , pclear, pdsig, pfact, prmu , psec , pud &
88 real_b :: paki(
klon,2,nsw)&
107 integer_m :: ja, jk, jkl, jklp1, jkp1, jl, jnu
110 real_b :: zdsco2, zdsh2o, zfppw, zrth, zrtu, zwh2o, zalpha1
128 pud(jl,1,
klev+1)=_zero_
129 pud(jl,2,
klev+1)=_zero_
130 pud(jl,3,
klev+1)=_zero_
131 pud(jl,4,
klev+1)=_zero_
132 pud(jl,5,
klev+1)=_zero_
133 pfact(jl)= prmu0(jl) * psct
140 IF (prmu(jl) .LE. 1e-3) prmu(jl) = 1e-3
141 psec(jl)=_one_/prmu(jl)
142 zc1j(jl,
klev+1)=_zero_
152 zo175(jl) = ppsol(jl)**
rpdu1
153 zo190(jl) = ppsol(jl)**
rpdh1
154 zsigo(jl) = ppsol(jl)
166 zwh2o = max(pwv(jl,jkl) ,
repscq )
167 zsign(jl) = 100._jprb * ppmb(jl,jkp1)
168 pdsig(jl,jk) = (zsigo(jl) - zsign(jl))/ppsol(jl)
169 zn175(jl) = zsign(jl) **
rpdu1
170 zn190(jl) = zsign(jl) **
rpdh1
171 zdsco2 = zo175(jl) - zn175(jl)
172 zdsh2o = zo190(jl) - zn190(jl)
173 pud(jl,1,jk) =
rpnh * zdsh2o * zwh2o * zrth
174 pud(jl,2,jk) =
rpnu * zdsco2 * pcardi * zrtu
175 zfppw=1.6078_jprb*zwh2o/(_one_+0.608_jprb*zwh2o)
176 pud(jl,4,jk)=pud(jl,1,jk)*zfppw
177 pud(jl,5,jk)=pud(jl,1,jk)*(_one_-zfppw)
178 zud(jl,1) = zud(jl,1) + pud(jl,1,jk)
179 zud(jl,2) = zud(jl,2) + pud(jl,2,jk)
180 zsigo(jl) = zsign(jl)
181 zo175(jl) = zn175(jl)
182 zo190(jl) = zn190(jl)
185 zclear(jl)=zclear(jl)&
186 &*(_one_-max(pcldsw(jl,jkl),zcloud(jl)))&
187 &/(_one_-min(zcloud(jl),_one_-
repsec))
188 zc1j(jl,jkl)= _one_ - zclear(jl)
189 zcloud(jl) = pcldsw(jl,jkl)
190 ELSEIF (
novlp == 2)
THEN
191 zcloud(jl) = max(pcldsw(jl,jkl),zcloud(jl))
192 zc1j(jl,jkl) = zcloud(jl)
193 ELSEIF (
novlp == 3)
THEN
194 zclear(jl) = zclear(jl)*(_one_-pcldsw(jl,jkl))
195 zcloud(jl) = _one_ - zclear(jl)
196 zc1j(jl,jkl) = zcloud(jl)
197 ELSEIF (
novlp == 4)
THEN
200 zclear(jl)=zclear(jl)*( &
201 & zalpha1*(_one_-max(pcldsw(jl,jkl),zcloud(jl))) &
202 & /(_one_-min(zcloud(jl),_one_-
repsec)) &
203 & +(_one_-zalpha1)*(_one_-pcldsw(jl,jkl)) )
204 zc1j(jl,jkl) = _one_ - zclear(jl)
205 zcloud(jl) = pcldsw(jl,jkl)
210 pclear(jl)=_one_-zc1j(jl,1)
214 IF (pclear(jl) < _one_)
THEN
215 pcld(jl,jk)=pcldsw(jl,jk)/(_one_-pclear(jl))
229 zud(jl,ja) = zud(jl,ja) * psec(jl)
235 ELSE IF (nsw.EQ.6)
THEN
249 paki(jl,ja,jnu) = -log( zr(jl,ja) ) / zud(jl,ja)
real(kind=jprb), dimension(:), allocatable ra1ovlp
subroutine swtt1(KIDIA, KFDIA, KLON, KNU, KABS, KIND, PU, PTR)
subroutine swu(KIDIA, KFDIA, KLON, KLEV, PSCT, PCARDI, PCLDSW, PPMB, PPSOL, PRMU0, PTAVE, PWV, PAKI, PCLD, PCLEAR, PDSIG, PFACT, PRMU, PSEC, PUD)