/[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.2 - (show annotations) (download)
Tue May 29 14:01:38 2001 UTC (22 years, 11 months ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint40pre3, checkpoint40pre1, checkpoint40pre7, checkpoint40pre6, checkpoint40pre9, checkpoint40pre8, checkpoint40pre2, checkpoint40pre4, checkpoint40pre5, checkpoint40
Changes since 1.1: +87 -0 lines
Merge from branch pre38:
 o essential mods for cubed sphere
 o debugged atmosphere, dynamcis + physics (aim)
 o new packages (mom_vecinv, mom_fluxform, ...)

1 C $Header: /u/gcmpack/models/MITgcmUV/pkg/mom_fluxform/Attic/mom_v_adv_wv.F,v 1.1.2.2 2001/03/30 23:13:45 jmc Exp $
2 C $Name: pre38-close $
3
4 #include "CPP_OPTIONS.h"
5
6 SUBROUTINE MOM_V_ADV_WV(
7 I bi,bj,k,
8 I vFld,wFld,
9 O advectiveFluxWV,
10 I myThid)
11 IMPLICIT NONE
12 C
13 C Calculate advective flux in R direction for V eqn
14 C
15
16 C == Global variables ==
17 #include "SIZE.h"
18 #include "EEPARAMS.h"
19 #include "PARAMS.h"
20 #include "GRID.h"
21
22 C == Routine arguments ==
23 INTEGER bi,bj,k
24 _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
25 _RL wFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
26 _RL advectiveFluxWV(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
27 INTEGER myThid
28
29 C == Local variables ==
30 INTEGER i,j
31
32 IF ( k.GT.Nr .OR.
33 & (k.EQ.1.AND.rigidLid) ) THEN
34 C Advective flux = 0 at k=Nr+1 ; = 0 at k=1 if rigid-lid
35
36 DO j=1-Oly,sNy+Oly
37 DO i=1-Olx,sNx+Olx
38 advectiveFluxWV(i,j) = 0.
39 ENDDO
40 ENDDO
41
42 ELSEIF (k.EQ.1) THEN
43 C (linear) Free-surface correction at k=1
44
45 DO j=1-Oly+1,sNy+Oly
46 DO i=1-Olx,sNx+Olx
47 advectiveFluxWV(i,j) =
48 & 0.5*(
49 & wFld(i, j ,k,bi,bj)*rA(i, j ,bi,bj)
50 & +wFld(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)
51 & )*vFld(i,j,k,bi,bj)
52 ENDDO
53 ENDDO
54
55 ELSE
56
57 C Vertical advection - interior ; assume vFld & wFld are masked
58 DO j=1-Oly+1,sNy+Oly
59 DO i=1-Olx,sNx+Olx
60 advectiveFluxWV(i,j) =
61 & 0.25*(
62 & wFld(i, j ,k,bi,bj)*rA(i, j ,bi,bj)
63 & +wFld(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)
64 & )*( vFld(i,j,k,bi,bj)+vFld(i,j,k-1,bi,bj) )
65 ENDDO
66 ENDDO
67
68 IF (.NOT. rigidLid) THEN
69 C (linear) Free-surface correction at k>1
70 DO j=1-Oly+1,sNy+Oly
71 DO i=1-Olx,sNx+Olx
72 advectiveFluxWV(i,j) = advectiveFluxWV(i,j)
73 & +0.25*(
74 & wFld(i, j ,k,bi,bj)*rA(i, j ,bi,bj)*
75 & (maskC(i,j,k,bi,bj) - maskC(i,j,k-1,bi,bj))
76 & +wFld(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)*
77 & (maskC(i,j-1,k,bi,bj)-maskC(i,j-1,k-1,bi,bj))
78 & )*vFld(i,j,k,bi,bj)
79 ENDDO
80 ENDDO
81 C- endif NOT rigidLid
82 ENDIF
83
84 ENDIF
85
86 RETURN
87 END

  ViewVC Help
Powered by ViewVC 1.1.22