/[MITgcm]/MITgcm/pkg/ecco/ecco_cost.h
ViewVC logotype

Annotation of /MITgcm/pkg/ecco/ecco_cost.h

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


Revision 1.5 - (hide annotations) (download)
Fri May 27 22:10:27 2005 UTC (18 years, 11 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint57m_post, checkpoint57k_post, checkpoint57i_post, checkpoint57j_post, checkpoint57l_post
Changes since 1.4: +9 -0 lines
File MIME type: text/plain
o adding some cost transport diagnostics
o adding second set of flux weights whflux2, etc
o for mean SSH, read TOPEX mean first to compute effective mask

1 heimbach 1.1
2     c ==================================================================
3     c HEADER AVERAGES
4     c ==================================================================
5     c
6     c o Header for averaged temperature, salinity, and surface pressure
7     c fields and counters associated with the averaging.
8     c
9     c started: Christian Eckert eckert@mit.edu 30-Jun-1999
10 heimbach 1.2 c
11 heimbach 1.1 c added sea-ice term: menemenlis@jpl.nasa.gov 26-Feb-2003
12     c
13     c ==================================================================
14     c HEADER AVERAGES
15     c ==================================================================
16    
17     c Averaging counters:
18     c ===================
19     c
20     c sum1day - counter for the daily averaging
21     c sum1mon - counter for the monthly averaging
22     c dayrec - number of averaged surface pressure records.
23     c monrec - number of averaged theta and salinity records.
24    
25     common /average_i/
26     & sum1day,sum1mon,
27     & dayrec,monrec
28     integer sum1day
29     integer sum1mon
30     integer dayrec
31     integer monrec
32    
33    
34     c Averaged Fields:
35     c ================
36     c
37     c tbar - contains the averaged temperature field after the call
38     c to subroutine POST_MONTHLY. Before, it accumulates the
39     c intantaneous temperatures.
40     c sbar - contains the averaged salinity field after the call
41     c to subroutine POST_MONTHLY. Before, it accumulates the
42     c intantaneous salinities.
43     c psbar - contains the averaged surface pressure field after the call
44     c to subroutine POST_DAILY. Before, it accumulates the
45     c intantaneous surface pressure field.
46     c ubar - contains the averaged zonal velocity component for the
47     c whole integration period. Before, it accumulates the
48     c intantaneous field.
49     c vbar - contains the averaged zonal velocity component for the
50     c whole integration period. Before, it accumulates the
51     c intantaneous field.
52     c tauxbar - contains the averaged zonal velocity component for the
53     c whole integration period. Before, it accumulates the
54     c intantaneous field.
55     c tauybar - contains the averaged zonal velocity component for the
56     c whole integration period. Before, it accumulates the
57     c intantaneous field.
58     c hfluxbar - contains the averaged zonal velocity component for the
59     c whole integration period. Before, it accumulates the
60     c intantaneous field.
61     c sfluxbar - contains the averaged zonal velocity component for the
62     c whole integration period. Before, it accumulates the
63     c intantaneous field.
64    
65     common /averages_r/
66     & tbar,
67     & sbar,
68     & psbar,
69     & ubar,
70     & vbar,
71     & wbar,
72     & tauxbar,
73     & tauybar,
74     & hfluxbar,
75     & sfluxbar,
76     & Slmean,
77     & Tlmean,
78     & wlmean,
79     & Sfmean,
80     & Tfmean,
81 heimbach 1.2 & sbar_gen,
82     & tbar_gen,
83     & wfmean
84 heimbach 1.1
85     #if (defined (ALLOW_THETA_COST_CONTRIBUTION) || \
86     defined (ALLOW_CTDT_COST_CONTRIBUTION) || \
87     defined (ALLOW_XBT_COST_CONTRIBUTION) || \
88     defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \
89     defined (ALLOW_OBCS_COST_CONTRIBUTION))
90     _RL tbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
91     #else
92 heimbach 1.2 #ifdef ALLOW_SST_COST_CONTRIBUTION
93     _RL tbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
94     #else
95 heimbach 1.1 _RL tbar
96     #endif
97 heimbach 1.2 #endif
98     #ifdef GENERIC_BAR_MONTH
99     _RL tbar_gen (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
100     _RL sbar_gen (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
101     #else
102     _RL tbar_gen
103     _RL sbar_gen
104     #endif
105 heimbach 1.1
106     #if (defined (ALLOW_SALT_COST_CONTRIBUTION) || \
107     defined (ALLOW_CTDS_COST_CONTRIBUTION) || \
108     defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \
109     defined (ALLOW_OBCS_COST_CONTRIBUTION))
110     _RL sbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
111     #else
112 heimbach 1.2 #ifdef ALLOW_SSS_COST_CONTRIBUTION
113     _RL sbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
114     #else
115 heimbach 1.1 _RL sbar
116     #endif
117     #endif
118    
119     #ifdef ALLOW_SSH_COST_CONTRIBUTION
120     _RL psbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
121     #else
122     _RL psbar
123     #endif
124    
125     #if (defined (ALLOW_DRIFTER_COST_CONTRIBUTION) || \
126 heimbach 1.2 defined (ALLOW_OBCS_COST_CONTRIBUTION))
127 heimbach 1.1 _RL ubar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
128     _RL vbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
129     #else
130     _RL ubar
131     _RL vbar
132     #endif
133    
134     #ifdef ALLOW_DRIFTW_COST_CONTRIBUTION
135     _RL wbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
136     #else
137     _RL wbar
138     #endif
139    
140     #ifdef ALLOW_DRIFT_COST_CONTRIBUTION
141     _RL Tlmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
142     _RL Slmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
143     _RL Tfmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
144     _RL Sfmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
145     #else
146     _RL Tlmean
147     _RL Slmean
148     _RL Tfmean
149     _RL Sfmean
150     #endif
151    
152     #ifdef ALLOW_DRIFTW_COST_CONTRIBUTION
153     _RL wlmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
154     _RL wfmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
155     #else
156     _RL wlmean
157     _RL wfmean
158     #endif
159    
160     #ifdef ALLOW_SCAT_COST_CONTRIBUTION
161     _RL tauxbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
162     _RL tauybar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
163     #else
164     _RL tauxbar
165     _RL tauybar
166     #endif
167    
168     #ifdef ALLOW_MEAN_HFLUX_COST_CONTRIBUTION
169     _RL hfluxbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
170     #else
171     _RL hfluxbar
172     #endif
173    
174     #ifdef ALLOW_MEAN_SFLUX_COST_CONTRIBUTION
175     _RL sfluxbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
176     #else
177     _RL sfluxbar
178     #endif
179    
180    
181     common /averages_c/
182     & tbarfile,
183     & sbarfile,
184     & psbarfile,
185     & ubarfile,
186     & vbarfile,
187     & wbarfile,
188     & tauxbarfile,
189     & tauybarfile,
190     & hfluxbarfile,
191     & sfluxbarfile
192     character*(MAX_LEN_FNAM) tbarfile
193     character*(MAX_LEN_FNAM) sbarfile
194     character*(MAX_LEN_FNAM) psbarfile
195     character*(MAX_LEN_FNAM) ubarfile
196     character*(MAX_LEN_FNAM) vbarfile
197     character*(MAX_LEN_FNAM) wbarfile
198     character*(MAX_LEN_FNAM) tauxbarfile
199     character*(MAX_LEN_FNAM) tauybarfile
200     character*(MAX_LEN_FNAM) hfluxbarfile
201     character*(MAX_LEN_FNAM) sfluxbarfile
202    
203     c file precision and field type
204    
205     common /prec_type_cost/
206     & cost_iprec,
207     & cost_yftype
208    
209     integer cost_iprec
210     character*(2) cost_yftype
211    
212     c ==================================================================
213     c END OF HEADER AVERAGES
214     c ==================================================================
215    
216    
217    
218     c ==================================================================
219     c HEADER COST
220     c ==================================================================
221     c
222     c o Header for model-data comparison.
223     c
224     c The individual cost function contributions are multiplied by
225     c factors mult_"var" which allow to switch off these contributions
226     c without removing them in the adjoint code. This is useful for
227     c doing tests with the adjoint and perhaps useful in assimilation
228     c experiments where individual contributions are successively
229     c switched on. For future applications it would be better to place
230     c the initialisation of the multipliers somewhere else, for example
231     c in a namelist, which is read in at the start of the model.
232     c
233     c started: Christian Eckert eckert@mit.edu 24-Feb-1999
234     c
235     c changed: Christian Eckert eckert@mit.edu
236     c
237     c
238     c ==================================================================
239     c HEADER COST
240     c ==================================================================
241    
242    
243     c The cost function, its contributions, and multipliers:
244     c ======================================================
245     c
246     c fc - Final cost function.
247     c objf_hflux - Heat flux contribution.
248     c objf_sflux - Salt flux contribution.
249     c objf_tauu - Zonal wind stress contribution.
250     c objf_tauv - Meridional wind stress contribution.
251     c objf_hfluxm - time-mean Heat flux contribution.
252     c objf_sfluxm - time-mean Salt flux contribution.
253     c objf_tauum - time-mean Zonal wind stress contribution.
254     c objf_tauvm - time-mean Meridional wind stress contribution.
255     c objf_hfluxmm - Global time-mean Heat flux contribution.
256     c objf_sfluxmm - Global time-mean Salt flux contribution.
257     c objf_hmean - Mean sea surface height contribution.
258     c objf_h - Residual sea surface height contribution.
259     c objf_temp - Temperature contribution.
260     c objf_salt - Salinity contribution.
261     c objf_temp0 - Initial conditions Temperature contribution.
262     c objf_salt0 - Initial conditions Salinity contribution.
263 heimbach 1.2 c objf_sst - Sea surface temperature contribution.
264 heimbach 1.1 c objf_tmi - Sea surface temperature contribution.
265     c objf_sss - Sea surface salinity contribution.
266     c objf_ctdt - Temperature measurements from Woce CTD
267     c objf_ctds - Salinity measurements from Woce CTD
268 heimbach 1.2 c objf_ctdtclim - Temperature measurements from Woce CTD without timetag
269     c objf_ctdsclim - Salinity measurements from Woce CTD without timetag
270 heimbach 1.1 c objf_xbt - XBT temperature data
271     c objf_argot - ARGO temperature profiles
272     c objf_argos - ARGO salt profiles
273     c objf_scatxm - time-mean zonal SCAT contribution
274     c objf_scatym - time-mean meridional SCAT contribution
275     c objf_scatx - zonal SCAT contribution
276     c objf_scaty - meridional SCAT contribution
277     c objf_ice - sea-ice volume
278     c objf_kapgm - kappa GM contribution
279     c objf_diffkr - diffusion contribution
280     c objf_theta_ini_fin - final vs. initial theta misfit
281     c objf_salt_ini_fin - final vs. initial salt misfit
282     c
283     c mult_"var" - multipliers for the individual cost
284     c function contributions.
285    
286     common /ecco_cost_objf/
287     & objf_hflux,
288     & objf_hfluxm,
289     & objf_hfluxmm,
290     & objf_sflux,
291     & objf_sfluxm,
292     & objf_sfluxmm,
293     & objf_tauu,
294     & objf_tauum,
295     & objf_tauv,
296     & objf_tauvm,
297     & objf_hmean,
298     & objf_h,
299     & objf_temp,
300     & objf_salt,
301     & objf_temp0,
302     & objf_salt0,
303 heimbach 1.2 & objf_sst,
304 heimbach 1.1 & objf_tmi,
305     & objf_sss,
306     & objf_ctdt,
307     & objf_ctds,
308     & objf_ctdtclim,
309     & objf_ctdsclim,
310     & objf_xbt,
311     & objf_argot,
312     & objf_argos,
313     & objf_drift,
314     & objf_tdrift,
315     & objf_sdrift,
316     & objf_wdrift,
317     & objf_scatx,
318     & objf_scaty,
319     & objf_scatxm,
320     & objf_scatym,
321     & objf_atemp,
322     & objf_aqh,
323     & objf_uwind,
324     & objf_vwind,
325     & objf_obcsn,
326     & objf_obcss,
327     & objf_obcsw,
328     & objf_obcse,
329     & objf_obcsvol,
330     & objf_curmtr,
331     & objf_ageos,
332     & objf_ice,
333     & objf_diffkr,
334     & objf_theta_ini_fin,
335 heimbach 1.3 & objf_salt_ini_fin,
336     & objf_eddytau
337 heimbach 1.2
338 heimbach 1.1 _RL objf_hflux (nsx,nsy)
339     _RL objf_hfluxm (nsx,nsy)
340     _RL objf_hfluxmm(nsx,nsy)
341     _RL objf_sflux (nsx,nsy)
342     _RL objf_sfluxm (nsx,nsy)
343     _RL objf_sfluxmm(nsx,nsy)
344     _RL objf_tauu (nsx,nsy)
345     _RL objf_tauum (nsx,nsy)
346     _RL objf_tauv (nsx,nsy)
347     _RL objf_tauvm (nsx,nsy)
348 heimbach 1.2 _RL objf_hmean
349 heimbach 1.1 _RL objf_h (nsx,nsy)
350     _RL objf_temp (nsx,nsy)
351     _RL objf_salt (nsx,nsy)
352     _RL objf_temp0(nsx,nsy)
353     _RL objf_salt0(nsx,nsy)
354 heimbach 1.2 _RL objf_sst (nsx,nsy)
355 heimbach 1.1 _RL objf_tmi (nsx,nsy)
356     _RL objf_sss (nsx,nsy)
357     _RL objf_ctdt (nsx,nsy)
358     _RL objf_ctds (nsx,nsy)
359     _RL objf_ctdtclim (nsx,nsy)
360     _RL objf_ctdsclim (nsx,nsy)
361     _RL objf_xbt (nsx,nsy)
362     _RL objf_argot(nsx,nsy)
363     _RL objf_argos(nsx,nsy)
364     _RL objf_drift(nsx,nsy)
365     _RL objf_tdrift(nsx,nsy)
366     _RL objf_sdrift(nsx,nsy)
367     _RL objf_wdrift(nsx,nsy)
368     _RL objf_scatx(nsx,nsy)
369     _RL objf_scaty(nsx,nsy)
370     _RL objf_scatxm(nsx,nsy)
371     _RL objf_scatym(nsx,nsy)
372     _RL objf_atemp(nsx,nsy)
373     _RL objf_aqh (nsx,nsy)
374     _RL objf_uwind(nsx,nsy)
375     _RL objf_vwind(nsx,nsy)
376     _RL objf_obcsn(nsx,nsy)
377     _RL objf_obcss(nsx,nsy)
378     _RL objf_obcsw(nsx,nsy)
379     _RL objf_obcse(nsx,nsy)
380 heimbach 1.2 _RL objf_obcsvol
381 heimbach 1.1 _RL objf_curmtr(nsx,nsy)
382     _RL objf_ageos(nsx,nsy)
383     _RL objf_ice (nsx,nsy)
384     _RL objf_kapgm(nsx,nsy)
385     _RL objf_diffkr(nsx,nsy)
386     _RL objf_theta_ini_fin(nsx,nsy)
387     _RL objf_salt_ini_fin(nsx,nsy)
388 heimbach 1.3 _RL objf_eddytau(nsx,nsy)
389 heimbach 1.1
390 heimbach 1.4 common /ecco_cost_num/
391     & num_hflux,
392     & num_hfluxm,
393     & num_hfluxmm,
394     & num_sflux,
395     & num_sfluxm,
396     & num_sfluxmm,
397     & num_tauu,
398     & num_tauum,
399     & num_tauv,
400     & num_tauvm,
401     & num_hmean,
402     & num_h,
403     & num_temp,
404     & num_salt,
405     & num_temp0,
406     & num_salt0,
407     & num_sst,
408     & num_tmi,
409     & num_sss,
410     & num_ctdt,
411     & num_ctds,
412     & num_ctdtclim,
413     & num_ctdsclim,
414     & num_xbt,
415     & num_argot,
416     & num_argos,
417     & num_drift,
418     & num_tdrift,
419     & num_sdrift,
420     & num_wdrift,
421     & num_scatx,
422     & num_scaty,
423     & num_scatxm,
424     & num_scatym,
425     & num_atemp,
426     & num_aqh,
427     & num_uwind,
428     & num_vwind,
429     & num_obcsn,
430     & num_obcss,
431     & num_obcsw,
432     & num_obcse,
433     & num_obcsvol,
434     & num_curmtr,
435     & num_ageos,
436     & num_ice,
437     & num_diffkr,
438     & num_theta_ini_fin,
439     & num_salt_ini_fin,
440     & num_eddytau
441    
442     _RL num_hflux (nsx,nsy)
443     _RL num_hfluxm (nsx,nsy)
444     _RL num_hfluxmm(nsx,nsy)
445     _RL num_sflux (nsx,nsy)
446     _RL num_sfluxm (nsx,nsy)
447     _RL num_sfluxmm(nsx,nsy)
448     _RL num_tauu (nsx,nsy)
449     _RL num_tauum (nsx,nsy)
450     _RL num_tauv (nsx,nsy)
451     _RL num_tauvm (nsx,nsy)
452     _RL num_hmean
453     _RL num_h (nsx,nsy)
454     _RL num_temp (nsx,nsy)
455     _RL num_salt (nsx,nsy)
456     _RL num_temp0(nsx,nsy)
457     _RL num_salt0(nsx,nsy)
458     _RL num_sst (nsx,nsy)
459     _RL num_tmi (nsx,nsy)
460     _RL num_sss (nsx,nsy)
461     _RL num_ctdt (nsx,nsy)
462     _RL num_ctds (nsx,nsy)
463     _RL num_ctdtclim (nsx,nsy)
464     _RL num_ctdsclim (nsx,nsy)
465     _RL num_xbt (nsx,nsy)
466     _RL num_argot(nsx,nsy)
467     _RL num_argos(nsx,nsy)
468     _RL num_drift(nsx,nsy)
469     _RL num_tdrift(nsx,nsy)
470     _RL num_sdrift(nsx,nsy)
471     _RL num_wdrift(nsx,nsy)
472     _RL num_scatx(nsx,nsy)
473     _RL num_scaty(nsx,nsy)
474     _RL num_scatxm(nsx,nsy)
475     _RL num_scatym(nsx,nsy)
476     _RL num_atemp(nsx,nsy)
477     _RL num_aqh (nsx,nsy)
478     _RL num_uwind(nsx,nsy)
479     _RL num_vwind(nsx,nsy)
480     _RL num_obcsn(nsx,nsy)
481     _RL num_obcss(nsx,nsy)
482     _RL num_obcsw(nsx,nsy)
483     _RL num_obcse(nsx,nsy)
484     _RL num_obcsvol
485     _RL num_curmtr(nsx,nsy)
486     _RL num_ageos(nsx,nsy)
487     _RL num_ice (nsx,nsy)
488     _RL num_kapgm(nsx,nsy)
489     _RL num_diffkr(nsx,nsy)
490     _RL num_theta_ini_fin(nsx,nsy)
491     _RL num_salt_ini_fin(nsx,nsy)
492     _RL num_eddytau(nsx,nsy)
493    
494 heimbach 1.1 common /ecco_cost_aux_r/
495     & mult_hflux,
496     & mult_sflux,
497     & mult_tauu,
498     & mult_tauv,
499     & mult_hmean,
500     & mult_h,
501     & mult_temp,
502     & mult_salt,
503     & mult_temp0,
504     & mult_salt0,
505 heimbach 1.2 & mult_sst,
506 heimbach 1.1 & mult_tmi,
507     & mult_sss,
508     & mult_ctdt,
509     & mult_ctds,
510     & mult_ctdtclim,
511     & mult_ctdsclim,
512     & mult_xbt,
513     & mult_argot,
514     & mult_argos,
515     & mult_drift,
516     & mult_tdrift,
517     & mult_sdrift,
518     & mult_wdrift,
519     & mult_scatx,
520     & mult_scaty,
521     & mult_atemp,
522     & mult_aqh,
523     & mult_uwind,
524     & mult_vwind,
525     & mult_obcsn,
526     & mult_obcss,
527     & mult_obcsw,
528     & mult_obcse,
529     & mult_obcsvol,
530     & mult_curmtr,
531     & mult_ageos,
532     & mult_ice,
533     & mult_kapgm,
534     & mult_diffkr,
535 heimbach 1.3 & mult_ini_fin,
536     & mult_eddytau
537 heimbach 1.2
538 heimbach 1.1 _RL mult_hflux
539     _RL mult_sflux
540     _RL mult_tauu
541     _RL mult_tauv
542     _RL mult_hmean
543     _RL mult_h
544     _RL mult_temp
545     _RL mult_salt
546     _RL mult_temp0
547     _RL mult_salt0
548 heimbach 1.2 _RL mult_sst
549 heimbach 1.1 _RL mult_tmi
550     _RL mult_sss
551     _RL mult_ctdt
552     _RL mult_ctds
553     _RL mult_ctdtclim
554     _RL mult_ctdsclim
555     _RL mult_xbt
556     _RL mult_argot
557     _RL mult_argos
558     _RL mult_drift
559     _RL mult_tdrift
560     _RL mult_sdrift
561     _RL mult_wdrift
562     _RL mult_scatx
563     _RL mult_scaty
564     _RL mult_atemp
565     _RL mult_aqh
566     _RL mult_uwind
567     _RL mult_vwind
568     _RL mult_obcsn
569     _RL mult_obcss
570     _RL mult_obcsw
571     _RL mult_obcse
572     _RL mult_obcsvol
573     _RL mult_curmtr
574     _RL mult_ageos
575     _RL mult_ice
576     _RL mult_kapgm
577     _RL mult_diffkr
578     _RL mult_ini_fin
579 heimbach 1.3 _RL mult_eddytau
580 heimbach 1.1
581     c Record counters relevant for the cost function evaluation.
582     c ==========================================================
583     c
584     c nmonsrec - number of monthly records that will be generated by
585     c the current model integration.
586     c ndaysrec - number of daily records that will be generated by
587     c the current model integration.
588    
589     common /ecco_cost_i/
590     & nmonsrec,
591     & ndaysrec
592     integer nmonsrec
593     integer ndaysrec
594    
595    
596     c Data files for the weights used in the cost function:
597     c =====================================================
598     c
599     c hflux_errfile - heat flux error.
600     c sflux_errfile - salt flux error.
601     c tauu_errfile - zonal wind stress error.
602     c tauum_errfile - zonal wind stress error.
603     c tauv_errfile - meridional wind stress error.
604     c tauvm_errfile - meridional wind stress error.
605     c tscatx_errfile - zonal wind stress error.
606     c tscaty_errfile - meridional wind stress error.
607     c data_errfile - weights for theta, salt, and SST
608     c geoid_errfile - geoid error.
609     c geoid_covariancefile - geoid error covariance.
610     c ssh_errfile - sea surface height error.
611     c ctdt_errfile - CTD temperature error.
612     c ctds_errfile - CTD salinity error.
613     c drift_errfile - drifter error.
614     c salterrfile - representation error due unresolved eddies
615     c temperrfile - representation error due unresolved eddies
616     c velerrfile - representation error
617    
618     common /ecco_cost_c/
619     & hflux_errfile,
620     & hfluxm_errfile,
621     & sflux_errfile,
622     & sfluxm_errfile,
623     & tauu_errfile,
624     & tauum_errfile,
625     & tauv_errfile,
626     & tauvm_errfile,
627     & scatx_errfile,
628     & scaty_errfile,
629     & data_errfile,
630     & geoid_errfile,
631     & geoid_covariancefile,
632     & ssh_errfile,
633     & ctdt_errfile,
634     & ctds_errfile,
635     & drift_errfile,
636     & udrifterrfile,
637     & vdrifterrfile,
638     & salterrfile,
639     & temperrfile,
640     & velerrfile,
641     & atemp_errfile,
642     & aqh_errfile,
643     & uwind_errfile,
644     & vwind_errfile
645     character*(MAX_LEN_FNAM) hflux_errfile
646     character*(MAX_LEN_FNAM) sflux_errfile
647     character*(MAX_LEN_FNAM) tauu_errfile
648     character*(MAX_LEN_FNAM) tauv_errfile
649     character*(MAX_LEN_FNAM) hfluxm_errfile
650     character*(MAX_LEN_FNAM) sfluxm_errfile
651     character*(MAX_LEN_FNAM) tauum_errfile
652     character*(MAX_LEN_FNAM) tauvm_errfile
653     character*(MAX_LEN_FNAM) scatx_errfile
654     character*(MAX_LEN_FNAM) scaty_errfile
655     character*(MAX_LEN_FNAM) data_errfile
656     character*(MAX_LEN_FNAM) geoid_errfile
657     character*(MAX_LEN_FNAM) geoid_covariancefile
658     character*(MAX_LEN_FNAM) ssh_errfile
659     character*(MAX_LEN_FNAM) ctdt_errfile
660     character*(MAX_LEN_FNAM) ctds_errfile
661     character*(MAX_LEN_FNAM) drift_errfile
662     character*(MAX_LEN_FNAM) udrifterrfile
663     character*(MAX_LEN_FNAM) vdrifterrfile
664     character*(MAX_LEN_FNAM) salterrfile
665     character*(MAX_LEN_FNAM) temperrfile
666     character*(MAX_LEN_FNAM) velerrfile
667     character*(MAX_LEN_FNAM) atemp_errfile
668     character*(MAX_LEN_FNAM) aqh_errfile
669     character*(MAX_LEN_FNAM) uwind_errfile
670     character*(MAX_LEN_FNAM) vwind_errfile
671    
672    
673     c Arrays where the weights are stored:
674     c ====================================
675     c
676     c cosphi - cosine of latitude.
677     c whflux - weight for heat flux.
678     c wsflux - weight for salt flux.
679     c wtauu - weight for zonal wind stress.
680     c wtauu - weight for meridional wind stress.
681     c wscatx - weight for zonal scat stress.
682     c wscaty - weight for meridional scat stress.
683     c wtheta - weight for temperature.
684     c wtheta2 - representation error due to unresolved eddies
685     c wsst - weight for sea surface temperature.
686     c wsss - weight for sea surface salinity.
687     c wsalt - weight for salinity.
688     c wsalt2 - representation error due to unresolved eddies
689     c wtp - weight for TOPEX/POSEIDON data.
690     c wers - weight for ERS data.
691     c wp - weight for geoid.
692     c wctdt - weight for CTD temperature.
693     c wctds - weight for CTD salinity.
694     c wudrift - weight for mean zonal velocity from drifters.
695     c wvdrift - weight for mean meridional velocity from drifters.
696    
697     common /ecco_cost_weights_r/
698     & frame,
699     & cosphi,
700     & whflux,wsflux,wtauu,wtauv,
701     & watemp,waqh,wuwind,wvwind,
702     & wscatx,wscaty,
703     & wtheta,wtheta2,wthetaLev,
704     & wsalt,wsalt2,wsaltLev,
705     & wsst,wsss,
706     & wtp,wers,
707     & wp,
708     & wctdt,wctds,
709     & wudrift,wvdrift,
710     & whfluxmm,wsfluxmm,
711     & wcurrent,wcurrent2,
712     & wcurrentLev,wbaro
713    
714     _RL frame (1-olx:snx+olx,1-oly:sny+oly )
715     _RL cosphi (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
716     _RL whflux (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
717     _RL whfluxm (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
718     _RL whfluxmm(1-olx:snx+olx,1-oly:sny+oly)
719     _RL wsflux (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
720     _RL wsfluxm (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
721     _RL wsfluxmm(1-olx:snx+olx,1-oly:sny+oly)
722     _RL wtauu (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
723     _RL wtauv (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
724     _RL wtauum (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
725     _RL wtauvm (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
726     _RL wscatx (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
727     _RL wscaty (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
728     _RL watemp (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
729     _RL waqh (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
730     _RL wuwind (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
731     _RL wvwind (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
732     _RL wtheta ( nr,nsx,nsy)
733     _RL wsalt ( nr,nsx,nsy)
734     _RL wtheta2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
735     _RL wsalt2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
736     _RL wthetaLev (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
737     _RL wsaltLev (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
738     _RL wsst (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
739     _RL wsss (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
740     _RL wtp (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
741     _RL wers (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
742     _RL wp (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
743     _RL wctdt ( nr,nsx,nsy)
744     _RL wctds ( nr,nsx,nsy)
745     _RL wudrift (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
746     _RL wvdrift (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
747     _RL wcurrent( nr,nsx,nsy)
748     _RL wcurrent2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
749     _RL wcurrentLev (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
750     _RL wbaro
751    
752 heimbach 1.5 common /ecco_cost_weights_2_r/
753     & whflux2,wsflux2,wtauu2,wtauv2
754     _RL whflux2 (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
755     _RL wsflux2 (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
756     _RL wtauu2 (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
757     _RL wtauv2 (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
758    
759    
760    
761 heimbach 1.1 #if (defined (ALLOW_OBCSN_COST_CONTRIBUTION) || \
762     defined (ALLOW_OBCSN_CONTROL))
763     common /ecco_cost_weights_obcsn/
764     & wobcsn, wobcsnLev
765     _RL wobcsn ( nr,nobcs)
766     _RL wobcsnLev (1-olx:snx+olx,nr,nsx,nsy,nobcs)
767     #endif
768     #if (defined (ALLOW_OBCSS_COST_CONTRIBUTION) || \
769     defined (ALLOW_OBCSS_CONTROL))
770     common /ecco_cost_weights_obcss/
771     & wobcss, wobcssLev
772     _RL wobcss ( nr,nobcs)
773     _RL wobcssLev (1-olx:snx+olx,nr,nsx,nsy,nobcs)
774     #endif
775     #if (defined (ALLOW_OBCSW_COST_CONTRIBUTION) || \
776     defined (ALLOW_OBCSW_CONTROL))
777     common /ecco_cost_weights_obcsw/
778     & wobcsw, wobcswLev
779     _RL wobcsw ( nr,nobcs)
780     _RL wobcswLev (1-oly:sny+oly,nr,nsx,nsy,nobcs)
781     #endif
782     #if (defined (ALLOW_OBCSE_COST_CONTRIBUTION) || \
783     defined (ALLOW_OBCSE_CONTROL))
784     common /ecco_cost_weights_obcse/
785     & wobcse, wobcseLev
786     _RL wobcse ( nr,nobcs)
787     _RL wobcseLev (1-oly:sny+oly,nr,nsx,nsy,nobcs)
788     #endif
789    
790 heimbach 1.2
791 heimbach 1.1 c Arrays that contain observations for the model-data comparison:
792     c ===============================================================
793     c
794     c tdat - reference temperature data.
795     c scatxdat - reference zonal wind stress.
796     c scatydat - reference meridional wind stress.
797 heimbach 1.2 c sstdat - reference sea surface temperature data.
798 heimbach 1.1 c tmidat - reference TMI sea surface temperature data.
799     c sssdat - reference sea surface temperature data.
800     c tauxmask - mask for reference wind stress data.
801     c tauymask - mask for reference wind stress data.
802     c scatxmask - mask for scat wind stress data.
803     c scatymask - mask for scat wind stress data.
804 heimbach 1.2 c sstmask - mask for reference sea surface temperature data.
805 heimbach 1.1 c tmimask - mask for reference sea surface temperature data.
806     c sssmask - mask for reference sea surface temperature data.
807     c sdat - reference salinity data.
808     c tpmean - reference mean sea surface height data.
809     c tpmeanmask - mask for reference mean sea surface height data.
810     c tpobs - TOPEX/POSEIDON data.
811     c tpmask - mask for TOPEX/POSEIDON data.
812     c ersobs - ERS data.
813     c ersmask - mask for ERS data.
814     c ctdtobs - CTD temperature data
815     c ctdsobs - CTD salinity data
816     c xbtobs - XBT data
817     c argot - ARGO temperature data
818     c argos - ARGO salt data
819     c udriftdat - drifters zonal velocities
820     c vdriftdat - drifters meridional velocities
821    
822     common /ecco_cost_data_r/
823     & tdat,
824     & scatxdat,
825     & scatydat,
826 heimbach 1.2 & sstdat,
827 heimbach 1.1 & tmidat,
828     & sssdat,
829 heimbach 1.2 & sstmask,
830 heimbach 1.1 & tmimask,
831     & sssmask,
832     & tauxmask,
833     & tauymask,
834     & scatxmask,
835     & scatymask,
836     & sdat,
837     & tpmean,
838     & tpmeanmask,
839     & tpobs,
840     & tpmask,
841     & ersobs,
842     & ersmask,
843     & ctdtobs,
844     & ctdsobs,
845     & xbtobs,
846     & argotobs,
847     & argosobs,
848     & udriftdat,
849     & vdriftdat,
850     & curmtruobs,
851     & curmtrvobs
852    
853     _RL tdat (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
854     _RL scatxdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
855     _RL scatydat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
856 heimbach 1.2 _RL sstdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
857 heimbach 1.1 _RL tmidat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
858     _RL sssdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
859     _RL tauxmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
860     _RL tauymask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
861     _RL scatxmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
862     _RL scatymask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
863 heimbach 1.2 _RL sstmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
864 heimbach 1.1 _RL tmimask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
865     _RL sssmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
866     _RL sdat (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
867     _RL tpmean (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
868     _RL tpmeanmask(1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
869     _RL tpobs (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
870     _RL tpmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
871     _RL ersobs (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
872     _RL ersmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
873     _RL ctdtobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
874     _RL ctdsobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
875     _RL xbtobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
876     _RL argotobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
877     _RL argosobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
878     _RL udriftdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
879     _RL vdriftdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
880     _RL curmtruobs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
881     _RL curmtrvobs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
882    
883 heimbach 1.2
884 heimbach 1.1 c Files that contain obervations:
885     c ===============================
886     c
887     c tdatfile - reference data file for temperature.
888     c sdatfile - reference data file for salinity.
889     c scatxdatfile - reference data file for zonal wind stress.
890     c scatydatfile - reference data file for meridional wind stress.
891     c sstdatfile - reference data file for sea surface temperature.
892 heimbach 1.2 c tmidatfile - reference data file for TMI sea surface temperature.
893 heimbach 1.1 c topexmeanfile - reference data file for mean sea surface height.
894     c topexfile - reference data file for sea surface height data
895     c (TOPEX/POSEIDON).
896     c ersfile - reference data file for sea surface height data
897     c (ERS).
898     c ctdtfile, ctdsfile- reference data file for temperature and salinity
899     c from CTD
900     c ctdtclimfile, ctdsclimfile- reference data file for temperature
901 heimbach 1.2 c and salinity from CTD with out timetag
902 heimbach 1.1 c xbtfile - reference data file for xbt
903     c ARGOtfile - reference data file for ARGO
904     c ARGOsfile - reference data file for ARGO
905     c driftfile - reference data file for drifter's mean velocities
906    
907     common /ecco_cost_data_c/
908     & tdatfile,
909     & sdatfile,
910     & scatxdatfile,
911     & scatydatfile,
912 heimbach 1.2 & sstdatfile,
913 heimbach 1.1 & tmidatfile,
914     & sssdatfile,
915     & topexmeanfile,
916     & topexfile,
917     & ersfile,
918     & ctdtfile,
919     & ctdsfile,
920     & ctdtclimfile,
921     & ctdsclimfile,
922     & xbtfile,
923     & argotfile,
924     & argosfile,
925     & udriftfile,
926     & vdriftfile,
927     & curmtrufile,
928     & curmtrvfile
929    
930     character*(MAX_LEN_FNAM) tdatfile
931     character*(MAX_LEN_FNAM) sdatfile
932     character*(MAX_LEN_FNAM) scatxdatfile
933     character*(MAX_LEN_FNAM) scatydatfile
934 heimbach 1.2 character*(MAX_LEN_FNAM) sstdatfile
935 heimbach 1.1 character*(MAX_LEN_FNAM) tmidatfile
936     character*(MAX_LEN_FNAM) sssdatfile
937     character*(MAX_LEN_FNAM) topexmeanfile
938     character*(MAX_LEN_FNAM) topexfile
939     character*(MAX_LEN_FNAM) ersfile
940     character*(MAX_LEN_FNAM) ctdtfile
941     character*(MAX_LEN_FNAM) ctdsfile
942     character*(MAX_LEN_FNAM) ctdtclimfile
943     character*(MAX_LEN_FNAM) ctdsclimfile
944     character*(MAX_LEN_FNAM) xbtfile
945     character*(MAX_LEN_FNAM) argotfile
946     character*(MAX_LEN_FNAM) argosfile
947     character*(MAX_LEN_FNAM) argofile
948     character*(MAX_LEN_FNAM) udriftfile
949     character*(MAX_LEN_FNAM) vdriftfile
950     character*(MAX_LEN_FNAM) curmtrufile
951     character*(MAX_LEN_FNAM) curmtrvfile
952    
953 heimbach 1.2
954 heimbach 1.1 c Flags used in the model-data comparison:
955     c ========================================
956     c
957     c using_ers - flag that indicates the use of ERS data
958    
959     common /ecco_cost_data_flags/
960     & using_topex,
961     & using_ers
962     logical using_topex
963     logical using_ers
964    
965     c Calendar information for the observations:
966     c ==========================================
967     c
968 heimbach 1.2 c sststartdate - start date of the sea surface temperature data.
969 heimbach 1.1 c tmistartdate - start date of the sea surface temperature data.
970     c topexstartdate - start date of the sea surface height data.
971     c ersstartdate - start date of the sea surface height data.
972 heimbach 1.2 c sshperiod - sampling interval for the sea surface height data.
973 heimbach 1.1
974     common /ecco_cost_data_times_i/
975     & scatxstartdate,
976     & scatystartdate,
977     & sststartdate,
978     & argotstartdate,
979     & argosstartdate,
980 heimbach 1.2 & tmistartdate,
981     & sssstartdate,
982 heimbach 1.1 & topexstartdate,
983     & ersstartdate
984     integer scatxstartdate(4)
985     integer scatystartdate(4)
986     integer sststartdate(4)
987     integer argotstartdate(4)
988     integer argosstartdate(4)
989 heimbach 1.2 integer tmistartdate(4)
990     integer sssstartdate(4)
991 heimbach 1.1 integer topexstartdate(4)
992     integer ersstartdate(4)
993    
994     common /ecco_cost_data_aux_i/
995     & tmistartdate1,
996     & tmistartdate2,
997     & sststartdate1,
998     & sststartdate2,
999     & sssstartdate1,
1000     & sssstartdate2,
1001     & argotstartdate1,
1002     & argotstartdate2,
1003     & argosstartdate1,
1004     & argosstartdate2,
1005     & topexstartdate1,
1006     & topexstartdate2,
1007     & ersstartdate1,
1008     & ersstartdate2,
1009     & scatstartdate1,
1010     & scatstartdate2,
1011     & costIceStart1,
1012     & costIceStart2,
1013     & costIceEnd1,
1014     & costIceEnd2
1015    
1016     integer tmistartdate1
1017     integer tmistartdate2
1018     integer sststartdate1
1019     integer sststartdate2
1020     integer sssstartdate1
1021     integer sssstartdate2
1022     integer argotstartdate1
1023     integer argotstartdate2
1024     integer argosstartdate1
1025     integer argosstartdate2
1026     integer topexstartdate1
1027     integer topexstartdate2
1028     integer ersstartdate1
1029     integer ersstartdate2
1030     integer scatstartdate1
1031     integer scatstartdate2
1032     integer costIceStart1
1033     integer costIceStart2
1034     integer costIceEnd1
1035     integer costIceEnd2
1036    
1037     common /ecco_cost_data_times_r/
1038     & topexperiod,
1039     & ersperiod,
1040     & scatperiod,
1041     & costIceStart,
1042     & costIceEnd
1043     _RL topexperiod
1044     _RL ersperiod
1045     _RL scatperiod
1046     _RL costIceStart
1047     _RL costIceEnd
1048    
1049     c cost_ice_flag - cost_ice flag (see cost_ice.F)
1050    
1051     common /ecco_cost_ice_i/ cost_ice_flag
1052     integer cost_ice_flag
1053    
1054     c ==================================================================
1055     c END OF HEADER COST
1056     c ==================================================================
1057 heimbach 1.2
1058    

  ViewVC Help
Powered by ViewVC 1.1.22