/[MITgcm]/MITgcm/model/inc/CG2D.h
ViewVC logotype

Annotation of /MITgcm/model/inc/CG2D.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.13 - (hide annotations) (download)
Wed Jun 7 01:55:12 2006 UTC (17 years, 11 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint58m_post, checkpoint58o_post, checkpoint58p_post, checkpoint58q_post, checkpoint58r_post, checkpoint58n_post, checkpoint58k_post, checkpoint58l_post, checkpoint58h_post, checkpoint58j_post, checkpoint58i_post
Changes since 1.12: +10 -1 lines
File MIME type: text/plain
Modifications for bottom topography control
o replace hFacC by _hFacC at various places
o replace ALLOW_HFACC_CONTROL by ALLOW_DEPTH_CONTROL
o add non-self-adjoint cg2d_nsa
o update autodiff support routines
o re-initialise hfac after ctrl_depth_ini
o works for 5x5 box, doesnt work for global_ocean.90x40x15

1 heimbach 1.13 C $Header: /u/gcmpack/MITgcm/model/inc/CG2D.h,v 1.12 2003/09/29 19:24:30 edhill Exp $
2 cnh 1.9 C $Name: $
3    
4     CBOP
5     C !ROUTINE: CG2D.h
6     C !INTERFACE:
7     C include "CG2D.h"
8     C
9     C !DESCRIPTION:
10     C \bv
11     C *==========================================================*
12     C | CG2D.h
13     C | o Two-dimensional conjugate gradient solver header.
14     C *==========================================================*
15     C | Internal (private) data structures.
16     C *==========================================================*
17     C \ev
18     CEOP
19 cnh 1.1
20 adcroft 1.8 C-- COMMON /CG2D_I_L/ cg2dNormaliseRHS
21     C cg2dNormaliseRHS - flag set to TRUE if normalise RHS in the Solver
22     COMMON /CG2D_I_L/ cg2dNormaliseRHS
23     LOGICAL cg2dNormaliseRHS
24    
25     C-- COMMON /CG2D_R/ DEL**2 Laplacian operators
26     C aW2d - East-west operator.
27     C aS2d - North-south operator.
28     C pW - East-west off-diagonal term of preconditioner.
29     C pS - North-south off-diagonal term of preconditioner.
30     C pC - Main diagonal term of preconditioner.
31     C etaNBuf - Shared buffers for accumulating con. grad vector product.
32     C alphaBuf
33     C errBuf
34     C nrmBuf
35     C cg2dNorm - A matrix normalisation factor.
36     C cg2dTolerance - cg2d solver Tolerance (solver unit = m2/s2 or no unit,
37     C depending on cg2dNormaliseRHS)
38     COMMON /CG2D_I_R/
39     & aW2d,
40     & aS2d,
41     & pW, pS, pC,
42     & cg2dNorm, cg2dTolerance
43     _RS aW2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
44     _RS aS2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
45     _RS pW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
46     _RS pS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
47     _RS pC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
48     _RL cg2dNorm, cg2dTolerance
49    
50     C-- COMMON /CG2D_I_WK_R/ Work array common block
51     C cg2d_q - Intermediate matrix-vector product term
52 edhill 1.12 C cg2d_r - *same*
53     C cg2d_s - *same*
54 adcroft 1.8 COMMON /CG2D_I_WK_R/
55     & cg2d_q, cg2d_r, cg2d_s
56     _RL cg2d_q(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
57 jmc 1.11 #ifdef LETS_MAKE_JAM
58     _RL cg2d_r(1-1:sNx+1,1-1:sNy+1,nSx,nSy)
59     _RL cg2d_s(1-1:sNx+1,1-1:sNy+1,nSx,nSy)
60     #else
61 heimbach 1.10 _RL cg2d_r(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
62     _RL cg2d_s(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
63 jmc 1.11 #endif
64 heimbach 1.13
65     #ifdef ALLOW_CG2D_NSA
66     C-- COMMON /CG2D_I_WK_R2/ extra work array common block
67     C cg2d_z - Intermediate matrix-vector product term
68     C - reduces the number of recomputation in adjoint mode
69     C - this field is superfluous if your cg2d is self-adjoint.
70     COMMON /CG2D_I_WK_R2/ cg2d_z
71     _RL cg2d_z(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
72     #endif /* ALLOW_CG2D_NSA */

  ViewVC Help
Powered by ViewVC 1.1.22