fof_sh.h
Go to the documentation of this file.
1 //
2 // $Id$
3 //
4 /*{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}
5 * Name: fof_sh.h
6 * Desc: Soil Heating defines for input and output structures
7 *
8 * NOTE: To DLL (Dynamic Link Library) uses. Do NOT change any of the
9 * #defines in this file.
10 * The were used to compile the DLL, if you change them they will
11 * NOT effect the functionality of the DLL.
12 * They are in here for your use and reference. For example the
13 * e_Layers #define is the number soil layers and you may want to
14 * use it in a loop to process the output for each layer.
15 *
16 *
17 *
18 {*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}*/
19 
20 #define REAL float
21 
22 #define e_SoiSimFail "Soil Simulation Failed"
23 
24 
25 /*.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- */
26 /* Degrees (celsius), used to look for deepest soil layer reaching the */
27 /* specified temperature */
28 #define e_Max1 60 /* degrees in celsius */
29 #define e_Max2 275
30 
31 /*...........................................................................*/
32 #define e_mplus1 14 /* Soil Simulation uses this define */
33 #define e_Layers e_mplus1 /* user define for # of Soil Layers */
34 
35 /*.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*/
36 /* Soil Input Parameters Struct */
37 typedef struct {
38  float f_DufDepPre; /* Pre and Post fire Duff Depth */
39  float f_DufDepPos; /* inches */
40  float f_SoilMoist;
41 
42 /* If Soil Heating is being calculated using the Consumed Managers outputs */
43 /* you can set this from d_CO.cr_BrnIg, which tells if burnup ignited or not */
44 /* If you are running the Soil Heating as a stand alone calculation this */
45 /* field will get set to YES when you SI_Init(SI) the sturct */
46  char cr_BrnIg[10]; /* "YES" or "NO", tells Burnup didn't ignite */
47 
48 /* Soil Type Arguments........... */
49 #define e_LoaSke "Loamy-Skeletal"
50 #define e_FinSil "Fine-Silt"
51 #define e_Fin "Fine"
52 #define e_CoaSil "Coarse-Silt"
53 #define e_CoaLoa "Coarse-Loamy"
54 
55 #define LOAMY_SKELETAL e_LoaSke
56 #define FINE_SILT e_FinSil
57 #define FINE e_Fin
58 #define COARSE_SILT e_CoaSil
59 #define COARSE_LOAMY e_CoaLoa
60 
61 
62 #define eC_SoilType 30
63  char cr_SoilType[eC_SoilType];
64 
65 
66 /* Moisture Condition Arguments ............................... */
67 #define e_VeryDry "VeryDry"
68 #define e_Dry "Dry"
69 #define e_Moderate "Moderate"
70 #define e_Wet "Wet"
71 
72 #define VERY_DRY e_VeryDry
73 #define DRY e_Dry
74 #define MODERATE e_Moderate
75 #define WET e_Wet
76 
77 
78 #define eC_MoistCond 30
79  char cr_MoistCond [eC_MoistCond];
80 
81 /*...........................................................................*/
82 /* These values come directly from the Burnup Model */
83 /* See notes in the fof_co.h file, in the d_CO struct definition */
84  int i_Time; /* time duration in seconds */
85  int i_Cnt; /* count for takin averag hea intn*/
86  float f_fi; /* heat intensity */
87 
88  } d_SI;
89 
90 
91 /*.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*/
92 /* Soil Output strcuture */
93 /* Soil Layer Maximum Temperatures arrays */
94 /* Temperature is in celsius */
95 /* Time is in minutes from start of fire */
96 /* [0] index represents surface, followed by next layer down [1] */
97 
98 typedef struct {
99  int ir_Temp[e_Layers]; /* Maximum Temp */
100  int ir_Time[e_Layers]; /* reached at this time */
101 
102  float f_cDufPre; /* Prefire Duff Dep - centimeters */
103  float f_cDufPost; /* Postfire Duff Dep - centimeters */
104 
105  float f_Heatpc; /* Percent of heat that makes it thru*/
106  /* the duff during fire */
107  /* This is only relevant when the */
108  /* Duff Model is run, 0.0 -> 1.00 */
109 
110 #define e_LayNone -1 /* tells when no layer reached degree*/
111  int i_LayMaxDeg1; /* deepest layers reaching specified */
112  int i_LayMaxDeg2; /* degrees, see defines e_Max1, e_Max2 */
113 
114 #define e_SM_Duff "Duff" /* Tells which soil model/simulation */
115 #define e_SM_ZDuff "Zero-Duff" /* was used to generate output */
116  char cr_Model[30];
117 
118  } d_SO;
119 
120 
121 /*.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*/
122 void WINAPI SI_Init (d_SI *a_SI);
123 void WINAPI SO_Init (d_SO *a_SO);
124 int WINAPI SH_Mngr (d_SI *a_SI, d_SO *a_SO, char cr_TmpPth[], char cr_ErrMes[]);
float f_DufDepPos
Definition: fof_sh.h:39
int i_LayMaxDeg2
Definition: fof_sh.h:112
Definition: fof_sh.h:37
float f_cDufPre
Definition: fof_sh.h:102
int i_Time
Definition: fof_sh.h:84
#define eC_MoistCond
Definition: fof_sh.h:78
float f_DufDepPre
Definition: fof_sh.h:38
void WINAPI SI_Init(d_SI *a_SI)
Definition: fof_sh.c:233
#define eC_SoilType
Definition: fof_sh.h:62
float f_cDufPost
Definition: fof_sh.h:103
float f_Heatpc
Definition: fof_sh.h:105
int i_LayMaxDeg1
Definition: fof_sh.h:111
int i_Cnt
Definition: fof_sh.h:85
Definition: fof_sh.h:98
#define e_Layers
Definition: fof_sh.h:33
void WINAPI SO_Init(d_SO *a_SO)
Definition: fof_sh.c:198
float f_SoilMoist
Definition: fof_sh.h:40
int WINAPI SH_Mngr(d_SI *a_SI, d_SO *a_SO, char cr_TmpPth[], char cr_ErrMes[])
Definition: fof_sh.c:55
float f_fi
Definition: fof_sh.h:86