Alpine3D  Alpine3D-3.2.0
AlpineControl.h
Go to the documentation of this file.
1 /***********************************************************************************/
2 /* Copyright 2009-2015 WSL Institute for Snow and Avalanche Research SLF-DAVOS */
3 /***********************************************************************************/
4 /* This file is part of Alpine3D.
5  Alpine3D is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  Alpine3D is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with Alpine3D. If not, see <http://www.gnu.org/licenses/>.
17 */
18 #ifndef ALPINECONTROL_H
19 #define ALPINECONTROL_H
20 
21 #include <stdio.h>
22 
23 #include <meteoio/MeteoIO.h>
24 #include <snowpack/libsnowpack.h>
25 
30 #include <alpine3d/MeteoObj.h>
31 #include <alpine3d/MPIControl.h>
32 
50 {
51  public:
52  AlpineControl(SnowpackInterface *mysnowpack,
53  SnowDriftA3D *mysnowdrift,
54  EnergyBalance *myeb,
55  DataAssimilation *myda,
56  Runoff *myrunoff,
57  const mio::Config& cfg,
58  const mio::DEMObject& dem);
59  void Run(mio::Date i_startdate, const unsigned int max_steps);
60  void setNoCompute(bool i_nocompute) {nocompute = i_nocompute;}
61 
62  private:
63  MeteoObj meteo;
64 
65  SnowpackInterface *snowpack;
66  SnowDriftA3D *snowdrift;
67  EnergyBalance *eb;
68  DataAssimilation* da;
69  Runoff* runoff;
70  double snow_days_between;
71  bool nocompute, out_snow; // no computation, only parse inputs (check mode)
72 };
73 
74 #endif
Definition: SnowDrift.h:78
Definition: EnergyBalance.h:68
Definition: SnowpackInterface.h:127
AlpineControl(SnowpackInterface *mysnowpack, SnowDriftA3D *mysnowdrift, EnergyBalance *myeb, DataAssimilation *myda, Runoff *myrunoff, const mio::Config &cfg, const mio::DEMObject &dem)
Constructs and initialise the time steps loop. This module calls all the necessary other modules (ie ...
Definition: AlpineControl.cc:36
Definition: Runoff.h:82
void setNoCompute(bool i_nocompute)
Definition: AlpineControl.h:60
Definition: MeteoObj.h:82
Definition: AlpineControl.h:49
void Run(mio::Date i_startdate, const unsigned int max_steps)
Definition: AlpineControl.cc:46
Definition: DataAssimilation.h:30