/[MITgcm]/MITgcm/pkg/ctrl/ctrl_swapffields.F
ViewVC logotype

Contents of /MITgcm/pkg/ctrl/ctrl_swapffields.F

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


Revision 1.2 - (show annotations) (download)
Sat Feb 14 16:32:46 2015 UTC (9 years, 3 months ago) by dgoldberg
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, HEAD
Changes since 1.1: +10 -1 lines
use separate loop to set ffld1 = 0 as openad seemed to transform earlier version incorreclty

1 C $Header: /u/gcmpack/MITgcm/pkg/ctrl/ctrl_swapffields.F,v 1.1 2013/02/05 14:30:59 gforget Exp $
2 C $Name: $
3
4 #include "CTRL_OPTIONS.h"
5
6 C-- File CTRL_SWAPFFIELDS.F: Routines to swap 2 fields
7 C-- Contents
8 C-- o CTRL_SWAPFFIELDS
9 C-- o CTRL_SWAPFFIELDS_3D
10 C-- o CTRL_SWAPFFIELDS_XZ
11 C-- o CTRL_SWAPFFIELDS_YZ
12
13 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
14
15 SUBROUTINE CTRL_SWAPFFIELDS(
16 O ffld0,
17 U ffld1,
18 I myThid )
19
20 C ==================================================================
21 C SUBROUTINE CTRL_SWAPFFIELDS
22 C ==================================================================
23 C
24 C o Copy a forcing field ffld1 to ffld0 and set ffld0 to zero.
25 C
26 C started: Christian Eckert eckert@mit.edu 30-Jun-1999
27 C
28 C changed: Christian Eckert eckert@mit.edu 14-Jan-2000
29 C
30 C - Restructured the code in order to create a package
31 C for the MITgcmUV.
32 C
33 C Christian Eckert eckert@mit.edu 12-Feb-2000
34 C
35 C - Changed Routine names (package prefix: exf_)
36 C
37 C ==================================================================
38 C SUBROUTINE CTRL_SWAPFFIELDS
39 C ==================================================================
40
41 IMPLICIT NONE
42
43 C == global variables ==
44 #include "EEPARAMS.h"
45 #include "SIZE.h"
46
47 C == routine arguments ==
48 _RL ffld0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
49 _RL ffld1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
50 INTEGER myThid
51
52 C == local variables ==
53 INTEGER bi, bj
54 INTEGER i, j
55
56 C == end of interface ==
57
58 DO bj=myByLo(myThid),myByHi(myThid)
59 DO bi=myBxLo(myThid),myBxHi(myThid)
60 DO j = 1,sNy
61 DO i = 1,sNx
62 ffld0(i,j,bi,bj) = ffld1(i,j,bi,bj)
63 ENDDO
64 ENDDO
65 ENDDO
66 ENDDO
67
68 DO bj=myByLo(myThid),myByHi(myThid)
69 DO bi=myBxLo(myThid),myBxHi(myThid)
70 DO j = 1,sNy
71 DO i = 1,sNx
72 ffld1(i,j,bi,bj) = 0. _d 0
73 ENDDO
74 ENDDO
75 ENDDO
76 ENDDO
77
78 RETURN
79 END
80
81 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
82
83 SUBROUTINE CTRL_SWAPFFIELDS_3D(
84 O ffld0,
85 U ffld1,
86 I nNz, myThid )
87
88 C ==================================================================
89 C SUBROUTINE CTRL_SWAPFFIELDS_3d
90 C ==================================================================
91 C
92 C o Copy a forcing field ffld1 to ffld0 and set ffld0 to zero.
93 C
94 C ==================================================================
95 C SUBROUTINE CTRL_SWAPFFIELDS
96 C ==================================================================
97
98 IMPLICIT NONE
99
100 C == global variables ==
101 #include "EEPARAMS.h"
102 #include "SIZE.h"
103
104 C == routine arguments ==
105 C nNz :: number of levels to process
106 INTEGER nNz
107 _RL ffld0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
108 _RL ffld1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
109 INTEGER myThid
110
111 C == local variables ==
112 INTEGER bi, bj
113 INTEGER i, j, k
114
115 C == end of interface ==
116
117 DO bj=myByLo(myThid),myByHi(myThid)
118 DO bi=myBxLo(myThid),myBxHi(myThid)
119 DO k = 1,nNz
120 DO j = 1,sNy
121 DO i = 1,sNx
122 ffld0(i,j,k,bi,bj) = ffld1(i,j,k,bi,bj)
123 ffld1(i,j,k,bi,bj) = 0. _d 0
124 ENDDO
125 ENDDO
126 ENDDO
127 ENDDO
128 ENDDO
129
130 RETURN
131 END
132
133 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
134
135 SUBROUTINE CTRL_SWAPFFIELDS_XZ(
136 O ffld0,
137 U ffld1,
138 I nNz, myThid )
139
140 C ==================================================================
141 C SUBROUTINE CTRL_SWAPFFIELDS_xz
142 C ==================================================================
143 C
144 C o Copy a forcing field ffld1 to ffld0 and set ffld0 to zero.
145 C
146 C started: heimbach@mit.edu 01-May-2001
147 C
148 C ==================================================================
149 C SUBROUTINE CTRL_SWAPFFIELDS_xz
150 C ==================================================================
151
152 IMPLICIT NONE
153
154 C == global variables ==
155 #include "EEPARAMS.h"
156 #include "SIZE.h"
157
158 C == routine arguments ==
159 C nNz :: number of levels to process
160 INTEGER nNz
161 _RL ffld0(1-OLx:sNx+OLx,nNz,nSx,nSy)
162 _RL ffld1(1-OLx:sNx+OLx,nNz,nSx,nSy)
163 INTEGER myThid
164
165 C == local variables ==
166 INTEGER bi, bj
167 INTEGER i, k
168
169 C == end of interface ==
170
171 DO bj=myByLo(myThid),myByHi(myThid)
172 DO bi=myBxLo(myThid),myBxHi(myThid)
173 DO k = 1,nNz
174 DO i = 1,sNx
175 ffld0(i,k,bi,bj) = ffld1(i,k,bi,bj)
176 ffld1(i,k,bi,bj) = 0. _d 0
177 ENDDO
178 ENDDO
179 ENDDO
180 ENDDO
181
182 RETURN
183 END
184
185 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
186
187 SUBROUTINE CTRL_SWAPFFIELDS_YZ(
188 O ffld0,
189 U ffld1,
190 I nNz, myThid )
191
192 C ==================================================================
193 C SUBROUTINE CTRL_SWAPFFIELDS_yz
194 C ==================================================================
195 C
196 C o Copy a forcing field ffld1 to ffld0 and set ffld0 to zero.
197 C
198 C started: heimbach@mit.edu 01-May-2001
199 C
200 C ==================================================================
201 C SUBROUTINE CTRL_SWAPFFIELDS_yz
202 C ==================================================================
203
204 IMPLICIT NONE
205
206 C == global variables ==
207 #include "EEPARAMS.h"
208 #include "SIZE.h"
209
210 C == routine arguments ==
211 C nNz :: number of levels to process
212 INTEGER nNz
213 _RL ffld0(1-OLy:sNy+OLy,nNz,nSx,nSy)
214 _RL ffld1(1-OLy:sNy+OLy,nNz,nSx,nSy)
215 INTEGER myThid
216
217 C == local variables ==
218 INTEGER bi, bj
219 INTEGER j, k
220
221 C == end of interface ==
222
223 DO bj=myByLo(myThid),myByHi(myThid)
224 DO bi=myBxLo(myThid),myBxHi(myThid)
225 DO k = 1,nNz
226 DO j = 1,sNy
227 ffld0(j,k,bi,bj) = ffld1(j,k,bi,bj)
228 ffld1(j,k,bi,bj) = 0. _d 0
229 ENDDO
230 ENDDO
231 ENDDO
232 ENDDO
233
234 RETURN
235 END

  ViewVC Help
Powered by ViewVC 1.1.22