/[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.49 - (show annotations) (download)
Tue Aug 24 14:34:19 2010 UTC (13 years, 9 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62j
Changes since 1.48: +6 -8 lines
File MIME type: text/plain
remove tabs

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

  ViewVC Help
Powered by ViewVC 1.1.22