22 subroutine wetdepo(itime,ltsample,loutnext)
72 integer :: jpart,itime,ltsample,loutnext,ldeltat,i,j,ix,jy
73 integer :: ngrid,itage,nage,hz,il,interp_time, n, clouds_v
75 real :: s_i, act_temp, cl, cle
77 real :: xtn,ytn,lsp,convp,cc,grfraction,prec,wetscav
78 real :: wetdeposit(maxspec),restmass
79 real,
parameter :: smallnum = tiny(0.0)
83 real :: lfr(5) = (/ 0.5,0.65,0.8,0.9,0.95/)
84 real :: cfr(5) = (/ 0.4,0.55,0.7,0.8,0.9 /)
89 if (itime.le.loutnext)
then
90 ldeltat=itime-(loutnext-loutstep)
92 ldeltat=itime-loutnext
100 if (itra1(jpart).eq.-999999999) goto 20
102 if (itra1(jpart).gt.itime) goto 20
104 if (itra1(jpart).lt.itime) goto 20
107 itage=abs(itra1(jpart)-itramem(jpart))
109 if (itage.lt.lage(nage)) goto 33
119 if ((xtra1(jpart).gt.xln(j)).and.(xtra1(jpart).lt.xrn(j)).and. &
120 (ytra1(jpart).gt.yln(j)).and.(ytra1(jpart).lt.yrn(j)))
then
132 xtn=(xtra1(jpart)-xln(ngrid))*xresoln(ngrid)
133 ytn=(ytra1(jpart)-yln(ngrid))*yresoln(ngrid)
146 interp_time=nint(itime-0.5*ltsample)
150 1,nx,ny,memind,
real(xtra1(jpart)),
real(ytra1(jpart)),1, &
151 memtime(1),memtime(2),interp_time,lsp,convp,cc)
154 nxmaxn,nymaxn,1,maxnests,ngrid,nxn,nyn,memind,xtn,ytn,1, &
155 memtime(1),memtime(2),interp_time,lsp,convp,cc)
158 if ((lsp.lt.0.01).and.(convp.lt.0.01)) goto 20
162 if (height(il).gt.ztra1(jpart))
then
170 if (abs(memtime(1)-interp_time).lt.abs(memtime(2)-interp_time)) &
177 clouds_v=clouds(ix,jy,hz,n)
178 clouds_h=cloudsh(ix,jy,n)
180 clouds_v=cloudsn(ix,jy,hz,n,ngrid)
181 clouds_h=cloudsnh(ix,jy,n,ngrid)
185 if (clouds_v.le.1) goto 20
197 else if (lsp.gt.8.)
then
199 else if (lsp.gt.3.)
then
201 else if (lsp.gt.1.)
then
207 if (convp.gt.20.)
then
209 else if (convp.gt.8.)
then
211 else if (convp.gt.3.)
then
213 else if (convp.gt.1.)
then
219 grfraction=max(0.05,cc*(lsp*lfr(i)+convp*cfr(j))/(lsp+convp))
224 prec=(lsp+convp)/grfraction
232 if (weta(ks).gt.0.)
then
233 if (clouds_v.ge.4)
then
236 wetscav=weta(ks)*prec**wetb(ks)
243 act_temp=ttn(ix,jy,hz,n,ngrid)
245 act_temp=tt(ix,jy,hz,n)
248 if (dquer(ks).gt.0)
then
251 cle=(1-cl)/(henry(ks)*(r_air/3500.)*act_temp)+cl
254 wetscav=s_i*prec/3.6e6/clouds_h
262 wetdeposit(ks)=xmass1(jpart,ks)* &
263 (1.-exp(-wetscav*abs(ltsample)))*grfraction
268 restmass = xmass1(jpart,ks)-wetdeposit(ks)
269 if (ioutputforeachrelease.eq.1)
then
274 if (restmass .gt. smallnum)
then
275 xmass1(jpart,ks)=restmass
284 if (decay(ks).gt.0.)
then
285 wetdeposit(ks)=wetdeposit(ks) &
286 *exp(abs(ldeltat)*decay(ks))
297 if (ldirect.eq.1)
then
298 call
wetdepokernel(nclass(jpart),wetdeposit,
real(xtra1(jpart)), &
299 real(ytra1(jpart)),nage,kp)
301 wetdeposit,
real(xtra1(jpart)),
real(ytra1(jpart)), &
subroutine wetdepokernel(nunc, deposit, x, y, nage, kp)
subroutine wetdepokernel_nest(nunc, deposit, x, y, nage, kp)
subroutine interpol_rain(yy1, yy2, yy3, nxmax, nymax, nzmax, nx, ny, memind, xt, yt, level, itime1, itime2, itime, yint1, yint2, yint3)
subroutine interpol_rain_nests(yy1, yy2, yy3, nxmaxn, nymaxn, nzmax, maxnests, ngrid, nxn, nyn, memind, xt, yt, level, itime1, itime2, itime, yint1, yint2, yint3)
subroutine wetdepo(itime, ltsample, loutnext)