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

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

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


Revision 1.4 - (show annotations) (download)
Mon Mar 12 23:43:54 2007 UTC (17 years, 3 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58w_post, checkpoint60, checkpoint61, checkpoint58x_post, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59i, checkpoint59h, checkpoint59k, checkpoint59j, checkpoint59, checkpoint58y_post, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61x, checkpoint61y
Changes since 1.3: +5 -4 lines
define and use reference profile for w <-> omega conversion in NH-code.

1 C $Header: /u/gcmpack/MITgcm/model/src/timestep_wvel.F,v 1.3 2006/07/07 20:10:36 jmc Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6
7 CBOP
8 C !ROUTINE: TIMESTEP_WVEL
9 C !INTERFACE:
10 SUBROUTINE TIMESTEP_WVEL(
11 I bi,bj, myTime, myIter, myThid )
12 C !DESCRIPTION: \bv
13 C *==========================================================*
14 C | S/R TIMESTEP_WVEL
15 C | o Step model vertical velocity forward in time
16 C *==========================================================*
17 C \ev
18
19 C !USES:
20 IMPLICIT NONE
21 C == Global variables ==
22 #include "SIZE.h"
23 #include "EEPARAMS.h"
24 #include "PARAMS.h"
25 #include "GRID.h"
26 #include "DYNVARS.h"
27 #include "NH_VARS.h"
28 c #include "SURFACE.h"
29
30 C !INPUT/OUTPUT PARAMETERS:
31 C == Routine Arguments ==
32 INTEGER bi,bj
33 _RL myTime
34 INTEGER myIter, myThid
35
36 #ifdef ALLOW_NONHYDROSTATIC
37 C !LOCAL VARIABLES:
38 C == Local variables ==
39 INTEGER iMin,iMax,jMin,jMax
40 INTEGER i,j,k
41 _RL gWtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
42 _RL tmpFac, nh_Fac, igwFac
43 CEOP
44
45 iMin = 1
46 iMax = sNx
47 jMin = 1
48 jMax = sNy
49
50 igwFac = 0. _d 0
51 IF ( implicitIntGravWave ) igwFac = 1. _d 0
52
53 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
54
55 IF ( nonHydrostatic ) THEN
56 nh_Fac = 0.
57 IF ( nh_Am2.NE.0. ) nh_Fac = 1. _d 0 / nh_Am2
58
59 k = 1
60 DO j=1-Oly,sNy+Oly
61 DO i=1-Olx,sNx+Olx
62 gW(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)
63 ENDDO
64 ENDDO
65
66 DO k=2,Nr
67
68 C apply mask to gW and keep a copy of wVel in gW:
69 DO j=1-Oly,sNy+Oly
70 DO i=1-Olx,sNx+Olx
71 gWtmp(i,j) = gW(i,j,k,bi,bj)
72 & *maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj)
73 gW(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)
74 ENDDO
75 ENDDO
76 C Step forward vertical velocity
77 tmpFac = nh_Fac + igwFac*wUnit2rVel(k)*wUnit2rVel(k)
78 & *dBdrRef(k)*deltaTMom*dTtracerLev(k)
79 IF (tmpFac.GT.0. ) tmpFac = 1. _d 0 / tmpFac
80 DO j=jMin,jMax
81 DO i=iMin,iMax
82 wVel(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)
83 & + deltaTmom*tmpFac*gWtmp(i,j)
84 ENDDO
85 ENDDO
86
87 C- End of k loop
88 ENDDO
89
90 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
91
92 #ifdef ALLOW_OBCS
93 C-- This call is aesthetic: it makes the W field
94 C consistent with the OBs but this has no algorithmic
95 C impact. This is purely for diagnostic purposes.
96 IF (useOBCS) THEN
97 DO k=1,Nr
98 CALL OBCS_APPLY_W( bi, bj, k, wVel, myThid )
99 ENDDO
100 ENDIF
101 #endif /* ALLOW_OBCS */
102
103 ELSEIF ( implicitIntGravWave ) THEN
104 C keep a copy of wVel in gW:
105 DO k=1,Nr
106 DO j=1-Oly,sNy+Oly
107 DO i=1-Olx,sNx+Olx
108 gW(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)
109 ENDDO
110 ENDDO
111 ENDDO
112
113 C- End if nonHydrostatic / elseif implicitIntGravWave
114 ENDIF
115
116 #endif /* ALLOW_NONHYDROSTATIC */
117
118 RETURN
119 END

  ViewVC Help
Powered by ViewVC 1.1.22