/[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.16 - (show annotations) (download)
Wed Nov 17 03:06:12 2004 UTC (19 years, 6 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint57b_post, checkpoint56b_post, checkpoint57, checkpoint56, checkpoint57a_post, checkpoint56a_post, checkpoint56c_post, checkpoint57a_pre
Changes since 1.15: +3 -1 lines
File MIME type: text/plain
o finishing interface btw. dsvd and MITgcm
o SVD seems complete w.r.t. L2 norm of SST, SSS

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

  ViewVC Help
Powered by ViewVC 1.1.22