/[MITgcm]/MITgcm/pkg/mom_vecinv/mom_vecinv.F
ViewVC logotype

Diff of /MITgcm/pkg/mom_vecinv/mom_vecinv.F

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

revision 1.73 by jmc, Fri Apr 4 19:53:30 2014 UTC revision 1.76 by jmc, Sat Jan 3 23:58:53 2015 UTC
# Line 11  C $Name$ Line 11  C $Name$
11    
12        SUBROUTINE MOM_VECINV(        SUBROUTINE MOM_VECINV(
13       I        bi,bj,k,iMin,iMax,jMin,jMax,       I        bi,bj,k,iMin,iMax,jMin,jMax,
14       I        KappaRU, KappaRV,       I        kappaRU, kappaRV,
15       I        fVerUkm, fVerVkm,       I        fVerUkm, fVerVkm,
16       O        fVerUkp, fVerVkp,       O        fVerUkp, fVerVkp,
17       O        guDiss, gvDiss,       O        guDiss, gvDiss,
# Line 72  C     myIter  :: current time-step numbe Line 72  C     myIter  :: current time-step numbe
72  C     myThid  :: my Thread Id number  C     myThid  :: my Thread Id number
73        INTEGER bi,bj,k        INTEGER bi,bj,k
74        INTEGER iMin,iMax,jMin,jMax        INTEGER iMin,iMax,jMin,jMax
75        _RL KappaRU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL kappaRU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
76        _RL KappaRV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL kappaRV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
77        _RL fVerUkm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL fVerUkm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
78        _RL fVerVkm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL fVerVkm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
79        _RL fVerUkp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL fVerUkp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
# Line 230  C       vorticity at a no-slip boundary Line 230  C       vorticity at a no-slip boundary
230        ENDIF        ENDIF
231    
232        IF (     no_slip_bottom        IF (     no_slip_bottom
233       &    .OR. bottomDragQuadratic.NE.0.       &    .OR. selectBotDragQuadr.GE.0
234       &    .OR. bottomDragLinear.NE.0.) THEN       &    .OR. bottomDragLinear.NE.0.) THEN
235         bottomDragTerms=.TRUE.         bottomDragTerms=.TRUE.
236        ELSE        ELSE
# Line 358  C---  Other dissipation terms in Zonal m Line 358  C---  Other dissipation terms in Zonal m
358  C--   Vertical flux (fVer is at upper face of "u" cell)  C--   Vertical flux (fVer is at upper face of "u" cell)
359  C     Eddy component of vertical flux (interior component only) -> vrF  C     Eddy component of vertical flux (interior component only) -> vrF
360        IF ( .NOT.implicitViscosity ) THEN        IF ( .NOT.implicitViscosity ) THEN
361         CALL MOM_U_RVISCFLUX(bi,bj,k+1,uVel,KappaRU,vrF,myThid)         CALL MOM_U_RVISCFLUX(bi,bj,k+1,uVel,kappaRU,vrF,myThid)
362  C     Combine fluxes  C     Combine fluxes
363         DO j=jMin,jMax         DO j=jMin,jMax
364          DO i=iMin,iMax          DO i=iMin,iMax
# Line 394  C-     No-slip BCs impose a drag at wall Line 394  C-     No-slip BCs impose a drag at wall
394    
395  C-    No-slip BCs impose a drag at bottom  C-    No-slip BCs impose a drag at bottom
396        IF ( bottomDragTerms ) THEN        IF ( bottomDragTerms ) THEN
397         CALL MOM_U_BOTTOMDRAG(bi,bj,k,uFld,KE,KappaRU,vF,myThid)         CALL MOM_U_BOTTOMDRAG( bi, bj, k,
398         I            uFld, vFld, KE, kappaRU,
399         O            vF,
400         I            myThid )
401         DO j=jMin,jMax         DO j=jMin,jMax
402          DO i=iMin,iMax          DO i=iMin,iMax
403           guDiss(i,j) = guDiss(i,j)+vF(i,j)           guDiss(i,j) = guDiss(i,j)+vF(i,j)
# Line 402  C-    No-slip BCs impose a drag at botto Line 405  C-    No-slip BCs impose a drag at botto
405         ENDDO         ENDDO
406        ENDIF        ENDIF
407  #ifdef ALLOW_SHELFICE  #ifdef ALLOW_SHELFICE
408        IF ( useShelfIce.AND.bottomDragTerms ) THEN        IF ( useShelfIce ) THEN
409         CALL SHELFICE_U_DRAG(bi,bj,k,uFld,KE,KappaRU,vF,myThid)         CALL SHELFICE_U_DRAG( bi, bj, k,
410         I            uFld, vFld, KE, kappaRU,
411         O            vF,
412         I            myThid )
413         DO j=jMin,jMax         DO j=jMin,jMax
414          DO i=iMin,iMax          DO i=iMin,iMax
415           guDiss(i,j) = guDiss(i,j) + vF(i,j)           guDiss(i,j) = guDiss(i,j) + vF(i,j)
# Line 417  C---  Other dissipation terms in Meridio Line 423  C---  Other dissipation terms in Meridio
423  C--   Vertical flux (fVer is at upper face of "v" cell)  C--   Vertical flux (fVer is at upper face of "v" cell)
424  C     Eddy component of vertical flux (interior component only) -> vrF  C     Eddy component of vertical flux (interior component only) -> vrF
425        IF ( .NOT.implicitViscosity ) THEN        IF ( .NOT.implicitViscosity ) THEN
426         CALL MOM_V_RVISCFLUX(bi,bj,k+1,vVel,KappaRV,vrF,myThid)         CALL MOM_V_RVISCFLUX(bi,bj,k+1,vVel,kappaRV,vrF,myThid)
427  C     Combine fluxes -> fVerV  C     Combine fluxes -> fVerV
428         DO j=jMin,jMax         DO j=jMin,jMax
429          DO i=iMin,iMax          DO i=iMin,iMax
# Line 453  C-     No-slip BCs impose a drag at wall Line 459  C-     No-slip BCs impose a drag at wall
459    
460  C-    No-slip BCs impose a drag at bottom  C-    No-slip BCs impose a drag at bottom
461        IF ( bottomDragTerms ) THEN        IF ( bottomDragTerms ) THEN
462         CALL MOM_V_BOTTOMDRAG(bi,bj,k,vFld,KE,KappaRV,vF,myThid)         CALL MOM_V_BOTTOMDRAG( bi, bj, k,
463         I            uFld, vFld, KE, kappaRV,
464         O            vF,
465         I            myThid )
466         DO j=jMin,jMax         DO j=jMin,jMax
467          DO i=iMin,iMax          DO i=iMin,iMax
468           gvDiss(i,j) = gvDiss(i,j)+vF(i,j)           gvDiss(i,j) = gvDiss(i,j)+vF(i,j)
# Line 461  C-    No-slip BCs impose a drag at botto Line 470  C-    No-slip BCs impose a drag at botto
470         ENDDO         ENDDO
471        ENDIF        ENDIF
472  #ifdef ALLOW_SHELFICE  #ifdef ALLOW_SHELFICE
473        IF  (useShelfIce.AND.bottomDragTerms ) THEN        IF ( useShelfIce ) THEN
474           CALL SHELFICE_V_DRAG(bi,bj,k,vFld,KE,KappaRV,vF,myThid)         CALL SHELFICE_V_DRAG( bi, bj, k,
475           DO j=jMin,jMax       I            uFld, vFld, KE, kappaRV,
476            DO i=iMin,iMax       O            vF,
477             gvDiss(i,j) = gvDiss(i,j) + vF(i,j)       I            myThid )
478            ENDDO         DO j=jMin,jMax
479           ENDDO          DO i=iMin,iMax
480          ENDIF           gvDiss(i,j) = gvDiss(i,j) + vF(i,j)
481            ENDDO
482           ENDDO
483          ENDIF
484  #endif /* ALLOW_SHELFICE */  #endif /* ALLOW_SHELFICE */
485    
486  C--   if (momViscosity) end of block.  C--   if (momViscosity) end of block.
# Line 762  C--   Set du/dt & dv/dt on boundaries to Line 774  C--   Set du/dt & dv/dt on boundaries to
774          CALL DIAGNOSTICS_FILL(KE,     'momKE   ',k,1,2,bi,bj,myThid)          CALL DIAGNOSTICS_FILL(KE,     'momKE   ',k,1,2,bi,bj,myThid)
775         IF (momViscosity) THEN         IF (momViscosity) THEN
776          CALL DIAGNOSTICS_FILL(hDiv,   'momHDiv ',k,1,2,bi,bj,myThid)          CALL DIAGNOSTICS_FILL(hDiv,   'momHDiv ',k,1,2,bi,bj,myThid)
         CALL DIAGNOSTICS_FILL(guDiss, 'Um_Diss ',k,1,2,bi,bj,myThid)  
         CALL DIAGNOSTICS_FILL(gvDiss, 'Vm_Diss ',k,1,2,bi,bj,myThid)  
777         ENDIF         ENDIF
778         IF ( useVariableVisc .OR. useStrainTensionVisc ) THEN         IF ( useVariableVisc .OR. useStrainTensionVisc ) THEN
779          CALL DIAGNOSTICS_FILL(tension, 'Tension ',k,1,2,bi,bj,myThid)          CALL DIAGNOSTICS_FILL(tension, 'Tension ',k,1,2,bi,bj,myThid)

Legend:
Removed from v.1.73  
changed lines
  Added in v.1.76

  ViewVC Help
Powered by ViewVC 1.1.22