fm_fofem.h
Go to the documentation of this file.
1 //
2 // $Id$
3 //
4 /*{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}
5 * Name: fm_fofem.h
6 * Desc: Interface between the FFE-FVS and fofem for predicting Soil Heating.
7 *
8 {*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{**/
9 
10 /*.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*/
11 /* Output Array Indexes */
12 /* The soil heat temperature for each layer will start going into the array */
13 /* at eX_Deg, of which there are 'e_Layers' layers. Following that will */
14 /* go the deepest layer number that reach 60 and 275 degrees */
15 /* these are the same things we show on the FOFEM Soil report */
16 #define eX_Deg 0 /* start indx of layr degees */
17 #define eX_SL60 eX_Deg+e_Layers /* Seen note above */
18 #define eX_SL275 eX_SL60 +1
19 
20 /*.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*/
21 /* Input Array indexes */
22 /* each index demotes a position in the input array where the caller is */
23 /* to put a particular input value or code */
24 /* Also shown below are the numeric codes that are to be used for setting */
25 /* season, fuel category, etc. */
26 /* Note-1: the caller needs to send into the function the lenght of there */
27 /* error message string, so that I can check and not over run it. */
28 /* */
29 
30 #define eX_EM 0 /* len callrs err mess str, see Note-1 Above */
31 
32 #define eX_1Hr 1 /* 1 Hr, 0->1/4 woody load */
33 #define eX_10Hr 2 /* 10 Hr, 1/4->1 woody load */
34 #define eX_100Hr 3 /* 100 Hr, 1->3 woody load */
35 
36 #define eX_Snd_DW3 4 /* 1000 hour */
37 #define eX_Snd_DW6 5
38 #define eX_Snd_DW9 6
39 #define eX_Snd_DW20 7
40 
41 #define eX_Rot_DW3 8
42 #define eX_Rot_DW6 9
43 #define eX_Rot_DW9 10
44 #define eX_Rot_DW20 11
45 
46 #define eX_Duff 12 /* Duff load */
47 #define eX_DufDep 13 /* Duff depth, inches */
48 
49 #define eX_Litter 14 /* Litter Load */
50 
51 #define eX_Herb 15 /* Herb load */
52 #define eX_Shrub 16 /* Shrub load */
53 
54 #define eX_CroFol 17 /* Crown Foliage load */
55 #define eX_CroBra 18 /* Crown Branch load */
56 #define eX_Pc_CroBrn 19 /* Percent of crown that will burn */
57 
58 #define eX_MoistDW10 20 /* 10 Hr Moisture */
59 #define eX_MoistDW1k 21 /* 1000 Hr Moisture */
60 #define eX_MoistDuff 22 /* Duff Moisture */
61 
62 /*...........................................................................*/
63 /* Inputs for Soil Heating */
64 #define eX_MoistSoil 23 /* Soil Moisture */
65 
66 #define eX_MoistCond 24
67 #define e_xVeryDry 1
68 #define e_xDry 2
69 #define e_xModerate 3
70 #define e_xWet 4
71 
72 
73 #define eX_SoilType 25
74 #define e_xLoaSke 1
75 #define e_xFinSil 2
76 #define e_xFin 3
77 #define e_xCoaSil 4
78 #define e_xCoaLoa 5
79 
80 /*...........................................................................*/
81 
82 #define eX_MM 26 /* Duff Moisture Method */
83 #define e_xEntire 1
84 #define e_xLower 2
85 #define e_xNFDR 3
86 #define e_xAdj_NFDR 4
87 
88 #define eX_Season 27 /* Season */
89 #define e_xSpring 1
90 #define e_xSummer 2
91 #define e_xFall 3
92 #define e_xWinter 4
93 
94 #define eX_Region 28 /* Region */
95 #define e_xIntWest 1
96 #define e_xPacific 2
97 #define e_xSE 3
98 #define e_xNE 4
99 
100 #define eX_FuelCat 29 /* Fuel Category */
101 #define e_xNatural 1
102 #define e_xPiles 2
103 #define e_xSlash 3
104 
105 #define eX_MM_CovGrp 30 /* Cover Group */
106 #define e_xGrassGroup 1
107 #define e_xSageBrush 2
108 #define e_xShrubGroup 3
109 #define e_xPocosin 4
110 #define e_xPonderosa 5
111 #define e_xWhiPinHem 6 /* White Pine Hemlock */
112 #define e_xRedJacPin 7 /* Red Jack Pine */
113 #define e_xBalBRWSpr 8 /* Balsam, Blk Red Whit Spruce */
114 
115 /* 1 will Cause an output file to be created, showing inputs and outputs */
116 /* 0 is used for no output file */
117 #define eX_OutFile 31 /* will great output file */
118 
119 
120 #ifdef CMPgcc
121 int fm_fofem_ (float fr_In[], float fr_Out[], char cr_ErrMes[]);
122 #else
123 int fm_fofem (float fr_In[], float fr_Out[], char cr_ErrMes[]);
124 #endif
125 
int fm_fofem(float fr_In[], float fr_Out[], char cr_ErrMes[])