4 | | |
5 | | == Spitfire == |
6 | | |
7 | | === Multiple floating point exceptions at reat_of_spread === |
8 | | |
9 | | There is a floating overflow exception at exp(XXXX) from lpj_spitfire.f90 -> rate_of_spread |
10 | | |
11 | | {{{ |
12 | | ! reaction intensity |
13 | | a(:)=8.9033*(sigma(:)**(-0.7913)) |
14 | | WHERE (a(:).le.0.00001 .OR. bet(:).le.0.00001) |
15 | | dummy(:)=0.0 |
16 | | ELSEWHERE |
17 | | dummy(:)=exp(a(:)*(1.0-bet(:))) |
18 | | ENDWHERE |
19 | | }}} |
20 | | |
21 | | Proposed solution: set sigma values to 10000. FAILED |
22 | | {{{ |
23 | | !calculate mass weighted surface-area-to-volume ratio by fuel types. |
24 | | WHERE (dead_fuel(:).gt.min_stomate) |
25 | | sigma(:)=(fuel_1hr_total(:) * sigma_1hr + & |
26 | | fuel_10hr_total(:) * sigma_10hr + & |
27 | | fuel_100hr_total(:) * sigma_100hr) / dead_fuel(:) |
28 | | ELSEWHERE |
29 | | sigma(:)=0.00001 -> 10000 |
30 | | ENDWHERE |
31 | | }}} |
32 | | |
33 | | |
34 | | Proposed solution: check sigma instead of a. OK (Accepted by Chao and Fabienne) |
35 | | |
36 | | {{{ |
37 | | ! reaction intensity |
38 | | a(:)=8.9033*(sigma(:)**(-0.7913)) |
39 | | WHERE (sigma(:).le.0.00001 .OR. bet(:).le.0.00001) |
40 | | dummy(:)=0.0 |
41 | | ELSEWHERE |
42 | | dummy(:)=exp(a(:)*(1.0-bet(:))) |
43 | | ENDWHERE |
44 | | }}} |
45 | | |
46 | | This is not the root of the problem here. It comes from somewhere else but it triggers at this point. Proposal not applied. |
47 | | |
48 | | Attention: the use of WHERE statement with min_stomate is a bad practice which leads to potential bugs. What if the value is negative? In this case it would be ignored. |
49 | | |
50 | | == River routing == |
51 | | |
52 | | Albert's personal branch (r3022) can not run for four points when RIVER_ROUTING is on, but can run for globe. |
53 | | |
54 | | /home/orchidee04/yhuang/test/spinup/4p.nrouting/yfpe0f.yrouting.Ye.v2 |
55 | | |
56 | | Possible it is caused by the region I choose is not large enough, but it is still a bug. |
57 | | |
58 | | Reported by Ye. |
59 | | |
60 | | Fix on forcesoil r3050 |
61 | | |
| 74 | |
| 75 | == River routing == |
| 76 | |
| 77 | Albert's personal branch (r3022) can not run for four points when RIVER_ROUTING is on, but can run for globe. |
| 78 | |
| 79 | /home/orchidee04/yhuang/test/spinup/4p.nrouting/yfpe0f.yrouting.Ye.v2 |
| 80 | |
| 81 | Possible it is caused by the region I choose is not large enough, but it is still a bug. |
| 82 | |
| 83 | Reported by Ye. |
| 84 | |
| 85 | Fix on forcesoil r3050 |
| 86 | |
| 87 | |
| 88 | == Spitfire == |
| 89 | |
| 90 | === Multiple floating point exceptions at reat_of_spread === |
| 91 | |
| 92 | There is a floating overflow exception at exp(XXXX) from lpj_spitfire.f90 -> rate_of_spread |
| 93 | |
| 94 | {{{ |
| 95 | ! reaction intensity |
| 96 | a(:)=8.9033*(sigma(:)**(-0.7913)) |
| 97 | WHERE (a(:).le.0.00001 .OR. bet(:).le.0.00001) |
| 98 | dummy(:)=0.0 |
| 99 | ELSEWHERE |
| 100 | dummy(:)=exp(a(:)*(1.0-bet(:))) |
| 101 | ENDWHERE |
| 102 | }}} |
| 103 | |
| 104 | Proposed solution: set sigma values to 10000. FAILED |
| 105 | {{{ |
| 106 | !calculate mass weighted surface-area-to-volume ratio by fuel types. |
| 107 | WHERE (dead_fuel(:).gt.min_stomate) |
| 108 | sigma(:)=(fuel_1hr_total(:) * sigma_1hr + & |
| 109 | fuel_10hr_total(:) * sigma_10hr + & |
| 110 | fuel_100hr_total(:) * sigma_100hr) / dead_fuel(:) |
| 111 | ELSEWHERE |
| 112 | sigma(:)=0.00001 -> 10000 |
| 113 | ENDWHERE |
| 114 | }}} |
| 115 | |
| 116 | |
| 117 | Proposed solution: check sigma instead of a. OK (Accepted by Chao and Fabienne) |
| 118 | |
| 119 | {{{ |
| 120 | ! reaction intensity |
| 121 | a(:)=8.9033*(sigma(:)**(-0.7913)) |
| 122 | WHERE (sigma(:).le.0.00001 .OR. bet(:).le.0.00001) |
| 123 | dummy(:)=0.0 |
| 124 | ELSEWHERE |
| 125 | dummy(:)=exp(a(:)*(1.0-bet(:))) |
| 126 | ENDWHERE |
| 127 | }}} |
| 128 | |
| 129 | This is not the root of the problem here. It comes from somewhere else but it triggers at this point. Proposal not applied. |
| 130 | |
| 131 | Attention: the use of WHERE statement with min_stomate is a bad practice which leads to potential bugs. What if the value is negative? In this case it would be ignored. |