/** \file
 *
 *  Specifies the interface details for the DepthRateCalculator component in the
 *  DerivationModule.
 *
 *  DepthRateCalculator.h should only be included by DepthRateCalculator.cpp
 *  Other classes should include DepthRateCalculatorIF.h
 *
 *  Copyright (c) 2007,2008,2009 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
 */

#ifndef TEMPGRADIENTCALCULATORIF_H_
#define TEMPGRADIENTCALCULATORIF_H_

#include "data/ElementURI.h"

/**
 *  Specifies the interface details for the TempGradientCalculator component in the
 *  DerivationModule.
 *
 *  TempGradientCalculator.h should only be included by TempGradientCalculator.cpp
 *  Other classes should include TempGradientCalculator.h
 *
 *  \ingroup modules_derivation
 */
namespace TempGradientCalculatorIF
{
/// Static const for component name
/// (Can be used by other components)
static const Str NAME( "TempGradientCalculator" );

// Include common ConfigURIs -- must be in namespace and follow definition of NAME
#include "component/HasLoadAtStartupIF.h"

static const ConfigURI BINSIZE_DEP( NAME, "binsizeDep", Units::METER );
static const ConfigURI NUM_CONSEC_DEPTHS( NAME, "numConsecutiveDepths", Units::COUNT );
static const ConfigURI THRESH_DEP_CHANGE_ABS( NAME, "threshDepChangeAbs", Units::METER );
static const ConfigURI EXTENSION_DEPTH( NAME, "extensionDep", Units::METER );
static const ConfigURI DEP_SHALLOW_BND_FOR_AVG( NAME, "depShallowBndForAvg", Units::METER );
static const ConfigURI DEP_DEEP_BND_FOR_AVG( NAME, "depDeepBndForAvg", Units::METER );
static const ConfigURI NUM_PROFILES_LP( NAME, "numProfilesLP", Units::COUNT );
static const ConfigURI NUM_PROFILES_GAP( NAME, "numProfilesGap", Units::COUNT );

static const DataURI THERMOCLINE_DEPTH( NAME, "thermoclineDepth", Units::METER );
static const DataURI TARGET_DEPTH( NAME, "targetDepth", Units::METER );
static const DataURI TEMP_HORI_GRAD( NAME, "tempHoriGrad", Units::CELSIUS );
}

#endif /*TEMPGRADIENTCALCULATORIF_H_*/
