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 |
#ifdef CTRL_SET_OLD_MAXCVARS_30 |
26 |
parameter ( maxcvars = 30 ) |
27 |
#else |
28 |
parameter ( maxcvars = 40 ) |
29 |
#endif |
30 |
|
31 |
cph ctrlprec will be set to 32 for ECCO to reduce I/O |
32 |
cph but jeopardizes some gradient checks, so should be |
33 |
cph set to 64 by default. |
34 |
cph Need to put this in namelist at some point! |
35 |
integer ctrlprec |
36 |
#ifdef CTRL_SET_PREC_32 |
37 |
parameter ( ctrlprec = 32 ) |
38 |
#else |
39 |
parameter ( ctrlprec = 64 ) |
40 |
#endif |
41 |
|
42 |
#ifdef ALLOW_ADMTLM |
43 |
integer admtlmrec |
44 |
parameter( admtlmrec = Nx*Ny*(4*Nr+1) ) |
45 |
common / controlvars_admtlm_r / |
46 |
& cbuffGlobal |
47 |
_RL cbuffGlobal( admtlmrec ) |
48 |
#endif |
49 |
|
50 |
common /controlvars_l / |
51 |
& doInitXX, |
52 |
& doAdmTlm, |
53 |
& doPackDiag, |
54 |
& doZscaleUnpack, |
55 |
& doZscalePack, |
56 |
& doMainUnpack, |
57 |
& doMainPack, |
58 |
& doAdmtlmBypassAD |
59 |
|
60 |
logical doInitXX |
61 |
logical doAdmTlm |
62 |
logical doPackDiag |
63 |
logical doZscaleUnpack |
64 |
logical doZscalePack |
65 |
logical doMainUnpack |
66 |
logical doMainPack |
67 |
logical doAdmtlmBypassAD |
68 |
|
69 |
common /controlvars_i/ |
70 |
& nvartype, |
71 |
& nvarlength, |
72 |
& ncvarindex, |
73 |
& ncvarrecs, |
74 |
& ncvarrecstart, |
75 |
& ncvarrecsend, |
76 |
& ncvarxmax, |
77 |
& ncvarymax, |
78 |
& ncvarnrmax, |
79 |
& nwetctile, |
80 |
& nwetstile, |
81 |
& nwetwtile, |
82 |
& nwetvtile, |
83 |
& nwetcglobal, |
84 |
& nwetsglobal, |
85 |
& nwetwglobal, |
86 |
& nwetvglobal, |
87 |
& nbuffglobal |
88 |
integer nvartype |
89 |
integer nvarlength |
90 |
integer ncvarindex ( maxcvars ) |
91 |
integer ncvarrecs ( maxcvars ) |
92 |
integer ncvarrecstart ( maxcvars ) |
93 |
integer ncvarrecsend ( maxcvars ) |
94 |
integer ncvarxmax ( maxcvars ) |
95 |
integer ncvarymax ( maxcvars ) |
96 |
integer ncvarnrmax ( maxcvars ) |
97 |
integer nwetctile ( nsx,nsy,nr ) |
98 |
integer nwetstile ( nsx,nsy,nr ) |
99 |
integer nwetwtile ( nsx,nsy,nr ) |
100 |
integer nwetvtile ( nsx,nsy,nr ) |
101 |
integer nwetcglobal ( nr ) |
102 |
integer nwetsglobal ( nr ) |
103 |
integer nwetwglobal ( nr ) |
104 |
integer nwetvglobal ( nr ) |
105 |
integer nbuffglobal |
106 |
|
107 |
#ifdef ALLOW_OBCSN_CONTROL |
108 |
common /controlvars_i_obcsn/ |
109 |
& nwetobcsn, |
110 |
& nwetobcsnglo |
111 |
integer nwetobcsn ( nsx,nsy,nr,nobcs ) |
112 |
integer nwetobcsnglo ( nr,nobcs ) |
113 |
#endif |
114 |
#ifdef ALLOW_OBCSS_CONTROL |
115 |
common /controlvars_i_obcss/ |
116 |
& nwetobcss, |
117 |
& nwetobcssglo |
118 |
integer nwetobcss ( nsx,nsy,nr,nobcs ) |
119 |
integer nwetobcssglo ( nr,nobcs ) |
120 |
#endif |
121 |
#ifdef ALLOW_OBCSW_CONTROL |
122 |
common /controlvars_i_obcsw/ |
123 |
& nwetobcsw, |
124 |
& nwetobcswglo |
125 |
integer nwetobcsw ( nsx,nsy,nr,nobcs ) |
126 |
integer nwetobcswglo ( nr,nobcs ) |
127 |
#endif |
128 |
#ifdef ALLOW_OBCSE_CONTROL |
129 |
common /controlvars_i_obcse/ |
130 |
& nwetobcse, |
131 |
& nwetobcseglo |
132 |
integer nwetobcse ( nsx,nsy,nr,nobcs ) |
133 |
integer nwetobcseglo ( nr,nobcs ) |
134 |
#endif |
135 |
|
136 |
common /controlvars_c/ |
137 |
& ncvargrd |
138 |
& , yadprefix |
139 |
character*(1) ncvargrd(maxcvars) |
140 |
character*(2) yadprefix |
141 |
|
142 |
common /controlvec_header_i/ |
143 |
& filenvartype, |
144 |
& filenvarlength, |
145 |
& fileOptimCycle, |
146 |
& filencbuffindex, |
147 |
& fileIg, |
148 |
& fileJg, |
149 |
& fileI, |
150 |
& fileJ, |
151 |
& filensx, |
152 |
& filensy, |
153 |
& filek, |
154 |
& filenWetcGlobal, |
155 |
& filenWetsGlobal, |
156 |
& filenWetwGlobal, |
157 |
& filenWetvGlobal, |
158 |
& filencvarindex, |
159 |
& filencvarrecs, |
160 |
& filencvarxmax, |
161 |
& filencvarymax, |
162 |
& filencvarnrmax |
163 |
integer filenvartype |
164 |
integer filenvarlength |
165 |
integer fileOptimCycle |
166 |
integer filencbuffindex |
167 |
integer fileIg |
168 |
integer fileJg |
169 |
integer fileI |
170 |
integer fileJ |
171 |
integer filensx |
172 |
integer filensy |
173 |
integer filek |
174 |
integer filenWetcGlobal(nr) |
175 |
integer filenWetsGlobal(nr) |
176 |
integer filenWetwGlobal(nr) |
177 |
integer filenWetvGlobal(nr) |
178 |
integer filencvarindex(maxcvars) |
179 |
integer filencvarrecs(maxcvars) |
180 |
integer filencvarxmax(maxcvars) |
181 |
integer filencvarymax(maxcvars) |
182 |
integer filencvarnrmax(maxcvars) |
183 |
|
184 |
common /controlvec_header_r/ |
185 |
& filefc |
186 |
_RL filefc |
187 |
|
188 |
common /controlvec_header_c/ |
189 |
& fileYctrlid, |
190 |
& filencvargrd |
191 |
character*(10) fileYctrlid |
192 |
character*( 1) filencvargrd(maxcvars) |
193 |
|
194 |
c Define unit weight as a placeholder |
195 |
common /ctrl_weights_unit_r/ |
196 |
& wunit, |
197 |
& wareaunit |
198 |
_RL wunit (nr,nsx,nsy) |
199 |
_RL wareaunit (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
200 |
|
201 |
#ifndef ALLOW_ECCO |
202 |
common /ctrl_weights_atmos_r/ |
203 |
& whflux, |
204 |
& wsflux, |
205 |
& wtauu, |
206 |
& wtauv, |
207 |
& watemp, |
208 |
& waqh, |
209 |
& wprecip, |
210 |
& wswflux, |
211 |
& wswdown, |
212 |
& wuwind, |
213 |
& wvwind, |
214 |
& wsst, |
215 |
& wsss |
216 |
_RL whflux (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
217 |
_RL wsflux (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
218 |
_RL wtauu (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
219 |
_RL wtauv (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
220 |
_RL watemp (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
221 |
_RL waqh (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
222 |
_RL wprecip (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
223 |
_RL wswflux (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
224 |
_RL wswdown (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
225 |
_RL wuwind (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
226 |
_RL wvwind (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
227 |
_RL wsst (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
228 |
_RL wsss (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
229 |
#endif |
230 |
|
231 |
c Control variables: |
232 |
c ================== |
233 |
c |
234 |
c xx_theta - control vector temperature part. |
235 |
c xx_salt - control vector salt part. |
236 |
c xx_hflux - control vector surface heat flux part. |
237 |
c xx_sflux - control vector surface salt flux part. |
238 |
c xx_tauu - control vector zonal wind stress part. |
239 |
c xx_tauv - control vector meridional wind stress part. |
240 |
cph( |
241 |
c xx_... are to be replaced by tmpfld2d/3d throughout the code; |
242 |
c control variables are written to / read from active files |
243 |
c TAMC sees xx_..._dummy |
244 |
|
245 |
common /controlvars_r/ |
246 |
& tmpfld2d |
247 |
& , tmpfld3d |
248 |
_RL tmpfld2d |
249 |
& (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
250 |
_RL tmpfld3d |
251 |
& (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) |
252 |
|
253 |
#ifdef ALLOW_OPENAD |
254 |
common /controlvars_r_openad/ |
255 |
& xx_theta |
256 |
& , xx_salt |
257 |
& , xx_uvel |
258 |
& , xx_vvel |
259 |
& , xx_etan |
260 |
_RL xx_theta(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) |
261 |
_RL xx_salt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) |
262 |
_RL xx_uvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) |
263 |
_RL xx_vvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) |
264 |
_RL xx_etan(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
265 |
#endif |
266 |
|
267 |
|
268 |
cgg This caused a lot of confusion. |
269 |
#ifdef ALLOW_OBCS_CONTROL |
270 |
common /controlvars_r_obcs/ |
271 |
& tmpfldxz |
272 |
& , tmpfldxz2 |
273 |
& , tmpfldyz |
274 |
& , tmpfldyz2 |
275 |
|
276 |
_RL tmpfldxz (1-olx:snx+olx,nr,nsx,nsy) |
277 |
_RL tmpfldxz2 (1-olx:snx+olx,nr,nsx,nsy) |
278 |
_RL tmpfldyz (1-oly:sny+oly,nr,nsx,nsy) |
279 |
_RL tmpfldyz2 (1-oly:sny+oly,nr,nsx,nsy) |
280 |
#endif |
281 |
|
282 |
c Auxiliary storage arrays for the control variables: |
283 |
c =================================================== |
284 |
c |
285 |
c xx_hflux0 - heat flux record before current date. |
286 |
c xx_hflux1 - heat flux record after current date |
287 |
c xx_sflux0 - salt flux record before current date. |
288 |
c xx_sflux1 - salt flux record after current date. |
289 |
c xx_tauu0 - zonal wind stress record before current date. |
290 |
c xx_tauu1 - zonal wind stress record after current date. |
291 |
c xx_tauv0 - meridional wind stress record before current date. |
292 |
c xx_tauv1 - meridional wind stress record after current date. |
293 |
|
294 |
#if (defined (ALLOW_HFLUX_CONTROL)) |
295 |
common /controlaux_hflux_r/ |
296 |
& xx_hflux0, |
297 |
& xx_hflux1 |
298 |
#elif (defined (ALLOW_ATEMP_CONTROL)) |
299 |
common /controlaux_atemp_r/ |
300 |
& xx_atemp0, |
301 |
& xx_atemp1 |
302 |
#endif |
303 |
|
304 |
#if (defined (ALLOW_SFLUX_CONTROL)) |
305 |
common /controlaux_swflux_r/ |
306 |
& xx_sflux0, |
307 |
& xx_sflux1 |
308 |
#elif (defined (ALLOW_AQH_CONTROL)) |
309 |
common /controlaux_aqh_r/ |
310 |
& xx_aqh0, |
311 |
& xx_aqh1 |
312 |
#endif |
313 |
|
314 |
#if (defined (ALLOW_USTRESS_CONTROL)) |
315 |
common /controlaux_ustress_r/ |
316 |
& xx_tauu0, |
317 |
& xx_tauu1 |
318 |
#elif (defined (ALLOW_UWIND_CONTROL)) |
319 |
common /controlaux_uwind_r/ |
320 |
& xx_uwind0, |
321 |
& xx_uwind1 |
322 |
#endif |
323 |
|
324 |
#if (defined (ALLOW_VSTRESS_CONTROL)) |
325 |
common /controlaux_vstress_r/ |
326 |
& xx_tauv0, |
327 |
& xx_tauv1 |
328 |
#elif (defined (ALLOW_VWIND_CONTROL)) |
329 |
common /controlaux_vwind_r/ |
330 |
& xx_vwind0, |
331 |
& xx_vwind1 |
332 |
#endif |
333 |
|
334 |
#ifdef ALLOW_OBCS_CONTROL |
335 |
#if (defined (ALLOW_OBCSN_CONTROL)) |
336 |
common /controlaux_obcsn_r/ |
337 |
& xx_obcsn0, |
338 |
& xx_obcsn1 |
339 |
#endif |
340 |
|
341 |
#if (defined (ALLOW_OBCSS_CONTROL)) |
342 |
common /controlaux_obcss_r/ |
343 |
& xx_obcss0, |
344 |
& xx_obcss1 |
345 |
#endif |
346 |
#if (defined (ALLOW_OBCSW_CONTROL)) |
347 |
common /controlaux_obcsw_r/ |
348 |
& xx_obcsw0, |
349 |
& xx_obcsw1 |
350 |
#endif |
351 |
#if (defined (ALLOW_OBCSE_CONTROL)) |
352 |
common /controlaux_obcse_r/ |
353 |
& xx_obcse0, |
354 |
& xx_obcse1 |
355 |
#endif |
356 |
#endif |
357 |
|
358 |
#if (defined (ALLOW_PRECIP_CONTROL)) |
359 |
common /controlaux_precip_r/ |
360 |
& xx_precip0, |
361 |
& xx_precip1 |
362 |
#endif |
363 |
|
364 |
#if (defined (ALLOW_SWFLUX_CONTROL)) |
365 |
common /controlaux_swflux_r/ |
366 |
& xx_swflux0, |
367 |
& xx_swflux1 |
368 |
#endif |
369 |
|
370 |
#if (defined (ALLOW_SWDOWN_CONTROL)) |
371 |
common /controlaux_swdown_r/ |
372 |
& xx_swdown0, |
373 |
& xx_swdown1 |
374 |
#endif |
375 |
|
376 |
#if (defined (ALLOW_SST_CONTROL)) |
377 |
common /controlaux_sst_r/ |
378 |
& xx_sst0, |
379 |
& xx_sst1 |
380 |
#endif |
381 |
#if (defined (ALLOW_SSS_CONTROL)) |
382 |
common /controlaux_sss_r/ |
383 |
& xx_sss0, |
384 |
& xx_sss1 |
385 |
#endif |
386 |
|
387 |
#if (defined (ALLOW_HFLUX_CONTROL)) |
388 |
_RL xx_hflux0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
389 |
_RL xx_hflux1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
390 |
#elif (defined (ALLOW_ATEMP_CONTROL)) |
391 |
_RL xx_atemp0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
392 |
_RL xx_atemp1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
393 |
#endif |
394 |
#if (defined (ALLOW_SFLUX_CONTROL)) |
395 |
_RL xx_sflux0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
396 |
_RL xx_sflux1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
397 |
#elif (defined (ALLOW_AQH_CONTROL)) |
398 |
_RL xx_aqh0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
399 |
_RL xx_aqh1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
400 |
#endif |
401 |
#if (defined (ALLOW_USTRESS_CONTROL)) |
402 |
_RL xx_tauu0(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
403 |
_RL xx_tauu1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
404 |
#elif (defined (ALLOW_UWIND_CONTROL)) |
405 |
_RL xx_uwind0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
406 |
_RL xx_uwind1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
407 |
#endif |
408 |
#if (defined (ALLOW_VSTRESS_CONTROL)) |
409 |
_RL xx_tauv0(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
410 |
_RL xx_tauv1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
411 |
#elif (defined (ALLOW_VWIND_CONTROL)) |
412 |
_RL xx_vwind0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
413 |
_RL xx_vwind1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
414 |
#endif |
415 |
#if (defined (ALLOW_PRECIP_CONTROL)) |
416 |
_RL xx_precip0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
417 |
_RL xx_precip1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
418 |
#endif |
419 |
#if (defined (ALLOW_SWFLUX_CONTROL)) |
420 |
_RL xx_swflux0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
421 |
_RL xx_swflux1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
422 |
#endif |
423 |
#if (defined (ALLOW_SWDOWN_CONTROL)) |
424 |
_RL xx_swdown0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
425 |
_RL xx_swdown1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
426 |
#endif |
427 |
#if (defined (ALLOW_SST_CONTROL)) |
428 |
_RL xx_sst0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
429 |
_RL xx_sst1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
430 |
#endif |
431 |
#if (defined (ALLOW_SSS_CONTROL)) |
432 |
_RL xx_sss0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
433 |
_RL xx_sss1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) |
434 |
#endif |
435 |
|
436 |
#ifdef ALLOW_OBCSN_CONTROL |
437 |
_RL xx_obcsn0 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs) |
438 |
_RL xx_obcsn1 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs) |
439 |
#endif |
440 |
#ifdef ALLOW_OBCSS_CONTROL |
441 |
_RL xx_obcss0 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs) |
442 |
_RL xx_obcss1 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs) |
443 |
#endif |
444 |
#ifdef ALLOW_OBCSW_CONTROL |
445 |
_RL xx_obcsw0 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs) |
446 |
_RL xx_obcsw1 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs) |
447 |
#endif |
448 |
#ifdef ALLOW_OBCSE_CONTROL |
449 |
_RL xx_obcse0 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs) |
450 |
_RL xx_obcse1 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs) |
451 |
#endif |
452 |
|
453 |
|
454 |
c Files where the control variables are stored: |
455 |
c ============================================= |
456 |
c |
457 |
c xx_theta_file - control vector temperature part. |
458 |
c xx_salt_file - control vector salinity part. |
459 |
c xx_hflux_file - control vector surface heat flux file. |
460 |
c xx_sflux_file - control vector surface salt flux file. |
461 |
c xx_tauu_file - control vector zonal wind stress file. |
462 |
c xx_tauv_file - control vector meridional wind stress file. |
463 |
c xx_obcsn_file - control vector Uvel at boundary |
464 |
c xx_obcss_file - control vector Vvel at boundary |
465 |
c xx_obcsw_file - control vector temp. at boundary |
466 |
c xx_obcse_file - control vector salin. at boundary |
467 |
common /controlfiles_c/ |
468 |
& xx_theta_file |
469 |
& , xx_salt_file |
470 |
& , xx_hflux_file |
471 |
& , xx_sflux_file |
472 |
& , xx_tauu_file |
473 |
& , xx_tauv_file |
474 |
& , xx_atemp_file |
475 |
& , xx_aqh_file |
476 |
& , xx_precip_file |
477 |
& , xx_swflux_file |
478 |
& , xx_swdown_file |
479 |
& , xx_uwind_file |
480 |
& , xx_vwind_file |
481 |
& , xx_obcsn_file |
482 |
& , xx_obcss_file |
483 |
& , xx_obcsw_file |
484 |
& , xx_obcse_file |
485 |
& , xx_diffkr_file |
486 |
& , xx_kapgm_file |
487 |
& , xx_tr1_file |
488 |
& , xx_sst_file |
489 |
& , xx_sss_file |
490 |
& , xx_hfacc_file |
491 |
& , xx_efluxy_file |
492 |
& , xx_efluxp_file |
493 |
& , xx_bottomdrag_file |
494 |
& , xx_edtaux_file |
495 |
& , xx_edtauy_file |
496 |
& , xx_uvel_file |
497 |
& , xx_vvel_file |
498 |
& , xx_etan_file |
499 |
& , xx_relaxsst_file |
500 |
& , xx_relaxsss_file |
501 |
& , xx_theta_ini_fin_file |
502 |
& , xx_salt_ini_fin_file |
503 |
|
504 |
character*(MAX_LEN_FNAM) xx_theta_file |
505 |
character*(MAX_LEN_FNAM) xx_salt_file |
506 |
character*(MAX_LEN_FNAM) xx_hflux_file |
507 |
character*(MAX_LEN_FNAM) xx_sflux_file |
508 |
character*(MAX_LEN_FNAM) xx_tauu_file |
509 |
character*(MAX_LEN_FNAM) xx_tauv_file |
510 |
character*(MAX_LEN_FNAM) xx_atemp_file |
511 |
character*(MAX_LEN_FNAM) xx_aqh_file |
512 |
character*(MAX_LEN_FNAM) xx_precip_file |
513 |
character*(MAX_LEN_FNAM) xx_swflux_file |
514 |
character*(MAX_LEN_FNAM) xx_swdown_file |
515 |
character*(MAX_LEN_FNAM) xx_uwind_file |
516 |
character*(MAX_LEN_FNAM) xx_vwind_file |
517 |
character*(MAX_LEN_FNAM) xx_obcsn_file |
518 |
character*(MAX_LEN_FNAM) xx_obcss_file |
519 |
character*(MAX_LEN_FNAM) xx_obcsw_file |
520 |
character*(MAX_LEN_FNAM) xx_obcse_file |
521 |
character*(MAX_LEN_FNAM) xx_diffkr_file |
522 |
character*(MAX_LEN_FNAM) xx_kapgm_file |
523 |
character*(MAX_LEN_FNAM) xx_tr1_file |
524 |
character*(MAX_LEN_FNAM) xx_sst_file |
525 |
character*(MAX_LEN_FNAM) xx_sss_file |
526 |
character*(MAX_LEN_FNAM) xx_hfacc_file |
527 |
character*(MAX_LEN_FNAM) xx_efluxy_file |
528 |
character*(MAX_LEN_FNAM) xx_efluxp_file |
529 |
character*(MAX_LEN_FNAM) xx_bottomdrag_file |
530 |
character*(MAX_LEN_FNAM) xx_edtaux_file |
531 |
character*(MAX_LEN_FNAM) xx_edtauy_file |
532 |
character*(MAX_LEN_FNAM) xx_uvel_file |
533 |
character*(MAX_LEN_FNAM) xx_vvel_file |
534 |
character*(MAX_LEN_FNAM) xx_etan_file |
535 |
character*(MAX_LEN_FNAM) xx_relaxsst_file |
536 |
character*(MAX_LEN_FNAM) xx_relaxsss_file |
537 |
character*(MAX_LEN_FNAM) xx_theta_ini_fin_file |
538 |
character*(MAX_LEN_FNAM) xx_salt_ini_fin_file |
539 |
|
540 |
common /packnames_c/ |
541 |
& yadmark, |
542 |
& ctrlname, |
543 |
& costname, |
544 |
& scalname, |
545 |
& maskname, |
546 |
& metaname, |
547 |
& yctrlid, |
548 |
& yctrlposunpack, |
549 |
& yctrlpospack |
550 |
character*2 yadmark |
551 |
character*9 ctrlname |
552 |
character*9 costname |
553 |
character*9 scalname |
554 |
character*9 maskname |
555 |
character*9 metaname |
556 |
character*10 yctrlid |
557 |
character*4 yctrlposunpack |
558 |
character*4 yctrlpospack |
559 |
|
560 |
c Calendar information for the control variables: |
561 |
c =============================================== |
562 |
c |
563 |
c xx_hfluxperiod - sampling interval for the heat flux control part. |
564 |
c xx_sfluxperiod - sampling interval for the salt flux control part. |
565 |
c xx_tauuperiod - sampling interval for the zonal wind |
566 |
c stress control part. |
567 |
c xx_tauvperiod - sampling interval for the meridional wind |
568 |
c stress control part. |
569 |
c xx_obcsuperiod - sampling interval |
570 |
c xx_obcsvperiod - sampling interval |
571 |
c xx_obcstperiod - sampling interval |
572 |
c xx_obcssperiod - sampling interval |
573 |
|
574 |
common /controltimes_r/ |
575 |
& xx_hfluxperiod |
576 |
& , xx_sfluxperiod |
577 |
& , xx_tauuperiod |
578 |
& , xx_tauvperiod |
579 |
& , xx_atempperiod |
580 |
& , xx_aqhperiod |
581 |
& , xx_precipperiod |
582 |
& , xx_swfluxperiod |
583 |
& , xx_swdownperiod |
584 |
& , xx_uwindperiod |
585 |
& , xx_vwindperiod |
586 |
& , xx_sstperiod |
587 |
& , xx_sssperiod |
588 |
& , xx_obcsnperiod |
589 |
& , xx_obcssperiod |
590 |
& , xx_obcswperiod |
591 |
& , xx_obcseperiod |
592 |
_RL xx_hfluxperiod |
593 |
_RL xx_sfluxperiod |
594 |
_RL xx_tauuperiod |
595 |
_RL xx_tauvperiod |
596 |
_RL xx_atempperiod |
597 |
_RL xx_aqhperiod |
598 |
_RL xx_precipperiod |
599 |
_RL xx_swfluxperiod |
600 |
_RL xx_swdownperiod |
601 |
_RL xx_uwindperiod |
602 |
_RL xx_vwindperiod |
603 |
_RL xx_sstperiod |
604 |
_RL xx_sssperiod |
605 |
_RL xx_obcsnperiod |
606 |
_RL xx_obcssperiod |
607 |
_RL xx_obcswperiod |
608 |
_RL xx_obcseperiod |
609 |
|
610 |
common /ctrl_param_trend_removal/ |
611 |
& xx_hflux_remo_intercept, xx_hflux_remo_slope, |
612 |
& xx_sflux_remo_intercept, xx_sflux_remo_slope, |
613 |
& xx_tauu_remo_intercept, xx_tauu_remo_slope, |
614 |
& xx_tauv_remo_intercept, xx_tauv_remo_slope, |
615 |
& xx_atemp_remo_intercept, xx_atemp_remo_slope, |
616 |
& xx_aqh_remo_intercept, xx_aqh_remo_slope, |
617 |
& xx_precip_remo_intercept, xx_precip_remo_slope, |
618 |
& xx_swflux_remo_intercept, xx_swflux_remo_slope, |
619 |
& xx_swdown_remo_intercept, xx_swdown_remo_slope, |
620 |
& xx_uwind_remo_intercept, xx_uwind_remo_slope, |
621 |
& xx_vwind_remo_intercept, xx_vwind_remo_slope |
622 |
|
623 |
_RL xx_hflux_remo_intercept, xx_hflux_remo_slope |
624 |
_RL xx_sflux_remo_intercept, xx_sflux_remo_slope |
625 |
_RL xx_tauu_remo_intercept, xx_tauu_remo_slope |
626 |
_RL xx_tauv_remo_intercept, xx_tauv_remo_slope |
627 |
_RL xx_atemp_remo_intercept, xx_atemp_remo_slope |
628 |
_RL xx_aqh_remo_intercept, xx_aqh_remo_slope |
629 |
_RL xx_precip_remo_intercept, xx_precip_remo_slope |
630 |
_RL xx_swflux_remo_intercept, xx_swflux_remo_slope |
631 |
_RL xx_swdown_remo_intercept, xx_swdown_remo_slope |
632 |
_RL xx_uwind_remo_intercept, xx_uwind_remo_slope |
633 |
_RL xx_vwind_remo_intercept, xx_vwind_remo_slope |
634 |
|
635 |
|
636 |
c xx_hfluxstartdate - start date for the heat flux control part. |
637 |
c xx_sfluxstartdate - start date for the salt flux control part. |
638 |
c xx_tauustartdate - start date for the zonal wind stress |
639 |
c control part. |
640 |
c xx_tauvstartdate - start date for the meridional wind stress |
641 |
c control part. |
642 |
|
643 |
common /controltimes_i/ |
644 |
& xx_hfluxstartdate1 |
645 |
& , xx_hfluxstartdate2 |
646 |
& , xx_sfluxstartdate1 |
647 |
& , xx_sfluxstartdate2 |
648 |
& , xx_tauustartdate1 |
649 |
& , xx_tauustartdate2 |
650 |
& , xx_tauvstartdate1 |
651 |
& , xx_tauvstartdate2 |
652 |
& , xx_atempstartdate1 |
653 |
& , xx_atempstartdate2 |
654 |
& , xx_aqhstartdate1 |
655 |
& , xx_aqhstartdate2 |
656 |
& , xx_precipstartdate1 |
657 |
& , xx_precipstartdate2 |
658 |
& , xx_swfluxstartdate1 |
659 |
& , xx_swfluxstartdate2 |
660 |
& , xx_swdownstartdate1 |
661 |
& , xx_swdownstartdate2 |
662 |
& , xx_uwindstartdate1 |
663 |
& , xx_uwindstartdate2 |
664 |
& , xx_vwindstartdate1 |
665 |
& , xx_vwindstartdate2 |
666 |
& , xx_sststartdate1 |
667 |
& , xx_sststartdate2 |
668 |
& , xx_sssstartdate1 |
669 |
& , xx_sssstartdate2 |
670 |
& , xx_hfluxstartdate |
671 |
& , xx_sfluxstartdate |
672 |
& , xx_tauustartdate |
673 |
& , xx_tauvstartdate |
674 |
& , xx_atempstartdate |
675 |
& , xx_aqhstartdate |
676 |
& , xx_precipstartdate |
677 |
& , xx_swfluxstartdate |
678 |
& , xx_swdownstartdate |
679 |
& , xx_uwindstartdate |
680 |
& , xx_vwindstartdate |
681 |
& , xx_sststartdate |
682 |
& , xx_sssstartdate |
683 |
& , xx_obcsnstartdate1 |
684 |
& , xx_obcsnstartdate2 |
685 |
& , xx_obcssstartdate1 |
686 |
& , xx_obcssstartdate2 |
687 |
& , xx_obcswstartdate1 |
688 |
& , xx_obcswstartdate2 |
689 |
& , xx_obcsestartdate1 |
690 |
& , xx_obcsestartdate2 |
691 |
& , xx_obcsnstartdate |
692 |
& , xx_obcssstartdate |
693 |
& , xx_obcswstartdate |
694 |
& , xx_obcsestartdate |
695 |
integer xx_hfluxstartdate1 |
696 |
integer xx_hfluxstartdate2 |
697 |
integer xx_sfluxstartdate1 |
698 |
integer xx_sfluxstartdate2 |
699 |
integer xx_tauustartdate1 |
700 |
integer xx_tauustartdate2 |
701 |
integer xx_tauvstartdate1 |
702 |
integer xx_tauvstartdate2 |
703 |
integer xx_atempstartdate1 |
704 |
integer xx_atempstartdate2 |
705 |
integer xx_aqhstartdate1 |
706 |
integer xx_aqhstartdate2 |
707 |
integer xx_precipstartdate1 |
708 |
integer xx_precipstartdate2 |
709 |
integer xx_swfluxstartdate1 |
710 |
integer xx_swfluxstartdate2 |
711 |
integer xx_swdownstartdate1 |
712 |
integer xx_swdownstartdate2 |
713 |
integer xx_uwindstartdate1 |
714 |
integer xx_uwindstartdate2 |
715 |
integer xx_vwindstartdate1 |
716 |
integer xx_vwindstartdate2 |
717 |
integer xx_sststartdate1 |
718 |
integer xx_sststartdate2 |
719 |
integer xx_sssstartdate1 |
720 |
integer xx_sssstartdate2 |
721 |
integer xx_obcsnstartdate1 |
722 |
integer xx_obcsnstartdate2 |
723 |
integer xx_obcssstartdate1 |
724 |
integer xx_obcssstartdate2 |
725 |
integer xx_obcswstartdate1 |
726 |
integer xx_obcswstartdate2 |
727 |
integer xx_obcsestartdate1 |
728 |
integer xx_obcsestartdate2 |
729 |
|
730 |
integer xx_hfluxstartdate(4) |
731 |
integer xx_sfluxstartdate(4) |
732 |
integer xx_tauustartdate(4) |
733 |
integer xx_tauvstartdate(4) |
734 |
integer xx_atempstartdate(4) |
735 |
integer xx_aqhstartdate(4) |
736 |
integer xx_precipstartdate(4) |
737 |
integer xx_swfluxstartdate(4) |
738 |
integer xx_swdownstartdate(4) |
739 |
integer xx_uwindstartdate(4) |
740 |
integer xx_vwindstartdate(4) |
741 |
integer xx_sststartdate(4) |
742 |
integer xx_sssstartdate(4) |
743 |
integer xx_obcsnstartdate(4) |
744 |
integer xx_obcssstartdate(4) |
745 |
integer xx_obcswstartdate(4) |
746 |
integer xx_obcsestartdate(4) |
747 |
|
748 |
character*( 80) fname_theta(2) |
749 |
character*( 80) fname_salt(2) |
750 |
character*( 80) fname_hflux(2) |
751 |
character*( 80) fname_sflux(2) |
752 |
character*( 80) fname_tauu(2) |
753 |
character*( 80) fname_tauv(2) |
754 |
character*( 80) fname_atemp(2) |
755 |
character*( 80) fname_aqh(2) |
756 |
character*( 80) fname_precip(2) |
757 |
character*( 80) fname_swflux(2) |
758 |
character*( 80) fname_swdown(2) |
759 |
character*( 80) fname_uwind(2) |
760 |
character*( 80) fname_vwind(2) |
761 |
character*( 80) fname_obcsn(2) |
762 |
character*( 80) fname_obcss(2) |
763 |
character*( 80) fname_obcsw(2) |
764 |
character*( 80) fname_obcse(2) |
765 |
character*( 80) fname_diffkr(2) |
766 |
character*( 80) fname_kapgm(2) |
767 |
character*( 80) fname_tr1(2) |
768 |
character*( 80) fname_sst(2) |
769 |
character*( 80) fname_sss(2) |
770 |
character*( 80) fname_hfacc(2) |
771 |
character*( 80) fname_efluxy(2) |
772 |
character*( 80) fname_efluxp(2) |
773 |
character*( 80) fname_bottomdrag(2) |
774 |
character*( 80) fname_edtaux(2) |
775 |
character*( 80) fname_edtauy(2) |
776 |
character*( 80) fname_uvel(2) |
777 |
character*( 80) fname_vvel(2) |
778 |
character*( 80) fname_etan(2) |
779 |
character*( 80) fname_relaxsst(2) |
780 |
character*( 80) fname_relaxsss(2) |
781 |
|
782 |
#ifdef ALLOW_ADMTLM |
783 |
integer maxm, maxn |
784 |
parameter ( maxm = Nx*Ny*(4*Nr+1), maxn=Nx*Ny*(4*Nr+1) ) |
785 |
|
786 |
common /admtlm_i/ nveccount |
787 |
integer nveccount |
788 |
|
789 |
common /admtlm_r/ phtmpadmtlm |
790 |
double precision phtmpadmtlm(maxn) |
791 |
#endif |
792 |
|
793 |
|
794 |
c ================================================================== |
795 |
c END OF HEADER CONTROLVARS |
796 |
c ================================================================== |
797 |
|
798 |
|