/[MITgcm]/MITgcm/pkg/cost/cost.h
ViewVC logotype

Contents of /MITgcm/pkg/cost/cost.h

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


Revision 1.2.6.8 - (show annotations) (download)
Fri Jun 20 05:19:16 2003 UTC (20 years, 11 months ago) by heimbach
Branch: ecco-branch
Changes since 1.2.6.7: +2 -8 lines
File MIME type: text/plain
Reverted back to 3-dim. tbar, sbar for SST, SSS bar files.

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

  ViewVC Help
Powered by ViewVC 1.1.22