/[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.13 by heimbach, Sun Mar 24 02:12:50 2002 UTC revision 1.14 by jmc, Sat Jun 15 03:31:17 2002 UTC
# Line 11  C !INTERFACE: ========================== Line 11  C !INTERFACE: ==========================
11       I           bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown,       I           bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown,
12       I           xA,yA,uTrans,vTrans,rTrans,maskUp,       I           xA,yA,uTrans,vTrans,rTrans,maskUp,
13       I           diffKh, diffK4, KappaRT, Tracer,       I           diffKh, diffK4, KappaRT, Tracer,
14       I           tracerIdentity, advectionScheme,       I           tracerIdentity, advectionScheme, calcAdvection,
15       U           fVerT, gTracer,       U           fVerT, gTracer,
16       I           myThid )       I           myThid )
17    
# Line 63  C  KappaRT              :: 3-D array for Line 63  C  KappaRT              :: 3-D array for
63  C  Tracer               :: tracer field  C  Tracer               :: tracer field
64  C  tracerIdentity       :: identifier for the tracer (required only for KPP)  C  tracerIdentity       :: identifier for the tracer (required only for KPP)
65  C  advectionScheme      :: advection scheme to use  C  advectionScheme      :: advection scheme to use
66    C  calcAdvection        :: =False if Advec terms computed with multiDim scheme
67  C  myThid               :: thread number  C  myThid               :: thread number
68        INTEGER bi,bj,iMin,iMax,jMin,jMax        INTEGER bi,bj,iMin,iMax,jMin,jMax
69        INTEGER k,kUp,kDown,kM1        INTEGER k,kUp,kDown,kM1
# Line 77  C  myThid               :: thread number Line 78  C  myThid               :: thread number
78        _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)
79        INTEGER tracerIdentity        INTEGER tracerIdentity
80        INTEGER advectionScheme        INTEGER advectionScheme
81          LOGICAL calcAdvection
82        INTEGER myThid        INTEGER myThid
83    
84  C !OUTPUT PARAMETERS: ==================================================  C !OUTPUT PARAMETERS: ==================================================
# Line 128  C--   Make local copy of tracer array Line 130  C--   Make local copy of tracer array
130    
131  C--   Unless we have already calculated the advection terms we initialize  C--   Unless we have already calculated the advection terms we initialize
132  C     the tendency to zero.  C     the tendency to zero.
133        IF (.NOT. multiDimAdvection .OR.        IF (calcAdvection) THEN
      &    advectionScheme.EQ.ENUM_CENTERED_2ND .OR.  
      &    advectionScheme.EQ.ENUM_UPWIND_3RD .OR.  
      &    advectionScheme.EQ.ENUM_CENTERED_4TH ) THEN  
134         DO j=1-Oly,sNy+Oly         DO j=1-Oly,sNy+Oly
135          DO i=1-Olx,sNx+Olx          DO i=1-Olx,sNx+Olx
136           gTracer(i,j,k,bi,bj)=0. _d 0           gTracer(i,j,k,bi,bj)=0. _d 0
# Line 154  C--   Initialize net flux in X direction Line 153  C--   Initialize net flux in X direction
153        ENDDO        ENDDO
154    
155  C-    Advective flux in X  C-    Advective flux in X
156        IF (.NOT. multiDimAdvection .OR.        IF (calcAdvection) THEN
      &    advectionScheme.EQ.ENUM_CENTERED_2ND .OR.  
      &    advectionScheme.EQ.ENUM_UPWIND_3RD .OR.  
      &    advectionScheme.EQ.ENUM_CENTERED_4TH ) THEN  
157        IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN        IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN
158         CALL GAD_C2_ADV_X(bi,bj,k,uTrans,localT,af,myThid)         CALL GAD_C2_ADV_X(bi,bj,k,uTrans,localT,af,myThid)
159        ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN        ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN
# Line 229  C--   Initialize net flux in Y direction Line 225  C--   Initialize net flux in Y direction
225        ENDDO        ENDDO
226    
227  C-    Advective flux in Y  C-    Advective flux in Y
228        IF (.NOT. multiDimAdvection .OR.        IF (calcAdvection) THEN
      &    advectionScheme.EQ.ENUM_CENTERED_2ND .OR.  
      &    advectionScheme.EQ.ENUM_UPWIND_3RD .OR.  
      &    advectionScheme.EQ.ENUM_CENTERED_4TH ) THEN  
229        IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN        IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN
230         CALL GAD_C2_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)         CALL GAD_C2_ADV_Y(bi,bj,k,vTrans,localT,af,myThid)
231        ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN        ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN
# Line 297  C-    Bi-harmonic flux in Y Line 290  C-    Bi-harmonic flux in Y
290        ENDIF        ENDIF
291    
292  C-    Advective flux in R  C-    Advective flux in R
293        IF (.NOT. multiDimAdvection .OR.        IF (calcAdvection) THEN
      &    advectionScheme.EQ.ENUM_CENTERED_2ND .OR.  
      &    advectionScheme.EQ.ENUM_UPWIND_3RD .OR.  
      &    advectionScheme.EQ.ENUM_CENTERED_4TH ) THEN  
294  C     Note: wVel needs to be masked  C     Note: wVel needs to be masked
295        IF (K.GE.2) THEN        IF (K.GE.2) THEN
296  C-    Compute vertical advective flux in the interior:  C-    Compute vertical advective flux in the interior:
# Line 358  C           boundary condition. Line 348  C           boundary condition.
348        ELSE        ELSE
349         CALL GAD_DIFF_R(bi,bj,k,KappaRT,tracer,df,myThid)         CALL GAD_DIFF_R(bi,bj,k,KappaRT,tracer,df,myThid)
350        ENDIF        ENDIF
 c     DO j=1-Oly,sNy+Oly  
 c      DO i=1-Olx,sNx+Olx  
 c       fVerT(i,j,kUp) = fVerT(i,j,kUp) + df(i,j)*maskUp(i,j)  
 c      ENDDO  
 c     ENDDO  
351    
352  #ifdef ALLOW_GMREDI  #ifdef ALLOW_GMREDI
353  C-    GM/Redi flux in R  C-    GM/Redi flux in R
# Line 373  C *note* should update GMREDI_RTRANSPORT Line 358  C *note* should update GMREDI_RTRANSPORT
358       I     Tracer,       I     Tracer,
359       U     df,       U     df,
360       I     myThid)       I     myThid)
 c      DO j=1-Oly,sNy+Oly  
 c       DO i=1-Olx,sNx+Olx  
 c        fVerT(i,j,kUp) = fVerT(i,j,kUp) + df(i,j)*maskUp(i,j)  
 c       ENDDO  
 c      ENDDO  
361        ENDIF        ENDIF
362  #endif  #endif
363    

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

  ViewVC Help
Powered by ViewVC 1.1.22