/[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.2.4.1 - (hide annotations) (download)
Fri Jul 12 15:43:53 2002 UTC (21 years, 10 months ago) by heimbach
Branch: release1
CVS Tags: release1_p13_pre, release1_p13, release1_p8, release1_p9, release1_p5, release1_p6, release1_p7, release1_p12, release1_p10, release1_p11, release1_p16, release1_p17, release1_p14, release1_p15, release1_p12_pre
Branch point for: release1_50yr
Changes since 1.2: +365 -28 lines
File MIME type: text/plain
Incorporating new ctrl package.
o adopted from ECCO environment to enable optimization
o added Eliassen Palm fluxes to controls

1 heimbach 1.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 heimbach 1.2.4.1 parameter ( maxcvars = 30 )
25    
26     integer ctrlprec
27     parameter ( ctrlprec = 64 )
28    
29     character*2 yadprefix
30     parameter ( yadprefix = 'ad')
31 heimbach 1.1
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 heimbach 1.2.4.1 & nwetwtile,
45     & nwetvtile,
46     & nwetcglobal,
47     & nwetsglobal,
48     & nwetwglobal,
49     & nwetvglobal
50 heimbach 1.1 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 heimbach 1.2.4.1 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 heimbach 1.1
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 heimbach 1.2.4.1 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 heimbach 1.1 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 heimbach 1.2.4.1 & 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 heimbach 1.1
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 heimbach 1.2.4.1 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 heimbach 1.1 common /controlfiles_c/
278     & xx_theta_file
279     & , xx_salt_file
280 heimbach 1.2.4.1 & , xx_hflux_file
281     & , xx_sflux_file
282 heimbach 1.1 & , xx_tauu_file
283     & , xx_tauv_file
284 heimbach 1.2.4.1 & , 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 heimbach 1.1 & , xx_diffkr_file
293     & , xx_kapgm_file
294 heimbach 1.2.4.1 & , xx_tr1_file
295     & , xx_efluxy_file
296     & , xx_efluxp_file
297    
298 heimbach 1.1 character*(MAX_LEN_FNAM) xx_theta_file
299     character*(MAX_LEN_FNAM) xx_salt_file
300 heimbach 1.2.4.1 character*(MAX_LEN_FNAM) xx_hflux_file
301     character*(MAX_LEN_FNAM) xx_sflux_file
302 heimbach 1.1 character*(MAX_LEN_FNAM) xx_tauu_file
303     character*(MAX_LEN_FNAM) xx_tauv_file
304 heimbach 1.2.4.1 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 heimbach 1.1 character*(MAX_LEN_FNAM) xx_diffkr_file
313     character*(MAX_LEN_FNAM) xx_kapgm_file
314 heimbach 1.2.4.1 character*(MAX_LEN_FNAM) xx_tr1_file
315     character*(MAX_LEN_FNAM) xx_efluxy_file
316     character*(MAX_LEN_FNAM) xx_efluxp_file
317 heimbach 1.1
318     common /packnames_c/
319 heimbach 1.2.4.1 & yadmark,
320     & ctrlname,
321     & costname,
322     & scalname,
323     & maskname,
324     & metaname,
325     & yctrlid
326 heimbach 1.1 character*2 yadmark
327     character*9 ctrlname
328     character*9 costname
329     character*9 scalname
330     character*9 maskname
331     character*9 metaname
332 heimbach 1.2.4.1 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 heimbach 1.1
456     c ==================================================================
457     c END OF HEADER CONTROLVARS
458     c ==================================================================
459    
460    

  ViewVC Help
Powered by ViewVC 1.1.22