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

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

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

revision 1.25 by adcroft, Tue Jul 31 15:01:33 2001 UTC revision 1.26 by jmc, Mon Aug 27 18:48:57 2001 UTC
# Line 18  C     == Global variables == Line 18  C     == Global variables ==
18  #include "EEPARAMS.h"  #include "EEPARAMS.h"
19  #include "PARAMS.h"  #include "PARAMS.h"
20  #include "GRID.h"  #include "GRID.h"
21    #include "SURFACE.h"
22    
23  C     == Routine Arguments ==  C     == Routine Arguments ==
24  C     phiHyd    - Hydrostatic Potential (ocean: pressure/rho)  C     phiHyd    - Hydrostatic Potential (ocean: pressure/rho)
# Line 35  C     == Local variables == Line 36  C     == Local variables ==
36        INTEGER i,j        INTEGER i,j
37        _RL ab15,ab05        _RL ab15,ab05
38        _RL phxFac,phyFac, psFac        _RL phxFac,phyFac, psFac
39          _RL     gUtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
40          _RL     gVtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
41    
42  C     Adams-Bashforth timestepping weights  C     Adams-Bashforth timestepping weights
43        IF (myIter .EQ. 0) THEN        IF (myIter .EQ. 0) THEN
# Line 45  C     Adams-Bashforth timestepping weigh Line 48  C     Adams-Bashforth timestepping weigh
48         ab05=-0.5-abeps         ab05=-0.5-abeps
49        ENDIF        ENDIF
50    
51    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
52    C-    Compute effective gU term (including Adams-Bashforth weights) :
53          DO j=jMin,jMax
54           DO i=iMin,iMax
55            gUtmp(i,j) = ab15*gU(i,j,k,bi,bj)
56         &             + ab05*gUNm1(i,j,k,bi,bj)  
57    #ifdef INCLUDE_CD_CODE
58         &             + guCD(i,j,k,bi,bj)
59    #endif
60           ENDDO
61          ENDDO
62          
63    #ifdef NONLIN_FRSURF
64          IF (.NOT. vectorInvariantMomentum
65         &    .AND. nonlinFreeSurf.GT.1) THEN
66           DO j=jMin,jMax
67            DO i=iMin,iMax
68             IF ( k.EQ.ksurfW(i,j,bi,bj) ) THEN
69               gUtmp(i,j) = gUtmp(i,j)
70         &         *hFacW(i,j,k,bi,bj)/hFac_surfW(i,j,bi,bj)
71             ENDIF
72            ENDDO
73           ENDDO
74          ENDIF
75    #endif
76    
77  C     Step forward zonal velocity (store in Gu)  C     Step forward zonal velocity (store in Gu)
78        psFac = pfFacMom*(1. _d 0 - implicSurfPress)        psFac = pfFacMom*(1. _d 0 - implicSurfPress)
79        DO j=jMin,jMax        DO j=jMin,jMax
80          DO i=iMin,iMax          DO i=iMin,iMax
81            gUNm1(i,j,k,bi,bj)=uVel(i,j,k,bi,bj) + deltaTmom * (            gUNm1(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)
82       &       ab15*gU(i,j,k,bi,bj)+ab05*gUNm1(i,j,k,bi,bj)       &     +deltaTmom*(
83       &     - psFac*phiSurfX(i,j)       &         gUtmp(i,j)
84  #ifdef INCLUDE_CD_CODE       &       - psFac*phiSurfX(i,j)
      &     + guCD(i,j,k,bi,bj)  
 #endif  
85       &        )*_maskW(i,j,k,bi,bj)       &        )*_maskW(i,j,k,bi,bj)
86          ENDDO          ENDDO
87        ENDDO        ENDDO
# Line 72  C--   -grad Phi_Hyd has not been incorpo Line 99  C--   -grad Phi_Hyd has not been incorpo
99          ENDDO          ENDDO
100        ENDIF        ENDIF
101    
102    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
103    C-    Compute effective gV term (including Adams-Bashforth weights) :
104          DO j=jMin,jMax
105           DO i=iMin,iMax
106            gVtmp(i,j) = ab15*gV(i,j,k,bi,bj)
107         &             + ab05*gVNm1(i,j,k,bi,bj)  
108    #ifdef INCLUDE_CD_CODE
109         &             + gvCD(i,j,k,bi,bj)
110    #endif
111           ENDDO
112          ENDDO
113          
114    #ifdef NONLIN_FRSURF
115          IF (.NOT. vectorInvariantMomentum
116         &    .AND. nonlinFreeSurf.GT.1) THEN
117           DO j=jMin,jMax
118            DO i=iMin,iMax
119             IF ( k.EQ.ksurfS(i,j,bi,bj) ) THEN
120               gVtmp(i,j) = gVtmp(i,j)
121         &         *hFacS(i,j,k,bi,bj)/hFac_surfS(i,j,bi,bj)
122             ENDIF
123            ENDDO
124           ENDDO
125          ENDIF
126    #endif
127    
128  C     Step forward meridional velocity (store in Gv)  C     Step forward meridional velocity (store in Gv)
129        psFac = pfFacMom*(1. _d 0 - implicSurfPress)        psFac = pfFacMom*(1. _d 0 - implicSurfPress)
130        DO j=jMin,jMax        DO j=jMin,jMax
131          DO i=iMin,iMax          DO i=iMin,iMax
132            gVNm1(i,j,k,bi,bj)=vVel(i,j,k,bi,bj) + deltaTmom * (            gVNm1(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)
133       &       ab15*gV(i,j,k,bi,bj)+ab05*gVNm1(i,j,k,bi,bj)       &     +deltaTmom*(
134       &     - psFac*phiSurfY(i,j)       &         gVtmp(i,j)
135  #ifdef INCLUDE_CD_CODE       &       - psFac*phiSurfY(i,j)
      &     + gvCD(i,j,k,bi,bj)  
 #endif  
136       &        )*_maskS(i,j,k,bi,bj)       &        )*_maskS(i,j,k,bi,bj)
137          ENDDO          ENDDO
138        ENDDO        ENDDO

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26

  ViewVC Help
Powered by ViewVC 1.1.22