/[MITgcm]/MITgcm_contrib/heimbach/config_global1x1_tot/code/ctrl.h
ViewVC logotype

Annotation of /MITgcm_contrib/heimbach/config_global1x1_tot/code/ctrl.h

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


Revision 1.1 - (hide annotations) (download)
Fri Jan 14 23:20:22 2005 UTC (20 years, 6 months ago) by heimbach
Branch point for: MAIN, original_nasa_ames
File MIME type: text/plain
Initial revision

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

  ViewVC Help
Powered by ViewVC 1.1.22