/[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.18 by heimbach, Mon Sep 11 20:53:25 2000 UTC revision 1.19 by adcroft, Fri Feb 2 21:04:48 2001 UTC
# Line 7  C     | S/R TIMESTEP Line 7  C     | S/R TIMESTEP
7  C     | o Step model fields forward in time                      |  C     | o Step model fields forward in time                      |
8  C     \==========================================================/  C     \==========================================================/
9        SUBROUTINE TIMESTEP( bi, bj, iMin, iMax, jMin, jMax,        SUBROUTINE TIMESTEP( bi, bj, iMin, iMax, jMin, jMax,
10       I                     K,       I                     K, phiHyd,
11       I                     myIter, myThid )       I                     myIter, myThid )
12        implicit none        implicit none
13    
# Line 19  C     == Global variables == Line 19  C     == Global variables ==
19  #include "GRID.h"  #include "GRID.h"
20    
21  C     == Routine Arguments ==  C     == Routine Arguments ==
22    C     phiHyd - Hydrostatic pressure (ocean) or geopotentiel (atmos)
23        INTEGER bi,bj,iMin,iMax,jMin,jMax        INTEGER bi,bj,iMin,iMax,jMin,jMax
24        INTEGER K        INTEGER K
25          _RL     phiHyd(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
26        INTEGER myIter, myThid        INTEGER myIter, myThid
27    
28  C     == Local variables ==  C     == Local variables ==
29        INTEGER i,j        INTEGER i,j
30        _RL ab15,ab05        _RL ab15,ab05
31          _RL phxFac,phyFac
32    
33  C     Adams-Bashforth timestepping weights  C     Adams-Bashforth timestepping weights
34  Caja  IF (myIter .EQ. 0) THEN  Caja  IF (myIter .EQ. 0) THEN
# Line 37  Caja  ELSE Line 40  Caja  ELSE
40  Caja  ENDIF  Caja  ENDIF
41    
42  C     Step forward zonal velocity (store in Gu)  C     Step forward zonal velocity (store in Gu)
43         DO j=jMin,jMax        DO j=jMin,jMax
44          DO i=iMin,iMax          DO i=iMin,iMax
45           gUNm1(i,j,k,bi,bj)=uVel(i,j,k,bi,bj)            gUNm1(i,j,k,bi,bj)=uVel(i,j,k,bi,bj)
46       &    +deltaTmom*(ab15*gU(i,j,k,bi,bj)+ab05*gUNm1(i,j,k,bi,bj)       &    +deltaTmom*(ab15*gU(i,j,k,bi,bj)+ab05*gUNm1(i,j,k,bi,bj)
47  #ifdef INCLUDE_CD_CODE  #ifdef INCLUDE_CD_CODE
48       &    +guCD(i,j,k,bi,bj)       &    +guCD(i,j,k,bi,bj)
49  #endif  #endif
50       &        )*_maskW(i,j,k,bi,bj)       &        )*_maskW(i,j,k,bi,bj)
51          ENDDO          ENDDO
52         ENDDO        ENDDO
53    
54          IF (staggerTimeStep) THEN
55    C--   -grad Phi_Hyd has not been incorporated to gU and is added here:
56            phxFac = pfFacMom*deltaTmom*recip_rhoConst
57            DO j=jMin,jMax
58              DO i=iMin,iMax
59                gUNm1(i,j,k,bi,bj)=gUNm1(i,j,k,bi,bj)
60         &       - _recip_dxC(i,j,bi,bj)
61         &         *(phiHyd(i,j,k)-phiHyd(i-1,j,k))*phxFac
62         &         *_maskW(i,j,k,bi,bj)
63              ENDDO
64            ENDDO
65          ENDIF
66    
67  C     Step forward meridional velocity (store in Gv)  C     Step forward meridional velocity (store in Gv)
68         DO j=jMin,jMax        DO j=jMin,jMax
69          DO i=iMin,iMax          DO i=iMin,iMax
70           gVNm1(i,j,k,bi,bj)=vVel(i,j,k,bi,bj)            gVNm1(i,j,k,bi,bj)=vVel(i,j,k,bi,bj)
71       &    +deltaTmom*(ab15*gV(i,j,k,bi,bj)+ab05*gVNm1(i,j,k,bi,bj)       &    +deltaTmom*(ab15*gV(i,j,k,bi,bj)+ab05*gVNm1(i,j,k,bi,bj)
72  #ifdef INCLUDE_CD_CODE  #ifdef INCLUDE_CD_CODE
73       &    +gvCD(i,j,k,bi,bj)       &    +gvCD(i,j,k,bi,bj)
74  #endif  #endif
75       &        )*_maskS(i,j,k,bi,bj)       &        )*_maskS(i,j,k,bi,bj)
76          ENDDO          ENDDO
77         ENDDO        ENDDO
   
 C     Step forward temperature  
       IF (tempStepping) THEN  
        DO j=jMin,jMax  
         DO i=iMin,iMax  
          gTNm1(i,j,k,bi,bj)=theta(i,j,k,bi,bj)  
      &    +deltaTtracer*(ab15*gT(i,j,k,bi,bj)+ab05*gTNm1(i,j,k,bi,bj))  
         ENDDO  
        ENDDO  
       ENDIF  
78    
79  C     Step forward salt        IF (staggerTimeStep) THEN
80        IF (saltStepping) THEN  C--   -grad Phi_Hyd has not been incorporated to gV and is added here:
81         DO j=jMin,jMax          phyFac = pfFacMom*deltaTmom*recip_rhoConst
82          DO i=iMin,iMax          DO j=jMin,jMax
83           gSNm1(i,j,k,bi,bj)=salt(i,j,k,bi,bj)            DO i=iMin,iMax
84       &    +deltaTtracer*(ab15*gS(i,j,k,bi,bj)+ab05*gSNm1(i,j,k,bi,bj))              gVNm1(i,j,k,bi,bj)=gVNm1(i,j,k,bi,bj)
85         &       - _recip_dyC(i,j,bi,bj)
86         &         *(phiHyd(i,j,k)-phiHyd(i,j-1,k))*phyFac                      
87         &         *_maskS(i,j,k,bi,bj)
88              ENDDO
89          ENDDO          ENDDO
        ENDDO  
90        ENDIF        ENDIF
91    
92        RETURN        RETURN

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

  ViewVC Help
Powered by ViewVC 1.1.22