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

Diff of /MITgcm/pkg/mom_fluxform/mom_fluxform.F

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

revision 1.31 by heimbach, Thu Dec 8 15:44:34 2005 UTC revision 1.34 by jmc, Thu Mar 30 19:49:41 2006 UTC
# Line 101  C  fVrUp,fVrDw          :: vertical visc Line 101  C  fVrUp,fVrDw          :: vertical visc
101        _RL fMer(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL fMer(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
102        _RL fVrUp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL fVrUp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
103        _RL fVrDw(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL fVrDw(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
104  C     afFacMom      - Tracer parameters for turning terms  C     afFacMom     :: Tracer parameters for turning terms on and off.
105  C     vfFacMom        on and off.  C     vfFacMom        
106  C     pfFacMom        afFacMom - Advective terms  C     pfFacMom        afFacMom - Advective terms
107  C     cfFacMom        vfFacMom - Eddy viscosity terms  C     cfFacMom        vfFacMom - Eddy viscosity terms
108  C     mTFacMom        pfFacMom - Pressure terms  C     mtFacMom        pfFacMom - Pressure terms
109  C                     cfFacMom - Coriolis terms  C                     cfFacMom - Coriolis terms
110  C                     foFacMom - Forcing  C                     foFacMom - Forcing
111  C                     mTFacMom - Metric term  C                     mtFacMom - Metric term
112  C     uDudxFac, AhDudxFac, etc ... individual term parameters for switching terms off  C     uDudxFac, AhDudxFac, etc ... individual term parameters for switching terms off
113        _RS    hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RS    hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
114        _RS  r_hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RS  r_hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
# Line 137  C     uDudxFac, AhDudxFac, etc ... indiv Line 137  C     uDudxFac, AhDudxFac, etc ... indiv
137        _RL  ArDudrFac        _RL  ArDudrFac
138        _RL  fuFac        _RL  fuFac
139        _RL  mtFacU        _RL  mtFacU
140          _RL  mtNHFacU
141        _RL  uDvdxFac        _RL  uDvdxFac
142        _RL  AhDvdxFac        _RL  AhDvdxFac
143        _RL  vDvdyFac        _RL  vDvdyFac
# Line 145  C     uDudxFac, AhDudxFac, etc ... indiv Line 146  C     uDudxFac, AhDudxFac, etc ... indiv
146        _RL  ArDvdrFac        _RL  ArDvdrFac
147        _RL  fvFac        _RL  fvFac
148        _RL  mtFacV        _RL  mtFacV
149          _RL  mtNHFacV
150        _RL  sideMaskFac        _RL  sideMaskFac
151        LOGICAL bottomDragTerms,harmonic,biharmonic,useVariableViscosity        LOGICAL bottomDragTerms,harmonic,biharmonic,useVariableViscosity
152  CEOP  CEOP
# Line 182  C     o U momentum equation Line 184  C     o U momentum equation
184        AhDudyFac    = vfFacMom*1.        AhDudyFac    = vfFacMom*1.
185        rVelDudrFac  = afFacMom*1.        rVelDudrFac  = afFacMom*1.
186        ArDudrFac    = vfFacMom*1.        ArDudrFac    = vfFacMom*1.
187        mTFacU       = mtFacMom*1.        mtFacU       = mtFacMom*1.
188          mtNHFacU     = 1.
189        fuFac        = cfFacMom*1.        fuFac        = cfFacMom*1.
190  C     o V momentum equation  C     o V momentum equation
191        uDvdxFac     = afFacMom*1.        uDvdxFac     = afFacMom*1.
# Line 191  C     o V momentum equation Line 194  C     o V momentum equation
194        AhDvdyFac    = vfFacMom*1.        AhDvdyFac    = vfFacMom*1.
195        rVelDvdrFac  = afFacMom*1.        rVelDvdrFac  = afFacMom*1.
196        ArDvdrFac    = vfFacMom*1.        ArDvdrFac    = vfFacMom*1.
197        mTFacV       = mtFacMom*1.        mtFacV       = mtFacMom*1.
198          mtNHFacV     = 1.
199        fvFac        = cfFacMom*1.        fvFac        = cfFacMom*1.
200    
201        IF (implicitViscosity) THEN        IF (implicitViscosity) THEN
# Line 460  C-    No-slip BCs impose a drag at botto Line 464  C-    No-slip BCs impose a drag at botto
464           ENDDO           ENDDO
465          ENDIF          ENDIF
466    
467    #ifdef ALLOW_SHELFICE
468            IF (useShelfIce) THEN
469             CALL SHELFICE_U_DRAG(bi,bj,k,uFld,KE,KappaRU,vF,myThid)
470             DO j=jMin,jMax
471              DO i=iMin,iMax
472               gUdiss(i,j) = gUdiss(i,j) + vF(i,j)
473              ENDDO
474             ENDDO
475            ENDIF
476    #endif /* ALLOW_SHELFICE */
477    
478  C-    endif momViscosity  C-    endif momViscosity
479        ENDIF        ENDIF
480    
# Line 471  c    I     myTime,myThid) Line 486  c    I     myTime,myThid)
486    
487  C--   Metric terms for curvilinear grid systems  C--   Metric terms for curvilinear grid systems
488        IF (useNHMTerms) THEN        IF (useNHMTerms) THEN
489  C      o Non-hydrosatic metric terms  C      o Non-Hydrostatic (spherical) metric terms
490         CALL MOM_U_METRIC_NH(bi,bj,k,uFld,wVel,mT,myThid)         CALL MOM_U_METRIC_NH(bi,bj,k,uFld,wVel,mT,myThid)
491         DO j=jMin,jMax         DO j=jMin,jMax
492          DO i=iMin,iMax          DO i=iMin,iMax
493           gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+mTFacU*mT(i,j)           gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+mtNHFacU*mT(i,j)
494          ENDDO          ENDDO
495         ENDDO         ENDDO
496        ENDIF        ENDIF
497        IF (usingSphericalPolarMTerms) THEN        IF ( usingSphericalPolarGrid .AND. metricTerms ) THEN
498    C      o Spherical polar grid metric terms
499         CALL MOM_U_METRIC_SPHERE(bi,bj,k,uFld,vFld,mT,myThid)         CALL MOM_U_METRIC_SPHERE(bi,bj,k,uFld,vFld,mT,myThid)
500         DO j=jMin,jMax         DO j=jMin,jMax
501          DO i=iMin,iMax          DO i=iMin,iMax
502           gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+mTFacU*mT(i,j)           gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+mtFacU*mT(i,j)
503          ENDDO          ENDDO
504         ENDDO         ENDDO
505        ENDIF        ENDIF
506        IF (usingCylindricalGrid) THEN        IF ( usingCylindricalGrid .AND. metricTerms ) THEN
507           CALL MOM_U_METRIC_CYLINDER(bi,bj,k,uFld,vFld,mT,myThid)  C      o Cylindrical grid metric terms
508           DO j=jMin,jMax         CALL MOM_U_METRIC_CYLINDER(bi,bj,k,uFld,vFld,mT,myThid)
509            DO i=iMin,iMax         DO j=jMin,jMax
510               gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+mTFacU*mT(i,j)          DO i=iMin,iMax
511            ENDDO           gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+mtFacU*mT(i,j)
512            ENDDO
513         ENDDO         ENDDO
514        ENDIF        ENDIF
515    
# Line 624  C--   Tendency is minus divergence of th Line 641  C--   Tendency is minus divergence of th
641  #endif  #endif
642    
643  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
644        IF (no_slip_sides) THEN          IF (no_slip_sides) THEN
645  C-     No-slip BCs impose a drag at walls...  C-     No-slip BCs impose a drag at walls...
646           CALL MOM_V_SIDEDRAG(           CALL MOM_V_SIDEDRAG(
647       I        bi,bj,k,       I        bi,bj,k,
# Line 649  C-    No-slip BCs impose a drag at botto Line 666  C-    No-slip BCs impose a drag at botto
666           ENDDO           ENDDO
667          ENDIF          ENDIF
668    
669    #ifdef ALLOW_SHELFICE
670            IF (useShelfIce) THEN
671             CALL SHELFICE_V_DRAG(bi,bj,k,vFld,KE,KappaRU,vF,myThid)
672             DO j=jMin,jMax
673              DO i=iMin,iMax
674               gvDiss(i,j) = gvDiss(i,j) + vF(i,j)
675              ENDDO
676             ENDDO
677            ENDIF
678    #endif /* ALLOW_SHELFICE */
679    
680  C-    endif momViscosity  C-    endif momViscosity
681        ENDIF        ENDIF
682    
# Line 660  c    I     myTime,myThid) Line 688  c    I     myTime,myThid)
688    
689  C--   Metric terms for curvilinear grid systems  C--   Metric terms for curvilinear grid systems
690        IF (useNHMTerms) THEN        IF (useNHMTerms) THEN
691  C      o Spherical polar grid metric terms  C      o Non-Hydrostatic (spherical) metric terms
692         CALL MOM_V_METRIC_NH(bi,bj,k,vFld,wVel,mT,myThid)         CALL MOM_V_METRIC_NH(bi,bj,k,vFld,wVel,mT,myThid)
693         DO j=jMin,jMax         DO j=jMin,jMax
694          DO i=iMin,iMax          DO i=iMin,iMax
695           gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+mTFacV*mT(i,j)           gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+mtNHFacV*mT(i,j)
696          ENDDO          ENDDO
697         ENDDO         ENDDO
698        ENDIF        ENDIF
699        IF (usingSphericalPolarMTerms) THEN        IF ( usingSphericalPolarGrid .AND. metricTerms ) THEN
700    C      o Spherical polar grid metric terms
701         CALL MOM_V_METRIC_SPHERE(bi,bj,k,uFld,mT,myThid)         CALL MOM_V_METRIC_SPHERE(bi,bj,k,uFld,mT,myThid)
702         DO j=jMin,jMax         DO j=jMin,jMax
703          DO i=iMin,iMax          DO i=iMin,iMax
704           gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+mTFacV*mT(i,j)           gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+mtFacV*mT(i,j)
705          ENDDO          ENDDO
706         ENDDO         ENDDO
707        ENDIF        ENDIF
708        IF (usingCylindricalGrid) THEN        IF ( usingCylindricalGrid .AND. metricTerms ) THEN
709           CALL MOM_V_METRIC_CYLINDER(bi,bj,k,uFld,vFld,mT,myThid)  C      o Cylindrical grid metric terms
710           DO j=jMin,jMax         CALL MOM_V_METRIC_CYLINDER(bi,bj,k,uFld,vFld,mT,myThid)
711              DO i=iMin,iMax         DO j=jMin,jMax
712                 gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+mTFacV*mT(i,j)          DO i=iMin,iMax
713              ENDDO           gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+mtFacV*mT(i,j)
714           ENDDO          ENDDO
715           ENDDO
716        ENDIF        ENDIF
717    
718  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
# Line 715  c     ELSE Line 745  c     ELSE
745  #endif  #endif
746        ENDIF        ENDIF
747    
748        IF (nonHydrostatic.OR.quasiHydrostatic) THEN  C--   3.D Coriolis term (horizontal momentum, Eastward component: -f'*w)
749         CALL MOM_U_CORIOLIS_NH(bi,bj,k,wVel,cf,myThid)        IF ( nonHydrostatic.OR.quasiHydrostatic ) THEN
750         DO j=jMin,jMax          CALL MOM_U_CORIOLIS_NH(bi,bj,k,wVel,cf,myThid)
751          DO i=iMin,iMax          DO j=jMin,jMax
752           gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+fuFac*cf(i,j)           DO i=iMin,iMax
753              gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+fuFac*cf(i,j)
754             ENDDO
755          ENDDO          ENDDO
756         ENDDO         IF ( usingCurvilinearGrid ) THEN
757    C-     presently, non zero angleSinC array only supported with Curvilinear-Grid
758            CALL MOM_V_CORIOLIS_NH(bi,bj,k,wVel,cf,myThid)
759            DO j=jMin,jMax
760             DO i=iMin,iMax
761              gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+fvFac*cf(i,j)
762             ENDDO
763            ENDDO
764           ENDIF
765        ENDIF        ENDIF
766    
767  C--   Set du/dt & dv/dt on boundaries to zero  C--   Set du/dt & dv/dt on boundaries to zero

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.34

  ViewVC Help
Powered by ViewVC 1.1.22