/[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.35 - (show annotations) (download)
Fri Mar 13 01:58:37 2009 UTC (15 years, 2 months ago) by heimbach
Branch: MAIN
Changes since 1.34: +20 -3 lines
File MIME type: text/plain
Modify cost calculation for SSH anomalies:
* Model mean is sampled according to altimeter data for each instrument
* Period for computing model mean can be prescribed through daily flags;
  corresponding daily flag time series provided in files
  tpTimeMaskFile, ersTimeMaskFile, gfoTimeMaskFile
NOT YET TESTED.

1 C $Header: /u/gcmpack/MITgcm/pkg/ecco/ecco_cost.h,v 1.34 2009/02/20 15:27:50 heimbach Exp $
2 C $Name: $
3
4 c ==================================================================
5 c HEADER AVERAGES
6 c ==================================================================
7 c
8 c o Header for averaged temperature, salinity, and surface pressure
9 c fields and counters associated with the averaging.
10 c
11 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
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,sum1year,
27 & dayrec,monrec,yearrec
28 integer sum1day
29 integer sum1mon
30 integer sum1year
31 integer dayrec
32 integer monrec
33 integer yearrec
34
35 c Number of Generic Cost terms:
36 c =============================
37 INTEGER NGENCOST
38 PARAMETER ( NGENCOST=10 )
39
40 c Number of days: (hard-coded to set up some vector dimensions
41 c =============================
42 INTEGER maxNumDays
43 PARAMETER ( maxNumDays = 5844 )
44
45 c Averaged Fields:
46 c ================
47 c
48 c tbar - contains the averaged temperature field after the call
49 c to subroutine POST_MONTHLY. Before, it accumulates the
50 c intantaneous temperatures.
51 c sbar - contains the averaged salinity field after the call
52 c to subroutine POST_MONTHLY. Before, it accumulates the
53 c intantaneous salinities.
54 c psbar - contains the averaged surface pressure field after the call
55 c to subroutine POST_DAILY. Before, it accumulates the
56 c intantaneous surface pressure field.
57 c ubar - contains the averaged zonal velocity component for the
58 c whole integration period. Before, it accumulates the
59 c intantaneous field.
60 c vbar - contains the averaged zonal velocity component for the
61 c whole integration period. Before, it accumulates the
62 c intantaneous field.
63 c tauxbar - contains the averaged zonal velocity component for the
64 c whole integration period. Before, it accumulates the
65 c intantaneous field.
66 c tauybar - contains the averaged zonal velocity component for the
67 c whole integration period. Before, it accumulates the
68 c intantaneous field.
69 c hfluxbar - contains the averaged zonal velocity component for the
70 c whole integration period. Before, it accumulates the
71 c intantaneous field.
72 c sfluxbar - contains the averaged zonal velocity component for the
73 c whole integration period. Before, it accumulates the
74 c intantaneous field.
75
76 common /averages_r/
77 & tbar,
78 & sbar,
79 & sstbar,
80 & psbar,
81 & bpbar,
82 & ubar,
83 & vbar,
84 & wbar,
85 & tauxbar,
86 & tauybar,
87 & hfluxbar,
88 & sfluxbar,
89 & Slmean,
90 & Tlmean,
91 & wlmean,
92 & Sfmean,
93 & Tfmean,
94 & sbar_gen,
95 & tbar_gen,
96 & wfmean
97
98 #if (defined (ALLOW_THETA_COST_CONTRIBUTION) || \
99 defined (ALLOW_CTDT_COST_CONTRIBUTION) || \
100 defined (ALLOW_XBT_COST_CONTRIBUTION) || \
101 defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \
102 defined (ALLOW_OBCS_COST_CONTRIBUTION))
103 _RL tbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
104 #else
105 #ifdef ALLOW_SST_COST_CONTRIBUTION
106 _RL tbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
107 #else
108 _RL tbar
109 #endif
110 #endif
111 #ifdef GENERIC_BAR_MONTH
112 _RL tbar_gen (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
113 _RL sbar_gen (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
114 #else
115 _RL tbar_gen
116 _RL sbar_gen
117 #endif
118
119 #ifdef ALLOW_SEAICE_COST_AREASST
120 _RL sstbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
121 #else
122 _RL sstbar
123 #endif
124
125 #if (defined (ALLOW_SALT_COST_CONTRIBUTION) || \
126 defined (ALLOW_CTDS_COST_CONTRIBUTION) || \
127 defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \
128 defined (ALLOW_OBCS_COST_CONTRIBUTION))
129 _RL sbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
130 #else
131 #ifdef ALLOW_SSS_COST_CONTRIBUTION
132 _RL sbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
133 #else
134 _RL sbar
135 #endif
136 #endif
137
138 #ifdef ALLOW_SSH_COST_CONTRIBUTION
139 _RL psbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
140 #else
141 _RL psbar
142 #endif
143
144 #ifdef ALLOW_BP_COST_CONTRIBUTION
145 _RL bpbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
146 #else
147 _RL bpbar
148 #endif
149
150 #if (defined (ALLOW_DRIFTER_COST_CONTRIBUTION) || \
151 defined (ALLOW_OBCS_COST_CONTRIBUTION))
152 _RL ubar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
153 _RL vbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
154 #else
155 _RL ubar
156 _RL vbar
157 #endif
158
159 #ifdef ALLOW_DRIFTW_COST_CONTRIBUTION
160 _RL wbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
161 #else
162 _RL wbar
163 #endif
164
165 #ifdef ALLOW_DRIFT_COST_CONTRIBUTION
166 _RL Tlmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
167 _RL Slmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
168 _RL Tfmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
169 _RL Sfmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
170 #else
171 _RL Tlmean
172 _RL Slmean
173 _RL Tfmean
174 _RL Sfmean
175 #endif
176
177 #ifdef ALLOW_DRIFTW_COST_CONTRIBUTION
178 _RL wlmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
179 _RL wfmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
180 #else
181 _RL wlmean
182 _RL wfmean
183 #endif
184
185 #ifdef ALLOW_SCAT_COST_CONTRIBUTION
186 _RL tauxbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
187 _RL tauybar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
188 #else
189 _RL tauxbar
190 _RL tauybar
191 #endif
192
193 #ifdef ALLOW_MEAN_HFLUX_COST_CONTRIBUTION
194 _RL hfluxbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
195 #else
196 _RL hfluxbar
197 #endif
198
199 #ifdef ALLOW_MEAN_SFLUX_COST_CONTRIBUTION
200 _RL sfluxbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
201 #else
202 _RL sfluxbar
203 #endif
204
205
206 common /averages_c/
207 & tbarfile,
208 & sbarfile,
209 & sstbarfile,
210 & psbarfile,
211 & bpbarfile,
212 & ubarfile,
213 & vbarfile,
214 & wbarfile,
215 & tauxbarfile,
216 & tauybarfile,
217 & hfluxbarfile,
218 & sfluxbarfile,
219 & costTranspDataFile
220 character*(MAX_LEN_FNAM) tbarfile
221 character*(MAX_LEN_FNAM) sbarfile
222 character*(MAX_LEN_FNAM) sstbarfile
223 character*(MAX_LEN_FNAM) psbarfile
224 character*(MAX_LEN_FNAM) bpbarfile
225 character*(MAX_LEN_FNAM) ubarfile
226 character*(MAX_LEN_FNAM) vbarfile
227 character*(MAX_LEN_FNAM) wbarfile
228 character*(MAX_LEN_FNAM) tauxbarfile
229 character*(MAX_LEN_FNAM) tauybarfile
230 character*(MAX_LEN_FNAM) hfluxbarfile
231 character*(MAX_LEN_FNAM) sfluxbarfile
232 character*(MAX_LEN_FNAM) costTranspDataFile
233
234 #ifdef ALLOW_TRANSPORT_COST_CONTRIBUTION
235 common /averages_transp_r/
236 & transpbar
237 & , transpobs
238 & , wtransp
239 _RL transpbar(maxNumDays,nsx,nsy)
240 _RL transpobs(maxNumDays)
241 _RL wtransp(maxNumDays)
242 #endif
243
244 c file precision and field type
245
246 common /prec_type_cost/
247 & cost_iprec,
248 & cost_yftype
249
250 integer cost_iprec
251 character*(2) cost_yftype
252
253 c ==================================================================
254 c END OF HEADER AVERAGES
255 c ==================================================================
256
257
258
259 c ==================================================================
260 c HEADER COST
261 c ==================================================================
262 c
263 c o Header for model-data comparison.
264 c
265 c The individual cost function contributions are multiplied by
266 c factors mult_"var" which allow to switch off these contributions
267 c without removing them in the adjoint code. This is useful for
268 c doing tests with the adjoint and perhaps useful in assimilation
269 c experiments where individual contributions are successively
270 c switched on. For future applications it would be better to place
271 c the initialisation of the multipliers somewhere else, for example
272 c in a namelist, which is read in at the start of the model.
273 c
274 c started: Christian Eckert eckert@mit.edu 24-Feb-1999
275 c
276 c changed: Christian Eckert eckert@mit.edu
277 c
278 c
279 c ==================================================================
280 c HEADER COST
281 c ==================================================================
282
283
284 c The cost function, its contributions, and multipliers:
285 c ======================================================
286 c
287 c fc - Final cost function.
288 c objf_hflux - Heat flux contribution.
289 c objf_sflux - Salt flux contribution.
290 c objf_tauu - Zonal wind stress contribution.
291 c objf_tauv - Meridional wind stress contribution.
292 c objf_hfluxm - time-mean Heat flux contribution.
293 c objf_sfluxm - time-mean Salt flux contribution.
294 c objf_tauum - time-mean Zonal wind stress contribution.
295 c objf_tauvm - time-mean Meridional wind stress contribution.
296 c objf_hfluxmm - Global time-mean Heat flux contribution.
297 c objf_sfluxmm - Global time-mean Salt flux contribution.
298 c objf_hmean - Mean sea surface height contribution.
299 c objf_h - Residual sea surface height contribution.
300 c objf_tp - Residual sea surface height contribution from T/P
301 c objf_ers - Residual sea surface height contribution from T/P
302 c objf_gfo - Residual sea surface height contribution from T/P
303 c objf_temp - Temperature contribution.
304 c objf_salt - Salinity contribution.
305 c objf_temp0 - Initial conditions Temperature contribution.
306 c objf_salt0 - Initial conditions Salinity contribution.
307 c objf_sst - Sea surface temperature contribution.
308 c objf_tmi - Sea surface temperature contribution.
309 c objf_sss - Sea surface salinity contribution.
310 c objf_ctdt - Temperature measurements from Woce CTD
311 c objf_ctds - Salinity measurements from Woce CTD
312 c objf_ctdtclim - Temperature measurements from Woce CTD without timetag
313 c objf_ctdsclim - Salinity measurements from Woce CTD without timetag
314 c objf_xbt - XBT temperature data
315 c objf_argot - ARGO temperature profiles
316 c objf_argos - ARGO salt profiles
317 c objf_gencost - gencost user defined contribution
318 c objf_scatxm - time-mean zonal SCAT contribution
319 c objf_scatym - time-mean meridional SCAT contribution
320 c objf_scatx - zonal SCAT contribution
321 c objf_scaty - meridional SCAT contribution
322 c objf_kapgm - kappa GM contribution
323 c objf_kapredi - kappa REDI contribution
324 c objf_diffkr - diffusion contribution
325 c objf_theta_ini_fin - final vs. initial theta misfit
326 c objf_salt_ini_fin - final vs. initial salt misfit
327 c objf_eddytau - eddy streamfunction contribution
328 c objf_bottomdrag - bottom drag contribution
329 c
330 c mult_"var" - multipliers for the individual cost
331 c function contributions.
332
333 common /ecco_cost_objf/
334 & objf_hflux,
335 & objf_hfluxm,
336 & objf_hfluxmm,
337 & objf_hfluxsmoo,
338 & objf_sflux,
339 & objf_sfluxm,
340 & objf_sfluxmm,
341 & objf_sfluxsmoo,
342 & objf_tauu,
343 & objf_tauum,
344 & objf_tauusmoo,
345 & objf_tauv,
346 & objf_tauvm,
347 & objf_tauvsmoo,
348 & objf_hmean,
349 & objf_h,
350 & objf_tp,
351 & objf_ers,
352 & objf_gfo,
353 & objf_temp,
354 & objf_salt,
355 & objf_temp0,
356 & objf_salt0,
357 & objf_temp0smoo,
358 & objf_salt0smoo,
359 & objf_sst,
360 & objf_tmi,
361 & objf_sss,
362 & objf_bp,
363 & objf_ctdt,
364 & objf_ctds,
365 & objf_ctdtclim,
366 & objf_ctdsclim,
367 & objf_xbt,
368 & objf_argot,
369 & objf_argos,
370 & objf_gencost,
371 & objf_drift,
372 & objf_tdrift,
373 & objf_sdrift,
374 & objf_wdrift,
375 & objf_scatx,
376 & objf_scaty,
377 & objf_scatxm,
378 & objf_scatym,
379 & objf_atemp,
380 & objf_aqh,
381 & objf_precip,
382 & objf_swflux,
383 & objf_swdown,
384 & objf_snowprecip,
385 & objf_lwflux,
386 & objf_lwdown,
387 & objf_evap,
388 & objf_apressure,
389 & objf_runoff,
390 & objf_uwind,
391 & objf_vwind,
392 & objf_atempm,
393 & objf_aqhm,
394 & objf_precipm,
395 & objf_swfluxm,
396 & objf_swdownm,
397 & objf_snowprecipm,
398 & objf_lwfluxm,
399 & objf_lwdownm,
400 & objf_evapm,
401 & objf_apressurem,
402 & objf_runoffm,
403 & objf_uwindm,
404 & objf_vwindm,
405 & objf_atempsmoo,
406 & objf_aqhsmoo,
407 & objf_precipsmoo,
408 & objf_swfluxsmoo,
409 & objf_swdownsmoo,
410 & objf_snowprecipsmoo,
411 & objf_lwfluxsmoo,
412 & objf_lwdownsmoo,
413 & objf_evapsmoo,
414 & objf_apressuresmoo,
415 & objf_runoffsmoo,
416 & objf_uwindsmoo,
417 & objf_vwindsmoo,
418 & objf_obcsn,
419 & objf_obcss,
420 & objf_obcsw,
421 & objf_obcse,
422 & objf_obcsvol,
423 & objf_curmtr,
424 & objf_ageos,
425 & objf_kapgm,
426 & objf_kapredi,
427 & objf_diffkr,
428 & objf_theta_ini_fin,
429 & objf_salt_ini_fin,
430 & objf_eddytau,
431 & objf_bottomdrag,
432 & objf_transp
433 _RL objf_hflux (nsx,nsy)
434 _RL objf_hfluxm (nsx,nsy)
435 _RL objf_hfluxmm
436 _RL objf_hfluxsmoo (nsx,nsy)
437 _RL objf_sflux (nsx,nsy)
438 _RL objf_sfluxm (nsx,nsy)
439 _RL objf_sfluxmm
440 _RL objf_sfluxsmoo (nsx,nsy)
441 _RL objf_tauu (nsx,nsy)
442 _RL objf_tauum (nsx,nsy)
443 _RL objf_tauusmoo (nsx,nsy)
444 _RL objf_tauv (nsx,nsy)
445 _RL objf_tauvm (nsx,nsy)
446 _RL objf_tauvsmoo (nsx,nsy)
447 _RL objf_hmean
448 _RL objf_h (nsx,nsy)
449 _RL objf_tp (nsx,nsy)
450 _RL objf_ers (nsx,nsy)
451 _RL objf_gfo (nsx,nsy)
452 _RL objf_temp (nsx,nsy)
453 _RL objf_salt (nsx,nsy)
454 _RL objf_temp0(nsx,nsy)
455 _RL objf_salt0(nsx,nsy)
456 _RL objf_temp0smoo(nsx,nsy)
457 _RL objf_salt0smoo(nsx,nsy)
458 _RL objf_sst (nsx,nsy)
459 _RL objf_tmi (nsx,nsy)
460 _RL objf_sss (nsx,nsy)
461 _RL objf_bp (nsx,nsy)
462 _RL objf_ctdt (nsx,nsy)
463 _RL objf_ctds (nsx,nsy)
464 _RL objf_ctdtclim (nsx,nsy)
465 _RL objf_ctdsclim (nsx,nsy)
466 _RL objf_xbt (nsx,nsy)
467 _RL objf_argot(nsx,nsy)
468 _RL objf_argos(nsx,nsy)
469 _RL objf_gencost(NGENCOST,nsx,nsy)
470 _RL objf_drift(nsx,nsy)
471 _RL objf_tdrift(nsx,nsy)
472 _RL objf_sdrift(nsx,nsy)
473 _RL objf_wdrift(nsx,nsy)
474 _RL objf_scatx(nsx,nsy)
475 _RL objf_scaty(nsx,nsy)
476 _RL objf_scatxm(nsx,nsy)
477 _RL objf_scatym(nsx,nsy)
478 _RL objf_atemp(nsx,nsy)
479 _RL objf_aqh (nsx,nsy)
480 _RL objf_precip(nsx,nsy)
481 _RL objf_swflux(nsx,nsy)
482 _RL objf_swdown(nsx,nsy)
483 _RL objf_snowprecip(nsx,nsy)
484 _RL objf_lwflux(nsx,nsy)
485 _RL objf_lwdown(nsx,nsy)
486 _RL objf_evap(nsx,nsy)
487 _RL objf_apressure(nsx,nsy)
488 _RL objf_runoff(nsx,nsy)
489 _RL objf_uwind(nsx,nsy)
490 _RL objf_vwind(nsx,nsy)
491 _RL objf_atempm(nsx,nsy)
492 _RL objf_aqhm (nsx,nsy)
493 _RL objf_precipm(nsx,nsy)
494 _RL objf_swfluxm(nsx,nsy)
495 _RL objf_swdownm(nsx,nsy)
496 _RL objf_snowprecipm(nsx,nsy)
497 _RL objf_lwfluxm(nsx,nsy)
498 _RL objf_lwdownm(nsx,nsy)
499 _RL objf_evapm(nsx,nsy)
500 _RL objf_apressurem(nsx,nsy)
501 _RL objf_runoffm(nsx,nsy)
502 _RL objf_uwindm(nsx,nsy)
503 _RL objf_vwindm(nsx,nsy)
504 _RL objf_atempsmoo(nsx,nsy)
505 _RL objf_aqhsmoo (nsx,nsy)
506 _RL objf_precipsmoo(nsx,nsy)
507 _RL objf_swfluxsmoo(nsx,nsy)
508 _RL objf_swdownsmoo(nsx,nsy)
509 _RL objf_snowprecipsmoo(nsx,nsy)
510 _RL objf_lwfluxsmoo(nsx,nsy)
511 _RL objf_lwdownsmoo(nsx,nsy)
512 _RL objf_evapsmoo(nsx,nsy)
513 _RL objf_apressuresmoo(nsx,nsy)
514 _RL objf_runoffsmoo(nsx,nsy)
515 _RL objf_uwindsmoo(nsx,nsy)
516 _RL objf_vwindsmoo(nsx,nsy)
517 _RL objf_obcsn(nsx,nsy)
518 _RL objf_obcss(nsx,nsy)
519 _RL objf_obcsw(nsx,nsy)
520 _RL objf_obcse(nsx,nsy)
521 _RL objf_obcsvol
522 _RL objf_curmtr(nsx,nsy)
523 _RL objf_ageos(nsx,nsy)
524 _RL objf_kapgm(nsx,nsy)
525 _RL objf_kapredi(nsx,nsy)
526 _RL objf_diffkr(nsx,nsy)
527 _RL objf_theta_ini_fin(nsx,nsy)
528 _RL objf_salt_ini_fin(nsx,nsy)
529 _RL objf_eddytau(nsx,nsy)
530 _RL objf_bottomdrag(nsx,nsy)
531 _RL objf_transp
532
533 common /ecco_cost_num/
534 & num_hflux,
535 & num_hfluxm,
536 & num_hfluxmm,
537 & num_sflux,
538 & num_sfluxm,
539 & num_sfluxmm,
540 & num_tauu,
541 & num_tauum,
542 & num_tauv,
543 & num_tauvm,
544 & num_hmean,
545 & num_h,
546 & num_tp,
547 & num_ers,
548 & num_gfo,
549 & num_temp,
550 & num_salt,
551 & num_temp0,
552 & num_salt0,
553 & num_sst,
554 & num_tmi,
555 & num_sss,
556 & num_bp,
557 & num_ctdt,
558 & num_ctds,
559 & num_ctdtclim,
560 & num_ctdsclim,
561 & num_xbt,
562 & num_argot,
563 & num_argos,
564 & num_gencost,
565 & num_drift,
566 & num_tdrift,
567 & num_sdrift,
568 & num_wdrift,
569 & num_scatx,
570 & num_scaty,
571 & num_scatxm,
572 & num_scatym,
573 & num_atemp,
574 & num_aqh,
575 & num_precip,
576 & num_swflux,
577 & num_swdown,
578 & num_snowprecip,
579 & num_lwflux,
580 & num_lwdown,
581 & num_evap,
582 & num_apressure,
583 & num_runoff,
584 & num_uwind,
585 & num_vwind,
586 & num_atempm,
587 & num_aqhm,
588 & num_precipm,
589 & num_swfluxm,
590 & num_swdownm,
591 & num_snowprecipm,
592 & num_lwfluxm,
593 & num_lwdownm,
594 & num_evapm,
595 & num_apressurem,
596 & num_runoffm,
597 & num_uwindm,
598 & num_vwindm,
599 & num_obcsn,
600 & num_obcss,
601 & num_obcsw,
602 & num_obcse,
603 & num_obcsvol,
604 & num_curmtr,
605 & num_ageos,
606 & num_kapgm,
607 & num_kapredi,
608 & num_diffkr,
609 & num_theta_ini_fin,
610 & num_salt_ini_fin,
611 & num_eddytau,
612 & num_bottomdrag,
613 & num_transp
614
615 _RL num_hflux (nsx,nsy)
616 _RL num_hfluxm (nsx,nsy)
617 _RL num_hfluxmm(nsx,nsy)
618 _RL num_sflux (nsx,nsy)
619 _RL num_sfluxm (nsx,nsy)
620 _RL num_sfluxmm(nsx,nsy)
621 _RL num_tauu (nsx,nsy)
622 _RL num_tauum (nsx,nsy)
623 _RL num_tauv (nsx,nsy)
624 _RL num_tauvm (nsx,nsy)
625 _RL num_hmean
626 _RL num_h (nsx,nsy)
627 _RL num_tp (nsx,nsy)
628 _RL num_ers (nsx,nsy)
629 _RL num_gfo (nsx,nsy)
630 _RL num_temp (nsx,nsy)
631 _RL num_salt (nsx,nsy)
632 _RL num_temp0(nsx,nsy)
633 _RL num_salt0(nsx,nsy)
634 _RL num_sst (nsx,nsy)
635 _RL num_tmi (nsx,nsy)
636 _RL num_sss (nsx,nsy)
637 _RL num_bp (nsx,nsy)
638 _RL num_ctdt (nsx,nsy)
639 _RL num_ctds (nsx,nsy)
640 _RL num_ctdtclim (nsx,nsy)
641 _RL num_ctdsclim (nsx,nsy)
642 _RL num_xbt (nsx,nsy)
643 _RL num_argot(nsx,nsy)
644 _RL num_argos(nsx,nsy)
645 _RL num_gencost(NGENCOST,nsx,nsy)
646 _RL num_drift(nsx,nsy)
647 _RL num_tdrift(nsx,nsy)
648 _RL num_sdrift(nsx,nsy)
649 _RL num_wdrift(nsx,nsy)
650 _RL num_scatx(nsx,nsy)
651 _RL num_scaty(nsx,nsy)
652 _RL num_scatxm(nsx,nsy)
653 _RL num_scatym(nsx,nsy)
654 _RL num_atemp(nsx,nsy)
655 _RL num_aqh (nsx,nsy)
656 _RL num_precip(nsx,nsy)
657 _RL num_swflux(nsx,nsy)
658 _RL num_swdown(nsx,nsy)
659 _RL num_snowprecip(nsx,nsy)
660 _RL num_lwflux(nsx,nsy)
661 _RL num_lwdown(nsx,nsy)
662 _RL num_evap(nsx,nsy)
663 _RL num_apressure(nsx,nsy)
664 _RL num_runoff(nsx,nsy)
665 _RL num_uwind(nsx,nsy)
666 _RL num_vwind(nsx,nsy)
667 _RL num_atempm(nsx,nsy)
668 _RL num_aqhm (nsx,nsy)
669 _RL num_precipm(nsx,nsy)
670 _RL num_swfluxm(nsx,nsy)
671 _RL num_swdownm(nsx,nsy)
672 _RL num_snowprecipm(nsx,nsy)
673 _RL num_lwfluxm(nsx,nsy)
674 _RL num_lwdownm(nsx,nsy)
675 _RL num_evapm(nsx,nsy)
676 _RL num_apressurem(nsx,nsy)
677 _RL num_runoffm(nsx,nsy)
678 _RL num_uwindm(nsx,nsy)
679 _RL num_vwindm(nsx,nsy)
680 _RL num_obcsn(nsx,nsy)
681 _RL num_obcss(nsx,nsy)
682 _RL num_obcsw(nsx,nsy)
683 _RL num_obcse(nsx,nsy)
684 _RL num_obcsvol
685 _RL num_curmtr(nsx,nsy)
686 _RL num_ageos(nsx,nsy)
687 _RL num_kapgm(nsx,nsy)
688 _RL num_kapredi(nsx,nsy)
689 _RL num_diffkr(nsx,nsy)
690 _RL num_theta_ini_fin(nsx,nsy)
691 _RL num_salt_ini_fin(nsx,nsy)
692 _RL num_eddytau(nsx,nsy)
693 _RL num_bottomdrag(nsx,nsy)
694 _RL num_transp
695
696 common /ecco_cost_aux_r/
697 & mult_hflux,
698 & mult_sflux,
699 & mult_hfluxmm,
700 & mult_sfluxmm,
701 & mult_tauu,
702 & mult_tauv,
703 & mult_hmean,
704 & mult_h,
705 & mult_tp,
706 & mult_ers,
707 & mult_gfo,
708 & mult_temp,
709 & mult_salt,
710 & mult_temp0,
711 & mult_salt0,
712 & mult_sst,
713 & mult_tmi,
714 & mult_sss,
715 & mult_bp,
716 & mult_ctdt,
717 & mult_ctds,
718 & mult_ctdtclim,
719 & mult_ctdsclim,
720 & mult_xbt,
721 & mult_argot,
722 & mult_argos,
723 & mult_gencost,
724 & mult_drift,
725 & mult_tdrift,
726 & mult_sdrift,
727 & mult_wdrift,
728 & mult_scatx,
729 & mult_scaty,
730 & mult_atemp,
731 & mult_aqh,
732 & mult_precip,
733 & mult_swflux,
734 & mult_swdown,
735 & mult_snowprecip,
736 & mult_lwflux,
737 & mult_lwdown,
738 & mult_evap,
739 & mult_apressure,
740 & mult_runoff,
741 & mult_uwind,
742 & mult_vwind,
743 & mult_obcsn,
744 & mult_obcss,
745 & mult_obcsw,
746 & mult_obcse,
747 & mult_obcsvol,
748 & mult_curmtr,
749 & mult_ageos,
750 & mult_kapgm,
751 & mult_kapredi,
752 & mult_diffkr,
753 & mult_ini_fin,
754 & mult_edtau,
755 & mult_bottomdrag,
756 & mult_smooth_ic,
757 & mult_smooth_bc,
758 & mult_transp
759 _RL mult_hflux
760 _RL mult_sflux
761 _RL mult_hfluxmm
762 _RL mult_sfluxmm
763 _RL mult_tauu
764 _RL mult_tauv
765 _RL mult_hmean
766 _RL mult_h
767 _RL mult_tp
768 _RL mult_ers
769 _RL mult_gfo
770 _RL mult_temp
771 _RL mult_salt
772 _RL mult_temp0
773 _RL mult_salt0
774 _RL mult_sst
775 _RL mult_tmi
776 _RL mult_sss
777 _RL mult_bp
778 _RL mult_ctdt
779 _RL mult_ctds
780 _RL mult_ctdtclim
781 _RL mult_ctdsclim
782 _RL mult_xbt
783 _RL mult_argot
784 _RL mult_argos
785 _RL mult_gencost(NGENCOST)
786 _RL mult_drift
787 _RL mult_tdrift
788 _RL mult_sdrift
789 _RL mult_wdrift
790 _RL mult_scatx
791 _RL mult_scaty
792 _RL mult_atemp
793 _RL mult_aqh
794 _RL mult_precip
795 _RL mult_swflux
796 _RL mult_swdown
797 _RL mult_snowprecip
798 _RL mult_lwflux
799 _RL mult_lwdown
800 _RL mult_evap
801 _RL mult_apressure
802 _RL mult_runoff
803 _RL mult_uwind
804 _RL mult_vwind
805 _RL mult_obcsn
806 _RL mult_obcss
807 _RL mult_obcsw
808 _RL mult_obcse
809 _RL mult_obcsvol
810 _RL mult_curmtr
811 _RL mult_ageos
812 _RL mult_kapgm
813 _RL mult_kapredi
814 _RL mult_diffkr
815 _RL mult_ini_fin
816 _RL mult_edtau
817 _RL mult_bottomdrag
818 _RL mult_smooth_ic
819 _RL mult_smooth_bc
820 _RL mult_transp
821
822 c Record counters relevant for the cost function evaluation.
823 c ==========================================================
824 c
825 c nyearsrec - number of yearly records that will be generated by
826 c the current model integration.
827 c nmonsrec - number of monthly records that will be generated by
828 c the current model integration.
829 c ndaysrec - number of daily records that will be generated by
830 c the current model integration.
831
832 common /ecco_cost_i/
833 & nyearsrec,
834 & nmonsrec,
835 & ndaysrec,
836 & nnztbar,
837 & nnzsbar
838 integer nyearsrec
839 integer nmonsrec
840 integer ndaysrec
841 integer nnztbar
842 integer nnzsbar
843
844
845 c Data files for the weights used in the cost function:
846 c =====================================================
847 c
848 c hflux_errfile - heat flux error.
849 c sflux_errfile - salt flux error.
850 c tauu_errfile - zonal wind stress error.
851 c tauum_errfile - zonal wind stress error.
852 c tauv_errfile - meridional wind stress error.
853 c tauvm_errfile - meridional wind stress error.
854 c tscatx_errfile - zonal wind stress error.
855 c tscaty_errfile - meridional wind stress error.
856 c data_errfile - weights for theta, salt, and SST
857 c geoid_errfile - geoid error.
858 c geoid_covariancefile - geoid error covariance.
859 c ssh_errfile - sea surface height error.
860 c ctdt_errfile - CTD temperature error.
861 c ctds_errfile - CTD salinity error.
862 c drift_errfile - drifter error.
863 c salterrfile - representation error due unresolved eddies
864 c temperrfile - representation error due unresolved eddies
865 c velerrfile - representation error
866
867 common /ecco_cost_c/
868 & hflux_errfile,
869 & hfluxm_errfile,
870 & sflux_errfile,
871 & sfluxm_errfile,
872 & tauu_errfile,
873 & tauum_errfile,
874 & tauv_errfile,
875 & tauvm_errfile,
876 & scatx_errfile,
877 & scaty_errfile,
878 & data_errfile,
879 & geoid_errfile,
880 & geoid_covariancefile,
881 & ssh_errfile,
882 & tp_errfile,
883 & ers_errfile,
884 & gfo_errfile,
885 & ctdt_errfile,
886 & ctds_errfile,
887 & drift_errfile,
888 & udrifterrfile,
889 & vdrifterrfile,
890 & salterrfile,
891 & temperrfile,
892 & velerrfile,
893 & salt0errfile,
894 & temp0errfile,
895 & vel0errfile,
896 & atemp_errfile,
897 & aqh_errfile,
898 & precip_errfile,
899 & swflux_errfile,
900 & swdown_errfile,
901 & snowprecip_errfile,
902 & lwflux_errfile,
903 & lwdown_errfile,
904 & evap_errfile,
905 & apressure_errfile,
906 & runoff_errfile,
907 & edtau_errfile,
908 & kapgm_errfile,
909 & kapredi_errfile,
910 & diffkr_errfile,
911 & bottomdrag_errfile,
912 & gencost_errfile,
913 & uwind_errfile,
914 & vwind_errfile
915 character*(MAX_LEN_FNAM) hflux_errfile
916 character*(MAX_LEN_FNAM) sflux_errfile
917 character*(MAX_LEN_FNAM) tauu_errfile
918 character*(MAX_LEN_FNAM) tauv_errfile
919 character*(MAX_LEN_FNAM) hfluxm_errfile
920 character*(MAX_LEN_FNAM) sfluxm_errfile
921 character*(MAX_LEN_FNAM) tauum_errfile
922 character*(MAX_LEN_FNAM) tauvm_errfile
923 character*(MAX_LEN_FNAM) scatx_errfile
924 character*(MAX_LEN_FNAM) scaty_errfile
925 character*(MAX_LEN_FNAM) data_errfile
926 character*(MAX_LEN_FNAM) geoid_errfile
927 character*(MAX_LEN_FNAM) geoid_covariancefile
928 character*(MAX_LEN_FNAM) ssh_errfile
929 character*(MAX_LEN_FNAM) tp_errfile
930 character*(MAX_LEN_FNAM) ers_errfile
931 character*(MAX_LEN_FNAM) gfo_errfile
932 character*(MAX_LEN_FNAM) ctdt_errfile
933 character*(MAX_LEN_FNAM) ctds_errfile
934 character*(MAX_LEN_FNAM) drift_errfile
935 character*(MAX_LEN_FNAM) udrifterrfile
936 character*(MAX_LEN_FNAM) vdrifterrfile
937 character*(MAX_LEN_FNAM) salterrfile
938 character*(MAX_LEN_FNAM) temperrfile
939 character*(MAX_LEN_FNAM) velerrfile
940 character*(MAX_LEN_FNAM) salt0errfile
941 character*(MAX_LEN_FNAM) temp0errfile
942 character*(MAX_LEN_FNAM) vel0errfile
943 character*(MAX_LEN_FNAM) atemp_errfile
944 character*(MAX_LEN_FNAM) aqh_errfile
945 character*(MAX_LEN_FNAM) precip_errfile
946 character*(MAX_LEN_FNAM) swflux_errfile
947 character*(MAX_LEN_FNAM) swdown_errfile
948 character*(MAX_LEN_FNAM) snowprecip_errfile
949 character*(MAX_LEN_FNAM) lwflux_errfile
950 character*(MAX_LEN_FNAM) lwdown_errfile
951 character*(MAX_LEN_FNAM) evap_errfile
952 character*(MAX_LEN_FNAM) apressure_errfile
953 character*(MAX_LEN_FNAM) runoff_errfile
954 character*(MAX_LEN_FNAM) edtau_errfile
955 character*(MAX_LEN_FNAM) kapgm_errfile
956 character*(MAX_LEN_FNAM) kapredi_errfile
957 character*(MAX_LEN_FNAM) diffkr_errfile
958 character*(MAX_LEN_FNAM) bottomdrag_errfile
959 character*(MAX_LEN_FNAM) gencost_errfile(NGENCOST)
960 character*(MAX_LEN_FNAM) uwind_errfile
961 character*(MAX_LEN_FNAM) vwind_errfile
962
963
964 c Arrays where the weights are stored:
965 c ====================================
966 c
967 c cosphi - cosine of latitude.
968 c whflux - weight for heat flux.
969 c wsflux - weight for salt flux.
970 c wtauu - weight for zonal wind stress.
971 c wtauu - weight for meridional wind stress.
972 c wscatx - weight for zonal scat stress.
973 c wscaty - weight for meridional scat stress.
974 c wtheta - weight for temperature.
975 c wtheta2 - representation error due to unresolved eddies
976 c wsst - weight for sea surface temperature.
977 c wsss - weight for sea surface salinity.
978 c wsalt - weight for salinity.
979 c wsalt2 - representation error due to unresolved eddies
980 c wtp - weight for TOPEX/POSEIDON data.
981 c wers - weight for ERS data.
982 c wp - weight for geoid.
983 c wctdt - weight for CTD temperature.
984 c wctds - weight for CTD salinity.
985 c wudrift - weight for mean zonal velocity from drifters.
986 c wvdrift - weight for mean meridional velocity from drifters.
987
988 common /ecco_cost_weights_r/
989 & frame,
990 & cosphi,
991 & whflux,wsflux,wtauu,wtauv,
992 & watemp,waqh,wprecip,wsnowprecip,
993 & wswflux,wswdown,wlwflux,wlwdown,
994 & wevap,wapressure,wrunoff,
995 & wbottomdrag,
996 & wuwind,wvwind,
997 & wscatx,wscaty,
998 & wtheta,wtheta2,wthetaLev,
999 & wsalt,wsalt2,wsaltLev,
1000 & wdiffkr,wdiffkr2,wdiffkrFld,
1001 & wkapgm,wkapgm2,wkapgmFld,
1002 & wkapredi,wkapredi2,wkaprediFld,
1003 & wedtaux,wedtaux2,wedtauxFld,
1004 & wedtauy,wedtauy2,wedtauyFld,
1005 & wsst,wsss,wbp,
1006 & wtp,wers,wgfo,
1007 & wp,
1008 & wctdt,wctds,
1009 & wudrift,wvdrift,
1010 & whfluxmm,wsfluxmm,
1011 & wcurrent,wcurrent2,
1012 & wcurrentLev,wbaro
1013
1014 _RL frame (1-olx:snx+olx,1-oly:sny+oly )
1015 _RL cosphi (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1016 _RL whflux (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1017 _RL whfluxm (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1018 _RL whfluxmm(1-olx:snx+olx,1-oly:sny+oly)
1019 _RL wsflux (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1020 _RL wsfluxm (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1021 _RL wsfluxmm(1-olx:snx+olx,1-oly:sny+oly)
1022 _RL wtauu (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1023 _RL wtauv (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1024 _RL wtauum (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1025 _RL wtauvm (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1026 _RL wscatx (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1027 _RL wscaty (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1028 _RL watemp (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1029 _RL waqh (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1030 _RL wprecip (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1031 _RL wswflux (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1032 _RL wswdown (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1033 _RL wsnowprecip (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1034 _RL wlwflux (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1035 _RL wlwdown (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1036 _RL wevap (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1037 _RL wapressure(1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1038 _RL wrunoff (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1039 _RL wbottomdrag (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
1040 _RL wuwind (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1041 _RL wvwind (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1042 _RL wtheta ( nr,nsx,nsy)
1043 _RL wsalt ( nr,nsx,nsy)
1044 _RL wtheta2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1045 _RL wsalt2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1046 _RL wthetaLev (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1047 _RL wsaltLev (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1048 _RL wsst (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1049 _RL wsss (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1050 _RL wbp (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1051 _RL wtp (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1052 _RL wers (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1053 _RL wgfo (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1054 _RL wp (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1055 _RL wctdt ( nr,nsx,nsy)
1056 _RL wctds ( nr,nsx,nsy)
1057 _RL wudrift (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1058 _RL wvdrift (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1059 _RL wcurrent( nr,nsx,nsy)
1060 _RL wcurrent2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1061 _RL wcurrentLev (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1062 _RL wbaro
1063 _RL wdiffkr ( nr,nsx,nsy)
1064 _RL wdiffkr2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1065 _RL wdiffkrFld (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1066 _RL wkapgm ( nr,nsx,nsy)
1067 _RL wkapgm2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1068 _RL wkapgmFld (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1069 _RL wkapredi ( nr,nsx,nsy)
1070 _RL wkapredi2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1071 _RL wkaprediFld (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1072 _RL wedtaux ( nr,nsx,nsy)
1073 _RL wedtaux2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1074 _RL wedtauxFld (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1075 _RL wedtauy ( nr,nsx,nsy)
1076 _RL wedtauy2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1077 _RL wedtauyFld (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1078
1079 common /ecco_cost_weights_0_r/
1080 & whflux0, wsflux0, wtau0,
1081 & watemp0, waqh0, wprecip0, wsnowprecip0, wwind0,
1082 & wswflux0, wswdown0, wlwflux0, wlwdown0,
1083 & wevap0, wapressure0, wrunoff0, wkapredi0,
1084 & wbottomdrag0,wdiffkr0, wkapgm0, wedtau0
1085 _RL whflux0
1086 _RL wsflux0
1087 _RL wtau0
1088 _RL watemp0
1089 _RL waqh0
1090 _RL wprecip0
1091 _RL wswflux0
1092 _RL wswdown0
1093 _RL wsnowprecip0
1094 _RL wlwflux0
1095 _RL wlwdown0
1096 _RL wevap0
1097 _RL wapressure0
1098 _RL wrunoff0
1099 _RL wbottomdrag0
1100 _RL wwind0
1101 _RL wdiffkr0
1102 _RL wkapgm0
1103 _RL wkapredi0
1104 _RL wedtau0
1105
1106 common /ecco_cost_weights_mean_r/
1107 & wmean_hflux, wmean_sflux, wmean_tau,
1108 & wmean_atemp, wmean_aqh,
1109 & wmean_precip, wmean_snowprecip, wmean_wind,
1110 & wmean_swflux, wmean_swdown, wmean_lwflux, wmean_lwdown,
1111 & wmean_evap, wmean_apressure, wmean_runoff
1112 _RL wmean_hflux
1113 _RL wmean_sflux
1114 _RL wmean_tau
1115 _RL wmean_atemp
1116 _RL wmean_aqh
1117 _RL wmean_precip
1118 _RL wmean_swflux
1119 _RL wmean_swdown
1120 _RL wmean_snowprecip
1121 _RL wmean_lwflux
1122 _RL wmean_lwdown
1123 _RL wmean_evap
1124 _RL wmean_apressure
1125 _RL wmean_runoff
1126 _RL wmean_wind
1127
1128 common /ecco_cost_weights_2_r/
1129 & whflux2,wsflux2,wtauu2,wtauv2
1130 _RL whflux2 (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1131 _RL wsflux2 (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1132 _RL wtauu2 (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1133 _RL wtauv2 (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1134
1135
1136
1137 #if (defined (ALLOW_OBCSN_COST_CONTRIBUTION) || \
1138 defined (ALLOW_OBCSN_CONTROL))
1139 common /ecco_cost_weights_obcsn/
1140 & wobcsn, wobcsnLev
1141 _RL wobcsn ( nr,nobcs)
1142 _RL wobcsnLev (1-olx:snx+olx,nr,nsx,nsy,nobcs)
1143 #endif
1144 #if (defined (ALLOW_OBCSS_COST_CONTRIBUTION) || \
1145 defined (ALLOW_OBCSS_CONTROL))
1146 common /ecco_cost_weights_obcss/
1147 & wobcss, wobcssLev
1148 _RL wobcss ( nr,nobcs)
1149 _RL wobcssLev (1-olx:snx+olx,nr,nsx,nsy,nobcs)
1150 #endif
1151 #if (defined (ALLOW_OBCSW_COST_CONTRIBUTION) || \
1152 defined (ALLOW_OBCSW_CONTROL))
1153 common /ecco_cost_weights_obcsw/
1154 & wobcsw, wobcswLev
1155 _RL wobcsw ( nr,nobcs)
1156 _RL wobcswLev (1-oly:sny+oly,nr,nsx,nsy,nobcs)
1157 #endif
1158 #if (defined (ALLOW_OBCSE_COST_CONTRIBUTION) || \
1159 defined (ALLOW_OBCSE_CONTROL))
1160 common /ecco_cost_weights_obcse/
1161 & wobcse, wobcseLev
1162 _RL wobcse ( nr,nobcs)
1163 _RL wobcseLev (1-oly:sny+oly,nr,nsx,nsy,nobcs)
1164 #endif
1165
1166
1167 c Arrays that contain observations for the model-data comparison:
1168 c ===============================================================
1169 c
1170 c tdat - reference temperature data.
1171 c scatxdat - reference zonal wind stress.
1172 c scatydat - reference meridional wind stress.
1173 c sstdat - reference sea surface temperature data.
1174 c tmidat - reference TMI sea surface temperature data.
1175 c sssdat - reference sea surface temperature data.
1176 c bpdat - bottom pressure from time-varying GRACE.
1177 c tauxmask - mask for reference wind stress data.
1178 c tauymask - mask for reference wind stress data.
1179 c scatxmask - mask for scat wind stress data.
1180 c scatymask - mask for scat wind stress data.
1181 c sstmask - mask for reference sea surface temperature data.
1182 c tmimask - mask for reference sea surface temperature data.
1183 c sssmask - mask for reference sea surface temperature data.
1184 c sdat - reference salinity data.
1185 c tpmean - reference mean sea surface height data.
1186 c tpmeanmask - mask for reference mean sea surface height data.
1187 c tpobs - TOPEX/POSEIDON data.
1188 c tpmask - mask for TOPEX/POSEIDON data.
1189 c ersobs - ERS data.
1190 c ersmask - mask for ERS data.
1191 c ctdtobs - CTD temperature data
1192 c ctdsobs - CTD salinity data
1193 c xbtobs - XBT data
1194 c argot - ARGO temperature data
1195 c argos - ARGO salt data
1196 c udriftdat - drifters zonal velocities
1197 c vdriftdat - drifters meridional velocities
1198
1199 common /ecco_cost_data_r/
1200 & tdat,
1201 & scatxdat,
1202 & scatydat,
1203 & sstdat,
1204 & tmidat,
1205 & sssdat,
1206 & bpdat,
1207 & sstmask,
1208 & tmimask,
1209 & sssmask,
1210 & bpmask,
1211 & tauxmask,
1212 & tauymask,
1213 & scatxmask,
1214 & scatymask,
1215 & sdat,
1216 & tpmean,
1217 & tpmeanmask,
1218 & tpobs,
1219 & tpmask,
1220 & ersobs,
1221 & ersmask,
1222 & gfoobs,
1223 & gfomask,
1224 & ctdtobs,
1225 & ctdsobs,
1226 & xbtobs,
1227 & argotobs,
1228 & argosobs,
1229 & udriftdat,
1230 & vdriftdat,
1231 & curmtruobs,
1232 & curmtrvobs
1233
1234 _RL tdat (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1235 _RL scatxdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1236 _RL scatydat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1237 _RL sstdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1238 _RL tmidat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1239 _RL sssdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1240 _RL bpdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1241 _RL tauxmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1242 _RL tauymask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1243 _RL scatxmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1244 _RL scatymask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1245 _RL sstmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1246 _RL tmimask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1247 _RL sssmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1248 _RL bpmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1249 _RL sdat (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1250 _RL tpmean (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1251 _RL tpmeanmask(1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1252 _RL tpobs (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1253 _RL tpmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1254 _RL ersobs (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1255 _RL ersmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1256 _RL gfoobs (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1257 _RL gfomask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1258 _RL ctdtobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1259 _RL ctdsobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1260 _RL xbtobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1261 _RL argotobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1262 _RL argosobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1263 _RL udriftdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1264 _RL vdriftdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
1265 _RL curmtruobs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1266 _RL curmtrvobs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
1267
1268
1269 c Files that contain obervations:
1270 c ===============================
1271 c
1272 c tdatfile - reference data file for temperature.
1273 c sdatfile - reference data file for salinity.
1274 c scatxdatfile - reference data file for zonal wind stress.
1275 c scatydatfile - reference data file for meridional wind stress.
1276 c sstdatfile - reference data file for sea surface temperature.
1277 c tmidatfile - reference data file for TMI sea surface temperature.
1278 c topexmeanfile - reference data file for mean sea surface height.
1279 c topexfile - reference data file for sea surface height data
1280 c (TOPEX/POSEIDON).
1281 c ersfile - reference data file for sea surface height data
1282 c (ERS).
1283 c ctdtfile, ctdsfile- reference data file for temperature and salinity
1284 c from CTD
1285 c ctdtclimfile, ctdsclimfile- reference data file for temperature
1286 c and salinity from CTD with out timetag
1287 c xbtfile - reference data file for xbt
1288 c ARGOtfile - reference data file for ARGO
1289 c ARGOsfile - reference data file for ARGO
1290 c driftfile - reference data file for drifter's mean velocities
1291
1292 common /ecco_cost_data_c/
1293 & tdatfile,
1294 & sdatfile,
1295 & scatxdatfile,
1296 & scatydatfile,
1297 & sstdatfile,
1298 & tmidatfile,
1299 & sssdatfile,
1300 & bpdatfile,
1301 & topexmeanfile,
1302 & topexfile,
1303 & ersfile,
1304 & gfofile,
1305 & ctdtfile,
1306 & ctdsfile,
1307 & ctdtclimfile,
1308 & ctdsclimfile,
1309 & xbtfile,
1310 & argotfile,
1311 & argosfile,
1312 & udriftfile,
1313 & vdriftfile,
1314 & gencost_datafile,
1315 & curmtrufile,
1316 & curmtrvfile
1317
1318 character*(MAX_LEN_FNAM) tdatfile
1319 character*(MAX_LEN_FNAM) sdatfile
1320 character*(MAX_LEN_FNAM) scatxdatfile
1321 character*(MAX_LEN_FNAM) scatydatfile
1322 character*(MAX_LEN_FNAM) sstdatfile
1323 character*(MAX_LEN_FNAM) tmidatfile
1324 character*(MAX_LEN_FNAM) sssdatfile
1325 character*(MAX_LEN_FNAM) bpdatfile
1326 character*(MAX_LEN_FNAM) topexmeanfile
1327 character*(MAX_LEN_FNAM) topexfile
1328 character*(MAX_LEN_FNAM) ersfile
1329 character*(MAX_LEN_FNAM) gfofile
1330 character*(MAX_LEN_FNAM) ctdtfile
1331 character*(MAX_LEN_FNAM) ctdsfile
1332 character*(MAX_LEN_FNAM) ctdtclimfile
1333 character*(MAX_LEN_FNAM) ctdsclimfile
1334 character*(MAX_LEN_FNAM) xbtfile
1335 character*(MAX_LEN_FNAM) argotfile
1336 character*(MAX_LEN_FNAM) argosfile
1337 character*(MAX_LEN_FNAM) argofile
1338 character*(MAX_LEN_FNAM) gencost_datafile(NGENCOST)
1339 character*(MAX_LEN_FNAM) udriftfile
1340 character*(MAX_LEN_FNAM) vdriftfile
1341 character*(MAX_LEN_FNAM) curmtrufile
1342 character*(MAX_LEN_FNAM) curmtrvfile
1343
1344
1345 c Flags used in the model-data comparison:
1346 c ========================================
1347 c
1348 c using_ers - flag that indicates the use of ERS data
1349
1350 common /ecco_cost_data_flags/
1351 & using_topex,
1352 & using_ers,
1353 & using_gfo
1354 logical using_topex
1355 logical using_ers
1356 logical using_gfo
1357
1358 c Calendar information for the observations:
1359 c ==========================================
1360 c
1361 c sststartdate - start date of the sea surface temperature data.
1362 c tmistartdate - start date of the sea surface temperature data.
1363 c topexstartdate - start date of the sea surface height data.
1364 c ersstartdate - start date of the sea surface height data.
1365 c sshperiod - sampling interval for the sea surface height data.
1366
1367 common /ecco_cost_data_times_i/
1368 & scatxstartdate,
1369 & scatystartdate,
1370 & sststartdate,
1371 & argotstartdate,
1372 & argosstartdate,
1373 & tmistartdate,
1374 & sssstartdate,
1375 & bpstartdate,
1376 & topexstartdate,
1377 & ersstartdate,
1378 & gfostartdate
1379 integer scatxstartdate(4)
1380 integer scatystartdate(4)
1381 integer sststartdate(4)
1382 integer argotstartdate(4)
1383 integer argosstartdate(4)
1384 integer tmistartdate(4)
1385 integer sssstartdate(4)
1386 integer bpstartdate(4)
1387 integer topexstartdate(4)
1388 integer ersstartdate(4)
1389 integer gfostartdate(4)
1390
1391 common /ecco_cost_data_aux_i/
1392 & tmistartdate1,
1393 & tmistartdate2,
1394 & sststartdate1,
1395 & sststartdate2,
1396 & sssstartdate1,
1397 & sssstartdate2,
1398 & bpstartdate1,
1399 & bpstartdate2,
1400 & argotstartdate1,
1401 & argotstartdate2,
1402 & argosstartdate1,
1403 & argosstartdate2,
1404 & topexstartdate1,
1405 & topexstartdate2,
1406 & ersstartdate1,
1407 & ersstartdate2,
1408 & gfostartdate1,
1409 & gfostartdate2,
1410 & scatstartdate1,
1411 & scatstartdate2
1412
1413 integer tmistartdate1
1414 integer tmistartdate2
1415 integer sststartdate1
1416 integer sststartdate2
1417 integer sssstartdate1
1418 integer sssstartdate2
1419 integer bpstartdate1
1420 integer bpstartdate2
1421 integer argotstartdate1
1422 integer argotstartdate2
1423 integer argosstartdate1
1424 integer argosstartdate2
1425 integer topexstartdate1
1426 integer topexstartdate2
1427 integer ersstartdate1
1428 integer ersstartdate2
1429 integer gfostartdate1
1430 integer gfostartdate2
1431 integer scatstartdate1
1432 integer scatstartdate2
1433
1434 common /ecco_cost_data_times_r/
1435 & topexperiod,
1436 & ersperiod,
1437 & gfoperiod,
1438 & scatperiod
1439 _RL topexperiod
1440 _RL ersperiod
1441 _RL gfoperiod
1442 _RL scatperiod
1443
1444 common /ecco_cost_data_detrend/
1445 & topexintercept,
1446 & ersintercept,
1447 & gfointercept,
1448 & topexslope,
1449 & ersslope,
1450 & gfoslope
1451 _RL topexintercept
1452 _RL ersintercept
1453 _RL gfointercept
1454 _RL topexslope
1455 _RL ersslope
1456 _RL gfoslope
1457
1458 #ifdef ALLOW_SSH_COST_CONTRIBUTION
1459 common /ecco_ssh_daymask_r/
1460 & tpTimeMask, ersTimeMask, gfoTimeMask
1461 _RL tpTimeMask(maxNumDays)
1462 _RL ersTimeMask(maxNumDays)
1463 _RL gfoTimeMask(maxNumDays)
1464 #endif
1465
1466 common /ecco_ssh_daymask_c/
1467 & tpTimeMaskFile, ersTimeMaskFile, gfoTimeMaskFile
1468 character*(MAX_LEN_FNAM) tpTimeMaskFile
1469 character*(MAX_LEN_FNAM) ersTimeMaskFile
1470 character*(MAX_LEN_FNAM) gfoTimeMaskFile
1471
1472 c ==================================================================
1473 c END OF HEADER COST
1474 c ==================================================================
1475
1476

  ViewVC Help
Powered by ViewVC 1.1.22