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

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

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

revision 1.5 by heimbach, Wed May 3 23:35:11 2006 UTC revision 1.6 by jmc, Tue Dec 5 05:30:37 2006 UTC
# Line 5  C $Name$ Line 5  C $Name$
5    
6  CBOP  CBOP
7  C     !ROUTINE: MOM_CALC_RTRANS  C     !ROUTINE: MOM_CALC_RTRANS
8  C     !INTERFACE:  C     !INTERFACE:
9        SUBROUTINE MOM_CALC_RTRANS(        SUBROUTINE MOM_CALC_RTRANS(
10       I                          k, bi, bj,       I                          k, bi, bj,
11       O                          rTransU, rTransV,       O                          rTransU, rTransV,
12       I                          myTime, myIter, myThid)       I                          myTime, myIter, myThid)
13  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
14  C     *==========================================================*  C     *==========================================================*
15  C     | SUBROUTINE MOM_CALC_RTRANS                              C     | SUBROUTINE MOM_CALC_RTRANS
16  C     | o Calculate vertical transports at interface k  C     | o Calculate vertical transports at interface k
17  C     |   above U & V points (West & South face)  C     |   above U & V points (West & South face)
18  C     *==========================================================*  C     *==========================================================*
19  C     | r coordinate (z or p):  C     | r coordinate (z or p):
# Line 42  C     rTransU :: vertical transport (abo Line 42  C     rTransU :: vertical transport (abo
42  C     rTransV :: vertical transport (above V point)  C     rTransV :: vertical transport (above V point)
43  C     myTime  :: current time  C     myTime  :: current time
44  C     myIter  :: current iteration number  C     myIter  :: current iteration number
45  C     myThid  :: thread number  C     myThid  :: thread number
46  C                
47        INTEGER k, bi, bj, myIter, myThid        INTEGER k, bi, bj, myIter, myThid
48        _RL myTime        _RL myTime
49        _RL rTransU(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL rTransU(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
# Line 56  C     dWtransC :: vertical transp. diffe Line 56  C     dWtransC :: vertical transp. diffe
56  C     dWtransU :: same but above u.point location (West  face)  C     dWtransU :: same but above u.point location (West  face)
57  C     dWtransV :: same but above v.point location (South face)  C     dWtransV :: same but above v.point location (South face)
58  cph need this in a header for the adjoint  cph need this in a header for the adjoint
59  cph      COMMON /LOCAL_MOM_CALC_RTRANS/  cph      COMMON /LOCAL_MOM_CALC_RTRANS/
60  cph     &       dWtransC, dWtransU, dWtransV  cph     &       dWtransC, dWtransU, dWtransV
61  cph      _RL dWtransC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)    cph      _RL dWtransC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
62  cph      _RL dWtransU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)    cph      _RL dWtransU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
63  cph      _RL dWtransV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)    cph      _RL dWtransV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
64  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */
65  C     == Local variables ==  C     == Local variables ==
66  C     I, J :: Loop counters  C     I, J :: Loop counters
# Line 70  CEOP Line 70  CEOP
70  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
71        IF ( k.EQ.Nr+1 .AND.        IF ( k.EQ.Nr+1 .AND.
72       &     useRealFreshWaterFlux .AND. usingPCoords ) THEN       &     useRealFreshWaterFlux .AND. usingPCoords ) THEN
73    C note: deep-model not implemented for P-coordinate + realFreshWaterFlux ;
74    C       anelastic: always assumes that rhoFacF(1) = 1
75          DO j=1-OLy+1,sNy+OLy          DO j=1-OLy+1,sNy+OLy
76           DO i=1-OLx+1,sNx+OLx           DO i=1-OLx+1,sNx+OLx
77            rTransU(i,j) = convertEmP2rUnit*            rTransU(i,j) = convertEmP2rUnit*
# Line 95  C-    Calculate vertical transports abov Line 97  C-    Calculate vertical transports abov
97          DO j=1-OLy+1,sNy+OLy          DO j=1-OLy+1,sNy+OLy
98           DO i=1-OLx+1,sNx+OLx           DO i=1-OLx+1,sNx+OLx
99            rTransU(i,j) =            rTransU(i,j) =
100       &      0.5 _d 0*( wVel(i-1,j,k,bi,bj)*rA(i-1,j,bi,bj)       &         0.5 _d 0*( wVel(i-1,j,k,bi,bj)*rA(i-1,j,bi,bj)
101       &                +wVel( i ,j,k,bi,bj)*rA( i ,j,bi,bj) )       &                   +wVel( i ,j,k,bi,bj)*rA( i ,j,bi,bj)
102         &                  )*deepFac2F(k)*rhoFacF(k)
103            rTransV(i,j) =            rTransV(i,j) =
104       &      0.5 _d 0*( wVel(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)       &         0.5 _d 0*( wVel(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)
105       &                +wVel(i, j ,k,bi,bj)*rA(i, j ,bi,bj) )       &                   +wVel(i, j ,k,bi,bj)*rA(i, j ,bi,bj)
106         &                  )*deepFac2F(k)*rhoFacF(k)
107           ENDDO           ENDDO
108          ENDDO          ENDDO
109        ENDIF                  ENDIF
110    
111  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
112  C---  Modify rTransU & rTransV when using r* coordinate:  C---  Modify rTransU & rTransV when using r* coordinate:
113    C     note: not implemented neither for anelastic nor deep-model.
114        IF ( select_rStar.NE.0 ) THEN        IF ( select_rStar.NE.0 ) THEN
115  # ifndef DISABLE_RSTAR_CODE  # ifndef DISABLE_RSTAR_CODE
116    
# Line 120  C-    Initialise dWtrans : Line 125  C-    Initialise dWtrans :
125          ENDDO          ENDDO
126          DO j=1-OLy+1,sNy+OLy          DO j=1-OLy+1,sNy+OLy
127           DO i=1-OLx+1,sNx+OLx           DO i=1-OLx+1,sNx+OLx
128            dWtransU(i,j,bi,bj) =            dWtransU(i,j,bi,bj) =
129       &          0.5 _d 0*(dWtransC(i-1,j,bi,bj)+dWtransC(i,j,bi,bj))       &          0.5 _d 0*(dWtransC(i-1,j,bi,bj)+dWtransC(i,j,bi,bj))
130            dWtransV(i,j,bi,bj) =            dWtransV(i,j,bi,bj) =
131       &          0.5 _d 0*(dWtransC(i,j-1,bi,bj)+dWtransC(i,j,bi,bj))       &          0.5 _d 0*(dWtransC(i,j-1,bi,bj)+dWtransC(i,j,bi,bj))

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.22