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

Annotation 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 - (hide 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 adcroft 1.2 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