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

Annotation of /MITgcm/pkg/ctrl/ctrl.h

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


Revision 1.9 - (hide annotations) (download)
Thu Nov 6 22:05:08 2003 UTC (20 years, 7 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint52d_pre, checkpoint52, checkpoint52f_post, checkpoint52i_pre, hrcube_1, hrcube_2, hrcube_3, checkpoint52e_pre, checkpoint52e_post, checkpoint52b_pre, checkpoint52b_post, checkpoint52c_post, checkpoint52f_pre, checkpoint52d_post, checkpoint52a_pre, checkpoint52i_post, checkpoint52h_pre, branch-netcdf, checkpoint52a_post, ecco_c52_e35, checkpoint51u_post
Branch point for: netcdf-sm0
Changes since 1.8: +5 -0 lines
File MIME type: text/plain
o merging from ecco-branch
o cleaned some cross-dependencies and updated CPP options

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

  ViewVC Help
Powered by ViewVC 1.1.22