#ifndef FROZEN_SOIL_H
#define FROZEN_SOIL_H

typedef struct {
  float airTemp;
  float oldAirTemp;
  float heatFlux;
} FRZPIX;

void InitFrozenSoil(LISTPTR Input, OPTIONSTRUCT *Options, MAPSIZE *Map, 
                     FRZPIX ***FrozenSoil);
void UpdateSoilPhase(int NDaySteps, int JDay, MAPSIZE Map, SNOWPIX **SnowMap, 
                     FRZPIX **FrozenSoil);
float FrozenSoilReduction(FRZPIX **FrozenSoil, int y, int x);
float FrozenSoilReductionWithMoisture(FRZPIX **FrozenSoil, int y, int x, 
                                      float UpperSoilMoisture, float UpperFCap, 
                                      float UpperPorosity);
float FrozenSoilReductionFromSnow(float swq);

#endif
