Back to home page

MITgcm

 
 

    


File indexing completed on 2024-09-20 05:10:14 UTC

view on githubraw file Latest commit e6e223b2 on 2024-09-19 22:01:15 UTC
88830be691 Alis*0001 #ifdef ALLOW_NONHYDROSTATIC
4c563c2ee9 Chri*0002 CBOP
                0003 C     !ROUTINE: CG3D.h
ff02675122 Jean*0004 C     !INTERFACE:
4c563c2ee9 Chri*0005 C     include "CG3D.h"
                0006 C     !DESCRIPTION: \bv
                0007 C     *==========================================================*
ff02675122 Jean*0008 C     | CG3D.h
                0009 C     | o Three-dimensional conjugate gradient solver header.
4c563c2ee9 Chri*0010 C     *==========================================================*
ff02675122 Jean*0011 C     | The common blocks set up here are used in the elliptic
                0012 C     | equation inversion. They are also used as the interface
                0013 C     | to the rest of the model. To set the source term for the
                0014 C     | solver set the appropriate array below. To read the
                0015 C     | solution read from the appropriate array below.
4c563c2ee9 Chri*0016 C     *==========================================================*
                0017 C     \ev
                0018 CEOP
88830be691 Alis*0019 
e6e223b277 Jean*0020 C--   COMMON /CG3D_L/ cg3dNormaliseRHS
                0021 C     cg3dNormaliseRHS :: flag set to TRUE if normalise RHS in the Solver
                0022       COMMON /CG3D_L/ cg3dNormaliseRHS
                0023       LOGICAL cg3dNormaliseRHS
                0024 
88830be691 Alis*0025 C--   COMMON /CG3D_R/ DEL**2 Laplacian operators
84db8d1f60 Jean*0026 C     aW3d :: East-west operator.
                0027 C     aS3d :: North-south operator.
                0028 C     aV3d :: Vertical operator.
                0029 C     aC3d :: 3D operator main diagonal term.
                0030 C     zMC, zML, zMU :: preconditioner 3D solver
e6e223b277 Jean*0031 C     cg3dNorm :: A matrix normalisation factor.
                0032 C     cg3dTolerance_sq :: square of cg3d solver Tolerance (units depends
                0033 C                 on cg3dNormaliseRHS, solver-unit ^2 = (m2/s2)^2 or no unit)
                0034       COMMON /CG3D_RS/
                0035      &      aW3d, aS3d, aV3d, aC3d,
                0036      &      zMC, zML, zMU
                0037       COMMON /CG3D_RL/
                0038      &      cg3dNorm, cg3dTolerance_sq
88830be691 Alis*0039       _RS  aW3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0040       _RS  aS3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0041       _RS  aV3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
84db8d1f60 Jean*0042       _RS  aC3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
88830be691 Alis*0043       _RS  zMC  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0044       _RS  zML  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0045       _RS  zMU  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
e6e223b277 Jean*0046       _RL  cg3dNorm, cg3dTolerance_sq
88830be691 Alis*0047 
                0048 C--   COMMON /CG3D_WK_R/  Work array common block
e6e223b277 Jean*0049 C     cg3d_q :: Intermediate matrix-vector product term
                0050 C     cg3d_r ::   idem
                0051 C     cg3d_s ::   idem
88830be691 Alis*0052       COMMON /CG3D_WK_R/
ffc25bb3ad Alis*0053      & cg3d_q, cg3d_r, cg3d_s
e6e223b277 Jean*0054       _RL  cg3d_q( 0:sNx+1, 0:sNy+1, Nr,nSx,nSy)
                0055       _RL  cg3d_r( 0:sNx+1, 0:sNy+1, Nr,nSx,nSy)
                0056       _RL  cg3d_s( 0:sNx+1, 0:sNy+1, Nr,nSx,nSy)
88830be691 Alis*0057 
                0058 #endif /* ALLOW_NONHYDROSTATIC */