41 integer :: itime,i,ix,jy,ixp,jyp,kz,ks
42 integer :: il,ind,indz,indzp,nrelpointer
43 real :: rddx,rddy,p1,p2,p3,p4,dz1,dz2,dz
45 real :: rhoprof(2),rhoi,xl,yl,wx,wy,w
53 if (itra1(i).ne.itime)
return
60 if (linit_cond.eq.1)
then
76 if (height(il).gt.ztra1(i))
then
84 dz1=ztra1(i)-height(indz)
85 dz2=height(indzp)-ztra1(i)
91 rhoprof(ind-indz+1)=p1*rho(ix ,jy ,ind,2) &
92 +p2*rho(ixp,jy ,ind,2) &
93 +p3*rho(ix ,jyp,ind,2) &
94 +p4*rho(ixp,jyp,ind,2)
96 rhoi=(dz1*rhoprof(2)+dz2*rhoprof(1))*dz
97 elseif (linit_cond.eq.2)
then
113 if ((ioutputforeachrelease.eq.0).or.(mdomainfill.eq.1))
then
116 nrelpointer=npoint(i)
120 if (outheight(kz).gt.ztra1(i)) goto 21
123 if (kz.le.numzgrid)
then
126 xl=(xtra1(i)*dx+xoutshift)/dxout
127 yl=(ytra1(i)*dy+youtshift)/dyout
129 if (xl.lt.0.) ix=ix-1
131 if (yl.lt.0.) jy=jy-1
137 if ((xl.lt.0.5).or.(yl.lt.0.5).or. &
138 (xl.gt.
real(numxgrid-1)-0.5).or. &
139 (yl.gt.
real(numygrid-1)-0.5)) then
140 if ((ix.ge.0).and.(jy.ge.0).and.(ix.le.numxgrid-1).and. &
141 (jy.le.numygrid-1))
then
143 init_cond(ix,jy,kz,ks,nrelpointer)= &
144 init_cond(ix,jy,kz,ks,nrelpointer)+ &
173 if ((ix.ge.0).and.(ix.le.numxgrid-1))
then
174 if ((jy.ge.0).and.(jy.le.numygrid-1))
then
177 init_cond(ix,jy,kz,ks,nrelpointer)= &
178 init_cond(ix,jy,kz,ks,nrelpointer)+xmass1(i,ks)/rhoi*w
182 if ((jyp.ge.0).and.(jyp.le.numygrid-1))
then
185 init_cond(ix,jyp,kz,ks,nrelpointer)= &
186 init_cond(ix,jyp,kz,ks,nrelpointer)+xmass1(i,ks)/rhoi*w
192 if ((ixp.ge.0).and.(ixp.le.numxgrid-1))
then
193 if ((jyp.ge.0).and.(jyp.le.numygrid-1))
then
196 init_cond(ixp,jyp,kz,ks,nrelpointer)= &
197 init_cond(ixp,jyp,kz,ks,nrelpointer)+xmass1(i,ks)/rhoi*w
201 if ((jy.ge.0).and.(jy.le.numygrid-1))
then
204 init_cond(ixp,jy,kz,ks,nrelpointer)= &
205 init_cond(ixp,jy,kz,ks,nrelpointer)+xmass1(i,ks)/rhoi*w
subroutine initial_cond_calc(itime, i)