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

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

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

revision 1.15 by cnh, Thu Jun 25 20:43:23 1998 UTC revision 1.19 by cnh, Sun Sep 6 17:35:20 1998 UTC
# Line 52  C     aS2d: integral in Z Ay/dY Line 52  C     aS2d: integral in Z Ay/dY
52            aS2d(I,J,bi,bj) = 0. _d 0            aS2d(I,J,bi,bj) = 0. _d 0
53           ENDDO           ENDDO
54          ENDDO          ENDDO
55          DO K=1,Nz          DO K=1,Nr
56           DO J=1,sNy           DO J=1,sNy
57            DO I=1,sNx            DO I=1,sNx
58             faceArea = _dyG(I,J,bi,bj)*dzF(K)*_hFacW(I,J,K,bi,bj)             faceArea = _dyG(I,J,bi,bj)*drF(K)*_hFacW(I,J,K,bi,bj)
59             aW2d(I,J,bi,bj) = aW2d(I,J,bi,bj) +             aW2d(I,J,bi,bj) = aW2d(I,J,bi,bj) +
60       &      gBaro*faceArea*_rdxC(I,J,bi,bj)       &      gBaro*faceArea*recip_dxC(I,J,bi,bj)
61             faceArea = _dxG(I,J,bi,bj)*dzF(K)*_hFacS(I,J,K,bi,bj)             faceArea = _dxG(I,J,bi,bj)*drF(K)*_hFacS(I,J,K,bi,bj)
62             aS2d(I,J,bi,bj) = aS2d(I,J,bi,bj) +             aS2d(I,J,bi,bj) = aS2d(I,J,bi,bj) +
63       &      gBaro*faceArea*_rdyC(I,J,bi,bj)       &      gBaro*faceArea*recip_dyC(I,J,bi,bj)
64            ENDDO            ENDDO
65           ENDDO           ENDDO
66          ENDDO          ENDDO
# Line 73  C     aS2d: integral in Z Ay/dY Line 73  C     aS2d: integral in Z Ay/dY
73         ENDDO         ENDDO
74        ENDDO        ENDDO
75        cg2dNbuf(1,myThid) = myNorm        cg2dNbuf(1,myThid) = myNorm
76        _GLOBAL_MAX_R8( cg2dNbuf, myNorm, myThid )        _GLOBAL_MAX_R4( cg2dNbuf, myNorm, myThid )
77        IF ( cg2dNbuf(1,1) .NE. 0. _d 0 ) THEN        IF ( cg2dNbuf(1,1) .NE. 0. _d 0 ) THEN
78         myNorm = 1. _d 0/cg2dNbuf(1,1)         myNorm = 1. _d 0/cg2dNbuf(1,1)
79        ELSE        ELSE
# Line 82  C     aS2d: integral in Z Ay/dY Line 82  C     aS2d: integral in Z Ay/dY
82         cg2dNorm = myNorm         cg2dNorm = myNorm
83        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
84  CcnhDebugStarts  CcnhDebugStarts
85         WRITE(msgBuf,'(A,F)') '// CG2D normalisation factor = ', cg2dNorm         WRITE(msgBuf,'(A,E40.25)') '// CG2D normalisation factor = ', cg2dNorm
86         CALL PRINT_MESSAGE( msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)         CALL PRINT_MESSAGE( msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
87         WRITE(msgBuf,*) '                               '         WRITE(msgBuf,*) '                               '
88         CALL PRINT_MESSAGE( msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)         CALL PRINT_MESSAGE( msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
# Line 107  CcnhDebugEnds Line 107  CcnhDebugEnds
107        _EXCH_XY_R4(aW2d, myThid)        _EXCH_XY_R4(aW2d, myThid)
108        _EXCH_XY_R4(aS2d, myThid)        _EXCH_XY_R4(aS2d, myThid)
109  CcnhDebugStarts  CcnhDebugStarts
110  C     CALL PLOT_FIELD_XYRS( aW2d, 'AW2D INI_CG2D.2' , 1, myThid )        CALL PLOT_FIELD_XYRS( aW2d, 'AW2D INI_CG2D.2' , 1, myThid )
111  C     CALL PLOT_FIELD_XYRS( aS2d, 'AS2D INI_CG2D.2' , 1, myThid )        CALL PLOT_FIELD_XYRS( aS2d, 'AS2D INI_CG2D.2' , 1, myThid )
112  CcnhDebugEnds  CcnhDebugEnds
113    
114  C--   Initialise preconditioner  C--   Initialise preconditioner
# Line 133  C           defaults to 0.51 but can be Line 133  C           defaults to 0.51 but can be
133            aC = -(            aC = -(
134       &     aW2d(I,J,bi,bj) + aW2d(I+1,J  ,bi,bj)       &     aW2d(I,J,bi,bj) + aW2d(I+1,J  ,bi,bj)
135       &    +aS2d(I,J,bi,bj) + aS2D(I  ,J+1,bi,bj)       &    +aS2d(I,J,bi,bj) + aS2D(I  ,J+1,bi,bj)
136       &    +freeSurfFac*myNorm*       &    +freeSurfFac*myNorm* horiVertRatio*
137       &     zA(I,J,bi,bj)/deltaTMom/deltaTMom       &     rA(I,J,bi,bj)/deltaTMom/deltaTMom
138       &    )       &    )
139            aCs = -(            aCs = -(
140       &     aW2d(I,J-1,bi,bj) + aW2d(I+1,J-1,bi,bj)       &     aW2d(I,J-1,bi,bj) + aW2d(I+1,J-1,bi,bj)
141       &    +aS2d(I,J-1,bi,bj) + aS2d(I  ,J  ,bi,bj)       &    +aS2d(I,J-1,bi,bj) + aS2d(I  ,J  ,bi,bj)
142       &    +freeSurfFac*myNorm*       &    +freeSurfFac*myNorm* horiVertRatio*
143       &     zA(I,J-1,bi,bj)/deltaTMom/deltaTMom       &     rA(I,J-1,bi,bj)/deltaTMom/deltaTMom
144       &    )       &    )
145            aCw = -(            aCw = -(
146       &     aW2d(I-1,J,bi,bj) + aW2d(I  ,J  ,bi,bj)       &     aW2d(I-1,J,bi,bj) + aW2d(I  ,J  ,bi,bj)
147       &    +aS2d(I-1,J,bi,bj) + aS2d(I-1,J+1,bi,bj)       &    +aS2d(I-1,J,bi,bj) + aS2d(I-1,J+1,bi,bj)
148       &    +freeSurfFac*myNorm*       &    +freeSurfFac*myNorm* horiVertRatio*
149       &     zA(I-1,J,bi,bj)/deltaTMom/deltaTMom       &     rA(I-1,J,bi,bj)/deltaTMom/deltaTMom
150       &    )       &    )
151            IF ( aC .EQ. 0. ) THEN            IF ( aC .EQ. 0. ) THEN
152              pC(I,J,bi,bj) = 0. _d 0              pC(I,J,bi,bj) = 0. _d 0
# Line 176  C--   Update overlap regions Line 176  C--   Update overlap regions
176        _EXCH_XY_R4(pC, myThid)        _EXCH_XY_R4(pC, myThid)
177        _EXCH_XY_R4(pW, myThid)        _EXCH_XY_R4(pW, myThid)
178        _EXCH_XY_R4(pS, myThid)        _EXCH_XY_R4(pS, myThid)
179    CcnhDebugStarts
180          CALL PLOT_FIELD_XYRS( pC, 'pC   INI_CG2D.2' , 1, myThid )
181          CALL PLOT_FIELD_XYRS( pW, 'pW   INI_CG2D.2' , 1, myThid )
182          CALL PLOT_FIELD_XYRS( pS, 'pS   INI_CG2D.2' , 1, myThid )
183    CcnhDebugEnds
184    
185  C--   Set default values for initial guess and RHS  C--   Set default values for initial guess and RHS
186        IF ( startTime .EQ. 0 ) THEN        IF ( startTime .EQ. 0 ) THEN

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

  ViewVC Help
Powered by ViewVC 1.1.22