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

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

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


Revision 1.65 - (hide annotations) (download)
Fri Aug 15 09:27:03 2014 UTC (9 years, 10 months ago) by atn
Branch: MAIN
CVS Tags: checkpoint65c, checkpoint65d, checkpoint65e
Changes since 1.64: +78 -1 lines
File MIME type: text/plain
add cost contribution for sigmaR (drhodr)

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

  ViewVC Help
Powered by ViewVC 1.1.22