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 |
|