SNOWPACK  SNOWPACK-3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DataClasses.h
Go to the documentation of this file.
1 /*
2  * SNOWPACK stand-alone
3  *
4  * Copyright WSL Institute for Snow and Avalanche Research SLF, DAVOS, SWITZERLAND
5 */
6 /* This file is part of Snowpack.
7  Snowpack is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  Snowpack is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with Snowpack. If not, see <http://www.gnu.org/licenses/>.
19 */
26 #ifndef DATACLASSES_H
27 #define DATACLASSES_H
28 
30 
31 #include <snowpack/Constants.h>
32 #include <meteoio/MeteoIO.h>
33 
34 #include <string>
35 #include <vector>
36 
38 enum {
41  GAS,
43 };
44 
46 struct SNOW_OPTIC {
47  double ggg;
48  double exteff;
49  double ssa;
50 };
51 
53 struct WL_STRUCT {
54  double nm;
55  double perc;
56 };
57 
63 class ZwischenData {
64  public:
65  ZwischenData(): hoar24(48, 0.0), drift24(48, 0.0), hn3(144, 0.0), hn24(144, 0.0) {}
66  void reset();
67 
68  friend std::iostream& operator<<(std::iostream& os, const ZwischenData& data);
69  friend std::iostream& operator>>(std::iostream& is, ZwischenData& data);
70 
71  std::vector<double> hoar24;
72  std::vector<double> drift24;
73  std::vector<double> hn3;
74  std::vector<double> hn24;
75 };
76 
81 class CurrentMeteo {
82  public:
83  CurrentMeteo();
84  CurrentMeteo(const SnowpackConfig& i_cfg);
85  void reset(const SnowpackConfig& i_cfg);
86  void setMeasTempParameters(const mio::MeteoData& md);
87  size_t getNumberMeasTemperatures() const;
88  size_t getNumberFixedRates() const;
89  size_t getMaxNumberMeasTemperatures() const;
90  void getFixedPositions(std::vector<double>& positions) const;
91  size_t getNumberFixedPositions() const;
92  void copySnowTemperatures(const mio::MeteoData& md, const unsigned int& current_slope);
93  void copySolutes(const mio::MeteoData& md, const size_t& i_number_of_solutes);
94 
95  const std::string toString() const;
96  friend std::iostream& operator<<(std::iostream& os, const CurrentMeteo& data);
97  friend std::iostream& operator>>(std::iostream& is, CurrentMeteo& data);
98 
99  mio::Date date;
100  double ta;
101  double rh;
102  double rh_avg;
103  double vw;
104  double vw_avg;
105  double vw_max;
106  double dw;
107  double vw_drift;
108  double dw_drift;
109  double ustar;
110  double z0;
111  double psi_s;
112  double iswr;
113  double rswr;
114  double mAlbedo;
115  double diff;
116  double dir_h;
117  double elev;
118  double ea;
119  double tss;
120  double tss_a12h;
121  double tss_a24h;
122  double ts0;
123  double psum;
124  double psum_ph;
125  double hs;
126  double hs_a3h;
127  double hs_rate;
128  double adv_heat;
129 
130  std::vector<double> ts;
131  std::vector<double> zv_ts;
132  std::vector<double> conc;
133  double rho_hn;
134 
135  private:
136  size_t getNumberMeasTemperatures(const mio::MeteoData& md);
137 
138  std::vector<double> fixedPositions;
139  double minDepthSubsurf;
140  size_t maxNumberMeasTemperatures;
141  size_t numberMeasTemperatures;
142  size_t numberFixedRates;
143 };
144 
146 enum SN_FIELD{
151 };
152 
154 enum {
156  ICE,
158  AIR,
160 };
161 
168 };
169 
174 class LayerData {
175  public:
176  LayerData();
177 
178  const std::string toString() const;
179  friend std::iostream& operator<<(std::iostream& os, const LayerData& data);
180  friend std::iostream& operator>>(std::iostream& is, LayerData& data);
181 
182  mio::Date depositionDate;
183  double hl;
184  size_t ne;
185  double tl;
186  double phiSoil;
187  double phiIce;
188  double phiWater;
189  double phiVoids;
190  std::vector<double> cSoil;
191  std::vector<double> cIce;
192  std::vector<double> cWater;
193  std::vector<double> cVoids;
194  double SoilRho;
195  double SoilK;
196  double SoilC;
197  double rg;
198  double sp;
199  double dd;
200  double rb;
201  unsigned short int mk;
202  double hr;
203  double CDot;
204  double metamo;
205 };
206 
213  public:
215  nLayers(0), Ldata(), HS_last(0.), Albedo(0.), SoilAlb(0.), BareSoil_z0(0.),
218  {
219  Ldata.clear();
220  }
221 
222  const std::string toString() const;
223  friend std::iostream& operator<<(std::iostream& os, const SN_SNOWSOIL_DATA& data);
224  friend std::iostream& operator>>(std::iostream& is, SN_SNOWSOIL_DATA& data);
225 
226  mio::StationData meta;
227  mio::Date profileDate;
228  size_t nN;
229  double Height;
230  size_t nLayers;
231  std::vector<LayerData> Ldata;
232  double HS_last;
233  double Albedo;
234  double SoilAlb;
235  double BareSoil_z0;
236  double Canopy_Height;
237  double Canopy_LAI;
243 };
244 
251 class ElementData {
252  public:
254  typedef enum YOUNG_MODULUS {
256  Pow,
258  } Young_Modulus;
259 
260  ElementData();
261 
262  bool checkVolContent() const;
263  void heatCapacity();
264  double coldContent() const;
265  double extinction() const;
268  static double snowResidualWaterContent(const double& theta_i);
269  double soilFieldCapacity() const;
270 
271  double snowElasticity() const;
272  double neckStressEnhancement() const;
273  double concaveNeckRadius() const;
274  double neckLength() const;
275  double neck2VolumetricStrain() const;
276 
277  void snowType();
278  unsigned short int getSnowType() const;
279  static unsigned short int snowType(const double& dendricity, const double& sphericity, const double& grain_dia, const unsigned short int& marker,
280  const double& theta_w, const double& res_wat_cont);
281  static double getYoungModule(const double& rho_slab, const Young_Modulus& model);
282 
283  const std::string toString() const;
284  friend std::iostream& operator<<(std::iostream& os, const ElementData& data);
285  friend std::iostream& operator>>(std::iostream& is, ElementData& data);
286 
287  mio::Date depositionDate;
288  double L0, L;
289  double Te;
290  double gradT;
291  double melting_tk;
292  double freezing_tk;
293  std::vector<double> theta;
294  mio::Array2D<double> conc;
295  std::vector<double> k;
296  // Stored in order to visualize constitutive laws
297  // Will be used for creep field hydraulic conductivity in m3 s kg-1
298  std::vector<double> c;
299  // Will also be used for creep specific snow water capacity in m3 J-1
300  std::vector<double> soil;
301  double Rho;
302  double M;
303  double sw_abs;
304  // Snow Metamorphism Data
305  double rg;
306  double dd;
307  double sp;
308  double ogs;
309  double rb;
310  double N3;
311  size_t mk;
312  unsigned short int type;
313  double metamo;
314  double dth_w;
315  double res_wat_cont;
316  double Qmf;
317  double QIntmf;
318  double dEps, Eps, Eps_e, Eps_v;
319  double Eps_Dot, Eps_vDot;
320  double E;
321  double S;
322  double C;
323  double CDot;
324  double ps2rb;
325  double s_strength;
326  double hard;
327  double S_dr;
329  double theta_r;
330  double lwc_source;
331  //NIED (H. Hirashima)
332  double dhf;
333 };
334 
336 class NodeData {
337  public:
338  NodeData() : z(0.), u(0.), f(0.), udot(0.), T(0.), S_n(0.), S_s(0.), ssi(6.), hoar(0.),
339  dhf(0.), S_dhf(0.), Sigdhf(0.) {} //HACK: set ssi to max_stability!
340 
341  const std::string toString() const;
342  friend std::iostream& operator<<(std::iostream& os, const NodeData& data);
343  friend std::iostream& operator>>(std::iostream& is, NodeData& data);
344 
345  double z;
346  double u;
347  double f;
348  double udot;
349  double T;
350  double S_n;
351  double S_s;
352  double ssi;
353  double hoar;
354 
355  //NIED (H. Hirashima)
356  double dhf;
357  double S_dhf;
358  double Sigdhf;
359 };
360 
375 class CanopyData {
376  public:
377  CanopyData() : storage(0.), temp(0.), sigf(0.), ec(0.), lai(0.), z0m(0.), z0h(0.), zdispl(0.),
378  height(0.), direct_throughfall(0.), ra(0.), rc(0.), rs(0.), rstransp(0.), canopyalb(0.),
379  totalalb(0.), wetfraction(0.), intcapacity(0.), rswrac(0.), iswrac(0.), rswrbc(0.),
380  iswrbc(0.), ilwrac(0.), rlwrac(0.), ilwrbc(0.), rlwrbc(0.), rsnet(0.), rlnet(0.),
381  sensible(0.), latent(0.), latentcorr(0.), transp(0.), intevap(0.),
382  interception(0.), throughfall(0.), snowunload(0.),
383  snowfac(0.), rainfac(0.),liquidfraction(0.),
384  sigftrunk(0), Ttrunk(0.), CondFluxCanop(0.), CondFluxTrunks(0.),
385  LWnet_Trunks(0.), SWnet_Trunks(0.), QStrunks(0.),
386  forestfloor_alb(0.), BasalArea(0), HMLeaves(0.), HMTrunks(0.) {}
387 
388  void reset(const bool& cumsum_mass);
390  void multiplyFluxes(const double& factor);
391 
392  const std::string toString() const;
393  friend std::iostream& operator<<(std::iostream& os, const CanopyData& data);
394  friend std::iostream& operator>>(std::iostream& is, CanopyData& data);
395 
396  // State variable
397  double storage;
398  double temp;
399  double sigf;
400  double ec;
401  // parameters
402  double lai;
403  double z0m;
404  double z0h;
405  double zdispl;
406  double height;
408  // aerodynamic resistances
409  double ra;
410  double rc;
411  double rs;
412  double rstransp;
413  // Averaged variables
414  double canopyalb;
415  double totalalb;
416  double wetfraction;
417  double intcapacity;
418  // Radiations
419  double rswrac;
420  double iswrac;
421  double rswrbc;
422  double iswrbc;
423  double ilwrac;
424  double rlwrac;
425  double ilwrbc;
426  double rlwrbc;
427  double rsnet;
428  double rlnet;
429  // Turbulent fluxes
430  double sensible;
431  double latent;
432  double latentcorr;
433  // Evap fluxes
434  double transp;
435  double intevap;
436  // Mass fluxes
437  double interception;
438  double throughfall;
439  double snowunload;
440  double snowfac;
441  double rainfac;
443  double sigftrunk;
444  double Ttrunk;
445  double CondFluxCanop;
446  double CondFluxTrunks;
447  double LWnet_Trunks;
448  double SWnet_Trunks;
449  double QStrunks;
451  double BasalArea;
452  double HMLeaves;
453  double HMTrunks;
454 
455 };
456 
463 class SnowStation {
464  public:
465  explicit SnowStation(const bool& i_useCanopyModel=true, const bool& i_useSoilLayers=true);
466  SnowStation(const SnowStation& c);
467 
468  ~SnowStation();
470 
471  void initialize(const SN_SNOWSOIL_DATA& SSdata, const size_t& i_sector);
472  void resize(const size_t& number_of_elements);
473 
474  void reduceNumberOfElements(const size_t& rnE);
475  void combineElements(const size_t& number_top_elements, const bool& reduce_n_elements);
476  void combineElements(const size_t& number_top_elements, const bool& reduce_n_elements, const size_t& cond);
477  static bool combineCondition(const ElementData& Edata0, const ElementData& Edata1, const double& depth, const bool& reduce_n_elements);
478  static void mergeElements(ElementData& Edata0, const ElementData& Edata1, const bool& merge, const bool& topElement);
479  void splitElements();
480 
481  void compSnowpackMasses();
482  void compSnowpackInternalEnergyChange(const double& sn_dt);
483  void compSoilInternalEnergyChange(const double& sn_dt);
484  double getLiquidWaterIndex() const;
485  double getModelledTemperature(const double& z) const;
486 
487  size_t getNumberOfElements() const;
488  size_t getNumberOfNodes() const;
489  bool isGlacier(const bool& hydro=false) const;
490  bool hasSoilLayers() const;
491 
492  size_t find_tag(const size_t& tag) const;
493 
494  const std::string toString() const;
495  friend std::iostream& operator<<(std::iostream& os, const SnowStation& data);
496  friend std::iostream& operator>>(std::iostream& is, SnowStation& data);
497 
498  mio::StationData meta;
499  double cos_sl;
500  size_t sector;
501 
503  double pAlbedo;
504  double Albedo;
505  double SoilAlb;
506  double BareSoil_z0;
507  size_t SoilNode;
508  double Ground;
509  double cH;
510  double mH;
511  double mass_sum;
512  double swe;
513  double lwc_sum;
514  double hn;
515  double rho_hn;
516  size_t ErosionLevel;
517  double ErosionMass;
518  char S_class1;
519  char S_class2;
520  double S_d;
521  double z_S_d;
522  double S_n;
523  double z_S_n;
524  double S_s;
525  double z_S_s;
526  double S_4;
527  double z_S_4;
528  double S_5;
529  double z_S_5;
530  std::vector<NodeData> Ndata;
531  std::vector<ElementData> Edata;
532  void *Kt;
533  size_t tag_low;
534  double ColdContent;
536  double dIntEnergy;
537  double dIntEnergySoil;
540  double ReSolver_dt;
541  bool windward;
544 
547  static const double thresh_moist_snow, thresh_moist_soil;
548  static const size_t number_top_elements;
549  static unsigned short number_of_solutes;
550 
551  private:
552  size_t nNodes;
553  size_t nElems;
554  bool useCanopyModel, useSoilLayers;
555  static double flexibleMaxElemLength(const double& depth);
556 };
557 
561 class BoundCond {
562 
563  public:
564  BoundCond() : lw_out(0.), lw_net(0.), qs(0.), ql(0.), qr(0.), qg(Constants::undefined) {}
565  const std::string toString() const;
566 
567  double lw_out;
568  double lw_net;
569  double qs;
570  double ql;
571  double qr;
572  double qg;
573 };
574 
581  public:
599  };
600 
601  const std::string toString() const;
602  friend std::iostream& operator<<(std::iostream& os, const SurfaceFluxes& data);
603  friend std::iostream& operator>>(std::iostream& is, SurfaceFluxes& data);
604 
605  SurfaceFluxes();
606 
607  void reset(const bool& cumsum_mass);
608  void compSnowSoilHeatFlux(const SnowStation& Xdata);
609  void collectSurfaceFluxes(const BoundCond& Bdata, SnowStation& Xdata, const CurrentMeteo& Mdata);
610  void multiplyFluxes(const double& factor);
611 
617  double lw_in;
618  double lw_out;
619  double lw_net;
620  double qs;
621  double ql;
622  double hoar;
623  double qr;
624  double qg;
625  double qg0;
626  double sw_hor;
627  double sw_in;
628  double sw_out;
629  double qw;
630  double sw_dir;
631  double sw_diff;
632  double pAlbedo;
633  double mAlbedo;
634  double dIntEnergy;
635  double dIntEnergySoil;
638 
640  double drift;
641  std::vector<double> mass;
642  std::vector<double> load;
643  double dhs_corr;
644  double cRho_hn;
645  double mRho_hn;
646 
647 };
649 
652  public:
654 
655  void average(const double& w1, const double& w2, const SnowProfileLayer& Pdata);
656  static std::vector<SnowProfileLayer> generateProfile(const mio::Date& dateOfProfile, const SnowStation& Xdata, const double hoar_density_surf, const double hoar_min_size_surf);
657 
658  // Profile meta data
659  mio::Date profileDate;
660  std::string stationname;
661  unsigned char loc_for_snow;
662  unsigned char loc_for_wind;
663 
664  mio::Date depositionDate;
665  double height;
666  double rho;
667  double T;
668  double gradT;
669  double v_strain_rate;
670  double theta_i;
671  double theta_w;
672  double theta_a;
673  double grain_size;
674  double bond_size;
675  double dendricity;
676  double sphericity;
677  double ogs;
678  double coordin_num;
679  unsigned short int marker;
680  short unsigned int type;
681  double hard;
682 
683  private:
684  void generateLayer(const ElementData& Edata, const NodeData& Ndata);
685  void generateLayer(const ElementData& Edata, const NodeData& Ndata,
686  const mio::Date& dateOfProfile, const double hoar_density_surf);
687 };
688 
690 class RunInfo {
691  public:
692  RunInfo();
693  RunInfo(const RunInfo& orig);
694  RunInfo& operator=(const RunInfo&) {return *this;} //everything is static, so we can not change anything
695 
696  const std::string version;
697  const mio::Date computation_date;
698  const std::string compilation_date;
699  const std::string user;
700 
701  private:
702  static mio::Date getRunDate();
703  static std::string getCompilationDate();
704 };
705 
707 struct ProcessDat {
709  ch(0.), swe(0.), tot_lwc(0.), runoff(0.), dewpt_def(0.), hoar_size(0.), hoar_ind6(0.), hoar_ind24(0.),
710  wind_trans(0.), wind_trans24(0.),
711  hn_half_hour(0.), hn3(0.), hn6(0.), hn12(0.), hn24(0.), hn72(0.), hn72_24(0.),
712  psum_half_hour(0.), psum3(0.), psum6(0.), psum12(0.), psum24(0.), psum72(0.),
713  stab_class1(0), stab_class2(0),
715  crust(0.), en_bal(0.), sw_net(0.), t_top1(0.), t_top2(0.), lwi_N(0.), lwi_S(0.),
716  dhs_corr(0.), mass_corr(0.)
717  {}
718 
719  mio::Date date;
720  unsigned int nHz;
721  std::string stat_abbrev;
722  unsigned char loc_for_snow;
723  unsigned char loc_for_wind;
724  // Data
725  double ch;
726  double swe;
727  double tot_lwc;
728  double runoff;
729  double dewpt_def;
730  double hoar_size;
731  double hoar_ind6;
732  double hoar_ind24;
733  double wind_trans;
734  double wind_trans24;
735  double hn_half_hour;
736  double hn3;
737  double hn6;
738  double hn12;
739  double hn24;
740  double hn72;
741  double hn72_24;
742  double psum_half_hour;
743  double psum3;
744  double psum6;
745  double psum12;
746  double psum24;
747  double psum72;
748  signed char stab_class1;
749  signed char stab_class2;
750  double stab_index1;
751  double stab_height1;
752  double stab_index2;
753  double stab_height2;
754  double stab_index3;
755  double stab_height3;
756  double stab_index4;
757  double stab_height4;
758  double stab_index5;
759  double stab_height5;
760  // Special parameters
761  double crust;
762  double en_bal;
763  double sw_net;
764  double t_top1, t_top2;
765  double lwi_N, lwi_S;
766  // Control parameters
767  double dhs_corr;
768  double mass_corr;
769 };
770 
771 struct ProcessInd {
773  ch(true), swe(true), tot_lwc(true), runoff(true), dewpt_def(true),
774  hoar_size(true), hoar_ind6(true), hoar_ind24(true),
775  wind_trans(true), wind_trans24(true),
776  hn3(true), hn6(true), hn12(true), hn24(true), hn72(true), hn72_24(true), psum3(true), psum6(true), psum12(true), psum24(true), psum72(true),
777  stab_class1(true), stab_class2(true),
778  stab_index1(true), stab_height1(true), stab_index2(true), stab_height2(true), stab_index3(true), stab_height3(true), stab_index4(true), stab_height4(true), stab_index5(true), stab_height5(true),
779  crust(true), en_bal(true), sw_net(true), t_top1(true), t_top2(true), lwi_N(true), lwi_S(true)
780  {}
781 
785  // Data
786  bool ch;
787  bool swe;
788  bool tot_lwc;
789  bool runoff;
790  bool dewpt_def;
791  bool hoar_size;
794  bool hn3, hn6, hn12, hn24, hn72;
795  bool hn72_24;
803  bool crust;
804  bool en_bal;
805  bool sw_net;
806  bool t_top1, t_top2;
807  bool lwi_N, lwi_S;
808 };
809 
811 class Tag {
812  public:
813  Tag();
814 
815  void compute_properties(const ElementData& Edata);
816  void reposition_tag(const bool& useSoilLayers, const double& z, SnowStation& Xdata);
817 
818  static const bool metamo_expl;
819 
820  std::string label;
821  mio::Date date;
822  //char label[MAX_STRING_LENGTH]; ///< Label for output file header
823  //double JulianDate; ///< Julian date at which to start tagging
824 
825  // Repositioning
826  size_t elem;
827  double previous_depth;
828  // Viscosity
829  double etaNS;
830  double etaMSU;
831  // Metamorphism
832  double ML2L;
833  double lp;
834 };
835 
836 class TaggingData {
837  public:
838  TaggingData(const double& i_calculation_step_length);
839  void resize(size_t i_size);
840  void update_tags(const CurrentMeteo& Mdata, SnowStation& Xdata);
841 
845  std::vector<Tag> tags;
846 
847  private:
848  size_t number_tags;
849 };
850 
851 #endif
double ra
from canopy air to reference height
Definition: DataClasses.h:409
double ogs
0 to 100, optical equivalent grain size (mm)
Definition: DataClasses.h:677
double ssi
Structural Stability Index.
Definition: DataClasses.h:352
double SoilC
Heat Capacity of soil.
Definition: DataClasses.h:196
Equivalent to MS_SNOWPACK_RUNOFF but at bottom soil node.
Definition: DataClasses.h:597
double vw_max
Maximum wind velocity at snow station (m s-1)
Definition: DataClasses.h:105
size_t getNumberMeasTemperatures() const
Returns the number of measured snow/soil temperatures stored in MeteoData.
Definition: DataClasses.cc:2483
double etaNS
New snow viscosity according to M. Lehning.
Definition: DataClasses.h:829
double QIntmf
Apparent change in internal energy due to phase change (caused by difference in heat capacity of wate...
Definition: DataClasses.h:317
double lwi_N
Definition: DataClasses.h:765
double stab_index5
none
Definition: DataClasses.h:758
bool tot_lwc
Definition: DataClasses.h:788
const std::string version
SNOWPACK version.
Definition: DataClasses.h:696
std::vector< double > ts
Measured snow or/and soil temperatures (K)
Definition: DataClasses.h:130
bool hn72_24
Definition: DataClasses.h:795
friend std::iostream & operator>>(std::iostream &is, CanopyData &data)
Definition: DataClasses.cc:623
friend std::iostream & operator>>(std::iostream &is, ZwischenData &data)
Definition: DataClasses.cc:103
mio::StationData meta
Station meta data.
Definition: DataClasses.h:498
bool ch
Definition: DataClasses.h:786
bool stab_index2
Definition: DataClasses.h:799
ZwischenData contains "memory" information mainly for operational use It is used to prepare some para...
Definition: DataClasses.h:63
const double undefined
This is the snowpack undefined value.
Definition: Constants.h:47
friend std::iostream & operator>>(std::iostream &is, LayerData &data)
Definition: DataClasses.cc:2866
Canopy data used as a pointer in the SnowStation structureINSTANTANEOUS VARIABLESCanopy "state" varia...
Definition: DataClasses.h:375
mio::Date profileDate
Date of profile.
Definition: DataClasses.h:659
void opticalEquivalentGrainSize()
Opical equivalent grain size CROCUS implementation as described in Vionnet et al., 2012. The detailed snowpack scheme Crocus and its implementation in SURFEX v7.2, Geosci. Model Dev., 5, 773-791, 10.5194/gmd-5-773-2012. (see section 3.6)
Definition: DataClasses.cc:991
std::vector< double > mass
Total mass of snowpack PLUS different amounts of total mass change, sublimation, runoff, erosion, etc. Basically the mass which crosses the surface.
Definition: DataClasses.h:641
std::vector< double > cSoil
Solute concentrations in Soil.
Definition: DataClasses.h:190
double qg0
ground heat flux at soil-snow interface
Definition: DataClasses.h:625
bool hoar_ind24
Definition: DataClasses.h:792
double liquidfraction
Definition: DataClasses.h:442
std::vector< double > soil
Contains the heat conductivity, capacity and dry density of the soil (solid, non-ice) component phase...
Definition: DataClasses.h:300
double stab_index1
deformation index Sdef
Definition: DataClasses.h:750
double hard
0. to 5. (1)
Definition: DataClasses.h:681
double dIntEnergySoil
Internal energy change of soil (J m-2)
Definition: DataClasses.h:537
double dEps
Definition: DataClasses.h:318
double getModelledTemperature(const double &z) const
Returns modelled internal snow or/and soil temperature (instantaneous value; degC), at a given position z perpendicular to slope (m) z must be less than computed height (Xdata->cH), otherwise modeled temperature is set to Constants::undefined.
Definition: DataClasses.cc:1548
double rs
from subsurface to canpopy air
Definition: DataClasses.h:411
double Canopy_LAI
Canopy Leaf Area Index in m2 m-2.
Definition: DataClasses.h:237
void update_tags(const CurrentMeteo &Mdata, SnowStation &Xdata)
Update tagsEvent driven tagging according to TAG_EVENTTagging of surface element on given date...
Definition: DataClasses.cc:3002
const std::string toString() const
Definition: DataClasses.cc:1311
double mRho_hn
Measured new snow density (kg m-3)
Definition: DataClasses.h:645
SN_SNOWSOIL_DATA includes all important station parameters as well as LayerData This data structure ...
Definition: DataClasses.h:212
double Eps
Definition: DataClasses.h:318
double ts0
Bottom temperatures of snow/soil pack (K)
Definition: DataClasses.h:122
bool hn72
Definition: DataClasses.h:794
friend std::iostream & operator>>(std::iostream &is, SnowStation &data)
Definition: DataClasses.cc:2273
double ea
Atmospheric emissivity (1)
Definition: DataClasses.h:118
double rho_hn
Density of new snow to be used on slopes.
Definition: DataClasses.h:515
mio::Array2D< double > conc
Concentration for chemical constituents in (kg m-3)
Definition: DataClasses.h:294
signed char stab_class1
stability classes 1,3,5
Definition: DataClasses.h:748
static const double comb_thresh_sp
Sphericity (1)
Definition: DataClasses.h:546
double lw_in
Energy fluxes: Energy change of snowpack in kJ m-2 (dIntEnergy) Fluxes in W m-2.
Definition: DataClasses.h:617
double tot_lwc
total liquid water content (kg m-2)
Definition: DataClasses.h:727
LayerData()
Definition: DataClasses.cc:2816
double v_strain_rate
0 to 1.0e-5, viscous strain rate (s-1)
Definition: DataClasses.h:669
double LWnet_Trunks
net LW to trunks (>0 towards trunks)
Definition: DataClasses.h:447
double z_S_4
Depth of stab_index4.
Definition: DataClasses.h:527
void getFixedPositions(std::vector< double > &positions) const
Definition: DataClasses.cc:2502
mio::Date date
date at which to start tagging
Definition: DataClasses.h:821
Definition: SnowpackConfig.h:28
size_t elem
Index of tagged element.
Definition: DataClasses.h:826
const std::string toString() const
Definition: DataClasses.cc:2787
std::string stat_abbrev
Definition: DataClasses.h:721
Bulk conductivity of dry soil component.
Definition: DataClasses.h:165
double en_bal
internal energy change (kJ m-2)
Definition: DataClasses.h:762
void average(const double &w1, const double &w2, const SnowProfileLayer &Pdata)
Determines the averaged quantities of the current layer with another layer.
Definition: DataClasses.cc:237
ProcessDat()
Definition: DataClasses.h:708
static const double comb_thresh_ice
Volumetric ice content (1), i.e., about 46 kg m-3.
Definition: DataClasses.h:545
double WindScalingFactor
Local scaling factor for wind at drift station.
Definition: DataClasses.h:240
double L
Original and present element thickness (m)
Definition: DataClasses.h:288
double vw
Wind velocity at snow station (m s-1)
Definition: DataClasses.h:103
short unsigned int type
0 to 999 (1)
Definition: DataClasses.h:680
void collectSurfaceFluxes(const BoundCond &Bdata, SnowStation &Xdata, const CurrentMeteo &Mdata)
Assign surface data from SnowStation and BoundCond to SurfaceFluxes.
Definition: DataClasses.cc:340
SnowProfileLayer()
Definition: DataClasses.cc:120
void reduceNumberOfElements(const size_t &rnE)
Remove the upper "marked" element of two (snow only) Merging two elements:density is undefinedtake t...
Definition: DataClasses.cc:1692
double SoilK
Conductivity of soil.
Definition: DataClasses.h:195
size_t tag_low
Lowest tag to dump, 0 means no tags at all.
Definition: DataClasses.h:533
mio::Date date
Process date.
Definition: DataClasses.h:719
bool hoar_ind6
Definition: DataClasses.h:792
void reset()
Sets all the values in the vectors to 0.0.
Definition: DataClasses.cc:81
void reposition_tag(const bool &useSoilLayers, const double &z, SnowStation &Xdata)
Reposition tag.
Definition: DataClasses.cc:2964
double lw_out
outgoing longwave radiation
Definition: DataClasses.h:567
const std::string user
logname of the user running the simulation
Definition: DataClasses.h:699
std::vector< double > zv_ts
Positions of all measured snow or/and soil temperatures (m)
Definition: DataClasses.h:131
double rainfac
rainfall above canopy
Definition: DataClasses.h:441
friend std::iostream & operator>>(std::iostream &is, SurfaceFluxes &data)
Definition: DataClasses.cc:465
double psum6
6 h new snow water equivalent (kg m-2)
Definition: DataClasses.h:744
double dir_h
Horizontal direct radiation from the sky (W m-2)
Definition: DataClasses.h:116
double bond_size
0 to 100 (mm)
Definition: DataClasses.h:674
Mass loss rate due to wind erosion.
Definition: DataClasses.h:593
Specific heat of dry soil component.
Definition: DataClasses.h:166
double E
Young's modulus of elasticity (Pa)
Definition: DataClasses.h:320
double forestfloor_alb
albedo of the forest floor
Definition: DataClasses.h:450
double hn3
3 h depth of snowfall (cm)
Definition: DataClasses.h:736
Class for recording reference properties of tagged elements.
Definition: DataClasses.h:811
static double getYoungModule(const double &rho_slab, const Young_Modulus &model)
Definition: DataClasses.cc:897
static unsigned short number_of_solutes
The model treats that number of solutes.
Definition: DataClasses.h:549
friend std::iostream & operator<<(std::iostream &os, const ZwischenData &data)
Definition: DataClasses.cc:89
friend std::iostream & operator<<(std::iostream &os, const SnowStation &data)
Definition: DataClasses.cc:2195
double sw_net
surface energy input (kJ m-2)
Definition: DataClasses.h:763
CanopyData()
Definition: DataClasses.h:377
double psum_half_hour
half_hour new snow water equivalent (kg m-2)
Definition: DataClasses.h:742
void compSnowSoilHeatFlux(const SnowStation &Xdata)
Compute ground heat flux at soil/snow boundary.
Definition: DataClasses.cc:310
double gradT
temperature gradient over element (K m-1)
Definition: DataClasses.h:290
double elev
Solar elevation to be used in Canopy.c (rad) => see also.
Definition: DataClasses.h:117
double snowfac
snowfall above canopy
Definition: DataClasses.h:440
double sw_hor
incoming global shortwave radiation on horizontal surface
Definition: DataClasses.h:626
double adv_heat
Advective heat to inject in the soil (if ADVECTIVE_HEAT and related parameters set to true) ...
Definition: DataClasses.h:128
double iswrac
downward shortwave radiation above canopy
Definition: DataClasses.h:420
bool lwi_N
Definition: DataClasses.h:807
ProcessInd()
Definition: DataClasses.h:772
double rstransp
stomatal surface resistance for transpiration
Definition: DataClasses.h:412
bool psum72
Definition: DataClasses.h:796
double SoilAlb
Soil albedo.
Definition: DataClasses.h:505
Definition: DataClasses.h:167
double stab_index3
skier stability index Sk38
Definition: DataClasses.h:754
bool stab_index5
Definition: DataClasses.h:802
double QStrunks
sensible heat flux from trunks (>0 if heat lost from trunk)
Definition: DataClasses.h:449
std::vector< double > cWater
Solute concentrations in Water.
Definition: DataClasses.h:192
bool t_top2
Definition: DataClasses.h:806
double latentcorr
Definition: DataClasses.h:432
double mAlbedo
Measured snow albedo.
Definition: DataClasses.h:114
bool hn3
Definition: DataClasses.h:794
double Canopy_Height
Canopy Height in m.
Definition: DataClasses.h:236
double rg
Micro-structure : Grainsize in mm.
Definition: DataClasses.h:197
double L0
Definition: DataClasses.h:288
bool stab_index4
Definition: DataClasses.h:801
ELEMENT DATA used as a pointer in the SnowStation structure NOTE on M below: this is the mass of an e...
Definition: DataClasses.h:251
double rswrac
upward shortwave above canopy
Definition: DataClasses.h:419
class to collect the information about the current simulation (version, date)
Definition: DataClasses.h:690
double ql
latent heat
Definition: DataClasses.h:621
double phiVoids
Volumetric void content in %.
Definition: DataClasses.h:189
mio::Date depositionDate
Date of deposition (mainly used for snow layers)
Definition: DataClasses.h:664
double S_4
stab_index4
Definition: DataClasses.h:526
SnowStation & operator=(const SnowStation &)
Assignement operator.
Definition: DataClasses.cc:1404
double exteff
Extinction Efficiency.
Definition: DataClasses.h:48
double ch
height of snow HS (cm)
Definition: DataClasses.h:725
double sphericity
0 to 1 (1)
Definition: DataClasses.h:676
double freezing_tk
freezing temperature of layer (principally initialized as 0 degC, but enables possibility for freezin...
Definition: DataClasses.h:292
double stab_height4
depth of stab_index4 (cm)
Definition: DataClasses.h:757
void snowType()
Determine the type of snow First revisited by Fierz and Bellaire 2006 and 2007 TODO needs to be adap...
Definition: DataClasses.cc:1160
double z0h
Definition: DataClasses.h:404
double z_S_s
Depth of Minimum SSI.
Definition: DataClasses.h:525
const std::string toString() const
Definition: DataClasses.cc:2758
double calculation_step_length
Definition: DataClasses.h:843
Optical Properties of snow.
Definition: DataClasses.h:46
double drift
Other surface data:
Definition: DataClasses.h:640
double z0m
Definition: DataClasses.h:403
double perc
Percentage of Energy.
Definition: DataClasses.h:55
double HMTrunks
Trunks heat mass (J K-1 /m2 ground surface)
Definition: DataClasses.h:453
unsigned char loc_for_wind
Definition: DataClasses.h:723
void copySolutes(const mio::MeteoData &md, const size_t &i_number_of_solutes)
Definition: DataClasses.cc:2539
double S_n
Stability Index for natural avalanches.
Definition: DataClasses.h:350
double melting_tk
melt temperature of layer (principally initialized as 0 degC, but enables possibility for freezing po...
Definition: DataClasses.h:291
double lwc_sum
Total liquid water in snowpack.
Definition: DataClasses.h:513
ZwischenData()
Definition: DataClasses.h:65
size_t mk
grain marker (history dependent)
Definition: DataClasses.h:311
double qs
sensible heat
Definition: DataClasses.h:620
friend std::iostream & operator<<(std::iostream &os, const NodeData &data)
Definition: DataClasses.cc:1334
double rlwrbc
upward longwave radiation BELOW canopy
Definition: DataClasses.h:426
double SoilAlb
Soil albedo, default 0.2.
Definition: DataClasses.h:234
double CDot
Stress rate (Pa s-1), that is the LAST overload change rate.
Definition: DataClasses.h:203
double S_s
Stability Index for skier triggered avalanches.
Definition: DataClasses.h:351
std::vector< ElementData > Edata
pointer to element data array (e.g. Te, L, Rho, etc..)
Definition: DataClasses.h:531
double s_strength
Parameterized snow shear strength (kPa)
Definition: DataClasses.h:325
void * Kt
Pointer to pseudo-conductivity and stiffnes matrix.
Definition: DataClasses.h:532
Solid.
Definition: DataClasses.h:39
double z_S_d
Depth of Minimum Direct Action Stability.
Definition: DataClasses.h:521
double neck2VolumetricStrain() const
Relates the neck strain to the global volumetric strain.
Definition: DataClasses.cc:1146
double T
-50 to 50, snow temperature at top of layer (degC)
Definition: DataClasses.h:667
Spectrum of incoming solar radiation.
Definition: DataClasses.h:53
double mAlbedo
measured Albedo (used for OUTPUT only)
Definition: DataClasses.h:633
double hs_a3h
Snow depth averaged over 3 past hours.
Definition: DataClasses.h:126
size_t ErosionLevel
Element where snow erosion stopped previously for the drift index.
Definition: DataClasses.h:516
bool psum12
Definition: DataClasses.h:796
The total mass loss of snowpack due to water transport (virtual lysimeter)
Definition: DataClasses.h:596
RunInfo()
Definition: DataClasses.cc:59
Ice.
Definition: DataClasses.h:156
double metamo
keep track of metamorphism
Definition: DataClasses.h:313
double ogs
optical equivalent grain size (mm)
Definition: DataClasses.h:308
double sw_out
reflected shortwave radiation
Definition: DataClasses.h:628
Definition: DataClasses.h:580
std::vector< double > cVoids
Solute concentrations in Air.
Definition: DataClasses.h:193
RunInfo & operator=(const RunInfo &)
Definition: DataClasses.h:694
double sp
sphericity: 1 = round, 0 = angular
Definition: DataClasses.h:307
const std::string toString() const
Definition: DataClasses.cc:261
double throughfall
Definition: DataClasses.h:438
std::string stationname
Definition: DataClasses.h:660
void combineElements(const size_t &number_top_elements, const bool &reduce_n_elements)
If more than NUMBER_TOP_ELEMENTS snow elements exist, attempt to reduce their number in the FEM mesh...
Definition: DataClasses.cc:1625
double psum24
24 h new snow water equivalent (kg m-2)
Definition: DataClasses.h:746
double iswrbc
downward shortwave radiation below canopy
Definition: DataClasses.h:422
double concaveNeckRadius() const
A non-generic function to compute the concave neck radius (mm). It is assumed that the neck is bound...
Definition: DataClasses.cc:1120
double stab_height5
depth of stab_index5 (cm)
Definition: DataClasses.h:759
bool t_top1
Definition: DataClasses.h:806
double HS_last
Last checked calculated snow depth used for albedo control.
Definition: DataClasses.h:232
size_t sector
current slope sector of width 360./max(1, nSlopes-1)
Definition: DataClasses.h:500
double grain_size
0 to 100 (mm)
Definition: DataClasses.h:673
double gradT
-1000 to 1000, temperature gradient across layer (K m-1)
Definition: DataClasses.h:668
double hn
Depth of new snow to be used on slopes.
Definition: DataClasses.h:514
NodeData()
Definition: DataClasses.h:338
double lw_net
net longwave radiation
Definition: DataClasses.h:568
double res_wat_cont
Residual water content.
Definition: DataClasses.h:315
double hl
The thickness of the layer in m.
Definition: DataClasses.h:183
std::vector< double > k
For example, heat conductivity of TEMPERATURE field (W m-1 K-1)
Definition: DataClasses.h:295
static const size_t number_top_elements
Number of top elements left untouched by the join functions.
Definition: DataClasses.h:548
std::vector< LayerData > Ldata
contains all the information required to construct the Xdata
Definition: DataClasses.h:231
static const double comb_thresh_rg
Grain radius (mm)
Definition: DataClasses.h:546
unsigned int nHz
Number of hazard steps.
Definition: DataClasses.h:720
int ErosionLevel
Erosion Level in operational mode (flat field virtual erosion)
Definition: DataClasses.h:241
double psum72
72 h new snow water equivalent (kg m-2)
Definition: DataClasses.h:747
double stab_height1
depth of stab_index1 (cm)
Definition: DataClasses.h:751
double theta_i
0 to 1, volume fraction of ice (-)
Definition: DataClasses.h:670
double f
reaction or unbalanced forces (CREEP)
Definition: DataClasses.h:347
double Albedo
Snow albedo used by the model.
Definition: DataClasses.h:504
double wetfraction
fraction of canopy covered by interception [-]
Definition: DataClasses.h:416
double rho
0 to 1000 (kg m-3)
Definition: DataClasses.h:666
double lw_net
net longwave radiation
Definition: DataClasses.h:619
size_t ne
Number of finite elements in the the layer (hl/ne defines elm. size)
Definition: DataClasses.h:184
double meltFreezeEnergySoil
Melt freeze part of internal energy change of soil (J m-2)
Definition: DataClasses.h:539
bool swe
Definition: DataClasses.h:787
ElementData()
Definition: DataClasses.cc:755
static const double comb_thresh_l
Both elements must be smaller than COMB_THRESH_L (m) for an action to be taken.
Definition: DataClasses.h:545
double sw_abs
total absorbed shortwave radiation by the element (W m-2)
Definition: DataClasses.h:303
std::vector< double > conc
Solute concentrations in precipitation.
Definition: DataClasses.h:132
double transp
Definition: DataClasses.h:434
bool psum24
Definition: DataClasses.h:796
double S_dhf
Definition: DataClasses.h:357
double hn24
24 depth of snowfall (cm)
Definition: DataClasses.h:739
double TimeCountDeltaHS
Time counter tracking erroneous settlement in operational mode.
Definition: DataClasses.h:242
const std::string toString() const
Definition: DataClasses.cc:2673
double S_5
stab_index5
Definition: DataClasses.h:528
double psum_ph
precipitation phase for the current timestep (between 0 and 1, 0 is fully solid while 1 is fully liqu...
Definition: DataClasses.h:124
bool stab_height1
Definition: DataClasses.h:798
size_t nLayers
Total number of soil and snow layers at loading.
Definition: DataClasses.h:230
double tl
Temperature at the top of the layer in K.
Definition: DataClasses.h:185
bool hn6
Definition: DataClasses.h:794
double dhs_corr
operational mode only: snow depth correction in case of squeezing or blow-up (m)
Definition: DataClasses.h:643
double snowElasticity() const
SNOW ELASTICITY : This important routine was programmed by Marc Christen, who took it directly from M...
Definition: DataClasses.cc:1091
double hoar_ind6
6 h surface hoar index (kg m-2)
Definition: DataClasses.h:731
unsigned char loc_for_wind
Definition: DataClasses.h:662
bool stab_index1
Definition: DataClasses.h:798
double sensible
Definition: DataClasses.h:430
bool checkVolContent() const
Check volumetric content.
Definition: DataClasses.cc:923
size_t tag_top
Definition: DataClasses.h:844
CurrentMeteo is the class of interpolated meteo data for the current calculation time step It contai...
Definition: DataClasses.h:81
std::vector< double > theta
volumetric contents: SOIL, ICE, WATER, AIR (1)
Definition: DataClasses.h:293
bool stab_height4
Definition: DataClasses.h:801
double sw_diff
incoming diffuse shortwave radiation
Definition: DataClasses.h:631
double z
nodal height from ground in m
Definition: DataClasses.h:345
double rswrbc
upward shortwave below canopy
Definition: DataClasses.h:421
friend std::iostream & operator>>(std::iostream &is, NodeData &data)
Definition: DataClasses.cc:1352
double cH
The CALCULATED height, including soil depth if SNP_SOIL == 1.
Definition: DataClasses.h:509
double WindScalingFactor
Local scaling factor for wind at drift station.
Definition: DataClasses.h:542
double lai
Definition: DataClasses.h:402
size_t getNumberFixedRates() const
Definition: DataClasses.cc:2512
friend std::iostream & operator<<(std::iostream &os, const CurrentMeteo &data)
Definition: DataClasses.cc:2553
double z_S_n
Depth of Minimum Natural Stability.
Definition: DataClasses.h:523
double psum
precipitation sum over the current timestep
Definition: DataClasses.h:123
double Canopy_Direct_Throughfall
Direct throughfall [fraction of precipitation].
Definition: DataClasses.h:239
size_t tag_low
Definition: DataClasses.h:844
Definition: DataClasses.h:150
const std::string toString() const
Definition: DataClasses.cc:670
static void mergeElements(ElementData &Edata0, const ElementData &Edata1, const bool &merge, const bool &topElement)
Merging two elements.
Definition: DataClasses.cc:2085
double rho_hn
Measured new snow density (kg m-3)
Definition: DataClasses.h:133
void compSnowpackMasses()
Computes the actual total masses of the snowpack (kg m-2)
Definition: DataClasses.cc:1476
double canopyalb
canopy albedo [-]
Definition: DataClasses.h:414
double ps2rb
proportion of grain bond growth due to pressure sintering (1)
Definition: DataClasses.h:324
The total amount of water in the snowpack at the present time.
Definition: DataClasses.h:590
double SWnet_Trunks
net SW to trunks (>0 towards trunks)
Definition: DataClasses.h:448
double ssa
Single Scattering Albedo.
Definition: DataClasses.h:49
const std::string compilation_date
Date of compilation.
Definition: DataClasses.h:698
bool dewpt_def
Definition: DataClasses.h:790
The mass loss or gain of the top element due to snow (ice) sublimating.
Definition: DataClasses.h:595
friend std::iostream & operator<<(std::iostream &os, const SurfaceFluxes &data)
Definition: DataClasses.cc:425
double t_top2
snow temperatures at depth 1 & 2, respectively (degC)
Definition: DataClasses.h:764
bool windward
True for windward (luv) slope.
Definition: DataClasses.h:541
SN_MASS_CHANGES
The different types of mass fluxes: Mass fluxes in kg m-2 Rates in kg m-2 h-1 (MS_HNW, MS_RAIN and MS_WIND)
Definition: DataClasses.h:587
double ReSolver_dt
Last used RE time step in the previous SNOWPACK time step.
Definition: DataClasses.h:540
double previous_depth
Last position of corresponding fixed rate sensor perpendicular to slope (m)
Definition: DataClasses.h:827
double CDot
Stress rate (Pa s-1), that is the overload change rate.
Definition: DataClasses.h:323
std::vector< Tag > tags
Definition: DataClasses.h:845
double psum3
3 h new snow water equivalent (kg m-2)
Definition: DataClasses.h:743
exponential law
Definition: DataClasses.h:257
bool surface_write
Definition: DataClasses.h:842
double lwi_S
liquid water index for northerly and southerly slopes, respectively.
Definition: DataClasses.h:765
double tss_a12h
Snow surface temperature averaged over past 12 hours (K)
Definition: DataClasses.h:120
double qr
rain energy
Definition: DataClasses.h:571
double M
the total mass of the element (kg m-2)
Definition: DataClasses.h:302
void setMeasTempParameters(const mio::MeteoData &md)
Definition: DataClasses.cc:2445
SurfaceFluxes()
Definition: DataClasses.cc:271
std::vector< double > load
Total load (kg m-2) in water runoff from solutes like nitrate.
Definition: DataClasses.h:642
double Eps_Dot
Definition: DataClasses.h:319
double vw_drift
Wind velocity for blowing and drifting snow (operational: wind ridge station)
Definition: DataClasses.h:107
double lp
lattice constant
Definition: DataClasses.h:833
bool psum3
Definition: DataClasses.h:796
double neckLength() const
Computes the neck (or bond) length (mm)
Definition: DataClasses.cc:1135
size_t nN
Total number of FE nodes after loading.
Definition: DataClasses.h:228
double meltFreezeEnergySoil
Melt freeze part of internal energy change in J m-2 in soil (used for OUTPUT only) ...
Definition: DataClasses.h:637
double wind_trans
6 h drifting snow index (cm)
Definition: DataClasses.h:733
double swe
Total mass summing snow water equivalent of elements.
Definition: DataClasses.h:512
double mass_corr
mass correction from either forced erosion and squeezing (neg) or blowing up (pos) (cm) ...
Definition: DataClasses.h:768
char S_class2
Stability class based on hand hardness, grain class ...
Definition: DataClasses.h:519
Gas.
Definition: DataClasses.h:41
double hn72
72 depth of snowfall (cm)
Definition: DataClasses.h:740
bool stab_height3
Definition: DataClasses.h:800
const std::string toString() const
Definition: DataClasses.cc:2354
friend std::iostream & operator<<(std::iostream &os, const ElementData &data)
Definition: DataClasses.cc:765
double ML2L
layer to layer flux
Definition: DataClasses.h:832
Water.
Definition: DataClasses.h:157
double hs
The measured height of snow (m)
Definition: DataClasses.h:125
Liquid.
Definition: DataClasses.h:40
SnowStation(const bool &i_useCanopyModel=true, const bool &i_useSoilLayers=true)
Definition: DataClasses.cc:1382
double neckStressEnhancement() const
Computes the enhancement of hydrostatically applied stress (overburden) in the necks (or bonds) ...
Definition: DataClasses.cc:1106
double pAlbedo
Parameterized snow albedo.
Definition: DataClasses.h:503
bool sw_net
Definition: DataClasses.h:805
double hn12
12 h depth of snowfall (cm)
Definition: DataClasses.h:738
double wind_trans24
24 h drifting snow index (cm)
Definition: DataClasses.h:734
mio::Date date
Date of current meteo data.
Definition: DataClasses.h:99
double Ttrunk
trunk temperature (K)
Definition: DataClasses.h:444
unsigned short int marker
0 to 999 (1)
Definition: DataClasses.h:679
double pAlbedo
parameterized Albedo (used for OUTPUT only)
Definition: DataClasses.h:632
static const bool metamo_expl
set while using the explicit metamorphism model
Definition: DataClasses.h:818
void resize(const size_t &number_of_elements)
Reallocate element and node data Edata and Ndata as well as nElems and nNodes are reallocated or res...
Definition: DataClasses.cc:1568
Bulk density of dry soil component (without accounting for porosity)
Definition: DataClasses.h:164
double phiWater
Volumetric water content in %.
Definition: DataClasses.h:188
double sigftrunk
radiation interception cross section for trunk layer ()
Definition: DataClasses.h:443
double Eps_e
Definition: DataClasses.h:318
void reset(const SnowpackConfig &i_cfg)
Definition: DataClasses.cc:2424
double t_top1
Definition: DataClasses.h:764
BoundCond()
Definition: DataClasses.h:564
Temperature (phase change and metamorphism)
Definition: DataClasses.h:147
Definition: DataClasses.h:836
double C
Total Element Stress (Pa), C being the real or the Cauchy stress, which is output.
Definition: DataClasses.h:322
double totalalb
total albedo above canopy and snow/soil surface [-]
Definition: DataClasses.h:415
double hn_half_hour
half_hour depth of snowfall (cm)
Definition: DataClasses.h:735
double intevap
Definition: DataClasses.h:435
unsigned char loc_for_snow
Definition: DataClasses.h:722
size_t getNumberOfElements() const
Definition: DataClasses.cc:1582
double T
nodal temperature in K
Definition: DataClasses.h:349
double ilwrac
downward longwave radiation ABOVE canopy
Definition: DataClasses.h:423
void snowResidualWaterContent()
Estimate the residual water content RWC by Vol From work by Coleou and Lesaffre, 1998...
Definition: DataClasses.cc:1024
double coordin_num
0 to 10 (1)
Definition: DataClasses.h:678
double ec
longwave emissivity (1)
Definition: DataClasses.h:400
double ta
Air temperature (K)
Definition: DataClasses.h:100
size_t getNumberOfNodes() const
Definition: DataClasses.cc:1587
bool stat_abbrev
Definition: DataClasses.h:782
size_t SoilNode
The top soil node, 0 in case of SNP_SOIL == 0.
Definition: DataClasses.h:507
double N3
grain Coordination number (1)
Definition: DataClasses.h:310
double qg
geothermal heat flux or heat flux at lower boundary
Definition: DataClasses.h:624
double SoilRho
Density of soil in kg m-3.
Definition: DataClasses.h:194
signed char stab_class2
profile type 0..10
Definition: DataClasses.h:749
bool hasSoilLayers() const
Definition: DataClasses.cc:1608
double cRho_hn
Computed new snow density (kg m-3)
Definition: DataClasses.h:644
double rh
Relative humidity (% or 1)
Definition: DataClasses.h:101
double mH
The MEASURED height, including soil depth if SNP_SOIL == 1.
Definition: DataClasses.h:510
Tag()
Definition: DataClasses.cc:2933
std::vector< NodeData > Ndata
pointer to nodal data array (e.g. T, z, u, etc..)
Definition: DataClasses.h:530
bool stab_class1
Definition: DataClasses.h:797
void reset(const bool &cumsum_mass)
Definition: DataClasses.cc:276
double Te
mean element temperature (K)
Definition: DataClasses.h:289
double dhf
Definition: DataClasses.h:356
double TimeCountDeltaHS
Time counter tracking erroneous settlement in operational mode.
Definition: DataClasses.h:543
bool useSoilLayers
Definition: DataClasses.h:842
double dth_w
Subsurface Melting & Freezing Data: change of water content.
Definition: DataClasses.h:314
mio::Date depositionDate
Date of deposition.
Definition: DataClasses.h:287
SN_SNOWSOIL_DATA()
Definition: DataClasses.h:214
friend std::iostream & operator<<(std::iostream &os, const SN_SNOWSOIL_DATA &data)
Definition: DataClasses.cc:2705
double BasalArea
basal area of trees on the stand
Definition: DataClasses.h:451
double hard
Parameterized hand hardness (1)
Definition: DataClasses.h:326
Young_Modulus
This enum provides names for possible Young's modulus calculations.
Definition: DataClasses.h:254
void initializeSurfaceExchangeData()
Function called to initialize the canopy "Surface" exchange data (to enable accumulated mass and ener...
Definition: DataClasses.cc:716
friend std::iostream & operator<<(std::iostream &os, const CanopyData &data)
Definition: DataClasses.cc:576
mio::Date profileDate
Date of profile.
Definition: DataClasses.h:227
double etaMSU
Snow viscosity (Montana model)
Definition: DataClasses.h:830
double snowunload
Definition: DataClasses.h:439
double hoar_ind24
24 h surface hoar index (kg m-2)
Definition: DataClasses.h:732
size_t repos_top
Definition: DataClasses.h:844
double dhs_corr
snow depth correction in case of squezzing or blow-up (cm)
Definition: DataClasses.h:767
double theta_r
Residual water content of previous time step (m^3/m^3), used exclusively for solving Richards equatio...
Definition: DataClasses.h:329
double rb
Micro-structure : Bond Radius in mm.
Definition: DataClasses.h:200
std::vector< double > cIce
Solute concentrations in Ice.
Definition: DataClasses.h:191
double ustar
The friction velocity (m s-1) computed in mt_MicroMet() and also used later for the MeteoHeat fluxes...
Definition: DataClasses.h:109
bool loc_for_snow
Definition: DataClasses.h:783
double metamo
keep track of metamorphism
Definition: DataClasses.h:204
void splitElements()
Split elements when they are near the top of the snowpack, when REDUCE_N_ELEMENTS is used...
Definition: DataClasses.cc:2027
double ggg
Asymmetry Parameter.
Definition: DataClasses.h:47
double psi_s
Stability correction for scalar heat fluxes.
Definition: DataClasses.h:111
Soil.
Definition: DataClasses.h:155
double mass_sum
Total mass summing mass of snow elements.
Definition: DataClasses.h:511
double intcapacity
maximum interception storage [mm]
Definition: DataClasses.h:417
mio::StationData meta
Station meta data.
Definition: DataClasses.h:226
double ColdContentSoil
Cold content of soil (J m-2)
Definition: DataClasses.h:535
double soilFieldCapacity() const
Field Capacity Soil is dependent on grain properties. This nice formulation is based on some tedious ...
Definition: DataClasses.cc:1062
SN_FIELD
The 3 mathematical fields that can be solved.
Definition: DataClasses.h:146
double swe
snow water equivalent SWE (kg m-2)
Definition: DataClasses.h:726
bool wind_trans
Definition: DataClasses.h:793
void compute_properties(const ElementData &Edata)
Compute tag properties.
Definition: DataClasses.cc:2944
double rh_avg
Running mean of relative humidity (1)
Definition: DataClasses.h:102
std::vector< double > hn24
Twenty-four hour snow heights every half-hour over three days 144.
Definition: DataClasses.h:74
double sp
Micro-structure : Sphericity.
Definition: DataClasses.h:198
double Eps_vDot
Total Strain Rate, elastic and viscous, respectively (s-1) (Simply, Eps/sn_dt)
Definition: DataClasses.h:319
bool runoff
Definition: DataClasses.h:789
double CondFluxCanop
biomass heat storage flux towards Canopy (if 1L) towards Leaves (if 2L). (>0 towards canopy) ...
Definition: DataClasses.h:445
static std::vector< SnowProfileLayer > generateProfile(const mio::Date &dateOfProfile, const SnowStation &Xdata, const double hoar_density_surf, const double hoar_min_size_surf)
Generates a snow profile from snow station data (1 element = 1 layer)
Definition: DataClasses.cc:192
friend std::iostream & operator>>(std::iostream &is, ElementData &data)
Definition: DataClasses.cc:829
double dw
Wind direction at snow station (deg)
Definition: DataClasses.h:106
double Albedo
Snow albedo.
Definition: DataClasses.h:233
unsigned short int getSnowType() const
Definition: DataClasses.cc:1165
static const double comb_thresh_dd
Dendricity (1)
Definition: DataClasses.h:546
double extinction() const
Density dependent extinction coefficient -> Michi's magic trick... out of his magic hat...
Definition: DataClasses.cc:1005
char S_class1
Stability class based on hand hardness, grain class ...
Definition: DataClasses.h:518
double rc
from canopy to canopy air
Definition: DataClasses.h:410
double dd
Micro-structure : Dendricity.
Definition: DataClasses.h:199
Definition: DataClasses.h:42
std::vector< double > hoar24
Twenty-four hour hoar index every half-hour over one day 48.
Definition: DataClasses.h:71
double tss_a24h
Snow surface temperature averaged over past 24 hours (K)
Definition: DataClasses.h:121
double getLiquidWaterIndex() const
Computes the liquid water index defined as the ratio of total liquid water content (in mm w...
Definition: DataClasses.cc:1536
mio::Date depositionDate
Date of deposition (mainly used for snow layers)
Definition: DataClasses.h:182
double z0
The roughness length computed in SnowDrift and also used later for the MeteoHeat fluxes (m) ...
Definition: DataClasses.h:110
~SnowStation()
Definition: DataClasses.cc:1459
double udot
downward creep velocity in m s-1
Definition: DataClasses.h:348
double coldContent() const
Computes cold content of an element, taking melting_tk as reference.
Definition: DataClasses.cc:981
bool isGlacier(const bool &hydro=false) const
returns if a snow profile can be considered as a glacier. Practically, the hydrological criteria is t...
Definition: DataClasses.cc:2160
bool stab_index3
Definition: DataClasses.h:800
std::vector< double > hn3
Three hour new snow heights every half-hour over three days 144.
Definition: DataClasses.h:73
double interception
Definition: DataClasses.h:437
SN_SOIL_DATA
The different soil fields (PERMAFROST)
Definition: DataClasses.h:163
void multiplyFluxes(const double &factor)
If multiple surface fluxes have been summed over multiple time steps, the fluxes then need to be aver...
Definition: DataClasses.cc:403
double rsnet
net shortwave radiation
Definition: DataClasses.h:427
double rb
grain bond radius (mm)
Definition: DataClasses.h:309
double qg
geothermal heat flux or heat flux at lower boundary
Definition: DataClasses.h:572
bool hoar_size
Definition: DataClasses.h:791
size_t find_tag(const size_t &tag) const
Find element with corresponding tag or return IOUtils::npos if not found.
Definition: DataClasses.cc:1597
double dIntEnergy
Internal energy change of snowpack (J m-2)
Definition: DataClasses.h:536
std::vector< double > drift24
Twenty-four hour hoar index every half-hour over one day 48.
Definition: DataClasses.h:72
double phiSoil
Volumetric soil content in %.
Definition: DataClasses.h:186
double S_s
Minimum Skier Stability Index (SSI)
Definition: DataClasses.h:524
double qw
net shortwave radiation at the surface (absorbed within the snowpack)
Definition: DataClasses.h:629
double meltFreezeEnergy
Melt freeze part of internal energy change of snowpack (J m-2)
Definition: DataClasses.h:538
double dd
snow dendricity: 0 = none, 1 = newsnow
Definition: DataClasses.h:306
CanopyData Cdata
Pointer to canopy data.
Definition: DataClasses.h:502
Sigrist, 2006.
Definition: DataClasses.h:255
double BareSoil_z0
Bare soil roughness in m, default 0.02 m.
Definition: DataClasses.h:235
Structure of double values for output to SDB.
Definition: DataClasses.h:707
double phiIce
Volumetric ice content in %.
Definition: DataClasses.h:187
void multiplyFluxes(const double &factor)
If multiple fluxes have been summed over multiple time steps, the fluxes then need to be averaged by ...
Definition: DataClasses.cc:547
double lwc_source
Source/sink term for Richards equation.
Definition: DataClasses.h:330
double sigf
radiation transmissivity (1)
Definition: DataClasses.h:399
Solid precipitation rate.
Definition: DataClasses.h:591
void resize(size_t i_size)
Definition: DataClasses.cc:2983
double CondFluxTrunks
biomass heat storage flux towards Trunks (if 2L)
Definition: DataClasses.h:446
double rlwrac
upward longwave radiation ABOVE canopy
Definition: DataClasses.h:424
const mio::Date computation_date
Date of computation.
Definition: DataClasses.h:697
void copySnowTemperatures(const mio::MeteoData &md, const unsigned int &current_slope)
Definition: DataClasses.cc:2522
double ql
latent heat
Definition: DataClasses.h:570
double Ground
The ground height – meaning the height of the top soil node.
Definition: DataClasses.h:508
double ilwrbc
downward longwave radiation BELOW canopy
Definition: DataClasses.h:425
double nm
Wavelength.
Definition: DataClasses.h:54
double dhf
Definition: DataClasses.h:332
Station data including all information on snowpack layers (elements and nodes) and on canopy This is...
Definition: DataClasses.h:463
Parameters of the different layers of the snowpack The layers form a vector within the SSdata (profi...
Definition: DataClasses.h:174
friend std::iostream & operator<<(std::iostream &os, const LayerData &data)
Definition: DataClasses.cc:2824
double ErosionMass
Eroded mass either real or virtually (storage if less than one element)
Definition: DataClasses.h:517
double hn72_24
3 d sum of 24 h depth of snowfall (cm)
Definition: DataClasses.h:741
const std::string toString() const
Definition: DataClasses.cc:1370
double u
creep displacements in m
Definition: DataClasses.h:346
double diff
Diffuse radiation from the sky (W m-2)
Definition: DataClasses.h:115
double direct_throughfall
Definition: DataClasses.h:407
double dIntEnergySoil
Internal energy change in J m-2 in soil (used for OUTPUT only)
Definition: DataClasses.h:635
static const double comb_thresh_water
Water content (1)
Definition: DataClasses.h:545
double psum12
12 h new snow water equivalent (kg m-2)
Definition: DataClasses.h:745
double meltFreezeEnergy
Melt freeze part of internal energy change in J m-2 in snowpack (used for OUTPUT only) ...
Definition: DataClasses.h:636
Rain rate.
Definition: DataClasses.h:592
double dewpt_def
dew point deficit (degC)
Definition: DataClasses.h:729
double stab_index2
natural stability index Sn38
Definition: DataClasses.h:752
double height
Definition: DataClasses.h:406
double hs_rate
The rate of change in snow depth (m h-1)
Definition: DataClasses.h:127
double Rho
mean element density (or BULK density; kg m-3), that is, rho=M/V=sum( theta(i)*rho(i) ) ...
Definition: DataClasses.h:301
double stab_index4
structural stability index SSI
Definition: DataClasses.h:756
bool crust
Definition: DataClasses.h:803
double Sigdhf
Definition: DataClasses.h:358
friend std::iostream & operator>>(std::iostream &is, SN_SNOWSOIL_DATA &data)
Definition: DataClasses.cc:2731
double Eps_v
Total element strain (GREEN'S strains – TOTAL LAGRANGIAN FORMULATION): Eps_e is elastic and Eps_v is ...
Definition: DataClasses.h:318
double ColdContent
Cold content of snowpack (J m-2)
Definition: DataClasses.h:534
bool stab_class2
Definition: DataClasses.h:797
void reset(const bool &cumsum_mass)
Definition: DataClasses.cc:507
CurrentMeteo()
Definition: DataClasses.cc:2398
size_t getMaxNumberMeasTemperatures() const
Definition: DataClasses.cc:2517
static const double thresh_moist_snow
Snow elements with a LWC above this threshold are considered at least to be moist.
Definition: DataClasses.h:547
double rlnet
net longwave radiation
Definition: DataClasses.h:428
Total number of different mass change types.
Definition: DataClasses.h:598
Air.
Definition: DataClasses.h:158
double hoar
mass of surface hoar formed or sublimated
Definition: DataClasses.h:622
double zdispl
Definition: DataClasses.h:405
This too, of course, but summing rho*L.
Definition: DataClasses.h:589
double stab_height2
depth of stab_index2 (cm)
Definition: DataClasses.h:753
double vw_avg
Running mean of wind velocity at snow station (m s-1)
Definition: DataClasses.h:104
double sw_in
incoming global shortwave radiation; on slopes: projected
Definition: DataClasses.h:627
double hn6
6 h depth of snowfall (cm)
Definition: DataClasses.h:737
bool en_bal
Definition: DataClasses.h:804
This of course is the total mass of the snowpack at the present time.
Definition: DataClasses.h:588
double stab_height3
depth of stab_index3 (cm)
Definition: DataClasses.h:755
bool hn24
Definition: DataClasses.h:794
double temp
temperature (K)
Definition: DataClasses.h:398
void initialize(const SN_SNOWSOIL_DATA &SSdata, const size_t &i_sector)
This routine initializes the snow cover structure which contains all information about a station incl...
Definition: DataClasses.cc:1743
double sw_dir
incoming direct shortwave radiation; on slopes: projected
Definition: DataClasses.h:630
std::string label
Label for output file header.
Definition: DataClasses.h:820
double S_n
Minimum Natural Stability Index.
Definition: DataClasses.h:522
double dw_drift
Wind direction of blowing and drifting snow (operational: wind ridge station)
Definition: DataClasses.h:108
TaggingData(const double &i_calculation_step_length)
Definition: DataClasses.cc:2977
double S
Total Element Stress (Pa), S being the energy conjugate stress.
Definition: DataClasses.h:321
double hoar_size
24 h surface hoar size (mm)
Definition: DataClasses.h:730
Water transport.
Definition: DataClasses.h:148
double cos_sl
Cosinus of slope angle, initialized once!
Definition: DataClasses.h:499
another power law
Definition: DataClasses.h:256
bool stab_height2
Definition: DataClasses.h:799
unsigned short int type
grain class
Definition: DataClasses.h:312
bool hn12
Definition: DataClasses.h:794
double z_S_5
Depth of stab_index5.
Definition: DataClasses.h:529
NODAL DATA used as a pointer in the SnowStation structure.
Definition: DataClasses.h:336
double tss
Snow surface temperature (K)
Definition: DataClasses.h:119
static const double thresh_moist_soil
Definition: DataClasses.h:547
double crust
height of melt-freeze crust on southern slope (cm)
Definition: DataClasses.h:761
unsigned char loc_for_snow
Definition: DataClasses.h:661
double dendricity
0 to 1 (1)
Definition: DataClasses.h:675
friend std::iostream & operator>>(std::iostream &is, CurrentMeteo &data)
Definition: DataClasses.cc:2611
double BareSoil_z0
Bare soil roughness in m.
Definition: DataClasses.h:506
void compSoilInternalEnergyChange(const double &sn_dt)
Computes the internal energy change of the soil during one computation time step (J m-2) ...
Definition: DataClasses.cc:1511
Defines structure for snow profile layers.
Definition: DataClasses.h:651
double S_dr
Stability Index based on deformation rate (Direct Action Avalanching)
Definition: DataClasses.h:327
static bool combineCondition(const ElementData &Edata0, const ElementData &Edata1, const double &depth, const bool &reduce_n_elements)
Boolean routine to check whether two snow elements can be combined.
Definition: DataClasses.cc:1974
unsigned short int mk
Micro-structure : Marker.
Definition: DataClasses.h:201
double dIntEnergy
Internal energy change in J m-2 in snowpack (used for OUTPUT only)
Definition: DataClasses.h:634
double Height
Total height of soil-snow column in m (sum of the layer heights)
Definition: DataClasses.h:229
size_t repos_low
Definition: DataClasses.h:844
bool stab_height5
Definition: DataClasses.h:802
bool psum6
Definition: DataClasses.h:796
bool wind_trans24
Definition: DataClasses.h:793
double S_d
Minimum Direct Action Stability Index ...
Definition: DataClasses.h:520
double theta_a
0 to 1, volume fraction of air (-)
Definition: DataClasses.h:672
BoundCond is used to set Neumann boundary conditions.
Definition: DataClasses.h:561
Definition: DataClasses.h:159
std::vector< double > c
For example, specific heat of TEMPERATURE field (J kg-1 K-1)
Definition: DataClasses.h:298
The mass loss or gain of the top element due to water evaporating.
Definition: DataClasses.h:594
double qr
rain energy
Definition: DataClasses.h:623
double lw_out
outgoing longwave radiation
Definition: DataClasses.h:618
const std::string toString() const
Definition: DataClasses.cc:2912
double runoff
runoff (kg m-2)
Definition: DataClasses.h:728
double theta_w
0 to 1, volume fraction of water (-)
Definition: DataClasses.h:671
double HMLeaves
Leaves heat mass (J K-1 /m2 ground surface)
Definition: DataClasses.h:452
size_t getNumberFixedPositions() const
Definition: DataClasses.cc:2507
Creep displacements.
Definition: DataClasses.h:149
double hr
Surface hoar Mass in kg m-2.
Definition: DataClasses.h:202
double Qmf
Subsurface Melting & Freezing Data: change of energy due to phase changes (melt-freeze) ...
Definition: DataClasses.h:316
double qs
sensible heat
Definition: DataClasses.h:569
double iswr
Incoming SHORTWAVE radiation (W m-2)
Definition: DataClasses.h:112
double hoar
Mass of surface hoar collected while node was exposed to surface.
Definition: DataClasses.h:353
double rswr
Reflected SHORTWAVE radiation (W m-2) divide this value by the ALBEDO to get iswr.
Definition: DataClasses.h:113
double Canopy_BasalArea
Canopy Basal Area in m2 m-2.
Definition: DataClasses.h:238
bool loc_for_wind
Definition: DataClasses.h:784
double crit_cut_length
Critical cut length (m)
Definition: DataClasses.h:328
double storage
intercepted water (mm or kg m-2)
Definition: DataClasses.h:397
void compSnowpackInternalEnergyChange(const double &sn_dt)
Computes the internal energy change of the snowpack during one computation time step (J m-2) ...
Definition: DataClasses.cc:1489
bool lwi_S
Definition: DataClasses.h:807
double height
Height of snow or snow depth; 0 to 1000 (cm)
Definition: DataClasses.h:665
double rg
grain radius (mm)
Definition: DataClasses.h:305
double latent
Definition: DataClasses.h:431
void heatCapacity()
Computes heat capacity of an element based on volumetric contents.
Definition: DataClasses.cc:964
Definition: DataClasses.h:771