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)
   131   132   133   134   135   136   137   138   139   140   141