Home Contact Us Site Map  
    next up previous contents
Next: 8.1.2 Generic Integral Function Up: 8.1 ECCO: model-data comparisons Previous: 8.1 ECCO: model-data comparisons   Contents

8.1.1 Generic Cost Function

The parameters available for configuring generic cost function terms in data.ecco are given in table 8.2 and examples of possible specifications are available in:

  • MITgcm_contrib/verification_other/global_oce_cs32/input/data.ecco
  • MITgcm_contrib/verification_other/global_oce_cs32/input_ad.sens/data.ecco
  • MITgcm_contrib/gael/verification/global_oce_llc90/input.ecco_v4/data.ecco

The gridded observation file name is specified by gencost_datafile. Observational time series may be provided as on big file or split into yearly files finishing in `_1992', `_1993', etc. The corresponding $ \vec{m}_i$ physical variable is specified via the gencost_barfile root (see table 8.3). A file named as specified by gencost_barfile gets created where averaged fields are written progressively as the model steps forward in time. After the final time step this file is re-read by cost_generic.F to compute the corresponding cost function term. If gencost_outputlevel = 1 and gencost_name=`foo' then cost_generic.F outputs model-data misfit fields (i.e., $ \vec{d}_i$ ) to a file named `misfit_foo.data' for offline analysis and visualization.

In the current implementation, model-data error covariance matrices $ R_i$ omit non-diagonal terms. Specifying $ R_i$ thus boils down to providing uncertainty fields ($ \sigma_i$ such that $ R_i=\sigma_i^2$ ) in a file specified via gencost_errfile. By default $ \sigma_i$ is assumed to be time-invariant but a $ \sigma_i$ time series of the same length as the $ \vec{o}_i$ time series can be provided using the variaweight option (table 8.4). By default cost functions are quadratic but $ \vec{d}_i^T R_i^{-1} \vec{d}_i$ can be replaced with $ R_i^{-1/2} \vec{d}_i$ using the nosumsq option (table 8.4).

In principle, any averaging frequency should be possible, but only `day', `month', `step', and `const' are implemented for gencost_avgperiod. If two different averaging frequencies are needed for a variable used in multiple cost function terms (e.g., daily and monthly) then an extension starting with `_' should be added to gencost_barfile (such as `_day' and `_mon'). 8.1 If two cost function terms use the same variable and frequency, however, then using a common gencost_barfile saves disk space.

Climatologies of $ \vec{m}_i$ can be formed from the time series of model averages in order to compare with climatologies of $ \vec{o}_i$ by activating the `clim' option via gencost_preproc and setting the corresponding gencost_preproc_i integer parameter to the number of records (i.e., a # of months, days, or time steps) per climatological cycle. The generic post-processor ( $ \mathcal{P}$ in Eq. (8.2)) also allows model-data misfits to be, for example, smoothed in space by setting gencost_posproc to `smooth' and specifying the smoother parameters via gencost_posproc_c and gencost_posproc_i (see table 8.4). Other options associated with the computation of Eq. (8.1) are summarized in table 8.4 and further discussed below. Multiple gencost_preproc / gencost_posproc options may be specified per cost term.

In general the specification of gencost_name is optional, has no impact on the end-result, and only serves to distinguish between cost function terms amongst the model output (STDOUT.0000, STDERR.0000, costfunction000, misfit*.data). Exceptions listed in table 8.6 however activate alternative cost function codes (in place of cost_generic.F) described in section 8.1.3. In this section and in table 8.3 (unlike in other parts of the manual) `zonal' / `meridional' are to be taken literally and these components are centered (i.e., not at the staggered model velocity points). Preparing gridded velocity data sets for use in cost functions thus boils down to interpolating them to XC / YC.

Table: Parameters in ecco_gencost_nml namelist in data.ecco. All parameters are vectors of length NGENCOST (the # of available cost terms) except for gencost_*proc* are arrays of size NGENPPROC$ \times $ NGENCOST. Notes: gencost_is3d is automatically reset to true in all 3D cases in table 8.3; NGENCOST (20) and NGENPPROC (10) can be changed in ecco.h only at compile time.
parameter type function
gencost_name character(*) Name of cost term
gencost_barfile character(*) File to receive model counterpart $ \vec{m}_i$ (see table 8.3)
gencost_datafile character(*) File containing observational data $ \vec{o}_i$
gencost_avgperiod character(5) Averaging period for $ \vec{o}_i$ and $ \vec{m}_i$ (see text)
gencost_outputlevel integer Greater than 0 will output misfit fields
gencost_errfile character(*) Uncertainty field name (not used in section 8.1.2)
gencost_mask character(*) Mask file name root (used only in section 8.1.2)
mult_gencost real Multiplier $ \alpha_i$ (default: 1)
gencost_preproc character(*) Preprocessor names
gencost_preproc_c character(*) Preprocessor character arguments
gencost_preproc_i integer(*) Preprocessor integer arguments
gencost_preproc_r real(*) Preprocessor real arguments
gencost_posproc character(*) Post-processor names
gencost_posproc_c character(*) Post-processor character arguments
gencost_posproc_i integer(*) Post-processor integer arguments
gencost_posproc_r real(*) Post-processor real arguments
gencost_spmin real Data less than this value will be omitted
gencost_spmax real Data greater than this value will be omitted
gencost_spzero real Data points equal to this value will be omitted
gencost_startdate1 integer Start date of observations (YYYMMDD)
gencost_startdate2 integer Start date of observations (HHMMSS)
gencost_is3d logical Needs to be true for 3D fields
gencost_enddate1 integer Not fully implemented (used only in sec. 8.1.3)
gencost_enddate2 integer Not fully implemented (used only in sec. 8.1.3)

Table 8.3: Implemented gencost_barfile options (as of checkpoint 65z) that can be used via cost_generic.F (section 8.1.1). An extension starting with `_' can be appended at the end of the variable name to distinguish between separate cost function terms. Note: the `m_eta' formula depends on the ATMOSPHERIC_LOADING and ALLOW_PSBAR_STERIC compile time options and `useRealFreshWaterFlux' run time parameter.
variable name description remarks
m_eta sea surface height free surface + ice + global steric correction
m_sst sea surface temperature first level potential temperature
m_sss sea surface salinity first level salinity
m_bp bottom pressure phiHydLow
m_siarea sea-ice area from pkg/seaice
m_siheff sea-ice effective thickness from pkg/seaice
m_sihsnow snow effective thickness from pkg/seaice
m_theta potential temperature three-dimensional
m_salt salinity three-dimensional
m_UE zonal velocity three-dimensional
m_VN meridional velocity three-dimensional
m_ustress zonal wind stress from pkg/exf
m_vstress meridional wind stress from pkg/exf
m_uwind zonal wind from pkg/exf
m_vwind meridional wind from pkg/exf
m_atemp atmospheric temperature from pkg/exf
m_aqh atmospheric specific humidity from pkg/exf
m_precip precipitation from pkg/exf
m_swdown downward shortwave from pkg/exf
m_lwdown downward longwave from pkg/exf
m_wspeed wind speed from pkg/exf
m_diffkr vertical/diapycnal diffusivity three-dimensional, constant
m_kapgm GM diffusivity three-dimensional, constant
m_kapredi isopycnal diffusivity three-dimensional, constant
m_geothermalflux geothermal heat flux constant
m_bottomdrag bottom drag constant

Table 8.4: gencost_preproc and gencost_posproc options implemented as of checkpoint 65z. Note: the distinction between gencost_preproc and gencost_posproc seems unclear and may be revisited in the future.
name description specs needed via gencost_preproc_i, _r, or _c
clim Use climatological misfits integer: no. of records per climatological cycle
mean Use time mean of misfits --
anom Use anomalies from time mean --
variaweight Use time-varying weight $ W_i$ --
nosumsq Use linear misfits --
factor Multiply $ \vec{m}_i$ by a scaling factor real: the scaling factor
smooth Smooth misfits character: smoothing scale file
    integer: smoother # of time steps

next up previous contents
Next: 8.1.2 Generic Integral Function Up: 8.1 ECCO: model-data comparisons Previous: 8.1 ECCO: model-data comparisons   Contents
Copyright 2006 Massachusetts Institute of Technology Last update 2018-01-23