|
PISM, A Parallel Ice Sheet Model stable 0.4.1779
|
Base class for a model which computes surface mass flux rate (ice thickness per time) from precipitation and temperature. More...
#include <localMassBalance.hh>

Public Member Functions | |
| LocalMassBalance (const NCConfigVariable &myconfig) | |
| virtual | ~LocalMassBalance () |
| virtual PetscErrorCode | init () |
| virtual PetscErrorCode | getNForTemperatureSeries (PetscScalar t, PetscScalar dt, PetscInt &N)=0 |
| virtual PetscScalar | getPDDSumFromTemperatureTimeSeries (PetscScalar pddStdDev, PetscScalar pddThresholdTemp, PetscScalar t, PetscScalar dt_series, PetscScalar *T, PetscInt N)=0 |
| Count positive degree days (PDDs). Returned value in units of K day. | |
| virtual PetscScalar | getSnowFromPrecipAndTemperatureTimeSeries (PetscScalar precip_rate, PetscScalar t, PetscScalar dt_series, PetscScalar *T, PetscInt N)=0 |
| virtual PetscErrorCode | getMassFluxesFromPDDs (const DegreeDayFactors &ddf, PetscScalar dt, PetscScalar pddsum, PetscScalar snow, PetscScalar &accumulation_rate, PetscScalar &melt_rate, PetscScalar &runoff_rate, PetscScalar &smb_rate)=0 |
Protected Attributes | |
| const NCConfigVariable & | config |
Base class for a model which computes surface mass flux rate (ice thickness per time) from precipitation and temperature.
This is a process model. At each spatial location, it uses a 1D array, with a time dimension, for the temperature used in melting snow or ice. At each spatial location it assumes the precipitation is time-independent.
This process model does not know its location on the ice sheet, but simply computes the surface mass balance from three quantities:
,
equally-spaced times in the time intervalThis model also uses degree day factors passed-in in DegreeDayFactors ddf, and the standard deviation pddStdDev. The latter is the standard deviation of the modeled temperature away from the input temperature time series which contains the part of location-dependent temperature cycle on the time interval.
Definition at line 65 of file localMassBalance.hh.
| LocalMassBalance | ( | const NCConfigVariable & | myconfig | ) | [inline] |
Definition at line 67 of file localMassBalance.hh.
| virtual ~LocalMassBalance | ( | ) | [inline, virtual] |
Definition at line 69 of file localMassBalance.hh.
| virtual PetscErrorCode getMassFluxesFromPDDs | ( | const DegreeDayFactors & | ddf, |
| PetscScalar | dt, | ||
| PetscScalar | pddsum, | ||
| PetscScalar | snow, | ||
| PetscScalar & | accumulation_rate, | ||
| PetscScalar & | melt_rate, | ||
| PetscScalar & | runoff_rate, | ||
| PetscScalar & | smb_rate | ||
| ) | [pure virtual] |
Input dt is in seconds. Input pddsum is in K day. Input snow is in ice-equivalent m. Returned mass fluxes, including accumulation_rate, melt_rate, runoff_rate, and smb (= surface mass balance), are in ice-equivalent thickness per time (m s-1).
Implemented in PDDMassBalance.
Referenced by PSTemperatureIndex::update_internal().
| virtual PetscErrorCode getNForTemperatureSeries | ( | PetscScalar | t, |
| PetscScalar | dt, | ||
| PetscInt & | N | ||
| ) | [pure virtual] |
Call before getMassFluxFromTemperatureTimeSeries() so that mass balance method can decide how to cut up the time interval. Most implementations will ignore t and just use dt. Input t,dt in seconds.
Implemented in PDDMassBalance, and PDDrandMassBalance.
Referenced by PSTemperatureIndex::update_internal().
| virtual PetscScalar getPDDSumFromTemperatureTimeSeries | ( | PetscScalar | pddStdDev, |
| PetscScalar | pddThresholdTemp, | ||
| PetscScalar | t, | ||
| PetscScalar | dt_series, | ||
| PetscScalar * | T, | ||
| PetscInt | N | ||
| ) | [pure virtual] |
Count positive degree days (PDDs). Returned value in units of K day.
Inputs T[0],...,T[N-1] are temperatures (K) at times t, t+dt_series, ..., t+(N-1)dt_series. Inputs t, dt_series are in seconds.
Implemented in PDDMassBalance, and PDDrandMassBalance.
Referenced by PSTemperatureIndex::update_internal().
| virtual PetscScalar getSnowFromPrecipAndTemperatureTimeSeries | ( | PetscScalar | precip_rate, |
| PetscScalar | t, | ||
| PetscScalar | dt_series, | ||
| PetscScalar * | T, | ||
| PetscInt | N | ||
| ) | [pure virtual] |
Remove rain from precip. Returned value is amount of snow in ice-equivalent m.
Inputs precip_rate is in ice-equivalent m s-1. Note dt = N * dt_series is the full time-step.
Implemented in PDDMassBalance.
Referenced by PSTemperatureIndex::update_internal().
| virtual PetscErrorCode init | ( | ) | [inline, virtual] |
Definition at line 70 of file localMassBalance.hh.
const NCConfigVariable& config [protected] |
Definition at line 106 of file localMassBalance.hh.
Referenced by PDDMassBalance::getNForTemperatureSeries(), and PDDMassBalance::PDDMassBalance().
1.7.3