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

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

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


Revision 1.5 - (show annotations) (download)
Fri Jan 24 17:15:59 2003 UTC (21 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint48a_post
Changes since 1.4: +19 -9 lines
in preparation for r*, use temp. array to compute vertical transport.
 This affects truncation error and changes results of few test-exp.

1 C $Header: /u/gcmpack/MITgcm/pkg/mom_fluxform/mom_v_adv_wv.F,v 1.4 2002/12/10 03:02:38 jmc Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: MOM_V_ADV_WV
8
9 C !INTERFACE: ==========================================================
10 SUBROUTINE MOM_V_ADV_WV(
11 I bi,bj,k,
12 I vFld,wFld,
13 O advectiveFluxWV,
14 I myThid)
15
16 C !DESCRIPTION:
17 C Calculates the vertical advective flux of meridional momentum:
18 C \begin{equation*}
19 C F^r = \overline{W}^j \overline{v}^{k}
20 C \end{equation*}
21
22 C !USES: ===============================================================
23 IMPLICIT NONE
24 #include "SIZE.h"
25 #include "EEPARAMS.h"
26 #include "PARAMS.h"
27 #include "GRID.h"
28 #ifdef NONLIN_FRSURF
29 #include "SURFACE.h"
30 #endif
31
32 C !INPUT PARAMETERS: ===================================================
33 C bi,bj :: tile indices
34 C k :: vertical level
35 C rTrans :: vertical transport
36 C vFld :: meridional flow
37 C myThid :: thread number
38 INTEGER bi,bj,k
39 _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
40 _RL wFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
41 INTEGER myThid
42
43 C !OUTPUT PARAMETERS: ==================================================
44 C advectiveFluxWV :: advective flux
45 _RL advectiveFluxWV(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
46
47 C !LOCAL VARIABLES: ====================================================
48 C i,j :: loop indices
49 INTEGER I,J
50 _RL tmpFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
51 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.
69 & (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
72
73 DO j=1-Oly,sNy+Oly
74 DO i=1-Olx,sNx+Olx
75 advectiveFluxWV(i,j) = 0.
76 ENDDO
77 ENDDO
78
79 ELSEIF (k.EQ.1) THEN
80 C (linear) Free-surface correction at k=1
81
82 DO j=1-Oly+1,sNy+Oly
83 DO i=1-Olx,sNx+Olx
84 c advectiveFluxWV(i,j) =
85 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)
91 & +wFld(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj) )
92 advectiveFluxWV(i,j) = tmpFld(i,j)*vFld(i,j,k,bi,bj)
93 ENDDO
94 ENDDO
95
96 ELSE
97
98 C Vertical advection - interior ; assume vFld & wFld are masked
99 DO j=1-Oly+1,sNy+Oly
100 DO i=1-Olx,sNx+Olx
101 c advectiveFluxWV(i,j) =
102 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)
108 & +wFld(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj) )
109 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
112 ENDDO
113
114 IF (.NOT. rigidLid) THEN
115 C (linear) Free-surface correction at k>1
116 DO j=1-Oly+1,sNy+Oly
117 DO i=1-Olx,sNx+Olx
118 advectiveFluxWV(i,j) = advectiveFluxWV(i,j)
119 & +0.25*(
120 & wFld(i, j ,k,bi,bj)*rA(i, j ,bi,bj)*
121 & (maskC(i,j,k,bi,bj) - maskC(i,j,k-1,bi,bj))
122 & +wFld(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)*
123 & (maskC(i,j-1,k,bi,bj)-maskC(i,j-1,k-1,bi,bj))
124 & )*vFld(i,j,k,bi,bj)
125 ENDDO
126 ENDDO
127 C- endif NOT rigidLid
128 ENDIF
129
130 ENDIF
131
132 RETURN
133 END

  ViewVC Help
Powered by ViewVC 1.1.22