#ifndef ELEV_H
#define ELEV_H

typedef struct{
  float MeanElev;
  float MeanSlope;
  float MeanAspect;
  int NumCells;
  float MeanLatitude;
  float MeanLongitude;
  double Area;
  int VegType;
  int SoilType;
  float SoilDepth;
} BANDSTRUCT;

typedef struct{
  int NumBands;
  int TotalNumCells;
  int PrintOutflows;
  int ReadBinFiles;
  FILE *ElevBandOut;
} BANDINFO;

void InitElevBand (LISTPTR Input, MAPSIZE Map, BANDSTRUCT ** ElevBand, BANDINFO * ElevBandInfo);

void InitElevBandDump(BANDINFO *ElevBandInfo, char *DumpPath);

void PrintElevBand (DATE *Current, BANDINFO ElevBandInfo, Channel *net, BANDSTRUCT *ElevBand);

void ElevBandUpdate(MAPSIZE Map, TOPOPIX *** TopoMap, VEGPIX ***VegMap,
              BANDSTRUCT ** ElevBand, BANDINFO * ElevBandInfo, SOILPIX ***SoilMap);

void ElevBandBuildGrids(MAPSIZE Map, TOPOPIX *** TopoMap, VEGPIX ***VegMap,
              BANDSTRUCT ** ElevBand, BANDINFO * ElevBandInfo, SOILPIX ***SoilMap, 
              LAYER *Soil);


#endif
