/[MITgcm]/MITgcm/pkg/mypackage/mypackage_tendency_apply.F
ViewVC logotype

Contents of /MITgcm/pkg/mypackage/mypackage_tendency_apply.F

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


Revision 1.3 - (show annotations) (download)
Sun Jan 27 20:52:11 2008 UTC (16 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint64, checkpoint60, checkpoint61, checkpoint62, checkpoint63, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59o, checkpoint59n, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62z, checkpoint62y, checkpoint62x, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.2: +98 -55 lines
re-arrange myPackage:
- more standard variable names
- add example of read/write pickup for state-var (+ add call)
- add option to disable un-used array (MYPACKAGE_OPTIONS.h, MYPACKAGE.h)
- rename S/R MYPACKAGE_DIAGNOSTICS_FILL to MYPACKAGE_DIAGNOSTICS_STATE
 and call it from do_statevars_diags.F

1 C $Header: /u/gcmpack/MITgcm/pkg/mypackage/mypackage_tendency_apply.F,v 1.2 2006/08/07 21:13:52 edhill Exp $
2 C $Name: $
3
4 #include "MYPACKAGE_OPTIONS.h"
5 C-- File mypackage_tendency_apply.F: Routines to apply MYPACKAGE tendencies
6 C-- Contents
7 C-- o MYPACKAGE_TENDENCY_APPLY_U
8 C-- o MYPACKAGE_TENDENCY_APPLY_V
9 C-- o MYPACKAGE_TENDENCY_APPLY_T
10 C-- o MYPACKAGE_TENDENCY_APPLY_S
11
12 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
13 CBOP 0
14 C !ROUTINE: MYPACKAGE_TENDENCY_APPLY_U
15
16 C !INTERFACE:
17 SUBROUTINE MYPACKAGE_TENDENCY_APPLY_U(
18 & iMin, iMax, jMin, jMax,
19 & bi, bj, k, myTime, myThid )
20
21 C !DESCRIPTION:
22 C Add mypackage tendency terms to U tendency. Routine works for one
23 C level at a time. Assumes that U and V tendencies are on C-Grid or
24 C on A-grid.
25
26 C !USES:
27 IMPLICIT NONE
28 #include "SIZE.h"
29 #include "GRID.h"
30 #include "EEPARAMS.h"
31 #include "DYNVARS.h"
32 #include "MYPACKAGE.h"
33
34 C !INPUT PARAMETERS:
35 INTEGER iMin, iMax, jMin, jMax, k, bi, bj, myThid
36 _RL myTime
37 CEOP
38
39 #ifdef MYPACKAGE_TENDENCY
40 C !LOCAL VARIABLES:
41 INTEGER i, j
42
43 IF ( myPa_applyTendU .AND. myPa_Tend_Cgrid ) THEN
44 DO j=jMin,jMax
45 DO i=iMin,iMax
46 gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)
47 & + maskW(i,j,k,bi,bj) * myPa_TendVelU(i,j,k,bi,bj)
48 ENDDO
49 ENDDO
50 ELSEIF ( myPa_applyTendU ) THEN
51 C-- Assume Agrid position:
52 DO j=jMin,jMax
53 DO i=iMin,iMax
54 gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)
55 & + maskW(i,j,k,bi,bj)*( myPa_TendVelU(i-1,j,k,bi,bj)
56 & +myPa_TendVelU( i ,j,k,bi,bj)
57 & )*0.5 _d 0
58 ENDDO
59 ENDDO
60 ENDIF
61
62 #endif /* MYPACKAGE_TENDENCY */
63
64 RETURN
65 END
66
67 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
68 CBOP 0
69 C !ROUTINE: MYPACKAGE_TENDENCY_APPLY_V
70
71 C !INTERFACE:
72 SUBROUTINE MYPACKAGE_TENDENCY_APPLY_V(
73 & iMin, iMax, jMin, jMax,
74 & bi, bj, k, myTime, myThid )
75
76 C !DESCRIPTION:
77 C Add mypackage tendency terms to V tendency. Routine works for one
78 C level at a time. Assumes that U and V tendencies are on C-Grid or
79 C on A-grid.
80
81 C !USES:
82 IMPLICIT NONE
83 #include "SIZE.h"
84 #include "GRID.h"
85 #include "EEPARAMS.h"
86 #include "DYNVARS.h"
87 #include "MYPACKAGE.h"
88
89 C !INPUT PARAMETERS:
90 INTEGER iMin, iMax, jMin, jMax, k, bi, bj, myThid
91 _RL myTime
92 CEOP
93
94 #ifdef MYPACKAGE_TENDENCY
95 C !LOCAL VARIABLES:
96 INTEGER i, j
97
98 IF ( myPa_applyTendV .AND. myPa_Tend_Cgrid ) THEN
99 DO j=jMin,jMax
100 DO i=iMin,iMax
101 gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)
102 & + maskS(i,j,k,bi,bj) * myPa_TendVelV(i,j,k,bi,bj)
103 ENDDO
104 ENDDO
105 ELSEIF ( myPa_applyTendV ) THEN
106 C-- Assume Agrid position:
107 DO j=jMin,jMax
108 DO i=iMin,iMax
109 gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)
110 & + maskS(i,j,k,bi,bj)*( myPa_TendVelV(i,j-1,k,bi,bj)
111 & +myPa_TendVelV(i, j ,k,bi,bj)
112 & )*0.5 _d 0
113 ENDDO
114 ENDDO
115 ENDIF
116
117 #endif /* MYPACKAGE_TENDENCY */
118
119 RETURN
120 END
121
122 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
123 CBOP 0
124 C !ROUTINE: MYPACKAGE_TENDENCY_APPLY_T
125
126 C !INTERFACE:
127 SUBROUTINE MYPACKAGE_TENDENCY_APPLY_T(
128 & iMin, iMax, jMin, jMax,
129 & bi, bj, k, myTime, myThid )
130
131 C !DESCRIPTION:
132 C Add mypackage tendency terms to T (theta) tendency. Routine works
133 C for one level at a time
134
135 C !USES:
136 IMPLICIT NONE
137 #include "SIZE.h"
138 #include "GRID.h"
139 #include "EEPARAMS.h"
140 #include "DYNVARS.h"
141 #include "MYPACKAGE.h"
142
143 C !INPUT PARAMETERS:
144 INTEGER iMin, iMax, jMin, jMax, k, bi, bj, myThid
145 _RL myTime
146 CEOP
147
148 #ifdef MYPACKAGE_TENDENCY
149 C !LOCAL VARIABLES:
150 INTEGER i, j
151
152 IF ( myPa_applyTendT ) THEN
153 DO j=jMin,jMax
154 DO i=iMin,iMax
155 gT(i,j,k,bi,bj) = gT(i,j,k,bi,bj)
156 & + maskC(i,j,k,bi,bj) * myPa_TendScal1(i,j,k,bi,bj)
157 ENDDO
158 ENDDO
159 ENDIF
160
161 #endif /* MYPACKAGE_TENDENCY */
162
163 RETURN
164 END
165
166 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
167 CBOP 0
168 C !ROUTINE: MYPACKAGE_TENDENCY_APPLY_S
169
170 C !INTERFACE:
171 SUBROUTINE MYPACKAGE_TENDENCY_APPLY_S(
172 & iMin, iMax, jMin, jMax,
173 & bi, bj, k, myTime, myThid )
174
175 C !DESCRIPTION:
176 C Add mypackage tendency terms to S tendency. Routine works for one
177 C level at a time
178
179 C !INPUT PARAMETERS:
180 IMPLICIT NONE
181 #include "SIZE.h"
182 #include "GRID.h"
183 #include "EEPARAMS.h"
184 #include "DYNVARS.h"
185 #include "MYPACKAGE.h"
186
187 C !INPUT PARAMETERS:
188 INTEGER iMin, iMax, jMin, jMax, k, bi, bj, myThid
189 _RL myTime
190 CEOP
191
192 #ifdef MYPACKAGE_TENDENCY
193 C !LOCAL VARIABLES:
194 INTEGER i, j
195
196 IF ( myPa_applyTendS ) THEN
197 DO j=jMin,jMax
198 DO i=iMin,iMax
199 gS(i,j,k,bi,bj) = gS(i,j,k,bi,bj)
200 & + maskC(i,j,k,bi,bj) * myPa_TendScal2(i,j,k,bi,bj)
201 ENDDO
202 ENDDO
203 ENDIF
204
205 #endif /* MYPACKAGE_TENDENCY */
206
207 RETURN
208 END

  ViewVC Help
Powered by ViewVC 1.1.22