/[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.4 by adcroft, Tue Sep 4 14:53:11 2001 UTC revision 1.5 by adcroft, Tue Sep 4 17:00:48 2001 UTC
# Line 112  C-    Advective flux in X Line 112  C-    Advective flux in X
112        ELSE        ELSE
113         STOP 'GAD_CALC_RHS: Bad advectionScheme (X)'         STOP 'GAD_CALC_RHS: Bad advectionScheme (X)'
114        ENDIF        ENDIF
115        DO j=jMin,jMax        DO j=1-Oly,sNy+Oly
116         DO i=iMin,iMax         DO i=1-Olx,sNx+Olx
117          fZon(i,j) = fZon(i,j) + af(i,j)          fZon(i,j) = fZon(i,j) + af(i,j)
118         ENDDO         ENDDO
119        ENDDO        ENDDO
# Line 122  C-    Diffusive flux in X Line 122  C-    Diffusive flux in X
122        IF (diffKh.NE.0.) THEN        IF (diffKh.NE.0.) THEN
123         CALL GAD_DIFF_X(bi,bj,k,xA,diffKh,localT,df,myThid)         CALL GAD_DIFF_X(bi,bj,k,xA,diffKh,localT,df,myThid)
124        ELSE        ELSE
125         DO j=jMin,jMax         DO j=1-Oly,sNy+Oly
126          DO i=iMin,iMax          DO i=1-Olx,sNx+Olx
127           df(i,j) = 0.           df(i,j) = 0.
128          ENDDO          ENDDO
129         ENDDO         ENDDO
# Line 140  C *note* should update GMREDI_XTRANSPORT Line 140  C *note* should update GMREDI_XTRANSPORT
140       I     myThid)       I     myThid)
141        ENDIF        ENDIF
142  #endif  #endif
143        DO j=jMin,jMax        DO j=1-Oly,sNy+Oly
144         DO i=iMin,iMax         DO i=1-Olx,sNx+Olx
145          fZon(i,j) = fZon(i,j) + df(i,j)          fZon(i,j) = fZon(i,j) + df(i,j)
146         ENDDO         ENDDO
147        ENDDO        ENDDO
# Line 149  C *note* should update GMREDI_XTRANSPORT Line 149  C *note* should update GMREDI_XTRANSPORT
149  C-    Bi-harmonic duffusive flux in X  C-    Bi-harmonic duffusive flux in X
150        IF (diffK4 .NE. 0.) THEN        IF (diffK4 .NE. 0.) THEN
151         CALL GAD_BIHARM_X(bi,bj,k,xA,df4,diffK4,df,myThid)         CALL GAD_BIHARM_X(bi,bj,k,xA,df4,diffK4,df,myThid)
152         DO j=jMin,jMax         DO j=1-Oly,sNy+Oly
153          DO i=iMin,iMax          DO i=1-Olx,sNx+Olx
154           fZon(i,j) = fZon(i,j) + df(i,j)           fZon(i,j) = fZon(i,j) + df(i,j)
155          ENDDO          ENDDO
156         ENDDO         ENDDO
# Line 227  C-    Bi-harmonic flux in Y Line 227  C-    Bi-harmonic flux in Y
227        ENDIF        ENDIF
228    
229  C--   Initialize net flux in R  C--   Initialize net flux in R
230        DO j=jMin,jMax        DO j=1-Oly,sNy+Oly
231         DO i=iMin,iMax         DO i=1-Olx,sNx+Olx
232          fVerT(i,j,kUp) = 0.          fVerT(i,j,kUp) = 0.
233         ENDDO         ENDDO
234        ENDDO        ENDDO
# Line 274  C-    Surface "correction" term at k=1 : Line 274  C-    Surface "correction" term at k=1 :
274         ENDDO         ENDDO
275        ENDIF        ENDIF
276  C-    add the advective flux to fVerT  C-    add the advective flux to fVerT
277        DO j=jMin,jMax        DO j=1-Oly,sNy+Oly
278         DO i=iMin,iMax         DO i=1-Olx,sNx+Olx
279          fVerT(i,j,kUp) = fVerT(i,j,kUp) + afFacT*af(i,j)          fVerT(i,j,kUp) = fVerT(i,j,kUp) + afFacT*af(i,j)
280         ENDDO         ENDDO
281        ENDDO        ENDDO
# Line 284  C-    Diffusive flux in R Line 284  C-    Diffusive flux in R
284  C     Note: For K=1 then KM1=1 and this gives a dT/dr = 0 upper  C     Note: For K=1 then KM1=1 and this gives a dT/dr = 0 upper
285  C           boundary condition.  C           boundary condition.
286        IF (implicitDiffusion) THEN        IF (implicitDiffusion) THEN
287         DO j=jMin,jMax         DO j=1-Oly,sNy+Oly
288          DO i=iMin,iMax          DO i=1-Olx,sNx+Olx
289           df(i,j) = 0.           df(i,j) = 0.
290          ENDDO          ENDDO
291         ENDDO         ENDDO
292        ELSE        ELSE
293         CALL GAD_DIFF_R(bi,bj,k,KappaRT,tracer,df,myThid)         CALL GAD_DIFF_R(bi,bj,k,KappaRT,tracer,df,myThid)
294        ENDIF        ENDIF
295  c     DO j=jMin,jMax  c     DO j=1-Oly,sNy+Oly
296  c      DO i=iMin,iMax  c      DO i=1-Olx,sNx+Olx
297  c       fVerT(i,j,kUp) = fVerT(i,j,kUp) + dfFacT*df(i,j)*maskUp(i,j)  c       fVerT(i,j,kUp) = fVerT(i,j,kUp) + dfFacT*df(i,j)*maskUp(i,j)
298  c      ENDDO  c      ENDDO
299  c     ENDDO  c     ENDDO
# Line 307  C *note* should update GMREDI_RTRANSPORT Line 307  C *note* should update GMREDI_RTRANSPORT
307       I     maskUp,Tracer,       I     maskUp,Tracer,
308       U     df,       U     df,
309       I     myThid)       I     myThid)
310  c      DO j=jMin,jMax  c      DO j=1-Oly,sNy+Oly
311  c       DO i=iMin,iMax  c       DO i=1-Olx,sNx+Olx
312  c        fVerT(i,j,kUp) = fVerT(i,j,kUp) + dfFacT*df(i,j)*maskUp(i,j)  c        fVerT(i,j,kUp) = fVerT(i,j,kUp) + dfFacT*df(i,j)*maskUp(i,j)
313  c       ENDDO  c       ENDDO
314  c      ENDDO  c      ENDDO
315        ENDIF        ENDIF
316  #endif  #endif
317    
318        DO j=jMin,jMax        DO j=1-Oly,sNy+Oly
319         DO i=iMin,iMax         DO i=1-Olx,sNx+Olx
320          fVerT(i,j,kUp) = fVerT(i,j,kUp) + dfFacT*df(i,j)*maskUp(i,j)          fVerT(i,j,kUp) = fVerT(i,j,kUp) + dfFacT*df(i,j)*maskUp(i,j)
321         ENDDO         ENDDO
322        ENDDO        ENDDO
# Line 324  c      ENDDO Line 324  c      ENDDO
324  #ifdef ALLOW_KPP  #ifdef ALLOW_KPP
325  C-    Add non local KPP transport term (ghat) to diffusive T flux.  C-    Add non local KPP transport term (ghat) to diffusive T flux.
326        IF (useKPP) THEN        IF (useKPP) THEN
327         DO j=jMin,jMax         DO j=1-Oly,sNy+Oly
328          DO i=iMin,iMax          DO i=1-Olx,sNx+Olx
329           df(i,j) = 0.           df(i,j) = 0.
330          ENDDO          ENDDO
331         ENDDO         ENDDO
# Line 343  C *note* should update KPP_TRANSPORT_T t Line 343  C *note* should update KPP_TRANSPORT_T t
343         ELSE         ELSE
344          STOP 'GAD_CALC_RHS: Ooops'          STOP 'GAD_CALC_RHS: Ooops'
345         ENDIF         ENDIF
346         DO j=jMin,jMax         DO j=1-Oly,sNy+Oly
347          DO i=iMin,iMax          DO i=1-Olx,sNx+Olx
348           fVerT(i,j,kUp) = fVerT(i,j,kUp) + dfFacT*df(i,j)*maskUp(i,j)           fVerT(i,j,kUp) = fVerT(i,j,kUp) + dfFacT*df(i,j)*maskUp(i,j)
349          ENDDO          ENDDO
350         ENDDO         ENDDO
# Line 352  C *note* should update KPP_TRANSPORT_T t Line 352  C *note* should update KPP_TRANSPORT_T t
352  #endif  #endif
353    
354  C--   Divergence of fluxes  C--   Divergence of fluxes
355        DO j=jMin,jMax        DO j=1-Oly,sNy+Oly
356         DO i=iMin,iMax         DO i=1-Olx,sNx+Olx
357          gTracer(i,j,k,bi,bj)=          gTracer(i,j,k,bi,bj)=
358       &   -_recip_hFacC(i,j,k,bi,bj)*recip_drF(k)       &   -_recip_hFacC(i,j,k,bi,bj)*recip_drF(k)
359       &    *recip_rA(i,j,bi,bj)       &    *recip_rA(i,j,bi,bj)

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

  ViewVC Help
Powered by ViewVC 1.1.22