/[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.4 by adcroft, Thu Apr 30 14:03:29 1998 UTC revision 1.14 by cnh, Wed Sep 9 15:04:44 1998 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2    
3  #include "CPP_EEOPTIONS.h"  #include "CPP_OPTIONS.h"
4    
5  C     /==========================================================\  C     /==========================================================\
6  C     | S/R TIMESTEP                                             |  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, pSurfX, pSurfY,       I                     K,
11       I                     myThid )       I                     myThid )
12        implicit none        implicit none
13  ! Common  ! Common
14  #include "SIZE.h"  #include "SIZE.h"
15  #include "DYNVARS.h"  #include "DYNVARS.h"
16    #include "EEPARAMS.h"
17  #include "PARAMS.h"  #include "PARAMS.h"
18  #include "GRID.h"  #include "GRID.h"
 #include "EEPARAMS.h"  
 #include "CG2D.h"  
19  C     == Routine Arguments ==  C     == Routine Arguments ==
20        INTEGER bi,bj,iMin,iMax,jMin,jMax        INTEGER bi,bj,iMin,iMax,jMin,jMax
21        INTEGER K        INTEGER K
       _RL  pSurfX(1-OLx:sNx+OLx,1-OLy:sNy+OLy)  
       _RL  pSurfY(1-OLx:sNx+OLx,1-OLy:sNy+OLy)  
22        INTEGER myThid        INTEGER myThid
23  C     == Local variables ==  C     == Local variables ==
24        INTEGER i,j        INTEGER i,j
25        REAL ab15,ab05        _RL ab15,ab05
26    
27  C     Adams-Bashforth timestepping weights  C     Adams-Bashforth timestepping weights
28        ab15=1.5+abeps        ab15=1.5+abeps
29        ab05=-0.5-abeps        ab05=-0.5-abeps
30    
31  C     Step forward zonal velocity  C     Step forward zonal velocity (store in Gu)
32         DO j=jMin,jMax         DO j=jMin,jMax
33          DO i=iMin,iMax          DO i=iMin,iMax
34           uVel(i,j,k,bi,bj)=uVel(i,j,k,bi,bj)           gUNm1(i,j,k,bi,bj)=uVel(i,j,k,bi,bj)
35       &    +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)
36       &                -pSurfX(i,j)/rhonil  #ifdef ALLOW_CD
37       &    )*maskW(i,j,k,bi,bj)       &    +guCD(i,j,k,bi,bj)
38           gUNm1(i,j,k,bi,bj)=gU(i,j,k,bi,bj)  #endif
39         &        )*_maskW(i,j,k,bi,bj)
40          ENDDO          ENDDO
41         ENDDO         ENDDO
42  C     Step forward meridional velocity  
43    C     Step forward meridional velocity (store in Gv)
44         DO j=jMin,jMax         DO j=jMin,jMax
45          DO i=iMin,iMax          DO i=iMin,iMax
46           vVel(i,j,k,bi,bj)=vVel(i,j,k,bi,bj)           gVNm1(i,j,k,bi,bj)=vVel(i,j,k,bi,bj)
47       &    +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)
48       &                -pSurfY(i,j)/rhonil  #ifdef ALLOW_CD
49       &               )*maskS(i,j,k,bi,bj)       &    +gvCD(i,j,k,bi,bj)
50           gVNm1(i,j,k,bi,bj)=gV(i,j,k,bi,bj)  #endif
51         &        )*_maskS(i,j,k,bi,bj)
52          ENDDO          ENDDO
53         ENDDO         ENDDO
54    
55  C     Step forward temperature  C     Step forward temperature
56          IF (tempStepping) THEN
57         DO j=jMin,jMax         DO j=jMin,jMax
58          DO i=iMin,iMax          DO i=iMin,iMax
59           theta(i,j,k,bi,bj)=theta(i,j,k,bi,bj)           gTNm1(i,j,k,bi,bj)=theta(i,j,k,bi,bj)
60       &    +deltaTtracer*(ab15*gT(i,j,k,bi,bj)+ab05*gTNm1(i,j,k,bi,bj))       &    +deltaTtracer*(ab15*gT(i,j,k,bi,bj)+ab05*gTNm1(i,j,k,bi,bj))
          gTNm1(i,j,k,bi,bj)=gT(i,j,k,bi,bj)  
61          ENDDO          ENDDO
62         ENDDO         ENDDO
63          ENDIF
64    
65        _BARRIER  C     Step forward salt
66  C     CALL PLOT_FIELD_XYZR8( uVel, 'TIEMSTEP.1 uVel',Nz,1,myThid)        IF (saltStepping) THEN
67  C     CALL PLOT_FIELD_XYZR8( vVel, 'TIEMSTEP.1 vVel',Nz,1,myThid)         DO j=jMin,jMax
68  C     CALL PLOT_FIELD_XYZR8( theta, 'TIEMSTEP.1 theta',Nz,1,myThid)          DO i=iMin,iMax
69             gSNm1(i,j,k,bi,bj)=salt(i,j,k,bi,bj)
70    C    &    +deltaTtracer*(ab15*gS(i,j,k,bi,bj)+ab05*gSNm1(i,j,k,bi,bj))
71            ENDDO
72           ENDDO
73          ENDIF
74    
75        RETURN        RETURN
76        END        END

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.22