 
 
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  *                                                               *
  *                        F I S H P A K                          *
  *                                                               *
  *                                                               *
  *     A PACKAGE OF FORTRAN SUBPROGRAMS FOR THE SOLUTION OF      *
  *                                                               *
  *      SEPARABLE ELLIPTIC PARTIAL DIFFERENTIAL EQUATIONS        *
  *                                                               *
  *                  (VERSION  3.1 , MAY 1981)                    *
  *                                                               *
  *                             BY                                *
  *                                                               *
  *        JOHN ADAMS, PAUL SWARZTRAUBER AND ROLAND SWEET         *
  *                                                               *
  *                             OF                                *
  *                                                               *
  *         THE NATIONAL CENTER FOR ATMOSPHERIC RESEARCH          *
  *                                                               *
  *                BOULDER, COLORADO  (80307)  U.S.A.             *
  *                                                               *
  *                   WHICH IS SPONSORED BY                       *
  *                                                               *
  *              THE NATIONAL SCIENCE FOUNDATION                  *
  *                                                               *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 
 
  1  SUBROUTINE HWSCRT SOLVES THE STANDARD FIVE-POINT FINITE
     DIFFERENCE APPROXIMATION TO THE HELMHOLTZ EQUATION IN
     CARTESIAN COORDINATES
 
          (D/DX)(DU/DX) + (D/DY)(DU/DY) + LAMBDA*U = F(X,Y)
 
     USING A CENTERED FINITE DIFFERENCE GRID.
 
 
  2  SUBROUTINE HWSPLR SOLVES A FIVE-POINT FINITE DIFFERENCE
     APPROXIMATION TO THE HELMHOLTZ EQUATION IN POLAR COORDINATES
 
          (1/R)(D/DR)(R(DU/DR)) + (1/R**2)(D/DTHETA)(DU/DTHETA)
 
                       + LAMBDA*U = F(R,THETA)
 
     USING A CENTERED FINITE DIFFERENCE GRID.
 
 
  3  SUBROUTINE HWSCYL SOLVES A FIVE-POINT FINITE DIFFERENCE
     APPROXIMATION TO THE MODIFIED HELMHOLTZ EQUATION IN CYLINDRICAL
     COORDINATES
 
          (1/R)(D/DR)(R(DU/DR)) + (D/DZ)(DU/DZ)
 
             + (LAMBDA/R**2)*U = F(R,Z)
 
     USING A CENTERED FINITE DIFFERENCE GRID.
 
 
  4  SUBROUTINE HWSSSP SOLVES A FIVE-POINT FINITE DIFFERENCE
     APPROXIMATION TO THE HELMHOLTZ EQUATION IN SPHERICAL
     COORDINATES AND ON THE SURFACE OF THE UNIT SPHERE
 
        (1/SIN(THETA))(D/DTHETA)(SIN(THETA)(DU/DTHETA))
 
              + (1/SIN(THETA)**2)(D/DPHI)(DU/DPHI)
 
                    + LAMBDA*U = F(THETA,PHI)
 
     USING A CENTERED FINITE DIFFERENCE GRID.
 
 
  5  SUBROUTINE HWSCSP SOLVES A FIVE-POINT FINITE DIFFERENCE
     APPROXIMATION TO THE MODIFIED HELMHOLTZ EQUATION IN SPHERICAL
     COORDINATE ASSUMING AXISYMMETRY (NO DEPENDENCE ON LONGITUDE)
 
                  (1/R**2)(D/DR)(R**2(DU/DR))
 
       + 1/(R**2*SIN(THETA))(D/DTHETA)(SIN(THETA)(DU/DTHETA))
 
            + (LAMBDA/(R*SIN(THETA)**2))*U = F(THETA,R)
 
     USING A CENTERED FINITE DIFFERENCE GRID.
 
 
7  6 SUBROUTINE HSTCRT SOLVES THE STANDARD FIVE-POINT FINITE
     DIFFERENCE APPROXIMATION TO THE HELMHOLTZ EQUATION IN
     CARTESIAN COORDINATES
 
          (D/DX)(DU/DX) + (D/DY)(DU/DY) + LAMBDA*U = F(X,Y)
 
     USING A STAGGERED FINITE DIFFERENCE GRID.
 
 
  7  SUBROUTINE HSTPLR SOLVES A FIVE-POINT FINITE DIFFERENCE
     APPROXIMATION TO THE HELMHOLTZ EQUATION IN POLAR COORDINATES
 
          (1/R)(D/DR)(R(DU/DR)) + (1/R**2)(D/DTHETA)(DU/DTHETA)
 
                       + LAMBDA*U = F(R,THETA)
 
     USING A STAGGERED FINITE DIFFERENCE GRID.
 
 
  8  SUBROUTINE HSTCYL SOLVES A FIVE-POINT FINITE DIFFERENCE
     APPROXIMATION TO THE MODIFIED HELMHOLTZ EQUATION IN CYLINDRICAL
     COORDINATES
 
          (1/R)(D/DR)(R(DU/DR)) + (D/DZ)(DU/DZ)
 
             + (LAMBDA/R**2)*U = F(R,Z)
 
     USING A STAGGERED FINITE DIFFERENCE GRID.
 
 
  9  SUBROUTINE HSTSSP SOLVES A FIVE-POINT FINITE DIFFERENCE
     APPROXIMATION TO THE HELMHOLTZ EQUATION IN SPHERICAL
     COORDINATES AND ON THE SURFACE OF THE UNIT SPHERE
 
        (1/SIN(THETA))(D/DTHETA)(SIN(THETA)(DU/DTHETA))
 
              + (1/SIN(THETA)**2)(D/DPHI)(DU/DPHI)
 
                    + LAMBDA*U = F(THETA,PHI)
 
     USING A STAGGERED FINITE DIFFERENCE GRID.
 
 
 10  SUBROUTINE HSTCSP SOLVES A FIVE-POINT FINITE DIFFERENCE
     APPROXIMATION TO THE MODIFIED HELMHOLTZ EQUATION IN SPHERICAL
     COORDINATE ASSUMING AXISYMMETRY (NO DEPENDENCE ON LONGITUDE)
 
                  (1/R**2)(D/DR)(R**2(DU/DR))
 
       + 1/(R**2*SIN(THETA))(D/DTHETA)(SIN(THETA)(DU/DTHETA))
 
            + (LAMBDA/(R*SIN(THETA)**2))*U = F(THETA,R)
 
     USING A STAGGERED FINITE DIFFERENCE GRID.
 
 
 11  SUBROUTINE HW3CRT SOLVES THE STANDARD SEVEN-POINT FINITE
     DIFFERENCE APPROXIMATION TO THE HELMHOLTZ EQUATION IN
     CARTESIAN COORDINATES
 
       (D/DX)(DU/DX) + (D/DY)(DU/DY) + (D/DZ)(DU/DZ)
 
                + LAMBDA*U = F(X,Y,Z)
 
     USING A CENTERED FINITE DIFFERENCE GRID.
 
 
  12  SUBROUTINE SEPX4 AUTOMATICALLY DISCRETIZES AND SOLVES SECOND
     AND (OPTIONALLY) FOURTH ORDER FINITE DIFFERENCE APPROXIMATIONS
     ON A UNIFORM GRID TO CERTAIN SEPARABLE ELLIPTIC PARTIAL
     DIFFERENTIAL EQUATIONS WITH CONSTANT COEFFICIENTS IN ONE
     DIRECTION.
 
 
 13  SUBROUTINE SEPELI AUTOMATICALLY DISCRETIZES AND SOLVES SECOND
     AND (OPTIONALLY) FOURTH ORDER FINITE DIFFERENCE APPROXIMATIONS
     ON A UNIFORM GRID TO A SEPARABLE ELLIPTIC PARTIAL DIFFERENTIAL
     EQUATION ON A RECTANGLE.
 
 
 14  SUBROUTINE GENBUN SOLVES THE LINEAR SYSTEM OF EQUATIONS THAT
        RESULTS FROM A FINITE DIFFERENCE APPROXIMATION ON A CENTERED
     GRID TO CERTAIN TWO-DIMENSIONAL ELLIPTIC PARTIAL DIFFERENTIAL
     EQUATIONS WITH CONSTANT COEFFICIENTS IN ONE DIRECTION.
 
 
 15  SUBROUTINE BLKTRI SOLVES BLOCK TRIDIAGONAL LINEAR SYSTEMS THAT
     ARISE FROM FINITE DIFFERENCE APPROXIMATIONS TO SEPARABLE TWO-
     DIMENSIONAL ELLIPTIC PARTIAL DIFFERENTIAL EQUATIONS.
 
 
 16  SUBROUTINE POISTG SOLVES A BLOCK TRIDIAGONAL LINEAR SYSTEM OF
     EQUATIONS THAT ARISES FROM FINITE DIFFERENCE APPROXIMATIONS
     ON A STAGGERED GRID TO TWO-DIMENSIONAL ELLIPTIC PARTIAL
     DIFFERENTIAL EQUATIONS WITH CONSTANT COEFFICIENTS IN ONE
     DIRECTION.
 
 
 17  SUBROUTINE POIS3D SOLVES A BLOCK TRIDIAGONAL LINEAR SYSTEM OF
     EQUATIONS THAT ARISES FROM FINITE DIFFERENCE APPROXIMATIONS TO
     THREE-DIMENSIONAL ELLIPTIC PARTIAL DIFFERENTIAL EQUATIONS IN A
     BOX.
 
 
 18  SUBROUTINE CMGNBN SOLVES A COMPLEX BLOCK TRIDIAGONAL LINEAR
     SYSTEM ARISING FROM FINITE DIFFERENCE APPROXIMATIONS TO SEPARAB
     COMPLEX TWO-DIMENSIONAL ELLIPTIC PARTIAL DIFFERENTIAL EQUATIONS
 
 
 19  SUBROUTINE CBLKTR SOLVES A COMPLEX BLOCK TRIDIAGONAL LINEAR
     SYSTEM OF EQUATIONS ARISING FROM FINITE DIFFERENCE APPROXIMATIO
     TO SEPARABLE COMPLEX TWO-DIMENSIONAL ELLIPTIC PARTIAL
     DIFFERENTIAL EQUATIONS.
 
 
