forked from classmodel/modelgui
-
Notifications
You must be signed in to change notification settings - Fork 0
/
epmodel.h
117 lines (100 loc) · 2.12 KB
/
epmodel.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#ifndef EPMODEL_H
#define EPMODEL_H
#include <vector>
#include <cmath>
#include <algorithm>
#include <iterator>
#include <string>
using namespace std;
class epmodel {
public:
void runmodel();
void init();
struct input_struct {
double Ps;
double dz;
double imax;
double h;
double theta;
double q;
double gammatheta;
double gammaq;
double theta_ft0;
double q_ft0;
double sigmaq2;
double wstar;
double ent_corr_factor;
bool sw_ft_storage;
double hstore;
double Stheta;
double Sq;
double phi_cu;
} input;
struct output_struct {
double B;
double w_lfc;
double cin;
double thvp;
double thve;
bool inhibited;
} output;
output_struct get_output();
struct out_z {
std::vector<double> w;
std::vector<double> cin;
vector<double> thvp;
vector<double> thve;
} out_z;
int data_zsize;
void print_output();
private:
double Rd;
double Rv;
double Lv;
double cp;
double g;
double tv_const;
double c1;
double c2;
void initmodel();
void get_env_stats();
void calc_thermo();
void entrainment();
void calc_w();
void save_zstep();
bool check_if_stop();
double func(double T);
void calc_pres();
double calc_sat(double temp, double pref);
double pres;
double exner;
double z;
double dz;
double ent;
double z_lcl;
bool cont_bool;
bool parcel_dry;
bool above_lcl;
bool above_lfc;
bool inhibited;
struct parcel {
double qt;
double thl;
double thv;
double qsat;
double ql;
double w;
double B;
double cin;
double dw; //remove
} parcel;
struct env {
double qt;
double thl;
double thv;
double qsat;
double temp;
} env;
std::vector<bool> cond_list;
};
#endif