FORALL (j=0:nlat,i=0:nlon) t36(i,j) = 0.25*f(i,j)*(hxt(i,j)*hyt(i
. ,j)+hxt(i,j+1)*hyt(i,j+1)+hxt(i+1,j)*hyt(i+1,j)+hxt(i+1,j+1)*hy
. t(i+1,j+1))
FORALL (k=1:nlev,j=1:nlat+1,i=1:nlon+1) e(i,j,k) = 0.25*((PVZ(i,j
. ,k)**2*hxv(i,j)+PVZ(i,j-1,k)**2*hxv(i,j-1))/hxt(i,j)+(PUZ(i,j,k
. )**2*hyu(i,j)+PUZ(i-1,j,k)**2*hyu(i-1,j))/hyt(i,j))
FORALL (k=1:nlev+1,j=0:nlat+2,i=0:nlon+2) p(i,j,k) = AHYB(k)+BHYB
. (k)*PS(i,j)
FORALL (k=2:nlev+1,j=0:nlat+1,i=0:nlon+1) t13(i,j,k) = LOG(p(i,j,
. k))*p(i,j,k)
CMIC$ DO ALL
DO 1000 k = 1,nlev
DO 1010 j = 0,nlat+1
DO 1020 i = 0,nlon+1
IF (k.LE.1) THEN
lnp(i,j,k) = t13(i,j,2)/(p(i,j,k+1)-p(i,j,k))
ELSE
lnp(i,j,k) = (t13(i,j,k+1)-t13(i,j,k))/(p(i,j,k+1)-p(
. i,j,k))
ENDIF
1020 CONTINUE
1010 CONTINUE
1000 CONTINUE
FORALL (k=2:nlev,j=1:nlat+1,i=1:nlon+1) t18(i,j,k) = LOG(p(i,j,k)
. /p(i,j,k+1))
FORALL (j=1:nlat+1,i=1:nlon+1) t20(i,j,nlev) = 0
DO 1030 k = nlev,2,-1
FORALL (j=1:nlat+1,i=1:nlon+1) t20(i,j,k-1) = t20(i,j,k)+PTZ(i
. ,j,k)*t18(i,j,k)*(0.607824693422519*PQZ(i,j,k)+1)
1030 CONTINUE
FORALL (k=2:nlev,j=1:nlat+1,i=1:nlon+1) t26(i,j,k) = p(i,j,k)*t18
. (i,j,k)/(p(i,j,k+1)-p(i,j,k))+1
CMIC$ DO ALL
DO 1040 k = 1,nlev
DO 1050 j = 1,nlat+1
DO 1060 i = 1,nlon+1
IF (k.LE.1) THEN
phi(i,j,k) = phis(i,j)+198.960966707927*PTZ(i,j,k)*(0
. .607824693422519*PQZ(i,j,1)+1)-287.04*t20(i,j,1)
ELSE
phi(i,j,k) = phis(i,j)-287.04*(t20(i,j,k)-PTZ(i,j,k)*
. t26(i,j,k)*(0.607824693422519*PQZ(i,j,k)+1))
ENDIF
1060 CONTINUE
1050 CONTINUE
1040 CONTINUE
FORALL (k=1:nlev,j=0:nlat+1,i=0:nlon+1) t31(i,j,k) = hxt(i,j)*hyt
. (i,j)*(p(i,j,k+1)-p(i,j,k))
FORALL (k=1:nlev,j=0:nlat,i=0:nlon) z(i,j,k) = 4*((t36(i,j)-1.569
. 61230576048E-7*(rdlam*(hyv(i,j)*PVZ(i,j,k)-hyv(i+1,j)*PVZ(i+1,j
. ,k))-rdth*(hxu(i,j)*PUZ(i,j,k)-hxu(i,j+1)*PUZ(i,j+1,k))))/(t31(
. i,j,k)+t31(i,j+1,k)+t31(i+1,j,k)+t31(i+1,j+1,k)))
FORALL (k=1:nlev,j=1:nlat+1,i=0:nlon+1) t47(i,j,k) = p(i,j,k)+p(i
. +1,j,k)-p(i,j,k+1)-p(i+1,j,k+1)
FORALL (k=1:nlev,j=1:nlat,i=1:nlon+1) t102(i,j,k) = -0.5*hyu(i-1,
. j)*t47(i-1,j,k)*PUZ(i-1,j,k)*(lnp(i,j,k)-lnp(i-1,j,k))
FORALL (k=1:nlev,j=1:nlat,i=1:nlon+1) t103(i,j,k) = t102(i,j,k)*(
. PTZ(i,j,k)*PQZ(i,j,k)+PTZ(i-1,j,k)*PQZ(i-1,j,k))
FORALL (k=1:nlev,j=1:nlat,i=1:nlon+1) t116(i,j,k) = -0.5*hyu(i-1,
. j)*t47(i-1,j,k)*PUZ(i-1,j,k)*(PTZ(i,j,k)-PTZ(i-1,j,k))
FORALL (k=1:nlev,j=1:nlat,i=1:nlon+1) t151(i,j,k) = -0.5*hyu(i-1,
. j)*t47(i-1,j,k)*PUZ(i-1,j,k)*(PQZ(i,j,k)-PQZ(i-1,j,k))
FORALL (k=1:nlev,j=0:nlat+1,i=1:nlon+1) t49(i,j,k) = p(i,j,k)+p(i
. ,j+1,k)-p(i,j,k+1)-p(i,j+1,k+1)
FORALL (k=1:nlev,j=1:nlat+1,i=1:nlon) t107(i,j,k) = -0.5*hxv(i,j-
. 1)*t49(i,j-1,k)*PVZ(i,j-1,k)*(lnp(i,j,k)-lnp(i,j-1,k))
FORALL (k=1:nlev,j=1:nlat+1,i=1:nlon) t108(i,j,k) = t107(i,j,k)*(
. PTZ(i,j,k)*PQZ(i,j,k)+PTZ(i,j-1,k)*PQZ(i,j-1,k))
FORALL (k=1:nlev,j=1:nlat+1,i=1:nlon) t120(i,j,k) = -0.5*hxv(i,j-
. 1)*t49(i,j-1,k)*PVZ(i,j-1,k)*(PTZ(i,j,k)-PTZ(i,j-1,k))
FORALL (k=1:nlev,j=1:nlat+1,i=1:nlon) t155(i,j,k) = -0.5*hxv(i,j-
. 1)*t49(i,j-1,k)*PVZ(i,j-1,k)*(PQZ(i,j,k)-PQZ(i,j-1,k))
FORALL (j=1:nlat+1,i=1:nlon+2) t61(i,j,nlev+1) = 0
DO 1070 k = nlev,1,-1
FORALL (j=1:nlat+1,i=1:nlon+2) t61(i,j,k) = t61(i,j,k+1)+t47(i
. -1,j,k)*PUZ(i-1,j,k)
1070 CONTINUE
FORALL (k=1:nlev+1,j=1:nlat+1,i=1:nlon+2) t61(i,j,k) = -0.5*t61(i
. ,j,k)
FORALL (j=1:nlat+2,i=1:nlon+1) t65(i,j,nlev+1) = 0
DO 1080 k = nlev,1,-1
FORALL (j=1:nlat+2,i=1:nlon+1) t65(i,j,k) = t65(i,j,k+1)+t49(i
. ,j-1,k)*PVZ(i,j-1,k)
1080 CONTINUE
FORALL (k=1:nlev+1,j=1:nlat+2,i=1:nlon+1) t65(i,j,k) = -0.5*t65(i
. ,j,k)
FORALL (k=1:nlev+1,j=1:nlat+1,i=1:nlon+1) t70(i,j,k) = 1.56961230
. 576048E-7*((rdlam*(hyu(i,j)*t61(i+1,j,k)-hyu(i-1,j)*t61(i,j,k))
. +rdth*(hxv(i,j)*t65(i,j+1,k)-hxv(i,j-1)*t65(i,j,k)))/(hxt(i,j)*
. hyt(i,j)))
FORALL (j=1:nlat+1,i=1:nlon+1) PDPSDT(i,j) = -t70(i,j,1)
FORALL (k=1:nlev,j=1:nlat+1,i=1:nlon+1) etap(i,j,k) = t70(i,j,k)+
. PDPSDT(i,j)*(1-BHYB(k))
FORALL (k=2:nlev,j=1:nlat,i=1:nlon) t144(i,j,k) = etap(i,j,k)*(PT
. Z(i,j,k-1)-PTZ(i,j,k))
FORALL (k=2:MAX(2,nlev),j=1:nlat,i=1:nlon) t166(i,j,k) = etap(i,j
. ,k)*(PQZ(i,j,k)-PQZ(i,j,k-1))
CMIC$ DO ALL
DO 1090 k = 1,nlev
DO 1100 j = 1,nlat
DO 1110 i = 1,nlon
IF (nlev.LE.k) THEN
PDQDT(i,j,k) = (7.84806152880239E-8*((rdlam*((-t151(i
. ,j,nlev))-t151(i+1,j,nlev))+rdth*((-t155(i,j,nlev))-t155(i,j+1,
. nlev)))/(hxt(i,j)*hyt(i,j)))-0.5*t166(i,j,nlev))/(p(i,j,k+1)-p(
. i,j,k))
ELSE IF (k.LE.1) THEN
PDQDT(i,j,k) = (7.84806152880239E-8*((rdlam*((-t151(i
. ,j,1))-t151(i+1,j,1))+rdth*((-t155(i,j,1))-t155(i,j+1,1)))/(hxt
. (i,j)*hyt(i,j)))-0.5*t166(i,j,2))/(p(i,j,k+1)-p(i,j,k))
ELSE
PDQDT(i,j,k) = (7.84806152880239E-8*((rdlam*((-t151(i
. ,j,k))-t151(i+1,j,k))+rdth*((-t155(i,j,k))-t155(i,j+1,k)))/(hxt
. (i,j)*hyt(i,j)))-0.5*(t166(i,j,k)+t166(i,j,k+1)))/(p(i,j,k+1)-p
. (i,j,k))
ENDIF
1110 CONTINUE
1100 CONTINUE
1090 CONTINUE
FORALL (k=2:MAX(2,nlev),j=1:nlat,i=1:nlon) t192(i,j,k) = (PUZ(i,j
. ,k)-PUZ(i,j,k-1))*(etap(i,j,k)+etap(i+1,j,k))
FORALL (k=2:MAX(2,nlev),j=1:nlat,i=1:nlon) t219(i,j,k) = (PVZ(i,j
. ,k)-PVZ(i,j,k-1))*(etap(i,j,k)+etap(i,j+1,k))
FORALL (k=1:nlev,j=1:nlat,i=1:nlon+1) t90(i,j,k) = t102(i,j,k)*(P
. TZ(i,j,k)*(1-PQZ(i,j,k))+PTZ(i-1,j,k)*(1-PQZ(i-1,j,k)))
FORALL (k=1:nlev,j=1:nlat+1,i=1:nlon) t95(i,j,k) = t107(i,j,k)*(P
. TZ(i,j,k)*(1-PQZ(i,j,k))+PTZ(i,j-1,k)*(1-PQZ(i,j-1,k)))
CMIC$ DO ALL
DO 1120 k = 1,nlev
DO 1130 j = 1,nlat
DO 1140 i = 1,nlon
IF (k.LE.1) THEN
PDTDT(i,j,k) = (0.5*t144(i,j,2)+(1.55424620615724E-8*
. PTZ(i,j,k)*(1/(0.860825768434464*PQZ(i,j,1)+1)+0.60782469342251
. 9*(PQZ(i,j,1)/(0.860825768434464*PQZ(i,j,1)+1)))*(rdlam*(hyu(i,
. j)*t47(i,j,1)*PUZ(i,j,1)-hyu(i-1,j)*t47(i-1,j,1)*PUZ(i-1,j,1))+
. rdth*(hxv(i,j)*t49(i,j,1)*PVZ(i,j,1)-hxv(i,j-1)*t49(i,j-1,1)*PV
. Z(i,j-1,1)))+7.84806152880239E-8*(rdlam*((-t116(i,j,1))-t116(i+
. 1,j,1))+rdth*((-t120(i,j,1))-t120(i,j+1,1)))-0.285714285714286*
. ((3.92403076440119E-8*(rdlam*((-t90(i,j,1))-t90(i+1,j,1))+rdth*
. ((-t95(i,j,1))-t95(i,j+1,1)))+6.30915356075388E-8*(rdlam*((-t10
. 3(i,j,1))-t103(i+1,j,1))+rdth*((-t108(i,j,1))-t108(i,j+1,1))))/
. (0.860825768434464*PQZ(i,j,1)+1)))/(hxt(i,j)*hyt(i,j)))/(p(i,j,
. k+1)-p(i,j,k))
ELSE IF (nlev.LE.k) THEN
PDTDT(i,j,k) = (0.285714285714286*PTZ(i,j,k)*(7.84806
. 152880239E-8*((t18(i,j,nlev)+t26(i,j,nlev))*(rdlam*(hyu(i,j)*t4
. 7(i,j,nlev)*PUZ(i,j,nlev)-hyu(i-1,j)*t47(i-1,j,nlev)*PUZ(i-1,j,
. nlev))+rdth*(hxv(i,j)*t49(i,j,nlev)*PVZ(i,j,nlev)-hxv(i,j-1)*t4
. 9(i,j-1,nlev)*PVZ(i,j-1,nlev)))/(hxt(i,j)*hyt(i,j)))-t18(i,j,nl
. ev)*(PDPSDT(i,j)+t70(i,j,nlev+1)))*(1/(0.860825768434464*PQZ(i,
. j,nlev)+1)+0.607824693422519*(PQZ(i,j,nlev)/(0.860825768434464*
. PQZ(i,j,nlev)+1)))+0.5*t144(i,j,nlev)+(7.84806152880239E-8*(rdl
. am*((-t116(i,j,nlev))-t116(i+1,j,nlev))+rdth*((-t120(i,j,nlev))
. -t120(i,j+1,nlev)))-0.285714285714286*((3.92403076440119E-8*(rd
. lam*((-t90(i,j,nlev))-t90(i+1,j,nlev))+rdth*((-t95(i,j,nlev))-t
. 95(i,j+1,nlev)))+6.30915356075388E-8*(rdlam*((-t103(i,j,nlev))-
. t103(i+1,j,nlev))+rdth*((-t108(i,j,nlev))-t108(i,j+1,nlev))))/(
. 0.860825768434464*PQZ(i,j,nlev)+1)))/(hxt(i,j)*hyt(i,j)))/(p(i,
. j,k+1)-p(i,j,k))
ELSE
PDTDT(i,j,k) = (0.285714285714286*PTZ(i,j,k)*(7.84806
. 152880239E-8*((t18(i,j,k)+t26(i,j,k))*(rdlam*(hyu(i,j)*t47(i,j,
. k)*PUZ(i,j,k)-hyu(i-1,j)*t47(i-1,j,k)*PUZ(i-1,j,k))+rdth*(hxv(i
. ,j)*t49(i,j,k)*PVZ(i,j,k)-hxv(i,j-1)*t49(i,j-1,k)*PVZ(i,j-1,k))
. )/(hxt(i,j)*hyt(i,j)))-t18(i,j,k)*(PDPSDT(i,j)+t70(i,j,k+1)))*(
. 1/(0.860825768434464*PQZ(i,j,k)+1)+0.607824693422519*(PQZ(i,j,k
. )/(0.860825768434464*PQZ(i,j,k)+1)))+0.5*(t144(i,j,k)+t144(i,j,
. k+1))+(7.84806152880239E-8*(rdlam*((-t116(i,j,k))-t116(i+1,j,k)
. )+rdth*((-t120(i,j,k))-t120(i,j+1,k)))-0.285714285714286*((3.92
. 403076440119E-8*(rdlam*((-t90(i,j,k))-t90(i+1,j,k))+rdth*((-t95
. (i,j,k))-t95(i,j+1,k)))+6.30915356075388E-8*(rdlam*((-t103(i,j,
. k))-t103(i+1,j,k))+rdth*((-t108(i,j,k))-t108(i,j+1,k))))/(0.860
. 825768434464*PQZ(i,j,k)+1)))/(hxt(i,j)*hyt(i,j)))/(p(i,j,k+1)-p
. (i,j,k))
ENDIF
1140 CONTINUE
1130 CONTINUE
1120 CONTINUE
CMIC$ DO ALL
DO 1150 k = 1,nlev
DO 1160 j = 1,nlat
DO 1170 i = 1,nlon
IF (nlev.LE.k) THEN
PDUDT(i,j,k) = 0.5*(t192(i,j,nlev)/t47(i,j,nlev))+(rd
. lam*(1.56961230576048E-7*(e(i,j,k)+phi(i,j,nlev)-e(i+1,j,k)-phi
. (i+1,j,nlev))+2.25270758122744E-5*(0.30391234671126*(PQZ(i,j,nl
. ev)+PQZ(i+1,j,nlev))+1)*(lnp(i,j,k)-lnp(i+1,j,k))*(PTZ(i,j,k)+P
. TZ(i+1,j,k)))-0.0625*(z(i,j,k)+z(i,j-1,k))*(hyv(i,j)*t49(i,j,nl
. ev)*PVZ(i,j,nlev)+hyv(i,j-1)*t49(i,j-1,nlev)*PVZ(i,j-1,nlev)+hy
. v(i+1,j)*t49(i+1,j,nlev)*PVZ(i+1,j,nlev)+hyv(i+1,j-1)*t49(i+1,j
. -1,nlev)*PVZ(i+1,j-1,nlev)))/hxu(i,j)
ELSE IF (k.LE.1) THEN
PDUDT(i,j,k) = 0.5*(t192(i,j,2)/t47(i,j,1))+(rdlam*(1
. .56961230576048E-7*(e(i,j,k)+phi(i,j,1)-e(i+1,j,k)-phi(i+1,j,1)
. )+2.25270758122744E-5*(0.30391234671126*(PQZ(i,j,1)+PQZ(i+1,j,1
. ))+1)*(lnp(i,j,k)-lnp(i+1,j,k))*(PTZ(i,j,k)+PTZ(i+1,j,k)))-0.06
. 25*(z(i,j,k)+z(i,j-1,k))*(hyv(i,j)*t49(i,j,1)*PVZ(i,j,1)+hyv(i,
. j-1)*t49(i,j-1,1)*PVZ(i,j-1,1)+hyv(i+1,j)*t49(i+1,j,1)*PVZ(i+1,
. j,1)+hyv(i+1,j-1)*t49(i+1,j-1,1)*PVZ(i+1,j-1,1)))/hxu(i,j)
ELSE
PDUDT(i,j,k) = 0.5*((t192(i,j,k)+t192(i,j,k+1))/t47(i
. ,j,k))+(rdlam*(1.56961230576048E-7*(e(i,j,k)+phi(i,j,k)-e(i+1,j
. ,k)-phi(i+1,j,k))+2.25270758122744E-5*(0.30391234671126*(PQZ(i,
. j,k)+PQZ(i+1,j,k))+1)*(lnp(i,j,k)-lnp(i+1,j,k))*(PTZ(i,j,k)+PTZ
. (i+1,j,k)))-0.0625*(z(i,j,k)+z(i,j-1,k))*(hyv(i,j)*t49(i,j,k)*P
. VZ(i,j,k)+hyv(i,j-1)*t49(i,j-1,k)*PVZ(i,j-1,k)+hyv(i+1,j)*t49(i
. +1,j,k)*PVZ(i+1,j,k)+hyv(i+1,j-1)*t49(i+1,j-1,k)*PVZ(i+1,j-1,k)
. ))/hxu(i,j)
ENDIF
1170 CONTINUE
1160 CONTINUE
1150 CONTINUE
CMIC$ DO ALL
DO 1180 k = 1,nlev
DO 1190 j = 1,nlat
DO 1200 i = 1,nlon
IF (nlev.LE.k) THEN
PDVDT(i,j,k) = 0.5*(t219(i,j,nlev)/t49(i,j,nlev))+(rd
. th*(1.56961230576048E-7*(e(i,j,k)+phi(i,j,nlev)-e(i,j+1,k)-phi(
. i,j+1,nlev))+2.25270758122744E-5*(0.30391234671126*(PQZ(i,j,nle
. v)+PQZ(i,j+1,nlev))+1)*(lnp(i,j,k)-lnp(i,j+1,k))*(PTZ(i,j,k)+PT
. Z(i,j+1,k)))+0.0625*(z(i,j,k)+z(i-1,j,k))*(hxu(i,j)*t47(i,j,nle
. v)*PUZ(i,j,nlev)+hxu(i,j+1)*t47(i,j+1,nlev)*PUZ(i,j+1,nlev)+hxu
. (i-1,j)*t47(i-1,j,nlev)*PUZ(i-1,j,nlev)+hxu(i-1,j+1)*t47(i-1,j+
. 1,nlev)*PUZ(i-1,j+1,nlev)))/hyv(i,j)
ELSE IF (k.LE.1) THEN
PDVDT(i,j,k) = 0.5*(t219(i,j,2)/t49(i,j,1))+(rdth*(1.
. 56961230576048E-7*(e(i,j,k)+phi(i,j,1)-e(i,j+1,k)-phi(i,j+1,1))
. +2.25270758122744E-5*(0.30391234671126*(PQZ(i,j,1)+PQZ(i,j+1,1)
. )+1)*(lnp(i,j,k)-lnp(i,j+1,k))*(PTZ(i,j,k)+PTZ(i,j+1,k)))+0.062
. 5*(z(i,j,k)+z(i-1,j,k))*(hxu(i,j)*t47(i,j,1)*PUZ(i,j,1)+hxu(i,j
. +1)*t47(i,j+1,1)*PUZ(i,j+1,1)+hxu(i-1,j)*t47(i-1,j,1)*PUZ(i-1,j
. ,1)+hxu(i-1,j+1)*t47(i-1,j+1,1)*PUZ(i-1,j+1,1)))/hyv(i,j)
ELSE
PDVDT(i,j,k) = 0.5*((t219(i,j,k)+t219(i,j,k+1))/t49(i
. ,j,k))+(rdth*(1.56961230576048E-7*(e(i,j,k)+phi(i,j,k)-e(i,j+1,
. k)-phi(i,j+1,k))+2.25270758122744E-5*(0.30391234671126*(PQZ(i,j
. ,k)+PQZ(i,j+1,k))+1)*(lnp(i,j,k)-lnp(i,j+1,k))*(PTZ(i,j,k)+PTZ(
. i,j+1,k)))+0.0625*(z(i,j,k)+z(i-1,j,k))*(hxu(i,j)*t47(i,j,k)*PU
. Z(i,j,k)+hxu(i,j+1)*t47(i,j+1,k)*PUZ(i,j+1,k)+hxu(i-1,j)*t47(i-
. 1,j,k)*PUZ(i-1,j,k)+hxu(i-1,j+1)*t47(i-1,j+1,k)*PUZ(i-1,j+1,k))
. )/hyv(i,j)
ENDIF
1200 CONTINUE
1190 CONTINUE
1180 CONTINUE