1 |
C $Header: /u/gcmpack/MITgcm/pkg/ctrl/ctrl_init_variables.F,v 1.13 2012/08/10 19:38:57 jmc Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
#include "CTRL_OPTIONS.h" |
5 |
|
6 |
subroutine ctrl_init_variables( myThid ) |
7 |
|
8 |
c ================================================================== |
9 |
c SUBROUTINE ctrl_init_variables |
10 |
c ================================================================== |
11 |
c |
12 |
c o Set parts of the vector of control variables and initialize the |
13 |
c rest to zero. |
14 |
c |
15 |
c started: heimbach@mit.edu 25-Mar-2002 |
16 |
c |
17 |
c ================================================================== |
18 |
c SUBROUTINE ctrl_init_variables |
19 |
c ================================================================== |
20 |
|
21 |
implicit none |
22 |
|
23 |
c == global variables == |
24 |
|
25 |
#include "EEPARAMS.h" |
26 |
#include "SIZE.h" |
27 |
#include "PARAMS.h" |
28 |
c#include "GRID.h" |
29 |
c#include "DYNVARS.h" |
30 |
#include "ctrl.h" |
31 |
#include "CTRL_FIELDS.h" |
32 |
|
33 |
c == routine arguments == |
34 |
|
35 |
integer myThid |
36 |
|
37 |
c == local variables == |
38 |
|
39 |
integer bi,bj |
40 |
integer i,j,k |
41 |
integer itlo,ithi |
42 |
integer jtlo,jthi |
43 |
integer jmin,jmax |
44 |
integer imin,imax |
45 |
integer ntmp |
46 |
integer ivarindex |
47 |
|
48 |
c == end of interface == |
49 |
|
50 |
jtlo = myByLo(myThid) |
51 |
jthi = myByHi(myThid) |
52 |
itlo = myBxLo(myThid) |
53 |
ithi = myBxHi(myThid) |
54 |
jmin = 1-OLy |
55 |
jmax = sNy+OLy |
56 |
imin = 1-OLx |
57 |
imax = sNx+OLx |
58 |
|
59 |
#ifdef ALLOW_HFLUX_CONTROL |
60 |
do bj = jtlo,jthi |
61 |
do bi = itlo,ithi |
62 |
do j = jmin,jmax |
63 |
do i = imin,imax |
64 |
xx_hflux0(i,j,bi,bj) = 0. _d 0 |
65 |
xx_hflux1(i,j,bi,bj) = 0. _d 0 |
66 |
enddo |
67 |
enddo |
68 |
enddo |
69 |
enddo |
70 |
#endif |
71 |
|
72 |
#ifdef ALLOW_SFLUX_CONTROL |
73 |
do bj = jtlo,jthi |
74 |
do bi = itlo,ithi |
75 |
do j = jmin,jmax |
76 |
do i = imin,imax |
77 |
xx_sflux0(i,j,bi,bj) = 0. _d 0 |
78 |
xx_sflux1(i,j,bi,bj) = 0. _d 0 |
79 |
enddo |
80 |
enddo |
81 |
enddo |
82 |
enddo |
83 |
#endif |
84 |
|
85 |
#ifdef ALLOW_USTRESS_CONTROL |
86 |
do bj = jtlo,jthi |
87 |
do bi = itlo,ithi |
88 |
do j = jmin,jmax |
89 |
do i = imin,imax |
90 |
xx_tauu0(i,j,bi,bj) = 0. _d 0 |
91 |
xx_tauu1(i,j,bi,bj) = 0. _d 0 |
92 |
enddo |
93 |
enddo |
94 |
enddo |
95 |
enddo |
96 |
#endif |
97 |
|
98 |
#ifdef ALLOW_VSTRESS_CONTROL |
99 |
do bj = jtlo,jthi |
100 |
do bi = itlo,ithi |
101 |
do j = jmin,jmax |
102 |
do i = imin,imax |
103 |
xx_tauv0(i,j,bi,bj) = 0. _d 0 |
104 |
xx_tauv1(i,j,bi,bj) = 0. _d 0 |
105 |
enddo |
106 |
enddo |
107 |
enddo |
108 |
enddo |
109 |
#endif |
110 |
|
111 |
#ifdef ALLOW_UWIND_CONTROL |
112 |
do bj = jtlo,jthi |
113 |
do bi = itlo,ithi |
114 |
do j = jmin,jmax |
115 |
do i = imin,imax |
116 |
xx_uwind0(i,j,bi,bj) = 0. _d 0 |
117 |
xx_uwind1(i,j,bi,bj) = 0. _d 0 |
118 |
enddo |
119 |
enddo |
120 |
enddo |
121 |
enddo |
122 |
#endif |
123 |
|
124 |
#ifdef ALLOW_VWIND_CONTROL |
125 |
do bj = jtlo,jthi |
126 |
do bi = itlo,ithi |
127 |
do j = jmin,jmax |
128 |
do i = imin,imax |
129 |
xx_vwind0(i,j,bi,bj) = 0. _d 0 |
130 |
xx_vwind1(i,j,bi,bj) = 0. _d 0 |
131 |
enddo |
132 |
enddo |
133 |
enddo |
134 |
enddo |
135 |
#endif |
136 |
|
137 |
#ifdef ALLOW_ATEMP_CONTROL |
138 |
do bj = jtlo,jthi |
139 |
do bi = itlo,ithi |
140 |
do j = jmin,jmax |
141 |
do i = imin,imax |
142 |
xx_atemp0(i,j,bi,bj) = 0. _d 0 |
143 |
xx_atemp1(i,j,bi,bj) = 0. _d 0 |
144 |
enddo |
145 |
enddo |
146 |
enddo |
147 |
enddo |
148 |
#endif |
149 |
|
150 |
#ifdef ALLOW_AQH_CONTROL |
151 |
do bj = jtlo,jthi |
152 |
do bi = itlo,ithi |
153 |
do j = jmin,jmax |
154 |
do i = imin,imax |
155 |
xx_aqh0(i,j,bi,bj) = 0. _d 0 |
156 |
xx_aqh1(i,j,bi,bj) = 0. _d 0 |
157 |
enddo |
158 |
enddo |
159 |
enddo |
160 |
enddo |
161 |
#endif |
162 |
|
163 |
#ifdef ALLOW_PRECIP_CONTROL |
164 |
do bj = jtlo,jthi |
165 |
do bi = itlo,ithi |
166 |
do j = jmin,jmax |
167 |
do i = imin,imax |
168 |
xx_precip0(i,j,bi,bj) = 0. _d 0 |
169 |
xx_precip1(i,j,bi,bj) = 0. _d 0 |
170 |
enddo |
171 |
enddo |
172 |
enddo |
173 |
enddo |
174 |
#endif |
175 |
|
176 |
#ifdef ALLOW_SWFLUX_CONTROL |
177 |
do bj = jtlo,jthi |
178 |
do bi = itlo,ithi |
179 |
do j = jmin,jmax |
180 |
do i = imin,imax |
181 |
xx_swflux0(i,j,bi,bj) = 0. _d 0 |
182 |
xx_swflux1(i,j,bi,bj) = 0. _d 0 |
183 |
enddo |
184 |
enddo |
185 |
enddo |
186 |
enddo |
187 |
#endif |
188 |
|
189 |
#ifdef ALLOW_SWDOWN_CONTROL |
190 |
do bj = jtlo,jthi |
191 |
do bi = itlo,ithi |
192 |
do j = jmin,jmax |
193 |
do i = imin,imax |
194 |
xx_swdown0(i,j,bi,bj) = 0. _d 0 |
195 |
xx_swdown1(i,j,bi,bj) = 0. _d 0 |
196 |
enddo |
197 |
enddo |
198 |
enddo |
199 |
enddo |
200 |
#endif |
201 |
|
202 |
#ifdef ALLOW_LWFLUX_CONTROL |
203 |
do bj = jtlo,jthi |
204 |
do bi = itlo,ithi |
205 |
do j = jmin,jmax |
206 |
do i = imin,imax |
207 |
xx_lwflux0(i,j,bi,bj) = 0. _d 0 |
208 |
xx_lwflux1(i,j,bi,bj) = 0. _d 0 |
209 |
enddo |
210 |
enddo |
211 |
enddo |
212 |
enddo |
213 |
#endif |
214 |
|
215 |
#ifdef ALLOW_LWDOWN_CONTROL |
216 |
do bj = jtlo,jthi |
217 |
do bi = itlo,ithi |
218 |
do j = jmin,jmax |
219 |
do i = imin,imax |
220 |
xx_lwdown0(i,j,bi,bj) = 0. _d 0 |
221 |
xx_lwdown1(i,j,bi,bj) = 0. _d 0 |
222 |
enddo |
223 |
enddo |
224 |
enddo |
225 |
enddo |
226 |
#endif |
227 |
|
228 |
#ifdef ALLOW_EVAP_CONTROL |
229 |
do bj = jtlo,jthi |
230 |
do bi = itlo,ithi |
231 |
do j = jmin,jmax |
232 |
do i = imin,imax |
233 |
xx_evap0(i,j,bi,bj) = 0. _d 0 |
234 |
xx_evap1(i,j,bi,bj) = 0. _d 0 |
235 |
enddo |
236 |
enddo |
237 |
enddo |
238 |
enddo |
239 |
#endif |
240 |
|
241 |
#ifdef ALLOW_SNOWPRECIP_CONTROL |
242 |
do bj = jtlo,jthi |
243 |
do bi = itlo,ithi |
244 |
do j = jmin,jmax |
245 |
do i = imin,imax |
246 |
xx_snowprecip0(i,j,bi,bj) = 0. _d 0 |
247 |
xx_snowprecip1(i,j,bi,bj) = 0. _d 0 |
248 |
enddo |
249 |
enddo |
250 |
enddo |
251 |
enddo |
252 |
#endif |
253 |
|
254 |
#ifdef ALLOW_APRESSURE_CONTROL |
255 |
do bj = jtlo,jthi |
256 |
do bi = itlo,ithi |
257 |
do j = jmin,jmax |
258 |
do i = imin,imax |
259 |
xx_apressure0(i,j,bi,bj) = 0. _d 0 |
260 |
xx_apressure1(i,j,bi,bj) = 0. _d 0 |
261 |
enddo |
262 |
enddo |
263 |
enddo |
264 |
enddo |
265 |
#endif |
266 |
|
267 |
#ifdef ALLOW_RUNOFF_CONTROL |
268 |
do bj = jtlo,jthi |
269 |
do bi = itlo,ithi |
270 |
do j = jmin,jmax |
271 |
do i = imin,imax |
272 |
xx_runoff0(i,j,bi,bj) = 0. _d 0 |
273 |
xx_runoff1(i,j,bi,bj) = 0. _d 0 |
274 |
enddo |
275 |
enddo |
276 |
enddo |
277 |
enddo |
278 |
#endif |
279 |
|
280 |
#ifdef ALLOW_SST_CONTROL |
281 |
do bj = jtlo,jthi |
282 |
do bi = itlo,ithi |
283 |
do j = jmin,jmax |
284 |
do i = imin,imax |
285 |
xx_sst0(i,j,bi,bj) = 0. _d 0 |
286 |
xx_sst1(i,j,bi,bj) = 0. _d 0 |
287 |
enddo |
288 |
enddo |
289 |
enddo |
290 |
enddo |
291 |
#endif |
292 |
|
293 |
#ifdef ALLOW_SSS_CONTROL |
294 |
do bj = jtlo,jthi |
295 |
do bi = itlo,ithi |
296 |
do j = jmin,jmax |
297 |
do i = imin,imax |
298 |
xx_sss0(i,j,bi,bj) = 0. _d 0 |
299 |
xx_sss1(i,j,bi,bj) = 0. _d 0 |
300 |
enddo |
301 |
enddo |
302 |
enddo |
303 |
enddo |
304 |
#endif |
305 |
|
306 |
#ifdef ALLOW_SHIFWFLX_CONTROL |
307 |
do bj = jtlo,jthi |
308 |
do bi = itlo,ithi |
309 |
do j = jmin,jmax |
310 |
do i = imin,imax |
311 |
xx_shifwflx0(i,j,bi,bj) = 0. _d 0 |
312 |
xx_shifwflx1(i,j,bi,bj) = 0. _d 0 |
313 |
enddo |
314 |
enddo |
315 |
enddo |
316 |
enddo |
317 |
#endif |
318 |
|
319 |
#ifdef ALLOW_BOTTOMDRAG_CONTROL |
320 |
do bj = jtlo,jthi |
321 |
do bi = itlo,ithi |
322 |
do j = jmin,jmax |
323 |
do i = imin,imax |
324 |
bottomDragFld(i,j,bi,bj) = 0. _d 0 |
325 |
enddo |
326 |
enddo |
327 |
enddo |
328 |
enddo |
329 |
#endif |
330 |
|
331 |
#ifdef ALLOW_ATM_MEAN_CONTROL |
332 |
do bj = jtlo,jthi |
333 |
do bi = itlo,ithi |
334 |
do j = jmin,jmax |
335 |
do i = imin,imax |
336 |
# ifdef ALLOW_ATEMP_CONTROL |
337 |
xx_atemp_mean (i,j,bi,bj) = 0. _d 0 |
338 |
# endif |
339 |
# ifdef ALLOW_AQH_CONTROL |
340 |
xx_aqh_mean (i,j,bi,bj) = 0. _d 0 |
341 |
# endif |
342 |
# ifdef ALLOW_UWIND_CONTROL |
343 |
xx_uwind_mean (i,j,bi,bj) = 0. _d 0 |
344 |
# endif |
345 |
# ifdef ALLOW_VWIND_CONTROL |
346 |
xx_vwind_mean (i,j,bi,bj) = 0. _d 0 |
347 |
# endif |
348 |
# ifdef ALLOW_PRECIP_CONTROL |
349 |
xx_precip_mean(i,j,bi,bj) = 0. _d 0 |
350 |
# endif |
351 |
# ifdef ALLOW_SWDOWN_CONTROL |
352 |
xx_swdown_mean(i,j,bi,bj) = 0. _d 0 |
353 |
# endif |
354 |
enddo |
355 |
enddo |
356 |
enddo |
357 |
enddo |
358 |
#endif /* ALLOW_ATM_MEAN_CONTROL */ |
359 |
|
360 |
#ifdef ALLOW_OBCS_CONTROL |
361 |
IF (useOBCS) CALL CTRL_INIT_OBCS_VARIABLES( myThid ) |
362 |
#endif |
363 |
|
364 |
RETURN |
365 |
END |