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

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

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


Revision 1.5 - (show annotations) (download)
Fri May 27 22:10:27 2005 UTC (19 years, 1 month 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
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 c
11 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 & sbar_gen,
82 & tbar_gen,
83 & wfmean
84
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 #ifdef ALLOW_SST_COST_CONTRIBUTION
93 _RL tbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
94 #else
95 _RL tbar
96 #endif
97 #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
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 #ifdef ALLOW_SSS_COST_CONTRIBUTION
113 _RL sbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
114 #else
115 _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 defined (ALLOW_OBCS_COST_CONTRIBUTION))
127 _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 c objf_sst - Sea surface temperature contribution.
264 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 c objf_ctdtclim - Temperature measurements from Woce CTD without timetag
269 c objf_ctdsclim - Salinity measurements from Woce CTD without timetag
270 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 & objf_sst,
304 & 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 & objf_salt_ini_fin,
336 & objf_eddytau
337
338 _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 _RL objf_hmean
349 _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 _RL objf_sst (nsx,nsy)
355 _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 _RL objf_obcsvol
381 _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 _RL objf_eddytau(nsx,nsy)
389
390 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 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 & mult_sst,
506 & 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 & mult_ini_fin,
536 & mult_eddytau
537
538 _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 _RL mult_sst
549 _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 _RL mult_eddytau
580
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 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 #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
791 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 c sstdat - reference sea surface temperature data.
798 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 c sstmask - mask for reference sea surface temperature data.
805 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 & sstdat,
827 & tmidat,
828 & sssdat,
829 & sstmask,
830 & 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 _RL sstdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
857 _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 _RL sstmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
864 _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
884 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 c tmidatfile - reference data file for TMI sea surface temperature.
893 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 c and salinity from CTD with out timetag
902 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 & sstdatfile,
913 & 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 character*(MAX_LEN_FNAM) sstdatfile
935 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
954 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 c sststartdate - start date of the sea surface temperature data.
969 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 c sshperiod - sampling interval for the sea surface height data.
973
974 common /ecco_cost_data_times_i/
975 & scatxstartdate,
976 & scatystartdate,
977 & sststartdate,
978 & argotstartdate,
979 & argosstartdate,
980 & tmistartdate,
981 & sssstartdate,
982 & topexstartdate,
983 & ersstartdate
984 integer scatxstartdate(4)
985 integer scatystartdate(4)
986 integer sststartdate(4)
987 integer argotstartdate(4)
988 integer argosstartdate(4)
989 integer tmistartdate(4)
990 integer sssstartdate(4)
991 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
1058

  ViewVC Help
Powered by ViewVC 1.1.22