C $Id: CG2D.h,v 1.3 2006/05/12 22:34:02 ce107 Exp $ C C /==========================================================\ C | CG2D.h | C | o Two-dimensional conjugate gradient solver header. | C |==========================================================| C | The common blocks set up here are used in the elliptic | C | equation inversion. They are also used as the interface | C | to the rest of the model. To set the source term for the | C | solver set the appropriate array below. To read the | C | solution read from the appropriate array below. | C \==========================================================/ C-- COMMON /CG2D_R/ DEL**2 Laplacian operators C aW2d - East-west operator. C aS2d - North-south operator. C pW - East-west off-diagonal term of preconditioner. C pS - North-south off-diagonal term of preconditioner. C pC - Main diagonal term of preconditioner. COMMON /CG2D_R/ & aW2d, & aS2d, & pW, pS, pC Real aW2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy) Real aS2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy) Real pW (1-OLx:sNx+OLx,1-OLy:sNy+OLy) Real pS (1-OLx:sNx+OLx,1-OLy:sNy+OLy) Real pC (1-OLx:sNx+OLx,1-OLy:sNy+OLy) C-- COMMON /CG2D_WK_R/ Work array common block C cg2d_q - Intermediate matrix-vector product term C cg2d_r - " C cg2d_s - " C cg2d_x Solution vector C cg2d_Ax Laplace operator on the solution (used to check C the result). C cg2d_b Right-hand side vector COMMON /CG2D_WK_R/ & cg2d_q, cg2d_r, cg2d_s, cg2d_x, cg2d_Ax, cg2d_b Real cg2d_q(1-OLx:sNx+OLx,1-OLy:sNy+OLy) Real cg2d_r(1-OLx:sNx+OLx,1-OLy:sNy+OLy) Real cg2d_s(1-OLx:sNx+OLx,1-OLy:sNy+OLy) Real cg2d_x (1-OLx:sNx+OLx,1-OLy:sNy+OLy) Real cg2d_Ax(1-OLx:sNx+OLx,1-OLy:sNy+OLy) Real cg2d_b(1-OLx:sNx+OLx,1-OLy:sNy+OLy)