C $Header: /u/gcmpack/MITgcm/model/inc/CG2D_INTERNAL.h,v 1.6 2001/10/03 16:12:54 cnh Exp $
C $Name:  $
CBOP
C     !ROUTINE: CG2D_INTERNAL.h
C     !INTERFACE:
C     include "CG2D_INTERNAL.h"
C     !DESCRIPTION: 
C     \bv
C     *==========================================================*
C     | CG2D_INTERNAL.h :: Header file for two-dimensional 
C     |                 :: conjugate gradient solver common 
C     |                 :: blocks.
C     *==========================================================*
C     | Internal (private) data structures.                       
C     *==========================================================*
C     \ev
CEOP

C--   COMMON /CG2D_R/ DEL**2 Laplacian operators
C     aW2d :: Two-d con. grad solver east-west operator.
C     aS2d :: Two-d con. grad solver north-south operator.
C     pW   :: Two-d con. grad solver east-west off-diagonal term of preconditioner.
C     pS   :: Two-d con. grad solver north-south off-diagonal term of preconditioner.
C     pC   :: Two-d con. grad solver main diagonal term of preconditioner.
C     cg2dNorm :: Two-d con. grad solver A matrix normalisation factor.
      COMMON /CG2D_I_R/
     &      aW2d,
     &      aS2d,
     &      pW, pS, pC,
     &      cg2dNorm
      _RS  aW2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RS  aS2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RS  pW   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RS  pS   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RS  pC   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL  cg2dNorm

C--   COMMON /CG2D_I_WK_R/  Work array common block
C     cg2d_q, :: Two-d con. grad solver intermediate matrix-vector product term
C     cg2d_r, :: 
C     cg2d_s  ::
      COMMON /CG2D_I_WK_R/
     & cg2d_q, cg2d_r, cg2d_s
      _RL  cg2d_q(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL  cg2d_r(1-1:sNx+1,1-1:sNy+1,nSx,nSy)
      _RL  cg2d_s(1-1:sNx+1,1-1:sNy+1,nSx,nSy)