00001
00026 #ifndef PhysFuelModel_H
00027 #define PhysFuelModel_H
00028
00029 #include <stdlib.h>
00030 #include <stdio.h>
00031 #include <math.h>
00032
00033 #include "Units.h"
00034 #include "FStreamIO.h"
00035 #include "Err.h"
00036 #include "FuelSizeClasses.h"
00037
00038
00039
00040
00041
00042
00043
00044
00045 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00046
00047 #define PHYS_FM_FMD_SEPARATOR_CHARS (" =,\t")
00048 #define PHYS_FM_FMD_COMMENT_CHAR ("#")
00049 #define PHYS_FM_FMD_KEYWORD_METRIC ("METRIC")
00050 #define PHYS_FM_FMD_KEYWORD_ENGLISH ("ENGLISH")
00051
00052 #endif
00053
00054
00055
00056
00057 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00058
00059 #define PHYS_FM_FMD_D1H_LOAD (0)
00060 #define PHYS_FM_FMD_D10H_LOAD (1)
00061 #define PHYS_FM_FMD_D100H_LOAD (2)
00062 #define PHYS_FM_FMD_LH_LOAD (3)
00063 #define PHYS_FM_FMD_LW_LOAD (4)
00064 #define PHYS_FM_FMD_1H_SAV (5)
00065 #define PHYS_FM_FMD_LH_SAV (6)
00066 #define PHYS_FM_FMD_LW_SAV (7)
00067 #define PHYS_FM_FMD_FBED_DEPTH (8)
00068 #define PHYS_FM_FMD_EXT_MOIST (9)
00069 #define PHYS_FM_FMD_DHC (10)
00070 #define PHYS_FM_FMD_LHC (11)
00071 #define PHYS_FM_FMD_NUM_VALUES (12)
00072
00073 #endif
00074
00075
00081 #define PHYS_FM_STD_FP_DENSITY_ENGLISH (32.0)
00082
00088 #define PHYS_FM_D10H_STD_SAV_ENGLISH (109.0)
00089
00095 #define PHYS_FM_D100H_STD_SAV_ENGLISH (30.0)
00096
00103 enum EnumPhysFuelType_ {
00104 EnumPhysBurnable = 0,
00105 EnumPhysUnBurnable = 1
00106 };
00107
00108
00109
00110
00111
00112
00113
00117 typedef enum EnumPhysFuelType_ EnumPhysFuelType;
00118
00122 typedef struct PhysFuelModel_ PhysFuelModel;
00123
00127 struct PhysFuelModel_ {
00129 EnumPhysFuelType brntype;
00131 EnumUnitType units;
00133 float fdepth;
00135 int num_fp;
00137 float fdens;
00139 float fsav;
00141 float pkrat;
00143 float load [EnumNumSizeClasses];
00145 float sav [EnumNumSizeClasses];
00147 float dens [EnumNumSizeClasses];
00149 float sarea [EnumNumSizeClasses];
00151 float effhn [EnumNumSizeClasses];
00153 float awtg [EnumNumSizeClasses];
00155 float larea;
00157 float darea;
00159 float fm [EnumNumSizeClasses];
00160 };
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00180 PhysFuelModel * InitPhysFuelModelEmpty();
00181
00191 PhysFuelModel * InitPhysFuelModelFMDFile(FILE * fstream, int model_num);
00192
00198 PhysFuelModel * InitPhysFuelModelUnBurnable();
00199
00216 int PhysFuelModelMetricToEnglish(PhysFuelModel * pfm);
00217
00234 int PhysFuelModelEnglishToMetric(PhysFuelModel * pfm);
00235
00242 void PhysFuelModelDumpToStream(PhysFuelModel * pfm, FILE * fstream);
00243
00251 void FreePhysFuelModel(void * vptr);
00252
00253 #endif PhysFuelModel_H