/[MITgcm]/MITgcm/model/src/cg3d.F
ViewVC logotype

Diff of /MITgcm/model/src/cg3d.F

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

revision 1.15 by jmc, Fri Feb 4 19:30:33 2005 UTC revision 1.16 by jmc, Tue Nov 8 06:18:10 2005 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
 #include "PACKAGES_CONFIG.h"  
4  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
5    
 #define VERBOSE  
   
6  CBOP  CBOP
7  C     !ROUTINE: CG3D  C     !ROUTINE: CG3D
8  C     !INTERFACE:  C     !INTERFACE:
# Line 98  C     I, J, N     - Loop counters ( N co Line 95  C     I, J, N     - Loop counters ( N co
95        _RL    sumRHS, sumRHStile        _RL    sumRHS, sumRHStile
96        _RL    rhsMax        _RL    rhsMax
97        _RL    rhsNorm        _RL    rhsNorm
98          _RL    topLevTerm
       INTEGER OLw  
       INTEGER OLe  
       INTEGER OLn  
       INTEGER OLs  
       INTEGER exchWidthX  
       INTEGER exchWidthY  
       INTEGER myNz  
       _RL     topLevTerm  
99  CEOP  CEOP
100    
 ceh3 needs an IF ( useNONHYDROSTATIC ) THEN  
   
101    
102  C--   Initialise inverter  C--   Initialise inverter
103        eta_qrNM1 = 1. D0        eta_qrNM1 = 1. D0
# Line 146  C--   Normalise RHS Line 133  C--   Normalise RHS
133        ENDDO        ENDDO
134    
135  C--   Update overlaps  C--   Update overlaps
136        _EXCH_XYZ_R8( cg3d_b, myThid )  c     _EXCH_XYZ_R8( cg3d_b, myThid )
137        _EXCH_XYZ_R8( cg3d_x, myThid )        _EXCH_XYZ_R8( cg3d_x, myThid )
138    
139  C--   Initial residual calculation (with free-Surface term)  C--   Initial residual calculation (with free-Surface term)
# Line 166  C--   Initial residual calculation (with Line 153  C--   Initial residual calculation (with
153       &      (horiVertRatio/gravity)/deltaTMom/deltaTMom       &      (horiVertRatio/gravity)/deltaTMom/deltaTMom
154           DO J=1,sNy           DO J=1,sNy
155            DO I=1,sNx            DO I=1,sNx
            cg3d_s(I,J,K,bi,bj) = 0.  
156             cg3d_r(I,J,K,bi,bj) = cg3d_b(I,J,K,bi,bj) -( 0.             cg3d_r(I,J,K,bi,bj) = cg3d_b(I,J,K,bi,bj) -( 0.
157       &     +aW3d(I  ,J  ,K  ,bi,bj)*cg3d_x(I-1,J  ,K  ,bi,bj)       &     +aW3d(I  ,J  ,K  ,bi,bj)*cg3d_x(I-1,J  ,K  ,bi,bj)
158       &     +aW3d(I+1,J  ,K  ,bi,bj)*cg3d_x(I+1,J  ,K  ,bi,bj)       &     +aW3d(I+1,J  ,K  ,bi,bj)*cg3d_x(I+1,J  ,K  ,bi,bj)
# Line 188  C--   Initial residual calculation (with Line 174  C--   Initial residual calculation (with
174       &     +cg3d_b(I,J,K,bi,bj)       &     +cg3d_b(I,J,K,bi,bj)
175            ENDDO            ENDDO
176           ENDDO           ENDDO
177             DO J=1-1,sNy+1
178              DO I=1-1,sNx+1
179               cg3d_s(I,J,K,bi,bj) = 0.
180              ENDDO
181             ENDDO
182          ENDDO          ENDDO
183          err    = err    + errTile          err    = err    + errTile
184          sumRHS = sumRHS + sumRHStile          sumRHS = sumRHS + sumRHStile
185         ENDDO         ENDDO
186        ENDDO        ENDDO
187  C     _EXCH_XYZ_R8( cg3d_r, myThid )  C     _EXCH_XYZ_R8( cg3d_r, myThid )
188         OLw        = 1         CALL EXCH_S3D_RL( cg3d_r, myThid )
        OLe        = 1  
        OLn        = 1  
        OLs        = 1  
        exchWidthX = 1  
        exchWidthY = 1  
        myNz       = Nr  
        CALL EXCH_RL( cg3d_r,  
      I            OLw, OLe, OLs, OLn, myNz,  
      I            exchWidthX, exchWidthY,  
      I            FORWARD_SIMULATION, EXCH_IGNORE_CORNERS, myThid )  
189  C     _EXCH_XYZ_R8( cg3d_s, myThid )  C     _EXCH_XYZ_R8( cg3d_s, myThid )
190         OLw        = 1  c      CALL EXCH_S3D_RL( cg3d_s, myThid )
        OLe        = 1  
        OLn        = 1  
        OLs        = 1  
        exchWidthX = 1  
        exchWidthY = 1  
        myNz       = Nr  
        CALL EXCH_RL( cg3d_s,  
      I            OLw, OLe, OLs, OLn, myNz,  
      I            exchWidthX, exchWidthY,  
      I            FORWARD_SIMULATION, EXCH_IGNORE_CORNERS, myThid )  
191        _GLOBAL_SUM_R8( sumRHS, myThid )        _GLOBAL_SUM_R8( sumRHS, myThid )
192        _GLOBAL_SUM_R8( err   , myThid )        _GLOBAL_SUM_R8( err   , myThid )
193                
194        IF ( debugLevel .GE. debLevZero ) THEN        IF ( debugLevel .GE. debLevZero ) THEN
195          _BEGIN_MASTER( myThid )          _BEGIN_MASTER( myThid )
196          write(*,'(A,1P2E22.14)')          write(standardmessageunit,'(A,1P2E22.14)')
197       &     ' cg3d: Sum(rhs),rhsMax = ',sumRHS,rhsMax       &     ' cg3d: Sum(rhs),rhsMax = ',sumRHS,rhsMax
198          _END_MASTER( myThid )          _END_MASTER( myThid )
199        ENDIF        ENDIF
# Line 240  C     >>>>>>>>>>>>>>> BEGIN SOLVER <<<<< Line 211  C     >>>>>>>>>>>>>>> BEGIN SOLVER <<<<<
211        DO 10 it3d=1, cg3dMaxIters        DO 10 it3d=1, cg3dMaxIters
212    
213  CcnhDebugStarts  CcnhDebugStarts
 #ifdef VERBOSE  
214  c      IF ( mod(it3d-1,10).EQ.0)  c      IF ( mod(it3d-1,10).EQ.0)
215  c    &   WRITE(*,*) ' CG3D: Iteration ',it3d-1,  c    &   WRITE(*,*) ' CG3D: Iteration ',it3d-1,
216  c    &      ' residual = ',actualResidual  c    &      ' residual = ',actualResidual
 #endif  
217  CcnhDebugEnds  CcnhDebugEnds
218         IF ( actualResidual .LT. cg3dTargetResidual ) GOTO 11         IF ( actualResidual .LT. cg3dTargetResidual ) GOTO 11
219  C--    Solve preconditioning equation and update  C--    Solve preconditioning equation and update
# Line 479  C      Now compute "interior" points. Line 448  C      Now compute "interior" points.
448         actualResidual = err         actualResidual = err
449         IF ( actualResidual .LT. cg3dTargetResidual ) GOTO 11         IF ( actualResidual .LT. cg3dTargetResidual ) GOTO 11
450  C      _EXCH_XYZ_R8(cg3d_r, myThid )  C      _EXCH_XYZ_R8(cg3d_r, myThid )
451         OLw        = 1         CALL EXCH_S3D_RL( cg3d_r, myThid )
        OLe        = 1  
        OLn        = 1  
        OLs        = 1  
        exchWidthX = 1  
        exchWidthY = 1  
        myNz       = Nr  
        CALL EXCH_RL( cg3d_r,  
      I             OLw, OLe, OLs, OLn, myNz,  
      I             exchWidthX, exchWidthY,  
      I             FORWARD_SIMULATION, EXCH_IGNORE_CORNERS, myThid )  
452    
453     10 CONTINUE     10 CONTINUE
454     11 CONTINUE     11 CONTINUE

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16

  ViewVC Help
Powered by ViewVC 1.1.22