/[MITgcm]/MITgcm/pkg/ctrl/ctrl.h
ViewVC logotype

Contents of /MITgcm/pkg/ctrl/ctrl.h

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


Revision 1.3 - (show annotations) (download)
Sat Jul 13 02:47:32 2002 UTC (21 years, 11 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint46b_post, checkpoint46d_pre, checkpoint46a_post, checkpoint46e_pre, checkpoint46b_pre, checkpoint46c_pre, checkpoint46, checkpoint46a_pre, checkpoint46c_post, checkpoint46e_post, checkpoint46d_post
Changes since 1.2: +365 -28 lines
File MIME type: text/plain
Merging new ctrl package from release1_p5:
o new ctrl package
  - adopted from ECCO environment to enable optimization
  - added Eliassen Palm fluxes to controls

1
2 c ==================================================================
3 c HEADER CONTROLVARS
4 c ==================================================================
5 c
6 c o Control variables of the ECCO state estimation tool.
7 c
8 c Depending on the specific problem to be studied users will have to
9 c modify this header file.
10 c
11 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
12 c
13 c changed: Christian Eckert eckert@mit.edu
14 c
15 c
16 c ==================================================================
17 c HEADER CONTROLVARS
18 c ==================================================================
19 c
20 c nwet[c/s/w]tile - Number of wet points in a tile for center (c),
21 c south (s), and western (w) mask, resp. .
22
23 integer maxcvars
24 parameter ( maxcvars = 30 )
25
26 integer ctrlprec
27 parameter ( ctrlprec = 64 )
28
29 character*2 yadprefix
30 parameter ( yadprefix = 'ad')
31
32 common /controlvars_i/
33 & nvartype,
34 & nvarlength,
35 & ncvarindex,
36 & ncvarrecs,
37 & ncvarrecstart,
38 & ncvarrecsend,
39 & ncvarxmax,
40 & ncvarymax,
41 & ncvarnrmax,
42 & nwetctile,
43 & nwetstile,
44 & nwetwtile,
45 & nwetvtile,
46 & nwetcglobal,
47 & nwetsglobal,
48 & nwetwglobal,
49 & nwetvglobal
50 integer nvartype
51 integer nvarlength
52 integer ncvarindex ( maxcvars )
53 integer ncvarrecs ( maxcvars )
54 integer ncvarrecstart ( maxcvars )
55 integer ncvarrecsend ( maxcvars )
56 integer ncvarxmax ( maxcvars )
57 integer ncvarymax ( maxcvars )
58 integer ncvarnrmax ( maxcvars )
59 integer nwetctile ( nsx,nsy,nr )
60 integer nwetstile ( nsx,nsy,nr )
61 integer nwetwtile ( nsx,nsy,nr )
62 integer nwetvtile ( nsx,nsy,nr )
63 integer nwetcglobal ( nr )
64 integer nwetsglobal ( nr )
65 integer nwetwglobal ( nr )
66 integer nwetvglobal ( nr )
67
68 #ifdef ALLOW_OBCSN_CONTROL
69 common /controlvars_i_obcsn/
70 & nwetobcsn,
71 & nwetobcsnglo
72 integer nwetobcsn ( nsx,nsy,nr,nobcs )
73 integer nwetobcsnglo ( nr,nobcs )
74 #endif
75 #ifdef ALLOW_OBCSS_CONTROL
76 common /controlvars_i_obcss/
77 & nwetobcss,
78 & nwetobcssglo
79 integer nwetobcss ( nsx,nsy,nr,nobcs )
80 integer nwetobcssglo ( nr,nobcs )
81 #endif
82 #ifdef ALLOW_OBCSW_CONTROL
83 common /controlvars_i_obcsw/
84 & nwetobcsw,
85 & nwetobcswglo
86 integer nwetobcsw ( nsx,nsy,nr,nobcs )
87 integer nwetobcswglo ( nr,nobcs )
88 #endif
89 #ifdef ALLOW_OBCSE_CONTROL
90 common /controlvars_i_obcse/
91 & nwetobcse,
92 & nwetobcseglo
93 integer nwetobcse ( nsx,nsy,nr,nobcs )
94 integer nwetobcseglo ( nr,nobcs )
95 #endif
96
97 common /controlvars_c/
98 & ncvargrd
99 character*(1) ncvargrd(maxcvars)
100
101 c Control variables:
102 c ==================
103 c
104 c xx_theta - control vector temperature part.
105 c xx_salt - control vector salt part.
106 c xx_hflux - control vector surface heat flux part.
107 c xx_sflux - control vector surface salt flux part.
108 c xx_tauu - control vector zonal wind stress part.
109 c xx_tauv - control vector meridional wind stress part.
110 cph(
111 c xx_... are to be replaced by tmpfld2d/3d throughout the code;
112 c control variables are written to / read from active files
113 c TAMC sees xx_..._dummy
114
115 common /controlvars_r/
116 & tmpfld2d
117 & , tmpfld3d
118 _RL tmpfld2d
119 & (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
120 _RL tmpfld3d
121 & (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
122
123 cgg This caused a lot of confusion.
124 #ifdef ALLOW_OBCS_CONTROL
125 common /controlvars_r_obcs/
126 & tmpfldxz
127 & , tmpfldxz2
128 & , tmpfldyz
129 & , tmpfldyz2
130
131 _RL tmpfldxz (1-olx:snx+olx,nr,nsx,nsy)
132 _RL tmpfldxz2 (1-olx:snx+olx,nr,nsx,nsy)
133 _RL tmpfldyz (1-oly:sny+oly,nr,nsx,nsy)
134 _RL tmpfldyz2 (1-oly:sny+oly,nr,nsx,nsy)
135 #endif
136
137 c Auxiliary storage arrays for the control variables:
138 c ===================================================
139 c
140 c xx_hflux0 - heat flux record before current date.
141 c xx_hflux1 - heat flux record after current date
142 c xx_sflux0 - salt flux record before current date.
143 c xx_sflux1 - salt flux record after current date.
144 c xx_tauu0 - zonal wind stress record before current date.
145 c xx_tauu1 - zonal wind stress record after current date.
146 c xx_tauv0 - meridional wind stress record before current date.
147 c xx_tauv1 - meridional wind stress record after current date.
148
149 #if (defined (ALLOW_HFLUX_CONTROL))
150 common /controlaux_1_r/
151 & xx_hflux0,
152 & xx_hflux1
153 #elif (defined (ALLOW_ATEMP_CONTROL))
154 common /controlaux_1_r/
155 & xx_atemp0,
156 & xx_atemp1
157 #endif
158
159 #if (defined (ALLOW_SFLUX_CONTROL))
160 common /controlaux_2_r/
161 & xx_sflux0,
162 & xx_sflux1
163 #elif (defined (ALLOW_AQH_CONTROL))
164 common /controlaux_2_r/
165 & xx_aqh0,
166 & xx_aqh1
167 #endif
168
169 #if (defined (ALLOW_USTRESS_CONTROL))
170 common /controlaux_3_r/
171 & xx_tauu0,
172 & xx_tauu1
173 #elif (defined (ALLOW_UWIND_CONTROL))
174 common /controlaux_3_r/
175 & xx_uwind0,
176 & xx_uwind1
177 #endif
178
179 #if (defined (ALLOW_VSTRESS_CONTROL))
180 common /controlaux_4_r/
181 & xx_tauv0,
182 & xx_tauv1
183 #elif (defined (ALLOW_VWIND_CONTROL))
184 common /controlaux_4_r/
185 & xx_vwind0,
186 & xx_vwind1
187 #endif
188
189 #ifdef ALLOW_OBCS_CONTROL
190 #if (defined (ALLOW_OBCSN_CONTROL))
191 common /controlaux_5obcsn_r/
192 & xx_obcsn0,
193 & xx_obcsn1
194 #endif
195
196 #if (defined (ALLOW_OBCSS_CONTROL))
197 common /controlaux_5obcss_r/
198 & xx_obcss0,
199 & xx_obcss1
200 #endif
201 #if (defined (ALLOW_OBCSW_CONTROL))
202 common /controlaux_5obcsw_r/
203 & xx_obcsw0,
204 & xx_obcsw1
205 #endif
206 #if (defined (ALLOW_OBCSE_CONTROL))
207 common /controlaux_5obcse_r/
208 & xx_obcse0,
209 & xx_obcse1
210 #endif
211 #endif
212
213 #if (defined (ALLOW_HFLUX_CONTROL))
214 _RL xx_hflux0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
215 _RL xx_hflux1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
216 #elif (defined (ALLOW_ATEMP_CONTROL))
217 _RL xx_atemp0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
218 _RL xx_atemp1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
219 #endif
220 #if (defined (ALLOW_SFLUX_CONTROL))
221 _RL xx_sflux0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
222 _RL xx_sflux1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
223 #elif (defined (ALLOW_AQH_CONTROL))
224 _RL xx_aqh0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
225 _RL xx_aqh1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
226 #endif
227 #if (defined (ALLOW_USTRESS_CONTROL))
228 _RL xx_tauu0(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
229 _RL xx_tauu1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
230 #elif (defined (ALLOW_UWIND_CONTROL))
231 _RL xx_uwind0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
232 _RL xx_uwind1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
233 #endif
234 #if (defined (ALLOW_VSTRESS_CONTROL))
235 _RL xx_tauv0(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
236 _RL xx_tauv1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
237 #elif (defined (ALLOW_VWIND_CONTROL))
238 _RL xx_vwind0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
239 _RL xx_vwind1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
240 #endif
241 cgg(
242 #ifdef ALLOW_OBCSN_CONTROL
243 _RL xx_obcsn0 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs)
244 _RL xx_obcsn1 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs)
245 #endif
246
247 #ifdef ALLOW_OBCSS_CONTROL
248 _RL xx_obcss0 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs)
249 _RL xx_obcss1 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs)
250 #endif
251
252 #ifdef ALLOW_OBCSW_CONTROL
253 _RL xx_obcsw0 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs)
254 _RL xx_obcsw1 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs)
255 #endif
256
257 #ifdef ALLOW_OBCSE_CONTROL
258 _RL xx_obcse0 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs)
259 _RL xx_obcse1 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs)
260 #endif
261 cgg)
262
263
264 c Files where the control variables are stored:
265 c =============================================
266 c
267 c xx_theta_file - control vector temperature part.
268 c xx_salt_file - control vector salinity part.
269 c xx_hflux_file - control vector surface heat flux file.
270 c xx_sflux_file - control vector surface salt flux file.
271 c xx_tauu_file - control vector zonal wind stress file.
272 c xx_tauv_file - control vector meridional wind stress file.
273 c xx_obcsn_file - control vector Uvel at boundary
274 c xx_obcss_file - control vector Vvel at boundary
275 c xx_obcsw_file - control vector temp. at boundary
276 c xx_obcse_file - control vector salin. at boundary
277 common /controlfiles_c/
278 & xx_theta_file
279 & , xx_salt_file
280 & , xx_hflux_file
281 & , xx_sflux_file
282 & , xx_tauu_file
283 & , xx_tauv_file
284 & , xx_atemp_file
285 & , xx_aqh_file
286 & , xx_uwind_file
287 & , xx_vwind_file
288 & , xx_obcsn_file
289 & , xx_obcss_file
290 & , xx_obcsw_file
291 & , xx_obcse_file
292 & , xx_diffkr_file
293 & , xx_kapgm_file
294 & , xx_tr1_file
295 & , xx_efluxy_file
296 & , xx_efluxp_file
297
298 character*(MAX_LEN_FNAM) xx_theta_file
299 character*(MAX_LEN_FNAM) xx_salt_file
300 character*(MAX_LEN_FNAM) xx_hflux_file
301 character*(MAX_LEN_FNAM) xx_sflux_file
302 character*(MAX_LEN_FNAM) xx_tauu_file
303 character*(MAX_LEN_FNAM) xx_tauv_file
304 character*(MAX_LEN_FNAM) xx_atemp_file
305 character*(MAX_LEN_FNAM) xx_aqh_file
306 character*(MAX_LEN_FNAM) xx_uwind_file
307 character*(MAX_LEN_FNAM) xx_vwind_file
308 character*(MAX_LEN_FNAM) xx_obcsn_file
309 character*(MAX_LEN_FNAM) xx_obcss_file
310 character*(MAX_LEN_FNAM) xx_obcsw_file
311 character*(MAX_LEN_FNAM) xx_obcse_file
312 character*(MAX_LEN_FNAM) xx_diffkr_file
313 character*(MAX_LEN_FNAM) xx_kapgm_file
314 character*(MAX_LEN_FNAM) xx_tr1_file
315 character*(MAX_LEN_FNAM) xx_efluxy_file
316 character*(MAX_LEN_FNAM) xx_efluxp_file
317
318 common /packnames_c/
319 & yadmark,
320 & ctrlname,
321 & costname,
322 & scalname,
323 & maskname,
324 & metaname,
325 & yctrlid
326 character*2 yadmark
327 character*9 ctrlname
328 character*9 costname
329 character*9 scalname
330 character*9 maskname
331 character*9 metaname
332 character*10 yctrlid
333
334 c Calendar information for the control variables:
335 c ===============================================
336 c
337 c xx_hfluxperiod - sampling interval for the heat flux control part.
338 c xx_sfluxperiod - sampling interval for the salt flux control part.
339 c xx_tauuperiod - sampling interval for the zonal wind
340 c stress control part.
341 c xx_tauvperiod - sampling interval for the meridional wind
342 c stress control part.
343 c xx_obcsuperiod - sampling interval
344 c xx_obcsvperiod - sampling interval
345 c xx_obcstperiod - sampling interval
346 c xx_obcssperiod - sampling interval
347
348 common /controltimes_r/
349 & xx_hfluxperiod
350 & , xx_sfluxperiod
351 & , xx_tauuperiod
352 & , xx_tauvperiod
353 & , xx_atempperiod
354 & , xx_aqhperiod
355 & , xx_uwindperiod
356 & , xx_vwindperiod
357 & , xx_obcsnperiod
358 & , xx_obcssperiod
359 & , xx_obcswperiod
360 & , xx_obcseperiod
361 _RL xx_hfluxperiod
362 _RL xx_sfluxperiod
363 _RL xx_tauuperiod
364 _RL xx_tauvperiod
365 _RL xx_atempperiod
366 _RL xx_aqhperiod
367 _RL xx_uwindperiod
368 _RL xx_vwindperiod
369 _RL xx_obcsnperiod
370 _RL xx_obcssperiod
371 _RL xx_obcswperiod
372 _RL xx_obcseperiod
373
374 c xx_hfluxstartdate - start date for the heat flux control part.
375 c xx_sfluxstartdate - start date for the salt flux control part.
376 c xx_tauustartdate - start date for the zonal wind stress
377 c control part.
378 c xx_tauvstartdate - start date for the meridional wind stress
379 c control part.
380
381 common /controltimes_i/
382 & xx_hfluxstartdate1
383 & , xx_hfluxstartdate2
384 & , xx_sfluxstartdate1
385 & , xx_sfluxstartdate2
386 & , xx_tauustartdate1
387 & , xx_tauustartdate2
388 & , xx_tauvstartdate1
389 & , xx_tauvstartdate2
390 & , xx_atempstartdate1
391 & , xx_atempstartdate2
392 & , xx_aqhstartdate1
393 & , xx_aqhstartdate2
394 & , xx_uwindstartdate1
395 & , xx_uwindstartdate2
396 & , xx_vwindstartdate1
397 & , xx_vwindstartdate2
398 & , xx_hfluxstartdate
399 & , xx_sfluxstartdate
400 & , xx_tauustartdate
401 & , xx_tauvstartdate
402 & , xx_atempstartdate
403 & , xx_aqhstartdate
404 & , xx_uwindstartdate
405 & , xx_vwindstartdate
406 & , xx_obcsnstartdate1
407 & , xx_obcsnstartdate2
408 & , xx_obcssstartdate1
409 & , xx_obcssstartdate2
410 & , xx_obcswstartdate1
411 & , xx_obcswstartdate2
412 & , xx_obcsestartdate1
413 & , xx_obcsestartdate2
414 & , xx_obcsnstartdate
415 & , xx_obcssstartdate
416 & , xx_obcswstartdate
417 & , xx_obcsestartdate
418 integer xx_hfluxstartdate1
419 integer xx_hfluxstartdate2
420 integer xx_sfluxstartdate1
421 integer xx_sfluxstartdate2
422 integer xx_tauustartdate1
423 integer xx_tauustartdate2
424 integer xx_tauvstartdate1
425 integer xx_tauvstartdate2
426 integer xx_atempstartdate1
427 integer xx_atempstartdate2
428 integer xx_aqhstartdate1
429 integer xx_aqhstartdate2
430 integer xx_uwindstartdate1
431 integer xx_uwindstartdate2
432 integer xx_vwindstartdate1
433 integer xx_vwindstartdate2
434 integer xx_obcsnstartdate1
435 integer xx_obcsnstartdate2
436 integer xx_obcssstartdate1
437 integer xx_obcssstartdate2
438 integer xx_obcswstartdate1
439 integer xx_obcswstartdate2
440 integer xx_obcsestartdate1
441 integer xx_obcsestartdate2
442
443 integer xx_hfluxstartdate(4)
444 integer xx_sfluxstartdate(4)
445 integer xx_tauustartdate(4)
446 integer xx_tauvstartdate(4)
447 integer xx_atempstartdate(4)
448 integer xx_aqhstartdate(4)
449 integer xx_uwindstartdate(4)
450 integer xx_vwindstartdate(4)
451 integer xx_obcsnstartdate(4)
452 integer xx_obcssstartdate(4)
453 integer xx_obcswstartdate(4)
454 integer xx_obcsestartdate(4)
455
456 c ==================================================================
457 c END OF HEADER CONTROLVARS
458 c ==================================================================
459
460

  ViewVC Help
Powered by ViewVC 1.1.22