/[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.38 by jmc, Thu Nov 23 00:45:18 2006 UTC revision 1.39 by jmc, Tue Dec 5 05:30:38 2006 UTC
# Line 40  C !INTERFACE: ========================== Line 40  C !INTERFACE: ==========================
40    
41  C !DESCRIPTION:  C !DESCRIPTION:
42  C Calculates all the horizontal accelerations except for the implicit surface  C Calculates all the horizontal accelerations except for the implicit surface
43  C pressure gradient and implciit vertical viscosity.  C pressure gradient and implicit vertical viscosity.
44    
45  C !USES: ===============================================================  C !USES: ===============================================================
46  C     == Global variables ==  C     == Global variables ==
# Line 249  C---- Calculate common quantities used i Line 249  C---- Calculate common quantities used i
249  C     Calculate tracer cell face open areas  C     Calculate tracer cell face open areas
250        DO j=1-OLy,sNy+OLy        DO j=1-OLy,sNy+OLy
251         DO i=1-OLx,sNx+OLx         DO i=1-OLx,sNx+OLx
252          xA(i,j) = _dyG(i,j,bi,bj)          xA(i,j) = _dyG(i,j,bi,bj)*deepFacC(k)
253       &   *drF(k)*_hFacW(i,j,k,bi,bj)       &          *drF(k)*_hFacW(i,j,k,bi,bj)
254          yA(i,j) = _dxG(i,j,bi,bj)          yA(i,j) = _dxG(i,j,bi,bj)*deepFacC(k)
255       &   *drF(k)*_hFacS(i,j,k,bi,bj)       &          *drF(k)*_hFacS(i,j,k,bi,bj)
256         ENDDO         ENDDO
257        ENDDO        ENDDO
258    
# Line 265  C     Make local copies of horizontal fl Line 265  C     Make local copies of horizontal fl
265        ENDDO        ENDDO
266    
267  C     Calculate velocity field "volume transports" through tracer cell faces.  C     Calculate velocity field "volume transports" through tracer cell faces.
268    C     anelastic: transports are scaled by rhoFacC (~ mass transport)
269        DO j=1-OLy,sNy+OLy        DO j=1-OLy,sNy+OLy
270         DO i=1-OLx,sNx+OLx         DO i=1-OLx,sNx+OLx
271          uTrans(i,j) = uFld(i,j)*xA(i,j)          uTrans(i,j) = uFld(i,j)*xA(i,j)*rhoFacC(k)
272          vTrans(i,j) = vFld(i,j)*yA(i,j)          vTrans(i,j) = vFld(i,j)*yA(i,j)*rhoFacC(k)
273         ENDDO         ENDDO
274        ENDDO        ENDDO
275    
# Line 304  C-    Calculate vertical transports abov Line 305  C-    Calculate vertical transports abov
305  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
306  # ifdef NONLIN_FRSURF  # ifdef NONLIN_FRSURF
307  #  ifndef DISABLE_RSTAR_CODE  #  ifndef DISABLE_RSTAR_CODE
308  CADJ STORE dwtransc(:,:,bi,bj) =  CADJ STORE dwtransc(:,:,bi,bj) =
309  CADJ &     comlev1_bibj_k, key = imomkey, byte = isbyte  CADJ &     comlev1_bibj_k, key = imomkey, byte = isbyte
310  CADJ STORE dwtransu(:,:,bi,bj) =  CADJ STORE dwtransu(:,:,bi,bj) =
311  CADJ &     comlev1_bibj_k, key = imomkey, byte = isbyte  CADJ &     comlev1_bibj_k, key = imomkey, byte = isbyte
312  CADJ STORE dwtransv(:,:,bi,bj) =  CADJ STORE dwtransv(:,:,bi,bj) =
313  CADJ &     comlev1_bibj_k, key = imomkey, byte = isbyte  CADJ &     comlev1_bibj_k, key = imomkey, byte = isbyte
314  #  endif  #  endif
315  # endif /* NONLIN_FRSURF */  # endif /* NONLIN_FRSURF */
# Line 374  C--   Tendency is minus divergence of th Line 375  C--   Tendency is minus divergence of th
375       &      ( 0.5 _d 0*(rA(i,j,bi,bj)+rA(i-1,j,bi,bj)) )       &      ( 0.5 _d 0*(rA(i,j,bi,bj)+rA(i-1,j,bi,bj)) )
376  #else  #else
377       &     -_recip_hFacW(i,j,k,bi,bj)*recip_drF(k)       &     -_recip_hFacW(i,j,k,bi,bj)*recip_drF(k)
378       &     *recip_rAw(i,j,bi,bj)       &     *recip_rAw(i,j,bi,bj)*recip_deepFac2C(k)*recip_rhoFacC(k)
379  #endif  #endif
380       &    *( ( fZon(i,j  )     - fZon(i-1,j) )*uDudxFac       &     *( ( fZon(i,j  )     - fZon(i-1,j) )*uDudxFac
381       &      +( fMer(i,j+1)     - fMer(i,  j) )*vDudyFac       &       +( fMer(i,j+1)     - fMer(i,  j) )*vDudyFac
382       &      +(fVerU(i,j,kDown) - fVerU(i,j,kUp))*rkSign*rVelDudrFac       &       +(fVerU(i,j,kDown) - fVerU(i,j,kUp))*rkSign*rVelDudrFac
383       &     )       &     )
384           ENDDO           ENDDO
385          ENDDO          ENDDO
# Line 448  C     Eddy component of vertical flux (i Line 449  C     Eddy component of vertical flux (i
449         ENDIF         ENDIF
450    
451  C--   Tendency is minus divergence of the fluxes  C--   Tendency is minus divergence of the fluxes
452    C     anelastic: hor.visc.fluxes are not scaled by rhoFac (by vert.visc.flx is)
453          DO j=jMin,jMax          DO j=jMin,jMax
454           DO i=iMin,iMax           DO i=iMin,iMax
455            guDiss(i,j) =            guDiss(i,j) =
# Line 456  C--   Tendency is minus divergence of th Line 458  C--   Tendency is minus divergence of th
458       &      ( 0.5 _d 0*(rA(i,j,bi,bj)+rA(i-1,j,bi,bj)) )       &      ( 0.5 _d 0*(rA(i,j,bi,bj)+rA(i-1,j,bi,bj)) )
459  #else  #else
460       &     -_recip_hFacW(i,j,k,bi,bj)*recip_drF(k)       &     -_recip_hFacW(i,j,k,bi,bj)*recip_drF(k)
461       &     *recip_rAw(i,j,bi,bj)       &     *recip_rAw(i,j,bi,bj)*recip_deepFac2C(k)
462  #endif  #endif
463       &    *( ( fZon(i,j  ) - fZon(i-1,j) )*AhDudxFac       &     *( ( fZon(i,j  ) - fZon(i-1,j) )*AhDudxFac
464       &      +( fMer(i,j+1) - fMer(i,  j) )*AhDudyFac       &       +( fMer(i,j+1) - fMer(i,  j) )*AhDudyFac
465       &      +( fVrDw(i,j)  - fVrUp(i,j) )*rkSign*ArDudrFac       &       +( fVrDw(i,j)  - fVrUp(i,j)  )*rkSign*ArDudrFac
466         &                                     *recip_rhoFacC(k)
467       &     )       &     )
468           ENDDO           ENDDO
469          ENDDO          ENDDO
# Line 577  C--   Tendency is minus divergence of th Line 580  C--   Tendency is minus divergence of th
580       &      ( 0.5 _d 0*(_rA(i,j,bi,bj)+_rA(i,j-1,bi,bj)) )       &      ( 0.5 _d 0*(_rA(i,j,bi,bj)+_rA(i,j-1,bi,bj)) )
581  #else  #else
582       &     -_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)       &     -_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)
583       &      *recip_rAs(i,j,bi,bj)       &     *recip_rAs(i,j,bi,bj)*recip_deepFac2C(k)*recip_rhoFacC(k)
584  #endif  #endif
585       &    *( ( fZon(i+1,j)     - fZon(i,j  ) )*uDvdxFac       &     *( ( fZon(i+1,j)     - fZon(i,j  ) )*uDvdxFac
586       &      +( fMer(i,  j)     - fMer(i,j-1) )*vDvdyFac       &       +( fMer(i,  j)     - fMer(i,j-1) )*vDvdyFac
587       &      +(fVerV(i,j,kDown) - fVerV(i,j,kUp))*rkSign*rVelDvdrFac       &       +(fVerV(i,j,kDown) - fVerV(i,j,kUp))*rkSign*rVelDvdrFac
588       &     )       &     )
589           ENDDO           ENDDO
590          ENDDO          ENDDO
# Line 650  C     Eddy component of vertical flux (i Line 653  C     Eddy component of vertical flux (i
653         ENDIF         ENDIF
654    
655  C--   Tendency is minus divergence of the fluxes + coriolis + pressure term  C--   Tendency is minus divergence of the fluxes + coriolis + pressure term
656    C     anelastic: hor.visc.fluxes are not scaled by rhoFac (by vert.visc.flx is)
657          DO j=jMin,jMax          DO j=jMin,jMax
658           DO i=iMin,iMax           DO i=iMin,iMax
659            gvDiss(i,j) =            gvDiss(i,j) =
# Line 658  C--   Tendency is minus divergence of th Line 662  C--   Tendency is minus divergence of th
662       &      ( 0.5 _d 0*(_rA(i,j,bi,bj)+_rA(i,j-1,bi,bj)) )       &      ( 0.5 _d 0*(_rA(i,j,bi,bj)+_rA(i,j-1,bi,bj)) )
663  #else  #else
664       &     -_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)       &     -_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)
665       &      *recip_rAs(i,j,bi,bj)       &      *recip_rAs(i,j,bi,bj)*recip_deepFac2C(k)
666  #endif  #endif
667       &    *( ( fZon(i+1,j)  - fZon(i,j  ) )*AhDvdxFac       &     *( ( fZon(i+1,j)  - fZon(i,j  ) )*AhDvdxFac
668       &      +( fMer(i,  j)  - fMer(i,j-1) )*AhDvdyFac       &       +( fMer(i,  j)  - fMer(i,j-1) )*AhDvdyFac
669       &      +( fVrDw(i,j)   - fVrUp(i,j) )*rkSign*ArDvdrFac       &       +( fVrDw(i,j)   - fVrUp(i,j) )*rkSign*ArDvdrFac
670         &                                     *recip_rhoFacC(k)
671       &     )       &     )
672           ENDDO           ENDDO
673          ENDDO          ENDDO

Legend:
Removed from v.1.38  
changed lines
  Added in v.1.39

  ViewVC Help
Powered by ViewVC 1.1.22