7 |
SUBROUTINE ppm3d(igd, q, ps1, ps2, u, v, w, ndt, iord, jord, kord, nc, imr, & |
SUBROUTINE ppm3d(igd, q, ps1, ps2, u, v, w, ndt, iord, jord, kord, nc, imr, & |
8 |
jnp, j1, nlay, ap, bp, pt, ae, fill, umax) |
jnp, j1, nlay, ap, bp, pt, ae, fill, umax) |
9 |
|
|
|
! rajout de déclarations |
|
|
! integer Jmax,kmax,ndt0,nstep,k,j,i,ic,l,js,jn,imh,iad,jad,krd |
|
|
! integer iu,iiu,j2,jmr,js0,jt |
|
|
! real dtdy,dtdy5,rcap,iml,jn0,imjm,pi,dl,dp |
|
|
! real dt,cr1,maxdt,ztc,d5,sum1,sum2,ru |
|
|
|
|
|
! ******************************************************************** |
|
|
|
|
|
! ============= |
|
10 |
! INPUT: |
! INPUT: |
11 |
! ============= |
! ============= |
12 |
|
|
43 |
! currently under development. |
! currently under development. |
44 |
! p(i,j,k) = (AP(k)*PT + BP(k)*PS(i,j))/(D(k)-C(k)*TE**(-1/kapa)) |
! p(i,j,k) = (AP(k)*PT + BP(k)*PS(i,j))/(D(k)-C(k)*TE**(-1/kapa)) |
45 |
|
|
46 |
! ///////////////////////////////// |
! Cf. ppm3d.txt. |
|
! / \ ------------- PTOP -------------- AP(1), BP(1) |
|
|
! | |
|
|
! delp(1) | ........... Q(i,j,1) ............ |
|
|
! | |
|
|
! W(1) \ / --------------------------------- AP(2), BP(2) |
|
|
|
|
|
|
|
|
|
|
|
! W(k-1) / \ --------------------------------- AP(k), BP(k) |
|
|
! | |
|
|
! delp(K) | ........... Q(i,j,k) ............ |
|
|
! | |
|
|
! W(k) \ / --------------------------------- AP(k+1), BP(k+1) |
|
|
|
|
|
|
|
|
|
|
|
! / \ --------------------------------- AP(NLAY), BP(NLAY) |
|
|
! | |
|
|
! delp(NLAY) | ........... Q(i,j,NLAY) ......... |
|
|
! | |
|
|
! W(NLAY)=0 \ / ------------- surface ----------- AP(NLAY+1), BP(NLAY+1) |
|
|
! ////////////////////////////////// |
|
47 |
|
|
48 |
! U(IMR,JNP,NLAY) & V(IMR,JNP,NLAY):winds (m/s) at mid-time-level (t+NDT/2) |
! U(IMR,JNP,NLAY) & V(IMR,JNP,NLAY):winds (m/s) at mid-time-level (t+NDT/2) |
49 |
! U and V may need to be polar filtered in advance in some cases. |
! U and V may need to be polar filtered in advance in some cases. |
53 |
! pole (j=1) to north pole (j=JNP) ] |
! pole (j=1) to north pole (j=JNP) ] |
54 |
|
|
55 |
! IGD = 1 GEOS-GCM C-Grid |
! IGD = 1 GEOS-GCM C-Grid |
56 |
! [North] |
! Cf. ppm3d.txt. |
|
|
|
|
! V(i,j) |
|
|
! | |
|
|
! | |
|
|
! | |
|
|
! U(i-1,j)---Q(i,j)---U(i,j) [EAST] |
|
|
! | |
|
|
! | |
|
|
! | |
|
|
! V(i,j-1) |
|
57 |
|
|
58 |
! U(i, 1) is defined at South Pole. |
! U(i, 1) is defined at South Pole. |
59 |
! V(i, 1) is half grid north of the South Pole. |
! V(i, 1) is half grid north of the South Pole. |
183 |
INTEGER igd, iord, jord, kord, nc, jnp, j1, nlay, ae |
INTEGER igd, iord, jord, kord, nc, jnp, j1, nlay, ae |
184 |
REAL q(imr, jnp, nlay, nc), ps1(imr, jnp), ps2(imr, jnp), & |
REAL q(imr, jnp, nlay, nc), ps1(imr, jnp), ps2(imr, jnp), & |
185 |
u(imr, jnp, nlay), v(imr, jnp, nlay), ap(nlay+1), bp(nlay+1), & |
u(imr, jnp, nlay), v(imr, jnp, nlay), ap(nlay+1), bp(nlay+1), & |
186 |
w(imr, jnp, nlay), ndt, val(nlay), umax |
w(imr, jnp, nlay), ndt, umax |
187 |
INTEGER imrd2 |
INTEGER imrd2 |
188 |
REAL pt |
REAL pt |
189 |
LOGICAL cross, fill |
LOGICAL cross, fill |
665 |
IF (j1/=2) THEN |
IF (j1/=2) THEN |
666 |
DO k = 1, nlay |
DO k = 1, nlay |
667 |
DO i = 1, imr |
DO i = 1, imr |
668 |
! j=1 c'est le pôle Sud, j=JNP c'est le pôle Nord |
! j=1 c'est le p\^ole Sud, j=JNP c'est le p\^ole Nord |
669 |
q(i, 2, k, ic) = q(i, 1, k, ic) |
q(i, 2, k, ic) = q(i, 1, k, ic) |
670 |
q(i, jmr, k, ic) = q(i, jmp, k, ic) |
q(i, jmr, k, ic) = q(i, jmp, k, ic) |
671 |
END DO |
END DO |