/[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.69 by jmc, Sun Jul 28 21:04:25 2013 UTC revision 1.70 by jmc, Thu Aug 1 20:12:42 2013 UTC
# Line 193  C--   Initialise intermediate terms Line 193  C--   Initialise intermediate terms
193          KE(i,j)    = 0.          KE(i,j)    = 0.
194  C-    need to initialise hDiv for MOM_VI_DEL2UV(call FILL_CS_CORNER_TR_RL)  C-    need to initialise hDiv for MOM_VI_DEL2UV(call FILL_CS_CORNER_TR_RL)
195          hDiv(i,j)  = 0.          hDiv(i,j)  = 0.
196          viscAh_Z(i,j) = 0.  c       viscAh_Z(i,j) = 0.
197          viscAh_D(i,j) = 0.  c       viscAh_D(i,j) = 0.
198          viscA4_Z(i,j) = 0.  c       viscA4_Z(i,j) = 0.
199          viscA4_D(i,j) = 0.  c       viscA4_D(i,j) = 0.
   
200          strain(i,j)  = 0. _d 0          strain(i,j)  = 0. _d 0
201          tension(i,j) = 0. _d 0          tension(i,j) = 0. _d 0
202  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 272  C-     account for no-slip / free-slip B Line 271  C-     account for no-slip / free-slip B
271          ENDDO          ENDDO
272         ENDDO         ENDDO
273    
274  C--    Calculate Viscosities  C--    Calculate Lateral Viscosities
275         CALL MOM_CALC_VISC( bi, bj, k,         DO j=1-OLy,sNy+OLy
276       O        viscAh_Z, viscAh_D, viscA4_Z, viscA4_D,          DO i=1-OLx,sNx+OLx
277       I        hDiv, vort3, tension, strain, KE, hfacZ,           viscAh_D(i,j) = viscAhD
278       I        myThid )           viscAh_Z(i,j) = viscAhZ
279             viscA4_D(i,j) = viscA4D
280             viscA4_Z(i,j) = viscA4Z
281            ENDDO
282           ENDDO
283           IF ( useVariableVisc ) THEN
284             CALL MOM_CALC_VISC( bi, bj, k,
285         O            viscAh_Z, viscAh_D, viscA4_Z, viscA4_D,
286         I            hDiv, vort3, tension, strain, KE, hfacZ,
287         I            myThid )
288           ENDIF
289    
290  C      Calculate del^2 u and del^2 v for bi-harmonic term  C      Calculate del^2 u and del^2 v for bi-harmonic term
291         IF (useBiharmonicVisc) THEN         IF (useBiharmonicVisc) THEN
# Line 341  C      in terms of vorticity and diverge Line 350  C      in terms of vorticity and diverge
350       O            guDiss, gvDiss,       O            guDiss, gvDiss,
351       &            myThid )       &            myThid )
352         ENDIF         ENDIF
 C--   if (momViscosity) end of block.  
       ENDIF  
   
 C-    Return to standard hfacZ (min-4) and mask vort3 accordingly:  
 c     CALL MOM_VI_MASK_VORT3(bi,bj,k,hFacZ,r_hFacZ,vort3,myThid)  
353    
354  C---  Other dissipation terms in Zonal momentum equation  C---  Other dissipation terms in Zonal momentum equation
355    
356  C--   Vertical flux (fVer is at upper face of "u" cell)  C--   Vertical flux (fVer is at upper face of "u" cell)
   
357  C     Eddy component of vertical flux (interior component only) -> vrF  C     Eddy component of vertical flux (interior component only) -> vrF
358        IF (momViscosity.AND..NOT.implicitViscosity) THEN        IF ( .NOT.implicitViscosity ) THEN
359         CALL MOM_U_RVISCFLUX(bi,bj,k+1,uVel,KappaRU,vrF,myThid)         CALL MOM_U_RVISCFLUX(bi,bj,k+1,uVel,KappaRU,vrF,myThid)
   
360  C     Combine fluxes  C     Combine fluxes
361         DO j=jMin,jMax         DO j=jMin,jMax
362          DO i=iMin,iMax          DO i=iMin,iMax
363           fVerUkp(i,j) = ArDudrFac*vrF(i,j)           fVerUkp(i,j) = ArDudrFac*vrF(i,j)
364          ENDDO          ENDDO
365         ENDDO         ENDDO
   
366  C--   Tendency is minus divergence of the fluxes  C--   Tendency is minus divergence of the fluxes
367         DO j=jMin,jMax         DO j=jMin,jMax
368          DO i=iMin,iMax          DO i=iMin,iMax
# Line 374  C--   Tendency is minus divergence of th Line 375  C--   Tendency is minus divergence of th
375        ENDIF        ENDIF
376    
377  C-- No-slip and drag BCs appear as body forces in cell abutting topography  C-- No-slip and drag BCs appear as body forces in cell abutting topography
378        IF (momViscosity.AND.no_slip_sides) THEN        IF ( no_slip_sides ) THEN
379  C-     No-slip BCs impose a drag at walls...  C-     No-slip BCs impose a drag at walls...
380         CALL MOM_U_SIDEDRAG( bi, bj, k,         CALL MOM_U_SIDEDRAG( bi, bj, k,
381       I          uFld, del2u, hFacZ,       I          uFld, del2u, hFacZ,
# Line 388  C-     No-slip BCs impose a drag at wall Line 389  C-     No-slip BCs impose a drag at wall
389          ENDDO          ENDDO
390         ENDDO         ENDDO
391        ENDIF        ENDIF
392    
393  C-    No-slip BCs impose a drag at bottom  C-    No-slip BCs impose a drag at bottom
394        IF (momViscosity.AND.bottomDragTerms) THEN        IF ( bottomDragTerms ) THEN
395         CALL MOM_U_BOTTOMDRAG(bi,bj,k,uFld,KE,KappaRU,vF,myThid)         CALL MOM_U_BOTTOMDRAG(bi,bj,k,uFld,KE,KappaRU,vF,myThid)
396         DO j=jMin,jMax         DO j=jMin,jMax
397          DO i=iMin,iMax          DO i=iMin,iMax
# Line 398  C-    No-slip BCs impose a drag at botto Line 400  C-    No-slip BCs impose a drag at botto
400         ENDDO         ENDDO
401        ENDIF        ENDIF
402  #ifdef ALLOW_SHELFICE  #ifdef ALLOW_SHELFICE
403        IF (useShelfIce.AND.momViscosity.AND.bottomDragTerms) THEN        IF ( useShelfIce.AND.bottomDragTerms ) THEN
404         CALL SHELFICE_U_DRAG(bi,bj,k,uFld,KE,KappaRU,vF,myThid)         CALL SHELFICE_U_DRAG(bi,bj,k,uFld,KE,KappaRU,vF,myThid)
405         DO j=jMin,jMax         DO j=jMin,jMax
406          DO i=iMin,iMax          DO i=iMin,iMax
# Line 408  C-    No-slip BCs impose a drag at botto Line 410  C-    No-slip BCs impose a drag at botto
410        ENDIF        ENDIF
411  #endif /* ALLOW_SHELFICE */  #endif /* ALLOW_SHELFICE */
412    
   
413  C---  Other dissipation terms in Meridional momentum equation  C---  Other dissipation terms in Meridional momentum equation
414    
415  C--   Vertical flux (fVer is at upper face of "v" cell)  C--   Vertical flux (fVer is at upper face of "v" cell)
   
416  C     Eddy component of vertical flux (interior component only) -> vrF  C     Eddy component of vertical flux (interior component only) -> vrF
417        IF (momViscosity.AND..NOT.implicitViscosity) THEN        IF ( .NOT.implicitViscosity ) THEN
418         CALL MOM_V_RVISCFLUX(bi,bj,k+1,vVel,KappaRV,vrF,myThid)         CALL MOM_V_RVISCFLUX(bi,bj,k+1,vVel,KappaRV,vrF,myThid)
   
419  C     Combine fluxes -> fVerV  C     Combine fluxes -> fVerV
420         DO j=jMin,jMax         DO j=jMin,jMax
421          DO i=iMin,iMax          DO i=iMin,iMax
422           fVerVkp(i,j) = ArDvdrFac*vrF(i,j)           fVerVkp(i,j) = ArDvdrFac*vrF(i,j)
423          ENDDO          ENDDO
424         ENDDO         ENDDO
   
425  C--   Tendency is minus divergence of the fluxes  C--   Tendency is minus divergence of the fluxes
426         DO j=jMin,jMax         DO j=jMin,jMax
427          DO i=iMin,iMax          DO i=iMin,iMax
# Line 436  C--   Tendency is minus divergence of th Line 434  C--   Tendency is minus divergence of th
434        ENDIF        ENDIF
435    
436  C-- No-slip and drag BCs appear as body forces in cell abutting topography  C-- No-slip and drag BCs appear as body forces in cell abutting topography
437        IF (momViscosity.AND.no_slip_sides) THEN        IF ( no_slip_sides ) THEN
438  C-     No-slip BCs impose a drag at walls...  C-     No-slip BCs impose a drag at walls...
439         CALL MOM_V_SIDEDRAG( bi, bj, k,         CALL MOM_V_SIDEDRAG( bi, bj, k,
440       I          vFld, del2v, hFacZ,       I          vFld, del2v, hFacZ,
# Line 450  C-     No-slip BCs impose a drag at wall Line 448  C-     No-slip BCs impose a drag at wall
448          ENDDO          ENDDO
449         ENDDO         ENDDO
450        ENDIF        ENDIF
451    
452  C-    No-slip BCs impose a drag at bottom  C-    No-slip BCs impose a drag at bottom
453        IF (momViscosity.AND.bottomDragTerms) THEN        IF ( bottomDragTerms ) THEN
454         CALL MOM_V_BOTTOMDRAG(bi,bj,k,vFld,KE,KappaRV,vF,myThid)         CALL MOM_V_BOTTOMDRAG(bi,bj,k,vFld,KE,KappaRV,vF,myThid)
455         DO j=jMin,jMax         DO j=jMin,jMax
456          DO i=iMin,iMax          DO i=iMin,iMax
# Line 460  C-    No-slip BCs impose a drag at botto Line 459  C-    No-slip BCs impose a drag at botto
459         ENDDO         ENDDO
460        ENDIF        ENDIF
461  #ifdef ALLOW_SHELFICE  #ifdef ALLOW_SHELFICE
462        IF (useShelfIce.AND.momViscosity.AND.bottomDragTerms) THEN        IF  (useShelfIce.AND.bottomDragTerms ) THEN
463           CALL SHELFICE_V_DRAG(bi,bj,k,vFld,KE,KappaRV,vF,myThid)           CALL SHELFICE_V_DRAG(bi,bj,k,vFld,KE,KappaRV,vF,myThid)
464           DO j=jMin,jMax           DO j=jMin,jMax
465            DO i=iMin,iMax            DO i=iMin,iMax
# Line 470  C-    No-slip BCs impose a drag at botto Line 469  C-    No-slip BCs impose a drag at botto
469          ENDIF          ENDIF
470  #endif /* ALLOW_SHELFICE */  #endif /* ALLOW_SHELFICE */
471    
472    C--   if (momViscosity) end of block.
473          ENDIF
474    
475    C-    Return to standard hfacZ (min-4) and mask vort3 accordingly:
476    c     CALL MOM_VI_MASK_VORT3(bi,bj,k,hFacZ,r_hFacZ,vort3,myThid)
477    
478  C-    Vorticity diagnostics:  C-    Vorticity diagnostics:
479        IF ( writeDiag ) THEN        IF ( writeDiag ) THEN

Legend:
Removed from v.1.69  
changed lines
  Added in v.1.70

  ViewVC Help
Powered by ViewVC 1.1.22