/[MITgcm]/MITgcm/model/src/integrate_for_w.F
ViewVC logotype

Contents of /MITgcm/model/src/integrate_for_w.F

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


Revision 1.8 - (show annotations) (download)
Mon Oct 7 16:24:45 2002 UTC (21 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint46n_post, checkpoint47e_post, checkpoint46l_post, checkpoint47c_post, checkpoint46l_pre, checkpoint48c_pre, checkpoint47d_pre, checkpoint47a_post, checkpoint47i_post, checkpoint47d_post, checkpoint47g_post, checkpoint46j_post, checkpoint46k_post, checkpoint48a_post, checkpoint47j_post, branch-exfmods-tag, checkpoint48c_post, checkpoint47b_post, checkpoint46m_post, checkpoint47f_post, checkpoint47, checkpoint48, checkpoint47h_post
Branch point for: branch-exfmods-curt
Changes since 1.7: +16 -16 lines
* split calc_exact_eta in 2 S/R : integr_continuity & update_etaH
* move wVel computation at the end of the time step, in S/R integr_continuity
* create specific S/R to exchange T,S before DYNAMICS (for stagger time step)
* update timeave pkg for wVel diagnostic ; put convertEmP2rUnit in PARAMS.h

1 C $Header: /u/gcmpack/MITgcm/model/src/integrate_for_w.F,v 1.7 2001/09/26 18:09:16 cnh Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: INTEGRATE_FOR_W
8 C !INTERFACE:
9 SUBROUTINE INTEGRATE_FOR_W(
10 I bi,bj,k,uFld,vFld,
11 O wFld,
12 I myThid)
13
14 C !DESCRIPTION: \bv
15 C *==========================================================*
16 C | SUBROUTINE INTEGRATE_FOR_W
17 C | o Integrate for vertical velocity.
18 C *==========================================================*
19 C \ev
20
21 C !USES:
22 IMPLICIT NONE
23 C == GLobal variables ==
24 #include "SIZE.h"
25 #include "EEPARAMS.h"
26 #include "PARAMS.h"
27 #include "GRID.h"
28
29 C !INPUT/OUTPUT PARAMETERS:
30 C == Routine arguments ==
31 C uFld, vFld :: Zonal and meridional flow
32 C wFld :: Vertical flow
33 INTEGER bi,bj,k
34 _RL uFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
35 _RL vFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
36 _RL wFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
37 INTEGER myThid
38
39 C !LOCAL VARIABLES:
40 C == Local variables ==
41 C uTrans, vTrans :: Temps. for volume transports
42 INTEGER i,j
43 _RL uTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
44 _RL vTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
45 CEOP
46
47 C-- Calculate velocity field "volume transports" through
48 C tracer cell faces.
49 DO j=1,sNy+1
50 DO i=1,sNx+1
51 uTrans(i,j) = uFld(i,j,k,bi,bj)*
52 & _dyG(i,j,bi,bj)
53 & *drF(k)*_hFacW(i,j,k,bi,bj)
54 vTrans(i,j) = vFld(i,j,k,bi,bj)*
55 & _dxG(i,j,bi,bj)
56 & *drF(k)*_hFacS(i,j,k,bi,bj)
57 ENDDO
58 ENDDO
59
60 C-- Calculate vertical "volume transport" through face k
61 C between tracer cell k-1 & k
62 IF (rigidLid) THEN
63 C- o Rigid-Lid case: zero at lower and upper boundaries
64 IF (k.eq.1) THEN
65 DO j=1,sNy
66 DO i=1,sNx
67 wFld(i,j,k,bi,bj) = 0.
68 ENDDO
69 ENDDO
70 ELSEIF (k.eq.Nr) THEN
71 DO j=1,sNy
72 DO i=1,sNx
73 wFld(i,j,k,bi,bj) =
74 & -( uTrans(i+1,j)-uTrans(i,j)
75 & +vTrans(i,j+1)-vTrans(i,j)
76 & )*recip_rA(i,j,bi,bj)
77 & *maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj)
78 ENDDO
79 ENDDO
80 ELSE
81 DO j=1,sNy
82 DO i=1,sNx
83 wFld(i,j,k,bi,bj) =
84 & ( wFld(i,j,k+1,bi,bj)
85 & -( uTrans(i+1,j)-uTrans(i,j)
86 & +vTrans(i,j+1)-vTrans(i,j)
87 & )*recip_rA(i,j,bi,bj)
88 & )*maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj)
89 ENDDO
90 ENDDO
91 ENDIF
92 ELSE
93 C- o Free Surface case:
94 C non zero at surface ; zero under-ground and at r_lower boundary
95 IF (k.eq.Nr) THEN
96 DO j=1,sNy
97 DO i=1,sNx
98 wFld(i,j,k,bi,bj) =
99 & -( uTrans(i+1,j)-uTrans(i,j)
100 & +vTrans(i,j+1)-vTrans(i,j)
101 & )*recip_rA(i,j,bi,bj)
102 & *maskC(i,j,k,bi,bj)
103 ENDDO
104 ENDDO
105 ELSE
106 DO j=1,sNy
107 DO i=1,sNx
108 wFld(i,j,k,bi,bj) =
109 & ( wFld(i,j,k+1,bi,bj)
110 & -( uTrans(i+1,j)-uTrans(i,j)
111 & +vTrans(i,j+1)-vTrans(i,j)
112 & )*recip_rA(i,j,bi,bj)
113 & )*maskC(i,j,k,bi,bj)
114 ENDDO
115 ENDDO
116 ENDIF
117 C- endif - rigid-lid / Free-Surf.
118 ENDIF
119
120 RETURN
121 END

  ViewVC Help
Powered by ViewVC 1.1.22