Page 136 - Computational Fluid Dynamics for Engineers
P. 136
122 4. Numerical Methods for Model Parabolic and Elliptic Equations
Table 4.3. FORTRAN Listing of Subroutine POISSON
SUBROUTINE POISSON(II,JJ,TX,TY,F,U)
PARAMETER (NMAX = 100)
DIMENSION A(NMAX,NMAX),B(NMAX,NMAX),C(NMAX,NMAX),
& D(NMAX,NMAX),E(NMAX,NMAX)
DIMENSION DELTA(NMAX,NMAX,NMAX),DELTT(NMAX,NMAX),BM(NMAX,NMAX)
DIMENSION DM(NMAX,NMAX),F(NMAX,NMAX),W(NMAX,NMAX),UT(NMAX),
& U(NMAX,NMAX)
ELEMENTS OF DIAGONAL VECTORS IN THE BLOCK MATRICES A,B AND C
DO 5 1=1,11
DO 5 J=1,JJ
A(I,J) = -TX
B(I,J) = 1.
C(I,J) = -TX
D(I,J) = -TY
E(I,J) = -TY
5 CONTINUE
ELEMENTS OF W-VECTOR, SEE EQ. (4.5.21a)
DO 10 K=l,II
W(K,1) = F(K,1)
ELEMENTS OF DELTA-MATRIX, SEE EQ. (4.5.20a)
DO 10 L=1,II
DELTA(K,L,1) = 0.
10 CONTINUE
DELTA(1,1,1) = B(l,l)
DO 20 K=2,II
DELTA(K,K,1) = B(K,1)
DELTA(K,K-1,1) = A(K,1)
DELTA(K-1,K,1) = C(K-1,1)
20 CONTINUE
FORWARD SWEEP
DO 30 J=2,JJ
DO 40 K=1,II
DO 40 L=1,II
DELTT(K,L) = DELTA(L,K,J-1)
BM(K, L) = 0.
40 CONTINUE
DO 50 K=1,II
BM(K,K) = D(K,J)
50 CONTINUE
SEE EQ. (4.4.20B)
CALL GAUSS (II,11.DELTT.BM)
DO 60 K=1,II
DO 60 L=1,II
DELTA(K,L,J) = 0.
60 CONTINUE
DELTA(1,1,J) = B(1,J)
DO 70 K=2,II
DELTA(K,K,J) = B(K,J)
DELTA(K,K-1,J) = A(K,J)
DELTA(K-1,K,J) = C(K-1,J)
70 CONTINUE
DO 30 K=1,II
W(K,J) = F(K,J)