SNOWPACK 20260609.1e92c933
Physically based, energy balance snow cover model
Loading...
Searching...
No Matches
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
31#include <snowpack/Constants.h>
32#include <meteoio/MeteoIO.h>
33
34#include <string>
35#include <vector>
36#include <functional>
37
38class SeaIce; //forward declaration to prevent include loop
39class CurrentMeteo; //forward declaration to prevent loop
40
42enum {
47};
48
50struct SNOW_OPTIC {
51 double ggg;
52 double exteff;
53 double ssa;
54};
55
57struct WL_STRUCT {
58 double nm;
59 double perc;
60};
61
69 public:
70 ZwischenData(): hoar24(48, 0.0), drift24(48, 0.0), hn3(144, 0.0), hn24(144, 0.0) {}
71 void reset();
72
73 friend std::ostream& operator<<(std::ostream& os, const ZwischenData& data);
74 friend std::istream& operator>>(std::istream& is, ZwischenData& data);
75
76 std::vector<double> hoar24;
77 std::vector<double> drift24;
78 std::vector<double> hn3;
79 std::vector<double> hn24;
80};
81
89
91enum {
98};
99
107
114 public:
115 LayerData();
116
117 const std::string toString() const;
118 friend std::ostream& operator<<(std::ostream& os, const LayerData& data);
119 friend std::istream& operator>>(std::istream& is, LayerData& data);
120
121 mio::Date depositionDate;
122 double hl;
123 size_t ne;
124 double tl;
125 double phiSoil;
126 double phiIce;
129 double phiWater;
131 double phiVoids;
132 std::vector<double> cSoil;
133 std::vector<double> cIce;
134 std::vector<double> cWater;
135 std::vector<double> cVoids;
136 double SoilRho;
137 double SoilK;
138 double SoilC;
139 double rg;
140 double sp;
141 double dd;
142 double rb;
143 unsigned short int mk;
144 double hr;
145 double CDot;
146 double metamo;
147 double salinity;
148 double h;
149 double dsm;
150};
151
158 public:
160 nLayers(0), Ldata(), HS_last(0.), Albedo(mio::IOUtils::nodata),
161 SoilAlb(mio::IOUtils::nodata), BareSoil_z0(mio::IOUtils::nodata),
162 Canopy_Height(mio::IOUtils::nodata), Canopy_LAI(mio::IOUtils::nodata),
163 Canopy_Direct_Throughfall(mio::IOUtils::nodata),
164 ErosionLevel(static_cast<int>(mio::IOUtils::nodata)), TimeCountDeltaHS(mio::IOUtils::nodata),
165 Canopy_BasalArea(mio::IOUtils::nodata), Canopy_diameter(mio::IOUtils::nodata),
166 Canopy_lai_frac_top_default(mio::IOUtils::nodata),Canopy_int_cap_snow(mio::IOUtils::nodata),
167 Canopy_alb_dry(mio::IOUtils::nodata),Canopy_alb_wet(mio::IOUtils::nodata),
168 Canopy_alb_snow(mio::IOUtils::nodata),Emissivity_soil(mio::IOUtils::nodata)
169 {}
170
171 const std::string toString() const;
172 friend std::ostream& operator<<(std::ostream& os, const SN_SNOWSOIL_DATA& data);
173 friend std::istream& operator>>(std::istream& is, SN_SNOWSOIL_DATA& data);
174
175 mio::StationData meta;
176 mio::Date profileDate;
177 size_t nN;
178 double Height;
179 size_t nLayers;
180 std::vector<LayerData> Ldata;
181 double HS_last;
183 double Albedo;
184 double SoilAlb;
185 double BareSoil_z0;
187 double Canopy_LAI;
196 double Canopy_alb_dry; // Albedo of dry canopy (calibr: 0.09, Alptal)
197 double Canopy_alb_wet; // Albedo of wet canopy (calibr: 0.09, Alptal)
198 double Canopy_alb_snow; // Albedo of snow covered albedo (calibr: 0.35, Alptal)
201
202
203};
204
213 public:
215 typedef enum YOUNG_MODULUS {
218 Exp
220
221 ElementData(const unsigned short int& in_ID);
222 ElementData(const ElementData& cc); //required to get the correct back-reference in vanGenuchten object
223 ElementData& operator=(const ElementData&) = default;
224
225 bool checkVolContent();
226 void heatCapacity();
227 double coldContent() const;
228 void updDensity();
229 double extinction() const;
232 static double snowResidualWaterContent(const double& theta_i);
233 double soilFieldCapacity() const;
234 double soilRelativeHumidity() const;
235
236 double snowElasticity() const;
237 double neckStressEnhancement() const;
238 double concaveNeckRadius() const;
239 double neckLength() const;
240 double neck2VolumetricStrain() const;
241
242 void snowType();
243 unsigned short int getSnowType() const;
244 static unsigned short int snowType(const double& dendricity, const double& sphericity, const double& grain_dia, const unsigned short int& marker,
245 const double& theta_w, const double& res_wat_cont_loc);
246 static double getYoungModule(const double& rho_slab, const Young_Modulus& model);
247
248 const std::string toString() const;
249 friend std::ostream& operator<<(std::ostream& os, const ElementData& data);
250 friend std::istream& operator>>(std::istream& is, ElementData& data);
251
252 mio::Date depositionDate;
253 double L0, L;
254 double Te;
255 double gradT;
257 std::vector<double> theta;
258 double h;
259 mio::Array2D<double> conc;
260 std::vector<double> k;
261 // Stored in order to visualize constitutive laws
262 // Will be used for creep field hydraulic conductivity in m3 s kg-1
263 std::vector<double> c;
264 // Will also be used for creep specific snow water capacity in m3 J-1
265 std::vector<double> soil;
266 double Rho;
267 double M;
268 double sw_abs;
269 // Snow Metamorphism Data
270 double rg;
271 double dd;
272 double sp;
273 double ogs;
274 double rb;
275 double N3;
276 size_t mk;
277 unsigned short int type;
278 double metamo;
279 double salinity;
280 double dth_w;
282 double Qmf;
283 double QIntmf;
284 double dEps, Eps, Eps_e, Eps_v;
286 double E;
287 double S;
288 double C;
289 double CDot;
290 double ps2rb;
291 double s_strength;
292 double hard;
293 double S_dr;
296 double lwc_source;
302 double Qph_up;
303 double Qph_down;
304 //NIED (H. Hirashima)
305 double dsm;
306 double rime;
307
308 unsigned short int ID;
309 static const unsigned short int noID;
310
311 double rhov;
312 double Qmm;
317};
318
320class NodeData {
321 public:
322 NodeData() : z(0.), u(0.), f(0.), udot(0.), T(0.), S_n(0.), S_s(0.), ssi(6.), rta(0.), hoar(0.),
323 dsm(0.), S_dsm(0.), Sigdsm(0.), rime(0.), water_flux(0.), rhov(0.) {} //HACK: set ssi to max_stability!
324
325 const std::string toString() const;
326 friend std::ostream& operator<<(std::ostream& os, const NodeData& data);
327 friend std::istream& operator>>(std::istream& is, NodeData& data);
328
329 double z;
330 double u;
331 double f;
332 double udot;
333 double T;
334 double S_n;
335 double S_s;
336 double ssi;
337 double rta;
338 double hoar;
339
340 //NIED (H. Hirashima)
341 double dsm;
342 double S_dsm;
343 double Sigdsm;
344 double rime;
345
346 double water_flux;
347
348 double rhov;
349};
350
367 public:
373 can_ch0(0.), can_rs_mult(0.), rsmin(0.), f3_gd(0.), rootdepth(0.), wp_fraction(0.),
374 h_wilt(0.), storage(0.), temp(0.), sigf(0.), ec(0.), lai(0.), z0m(0.), z0h(0.), zdispl(0.),
375 height(0.), direct_throughfall(0.), ra(0.), rc(0.), rs(0.), rstransp(0.), canopyalb(0.),
376 totalalb(0.), wetfraction(0.), intcapacity(0.), rswrac(0.), iswrac(0.), rswrbc(0.), iswrbc(0.),
377 ilwrac(0.), rlwrac(0.), ilwrbc(0.), rlwrbc(0.), rsnet(0.), rlnet(0.), sensible(0.), latent(0.),
378 latentcorr(0.), transp(0.), intevap(0.), interception(0.), throughfall(0.), snowunload(0.),
379 snowfac(0.), rainfac(0.), liquidfraction(0.), sigftrunk(0.), Ttrunk(0.), CondFluxCanop(0.),
381 BasalArea(0.), HMLeaves(0.), HMTrunks(0.) {}
382
383 void initialize(const SN_SNOWSOIL_DATA& SSdata, const bool useCanopyModel, const bool isAlpine3D);
384 void reset(const bool& cumsum_mass);
386 void multiplyFluxes(const double& factor);
387
388 const std::string toString() const;
389 friend std::ostream& operator<<(std::ostream& os, const CanopyData& data);
390 friend std::istream& operator>>(std::istream& is, CanopyData& data);
391
401 double int_cap_snow; //iMax in Gouttevin,2015
409
411 double can_alb_dry; // Albedo of dry canopy (calibr: 0.09, Alptal)
412 double can_alb_wet; // Albedo of wet canopy (calibr: 0.09, Alptal)
413 double can_alb_snow; // Albedo of snow covered albedo (calibr: 0.35, Alptal)
414 double krnt_lai; // Radiation transmissivity parameter, in the range 0.4-0.8 if the true LAI is used; higher if optical LAI is used.
415 // (calibrated on Alptal)
416 double can_diameter; // average canopy (tree) diameter [m], parameter in the new radiation transfer model
419 double biomass_heat_capacity; // from Linroth et al., 2013 (J Kg-1 K-1)
420 double biomass_density; // from Linroth et al., 2013 (Kg m-3)
421 double lai_frac_top_default; // fraction of total LAI that is attributed to the uppermost layer. Here calibrated for Alptal.
422 double trunk_frac_height; // (optional) fraction of total tree height occupied by trunks,
423 // used to calculate direct solar insolation of trunks.
424 double trunkalb; // trunk albedo
425 double et; // trunk emissivity
439
445 double can_ch0;
450 double rsmin;
456 double f3_gd;
458 double rootdepth;
462 double h_wilt;
464
465 // State variable
466 double storage;
467 double temp;
468 double sigf;
469 double ec;
470 // parameters
471 double lai;
472 double z0m;
473 double z0h;
474 double zdispl;
475 double height;
477 // aerodynamic resistances
478 double ra;
479 double rc;
480 double rs;
481 double rstransp;
482 // Averaged variables
483 double canopyalb;
484 double totalalb;
485 double wetfraction;
486 double intcapacity;
487 // Radiations
488 double rswrac;
489 double iswrac;
490 double rswrbc;
491 double iswrbc;
492 double ilwrac;
493 double rlwrac;
494 double ilwrbc;
495 double rlwrbc;
496 double rsnet;
497 double rlnet;
498 // Turbulent fluxes
499 double sensible;
500 double latent;
502 // Evap fluxes
503 double transp;
504 double intevap;
505 // Mass fluxes
509
510 double snowfac;
511 double rainfac;
513 double sigftrunk;
514 double Ttrunk;
519 double QStrunks;
521 double BasalArea;
522 double HMLeaves;
523 double HMTrunks;
524};
525
526class SeaIce; // Foreward-declare sea ice class
534 public:
535 explicit SnowStation(const bool& i_useCanopyModel=true, const bool& i_useSoilLayers=true,
536 const bool& i_isAlpine3D=false, const bool& i_useSeaIceModule=false, const bool& i_allow_inflate=false);
537 SnowStation(const SnowpackConfig& cfg, const bool& i_isAlpine3D, const bool& isOperational);
538 SnowStation(const SnowStation& c);
539
540 ~SnowStation();
542
543 void initialize(const SN_SNOWSOIL_DATA& SSdata, const size_t& i_sector);
544 void resize(const size_t& number_of_elements);
545
546 void reduceNumberOfElements(const size_t& rnE);
547 void combineElements(const size_t& number_top_elements, const bool& reduce_n_elements, const size_t& cond, const double& comb_thresh_l);
548 static bool combineCondition(const ElementData& Edata0, const ElementData& Edata1, const double& depth, const bool& reduce_n_elements, const double& comb_thresh_l);
549 static void mergeElements(ElementData& Edata0, const ElementData& Edata1, const bool& merge, const bool& topElement, const bool& VapourTransport = false);
550 void splitElement(const size_t& e); //Split an element
551 void splitElements(const double& max_element_length, const double& comb_thresh_l); //Check for splitting, calls splitElement(...) for actual splitting
552 bool needDeflateInflate(const double &sn_dt, const double& tracking_period);
553 void deflateInflate(const CurrentMeteo& Mdata, double& dhs_corr, double& mass_corr, const bool &prn_check);
554 double forcedErosion(const double hs);
555
556 void compSnowpackMasses();
557 void compSnowpackInternalEnergyChange(const double& sn_dt);
558 void compSoilInternalEnergyChange(const double& sn_dt);
559 double averageFromTop(const double& averagingDepth, const std::function<double(const ElementData&)>& Elementproperty) const;
560
561 double getLiquidWaterIndex() const;
562 double getModelledTemperature(const double& z) const;
563 double getTotalLateralFlowSnow() const;
564 double getTotalLateralFlowSoil() const;
565 void resetSlopeParFlux();
566
567 size_t getNumberOfElements() const;
568 size_t getNumberOfNodes() const;
569 bool isGlacier(const bool& hydro=false) const;
570 bool hasSoilLayers() const;
571 double findMarkedReferenceLayer() const;
572
573 size_t find_tag(const size_t& tag) const;
574
575 void reset_water_fluxes();
576
577 const std::string toString() const;
578 friend std::ostream& operator<<(std::ostream& os, const SnowStation& data);
579 friend std::istream& operator>>(std::istream& is, SnowStation& data);
580
581 mio::StationData meta;
582 double cos_sl;
583 size_t sector;
584
587 //std::unique_ptr<SeaIce> Seaice; ///< Pointer to sea ice class
588 double pAlbedo;
589 double Albedo;
590 double SoilAlb;
592 double BareSoil_z0;
593 size_t SoilNode;
594 double Ground;
595 double cH;
596 double mH;
597 double mass_sum;
598 double swe;
599 double lwc_sum;
602 double hn;
603 double rho_hn;
604 double rime_hn;
608 double ErosionMass;
610 char S_class1;
611 char S_class2;
612 double S_d;
613 double z_S_d;
614 double S_n;
615 double z_S_n;
616 double S_s;
617 double z_S_s;
618 double S_4;
619 double z_S_4;
620 double S_5;
621 double z_S_5;
622 std::vector<NodeData> Ndata;
623 std::vector<ElementData> Edata;
624 void *Kt;
625 double ColdContent;
627 double dIntEnergy;
631 double ReSolver_dt;
632 bool windward;
633 bool leeward;
638 static const size_t number_top_elements;
639 static unsigned short number_of_solutes;
641
642 private:
643 static double flexibleMaxElemLength(const double& depth, const double& comb_thresh_l);
644
645 size_t nNodes;
646 size_t nElems;
647 unsigned short int maxElementID;
648 bool useSoilLayers, isAlpine3D;
649};
650
655
656 public:
657 BoundCond() : lw_out(0.), lw_net(0.), qs(0.), ql(0.), qr(0.), qg(Constants::undefined) {}
658 const std::string toString() const;
659 void reset();
660
661 double lw_out;
662 double lw_net;
663 double qs;
664 double ql;
665 double qr;
666 double qg;
667};
668
676 public:
700
701 const std::string toString() const;
702 friend std::ostream& operator<<(std::ostream& os, const SurfaceFluxes& data);
703 friend std::istream& operator>>(std::istream& is, SurfaceFluxes& data);
704
706
707 void reset(const bool& cumsum_mass);
708 void compSnowSoilHeatFlux(const SnowStation& Xdata);
709 void collectSurfaceFluxes(const BoundCond& Bdata, SnowStation& Xdata, const CurrentMeteo& Mdata);
710 void multiplyFluxes(const double& factor);
711
717 double lw_in;
718 double lw_out;
719 double lw_net;
720 double qs;
721 double ql;
722 double hoar;
723 double qr;
724 double qg;
725 double qg0;
726 double sw_hor;
727 double sw_in;
728 double sw_out;
729 double qw;
730 double sw_dir;
731 double sw_diff;
732 double pAlbedo;
733 double mAlbedo;
734 double dIntEnergy;
738
740 double drift;
741 std::vector<double> mass;
742 std::vector<double> load;
743 double dhs_corr;
744 double cRho_hn;
745 double mRho_hn;
746
747};
749
751//HACK: could it be moved to plugins? (as well as Aggregate)
753 public:
755
756 void average(const double& w1, const double& w2, const SnowProfileLayer& Pdata);
757 static std::vector<SnowProfileLayer> generateProfile(const mio::Date& dateOfProfile, const SnowStation& Xdata, const double hoar_density_surf, const double hoar_min_size_surf);
758
759 // Profile meta data
760 mio::Date profileDate;
761 std::string stationname;
762 unsigned char loc_for_snow;
763 unsigned char loc_for_wind;
764
765 mio::Date depositionDate;
766 double height;
767 double rho;
768 double T;
769 double gradT;
771 double theta_i;
772 double theta_w;
773 double theta_a;
774 double grain_size;
775 double bond_size;
776 double dendricity;
777 double sphericity;
778 double ogs;
779 double coordin_num;
780 unsigned short int marker;
781 short unsigned int type;
782 double hard;
783
784 private:
785 void generateLayer(const ElementData& Edata, const NodeData& Ndata);
786 void generateLayer(const ElementData& Edata, const NodeData& Ndata,
787 const mio::Date& dateOfProfile, const double hoar_density_surf);
788};
789
791class RunInfo {
792 public:
793 RunInfo();
794 RunInfo(const RunInfo& orig);
795 RunInfo& operator=(const RunInfo&) {return *this;} //everything is static, so we can not change anything
796
797 const std::string version;
798 const double version_num;
799 const mio::Date computation_date;
800 const std::string compilation_date;
801 const std::string user;
802 const std::string hostname;
803 const std::string history;
804
805 private:
806 std::string setHistory();
807 static int hexToDecimal(const std::string& hex);
808 static double getNumericVersion(std::string version_str);
809 static mio::Date getRunDate();
810 static std::string getCompilationDate();
811};
812
816class Slope {
817
818 public:
819 Slope(const mio::Config& cfg);
820
822 unsigned int nSlopes;
823 unsigned int mainStation;
824 unsigned int sector;
825 unsigned int first;
826 unsigned int luv;
827 unsigned int lee;
828 unsigned int opposite;
830 std::string snow_erosion;
833 std::vector<double> wind_trans24_vec; // actually store the 24 drift per sector, no all mixed up.
834
835 unsigned int getSectorDir(const double& dir_or_expo) const;
836 void setSlope(const unsigned int slope_sequence, std::vector<SnowStation>& vecXdata, double& wind_dir);
837
838 private:
839 double sector_width;
840};
841
843 public:
844 MainControl(const SnowpackConfig& cfg);
845
846 void getOutputControl(const mio::Date& step, const mio::Date& sno_step);
847 void reset();
848
849 // New members for output control
850 double tsstart;
852 double profstart;
857 double sn_dt;
858
859 size_t nStep;
860 size_t nAvg;
861 size_t HzStep;
862 bool TsDump;
863 bool HzDump;
864 bool PrDump;
866 bool sdbDump;
868};
869
874class Cumsum {
875
876 public:
877 Cumsum(const unsigned int nSlopes) : precip(0.),
878 snow(0.), runoff(0.), rain(0.), dhs_corr(0.), mass_corr(0.),
879 erosion(nSlopes, 0.), drift(nSlopes, 0.) {}
880
881 double precip;
882 double snow, runoff, rain;
883 double dhs_corr, mass_corr; // inflate/deflate variables
884 std::vector<double> erosion; // Cumulated eroded mass; dumped to file as rate
885 std::vector<double> drift; // drifted snow per slope.sector
886};
887
896 public:
897 CurrentMeteo();
898 CurrentMeteo(const SnowpackConfig& i_cfg);
899
900 //Setters
901 void setMeasTempParameters(const mio::MeteoData& md);
902 void setMeteoData(const mio::MeteoData& md, const double& prevailing_wind_dir);
903
904 //Getters
906 size_t getNumberMeasTemperatures() const noexcept { return numberMeasTemperatures;}
907 size_t getNumberFixedRates() const noexcept {return numberFixedRates;}
908 size_t getMaxNumberMeasTemperatures() const noexcept {return maxNumberMeasTemperatures;}
909 void getFixedPositions(std::vector<double>& positions) const noexcept {positions = fixedPositions;}
910 std::vector<double> getFixedPositions() const noexcept {return fixedPositions;}
911 size_t getNumberFixedPositions() const noexcept {return fixedPositions.size();}
912 static double getHS_last3hours(mio::IOManager &io, const mio::Date& current_date);
913
914 //Helper methods
915 void copySnowTemperatures(const mio::MeteoData& md, const unsigned int& current_slope);
916 void copySolutes(const mio::MeteoData& md, const size_t& i_number_of_solutes);
917 void editMeteoData(mio::MeteoData& md) const;
918 bool validMeteoData(const mio::MeteoData& md, const std::string& StationName, const unsigned int& nslopes) const;
919 void dataForCurrentTimeStep(SurfaceFluxes& surfFluxes, std::vector<SnowStation>& vecXdata,
920 const Slope& slope, SnowpackConfig& cfg, mio::SunObject &sun,
921 double& precip, const double& lw_in, const double& hs_a3hl6, double& tot_mass_in);
922 void reset(const SnowpackConfig& i_cfg);
923
924 const std::string toString() const;
925 friend std::ostream& operator<<(std::ostream& os, const CurrentMeteo& data);
926 friend std::istream& operator>>(std::istream& is, CurrentMeteo& data);
927
928 mio::Date date;
929 double ta;
930 double rh;
931 double rh_avg;
932 double vw;
933 double vw_avg;
934 double vw_max;
935 double dw;
936 double vw_drift;
937 double dw_drift;
938 double ustar;
939 double z0;
940 double psi_s;
941 double iswr;
942 double rswr;
943 double mAlbedo;
944 double diff;
945 double dir_h;
946 double elev;
947 double ea;
948 double lw_net;
949 double tss;
950 double tss_a12h;
951 double tss_a24h;
952 double ts0;
953 double psum;
954 double psum_ph;
955 double psum_tech;
956 double hs;
957 double hs_a3h;
958 double hs_rate;
959 double geo_heat;
960 double adv_heat;
961 double sig_5GHz;
962
963 std::vector<double> ts;
964 std::vector<double> zv_ts;
965 std::vector<double> conc;
966 double rho_hn;
967 double rime_hn;
968 double lwc_hn;
969
970 bool poor_ea;
971
972 private:
973 void setShortWave(const SnowStation& Xdata);
974 bool compHSrate(const SnowStation& vecXdata, const double& hs_a3hl6);
975 void compRadiation(const SnowStation &station, mio::SunObject &sun, SnowpackConfig &cfg);
976 void radiationOnSlope(const SnowStation &sector, const mio::SunObject &sun, SurfaceFluxes &surfFluxes);
977 static void projectPrecipitations(const double& SlopeAngle, double& precips, double& i_hs);
978 static size_t getNumberMeasTemperatures(const mio::MeteoData& md);
979
980 std::shared_ptr<mio::DataGenerator> dataGenerator;
981 std::vector<double> fixedPositions;
982 double minDepthSubsurf;
983 size_t maxNumberMeasTemperatures;
984 size_t numberMeasTemperatures;
985 size_t numberFixedRates;
986 double height_of_wind_value;
987 double thresh_rain;
988 double wind_scaling_factor;
989 std::string variant;
990 std::string sw_mode;
991 bool useCanopyModel;
992 bool enforce_snow_height;
993 bool advective_heat;
994 bool soil_flux;
995 bool force_sw_mode;
996 bool adjust_height_of_wind_value;
997 bool iswr_is_net;
998};
999
1000#endif
@ SOLID
Solid.
Definition DataClasses.h:43
@ GAS
Gas.
Definition DataClasses.h:45
@ LIQUID
Liquid.
Definition DataClasses.h:44
@ NUMBER_OF_PHASES
Definition DataClasses.h:46
SN_SOIL_DATA
The different soil fields (PERMAFROST)
Definition DataClasses.h:101
@ SOIL_RHO
Bulk density of dry soil component (without accounting for porosity)
Definition DataClasses.h:102
@ SOIL_C
Specific heat of dry soil component.
Definition DataClasses.h:104
@ SOIL_K
Bulk conductivity of dry soil component.
Definition DataClasses.h:103
@ N_SOIL_FIELDS
Definition DataClasses.h:105
double ssa
Single Scattering Albedo.
Definition DataClasses.h:53
double perc
Percentage of Energy.
Definition DataClasses.h:59
double exteff
Extinction Efficiency.
Definition DataClasses.h:52
SN_FIELD
The 3 mathematical fields that can be solved.
Definition DataClasses.h:83
@ SEEPAGE
Water transport.
Definition DataClasses.h:85
@ N_SN_FIELDS
Definition DataClasses.h:87
@ TEMPERATURE
Temperature (phase change and metamorphism)
Definition DataClasses.h:84
@ SETTLEMENT
Creep displacements.
Definition DataClasses.h:86
double nm
Wavelength.
Definition DataClasses.h:58
double ggg
Asymmetry Parameter.
Definition DataClasses.h:51
@ AIR
Air.
Definition DataClasses.h:96
@ WATER_PREF
Water in preferential flow.
Definition DataClasses.h:95
@ SOIL
Soil.
Definition DataClasses.h:92
@ ICE
Ice.
Definition DataClasses.h:93
@ N_COMPONENTS
Definition DataClasses.h:97
@ WATER
Water.
Definition DataClasses.h:94
Optical Properties of snow.
Definition DataClasses.h:50
Spectrum of incoming solar radiation.
Definition DataClasses.h:57
BoundCond is used to set Neumann boundary conditions.
Definition DataClasses.h:654
double qs
sensible heat
Definition DataClasses.h:663
double qg
geothermal heat flux or heat flux at lower boundary
Definition DataClasses.h:666
double ql
latent heat
Definition DataClasses.h:664
BoundCond()
Definition DataClasses.h:657
double lw_out
outgoing longwave radiation
Definition DataClasses.h:661
const std::string toString() const
Definition DataClasses.cc:316
double qr
rain energy
Definition DataClasses.h:665
double lw_net
net longwave radiation
Definition DataClasses.h:662
void reset()
Definition DataClasses.cc:326
Canopy data used as a pointer in the SnowStation structure.
Definition DataClasses.h:366
double wp_fraction
Wilting point, defined as a fraction of water content at field capacity (-)
Definition DataClasses.h:460
CanopyData()
Definition DataClasses.h:368
double wetfraction
fraction of canopy covered by interception [-]
Definition DataClasses.h:485
double intcapacity
maximum interception storage [mm]
Definition DataClasses.h:486
double rc
from canopy to canopy air
Definition DataClasses.h:479
double f3_gd
gd (Pa-1) parameter for canopy surface resistance response to vapour pressure:
Definition DataClasses.h:456
double sigftrunk
radiation interception cross section for trunk layer ()
Definition DataClasses.h:513
double latentcorr
Definition DataClasses.h:501
double LWnet_Trunks
net LW to trunks (>0 towards trunks)
Definition DataClasses.h:517
double rswrac
upward shortwave above canopy
Definition DataClasses.h:488
double rlnet
net longwave radiation
Definition DataClasses.h:497
double snowfac
snowfall above canopy
Definition DataClasses.h:510
double CondFluxTrunks
biomass heat storage flux towards Trunks (if 2L)
Definition DataClasses.h:516
friend std::istream & operator>>(std::istream &is, CanopyData &data)
Definition DataClasses.cc:964
double height
Definition DataClasses.h:475
double CondFluxCanop
biomass heat storage flux towards Canopy (if 1L) towards Leaves (if 2L). (>0 towards canopy)
Definition DataClasses.h:515
double can_alb_snow
Definition DataClasses.h:413
bool canopy_stabilitycorrection
Definition DataClasses.h:428
double krnt_lai
Definition DataClasses.h:414
double zdispl
Definition DataClasses.h:474
double totalalb
total albedo above canopy and snow/soil surface [-]
Definition DataClasses.h:484
double iswrbc
downward shortwave radiation below canopy
Definition DataClasses.h:491
double transp
Definition DataClasses.h:503
double can_rs_mult
1+CAN_RS_MULT = maximum factor to increase Cdata->rs below canopy
Definition DataClasses.h:447
double rswrbc
upward shortwave below canopy
Definition DataClasses.h:490
const std::string toString() const
Definition DataClasses.cc:1054
double rs
from subsurface to canpopy air
Definition DataClasses.h:480
double rlwrbc
upward longwave radiation BELOW canopy
Definition DataClasses.h:495
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:845
double trunkalb
Definition DataClasses.h:424
double rsmin
TRANSPIRATION.
Definition DataClasses.h:450
double ra
from canopy air to reference height
Definition DataClasses.h:478
double SWnet_Trunks
net SW to trunks (>0 towards trunks)
Definition DataClasses.h:518
double rstransp
stomatal surface resistance for transpiration
Definition DataClasses.h:481
void reset(const bool &cumsum_mass)
Definition DataClasses.cc:805
double biomass_heat_capacity
Definition DataClasses.h:419
double HMTrunks
Trunks heat mass (J K-1 /m2 ground surface)
Definition DataClasses.h:523
double interception_timecoef
Definition DataClasses.h:408
double z0m
Definition DataClasses.h:472
double rsnet
net shortwave radiation
Definition DataClasses.h:496
double interception
Definition DataClasses.h:506
double lai
Definition DataClasses.h:471
double can_alb_dry
RADIATION BALANCE.
Definition DataClasses.h:411
double can_ch0
minimum heat exchange (Wm-2K-1) at zero wind
Definition DataClasses.h:445
double ilwrbc
downward longwave radiation BELOW canopy
Definition DataClasses.h:494
double BasalArea
basal area of trees on the stand
Definition DataClasses.h:521
double direct_throughfall
Definition DataClasses.h:476
double lai_frac_top_default
Definition DataClasses.h:421
double biomass_density
Definition DataClasses.h:420
double latent
Definition DataClasses.h:500
void initializeSurfaceExchangeData()
Function called to initialize the canopy "Surface" exchange data (to enable accumulated mass and ener...
Definition DataClasses.cc:1151
double HMLeaves
Leaves heat mass (J K-1 /m2 ground surface)
Definition DataClasses.h:522
double can_alb_wet
Definition DataClasses.h:412
void initialize(const SN_SNOWSOIL_DATA &SSdata, const bool useCanopyModel, const bool isAlpine3D)
Initialize all the CData elements value with values by default or with values read from the SNO file....
Definition DataClasses.cc:592
double int_cap_rain
Specific interception capacity for rain (I_LAI) (mm/LAI)
Definition DataClasses.h:403
double intevap
Definition DataClasses.h:504
double iswrac
downward shortwave radiation above canopy
Definition DataClasses.h:489
double roughmom_to_canopyheight_ratio
Ratio between canopy height and roughness length.
Definition DataClasses.h:430
double rainfac
rainfall above canopy
Definition DataClasses.h:511
double int_cap_snow
Definition DataClasses.h:401
double temp
temperature (K)
Definition DataClasses.h:467
double displ_to_canopyheight_ratio
As above for displacement height.
Definition DataClasses.h:432
double storage
intercepted water (mm or kg m-2)
Definition DataClasses.h:466
double h_wilt
Wilting point pressure head, when using Richards equation for soil.
Definition DataClasses.h:462
double rootdepth
Root depth, determining the soil layers influenced by root water uptake.
Definition DataClasses.h:458
double sigf
radiation transmissivity (1)
Definition DataClasses.h:468
double rlwrac
upward longwave radiation ABOVE canopy
Definition DataClasses.h:493
double liquidfraction
Definition DataClasses.h:512
double snowunload
Definition DataClasses.h:508
double roughheat_to_roughmom_ratio
(~=1, but Not allowed to be exactly 1)
Definition DataClasses.h:443
double sensible
Definition DataClasses.h:499
friend std::ostream & operator<<(std::ostream &os, const CanopyData &data)
Definition DataClasses.cc:874
double trunk_frac_height
Definition DataClasses.h:422
double ilwrac
downward longwave radiation ABOVE canopy
Definition DataClasses.h:492
double Ttrunk
trunk temperature (K)
Definition DataClasses.h:514
double forestfloor_alb
albedo of the forest floor
Definition DataClasses.h:520
double QStrunks
sensible heat flux from trunks (>0 if heat lost from trunk)
Definition DataClasses.h:519
double z0h
Definition DataClasses.h:473
double canopytemp_maxchange_perhour
Maximum allowed canopy temperature change (K hr-1)
Definition DataClasses.h:441
double ec
longwave emissivity (1)
Definition DataClasses.h:469
double raincrease_snow
Definition DataClasses.h:438
double can_diameter
Definition DataClasses.h:416
double canopyalb
canopy albedo [-]
Definition DataClasses.h:483
double throughfall
Definition DataClasses.h:507
double et
Definition DataClasses.h:425
a C. Fierz class ;-) To cumulate various mass fluxes over either hazard or time series time steps
Definition DataClasses.h:874
std::vector< double > drift
Definition DataClasses.h:885
double precip
Definition DataClasses.h:881
double rain
Definition DataClasses.h:882
double dhs_corr
Definition DataClasses.h:883
Cumsum(const unsigned int nSlopes)
Definition DataClasses.h:877
double snow
Definition DataClasses.h:882
double mass_corr
Definition DataClasses.h:883
double runoff
Definition DataClasses.h:882
std::vector< double > erosion
Definition DataClasses.h:884
Class of interpolated meteo data for the current calculation time step.
Definition DataClasses.h:895
std::vector< double > conc
Solute concentrations in precipitation.
Definition DataClasses.h:965
mio::Date date
Date of current meteo data.
Definition DataClasses.h:928
void setMeteoData(const mio::MeteoData &md, const double &prevailing_wind_dir)
Definition DataClasses.cc:3773
double adv_heat
Advective heat to inject in the soil (if ADVECTIVE_HEAT and related parameters set to true)
Definition DataClasses.h:960
void reset(const SnowpackConfig &i_cfg)
Definition DataClasses.cc:3462
void getFixedPositions(std::vector< double > &positions) const noexcept
Definition DataClasses.h:909
double vw
Wind velocity at snow station (m s-1)
Definition DataClasses.h:932
CurrentMeteo()
Definition DataClasses.cc:3407
std::vector< double > getFixedPositions() const noexcept
Definition DataClasses.h:910
double rime_hn
riming index of new snow
Definition DataClasses.h:967
void dataForCurrentTimeStep(SurfaceFluxes &surfFluxes, std::vector< SnowStation > &vecXdata, const Slope &slope, SnowpackConfig &cfg, mio::SunObject &sun, double &precip, const double &lw_in, const double &hs_a3hl6, double &tot_mass_in)
Definition DataClasses.cc:3920
const std::string toString() const
Definition DataClasses.cc:4233
double lwc_hn
liquid water content of new snow
Definition DataClasses.h:968
bool poor_ea
when ilwr has not been measured nor parametrized in good conditions, it could be redone later on
Definition DataClasses.h:970
double z0
The snow roughness length computed in SnowDrift and also used later for the MeteoHeat fluxes (m)
Definition DataClasses.h:939
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:954
double hs_rate
The rate of change in snow depth (m h-1)
Definition DataClasses.h:958
double vw_max
Maximum wind velocity at snow station (m s-1)
Definition DataClasses.h:934
double iswr
Incoming SHORTWAVE radiation (W m-2)
Definition DataClasses.h:941
bool validMeteoData(const mio::MeteoData &md, const std::string &StationName, const unsigned int &nslopes) const
Definition DataClasses.cc:3720
void setMeasTempParameters(const mio::MeteoData &md)
Definition DataClasses.cc:3483
double rho_hn
Measured new snow density (kg m-3)
Definition DataClasses.h:966
friend std::ostream & operator<<(std::ostream &os, const CurrentMeteo &data)
Definition DataClasses.cc:4054
double ta
Air temperature (K)
Definition DataClasses.h:929
double vw_avg
Running mean of wind velocity at snow station (m s-1)
Definition DataClasses.h:933
double lw_net
Net longwave radiation (W m-2)
Definition DataClasses.h:948
double dw
Wind direction at snow station (deg)
Definition DataClasses.h:935
double tss_a24h
Snow surface temperature averaged over past 24 hours (K)
Definition DataClasses.h:951
static double getHS_last3hours(mio::IOManager &io, const mio::Date &current_date)
Definition DataClasses.cc:3852
friend std::istream & operator>>(std::istream &is, CurrentMeteo &data)
Definition DataClasses.cc:4141
double dw_drift
Wind direction of blowing and drifting snow (operational: wind ridge station)
Definition DataClasses.h:937
void editMeteoData(mio::MeteoData &md) const
Definition DataClasses.cc:3697
double vw_drift
Wind velocity for blowing and drifting snow (operational: wind ridge station)
Definition DataClasses.h:936
double psum
precipitation sum over the current timestep (mm)
Definition DataClasses.h:953
size_t getNumberMeasTemperatures() const noexcept
Returns the number of measured snow/soil temperatures stored in MeteoData.
Definition DataClasses.h:906
double sig_5GHz
5GHz Radar backscatter coefficient
Definition DataClasses.h:961
double rswr
Reflected SHORTWAVE radiation (W m-2) divide this value by the ALBEDO to get iswr.
Definition DataClasses.h:942
double diff
Diffuse radiation from the sky (W m-2)
Definition DataClasses.h:944
size_t getNumberFixedRates() const noexcept
Definition DataClasses.h:907
double ustar
The friction velocity (m s-1) computed in Meteo::MicroMet() and also used later for the MeteoHeat flu...
Definition DataClasses.h:938
std::vector< double > zv_ts
Positions of all measured snow or/and soil temperatures (m)
Definition DataClasses.h:964
size_t getMaxNumberMeasTemperatures() const noexcept
Definition DataClasses.h:908
void copySnowTemperatures(const mio::MeteoData &md, const unsigned int &current_slope)
Definition DataClasses.cc:3532
double psi_s
Stability correction for scalar heat fluxes.
Definition DataClasses.h:940
double psum_tech
Equivalent precipitation water sum for technical snow over the current timestep (mm)
Definition DataClasses.h:955
double hs_a3h
Snow depth averaged over 3 past hours.
Definition DataClasses.h:957
double rh_avg
Running mean of relative humidity (1)
Definition DataClasses.h:931
double tss_a12h
Snow surface temperature averaged over past 12 hours (K)
Definition DataClasses.h:950
double tss
Snow surface temperature (K)
Definition DataClasses.h:949
double ea
Atmospheric emissivity (1)
Definition DataClasses.h:947
double hs
The measured height of snow (m)
Definition DataClasses.h:956
void copySolutes(const mio::MeteoData &md, const size_t &i_number_of_solutes)
Definition DataClasses.cc:3548
double ts0
Bottom temperatures of snow/soil pack (K)
Definition DataClasses.h:952
std::vector< double > ts
Measured snow or/and soil temperatures (K)
Definition DataClasses.h:963
double rh
Relative humidity (% or 1)
Definition DataClasses.h:930
size_t getNumberFixedPositions() const noexcept
Definition DataClasses.h:911
double geo_heat
Geo heat flux (W/m^2), for the neumann lower boundary condition in the heat equation.
Definition DataClasses.h:959
double elev
Solar elevation to be used in Canopy.c (rad) => see also.
Definition DataClasses.h:946
double mAlbedo
Measured snow albedo.
Definition DataClasses.h:943
double dir_h
Horizontal direct radiation from the sky (W m-2)
Definition DataClasses.h:945
The physical properties of an individual element used in snow layers (one or multiple elements are co...
Definition DataClasses.h:212
double L
Original and present element thickness (m)
Definition DataClasses.h:253
std::vector< double > c
For example, specific heat of TEMPERATURE field (J kg-1 K-1)
Definition DataClasses.h:263
double salinity
bulk salinity (PSU, which is g/kg)
Definition DataClasses.h:279
double Qph_down
Heat source/sink due to phase changes for the heat equation (W/m^3), at the lower node of the element...
Definition DataClasses.h:303
double QIntmf
Apparent change in internal energy due to phase change (caused by difference in heat capacity of wate...
Definition DataClasses.h:283
double neck2VolumetricStrain() const
Relates the neck strain to the global volumetric strain.
Definition DataClasses.cc:1708
vanGenuchten VG
Van Genuchten Model for water retention.
Definition DataClasses.h:295
double soilFieldCapacity() const
Field Capacity Soil is dependent on grain properties. This nice formulation is based on some tedious ...
Definition DataClasses.cc:1596
double Te
mean element temperature (K)
Definition DataClasses.h:254
double Qmf
Subsurface Melting & Freezing Data: change of energy due to phase changes (melt-freeze)
Definition DataClasses.h:282
double CDot
Stress rate (Pa s-1), that is the overload change rate.
Definition DataClasses.h:289
double Eps_e
Definition DataClasses.h:284
unsigned short int getSnowType() const
Determine the type of snow First revisited by Fierz and Bellaire 2006 and 2007 TODO needs to be adap...
Definition DataClasses.cc:1726
double S_dr
Stability Index based on deformation rate (Direct Action Avalanching)
Definition DataClasses.h:293
double soilRelativeHumidity() const
Relative humidity in soil.
Definition DataClasses.cc:1633
double coldContent() const
Computes cold content of an element, taking meltfreeze_tk as reference.
Definition DataClasses.cc:1491
ElementData & operator=(const ElementData &)=default
Assignement operator.
double PrefFlowArea
Preferential flow path relative area (-)
Definition DataClasses.h:297
double Eps_v
Total element strain (GREEN'S strains – TOTAL LAGRANGIAN FORMULATION): Eps_e is elastic and Eps_v is ...
Definition DataClasses.h:284
double res_wat_cont
Residual water content.
Definition DataClasses.h:281
double extinction() const
Density dependent extinction coefficient -> Michi's magic trick... out of his magic hat.
Definition DataClasses.cc:1537
unsigned short int type
grain class
Definition DataClasses.h:277
Young_Modulus
This enum provides names for possible Young's modulus calculations.
Definition DataClasses.h:215
@ Pow
another power law
Definition DataClasses.h:217
@ Exp
exponential law
Definition DataClasses.h:218
@ Sigrist
Sigrist, 2006.
Definition DataClasses.h:216
double sw_abs
total absorbed shortwave radiation by the element (W m-2)
Definition DataClasses.h:268
double theta_i_reservoir_cumul
Volumetric ice content in cumulated ice reservoir (1)
Definition DataClasses.h:300
double M
the total mass of the element (kg m-2)
Definition DataClasses.h:267
double vapTrans_fluxDiff
vapor dissusion flux in the case of vapor transport (W/m^2/s)
Definition DataClasses.h:313
double vapTrans_underSaturationDegree
the degree of undersaturation, (rhov-rohv_sat)/rhov_sat (-)
Definition DataClasses.h:316
double E
Young's modulus of elasticity (Pa)
Definition DataClasses.h:286
double vapTrans_snowDenChangeRate
snow density change rate in the case of vapor transport (kg/m^3/s)
Definition DataClasses.h:314
double metamo
keep track of metamorphism
Definition DataClasses.h:278
double lwc_source
Source/sink term for Richards equation (m^3/m^3 / timestep)
Definition DataClasses.h:296
double rb
grain bond radius (mm)
Definition DataClasses.h:274
friend std::ostream & operator<<(std::ostream &os, const ElementData &data)
Definition DataClasses.cc:1216
size_t mk
grain marker (history dependent)
Definition DataClasses.h:276
unsigned short int ID
Element ID used to track elements.
Definition DataClasses.h:308
double h
capillary pressure head (m)
Definition DataClasses.h:258
std::vector< double > k
For example, heat conductivity of TEMPERATURE field (W m-1 K-1)
Definition DataClasses.h:260
void snowType()
Definition DataClasses.cc:1714
double rg
grain radius (mm)
Definition DataClasses.h:270
double rhov
vapor density...(kg/m^3)
Definition DataClasses.h:311
mio::Array2D< double > conc
Concentration for chemical constituents in (kg m-3)
Definition DataClasses.h:259
double dsm
Dry snow metamorphism factor.
Definition DataClasses.h:305
void heatCapacity()
Computes heat capacity of an element based on volumetric contents.
Definition DataClasses.cc:1474
double hard
Parameterized hand hardness (1)
Definition DataClasses.h:292
double gradT
temperature gradient over element (K m-1)
Definition DataClasses.h:255
double meltfreeze_tk
melt/freeze temperature of layer (principally initialized as 0 degC, but enables possibility for free...
Definition DataClasses.h:256
static double getYoungModule(const double &rho_slab, const Young_Modulus &model)
Definition DataClasses.cc:1385
double theta_w_transfer
Volumetric content of water transferred from preferential flow to matrix domain (1)
Definition DataClasses.h:298
double theta_i_reservoir
Volumetric ice content in ice reservoir (1)
Definition DataClasses.h:299
std::vector< double > theta
volumetric contents: SOIL, ICE, WATER, WATER_PREF, AIR (1)
Definition DataClasses.h:257
mio::Date depositionDate
Date of deposition.
Definition DataClasses.h:252
friend std::istream & operator>>(std::istream &is, ElementData &data)
Definition DataClasses.cc:1298
double s_strength
Parameterized snow shear strength (kPa)
Definition DataClasses.h:291
double Qph_up
Heat source/sink due to phase changes for the heat equation (W/m^3), at the upper node of the element...
Definition DataClasses.h:302
double S
Total Element Stress (Pa), S being the energy conjugate stress.
Definition DataClasses.h:287
double ps2rb
proportion of grain bond growth due to pressure sintering (1)
Definition DataClasses.h:290
double C
Total Element Stress (Pa), C being the real or the Cauchy stress, which is output.
Definition DataClasses.h:288
double Eps_vDot
Total Strain Rate, elastic and viscous, respectively (s-1) (Simply, Eps/sn_dt)
Definition DataClasses.h:285
double Eps_Dot
Definition DataClasses.h:285
double N3
grain Coordination number (1)
Definition DataClasses.h:275
double vapTrans_cumulativeDenChange
cumulative density change in the case of vapor transport (kg/m^3)
Definition DataClasses.h:315
double Eps
Definition DataClasses.h:284
double neckStressEnhancement() const
Computes the enhancement of hydrostatically applied stress (overburden) in the necks (or bonds)
Definition DataClasses.cc:1668
double dth_w
Subsurface Melting & Freezing Data: change of water content.
Definition DataClasses.h:280
double Rho
mean element density (or BULK density; kg m-3), that is, rho=M/V=sum( theta(i)*rho(i) )
Definition DataClasses.h:266
double SlopeParFlux
Slope parallel flux (m^3/m^3 * m / timestep)
Definition DataClasses.h:301
double neckLength() const
Computes the neck (or bond) length (mm)
Definition DataClasses.cc:1697
void updDensity()
Updates element density.
Definition DataClasses.cc:1500
double rime
Rime index.
Definition DataClasses.h:306
double L0
Definition DataClasses.h:253
double ogs
optical equivalent grain size (diameter, mm)
Definition DataClasses.h:273
bool checkVolContent()
Check volumetric content.
Definition DataClasses.cc:1413
void opticalEquivalentGrainSize()
Optical equivalent grain size (diameter, in mm)
Definition DataClasses.cc:1523
static const unsigned short int noID
Definition DataClasses.h:309
void snowResidualWaterContent()
Definition DataClasses.cc:1545
std::vector< double > soil
Contains the heat conductivity, capacity and dry density of the soil (solid, non-ice) component phase...
Definition DataClasses.h:265
double dd
snow dendricity: 0 = none, 1 = newsnow
Definition DataClasses.h:271
double snowElasticity() const
SNOW ELASTICITY : This important routine was programmed by Marc Christen, who took it directly from M...
Definition DataClasses.cc:1653
double crit_cut_length
Critical cut length (m)
Definition DataClasses.h:294
const std::string toString() const
Definition DataClasses.cc:1880
double sp
sphericity: 1 = round, 0 = angular
Definition DataClasses.h:272
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:1682
double Qmm
Heat source/sink due to phase changes in the case of vapor transport (W/m^3)
Definition DataClasses.h:312
double dEps
Definition DataClasses.h:284
Parameters of the different layers of the snowpack.
Definition DataClasses.h:113
double sp
Micro-structure : Sphericity.
Definition DataClasses.h:140
double rg
Micro-structure : Grainsize in mm.
Definition DataClasses.h:139
double phiIceReservoir
Volumetric ice reservoir content in %.
Definition DataClasses.h:127
double salinity
bulk salinity (g/kg)
Definition DataClasses.h:147
double phiVoids
Volumetric void content in %.
Definition DataClasses.h:131
double phiSoil
Volumetric soil content in %.
Definition DataClasses.h:125
double phiIce
Volumetric ice content in %.
Definition DataClasses.h:126
double dsm
dry snow metamorphism factor
Definition DataClasses.h:149
double h
capillary pressure head (m)
Definition DataClasses.h:148
std::vector< double > cVoids
Solute concentrations in Air.
Definition DataClasses.h:135
double CDot
Stress rate (Pa s-1), that is the LAST overload change rate.
Definition DataClasses.h:145
mio::Date depositionDate
Date of deposition (mainly used for snow layers)
Definition DataClasses.h:121
std::vector< double > cWater
Solute concentrations in Water.
Definition DataClasses.h:134
double phiIceReservoirCumul
Volumetric cumulated ice reservoir content in %.
Definition DataClasses.h:128
std::vector< double > cIce
Solute concentrations in Ice.
Definition DataClasses.h:133
std::vector< double > cSoil
Solute concentrations in Soil.
Definition DataClasses.h:132
double phiWaterPref
Volumetric preferential water content in %.
Definition DataClasses.h:130
double metamo
keep track of metamorphism
Definition DataClasses.h:146
const std::string toString() const
Definition DataClasses.cc:4502
friend std::istream & operator>>(std::istream &is, LayerData &data)
Definition DataClasses.cc:4450
double rb
Micro-structure : Bond Radius in mm.
Definition DataClasses.h:142
double tl
Temperature at the top of the layer in K.
Definition DataClasses.h:124
double hl
The thickness of the layer in m.
Definition DataClasses.h:122
double hr
Surface hoar Mass in kg m-2.
Definition DataClasses.h:144
double SoilC
Heat Capacity of soil.
Definition DataClasses.h:138
double SoilK
Conductivity of soil.
Definition DataClasses.h:137
friend std::ostream & operator<<(std::ostream &os, const LayerData &data)
Definition DataClasses.cc:4402
double SoilRho
Density of soil in kg m-3.
Definition DataClasses.h:136
LayerData()
Definition DataClasses.cc:4394
double phiWater
Volumetric water content in %.
Definition DataClasses.h:129
double dd
Micro-structure : Dendricity.
Definition DataClasses.h:141
unsigned short int mk
Micro-structure : Marker.
Definition DataClasses.h:143
size_t ne
Number of finite elements in the the layer (hl/ne defines elm. size)
Definition DataClasses.h:123
Definition DataClasses.h:842
double backup_days_between
Interval (days) between Xdata backups.
Definition DataClasses.h:855
double tsdaysbetween
Interval (days) between time series dumps.
Definition DataClasses.h:851
bool sdbDump
Dump to data base if required in operational mode.
Definition DataClasses.h:866
bool HzDump
Calculation of hazard information will be performed.
Definition DataClasses.h:863
void reset()
Reset all fields not read from the config file to zero or false.
Definition DataClasses.cc:4656
bool resFirstDump
Flag to dump initial state of snowpack.
Definition DataClasses.h:867
double profdaysbetween
Interval (days) between profile dumps.
Definition DataClasses.h:853
double calculation_step_length
Length of each calculation step (minutes)
Definition DataClasses.h:856
bool PrDump
Flag for profile dump.
Definition DataClasses.h:864
double sn_dt
calculation step length in seconds
Definition DataClasses.h:857
bool XdataDump
Backup of Xdata will be performed.
Definition DataClasses.h:865
size_t nStep
Time step number.
Definition DataClasses.h:859
bool TsDump
Flag for time series dump.
Definition DataClasses.h:862
double tsstart
Start time for time series dump (Julian)
Definition DataClasses.h:850
size_t nAvg
Number of calculation time steps to average fluxes etc.
Definition DataClasses.h:860
double first_backup
Start time for first Xdata backup (Julian)
Definition DataClasses.h:854
void getOutputControl(const mio::Date &step, const mio::Date &sno_step)
Determine which outputs need to be done for the current time step.
Definition DataClasses.cc:4629
double profstart
Start time for profile dump (Julian)
Definition DataClasses.h:852
size_t HzStep
Hazard step number (should be half of nStep in operational mode)
Definition DataClasses.h:861
NODAL DATA used as a pointer in the SnowStation structure.
Definition DataClasses.h:320
double udot
downward creep velocity in m s-1
Definition DataClasses.h:332
double rhov
nodal vapor density in kg/m^3
Definition DataClasses.h:348
double Sigdsm
Definition DataClasses.h:343
double S_n
Stability Index for natural avalanches.
Definition DataClasses.h:334
double dsm
Dry snow metamorphism factor.
Definition DataClasses.h:341
double S_s
Stability Index for skier triggered avalanches.
Definition DataClasses.h:335
double hoar
Mass of surface hoar collected while node was exposed to surface.
Definition DataClasses.h:338
friend std::ostream & operator<<(std::ostream &os, const NodeData &data)
Definition DataClasses.cc:1903
NodeData()
Definition DataClasses.h:322
double f
reaction or unbalanced forces (CREEP)
Definition DataClasses.h:331
double rta
Relative Threshold Sum apprach.
Definition DataClasses.h:337
double u
creep displacements in m
Definition DataClasses.h:330
double ssi
Structural Stability Index.
Definition DataClasses.h:336
double T
nodal temperature in K
Definition DataClasses.h:333
const std::string toString() const
Definition DataClasses.cc:1945
friend std::istream & operator>>(std::istream &is, NodeData &data)
Definition DataClasses.cc:1924
double water_flux
Water flowing through the node (kg/m2). Positive values denote downward fluxes.
Definition DataClasses.h:346
double S_dsm
Definition DataClasses.h:342
double rime
Definition DataClasses.h:344
double z
nodal height from ground in m
Definition DataClasses.h:329
class to collect the information about the current simulation (version, date)
Definition DataClasses.h:791
const mio::Date computation_date
Date of computation.
Definition DataClasses.h:799
const double version_num
SNOWPACK version formatted as a number.
Definition DataClasses.h:798
const std::string version
SNOWPACK version.
Definition DataClasses.h:797
const std::string hostname
hostname of the computer running the simulation
Definition DataClasses.h:802
RunInfo()
Definition DataClasses.cc:61
const std::string compilation_date
Date of compilation.
Definition DataClasses.h:800
const std::string user
logname of the user running the simulation
Definition DataClasses.h:801
RunInfo & operator=(const RunInfo &)
Definition DataClasses.h:795
const std::string history
History string, like in ACDD, combining several of the information below.
Definition DataClasses.h:803
SN_SNOWSOIL_DATA includes all important station parameters as well as LayerData.
Definition DataClasses.h:157
const std::string toString() const
Definition DataClasses.cc:4331
double TimeCountDeltaHS
Definition DataClasses.h:190
double Canopy_alb_dry
Definition DataClasses.h:196
mio::Date profileDate
Date of profile.
Definition DataClasses.h:176
double Height
Total height of soil-snow column in m (sum of the layer heights)
Definition DataClasses.h:178
size_t nN
Total number of FE nodes after loading.
Definition DataClasses.h:177
int ErosionLevel
Erosion Level in operational mode (flat field virtual erosion)
Definition DataClasses.h:189
double Canopy_Direct_Throughfall
Direct throughfall [fraction of precipitation].
Definition DataClasses.h:188
mio::StationData meta
Station meta data.
Definition DataClasses.h:175
friend std::ostream & operator<<(std::ostream &os, const SN_SNOWSOIL_DATA &data)
Definition DataClasses.cc:4265
double Canopy_alb_wet
Definition DataClasses.h:197
double Canopy_BasalArea
OPTIONAL PARAMETERS, a warning will be thrown in CANOPY::Initialize if no value is provided.
Definition DataClasses.h:192
double Emissivity_soil
OPTIONAL PARAMETERS, if not provided Constants::emissivity_soil will be used.
Definition DataClasses.h:200
size_t nLayers
Total number of soil and snow layers at loading.
Definition DataClasses.h:179
double Canopy_LAI
Canopy Leaf Area Index in m2 m-2.
Definition DataClasses.h:187
double Canopy_diameter
Average canopy (tree) diameter [m], parameter in the new radiation transfer model.
Definition DataClasses.h:193
double SoilAlb
Soil albedo, default 0.2.
Definition DataClasses.h:184
double Canopy_Height
Canopy Height in m.
Definition DataClasses.h:186
SN_SNOWSOIL_DATA()
Definition DataClasses.h:159
std::vector< LayerData > Ldata
contains all the information required to construct the Xdata
Definition DataClasses.h:180
double Canopy_int_cap_snow
Specific interception capacity for rain (I_LAI) (mm/LAI)
Definition DataClasses.h:195
double BareSoil_z0
Bare soil roughness in m, default 0.02 m.
Definition DataClasses.h:185
double Canopy_lai_frac_top_default
fraction of total LAI that is attributed to the uppermost layer. Here calibrated for Alptal.
Definition DataClasses.h:194
double Canopy_alb_snow
Definition DataClasses.h:198
friend std::istream & operator>>(std::istream &is, SN_SNOWSOIL_DATA &data)
Definition DataClasses.cc:4297
double Albedo
REQUIRED PARAMETERS, an error will be thrown at reading (SnowpackIO) if no parameter are provided.
Definition DataClasses.h:183
double HS_last
Definition DataClasses.h:181
Definition SeaIce.h:41
Definition DataClasses.h:816
unsigned int luv
Definition DataClasses.h:826
bool south
Definition DataClasses.h:829
unsigned int mainStation
main station, flat field or slope
Definition DataClasses.h:823
unsigned int getSectorDir(const double &dir_or_expo) const
Determine either direction of blowing wind or slope exposition. NOTE that station slope....
Definition DataClasses.cc:4560
std::vector< double > wind_trans24_vec
Definition DataClasses.h:833
unsigned int opposite
Definition DataClasses.h:828
bool luvDriftIndex
Definition DataClasses.h:832
void setSlope(const unsigned int slope_sequence, std::vector< SnowStation > &vecXdata, double &wind_dir)
Set slope variables.
Definition DataClasses.cc:4576
std::string snow_erosion
Definition DataClasses.h:830
unsigned int nSlopes
Definition DataClasses.h:822
bool north
Definition DataClasses.h:829
unsigned int lee
Definition DataClasses.h:827
unsigned int first
first virtual slope station in computing sequence
Definition DataClasses.h:825
bool mainStationDriftIndex
Definition DataClasses.h:831
double prevailing_wind_dir
Definition DataClasses.h:821
unsigned int sector
main station (0) or current slope sector (1:nSlopes)
Definition DataClasses.h:824
Defines structure for snow profile layers.
Definition DataClasses.h:752
double theta_w
0 to 1, volume fraction of water (-)
Definition DataClasses.h:772
double height
Height of snow or snow depth; 0 to 1000 (cm)
Definition DataClasses.h:766
double theta_a
0 to 1, volume fraction of air (-)
Definition DataClasses.h:773
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:292
double T
-50 to 50, snow temperature at top of layer (degC)
Definition DataClasses.h:768
double hard
0. to 5. (1)
Definition DataClasses.h:782
mio::Date profileDate
Date of profile.
Definition DataClasses.h:760
mio::Date depositionDate
Date of deposition (mainly used for snow layers)
Definition DataClasses.h:765
unsigned short int marker
0 to 999 (1)
Definition DataClasses.h:780
SnowProfileLayer()
Definition DataClasses.cc:175
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:247
double v_strain_rate
0 to 1.0e-5, viscous strain rate (s-1)
Definition DataClasses.h:770
std::string stationname
Definition DataClasses.h:761
unsigned char loc_for_wind
Definition DataClasses.h:763
double coordin_num
0 to 10 (1)
Definition DataClasses.h:779
unsigned char loc_for_snow
Definition DataClasses.h:762
double ogs
0 to 100, optical equivalent grain size (mm)
Definition DataClasses.h:778
double rho
0 to 1000 (kg m-3)
Definition DataClasses.h:767
short unsigned int type
0 to 999 (1)
Definition DataClasses.h:781
double sphericity
0 to 1 (1)
Definition DataClasses.h:777
double grain_size
0 to 100 (mm)
Definition DataClasses.h:774
double gradT
-1000 to 1000, temperature gradient across layer (K m-1)
Definition DataClasses.h:769
double dendricity
0 to 1 (1)
Definition DataClasses.h:776
double bond_size
0 to 100 (mm)
Definition DataClasses.h:775
double theta_i
0 to 1, volume fraction of ice (-)
Definition DataClasses.h:771
Station data including all information on snowpack layers (elements and nodes) and on canopy.
Definition DataClasses.h:533
void combineElements(const size_t &number_top_elements, const bool &reduce_n_elements, const size_t &cond, const double &comb_thresh_l)
If more than NUMBER_TOP_ELEMENTS snow elements exist, attempt to reduce their number in the FEM mesh,...
Definition DataClasses.cc:2359
double findMarkedReferenceLayer() const
returns the height of a marked reference layer inside the model domain Searches for the layer that is...
Definition DataClasses.cc:3172
static const double comb_thresh_sp
Sphericity (1)
Definition DataClasses.h:636
size_t SoilNode
The top soil node, 0 in case of SNP_SOIL == 0.
Definition DataClasses.h:593
void deflateInflate(const CurrentMeteo &Mdata, double &dhs_corr, double &mass_corr, const bool &prn_check)
Deflates or inflates the snowpack for warning service purposes.
Definition DataClasses.cc:2998
size_t getNumberOfNodes() const
Definition DataClasses.cc:2311
bool hasSoilLayers() const
Definition DataClasses.cc:2332
double z_S_n
Depth of Minimum S_n.
Definition DataClasses.h:615
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:2472
size_t getNumberOfElements() const
Definition DataClasses.cc:2306
char S_class1
Stability class based on hand hardness, grain class ...
Definition DataClasses.h:610
static const double thresh_moist_soil
Definition DataClasses.h:637
static void mergeElements(ElementData &Edata0, const ElementData &Edata1, const bool &merge, const bool &topElement, const bool &VapourTransport=false)
Merging two elements.
Definition DataClasses.cc:2841
friend std::istream & operator>>(std::istream &is, SnowStation &data)
Definition DataClasses.cc:3272
double S_n
Minimum natural stability index.
Definition DataClasses.h:614
double S_s
Minimum skier stability index sk38 (Sk38)
Definition DataClasses.h:616
double hn
Depth of new snow to be used on slopes.
Definition DataClasses.h:602
mio::StationData meta
Station meta data.
Definition DataClasses.h:581
size_t find_tag(const size_t &tag) const
Find element with corresponding tag or return IOUtils::npos if not found.
Definition DataClasses.cc:2321
double SoilAlb
Soil albedo.
Definition DataClasses.h:590
double rime_hn
rime of new snow to be used on slopes
Definition DataClasses.h:604
double ErosionMass
Eroded mass either real or virtually (storage if less than one element)
Definition DataClasses.h:608
static const size_t number_top_elements
Number of top elements left untouched by the join functions.
Definition DataClasses.h:638
SeaIce * Seaice
Pointer to sea ice class.
Definition DataClasses.h:586
double S_d
Minimum deformation rate stability index.
Definition DataClasses.h:612
double swc_sum_soil
Total solid water in soil.
Definition DataClasses.h:601
double dIntEnergy
Internal energy change of snowpack (J m-2)
Definition DataClasses.h:627
void * Kt
Pointer to pseudo-conductivity and stiffnes matrix.
Definition DataClasses.h:624
double cos_sl
Cosinus of slope angle, initialized once!
Definition DataClasses.h:582
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:2286
double z_S_4
Depth of Minimum S_4.
Definition DataClasses.h:619
double rho_hn
Density of new snow to be used on slopes.
Definition DataClasses.h:603
~SnowStation()
Definition DataClasses.cc:2083
double rho_hn_redeposit
Density of redeposited snow (REDEPOSIT mode)
Definition DataClasses.h:606
double z_S_s
Depth of Minimum S_s.
Definition DataClasses.h:617
double meltFreezeEnergy
Melt freeze part of internal energy change of snowpack (J m-2)
Definition DataClasses.h:629
double getTotalLateralFlowSoil() const
Computes the total lateral flow in soil (kg / m2)
Definition DataClasses.cc:2258
double lwc_sum_soil
Total liquid water in soil.
Definition DataClasses.h:600
bool needDeflateInflate(const double &sn_dt, const double &tracking_period)
Check if deflateInfate should be called.
Definition DataClasses.cc:2946
double ColdContent
Cold content of snowpack (J m-2)
Definition DataClasses.h:625
double S_4
placeholder - currently Minimum structural stability index (SSI)
Definition DataClasses.h:618
bool windward
True for windward (luv) slope.
Definition DataClasses.h:632
double S_5
placeholder
Definition DataClasses.h:620
void splitElement(const size_t &e)
Split the element provided as first argument.
Definition DataClasses.cc:2755
double ColdContentSoil
Cold content of soil (J m-2)
Definition DataClasses.h:626
double getModelledTemperature(const double &z) const
Returns modelled internal snow or/and soil temperature (instantaneous value; degC),...
Definition DataClasses.cc:2225
double mass_sum
Total mass summing mass of snow elements.
Definition DataClasses.h:597
double swe
Total mass summing snow water equivalent of elements.
Definition DataClasses.h:598
static const double comb_thresh_rg
Grain radius (mm)
Definition DataClasses.h:636
bool allow_inflate
Definition DataClasses.h:640
void compSnowpackMasses()
Computes the actual total masses of the snowpack (kg m-2)
Definition DataClasses.cc:2106
void reduceNumberOfElements(const size_t &rnE)
Remove the upper "marked" element of two (snow only) .
Definition DataClasses.cc:2405
double z_S_d
Depth of Minimum S_d.
Definition DataClasses.h:613
std::vector< NodeData > Ndata
pointer to nodal data array (e.g. T, z, u, etc..)
Definition DataClasses.h:622
double ReSolver_dt
Last used RE time step in the previous SNOWPACK time step.
Definition DataClasses.h:631
static unsigned short number_of_solutes
The model treats that number of solutes.
Definition DataClasses.h:639
double BareSoil_z0
Bare soil roughness in m.
Definition DataClasses.h:592
static const double comb_thresh_dd
Dendricity (1)
Definition DataClasses.h:636
void reset_water_fluxes()
Definition DataClasses.cc:2337
double mH
The MEASURED height, including soil depth if SNP_SOIL == 1.
Definition DataClasses.h:596
SnowStation & operator=(const SnowStation &)
Assignement operator.
Definition DataClasses.cc:2013
std::vector< ElementData > Edata
pointer to element data array (e.g. Te, L, Rho, etc..)
Definition DataClasses.h:623
double Albedo
Snow albedo used by the model.
Definition DataClasses.h:589
bool leeward
True for leeward (lee) slope, so we know which slope to deposit snow on (and not erode there).
Definition DataClasses.h:633
double dIntEnergySoil
Internal energy change of soil (J m-2)
Definition DataClasses.h:628
double z_S_5
Depth of Minimum S_5.
Definition DataClasses.h:621
friend std::ostream & operator<<(std::ostream &os, const SnowStation &data)
Definition DataClasses.cc:3185
double getTotalLateralFlowSnow() const
Computes the total lateral flow in snow (kg / m2)
Definition DataClasses.cc:2243
bool useCanopyModel
Definition DataClasses.h:640
static const double comb_thresh_water
Water content (1)
Definition DataClasses.h:635
size_t sector
current slope sector of width 360./max(1, nSlopes-1)
Definition DataClasses.h:583
double RedistributionMass
Mass redistributed from luv to lee slope when snow_redistribution==ADVANCED.
Definition DataClasses.h:609
double Ground
The ground height – meaning the height of the top soil node.
Definition DataClasses.h:594
const std::string toString() const
Definition DataClasses.cc:3364
void resetSlopeParFlux()
Reset lateral flow.
Definition DataClasses.cc:2273
static const double comb_thresh_ice
Volumetric ice content (1), i.e., about 46 kg m-3.
Definition DataClasses.h:635
double averageFromTop(const double &averagingDepth, const std::function< double(const ElementData &)> &Elementproperty) const
Extracts a weighted average of a snow bulk property from the top down to a given depth.
Definition DataClasses.cc:2187
char S_class2
Stability class based on hand hardness, grain class ...
Definition DataClasses.h:611
double getLiquidWaterIndex() const
Computes the liquid water index defined as the ratio of total liquid water content (in mm w....
Definition DataClasses.cc:2213
double forcedErosion(const double hs)
Forced erosion of a missed event.
Definition DataClasses.cc:3106
double hn_redeposit
Depth of redeposited snow (REDEPOSIT mode)
Definition DataClasses.h:605
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:2147
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:3131
double SoilEmissivity
Soil emissivity.
Definition DataClasses.h:591
double TimeCountDeltaHS
Time counter tracking erroneous settlement in operational mode.
Definition DataClasses.h:634
double lwc_sum
Total liquid water in snowpack.
Definition DataClasses.h:599
static const double comb_thresh_l_ratio
The default ratio between height_new_elem and comb_thresh_l, in case comb_thresh_l is not explicitly ...
Definition DataClasses.h:635
double cH
The CALCULATED height, including soil depth if SNP_SOIL == 1.
Definition DataClasses.h:595
double meltFreezeEnergySoil
Melt freeze part of internal energy change of soil (J m-2)
Definition DataClasses.h:630
double pAlbedo
Parameterized snow albedo.
Definition DataClasses.h:588
void splitElements(const double &max_element_length, const double &comb_thresh_l)
Split elements when they are near the top of the snowpack, when REDUCE_N_ELEMENTS is used.
Definition DataClasses.cc:2803
size_t ErosionLevel
Element where snow erosion stopped previously for the drift index.
Definition DataClasses.h:607
static bool combineCondition(const ElementData &Edata0, const ElementData &Edata1, const double &depth, const bool &reduce_n_elements, const double &comb_thresh_l)
Boolean routine to check whether two snow elements can be combined.
Definition DataClasses.cc:2704
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:2125
CanopyData Cdata
Pointer to canopy data.
Definition DataClasses.h:585
static const double thresh_moist_snow
Snow elements with a LWC above this threshold are considered at least to be moist.
Definition DataClasses.h:637
Definition SnowpackConfig.h:28
The surface fluxes data as computed by Snowpack.
Definition DataClasses.h:675
SN_MASS_CHANGES
The different types of mass fluxes: Mass fluxes in kg m-2 Rates in kg m-2 h-1 (MS_HNW,...
Definition DataClasses.h:682
@ MS_WATER
The total amount of water in the snowpack at the present time.
Definition DataClasses.h:685
@ MS_SUBLIMATION
The mass loss or gain of the top element due to snow (ice) sublimating.
Definition DataClasses.h:692
@ MS_TOTALMASS
This of course is the total mass of the snowpack at the present time.
Definition DataClasses.h:683
@ MS_HNW
Solid precipitation rate.
Definition DataClasses.h:688
@ MS_WIND
Mass loss rate due to wind erosion.
Definition DataClasses.h:690
@ MS_FLOODING
The mass gain due to adding ocean water to snow- seaice by flodding process.
Definition DataClasses.h:696
@ MS_ICE_SOIL
The total amount of ice in the soil at the present time.
Definition DataClasses.h:687
@ MS_SWE
This too, of course, but summing rho*L.
Definition DataClasses.h:684
@ MS_SOIL_RUNOFF
Equivalent to MS_SNOWPACK_RUNOFF but at bottom soil node.
Definition DataClasses.h:695
@ MS_SNOWPACK_RUNOFF
The mass loss of snowpack from snow melt due to water transport (virtual lysimeter)
Definition DataClasses.h:693
@ MS_WATER_SOIL
The total amount of water in the soil at the present time.
Definition DataClasses.h:686
@ MS_EVAPORATION
The mass loss or gain of the top element due to water evaporating.
Definition DataClasses.h:691
@ N_MASS_CHANGES
Total number of different mass change types.
Definition DataClasses.h:698
@ MS_RAIN
Rain rate.
Definition DataClasses.h:689
@ MS_SURFACE_MASS_FLUX
The total mass loss of snowpack due to water transport (virtual lysimeter)
Definition DataClasses.h:694
@ MS_ICEBASE_MELTING_FREEZING
The mass gain/loss of the ice base due to melting-freezing.
Definition DataClasses.h:697
std::vector< double > load
Total load (kg m-2) in water runoff from solutes like nitrate.
Definition DataClasses.h:742
friend std::ostream & operator<<(std::ostream &os, const SurfaceFluxes &data)
Definition DataClasses.cc:498
double lw_in
Energy fluxes: Energy change of snowpack in kJ m-2 (dIntEnergy) Fluxes in W m-2.
Definition DataClasses.h:717
double sw_dir
incoming direct shortwave radiation; on slopes: projected
Definition DataClasses.h:730
double sw_hor
incoming global shortwave radiation on horizontal surface
Definition DataClasses.h:726
double sw_diff
incoming diffuse shortwave radiation
Definition DataClasses.h:731
double mAlbedo
measured Albedo (used for OUTPUT only)
Definition DataClasses.h:733
double cRho_hn
Computed new snow density (kg m-3)
Definition DataClasses.h:744
SurfaceFluxes()
Definition DataClasses.cc:336
friend std::istream & operator>>(std::istream &is, SurfaceFluxes &data)
Definition DataClasses.cc:538
void collectSurfaceFluxes(const BoundCond &Bdata, SnowStation &Xdata, const CurrentMeteo &Mdata)
Assign surface data from SnowStation and BoundCond to SurfaceFluxes.
Definition DataClasses.cc:405
double qr
rain energy
Definition DataClasses.h:723
std::vector< double > mass
Total mass of snowpack PLUS different amounts of total mass change, sublimation, runoff,...
Definition DataClasses.h:741
double lw_net
net longwave radiation
Definition DataClasses.h:719
double qg
geothermal heat flux or heat flux at lower boundary
Definition DataClasses.h:724
double sw_in
incoming global shortwave radiation; on slopes: projected
Definition DataClasses.h:727
void reset(const bool &cumsum_mass)
Definition DataClasses.cc:341
double drift
Other surface data:
Definition DataClasses.h:740
double pAlbedo
parameterized Albedo (used for OUTPUT only)
Definition DataClasses.h:732
double lw_out
outgoing longwave radiation
Definition DataClasses.h:718
double meltFreezeEnergySoil
Melt freeze part of internal energy change in J m-2 in soil (used for OUTPUT only)
Definition DataClasses.h:737
double hoar
mass of surface hoar formed or sublimated
Definition DataClasses.h:722
double dIntEnergySoil
Internal energy change in J m-2 in soil (used for OUTPUT only)
Definition DataClasses.h:735
double dIntEnergy
Internal energy change in J m-2 in snowpack (used for OUTPUT only)
Definition DataClasses.h:734
double sw_out
reflected shortwave radiation
Definition DataClasses.h:728
double qw
net shortwave radiation at the surface (absorbed within the snowpack)
Definition DataClasses.h:729
const std::string toString() const
Definition DataClasses.cc:4365
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:476
void compSnowSoilHeatFlux(const SnowStation &Xdata)
Compute ground heat flux at soil/snow boundary.
Definition DataClasses.cc:375
double dhs_corr
operational mode only: snow depth correction in case of squeezing or blow-up (m)
Definition DataClasses.h:743
double qg0
ground heat flux at soil-snow interface
Definition DataClasses.h:725
double qs
sensible heat
Definition DataClasses.h:720
double mRho_hn
Measured new snow density (kg m-3)
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:736
double ql
latent heat
Definition DataClasses.h:721
This module contains water vapour transport routines for the 1d snowpack model.
Definition VapourTransport.h:50
ZwischenData contains "memory" information mainly for operational outputs.
Definition DataClasses.h:68
ZwischenData()
Definition DataClasses.h:70
void reset()
Sets all the values in the vectors to 0.0.
Definition DataClasses.cc:136
std::vector< double > hn24
Twenty-four hour snow heights every half-hour over three days 144.
Definition DataClasses.h:79
std::vector< double > hn3
Three hour new snow heights every half-hour over three days 144.
Definition DataClasses.h:78
std::vector< double > drift24
Twenty-four hour hoar index every half-hour over one day 48.
Definition DataClasses.h:77
friend std::ostream & operator<<(std::ostream &os, const ZwischenData &data)
Definition DataClasses.cc:144
std::vector< double > hoar24
Twenty-four hour hoar index every half-hour over one day 48.
Definition DataClasses.h:76
friend std::istream & operator>>(std::istream &is, ZwischenData &data)
Definition DataClasses.cc:158
This module contains the van Genuchten model for the water retention curve.
Definition vanGenuchten.h:36
Definition Constants.h:43