Commit 2bd8e7707713f2705b8d421467ea3274d13deeb4
1 parent
f48b4c76
优化函数,添加注释
Showing
3 changed files
with
127 additions
and
182 deletions
cal_gate.c
| ... | ... | @@ -7,14 +7,14 @@ |
| 7 | 7 | |
| 8 | 8 | |
| 9 | 9 | typedef enum { |
| 10 | - gate_full_open_with_free_flow, /*A*/ | |
| 11 | - gate_full_open_with_submerged_flow, /*B*/ | |
| 12 | - gate_control_with_free_flow, /*C*/ | |
| 13 | - gate_control_with_submerged_flow, /*D*/ | |
| 14 | - gate_full_open_with_free_flow_drop_step, /*E*/ | |
| 15 | - gate_full_open_with_submerged_flow_drop_step, /*F*/ | |
| 16 | - gate_control_with_free_flow_drop_step, /*G*/ | |
| 17 | - gate_control_with_submerged_flow_drop_step /*H*/ | |
| 10 | + gate_full_open_with_free_flow, /*A 闸门全开自由流*/ | |
| 11 | + gate_full_open_with_submerged_flow, /*B 闸门全开淹没流*/ | |
| 12 | + gate_control_with_free_flow, /*C 闸门控制自由流*/ | |
| 13 | + gate_control_with_submerged_flow, /*D 闸门控制淹没流*/ | |
| 14 | + gate_full_open_with_free_flow_drop_step, /*E 闸门全开自由流 有跌槛*/ | |
| 15 | + gate_full_open_with_submerged_flow_drop_step, /*F 闸门全开淹没流 有跌槛*/ | |
| 16 | + gate_control_with_free_flow_drop_step, /*G 闸门控制自由流 有跌槛*/ | |
| 17 | + gate_control_with_submerged_flow_drop_step /*H 闸门控制淹没流 有跌槛*/ | |
| 18 | 18 | }patterns_of_water; |
| 19 | 19 | |
| 20 | 20 | enum { |
| ... | ... | @@ -23,10 +23,10 @@ enum { |
| 23 | 23 | }; |
| 24 | 24 | |
| 25 | 25 | enum{ |
| 26 | - warped_wingwall=1, | |
| 27 | - flat_wingwall, | |
| 28 | - eight_c_wingwall, | |
| 29 | - parallel_wingwall | |
| 26 | + warped_wingwall=1, /*弯曲墙面*/ | |
| 27 | + flat_wingwall, /*平整墙面*/ | |
| 28 | + eight_c_wingwall, /*八字墙面*/ | |
| 29 | + parallel_wingwall /*平行墙面*/ | |
| 30 | 30 | }; |
| 31 | 31 | |
| 32 | 32 | struct A{ |
| ... | ... | @@ -85,9 +85,10 @@ typedef struct total{ |
| 85 | 85 | |
| 86 | 86 | |
| 87 | 87 | |
| 88 | - | |
| 89 | - | |
| 90 | - | |
| 88 | +/* | |
| 89 | + *几种墙面分别对应的系数 | |
| 90 | + * | |
| 91 | +*/ | |
| 91 | 92 | coefficient_infor coefficient={.A.m_warped_wingwall=0.325, .A.m_warped_wingwall_ds=0.380, .A.m_flat_wingwall=0.310, .A.m_flat_wingwall_ds=0.365,\ |
| 92 | 93 | .A.m_eight_c_wingwall=0.330, .A.m_eight_c_wingwall_ds=0.390, .A.m_parallel_wingwall=0.295, .A.m_parallel_wingwall_ds=0.355,\ |
| 93 | 94 | .B.fai_warped_wingwall=0.850,.B.fai_flat_wingwall=0.825, .B.fai_eight_c_wingwall=0.860,.B.fai_parallel_wingwall=0.795,\ |
| ... | ... | @@ -100,10 +101,10 @@ coefficient_infor coefficient={.A.m_warped_wingwall=0.325, .A.m_warped_wingwall |
| 100 | 101 | |
| 101 | 102 | |
| 102 | 103 | /* |
| 103 | - * | |
| 104 | - * | |
| 105 | - * | |
| 106 | - * | |
| 104 | + *函数名: data_validity_check() | |
| 105 | + *参数: *param | |
| 106 | + *功能: 检查传入的参数是否是有效参数 | |
| 107 | + *返回值: 0表示参数是合法的,非0表示不合法 | |
| 107 | 108 | * |
| 108 | 109 | */ |
| 109 | 110 | char data_validity_check(struct param_gate *param) |
| ... | ... | @@ -136,10 +137,13 @@ char data_validity_check(struct param_gate *param) |
| 136 | 137 | } |
| 137 | 138 | |
| 138 | 139 | /* |
| 139 | - * | |
| 140 | - * | |
| 141 | - * | |
| 142 | - * | |
| 140 | + *函数名: discrimination_of_flow_pattern() | |
| 141 | + *参数: openning_height_of_gate 开闸高度 | |
| 142 | + * water_depth_front_of_gate 闸前水位 | |
| 143 | + * water_depth_behind_of_gate 闸后水位 | |
| 144 | + * drop_step 跌槛 | |
| 145 | + *功能: 根据以上参数,判断出是那个水流模型 | |
| 146 | + *返回值: 水流模型 | |
| 143 | 147 | * |
| 144 | 148 | */ |
| 145 | 149 | |
| ... | ... | @@ -169,12 +173,38 @@ patterns_of_water discrimination_of_flow_pattern(double openning_height_of_gate, |
| 169 | 173 | } |
| 170 | 174 | |
| 171 | 175 | |
| 176 | +struct datas{ | |
| 177 | + double original_data_front; | |
| 178 | + double original_data_after; | |
| 179 | + double value; | |
| 180 | +}; | |
| 181 | + | |
| 182 | +struct datas table[46]={{0.00,0.05,1.00},{0.05,0.15,0.990},{0.15,0.25,0.980},{0.25,0.35,0.970},{0.35,0.45,0.956},{0.45,0.475,0.947},{0.475,0.525,0.937},{0.525,0.575,0.925},\ | |
| 183 | + {0.575,0.625,0.907},{0.625,0.675,0.885},{0.675,0.710,0.856},{0.710,0.730,0.843},{0.730,0.750,0.828},{0.750,0.770,0.813},{0.770,0.790,0.800},{0.790,0.805,0.778},\ | |
| 184 | + {0.805,0.815,0.767},{0.815,0.825,0.755},{0.825,0.835,0.742},{0.835,0.845,0.728},{0.845,0.855,0.713},{0.855,0.865,0.698},{0.865,0.875,0.681},{0.875,0.885,0.662},\ | |
| 185 | + {0.885,0.895,0.642},{0.895,0.9025,0.621},{0.9025,0.9075,0.608},{0.9075,0.9125,0.595},{0.9125,0.9175,0.580},{0.9175,0.9225,0.565},{0.9225,0.9275,0.549},\ | |
| 186 | + {0.9275,0.9325,0.532},{0.9325,0.9375,0.514},{0.9375,0.9425,0.484},{0.9425,0.9475,0.473},{0.9475,0.9525,0.450},{0.9525,0.9575,0.427},{0.9575,0.9625,0.403},\ | |
| 187 | + {0.9625,0.9675,0.375},{0.9675,0.9725,0.344},{0.9725,0.9775,0.318},{0.9775,0.9825,0.267},{0.9825,0.9875,0.225},{0.9875,0.9925,0.175},{0.9925,0.9975,0.115},\ | |
| 188 | + {0.9975,1.0000,0.000} | |
| 189 | +}; | |
| 190 | + | |
| 191 | +double find(double target) | |
| 192 | +{ | |
| 193 | + int i=0; | |
| 194 | + for(i=0;i<46;i++) | |
| 195 | + { | |
| 196 | + if(target>=table[i].original_data_front && target<table[i].original_data_after) | |
| 197 | + return table[i].value; | |
| 198 | + } | |
| 199 | + return 0; | |
| 200 | +} | |
| 172 | 201 | |
| 173 | 202 | /* |
| 174 | - * | |
| 175 | - * | |
| 176 | - * | |
| 177 | - * | |
| 203 | + *函数名: get_coefficient_rou() | |
| 204 | + *参数: water_depth_front_of_gate | |
| 205 | + * water_depth_behind_of_gate | |
| 206 | + *功能: 根据闸前闸后水位,获取ρ | |
| 207 | + *返回值: ρ的值 | |
| 178 | 208 | * |
| 179 | 209 | */ |
| 180 | 210 | double get_coefficient_rou(double water_depth_front_of_gate,double water_depth_behind_of_gate) |
| ... | ... | @@ -182,107 +212,19 @@ double get_coefficient_rou(double water_depth_front_of_gate,double water_depth_b |
| 182 | 212 | double s; |
| 183 | 213 | |
| 184 | 214 | s=water_depth_behind_of_gate/water_depth_front_of_gate; |
| 185 | - | |
| 186 | - if(s>=0.00 && s<0.05) | |
| 187 | - return 1.00; | |
| 188 | - else if(s>=0.06 && s<0.15) | |
| 189 | - return 0.990; | |
| 190 | - else if(s>=0.15 && s<0.25) | |
| 191 | - return 0.980; | |
| 192 | - else if(s>=0.25 && s<0.35) | |
| 193 | - return 0.970; | |
| 194 | - else if(s>=0.35 && s<0.45) | |
| 195 | - return 0.956; | |
| 196 | - else if(s>=0.45 && s<0.475) | |
| 197 | - return 0.947; | |
| 198 | - else if(s>=0.475 && s<0.525) | |
| 199 | - return 0.937; | |
| 200 | - else if(s>=0.525 && s<0.575) | |
| 201 | - return 0.925; | |
| 202 | - else if(s>=0.575 && s<0.625) | |
| 203 | - return 0.907; | |
| 204 | - else if(s>=0.625 && s<0.675) | |
| 205 | - return 0.885; | |
| 206 | - else if(s>=0.675 && s<0.710) | |
| 207 | - return 0.856; | |
| 208 | - else if(s>=0.710 && s<0.730) | |
| 209 | - return 0.843; | |
| 210 | - else if(s>=0.730 && s<0.750) | |
| 211 | - return 0.828; | |
| 212 | - else if(s>=0.750 && s<0.770) | |
| 213 | - return 0.813; | |
| 214 | - else if(s>=0.770 && s<0.790) | |
| 215 | - return 0.800; | |
| 216 | - else if(s>=0.790 && s<0.805) | |
| 217 | - return 0.778; | |
| 218 | - else if(s>=0.805 && s<0.815) | |
| 219 | - return 0.767; | |
| 220 | - else if(s>=0.815 && s<0.825) | |
| 221 | - return 0.755; | |
| 222 | - else if(s>=0.825 && s<0.835) | |
| 223 | - return 0.742; | |
| 224 | - else if(s>=0.835 && s<0.845) | |
| 225 | - return 0.728; | |
| 226 | - else if(s>=0.845 && s<0.855) | |
| 227 | - return 0.713; | |
| 228 | - else if(s>=0.855 && s<0.865) | |
| 229 | - return 0.698; | |
| 230 | - else if(s>=0.865 && s<0.875) | |
| 231 | - return 0.681; | |
| 232 | - else if(s>=0.875 && s<0.885) | |
| 233 | - return 0.662; | |
| 234 | - else if(s>=0.885 && s<0.895) | |
| 235 | - return 0.642; | |
| 236 | - else if(s>=0.895 && s<0.9025) | |
| 237 | - return 0.621; | |
| 238 | - else if(s>=0.9025 && s<0.9075) | |
| 239 | - return 0.608; | |
| 240 | - else if(s>=0.9075 && s<0.9125) | |
| 241 | - return 0.595; | |
| 242 | - else if(s>=0.9125 && s<0.9175) | |
| 243 | - return 0.580; | |
| 244 | - else if(s>=0.9175 && s<0.9225) | |
| 245 | - return 0.565; | |
| 246 | - else if(s>=0.9225 && s<0.9275) | |
| 247 | - return 0.549; | |
| 248 | - else if(s>=0.9275 && s<0.9325) | |
| 249 | - return 0.532; | |
| 250 | - else if(s>=0.9325 && s<0.9375) | |
| 251 | - return 0.514; | |
| 252 | - else if(s>=0.9375 && s<0.9425) | |
| 253 | - return 0.484; | |
| 254 | - else if(s>=0.9425 && s<0.9475) | |
| 255 | - return 0.473; | |
| 256 | - else if(s>=0.9475 && s<0.9525) | |
| 257 | - return 0.450; | |
| 258 | - else if(s>=0.9525 && s<0.9575) | |
| 259 | - return 0.427; | |
| 260 | - else if(s>=0.9575 && s<0.9625) | |
| 261 | - return 0.403; | |
| 262 | - else if(s>=0.9625 && s<0.9675) | |
| 263 | - return 0.375; | |
| 264 | - else if(s>=0.9675 && s<0.9725) | |
| 265 | - return 0.344; | |
| 266 | - else if(s>=0.9725 && s<0.9775) | |
| 267 | - return 0.318; | |
| 268 | - else if(s>=0.9775 && s<0.9825) | |
| 269 | - return 0.267; | |
| 270 | - else if(s>=0.9825 && s<0.9875) | |
| 271 | - return 0.225; | |
| 272 | - else if(s>=0.9875 && s<0.9925) | |
| 273 | - return 0.175; | |
| 274 | - else if(s>=0.9925 && s<0.9975) | |
| 275 | - return 0.115; | |
| 276 | - else if(s>=0.9975 && s<1.000) | |
| 277 | - return 0.000; | |
| 215 | + return find(s); | |
| 278 | 216 | } |
| 279 | 217 | |
| 280 | 218 | |
| 281 | 219 | /* |
| 282 | - * | |
| 283 | - * | |
| 284 | - * | |
| 285 | - * | |
| 220 | + *函数名: cal_gate_full_open_with_free_flow() | |
| 221 | + *参数: water_depth_front_of_gate 闸前水深 | |
| 222 | + * water_depth_behind_of_gate 闸后水深 | |
| 223 | + * gate_width 闸门宽度 | |
| 224 | + * wingwall 翼墙类型 | |
| 225 | + * ds 跌槛 | |
| 226 | + *功能: 根据参数,计算出闸门全开自由流模型下的瞬时流量 | |
| 227 | + *返回值: 瞬时流量 | |
| 286 | 228 | * |
| 287 | 229 | */ |
| 288 | 230 | |
| ... | ... | @@ -319,6 +261,17 @@ double cal_gate_full_open_with_free_flow(double water_depth_front_of_gate,double |
| 319 | 261 | return instantaneousFlow; |
| 320 | 262 | } |
| 321 | 263 | |
| 264 | +/* | |
| 265 | + *函数名: cal_gate_full_open_with_submerged_flow() | |
| 266 | + *参数: water_depth_front_of_gate 闸前水深 | |
| 267 | + * water_depth_behind_of_gate 闸后水深 | |
| 268 | + * gate_width 闸门宽度 | |
| 269 | + * wingwall 翼墙类型 | |
| 270 | + * ds 跌槛 | |
| 271 | + *功能: 根据参数,计算出闸门全开淹没流模型下的瞬时流量 | |
| 272 | + *返回值: 瞬时流量 | |
| 273 | + * | |
| 274 | +*/ | |
| 322 | 275 | double cal_gate_full_open_with_submerged_flow(double water_depth_front_of_gate,double water_depth_behind_of_gate,double gate_width,int wingwall,int ds) |
| 323 | 276 | { |
| 324 | 277 | double instantaneousFlow; |
| ... | ... | @@ -356,6 +309,18 @@ double cal_gate_full_open_with_submerged_flow(double water_depth_front_of_gate,d |
| 356 | 309 | return instantaneousFlow; |
| 357 | 310 | } |
| 358 | 311 | |
| 312 | +/* | |
| 313 | + *函数名: cal_gate_control_with_free_flow() | |
| 314 | + *参数: water_depth_front_of_gate 闸前水深 | |
| 315 | + * water_depth_behind_of_gate 闸后水深 | |
| 316 | + * height_of_gate 闸门开启高度 | |
| 317 | + * gate_width 闸门宽度 | |
| 318 | + * wingwall 翼墙类型 | |
| 319 | + * ds 跌槛 | |
| 320 | + *功能: 根据参数,计算出闸门控制自由流模型下的瞬时流量 | |
| 321 | + *返回值: 瞬时流量 | |
| 322 | + * | |
| 323 | +*/ | |
| 359 | 324 | double cal_gate_control_with_free_flow(double water_depth_front_of_gate,double water_depth_behind_of_gate,double height_of_gate,double gate_width,int wingwall,int ds) |
| 360 | 325 | { |
| 361 | 326 | double instantaneousFlow; |
| ... | ... | @@ -389,6 +354,18 @@ double cal_gate_control_with_free_flow(double water_depth_front_of_gate,double w |
| 389 | 354 | return instantaneousFlow; |
| 390 | 355 | } |
| 391 | 356 | |
| 357 | +/* | |
| 358 | + *函数名: cal_gate_control_with_submerged_flow() | |
| 359 | + *参数: water_depth_front_of_gate 闸前水深 | |
| 360 | + * water_depth_behind_of_gate 闸后水深 | |
| 361 | + * height_of_gate 闸门开启高度 | |
| 362 | + * gate_width 闸门宽度 | |
| 363 | + * wingwall 翼墙类型 | |
| 364 | + * ds 跌槛 | |
| 365 | + *功能: 根据参数,计算出闸门控制淹没流模型下的瞬时流量 | |
| 366 | + *返回值: 瞬时流量 | |
| 367 | + * | |
| 368 | +*/ | |
| 392 | 369 | double cal_gate_control_with_submerged_flow(double water_depth_front_of_gate,double water_depth_behind_of_gate,double height_of_gate,double gate_width,int wingwall,int ds) |
| 393 | 370 | { |
| 394 | 371 | double instantaneousFlow; |
| ... | ... | @@ -423,59 +400,22 @@ double cal_gate_control_with_submerged_flow(double water_depth_front_of_gate,dou |
| 423 | 400 | } |
| 424 | 401 | |
| 425 | 402 | |
| 426 | -/* | |
| 427 | - * | |
| 428 | - * | |
| 429 | - * | |
| 430 | - * | |
| 431 | - * | |
| 432 | -*/ | |
| 433 | -#if 0 | |
| 434 | -double Calculation_of_InstantaneousFlow(double openning_height_of_gate, double water_depth_front_of_gate,double water_depth_behind_of_gate,double gate_width,int wingwall,int drop_step) | |
| 435 | -{ | |
| 436 | - patterns_of_water get_pattern; | |
| 437 | - double temp; | |
| 438 | 403 | |
| 439 | - get_pattern = discrimination_of_flow_pattern(openning_height_of_gate,water_depth_front_of_gate,water_depth_behind_of_gate,drop_step); | |
| 440 | - switch(get_pattern){ | |
| 441 | - case gate_full_open_with_free_flow: | |
| 442 | - temp = cal_gate_full_open_with_free_flow(water_depth_front_of_gate,gate_width,wingwall,drop_step); | |
| 443 | - break; | |
| 444 | - case gate_full_open_with_submerged_flow: | |
| 445 | - temp = cal_gate_full_open_with_submerged_flow(water_depth_front_of_gate,water_depth_behind_of_gate,gate_width,wingwall,drop_step); | |
| 446 | - break; | |
| 447 | - case gate_control_with_free_flow: | |
| 448 | - temp = cal_gate_control_with_free_flow(water_depth_front_of_gate,water_depth_behind_of_gate,openning_height_of_gate,gate_width,wingwall,drop_step); | |
| 449 | - break; | |
| 450 | - case gate_control_with_submerged_flow: | |
| 451 | - temp = cal_gate_control_with_submerged_flow(water_depth_front_of_gate,water_depth_behind_of_gate,openning_height_of_gate,gate_width,wingwall,drop_step); | |
| 452 | - break; | |
| 453 | - case gate_full_open_with_free_flow_drop_step: | |
| 454 | - temp = cal_gate_full_open_with_free_flow(water_depth_front_of_gate,gate_width,wingwall,drop_step); | |
| 455 | - break; | |
| 456 | - case gate_full_open_with_submerged_flow_drop_step: | |
| 457 | - temp = cal_gate_full_open_with_submerged_flow(water_depth_front_of_gate,water_depth_behind_of_gate,gate_width,wingwall,drop_step); | |
| 458 | - break; | |
| 459 | - case gate_control_with_free_flow_drop_step: | |
| 460 | - temp = cal_gate_control_with_free_flow(water_depth_front_of_gate,water_depth_behind_of_gate,openning_height_of_gate,gate_width,wingwall,drop_step); | |
| 461 | - break; | |
| 462 | - case gate_control_with_submerged_flow_drop_step: | |
| 463 | - temp = cal_gate_control_with_submerged_flow(water_depth_front_of_gate,water_depth_behind_of_gate,openning_height_of_gate,gate_width,wingwall,drop_step); | |
| 464 | - break; | |
| 465 | - } | |
| 466 | - return temp; | |
| 467 | -} | |
| 468 | -#endif | |
| 469 | 404 | |
| 470 | 405 | |
| 471 | 406 | |
| 472 | 407 | |
| 473 | -//double openning_height_of_gate, double water_depth_front_of_gate,double water_depth_behind_of_gate,double gate_width,int wingwall,int drop_step | |
| 408 | +/* | |
| 409 | + *函数名: Calculation_of_InstantaneousFlow() | |
| 410 | + *参数: *param 指向struct param_gate的指针 | |
| 411 | + * | |
| 412 | + *功能: 根据参数,计算出瞬时流量 | |
| 413 | + *返回值: 瞬时流量 | |
| 414 | + * | |
| 415 | +*/ | |
| 474 | 416 | int Calculation_of_InstantaneousFlow(double *value,struct param_gate *param) |
| 475 | 417 | { |
| 476 | 418 | patterns_of_water get_pattern; |
| 477 | - | |
| 478 | - double temp; | |
| 479 | 419 | |
| 480 | 420 | if(data_validity_check(param)!=0) |
| 481 | 421 | return -1; |
| ... | ... | @@ -483,35 +423,34 @@ int Calculation_of_InstantaneousFlow(double *value,struct param_gate *param) |
| 483 | 423 | get_pattern = discrimination_of_flow_pattern(param->openning_height_of_gate,param->water_depth_front_of_gate,param->water_depth_behind_of_gate,param->drop_step); |
| 484 | 424 | switch(get_pattern){ |
| 485 | 425 | case gate_full_open_with_free_flow: |
| 486 | - temp = cal_gate_full_open_with_free_flow(param->water_depth_front_of_gate,param->gate_width,param->wingwall,param->drop_step); | |
| 426 | + *value = cal_gate_full_open_with_free_flow(param->water_depth_front_of_gate,param->gate_width,param->wingwall,param->drop_step); | |
| 487 | 427 | break; |
| 488 | 428 | case gate_full_open_with_submerged_flow: |
| 489 | - temp = cal_gate_full_open_with_submerged_flow(param->water_depth_front_of_gate,param->water_depth_behind_of_gate,param->gate_width,param->wingwall,param->drop_step); | |
| 429 | + *value = cal_gate_full_open_with_submerged_flow(param->water_depth_front_of_gate,param->water_depth_behind_of_gate,param->gate_width,param->wingwall,param->drop_step); | |
| 490 | 430 | break; |
| 491 | 431 | case gate_control_with_free_flow: |
| 492 | - temp = cal_gate_control_with_free_flow(param->water_depth_front_of_gate,param->water_depth_behind_of_gate,\ | |
| 432 | + *value = cal_gate_control_with_free_flow(param->water_depth_front_of_gate,param->water_depth_behind_of_gate,\ | |
| 493 | 433 | param->openning_height_of_gate,param->gate_width,param->wingwall,param->drop_step); |
| 494 | 434 | break; |
| 495 | 435 | case gate_control_with_submerged_flow: |
| 496 | - temp = cal_gate_control_with_submerged_flow(param->water_depth_front_of_gate,param->water_depth_behind_of_gate,\ | |
| 436 | + *value = cal_gate_control_with_submerged_flow(param->water_depth_front_of_gate,param->water_depth_behind_of_gate,\ | |
| 497 | 437 | param->openning_height_of_gate,param->gate_width,param->wingwall,param->drop_step); |
| 498 | 438 | break; |
| 499 | 439 | case gate_full_open_with_free_flow_drop_step: |
| 500 | - temp = cal_gate_full_open_with_free_flow(param->water_depth_front_of_gate,param->gate_width,param->wingwall,param->drop_step); | |
| 440 | + *value = cal_gate_full_open_with_free_flow(param->water_depth_front_of_gate,param->gate_width,param->wingwall,param->drop_step); | |
| 501 | 441 | break; |
| 502 | 442 | case gate_full_open_with_submerged_flow_drop_step: |
| 503 | - temp = cal_gate_full_open_with_submerged_flow(param->water_depth_front_of_gate,param->water_depth_behind_of_gate,param->gate_width,param->wingwall,param->drop_step); | |
| 443 | + *value = cal_gate_full_open_with_submerged_flow(param->water_depth_front_of_gate,param->water_depth_behind_of_gate,param->gate_width,param->wingwall,param->drop_step); | |
| 504 | 444 | break; |
| 505 | 445 | case gate_control_with_free_flow_drop_step: |
| 506 | - temp = cal_gate_control_with_free_flow(param->water_depth_front_of_gate,param->water_depth_behind_of_gate,\ | |
| 446 | + *value = cal_gate_control_with_free_flow(param->water_depth_front_of_gate,param->water_depth_behind_of_gate,\ | |
| 507 | 447 | param->openning_height_of_gate,param->gate_width,param->wingwall,param->drop_step); |
| 508 | 448 | break; |
| 509 | 449 | case gate_control_with_submerged_flow_drop_step: |
| 510 | - temp = cal_gate_control_with_submerged_flow(param->water_depth_front_of_gate,param->water_depth_behind_of_gate,\ | |
| 450 | + *value = cal_gate_control_with_submerged_flow(param->water_depth_front_of_gate,param->water_depth_behind_of_gate,\ | |
| 511 | 451 | param->openning_height_of_gate,param->gate_width,param->wingwall,param->drop_step); |
| 512 | 452 | break; |
| 513 | 453 | } |
| 514 | - *value = temp; | |
| 515 | 454 | return 0; |
| 516 | 455 | } |
| 517 | 456 | ... | ... |
cal_gate.h
| ... | ... | @@ -12,6 +12,10 @@ struct param_gate{ |
| 12 | 12 | double gate_width; |
| 13 | 13 | }; |
| 14 | 14 | |
| 15 | -int Calculation_of_InstantaneousFlow(double * value,struct param_gate *param); | |
| 15 | + | |
| 16 | +//double Calculation_of_InstantaneousFlow(double openning_height_of_gate, double water_depth_front_of_gate,double water_depth_behind_of_gate,double gate_width,int wingwall,int drop_step); | |
| 17 | +int Calculation_of_InstantaneousFlow(double *value,struct param_gate *param); | |
| 18 | + | |
| 19 | + | |
| 16 | 20 | |
| 17 | 21 | #endif | ... | ... |
test-hdsmf/test.c
| ... | ... | @@ -8,7 +8,9 @@ |
| 8 | 8 | int main() |
| 9 | 9 | { |
| 10 | 10 | void *param; |
| 11 | - | |
| 11 | + int results=0; | |
| 12 | + double temp; | |
| 13 | + | |
| 12 | 14 | param=malloc(40); |
| 13 | 15 | |
| 14 | 16 | *((int*)param)=1; |
| ... | ... | @@ -21,9 +23,9 @@ int main() |
| 21 | 23 | |
| 22 | 24 | |
| 23 | 25 | printf("For Test\r\n"); |
| 24 | - | |
| 26 | + results=Calculation_of_InstantaneousFlow(&temp,param); | |
| 25 | 27 | |
| 26 | - printf("ins:%f\r\n",Calculation_of_InstantaneousFlow(param)); | |
| 28 | + printf("exec:%d,ins:%f\r\n",results,temp); | |
| 27 | 29 | //printf("ins:%f\r\n",Calculation_of_InstantaneousFlow(5,1.2,0.1,1.2,1,0)); |
| 28 | 30 | free(param); |
| 29 | 31 | return 0; | ... | ... |