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

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

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

revision 1.3 by adcroft, Wed Sep 26 19:05:21 2001 UTC revision 1.5 by jmc, Fri Jan 24 17:15:59 2003 UTC
# Line 25  C !USES: =============================== Line 25  C !USES: ===============================
25  #include "EEPARAMS.h"  #include "EEPARAMS.h"
26  #include "PARAMS.h"  #include "PARAMS.h"
27  #include "GRID.h"  #include "GRID.h"
28    #ifdef NONLIN_FRSURF
29    #include "SURFACE.h"
30    #endif
31    
32  C !INPUT PARAMETERS: ===================================================  C !INPUT PARAMETERS: ===================================================
33  C  bi,bj                :: tile indices  C  bi,bj                :: tile indices
# Line 44  C  advectiveFluxWV      :: advective flu Line 47  C  advectiveFluxWV      :: advective flu
47  C !LOCAL VARIABLES: ====================================================  C !LOCAL VARIABLES: ====================================================
48  C  i,j                  :: loop indices  C  i,j                  :: loop indices
49        INTEGER I,J        INTEGER I,J
50          _RL tmpFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
51  CEOP  CEOP
52    
53    #ifdef NONLIN_FRSURF
54          IF ( k.EQ.Nr+1 .AND.
55         &     useRealFreshWaterFlux .AND.
56         &     buoyancyRelation .EQ. 'OCEANICP' ) THEN
57           DO j=1-Oly+1,sNy+Oly
58            DO i=1-Olx,sNx+Olx
59             advectiveFluxWV(i,j) = convertEmP2rUnit*
60         &      ( PmEpR(i, j ,bi,bj)*rA(i, j ,bi,bj)
61         &       +PmEpR(i,j-1,bi,bj)*rA(i,j-1,bi,bj)
62         &      )*0.5 _d 0 * vFld(i,j,k-1,bi,bj)
63            ENDDO
64           ENDDO
65    
66          ELSEIF ( k.GT.Nr .OR. (k.EQ.1.AND.rigidLid) ) THEN
67    #else /* NONLIN_FRSURF */
68        IF ( k.GT.Nr .OR.        IF ( k.GT.Nr .OR.
69       &    (k.EQ.1.AND.rigidLid) ) THEN       &    (k.EQ.1.AND.rigidLid) ) THEN
70    #endif /* NONLIN_FRSURF */
71  C     Advective flux = 0  at k=Nr+1 ; = 0 at k=1 if rigid-lid  C     Advective flux = 0  at k=Nr+1 ; = 0 at k=1 if rigid-lid
72    
73        DO j=1-Oly,sNy+Oly        DO j=1-Oly,sNy+Oly
# Line 61  C     (linear) Free-surface correction a Line 81  C     (linear) Free-surface correction a
81    
82        DO j=1-Oly+1,sNy+Oly        DO j=1-Oly+1,sNy+Oly
83         DO i=1-Olx,sNx+Olx         DO i=1-Olx,sNx+Olx
84          advectiveFluxWV(i,j) =  c       advectiveFluxWV(i,j) =
85       &     0.5*(  c    &     0.5*(
86    c    &        wFld(i, j ,k,bi,bj)*rA(i, j ,bi,bj)
87    c    &       +wFld(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)
88    c    &         )*vFld(i,j,k,bi,bj)
89            tmpFld(i,j) = 0.5 _d 0*(
90       &        wFld(i, j ,k,bi,bj)*rA(i, j ,bi,bj)       &        wFld(i, j ,k,bi,bj)*rA(i, j ,bi,bj)
91       &       +wFld(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)       &       +wFld(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj) )
92       &         )*vFld(i,j,k,bi,bj)          advectiveFluxWV(i,j) = tmpFld(i,j)*vFld(i,j,k,bi,bj)
93         ENDDO         ENDDO
94        ENDDO        ENDDO
95    
# Line 74  C     (linear) Free-surface correction a Line 98  C     (linear) Free-surface correction a
98  C     Vertical advection - interior ; assume vFld & wFld are masked  C     Vertical advection - interior ; assume vFld & wFld are masked
99        DO j=1-Oly+1,sNy+Oly        DO j=1-Oly+1,sNy+Oly
100         DO i=1-Olx,sNx+Olx         DO i=1-Olx,sNx+Olx
101          advectiveFluxWV(i,j) =  c       advectiveFluxWV(i,j) =
102       &    0.25*(  c    &    0.25*(
103    c    &        wFld(i, j ,k,bi,bj)*rA(i, j ,bi,bj)
104    c    &       +wFld(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)
105    c    &         )*( vFld(i,j,k,bi,bj)+vFld(i,j,k-1,bi,bj) )
106            tmpFld(i,j) = 0.5 _d 0*(
107       &        wFld(i, j ,k,bi,bj)*rA(i, j ,bi,bj)       &        wFld(i, j ,k,bi,bj)*rA(i, j ,bi,bj)
108       &       +wFld(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)       &       +wFld(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj) )
109       &         )*( vFld(i,j,k,bi,bj)+vFld(i,j,k-1,bi,bj) )          advectiveFluxWV(i,j) = tmpFld(i,j)*0.5 _d 0
110         &          *( vFld(i,j,k,bi,bj)+vFld(i,j,k-1,bi,bj) )
111         ENDDO         ENDDO
112        ENDDO        ENDDO
113    

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

  ViewVC Help
Powered by ViewVC 1.1.22