Changeset 24 for trunk/src/interpol_rain.f90
- Timestamp:
- May 23, 2014, 11:48:41 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/interpol_rain.f90
r20 r24 20 20 !********************************************************************** 21 21 22 !subroutine interpol_rain(yy1,yy2,yy3,nxmax,nymax,nzmax,nx, & 23 ! ny,memind,xt,yt,level,itime1,itime2,itime,yint1,yint2,yint3) 24 ! ! i i i i i i i 25 ! !i i i i i i i i o o o 26 27 subroutine interpol_rain(yy1,yy2,yy3,iy1,iy2,nxmax,nymax,nzmax,nx, & 28 ny,memind,xt,yt,level,itime1,itime2,itime,yint1,yint2,yint3, & 29 intiy1,intiy2,icmv) 30 ! i i i i i i i 31 ! i i i i i i i i o o o 32 22 subroutine interpol_rain(yy1,yy2,yy3,nxmax,nymax,nzmax,nx, & 23 ny,memind,xt,yt,level,itime1,itime2,itime,yint1,yint2,yint3) 24 ! i i i i i i i 25 !i i i i i i i i o o o 33 26 !**************************************************************************** 34 27 ! * … … 47 40 ! * 48 41 ! 30 August 1996 * 49 ! 50 !* Petra Seibert, 2011/2012: 51 !* Add interpolation of cloud bottom and cloud thickness 52 !* for fix to SE's new wet scavenging scheme * 42 ! * 53 43 !**************************************************************************** 54 44 ! * … … 80 70 81 71 integer :: nx,ny,nxmax,nymax,nzmax,memind(2),m,ix,jy,ixp,jyp 82 !integer :: itime,itime1,itime2,level,indexh 83 integer :: itime,itime1,itime2,level,indexh,ip1,ip2,ip3,ip4 84 integer :: intiy1,intiy2,ipsum,icmv 72 integer :: itime,itime1,itime2,level,indexh 85 73 real :: yy1(0:nxmax-1,0:nymax-1,nzmax,2) 86 74 real :: yy2(0:nxmax-1,0:nymax-1,nzmax,2) 87 75 real :: yy3(0:nxmax-1,0:nymax-1,nzmax,2) 88 integer iy1(0:nxmax-1,0:nymax-1,2),iy2(0:nxmax-1,0:nymax-1,2) 89 real :: ddx,ddy,rddx,rddy,dt1,dt2,dt,y1(2),y2(2),y3(2),yi1(2),yi2(2) 90 !real :: ddx,ddy,rddx,rddy,dt1,dt2,dt,y1(2),y2(2),y3(2) 91 real :: xt,yt,yint1,yint2,yint3,yint4,p1,p2,p3,p4 92 !real :: xt,yt,yint1,yint2,yint3,p1,p2,p3,p4 76 real :: ddx,ddy,rddx,rddy,dt1,dt2,dt,y1(2),y2(2),y3(2) 77 real :: xt,yt,yint1,yint2,yint3,p1,p2,p3,p4 93 78 94 79 … … 142 127 + p3*yy3(ix ,jyp,level,indexh) & 143 128 + p4*yy3(ixp,jyp,level,indexh) 144 145 !CPS clouds:146 ip1=1147 ip2=1148 ip3=1149 ip4=1150 if (iy1(ix ,jy ,indexh) .eq. icmv) ip1=0151 if (iy1(ixp,jy ,indexh) .eq. icmv) ip2=0152 if (iy1(ix ,jyp,indexh) .eq. icmv) ip3=0153 if (iy1(ixp,jyp,indexh) .eq. icmv) ip4=0154 ipsum= ip1+ip2+ip3+ip4155 if (ipsum .eq. 0) then156 yi1(m)=icmv157 else158 yi1(m)=(ip1*p1*iy1(ix ,jy ,indexh) &159 + ip2*p2*iy1(ixp,jy ,indexh) &160 + ip3*p3*iy1(ix ,jyp,indexh) &161 + ip4*p4*iy1(ixp,jyp,indexh))/ipsum162 endif163 164 ip1=1165 ip2=1166 ip3=1167 ip4=1168 if (iy2(ix ,jy ,indexh) .eq. icmv) ip1=0169 if (iy2(ixp,jy ,indexh) .eq. icmv) ip2=0170 if (iy2(ix ,jyp,indexh) .eq. icmv) ip3=0171 if (iy2(ixp,jyp,indexh) .eq. icmv) ip4=0172 ipsum= ip1+ip2+ip3+ip4173 if (ipsum .eq. 0) then174 yi2(m)=icmv175 else176 yi2(m)=(ip1*p1*iy2(ix ,jy ,indexh) &177 + ip2*p2*iy2(ixp,jy ,indexh) &178 + ip3*p3*iy2(ix ,jyp,indexh) &179 + ip4*p4*iy2(ixp,jyp,indexh))/ipsum180 endif181 !CPS end clouds182 183 129 end do 184 130 … … 187 133 ! 2.) Temporal interpolation (linear) 188 134 !************************************ 189 190 if (abs(itime) .lt. abs(itime1)) then191 print*,'interpol_rain.f90'192 print*,itime,itime1,itime2193 stop 'ITIME PROBLEM'194 endif195 196 135 197 136 dt1=real(itime-itime1) … … 204 143 205 144 206 !PS clouds:207 intiy1=(yi1(1)*dt2 + yi1(2)*dt1)/dt208 if (yi1(1) .eq. float(icmv)) intiy1=yi1(2)209 if (yi1(2) .eq. float(icmv)) intiy1=yi1(1)210 211 intiy2=(yi2(1)*dt2 + yi2(2)*dt1)/dt212 if (yi2(1) .eq. float(icmv)) intiy2=yi2(2)213 if (yi2(2) .eq. float(icmv)) intiy2=yi2(1)214 215 if (intiy1 .ne. icmv .and. intiy2 .ne. icmv) then216 intiy2 = intiy1 + intiy2 ! convert cloud thickness to cloud top217 else218 intiy1=icmv219 intiy2=icmv220 endif221 !PS end clouds222 223 145 end subroutine interpol_rain
Note: See TracChangeset
for help on using the changeset viewer.