| 1 | C       $Id$ | 
| 2 | C | 
| 3 | C     /==========================================================\ | 
| 4 | C     | CG2D.h                                                   | | 
| 5 | C     | o Two-dimensional conjugate gradient solver header.      | | 
| 6 | C     |==========================================================| | 
| 7 | C     | The common blocks set up here are used in the elliptic   | | 
| 8 | C     | equation inversion. They are also used as the interface  | | 
| 9 | C     | to the rest of the model. To set the source term for the | | 
| 10 | C     | solver set the appropriate array below. To read the      | | 
| 11 | C     | solution read from the appropriate array below.          | | 
| 12 | C     \==========================================================/ | 
| 13 |  | 
| 14 | C--   COMMON /CG2D_R/ DEL**2 Laplacian operators | 
| 15 | C     aW2d - East-west operator. | 
| 16 | C     aS2d - North-south operator. | 
| 17 | C     pW   - East-west off-diagonal term of preconditioner. | 
| 18 | C     pS   - North-south off-diagonal term of preconditioner. | 
| 19 | C     pC   - Main diagonal term of preconditioner. | 
| 20 | COMMON /CG2D_R/ | 
| 21 | &      aW2d, | 
| 22 | &      aS2d, | 
| 23 | &      pW, pS, pC | 
| 24 | Real aW2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy) | 
| 25 | Real aS2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy) | 
| 26 | Real pW   (1-OLx:sNx+OLx,1-OLy:sNy+OLy) | 
| 27 | Real pS   (1-OLx:sNx+OLx,1-OLy:sNy+OLy) | 
| 28 | Real pC   (1-OLx:sNx+OLx,1-OLy:sNy+OLy) | 
| 29 |  | 
| 30 | C--   COMMON /CG2D_WK_R/  Work array common block | 
| 31 | C     cg2d_q - Intermediate matrix-vector product term | 
| 32 | C     cg2d_r -   " | 
| 33 | C     cg2d_s -   " | 
| 34 | C     cg2d_x   Solution vector | 
| 35 | C     cg2d_Ax  Laplace operator on the solution (used to check | 
| 36 | C              the result). | 
| 37 | C     cg2d_b   Right-hand side vector | 
| 38 | COMMON /CG2D_WK_R/ | 
| 39 | & cg2d_q, cg2d_r, cg2d_s, cg2d_x, cg2d_Ax, cg2d_b | 
| 40 | Real cg2d_q(1-OLx:sNx+OLx,1-OLy:sNy+OLy) | 
| 41 | Real cg2d_r(1-OLx:sNx+OLx,1-OLy:sNy+OLy) | 
| 42 | Real cg2d_s(1-OLx:sNx+OLx,1-OLy:sNy+OLy) | 
| 43 | Real cg2d_x (1-OLx:sNx+OLx,1-OLy:sNy+OLy) | 
| 44 | Real cg2d_Ax(1-OLx:sNx+OLx,1-OLy:sNy+OLy) | 
| 45 | Real cg2d_b(1-OLx:sNx+OLx,1-OLy:sNy+OLy) | 
| 46 |  |