14 |
c HEADER AVERAGES |
c HEADER AVERAGES |
15 |
c ================================================================== |
c ================================================================== |
16 |
|
|
17 |
c Averaging counters: |
#include "ecco.h" |
|
c =================== |
|
|
c |
|
|
c sum1day - counter for the daily averaging |
|
|
c sum1mon - counter for the monthly averaging |
|
|
c dayrec - number of averaged surface pressure records. |
|
|
c monrec - number of averaged theta and salinity records. |
|
|
|
|
|
common /average_i/ |
|
|
& sum1day,sum1mon,sum1year, |
|
|
& dayrec,monrec,yearrec |
|
|
integer sum1day |
|
|
integer sum1mon |
|
|
integer sum1year |
|
|
integer dayrec |
|
|
integer monrec |
|
|
integer yearrec |
|
|
|
|
|
c Number of sshv4cost Cost terms: |
|
|
c ============================= |
|
|
INTEGER NSSHV4COST |
|
|
PARAMETER ( NSSHV4COST=5 ) |
|
|
|
|
|
c Number of User Cost terms: |
|
|
c ============================= |
|
|
INTEGER NUSERCOST |
|
|
PARAMETER ( NUSERCOST=10 ) |
|
18 |
|
|
19 |
c Number of days: (hard-coded to set up some vector dimensions |
c Number of days: (hard-coded to set up some vector dimensions |
20 |
c ============================= |
c ============================= |
22 |
INTEGER maxNumDays |
INTEGER maxNumDays |
23 |
PARAMETER ( maxNumDays = 8050 ) |
PARAMETER ( maxNumDays = 8050 ) |
24 |
|
|
25 |
c Number of Generic Cost terms: |
c Number of levels |
26 |
c ============================= |
c ================ |
27 |
INTEGER NGENCOST |
common /ecco_cost_i/ |
28 |
PARAMETER ( NGENCOST=20 ) |
& nnztbar, |
29 |
|
& nnzsbar |
30 |
#ifdef ALLOW_GENCOST_CONTRIBUTION |
#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION |
31 |
c objf_gencost - gencost user defined contribution |
& ,nnzsigmaRbar |
32 |
common /ecco_gencost_ctrl/ |
#endif |
33 |
& xx_genbar_dummy |
integer nnztbar |
34 |
_RL xx_genbar_dummy(NGENCOST) |
integer nnzsbar |
35 |
|
#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION |
36 |
common /ecco_gencost_r_1/ |
integer nnzsigmaRbar |
37 |
& objf_gencost, num_gencost, mult_gencost, |
#endif |
|
& gencost_barfld, gencost_modfld, gencost_weight, |
|
|
& gencost_spmin, gencost_spmax, gencost_spzero |
|
|
_RL objf_gencost(nsx,nsy,NGENCOST) |
|
|
_RL num_gencost(nsx,nsy,NGENCOST) |
|
|
_RL mult_gencost(NGENCOST) |
|
|
_RL gencost_spmin(NGENCOST) |
|
|
_RL gencost_spmax(NGENCOST) |
|
|
_RL gencost_spzero(NGENCOST) |
|
|
_RL gencost_barfld(1-olx:snx+olx,1-oly:sny+oly, |
|
|
& nsx,nsy,NGENCOST) |
|
|
_RL gencost_modfld(1-olx:snx+olx,1-oly:sny+oly, |
|
|
& nsx,nsy,NGENCOST) |
|
|
_RL gencost_weight(1-olx:snx+olx,1-oly:sny+oly, |
|
|
& nsx,nsy,NGENCOST) |
|
|
|
|
|
common /ecco_gencost_r_2/ |
|
|
& gencost_period |
|
|
_RL gencost_period(NGENCOST) |
|
|
|
|
|
common /ecco_gencost_i_1/ |
|
|
& gencost_nrec, gencost_flag |
|
|
#ifdef ALLOW_SMOOTH |
|
|
& , gencost_smooth2Ddiffnbt |
|
|
#endif /* ALLOW_SMOOTH */ |
|
|
integer gencost_nrec(NGENCOST) |
|
|
integer gencost_flag(NGENCOST) |
|
|
#ifdef ALLOW_SMOOTH |
|
|
integer gencost_smooth2Ddiffnbt(NGENCOST) |
|
|
#endif /* ALLOW_SMOOTH */ |
|
|
|
|
|
common /ecco_gencost_l_1/ |
|
|
#ifdef ALLOW_GENCOST_TIMEVARY_WEIGHT |
|
|
& gencost_timevaryweight, |
|
|
#endif /* ALLOW_GENCOST_TIMEVARY_WEIGHT */ |
|
|
& using_gencost |
|
|
LOGICAL using_gencost(NGENCOST) |
|
|
#ifdef ALLOW_GENCOST_TIMEVARY_WEIGHT |
|
|
LOGICAL gencost_timevaryweight(NGENCOST) |
|
|
#endif /* ALLOW_GENCOST_TIMEVARY_WEIGHT */ |
|
|
|
|
|
common /ecco_gencost_c/ |
|
|
& gencost_name, |
|
|
& gencost_scalefile, |
|
|
& gencost_errfile, |
|
|
& gencost_datafile, |
|
|
& gencost_barfile, |
|
|
& gencost_avgperiod, |
|
|
& gencost_mask |
|
|
character*(MAX_LEN_FNAM) gencost_name(NGENCOST) |
|
|
character*(MAX_LEN_FNAM) gencost_scalefile(NGENCOST) |
|
|
character*(MAX_LEN_FNAM) gencost_errfile(NGENCOST) |
|
|
character*(MAX_LEN_FNAM) gencost_datafile(NGENCOST) |
|
|
character*(MAX_LEN_FNAM) gencost_barfile(NGENCOST) |
|
|
character*(5) gencost_avgperiod(NGENCOST) |
|
|
character*(1) gencost_mask(NGENCOST) |
|
38 |
|
|
39 |
#endif /* ALLOW_GENCOST_CONTRIBUTION */ |
c Number of sshv4cost Cost terms: |
40 |
|
c ============================= |
41 |
|
INTEGER NSSHV4COST |
42 |
|
PARAMETER ( NSSHV4COST=5 ) |
43 |
|
|
44 |
c Averaged Fields: |
c Averaged Fields: |
45 |
c ================ |
c ================ |
103 |
#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION |
#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION |
104 |
& sigmaRbar_gen, |
& sigmaRbar_gen, |
105 |
#endif |
#endif |
|
& VOLsumGlob_0, |
|
|
& VOLsumGlob, |
|
|
& RHOsumGlob_0, |
|
|
& RHOsumGlob, |
|
106 |
& wfmean |
& wfmean |
107 |
|
|
|
_RL VOLsumGlob_0, VOLsumGlob, RHOsumGlob_0, RHOsumGlob |
|
|
|
|
108 |
#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION |
#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION |
109 |
_RL sigmaRfield (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) |
_RL sigmaRfield (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) |
110 |
_RL sigmaRbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) |
_RL sigmaRbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) |
275 |
_RL wtransp(maxNumDays) |
_RL wtransp(maxNumDays) |
276 |
#endif |
#endif |
277 |
|
|
|
c file precision and field type |
|
|
|
|
|
common /prec_type_cost/ |
|
|
& cost_iprec, |
|
|
& cost_yftype |
|
|
|
|
|
integer cost_iprec |
|
|
character*(2) cost_yftype |
|
|
|
|
278 |
c ================================================================== |
c ================================================================== |
279 |
c END OF HEADER AVERAGES |
c END OF HEADER AVERAGES |
280 |
c ================================================================== |
c ================================================================== |
833 |
_RL mult_smooth_bc |
_RL mult_smooth_bc |
834 |
_RL mult_transp |
_RL mult_transp |
835 |
|
|
|
c Record counters relevant for the cost function evaluation. |
|
|
c ========================================================== |
|
|
c |
|
|
c nyearsrec - number of yearly records that will be generated by |
|
|
c the current model integration. |
|
|
c nmonsrec - number of monthly records that will be generated by |
|
|
c the current model integration. |
|
|
c ndaysrec - number of daily records that will be generated by |
|
|
c the current model integration. |
|
|
|
|
|
common /ecco_cost_i/ |
|
|
& nyearsrec, |
|
|
& nmonsrec, |
|
|
& ndaysrec, |
|
|
& nnztbar, |
|
|
& nnzsbar |
|
|
#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION |
|
|
& ,nnzsigmaRbar |
|
|
#endif |
|
|
integer nyearsrec |
|
|
integer nmonsrec |
|
|
integer ndaysrec |
|
|
integer nnztbar |
|
|
integer nnzsbar |
|
|
#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION |
|
|
integer nnzsigmaRbar |
|
|
#endif |
|
|
|
|
|
|
|
836 |
c Data files for the weights used in the cost function: |
c Data files for the weights used in the cost function: |
837 |
c ===================================================== |
c ===================================================== |
838 |
c |
c |
1400 |
character*(MAX_LEN_FNAM) curmtrufile |
character*(MAX_LEN_FNAM) curmtrufile |
1401 |
character*(MAX_LEN_FNAM) curmtrvfile |
character*(MAX_LEN_FNAM) curmtrvfile |
1402 |
|
|
|
|
|
|
c Flags used in the model-data comparison: |
|
|
c ======================================== |
|
|
c |
|
|
c using_ers - flag that indicates the use of ERS data |
|
|
|
|
|
common /ecco_cost_data_flags/ |
|
|
& using_topex, |
|
|
& using_ers, |
|
|
& using_gfo, |
|
|
& using_cost_altim, |
|
|
& using_cost_bp, |
|
|
& using_cost_sst, |
|
|
& using_cost_scat, |
|
|
& using_cost_seaice |
|
|
logical using_topex |
|
|
logical using_ers |
|
|
logical using_gfo |
|
|
logical using_cost_altim |
|
|
logical using_cost_bp |
|
|
logical using_cost_sst |
|
|
logical using_cost_scat |
|
|
logical using_cost_seaice |
|
|
|
|
1403 |
c Calendar information for the observations: |
c Calendar information for the observations: |
1404 |
c ========================================== |
c ========================================== |
1405 |
c |
c |