| 1 |
C $Header: /u/gcmpack/models/MITgcmUV/model/inc/CG3D.h,v 1.2 1999/05/18 17:40:37 adcroft Exp $ |
| 2 |
C $Name: $ |
| 3 |
|
| 4 |
#ifdef ALLOW_NONHYDROSTATIC |
| 5 |
C /==========================================================\ |
| 6 |
C | CG3D.h | |
| 7 |
C | o Three-dimensional conjugate gradient solver header. | |
| 8 |
C |==========================================================| |
| 9 |
C | The common blocks set up here are used in the elliptic | |
| 10 |
C | equation inversion. They are also used as the interface | |
| 11 |
C | to the rest of the model. To set the source term for the | |
| 12 |
C | solver set the appropriate array below. To read the | |
| 13 |
C | solution read from the appropriate array below. | |
| 14 |
C \==========================================================/ |
| 15 |
|
| 16 |
C-- COMMON /CG3D_R/ DEL**2 Laplacian operators |
| 17 |
C aW3d - East-west operator. |
| 18 |
C aS3d - North-south operator. |
| 19 |
C aV3d - Vertical operator. |
| 20 |
C etaNBuf - Shared buffers for accumulating con. grad vector product. |
| 21 |
C alphaBuf |
| 22 |
C errBuf |
| 23 |
C nrmBuf |
| 24 |
C cg3dNorm - A matrix normalisation factor. |
| 25 |
COMMON /CG3D_R/ |
| 26 |
& aW3d, |
| 27 |
& aS3d, |
| 28 |
& aV3d, |
| 29 |
& zMC, zML, zMU, |
| 30 |
& cg3dNorm |
| 31 |
_RS aW3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 32 |
_RS aS3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 33 |
_RS aV3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 34 |
_RS zMC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 35 |
_RS zML (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 36 |
_RS zMU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 37 |
_RL cg3dNorm |
| 38 |
|
| 39 |
C-- COMMON /CG3D_WK_R/ Work array common block |
| 40 |
C cg3d_q - Intermediate matrix-vector product term |
| 41 |
C cg3d_r - " |
| 42 |
C cg3d_s - " |
| 43 |
C cg3d_x Solution vector |
| 44 |
C cg3d_b Right-hand side vector |
| 45 |
COMMON /CG3D_WK_R/ |
| 46 |
& cg3d_b, cg3d_q, cg3d_r, cg3d_s, cg3d_x |
| 47 |
_RL cg3d_q(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) |
| 48 |
_RL cg3d_r(1-1 :sNx+1 ,1-1 :sNy+1 ,nR,nSx,nSy) |
| 49 |
_RL cg3d_s(1-1 :sNx+1 ,1-1 :sNy+1 ,nR,nSx,nSy) |
| 50 |
_RL cg3d_x(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) |
| 51 |
_RL cg3d_b(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) |
| 52 |
|
| 53 |
#endif /* ALLOW_NONHYDROSTATIC */ |