/[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.23 by adcroft, Wed Dec 9 16:11:52 1998 UTC revision 1.27.2.1 by adcroft, Tue Jan 30 21:02:59 2001 UTC
# Line 20  C     === Global variables === Line 20  C     === Global variables ===
20  #include "GRID.h"  #include "GRID.h"
21  #include "DYNVARS.h"  #include "DYNVARS.h"
22  #include "CG2D.h"  #include "CG2D.h"
23    #ifdef ALLOW_OBCS
24  #include "OBCS.h"  #include "OBCS.h"
25    #endif
26    
27  C     === Routine arguments ===  C     === Routine arguments ===
28  C     myThid - Thread no. that called this routine.  C     myThid - Thread no. that called this routine.
# Line 68  C     aS2d: integral in Z Ay/dY Line 70  C     aS2d: integral in Z Ay/dY
70            ENDDO            ENDDO
71           ENDDO           ENDDO
72          ENDDO          ENDDO
73          IF (openBoundaries) THEN  #ifdef ALLOW_OBCS
74            IF (useOBCS) THEN
75           DO I=1,sNx           DO I=1,sNx
76            IF (OB_Jn(I,bi,bj).NE.0) aS2d(I,OB_Jn(I,bi,bj),bi,bj)=0.            IF (OB_Jn(I,bi,bj).NE.0) aS2d(I,OB_Jn(I,bi,bj),bi,bj)=0.
77            IF (OB_Jn(I,bi,bj).NE.0) aS2d(I,OB_Jn(I,bi,bj)+1,bi,bj)=0.            IF (OB_Jn(I,bi,bj).NE.0) aS2d(I,OB_Jn(I,bi,bj)+1,bi,bj)=0.
# Line 82  C     aS2d: integral in Z Ay/dY Line 85  C     aS2d: integral in Z Ay/dY
85            IF (OB_Iw(J,bi,bj).NE.0) aW2d(OB_Iw(J,bi,bj),J,bi,bj)=0.            IF (OB_Iw(J,bi,bj).NE.0) aW2d(OB_Iw(J,bi,bj),J,bi,bj)=0.
86           ENDDO           ENDDO
87          ENDIF          ENDIF
88    #endif
89          DO J=1,sNy          DO J=1,sNy
90           DO I=1,sNx           DO I=1,sNx
91            myNorm = MAX(ABS(aW2d(I,J,bi,bj)),myNorm)            myNorm = MAX(ABS(aW2d(I,J,bi,bj)),myNorm)
# Line 90  C     aS2d: integral in Z Ay/dY Line 94  C     aS2d: integral in Z Ay/dY
94          ENDDO          ENDDO
95         ENDDO         ENDDO
96        ENDDO        ENDDO
97        cg2dNbuf(1,myThid) = myNorm        _GLOBAL_MAX_R4( myNorm, myThid )
98        _GLOBAL_MAX_R4( cg2dNbuf, myNorm, myThid )        IF ( myNorm .NE. 0. _d 0 ) THEN
99        IF ( cg2dNbuf(1,1) .NE. 0. _d 0 ) THEN         myNorm = 1. _d 0/myNorm
        myNorm = 1. _d 0/cg2dNbuf(1,1)  
100        ELSE        ELSE
101         myNorm = 1. _d 0         myNorm = 1. _d 0
102        ENDIF        ENDIF
# Line 126  CcnhDebugEnds Line 129  CcnhDebugEnds
129        _EXCH_XY_R4(aW2d, myThid)        _EXCH_XY_R4(aW2d, myThid)
130        _EXCH_XY_R4(aS2d, myThid)        _EXCH_XY_R4(aS2d, myThid)
131  CcnhDebugStarts  CcnhDebugStarts
132        CALL PLOT_FIELD_XYRS( aW2d, 'AW2D INI_CG2D.2' , 1, myThid )  C     CALL PLOT_FIELD_XYRS( aW2d, 'AW2D INI_CG2D.2' , 1, myThid )
133        CALL PLOT_FIELD_XYRS( aS2d, 'AS2D INI_CG2D.2' , 1, myThid )  C     CALL PLOT_FIELD_XYRS( aS2d, 'AS2D INI_CG2D.2' , 1, myThid )
134  CcnhDebugEnds  CcnhDebugEnds
135    
136  C--   Initialise preconditioner  C--   Initialise preconditioner
# Line 151  C           defaults to 0.51 but can be Line 154  C           defaults to 0.51 but can be
154            pC(I,J,bi,bj) = 1. _d 0            pC(I,J,bi,bj) = 1. _d 0
155            aC = -(            aC = -(
156       &     aW2d(I,J,bi,bj) + aW2d(I+1,J  ,bi,bj)       &     aW2d(I,J,bi,bj) + aW2d(I+1,J  ,bi,bj)
157       &    +aS2d(I,J,bi,bj) + aS2D(I  ,J+1,bi,bj)       &    +aS2d(I,J,bi,bj) + aS2d(I  ,J+1,bi,bj)
158       &    +freeSurfFac*myNorm* horiVertRatio*       &    +freeSurfFac*myNorm* horiVertRatio*
159       &     rA(I,J,bi,bj)/deltaTMom/deltaTMom       &     rA(I,J,bi,bj)/deltaTMom/deltaTMom
160       &    )       &    )
# Line 168  C           defaults to 0.51 but can be Line 171  C           defaults to 0.51 but can be
171       &     rA(I-1,J,bi,bj)/deltaTMom/deltaTMom       &     rA(I-1,J,bi,bj)/deltaTMom/deltaTMom
172       &    )       &    )
173            IF ( aC .EQ. 0. ) THEN            IF ( aC .EQ. 0. ) THEN
174              pC(I,J,bi,bj) = 0. _d 0              pC(I,J,bi,bj) = 1. _d 0
175            ELSE            ELSE
176             pC(I,J,bi,bj) =  1. _d 0 / aC             pC(I,J,bi,bj) =  1. _d 0 / aC
177            ENDIF            ENDIF
# Line 196  C--   Update overlap regions Line 199  C--   Update overlap regions
199        _EXCH_XY_R4(pW, myThid)        _EXCH_XY_R4(pW, myThid)
200        _EXCH_XY_R4(pS, myThid)        _EXCH_XY_R4(pS, myThid)
201  CcnhDebugStarts  CcnhDebugStarts
202        CALL PLOT_FIELD_XYRS( pC, 'pC   INI_CG2D.2' , 1, myThid )  C     CALL PLOT_FIELD_XYRS( pC, 'pC   INI_CG2D.2' , 1, myThid )
203        CALL PLOT_FIELD_XYRS( pW, 'pW   INI_CG2D.2' , 1, myThid )  C     CALL PLOT_FIELD_XYRS( pW, 'pW   INI_CG2D.2' , 1, myThid )
204        CALL PLOT_FIELD_XYRS( pS, 'pS   INI_CG2D.2' , 1, myThid )  C     CALL PLOT_FIELD_XYRS( pS, 'pS   INI_CG2D.2' , 1, myThid )
205  CcnhDebugEnds  CcnhDebugEnds
206    
207  C--   Set default values for initial guess and RHS  C--   Set default values for initial guess and RHS

Legend:
Removed from v.1.23  
changed lines
  Added in v.1.27.2.1

  ViewVC Help
Powered by ViewVC 1.1.22