44 integer :: itime,i,j,jjjjmmdd,ihmmss
45 integer :: ix,jy,ixp,jyp,indexh,m,il,ind,indz,indzp
47 real :: dt1,dt2,dtt,ddx,ddy,rddx,rddy,p1,p2,p3,p4,dz1,dz2,dz
48 real :: topo,hm(2),hmixi,pv1(2),pvprof(2),pvi,qv1(2),qvprof(2),qvi
49 real :: tt1(2),ttprof(2),tti,rho1(2),rhoprof(2),rhoi
51 character :: adate*8,atime*6
57 jul=bdate+
real(itime,kind=dp)/86400._dp
58 call
caldate(jul,jjjjmmdd,ihmmss)
59 write(adate,
'(i8.8)') jjjjmmdd
60 write(atime,
'(i6.6)') ihmmss
66 dt1=
real(itime-memtime(1))
67 dt2=
real(memtime(2)-itime)
74 open(unitpartout,file=path(2)(1:length(2))//
'partposit_'//adate// &
75 atime,form=
'unformatted')
77 open(unitpartout,file=path(2)(1:length(2))//
'partposit_end', &
84 write(unitpartout) itime
90 if (itra1(i).eq.itime)
then
91 xlon=xlon0+xtra1(i)*dx
92 ylat=ylat0+ytra1(i)*dy
102 ddx=xtra1(i)-
real(ix)
103 ddy=ytra1(i)-
real(jy)
114 topo=p1*oro(ix ,jy) &
123 if (height(il).gt.ztra1(i))
then
131 dz1=ztra1(i)-height(indz)
132 dz2=height(indzp)-ztra1(i)
141 pv1(m)=p1*pv(ix ,jy ,ind,indexh) &
142 +p2*pv(ixp,jy ,ind,indexh) &
143 +p3*pv(ix ,jyp,ind,indexh) &
144 +p4*pv(ixp,jyp,ind,indexh)
146 qv1(m)=p1*qv(ix ,jy ,ind,indexh) &
147 +p2*qv(ixp,jy ,ind,indexh) &
148 +p3*qv(ix ,jyp,ind,indexh) &
149 +p4*qv(ixp,jyp,ind,indexh)
151 tt1(m)=p1*tt(ix ,jy ,ind,indexh) &
152 +p2*tt(ixp,jy ,ind,indexh) &
153 +p3*tt(ix ,jyp,ind,indexh) &
154 +p4*tt(ixp,jyp,ind,indexh)
156 rho1(m)=p1*rho(ix ,jy ,ind,indexh) &
157 +p2*rho(ixp,jy ,ind,indexh) &
158 +p3*rho(ix ,jyp,ind,indexh) &
159 +p4*rho(ixp,jyp,ind,indexh)
161 pvprof(ind-indz+1)=(pv1(1)*dt2+pv1(2)*dt1)*dtt
162 qvprof(ind-indz+1)=(qv1(1)*dt2+qv1(2)*dt1)*dtt
163 ttprof(ind-indz+1)=(tt1(1)*dt2+tt1(2)*dt1)*dtt
164 rhoprof(ind-indz+1)=(rho1(1)*dt2+rho1(2)*dt1)*dtt
166 pvi=(dz1*pvprof(2)+dz2*pvprof(1))*dz
167 qvi=(dz1*qvprof(2)+dz2*qvprof(1))*dz
168 tti=(dz1*ttprof(2)+dz2*ttprof(1))*dz
169 rhoi=(dz1*rhoprof(2)+dz2*rhoprof(1))*dz
178 tr(m)=p1*tropopause(ix ,jy ,1,indexh) &
179 + p2*tropopause(ixp,jy ,1,indexh) &
180 + p3*tropopause(ix ,jyp,1,indexh) &
181 + p4*tropopause(ixp,jyp,1,indexh)
184 hm(m)=p1*hmix(ix ,jy ,1,indexh) &
185 + p2*hmix(ixp,jy ,1,indexh) &
186 + p3*hmix(ix ,jyp,1,indexh) &
187 + p4*hmix(ixp,jyp,1,indexh)
190 hmixi=(hm(1)*dt2+hm(2)*dt1)*dtt
191 tri=(tr(1)*dt2+tr(2)*dt1)*dtt
197 write(unitpartout) npoint(i),xlon,ylat,ztra1(i), &
198 itramem(i),topo,pvi,qvi,rhoi,hmixi,tri,tti, &
199 (xmass1(i,j),j=1,nspec)
202 write(unitpartout) -99999,-9999.9,-9999.9,-9999.9,-99999, &
203 -9999.9,-9999.9,-9999.9,-9999.9,-9999.9,-9999.9,-9999.9, &
subroutine partoutput(itime)
subroutine caldate(juldate, yyyymmdd, hhmiss)