/[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.15 - (show annotations) (download)
Tue Nov 16 05:42:11 2004 UTC (19 years, 6 months ago) by heimbach
Branch: MAIN
Changes since 1.14: +12 -2 lines
File MIME type: text/plain
More on dsvd vs. MITgcm interfacing
o handling of g_, ad, via admtlm_vector (mds...vector)
o use ctrl_pack/unpack for admtlm_vector I/O
o use optimcycle for dsvd iteration
o make sure norm is w.r.t. derived quantities

1
2
3 c ==================================================================
4 c HEADER CONTROLVARS
5 c ==================================================================
6 c
7 c o Control variables of the ECCO state estimation tool.
8 c
9 c Depending on the specific problem to be studied users will have to
10 c modify this header file.
11 c
12 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
13 c
14 c changed: Christian Eckert eckert@mit.edu
15 c
16 c
17 c ==================================================================
18 c HEADER CONTROLVARS
19 c ==================================================================
20 c
21 c nwet[c/s/w]tile - Number of wet points in a tile for center (c),
22 c south (s), and western (w) mask, resp. .
23
24 integer maxcvars
25 parameter ( maxcvars = 30 )
26
27 cph ctrlprec will be set to 32 for ECCO to reduce I/O
28 cph but jeopardizes some gradient checks, so should be
29 cph set to 64 by default.
30 cph Need to put this in namelist at some point!
31 integer ctrlprec
32 parameter ( ctrlprec = 64 )
33
34 #ifdef ALLOW_ADMTLM
35 common / controlvars_admtlm_r /
36 & cbuffGlobal
37 _RL cbuffGlobal( 2315 )
38 #endif
39
40 common /controlvars_l /
41 & doInitXX,
42 & doAdmTlm
43 logical doInitXX
44 logical doAdmTlm
45
46 common /controlvars_i/
47 & nvartype,
48 & nvarlength,
49 & ncvarindex,
50 & ncvarrecs,
51 & ncvarrecstart,
52 & ncvarrecsend,
53 & ncvarxmax,
54 & ncvarymax,
55 & ncvarnrmax,
56 & nwetctile,
57 & nwetstile,
58 & nwetwtile,
59 & nwetvtile,
60 & nwetcglobal,
61 & nwetsglobal,
62 & nwetwglobal,
63 & nwetvglobal,
64 & nbuffglobal
65 integer nvartype
66 integer nvarlength
67 integer ncvarindex ( maxcvars )
68 integer ncvarrecs ( maxcvars )
69 integer ncvarrecstart ( maxcvars )
70 integer ncvarrecsend ( maxcvars )
71 integer ncvarxmax ( maxcvars )
72 integer ncvarymax ( maxcvars )
73 integer ncvarnrmax ( maxcvars )
74 integer nwetctile ( nsx,nsy,nr )
75 integer nwetstile ( nsx,nsy,nr )
76 integer nwetwtile ( nsx,nsy,nr )
77 integer nwetvtile ( nsx,nsy,nr )
78 integer nwetcglobal ( nr )
79 integer nwetsglobal ( nr )
80 integer nwetwglobal ( nr )
81 integer nwetvglobal ( nr )
82 integer nbuffglobal
83
84 #ifdef ALLOW_OBCSN_CONTROL
85 common /controlvars_i_obcsn/
86 & nwetobcsn,
87 & nwetobcsnglo
88 integer nwetobcsn ( nsx,nsy,nr,nobcs )
89 integer nwetobcsnglo ( nr,nobcs )
90 #endif
91 #ifdef ALLOW_OBCSS_CONTROL
92 common /controlvars_i_obcss/
93 & nwetobcss,
94 & nwetobcssglo
95 integer nwetobcss ( nsx,nsy,nr,nobcs )
96 integer nwetobcssglo ( nr,nobcs )
97 #endif
98 #ifdef ALLOW_OBCSW_CONTROL
99 common /controlvars_i_obcsw/
100 & nwetobcsw,
101 & nwetobcswglo
102 integer nwetobcsw ( nsx,nsy,nr,nobcs )
103 integer nwetobcswglo ( nr,nobcs )
104 #endif
105 #ifdef ALLOW_OBCSE_CONTROL
106 common /controlvars_i_obcse/
107 & nwetobcse,
108 & nwetobcseglo
109 integer nwetobcse ( nsx,nsy,nr,nobcs )
110 integer nwetobcseglo ( nr,nobcs )
111 #endif
112
113 common /controlvars_c/
114 & ncvargrd
115 & , yadprefix
116 character*(1) ncvargrd(maxcvars)
117 character*(2) yadprefix
118
119 common /controlvec_header_i/
120 & filenvartype,
121 & filenvarlength,
122 & fileOptimCycle,
123 & filencbuffindex,
124 & fileIg,
125 & fileJg,
126 & fileI,
127 & fileJ,
128 & filensx,
129 & filensy,
130 & filek,
131 & filenWetcGlobal,
132 & filenWetsGlobal,
133 & filenWetwGlobal,
134 & filenWetvGlobal,
135 & filencvarindex,
136 & filencvarrecs,
137 & filencvarxmax,
138 & filencvarymax,
139 & filencvarnrmax
140 integer filenvartype
141 integer filenvarlength
142 integer fileOptimCycle
143 integer filencbuffindex
144 integer fileIg
145 integer fileJg
146 integer fileI
147 integer fileJ
148 integer filensx
149 integer filensy
150 integer filek
151 integer filenWetcGlobal(nr)
152 integer filenWetsGlobal(nr)
153 integer filenWetwGlobal(nr)
154 integer filenWetvGlobal(nr)
155 integer filencvarindex(maxcvars)
156 integer filencvarrecs(maxcvars)
157 integer filencvarxmax(maxcvars)
158 integer filencvarymax(maxcvars)
159 integer filencvarnrmax(maxcvars)
160
161 common /controlvec_header_r/
162 & filefc
163 _RL filefc
164
165 common /controlvec_header_c/
166 & fileYctrlid,
167 & filencvargrd
168 character*(10) fileYctrlid
169 character*( 1) filencvargrd(maxcvars)
170
171 c Define unit weight as a placeholder
172 common /ctrl_weights_unit_r/
173 & wunit
174 _RL wunit ( nr,nsx,nsy )
175
176 c Control variables:
177 c ==================
178 c
179 c xx_theta - control vector temperature part.
180 c xx_salt - control vector salt part.
181 c xx_hflux - control vector surface heat flux part.
182 c xx_sflux - control vector surface salt flux part.
183 c xx_tauu - control vector zonal wind stress part.
184 c xx_tauv - control vector meridional wind stress part.
185 cph(
186 c xx_... are to be replaced by tmpfld2d/3d throughout the code;
187 c control variables are written to / read from active files
188 c TAMC sees xx_..._dummy
189
190 common /controlvars_r/
191 & tmpfld2d
192 & , tmpfld3d
193 _RL tmpfld2d
194 & (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
195 _RL tmpfld3d
196 & (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
197
198 cgg This caused a lot of confusion.
199 #ifdef ALLOW_OBCS_CONTROL
200 common /controlvars_r_obcs/
201 & tmpfldxz
202 & , tmpfldxz2
203 & , tmpfldyz
204 & , tmpfldyz2
205
206 _RL tmpfldxz (1-olx:snx+olx,nr,nsx,nsy)
207 _RL tmpfldxz2 (1-olx:snx+olx,nr,nsx,nsy)
208 _RL tmpfldyz (1-oly:sny+oly,nr,nsx,nsy)
209 _RL tmpfldyz2 (1-oly:sny+oly,nr,nsx,nsy)
210 #endif
211
212 c Auxiliary storage arrays for the control variables:
213 c ===================================================
214 c
215 c xx_hflux0 - heat flux record before current date.
216 c xx_hflux1 - heat flux record after current date
217 c xx_sflux0 - salt flux record before current date.
218 c xx_sflux1 - salt flux record after current date.
219 c xx_tauu0 - zonal wind stress record before current date.
220 c xx_tauu1 - zonal wind stress record after current date.
221 c xx_tauv0 - meridional wind stress record before current date.
222 c xx_tauv1 - meridional wind stress record after current date.
223
224 #if (defined (ALLOW_HFLUX_CONTROL))
225 common /controlaux_1_r/
226 & xx_hflux0,
227 & xx_hflux1
228 #elif (defined (ALLOW_ATEMP_CONTROL))
229 common /controlaux_1_r/
230 & xx_atemp0,
231 & xx_atemp1
232 #endif
233
234 #if (defined (ALLOW_SFLUX_CONTROL))
235 common /controlaux_2_r/
236 & xx_sflux0,
237 & xx_sflux1
238 #elif (defined (ALLOW_AQH_CONTROL))
239 common /controlaux_2_r/
240 & xx_aqh0,
241 & xx_aqh1
242 #endif
243
244 #if (defined (ALLOW_USTRESS_CONTROL))
245 common /controlaux_3_r/
246 & xx_tauu0,
247 & xx_tauu1
248 #elif (defined (ALLOW_UWIND_CONTROL))
249 common /controlaux_3_r/
250 & xx_uwind0,
251 & xx_uwind1
252 #endif
253
254 #if (defined (ALLOW_VSTRESS_CONTROL))
255 common /controlaux_4_r/
256 & xx_tauv0,
257 & xx_tauv1
258 #elif (defined (ALLOW_VWIND_CONTROL))
259 common /controlaux_4_r/
260 & xx_vwind0,
261 & xx_vwind1
262 #endif
263
264 #ifdef ALLOW_OBCS_CONTROL
265 #if (defined (ALLOW_OBCSN_CONTROL))
266 common /controlaux_5obcsn_r/
267 & xx_obcsn0,
268 & xx_obcsn1
269 #endif
270
271 #if (defined (ALLOW_OBCSS_CONTROL))
272 common /controlaux_5obcss_r/
273 & xx_obcss0,
274 & xx_obcss1
275 #endif
276 #if (defined (ALLOW_OBCSW_CONTROL))
277 common /controlaux_5obcsw_r/
278 & xx_obcsw0,
279 & xx_obcsw1
280 #endif
281 #if (defined (ALLOW_OBCSE_CONTROL))
282 common /controlaux_5obcse_r/
283 & xx_obcse0,
284 & xx_obcse1
285 #endif
286 #endif
287
288 #if (defined (ALLOW_HFLUX_CONTROL))
289 _RL xx_hflux0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
290 _RL xx_hflux1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
291 #elif (defined (ALLOW_ATEMP_CONTROL))
292 _RL xx_atemp0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
293 _RL xx_atemp1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
294 #endif
295 #if (defined (ALLOW_SFLUX_CONTROL))
296 _RL xx_sflux0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
297 _RL xx_sflux1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
298 #elif (defined (ALLOW_AQH_CONTROL))
299 _RL xx_aqh0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
300 _RL xx_aqh1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
301 #endif
302 #if (defined (ALLOW_USTRESS_CONTROL))
303 _RL xx_tauu0(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
304 _RL xx_tauu1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
305 #elif (defined (ALLOW_UWIND_CONTROL))
306 _RL xx_uwind0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
307 _RL xx_uwind1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
308 #endif
309 #if (defined (ALLOW_VSTRESS_CONTROL))
310 _RL xx_tauv0(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
311 _RL xx_tauv1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
312 #elif (defined (ALLOW_VWIND_CONTROL))
313 _RL xx_vwind0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
314 _RL xx_vwind1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
315 #endif
316 cgg(
317 #ifdef ALLOW_OBCSN_CONTROL
318 _RL xx_obcsn0 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs)
319 _RL xx_obcsn1 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs)
320 #endif
321
322 #ifdef ALLOW_OBCSS_CONTROL
323 _RL xx_obcss0 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs)
324 _RL xx_obcss1 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs)
325 #endif
326
327 #ifdef ALLOW_OBCSW_CONTROL
328 _RL xx_obcsw0 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs)
329 _RL xx_obcsw1 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs)
330 #endif
331
332 #ifdef ALLOW_OBCSE_CONTROL
333 _RL xx_obcse0 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs)
334 _RL xx_obcse1 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs)
335 #endif
336 cgg)
337
338
339 c Files where the control variables are stored:
340 c =============================================
341 c
342 c xx_theta_file - control vector temperature part.
343 c xx_salt_file - control vector salinity part.
344 c xx_hflux_file - control vector surface heat flux file.
345 c xx_sflux_file - control vector surface salt flux file.
346 c xx_tauu_file - control vector zonal wind stress file.
347 c xx_tauv_file - control vector meridional wind stress file.
348 c xx_obcsn_file - control vector Uvel at boundary
349 c xx_obcss_file - control vector Vvel at boundary
350 c xx_obcsw_file - control vector temp. at boundary
351 c xx_obcse_file - control vector salin. at boundary
352 common /controlfiles_c/
353 & xx_theta_file
354 & , xx_salt_file
355 & , xx_hflux_file
356 & , xx_sflux_file
357 & , xx_tauu_file
358 & , xx_tauv_file
359 & , xx_atemp_file
360 & , xx_aqh_file
361 & , xx_uwind_file
362 & , xx_vwind_file
363 & , xx_obcsn_file
364 & , xx_obcss_file
365 & , xx_obcsw_file
366 & , xx_obcse_file
367 & , xx_diffkr_file
368 & , xx_kapgm_file
369 & , xx_tr1_file
370 & , xx_sst_file
371 & , xx_sss_file
372 & , xx_hfacc_file
373 & , xx_efluxy_file
374 & , xx_efluxp_file
375 & , xx_bottomdrag_file
376 & , xx_theta_ini_fin_file
377 & , xx_salt_ini_fin_file
378
379 character*(MAX_LEN_FNAM) xx_theta_file
380 character*(MAX_LEN_FNAM) xx_salt_file
381 character*(MAX_LEN_FNAM) xx_hflux_file
382 character*(MAX_LEN_FNAM) xx_sflux_file
383 character*(MAX_LEN_FNAM) xx_tauu_file
384 character*(MAX_LEN_FNAM) xx_tauv_file
385 character*(MAX_LEN_FNAM) xx_atemp_file
386 character*(MAX_LEN_FNAM) xx_aqh_file
387 character*(MAX_LEN_FNAM) xx_uwind_file
388 character*(MAX_LEN_FNAM) xx_vwind_file
389 character*(MAX_LEN_FNAM) xx_obcsn_file
390 character*(MAX_LEN_FNAM) xx_obcss_file
391 character*(MAX_LEN_FNAM) xx_obcsw_file
392 character*(MAX_LEN_FNAM) xx_obcse_file
393 character*(MAX_LEN_FNAM) xx_diffkr_file
394 character*(MAX_LEN_FNAM) xx_kapgm_file
395 character*(MAX_LEN_FNAM) xx_tr1_file
396 character*(MAX_LEN_FNAM) xx_sst_file
397 character*(MAX_LEN_FNAM) xx_sss_file
398 character*(MAX_LEN_FNAM) xx_hfacc_file
399 character*(MAX_LEN_FNAM) xx_efluxy_file
400 character*(MAX_LEN_FNAM) xx_efluxp_file
401 character*(MAX_LEN_FNAM) xx_bottomdrag_file
402 character*(MAX_LEN_FNAM) xx_theta_ini_fin_file
403 character*(MAX_LEN_FNAM) xx_salt_ini_fin_file
404
405 common /packnames_c/
406 & yadmark,
407 & ctrlname,
408 & costname,
409 & scalname,
410 & maskname,
411 & metaname,
412 & yctrlid,
413 & yctrlposunpack,
414 & yctrlpospack
415 character*2 yadmark
416 character*9 ctrlname
417 character*9 costname
418 character*9 scalname
419 character*9 maskname
420 character*9 metaname
421 character*10 yctrlid
422 character*4 yctrlposunpack
423 character*4 yctrlpospack
424
425 c Calendar information for the control variables:
426 c ===============================================
427 c
428 c xx_hfluxperiod - sampling interval for the heat flux control part.
429 c xx_sfluxperiod - sampling interval for the salt flux control part.
430 c xx_tauuperiod - sampling interval for the zonal wind
431 c stress control part.
432 c xx_tauvperiod - sampling interval for the meridional wind
433 c stress control part.
434 c xx_obcsuperiod - sampling interval
435 c xx_obcsvperiod - sampling interval
436 c xx_obcstperiod - sampling interval
437 c xx_obcssperiod - sampling interval
438
439 common /controltimes_r/
440 & xx_hfluxperiod
441 & , xx_sfluxperiod
442 & , xx_tauuperiod
443 & , xx_tauvperiod
444 & , xx_atempperiod
445 & , xx_aqhperiod
446 & , xx_uwindperiod
447 & , xx_vwindperiod
448 & , xx_obcsnperiod
449 & , xx_obcssperiod
450 & , xx_obcswperiod
451 & , xx_obcseperiod
452 _RL xx_hfluxperiod
453 _RL xx_sfluxperiod
454 _RL xx_tauuperiod
455 _RL xx_tauvperiod
456 _RL xx_atempperiod
457 _RL xx_aqhperiod
458 _RL xx_uwindperiod
459 _RL xx_vwindperiod
460 _RL xx_obcsnperiod
461 _RL xx_obcssperiod
462 _RL xx_obcswperiod
463 _RL xx_obcseperiod
464
465 c xx_hfluxstartdate - start date for the heat flux control part.
466 c xx_sfluxstartdate - start date for the salt flux control part.
467 c xx_tauustartdate - start date for the zonal wind stress
468 c control part.
469 c xx_tauvstartdate - start date for the meridional wind stress
470 c control part.
471
472 common /controltimes_i/
473 & xx_hfluxstartdate1
474 & , xx_hfluxstartdate2
475 & , xx_sfluxstartdate1
476 & , xx_sfluxstartdate2
477 & , xx_tauustartdate1
478 & , xx_tauustartdate2
479 & , xx_tauvstartdate1
480 & , xx_tauvstartdate2
481 & , xx_atempstartdate1
482 & , xx_atempstartdate2
483 & , xx_aqhstartdate1
484 & , xx_aqhstartdate2
485 & , xx_uwindstartdate1
486 & , xx_uwindstartdate2
487 & , xx_vwindstartdate1
488 & , xx_vwindstartdate2
489 & , xx_hfluxstartdate
490 & , xx_sfluxstartdate
491 & , xx_tauustartdate
492 & , xx_tauvstartdate
493 & , xx_atempstartdate
494 & , xx_aqhstartdate
495 & , xx_uwindstartdate
496 & , xx_vwindstartdate
497 & , xx_obcsnstartdate1
498 & , xx_obcsnstartdate2
499 & , xx_obcssstartdate1
500 & , xx_obcssstartdate2
501 & , xx_obcswstartdate1
502 & , xx_obcswstartdate2
503 & , xx_obcsestartdate1
504 & , xx_obcsestartdate2
505 & , xx_obcsnstartdate
506 & , xx_obcssstartdate
507 & , xx_obcswstartdate
508 & , xx_obcsestartdate
509 integer xx_hfluxstartdate1
510 integer xx_hfluxstartdate2
511 integer xx_sfluxstartdate1
512 integer xx_sfluxstartdate2
513 integer xx_tauustartdate1
514 integer xx_tauustartdate2
515 integer xx_tauvstartdate1
516 integer xx_tauvstartdate2
517 integer xx_atempstartdate1
518 integer xx_atempstartdate2
519 integer xx_aqhstartdate1
520 integer xx_aqhstartdate2
521 integer xx_uwindstartdate1
522 integer xx_uwindstartdate2
523 integer xx_vwindstartdate1
524 integer xx_vwindstartdate2
525 integer xx_obcsnstartdate1
526 integer xx_obcsnstartdate2
527 integer xx_obcssstartdate1
528 integer xx_obcssstartdate2
529 integer xx_obcswstartdate1
530 integer xx_obcswstartdate2
531 integer xx_obcsestartdate1
532 integer xx_obcsestartdate2
533
534 integer xx_hfluxstartdate(4)
535 integer xx_sfluxstartdate(4)
536 integer xx_tauustartdate(4)
537 integer xx_tauvstartdate(4)
538 integer xx_atempstartdate(4)
539 integer xx_aqhstartdate(4)
540 integer xx_uwindstartdate(4)
541 integer xx_vwindstartdate(4)
542 integer xx_obcsnstartdate(4)
543 integer xx_obcssstartdate(4)
544 integer xx_obcswstartdate(4)
545 integer xx_obcsestartdate(4)
546
547 character*( 80) fname_theta(2)
548 character*( 80) fname_salt(2)
549 character*( 80) fname_hflux(2)
550 character*( 80) fname_sflux(2)
551 character*( 80) fname_tauu(2)
552 character*( 80) fname_tauv(2)
553 character*( 80) fname_atemp(2)
554 character*( 80) fname_aqh(2)
555 character*( 80) fname_uwind(2)
556 character*( 80) fname_vwind(2)
557 character*( 80) fname_obcsn(2)
558 character*( 80) fname_obcss(2)
559 character*( 80) fname_obcsw(2)
560 character*( 80) fname_obcse(2)
561 character*( 80) fname_diffkr(2)
562 character*( 80) fname_kapgm(2)
563 character*( 80) fname_tr1(2)
564 character*( 80) fname_sst(2)
565 character*( 80) fname_sss(2)
566 character*( 80) fname_hfacc(2)
567 character*( 80) fname_efluxy(2)
568 character*( 80) fname_efluxp(2)
569 character*( 80) fname_bottomdrag(2)
570
571 c ==================================================================
572 c END OF HEADER CONTROLVARS
573 c ==================================================================
574
575

  ViewVC Help
Powered by ViewVC 1.1.22