/[MITgcm]/MITgcm/pkg/generic_advdiff/gad_calc_rhs.F
ViewVC logotype

Diff of /MITgcm/pkg/generic_advdiff/gad_calc_rhs.F

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

revision 1.2 by jmc, Thu Jul 12 00:26:30 2001 UTC revision 1.3 by adcroft, Thu Aug 30 00:40:37 2001 UTC
# Line 7  C $Name$ Line 7  C $Name$
7       I           bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown,       I           bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown,
8       I           xA,yA,uTrans,vTrans,rTrans,maskUp,       I           xA,yA,uTrans,vTrans,rTrans,maskUp,
9       I           diffKh, diffK4, KappaRT, Tracer,       I           diffKh, diffK4, KappaRT, Tracer,
10       I           tracerIdentity,       I           tracerIdentity, advectionScheme,
11       U           fVerT, gTracer,       U           fVerT, gTracer,
12       I           myThid )       I           myThid )
13  C     /==========================================================\  C     /==========================================================\
# Line 37  C     == Routine arguments == Line 37  C     == Routine arguments ==
37        _RL KappaRT(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL KappaRT(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
38        _RL Tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL Tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
39        INTEGER tracerIdentity        INTEGER tracerIdentity
40          INTEGER advectionScheme
41        _RL fVerT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)        _RL fVerT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)
42        _RL gTracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL gTracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
43        INTEGER myThid        INTEGER myThid
# Line 93  C--   Initialize net flux in X direction Line 94  C--   Initialize net flux in X direction
94        ENDDO        ENDDO
95    
96  C-    Advective flux in X  C-    Advective flux in X
97        IF (gad_advection_scheme.EQ.ENUM_CENTERED_2ND) THEN        IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN
98         CALL GAD_C2_ADV_X(bi,bj,k,uTrans,localT,af,myThid)         CALL GAD_C2_ADV_X(bi,bj,k,uTrans,localT,af,myThid)
99        ELSEIF (gad_advection_scheme.EQ.ENUM_FLUX_LIMIT) THEN        ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN
100         CALL GAD_FLUXLIMIT_ADV_X(         CALL GAD_FLUXLIMIT_ADV_X(
101       &      bi,bj,k,deltaTtracer,uTrans,uVel,localT,af,myThid)       &      bi,bj,k,deltaTtracer,uTrans,uVel,localT,af,myThid)
102        ELSEIF (gad_advection_scheme.EQ.ENUM_UPWIND_3RD ) THEN        ELSEIF (advectionScheme.EQ.ENUM_UPWIND_3RD ) THEN
103         CALL GAD_U3_ADV_X(bi,bj,k,uTrans,localT,af,myThid)         CALL GAD_U3_ADV_X(bi,bj,k,uTrans,localT,af,myThid)
104        ELSEIF (gad_advection_scheme.EQ.ENUM_CENTERED_4TH) THEN        ELSEIF (advectionScheme.EQ.ENUM_CENTERED_4TH) THEN
105         CALL GAD_C4_ADV_X(bi,bj,k,uTrans,localT,af,myThid)         CALL GAD_C4_ADV_X(bi,bj,k,uTrans,localT,af,myThid)
106        ELSE        ELSE
107         STOP 'GAD_CALC_RHS: Bad gad_advection_scheme (X)'         STOP 'GAD_CALC_RHS: Bad advectionScheme (X)'
108        ENDIF        ENDIF
109        DO j=jMin,jMax        DO j=jMin,jMax
110         DO i=iMin,iMax         DO i=iMin,iMax
# Line 157  C--   Initialize net flux in Y direction Line 158  C--   Initialize net flux in Y direction
158        ENDDO        ENDDO
159    
160  C-    Advective flux in Y  C-    Advective flux in Y
161        IF (gad_advection_scheme.EQ.ENUM_CENTERED_2ND) THEN        IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN
162         CALL GAD_C2_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)         CALL GAD_C2_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)
163        ELSEIF (gad_advection_scheme.EQ.ENUM_FLUX_LIMIT) THEN        ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN
164         CALL GAD_FLUXLIMIT_ADV_Y(         CALL GAD_FLUXLIMIT_ADV_Y(
165       &       bi,bj,k,deltaTtracer,vTrans,vVel,localT,af,myThid)       &       bi,bj,k,deltaTtracer,vTrans,vVel,localT,af,myThid)
166        ELSEIF (gad_advection_scheme.EQ.ENUM_UPWIND_3RD ) THEN        ELSEIF (advectionScheme.EQ.ENUM_UPWIND_3RD ) THEN
167         CALL GAD_U3_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)         CALL GAD_U3_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)
168        ELSEIF (gad_advection_scheme.EQ.ENUM_CENTERED_4TH) THEN        ELSEIF (advectionScheme.EQ.ENUM_CENTERED_4TH) THEN
169         CALL GAD_C4_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)         CALL GAD_C4_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)
170        ELSE        ELSE
171         STOP 'GAD_CALC_RHS: Bad gad_advection_scheme (Y)'         STOP 'GAD_CALC_RHS: Bad advectionScheme (Y)'
172        ENDIF        ENDIF
173        DO j=1-Oly,sNy+Oly        DO j=1-Oly,sNy+Oly
174         DO i=1-Olx,sNx+Olx         DO i=1-Olx,sNx+Olx
# Line 224  C-    Advective flux in R Line 225  C-    Advective flux in R
225  C     Note: wVel needs to be masked  C     Note: wVel needs to be masked
226        IF (K.GE.2) THEN        IF (K.GE.2) THEN
227  C-    Compute vertical advective flux in the interior:  C-    Compute vertical advective flux in the interior:
228         IF (gad_advection_scheme.EQ.ENUM_CENTERED_2ND) THEN         IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN
229          CALL GAD_C2_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)          CALL GAD_C2_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)
230         ELSEIF (gad_advection_scheme.EQ.ENUM_FLUX_LIMIT) THEN         ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN
231          CALL GAD_FLUXLIMIT_ADV_R(          CALL GAD_FLUXLIMIT_ADV_R(
232       &       bi,bj,k,deltaTtracer,rTrans,wVel,tracer,af,myThid)       &       bi,bj,k,deltaTtracer,rTrans,wVel,tracer,af,myThid)
233         ELSEIF (gad_advection_scheme.EQ.ENUM_UPWIND_3RD ) THEN         ELSEIF (advectionScheme.EQ.ENUM_UPWIND_3RD ) THEN
234          CALL GAD_U3_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)          CALL GAD_U3_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)
235         ELSEIF (gad_advection_scheme.EQ.ENUM_CENTERED_4TH) THEN         ELSEIF (advectionScheme.EQ.ENUM_CENTERED_4TH) THEN
236          CALL GAD_C4_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)          CALL GAD_C4_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)
237  c       CALL GAD_C2_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)  c       CALL GAD_C2_ADV_R(bi,bj,k,rTrans,tracer,af,myThid)
238         ELSE         ELSE
239          STOP 'GAD_CALC_RHS: Bad gad_advection_scheme (R)'          STOP 'GAD_CALC_RHS: Bad advectionScheme (R)'
240         ENDIF         ENDIF
241  C-    Surface "correction" term at k>1 :  C-    Surface "correction" term at k>1 :
242         DO j=1-Oly,sNy+Oly         DO j=1-Oly,sNy+Oly

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22