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

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

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

revision 1.10 by cnh, Fri Nov 6 22:44:45 1998 UTC revision 1.16 by jmc, Tue Mar 6 17:10:29 2001 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2    C $Name$
3    
4  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
5    
# Line 11  C     \================================= Line 12  C     \=================================
12       I                       K, etaSurfX, etaSurfY,       I                       K, etaSurfX, etaSurfY,
13       I                       myCurrentTime, myThid )       I                       myCurrentTime, myThid )
14        IMPLICIT NONE        IMPLICIT NONE
15  ! Common  
16    C     == Global variables ==
17  #include "SIZE.h"  #include "SIZE.h"
18  #include "DYNVARS.h"  #include "DYNVARS.h"
19  #include "EEPARAMS.h"  #include "EEPARAMS.h"
20  #include "PARAMS.h"  #include "PARAMS.h"
21  #include "GRID.h"  #include "GRID.h"
22  #include "CG2D.h"  #ifdef ALLOW_NONHYDROSTATIC
23    #include "CG3D.h"
24    #endif
25  C     == Routine Arguments ==  C     == Routine Arguments ==
26  C     etaSurfX, etaSurfY           - Surface slope  C     etaSurfX, etaSurfY           - Surface slope
27  C     bi,bj,iMin,iMax,jMin,jMax, K - Loop counters  C     bi,bj,iMin,iMax,jMin,jMax, K - Loop counters
# Line 33  C     myCurrentTime                - Cur Line 37  C     myCurrentTime                - Cur
37    
38  C     == Local variables ==  C     == Local variables ==
39        INTEGER i,j        INTEGER i,j
40        _RL hxFac,hyFac,rRhoNil        _RL hxFac,hyFac
41          _RL hx3dFac,hy3dFac
42    
43  C     On/off scaling paramters  C     On/off scaling paramters
44        hxFac = pfFacMom        hxFac = pfFacMom
45        hyFac = pfFacMom        hyFac = pfFacMom
46          IF ( nonHydrostatic ) THEN
47            hx3dFac = pfFacMom
48            hy3dFac = pfFacMom
49          ELSE
50            hx3dFac = 0.
51            hy3dFac = 0.
52          ENDIF
53    
54  C     Step forward zonal velocity  C     Step forward zonal velocity
55        DO j=jMin,jMax        DO j=jMin,jMax
56         DO i=iMin,iMax         DO i=iMin,iMax
57          uVel(i,j,k,bi,bj)=( gUNm1(i,j,k,bi,bj)          uVel(i,j,k,bi,bj)=( gUNm1(i,j,k,bi,bj)
58       &       -deltaTmom*hxFac*gBaro*etaSurfX(i,j)       &       -deltaTmom*hxFac*gBaro*implicSurfPress*etaSurfX(i,j)
59    #ifdef ALLOW_NONHYDROSTATIC
60         &       -deltaTmom*hx3dFac*gravity*_recip_dxC(i,j,bi,bj)*
61         &          (cg3d_x(i,j,k,bi,bj)-cg3d_x(i-1,j,k,bi,bj))
62    #endif
63       &                    )*_maskW(i,j,k,bi,bj)       &                    )*_maskW(i,j,k,bi,bj)
64          gUNm1(i,j,k,bi,bj)=gU(i,j,k,bi,bj)          gUNm1(i,j,k,bi,bj)=gU(i,j,k,bi,bj)
65         ENDDO         ENDDO
# Line 53  C     Step forward meridional velocity Line 69  C     Step forward meridional velocity
69        DO j=jMin,jMax        DO j=jMin,jMax
70         DO i=iMin,iMax         DO i=iMin,iMax
71          vVel(i,j,k,bi,bj)=( gVNm1(i,j,k,bi,bj)          vVel(i,j,k,bi,bj)=( gVNm1(i,j,k,bi,bj)
72       &       -deltaTmom*hyFac*gBaro*etaSurfY(i,j)       &       -deltaTmom*hyFac*gBaro*implicSurfPress*etaSurfY(i,j)
73    #ifdef ALLOW_NONHYDROSTATIC
74         &       -deltaTmom*hy3dFac*gravity*_recip_dyC(i,j,bi,bj)*
75         &          (cg3d_x(i,j,k,bi,bj)-cg3d_x(i,j-1,k,bi,bj))
76    #endif
77       &                    )*_maskS(i,j,k,bi,bj)       &                    )*_maskS(i,j,k,bi,bj)
78          gVNm1(i,j,k,bi,bj)=gV(i,j,k,bi,bj)          gVNm1(i,j,k,bi,bj)=gV(i,j,k,bi,bj)
79         ENDDO         ENDDO
80        ENDDO        ENDDO
81    
 C     Rotate theta/gT/gTnm1  
       IF ( tempStepping ) THEN  
        DO j=jMin,jMax  
         DO i=iMin,iMax  
          theta(i,j,k,bi,bj)=gTNm1(i,j,k,bi,bj)  
          gTNm1(i,j,k,bi,bj)=gT(i,j,k,bi,bj)  
         ENDDO  
        ENDDO  
       ENDIF  
   
 C     Rotate salt/gS/gSnm1  
       IF ( saltStepping ) THEN  
        DO j=jMin,jMax  
         DO i=iMin,iMax  
          salt(i,j,k,bi,bj)=gSNm1(i,j,k,bi,bj)  
          gSNm1(i,j,k,bi,bj)=gS(i,j,k,bi,bj)  
         ENDDO  
        ENDDO  
       ENDIF  
   
82        RETURN        RETURN
83        END        END

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.16

  ViewVC Help
Powered by ViewVC 1.1.22