/[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.8 by heimbach, Fri Oct 10 23:00:01 2003 UTC revision 1.13 by dimitri, Sun Jan 25 00:31:52 2004 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4    #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    
7        SUBROUTINE MOM_VECINV(        SUBROUTINE MOM_VECINV(
# Line 56  C     myThid - Instance number for this Line 57  C     myThid - Instance number for this
57        INTEGER myThid        INTEGER myThid
58        INTEGER bi,bj,iMin,iMax,jMin,jMax        INTEGER bi,bj,iMin,iMax,jMin,jMax
59    
60  #ifndef DISABLE_MOM_VECINV  #ifdef ALLOW_MOM_VECINV
61    
62  C     == Functions ==  C     == Functions ==
63        LOGICAL  DIFFERENT_MULTIPLE        LOGICAL  DIFFERENT_MULTIPLE
# Line 115  C     xxxFac - On-off tracer parameters Line 116  C     xxxFac - On-off tracer parameters
116        _RL  phyFac        _RL  phyFac
117        _RL  vForcFac        _RL  vForcFac
118        _RL  mtFacV        _RL  mtFacV
       INTEGER km1,kp1  
119        _RL wVelBottomOverride        _RL wVelBottomOverride
120        LOGICAL bottomDragTerms        LOGICAL bottomDragTerms
121        _RL KE(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL KE(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
# Line 123  C     xxxFac - On-off tracer parameters Line 123  C     xxxFac - On-off tracer parameters
123        _RL vort3(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL vort3(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
124        _RL hDiv(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL hDiv(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
125    
126        km1=MAX(1,k-1)  #ifdef ALLOW_AUTODIFF_TAMC
127        kp1=MIN(Nr,k+1)  C--   only the kDown part of fverU/V is set in this subroutine
128    C--   the kUp is still required
129    C--   In the case of mom_fluxform Kup is set as well
130    C--   (at least in part)
131          fVerU(1,1,kUp) = fVerU(1,1,kUp)
132          fVerV(1,1,kUp) = fVerV(1,1,kUp)
133    #endif
134    
135        rVelMaskOverride=1.        rVelMaskOverride=1.
136        IF ( k .EQ. 1 ) rVelMaskOverride=freeSurfFac        IF ( k .EQ. 1 ) rVelMaskOverride=freeSurfFac
137        wVelBottomOverride=1.        wVelBottomOverride=1.
# Line 152  C     Initialise intermediate terms Line 159  C     Initialise intermediate terms
159  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
160          strain(i,j)  = 0. _d 0          strain(i,j)  = 0. _d 0
161          tension(i,j) = 0. _d 0          tension(i,j) = 0. _d 0
         fVerU(i,j,1) = 0. _d 0  
         fVerU(i,j,2) = 0. _d 0  
         fVerV(i,j,1) = 0. _d 0  
         fVerV(i,j,2) = 0. _d 0  
162  #endif  #endif
163         ENDDO         ENDDO
164        ENDDO        ENDDO
# Line 423  c      CALL MOM_VI_V_CORIOLIS_C4(bi,bj,K Line 426  c      CALL MOM_VI_V_CORIOLIS_C4(bi,bj,K
426         ENDDO         ENDDO
427    
428  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_TIMEAVE
429    #ifndef HRCUBE
430         IF (taveFreq.GT.0.) THEN         IF (taveFreq.GT.0.) THEN
431           CALL TIMEAVE_CUMUL_1K1T(uZetatave,vCf,deltaTClock,           CALL TIMEAVE_CUMUL_1K1T(uZetatave,vCf,deltaTClock,
432       &                           Nr, k, bi, bj, myThid)       &                           Nr, k, bi, bj, myThid)
433           CALL TIMEAVE_CUMUL_1K1T(vZetatave,uCf,deltaTClock,           CALL TIMEAVE_CUMUL_1K1T(vZetatave,uCf,deltaTClock,
434       &                           Nr, k, bi, bj, myThid)       &                           Nr, k, bi, bj, myThid)
435         ENDIF         ENDIF
436  #endif  #endif /* ALLOW_TIMEAVE */
437    #endif /* ndef HRCUBE */
438    
439  C--   Vertical shear terms (-w*du/dr & -w*dv/dr)  C--   Vertical shear terms (-w*du/dr & -w*dv/dr)
440         CALL MOM_VI_U_VERTSHEAR(bi,bj,K,uVel,wVel,uCf,myThid)         IF ( .NOT. momImplVertAdv ) THEN
441         DO j=jMin,jMax          CALL MOM_VI_U_VERTSHEAR(bi,bj,K,uVel,wVel,uCf,myThid)
442          DO i=iMin,iMax          DO j=jMin,jMax
443           gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j)           DO i=iMin,iMax
444              gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j)
445             ENDDO
446            ENDDO
447            CALL MOM_VI_V_VERTSHEAR(bi,bj,K,vVel,wVel,vCf,myThid)
448            DO j=jMin,jMax
449             DO i=iMin,iMax
450              gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+vCf(i,j)
451             ENDDO
452          ENDDO          ENDDO
453         ENDDO         ENDIF
        CALL MOM_VI_V_VERTSHEAR(bi,bj,K,vVel,wVel,vCf,myThid)  
        DO j=jMin,jMax  
         DO i=iMin,iMax  
          gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+vCf(i,j)  
         ENDDO  
        ENDDO  
454    
455  C--   Bernoulli term  C--   Bernoulli term
456         CALL MOM_VI_U_GRAD_KE(bi,bj,K,KE,uCf,myThid)         CALL MOM_VI_U_GRAD_KE(bi,bj,K,KE,uCf,myThid)
# Line 486  c      CALL WRITE_LOCAL_RL('W3','I10',1, Line 493  c      CALL WRITE_LOCAL_RL('W3','I10',1,
493         CALL WRITE_LOCAL_RL('D','I10',1,hdiv,bi,bj,k,myIter,myThid)         CALL WRITE_LOCAL_RL('D','I10',1,hdiv,bi,bj,k,myIter,myThid)
494        ENDIF        ENDIF
495    
496  #endif /* DISABLE_MOM_VECINV */  #endif /* ALLOW_MOM_VECINV */
497    
498        RETURN        RETURN
499        END        END

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

  ViewVC Help
Powered by ViewVC 1.1.22