00001 #pragma ident "$Id: HarrisPriesterDrag.cpp 2457 2010-08-18 14:20:12Z coandrei $"
00002
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #include "HarrisPriesterDrag.hpp"
00032 #include "IERS.hpp"
00033 #include "ReferenceFrames.hpp"
00034 #include "StringUtils.hpp"
00035 #include <map>
00036
00037 namespace gpstk
00038 {
00039 using namespace std;
00040
00041
00042
00043 const double HarrisPriesterDrag::upper_limit = 2000.0;
00044
00045
00046 const double HarrisPriesterDrag::lower_limit = 100.0;
00047
00048
00049 const double HarrisPriesterDrag::ra_lag = 0.523599;
00050
00051
00052
00053 const double HarrisPriesterDrag::hpcoef[10][177] = {
00054
00055
00056
00057 {
00058 +1.1000000e+002, +7.8000000e+001, +7.8000000e+001,
00059 +1.2000000e+002, +2.4900000e+001, +2.4900000e+001,
00060 +1.3000000e+002, +8.9780000e+000, +9.3310000e+000,
00061 +1.4000000e+002, +4.0690000e+000, +4.2120000e+000,
00062 +1.5000000e+002, +2.0860000e+000, +2.1680000e+000,
00063 +1.6000000e+002, +1.1460000e+000, +1.2360000e+000,
00064 +1.7000000e+002, +6.6160000e-001, +7.5580000e-001,
00065 +1.8000000e+002, +4.0160000e-001, +4.8850000e-001,
00066 +1.9000000e+002, +2.5300000e-001, +3.2740000e-001,
00067 +2.0000000e+002, +1.6280000e-001, +2.2840000e-001,
00068 +2.1000000e+002, +1.0760000e-001, +1.6340000e-001,
00069 +2.2000000e+002, +7.2870000e-002, +1.1920000e-001,
00070 +2.3000000e+002, +5.0380000e-002, +8.8510000e-002,
00071 +2.4000000e+002, +3.5490000e-002, +6.6660000e-002,
00072 +2.5000000e+002, +2.5410000e-002, +5.0830000e-002,
00073 +2.6000000e+002, +1.8460000e-002, +3.9190000e-002,
00074 +2.7000000e+002, +1.3580000e-002, +3.0500000e-002,
00075 +2.8000000e+002, +1.0100000e-002, +2.3940000e-002,
00076 +2.9000000e+002, +7.5880000e-003, +1.8940000e-002,
00077 +3.0000000e+002, +5.7190000e-003, +1.5100000e-002,
00078 +3.2000000e+002, +3.3050000e-003, +9.8860000e-003,
00079 +3.4000000e+002, +1.9530000e-003, +6.6080000e-003,
00080 +3.6000000e+002, +1.1750000e-003, +4.4940000e-003,
00081 +3.8000000e+002, +7.1670000e-004, +3.1000000e-003,
00082 +4.0000000e+002, +4.4280000e-004, +2.1630000e-003,
00083 +4.2000000e+002, +2.7790000e-004, +1.5260000e-003,
00084 +4.4000000e+002, +1.7600000e-004, +1.0850000e-003,
00085 +4.6000000e+002, +1.1280000e-004, +7.7670000e-004,
00086 +4.8000000e+002, +7.3460000e-005, +5.5990000e-004,
00087 +5.0000000e+002, +4.8660000e-005, +4.0610000e-004,
00088 +5.2000000e+002, +3.2910000e-005, +2.9630000e-004,
00089 +5.4000000e+002, +2.2790000e-005, +2.1740000e-004,
00090 +5.6000000e+002, +1.6220000e-005, +1.6050000e-004,
00091 +5.8000000e+002, +1.1880000e-005, +1.1920000e-004,
00092 +6.0000000e+002, +8.9780000e-006, +8.9100000e-005,
00093 +6.2000000e+002, +6.9870000e-006, +6.7080000e-005,
00094 +6.4000000e+002, +5.5930000e-006, +5.0900000e-005,
00095 +6.6000000e+002, +4.5890000e-006, +3.8960000e-005,
00096 +6.8000000e+002, +3.8460000e-006, +3.0110000e-005,
00097 +7.0000000e+002, +3.2810000e-006, +2.3510000e-005,
00098 +7.2000000e+002, +2.8380000e-006, +1.8570000e-005,
00099 +7.4000000e+002, +2.4820000e-006, +1.4840000e-005,
00100 +7.6000000e+002, +2.1900000e-006, +1.2020000e-005,
00101 +7.8000000e+002, +1.9440000e-006, +9.8570000e-006,
00102 +8.0000000e+002, +1.7360000e-006, +8.1930000e-006,
00103 +8.5000000e+002, +1.1800000e-006, +6.2000000e-006,
00104 +9.0000000e+002, +8.7000000e-007, +4.4000000e-006,
00105 +9.5000000e+002, +6.6000000e-007, +3.3000000e-006,
00106 +1.0000000e+003, +4.8000000e-007, +2.7000000e-006,
00107 +1.1000000e+003, +3.0000000e-007, +1.7500000e-006,
00108 +1.2000000e+003, +1.8500000e-007, +1.2000000e-006,
00109 +1.3000000e+003, +1.1300000e-007, +8.5000000e-007,
00110 +1.4000000e+003, +7.3000000e-008, +6.2000000e-007,
00111 +1.5000000e+003, +5.2000000e-008, +4.7500000e-007,
00112 +1.6000000e+003, +3.7000000e-008, +3.6500000e-007,
00113 +1.7000000e+003, +2.5500000e-008, +3.0000000e-007,
00114 +1.8000000e+003, +1.8200000e-008, +2.2000000e-007,
00115 +1.9000000e+003, +1.3000000e-008, +1.8000000e-007,
00116 +2.0000000e+003, +1.0000000e-008, +1.4500000e-007,
00117 },
00118 {
00119 +1.1000000e+002, +7.8000000e+001, +7.8000000e+001,
00120 +1.2000000e+002, +2.4900000e+001, +2.4900000e+001,
00121 +1.3000000e+002, +8.9130000e+000, +9.2630000e+000,
00122 +1.4000000e+002, +4.0510000e+000, +4.1970000e+000,
00123 +1.5000000e+002, +2.0920000e+000, +2.1760000e+000,
00124 +1.6000000e+002, +1.1600000e+000, +1.2490000e+000,
00125 +1.7000000e+002, +6.7810000e-001, +7.6970000e-001,
00126 +1.8000000e+002, +4.1570000e-001, +5.0160000e-001,
00127 +1.9000000e+002, +2.6530000e-001, +3.3910000e-001,
00128 +2.0000000e+002, +1.7250000e-001, +2.3810000e-001,
00129 +2.1000000e+002, +1.1510000e-001, +1.7160000e-001,
00130 +2.2000000e+002, +7.8660000e-002, +1.2620000e-001,
00131 +2.3000000e+002, +5.4850000e-002, +9.4350000e-002,
00132 +2.4000000e+002, +3.8940000e-002, +7.1550000e-002,
00133 +2.5000000e+002, +2.8100000e-002, +5.4920000e-002,
00134 +2.6000000e+002, +2.0560000e-002, +4.2610000e-002,
00135 +2.7000000e+002, +1.5230000e-002, +3.3370000e-002,
00136 +2.8000000e+002, +1.1410000e-002, +2.6350000e-002,
00137 +2.9000000e+002, +8.6310000e-003, +2.0960000e-002,
00138 +3.0000000e+002, +6.5540000e-003, +1.6820000e-002,
00139 +3.2000000e+002, +3.8400000e-003, +1.1130000e-002,
00140 +3.4000000e+002, +2.3010000e-003, +7.5140000e-003,
00141 +3.6000000e+002, +1.4030000e-003, +5.1600000e-003,
00142 +3.8000000e+002, +8.6840000e-004, +3.5950000e-003,
00143 +4.0000000e+002, +5.4400000e-004, +2.5340000e-003,
00144 +4.2000000e+002, +3.4190000e-004, +1.7980000e-003,
00145 +4.4000000e+002, +2.1890000e-004, +1.2910000e-003,
00146 +4.6000000e+002, +1.4180000e-004, +9.3340000e-004,
00147 +4.8000000e+002, +9.3040000e-005, +6.7950000e-004,
00148 +5.0000000e+002, +6.1940000e-005, +4.9760000e-004,
00149 +5.2000000e+002, +4.1950000e-005, +3.6640000e-004,
00150 +5.4000000e+002, +2.8990000e-005, +2.7130000e-004,
00151 +5.6000000e+002, +2.0500000e-005, +2.0190000e-004,
00152 +5.8000000e+002, +1.4870000e-005, +1.5110000e-004,
00153 +6.0000000e+002, +1.1090000e-005, +1.1370000e-004,
00154 +6.2000000e+002, +8.5000000e-006, +8.6140000e-005,
00155 +6.4000000e+002, +6.6990000e-006, +6.5670000e-005,
00156 +6.6000000e+002, +5.4160000e-006, +5.0430000e-005,
00157 +6.8000000e+002, +4.4790000e-006, +3.9030000e-005,
00158 +7.0000000e+002, +3.7770000e-006, +3.0470000e-005,
00159 +7.2000000e+002, +3.2380000e-006, +2.4020000e-005,
00160 +7.4000000e+002, +2.8120000e-006, +1.9130000e-005,
00161 +7.6000000e+002, +2.4680000e-006, +1.5400000e-005,
00162 +7.8000000e+002, +2.1840000e-006, +1.2540000e-005,
00163 +8.0000000e+002, +1.9450000e-006, +1.0330000e-005,
00164 +8.5000000e+002, +1.4000000e-006, +7.3000000e-006,
00165 +9.0000000e+002, +1.0000000e-006, +5.2000000e-006,
00166 +9.5000000e+002, +7.8000000e-007, +3.8000000e-006,
00167 +1.0000000e+003, +5.8000000e-007, +3.1000000e-006,
00168 +1.1000000e+003, +3.5500000e-007, +2.0500000e-006,
00169 +1.2000000e+003, +2.3000000e-007, +1.4000000e-006,
00170 +1.3000000e+003, +1.4500000e-007, +1.0000000e-006,
00171 +1.4000000e+003, +9.1000000e-008, +7.2000000e-007,
00172 +1.5000000e+003, +6.7000000e-008, +5.4500000e-007,
00173 +1.6000000e+003, +4.5000000e-008, +4.1500000e-007,
00174 +1.7000000e+003, +3.3000000e-008, +3.4000000e-007,
00175 +1.8000000e+003, +2.2500000e-008, +2.6500000e-007,
00176 +1.9000000e+003, +1.6000000e-008, +2.1000000e-007,
00177 +2.0000000e+003, +1.2800000e-008, +1.7000000e-007,
00178 },
00179 {
00180 +1.1000000e+002, +7.8000000e+001, +7.8000000e+001,
00181 +1.2000000e+002, +2.4900000e+001, +2.4900000e+001,
00182 +1.3000000e+002, +8.7400000e+000, +9.0910000e+000,
00183 +1.4000000e+002, +4.0020000e+000, +4.1570000e+000,
00184 +1.5000000e+002, +2.1030000e+000, +2.1910000e+000,
00185 +1.6000000e+002, +1.1950000e+000, +1.2830000e+000,
00186 +1.7000000e+002, +7.1860000e-001, +8.0690000e-001,
00187 +1.8000000e+002, +4.5150000e-001, +5.3530000e-001,
00188 +1.9000000e+002, +2.9570000e-001, +3.6950000e-001,
00189 +2.0000000e+002, +1.9800000e-001, +2.6380000e-001,
00190 +2.1000000e+002, +1.3540000e-001, +1.9380000e-001,
00191 +2.2000000e+002, +9.4590000e-002, +1.4520000e-001,
00192 +2.3000000e+002, +6.7370000e-002, +1.1050000e-001,
00193 +2.4000000e+002, +4.8800000e-002, +8.5270000e-002,
00194 +2.5000000e+002, +3.5890000e-002, +6.6570000e-002,
00195 +2.6000000e+002, +2.6750000e-002, +5.2500000e-002,
00196 +2.7000000e+002, +2.0170000e-002, +4.1770000e-002,
00197 +2.8000000e+002, +1.5380000e-002, +3.3490000e-002,
00198 +2.9000000e+002, +1.1830000e-002, +2.7050000e-002,
00199 +3.0000000e+002, +9.1170000e-003, +2.2020000e-002,
00200 +3.2000000e+002, +5.5220000e-003, +1.4960000e-002,
00201 +3.4000000e+002, +3.4210000e-003, +1.0360000e-002,
00202 +3.6000000e+002, +2.1580000e-003, +7.2980000e-003,
00203 +3.8000000e+002, +1.3820000e-003, +5.2100000e-003,
00204 +4.0000000e+002, +8.9520000e-004, +3.7630000e-003,
00205 +4.2000000e+002, +5.8630000e-004, +2.7440000e-003,
00206 +4.4000000e+002, +3.8750000e-004, +2.0190000e-003,
00207 +4.6000000e+002, +2.5840000e-004, +1.4970000e-003,
00208 +4.8000000e+002, +1.7390000e-004, +1.1170000e-003,
00209 +5.0000000e+002, +1.1820000e-004, +8.3820000e-004,
00210 +5.2000000e+002, +8.1230000e-005, +6.3240000e-004,
00211 +5.4000000e+002, +5.6500000e-005, +4.7940000e-004,
00212 +5.6000000e+002, +3.9870000e-005, +3.6510000e-004,
00213 +5.8000000e+002, +2.8590000e-005, +2.7930000e-004,
00214 +6.0000000e+002, +2.0880000e-005, +2.1460000e-004,
00215 +6.2000000e+002, +1.5560000e-005, +1.6560000e-004,
00216 +6.4000000e+002, +1.1850000e-005, +1.2840000e-004,
00217 +6.6000000e+002, +9.2300000e-006, +1.0000000e-004,
00218 +6.8000000e+002, +7.3510000e-006, +7.8300000e-005,
00219 +7.0000000e+002, +5.9820000e-006, +6.1620000e-005,
00220 +7.2000000e+002, +4.9650000e-006, +4.8790000e-005,
00221 +7.4000000e+002, +4.1950000e-006, +3.8860000e-005,
00222 +7.6000000e+002, +3.6000000e-006, +3.1170000e-005,
00223 +7.8000000e+002, +3.1300000e-006, +2.5180000e-005,
00224 +8.0000000e+002, +2.7510000e-006, +2.0500000e-005,
00225 +8.5000000e+002, +2.0000000e-006, +1.3000000e-005,
00226 +9.0000000e+002, +1.5000000e-006, +9.0000000e-006,
00227 +9.5000000e+002, +1.2000000e-006, +6.2000000e-006,
00228 +1.0000000e+003, +9.4000000e-007, +5.0000000e-006,
00229 +1.1000000e+003, +5.8000000e-007, +3.1000000e-006,
00230 +1.2000000e+003, +3.7500000e-007, +2.1000000e-006,
00231 +1.3000000e+003, +2.5000000e-007, +1.5000000e-006,
00232 +1.4000000e+003, +1.7000000e-007, +1.1000000e-006,
00233 +1.5000000e+003, +1.1800000e-007, +7.7000000e-007,
00234 +1.6000000e+003, +8.2000000e-008, +6.0000000e-007,
00235 +1.7000000e+003, +6.0000000e-008, +5.0000000e-007,
00236 +1.8000000e+003, +4.3000000e-008, +3.9000000e-007,
00237 +1.9000000e+003, +3.2000000e-008, +3.1000000e-007,
00238 +2.0000000e+003, +2.4000000e-008, +2.5000000e-007,
00239 },
00240 {
00241 +1.1000000e+002, +7.8000000e+001, +7.8000000e+001,
00242 +1.2000000e+002, +2.4900000e+001, +2.4900000e+001,
00243 +1.3000000e+002, +8.5670000e+000, +8.9200000e+000,
00244 +1.4000000e+002, +3.9520000e+000, +4.1130000e+000,
00245 +1.5000000e+002, +2.1110000e+000, +2.2020000e+000,
00246 +1.6000000e+002, +1.2260000e+000, +1.3140000e+000,
00247 +1.7000000e+002, +7.5720000e-001, +8.4110000e-001,
00248 +1.8000000e+002, +4.8640000e-001, +5.6720000e-001,
00249 +1.9000000e+002, +3.2550000e-001, +3.9890000e-001,
00250 +2.0000000e+002, +2.2430000e-001, +2.8890000e-001,
00251 +2.1000000e+002, +1.5670000e-001, +2.1590000e-001,
00252 +2.2000000e+002, +1.1180000e-001, +1.6440000e-001,
00253 +2.3000000e+002, +8.1150000e-002, +1.2720000e-001,
00254 +2.4000000e+002, +5.9870000e-002, +9.9780000e-002,
00255 +2.5000000e+002, +4.4790000e-002, +7.9130000e-002,
00256 +2.6000000e+002, +3.3940000e-002, +6.3360000e-002,
00257 +2.7000000e+002, +2.6000000e-002, +5.1160000e-002,
00258 +2.8000000e+002, +2.0110000e-002, +4.1630000e-002,
00259 +2.9000000e+002, +1.5700000e-002, +3.4090000e-002,
00260 +3.0000000e+002, +1.2310000e-002, +2.8090000e-002,
00261 +3.2000000e+002, +7.6750000e-003, +1.9530000e-002,
00262 +3.4000000e+002, +4.8940000e-003, +1.3850000e-002,
00263 +3.6000000e+002, +3.1780000e-003, +9.9760000e-003,
00264 +3.8000000e+002, +2.0940000e-003, +7.2820000e-003,
00265 +4.0000000e+002, +1.3970000e-003, +5.3760000e-003,
00266 +4.2000000e+002, +9.6250000e-004, +4.0330000e-003,
00267 +4.4000000e+002, +6.5520000e-004, +3.0340000e-003,
00268 +4.6000000e+002, +4.4970000e-004, +2.2990000e-003,
00269 +4.8000000e+002, +3.1090000e-004, +1.7540000e-003,
00270 +5.0000000e+002, +2.1660000e-004, +1.3460000e-003,
00271 +5.2000000e+002, +1.5200000e-004, +1.0380000e-003,
00272 +5.4000000e+002, +1.0760000e-004, +8.0430000e-004,
00273 +5.6000000e+002, +7.6850000e-005, +6.2600000e-004,
00274 +5.8000000e+002, +5.5450000e-005, +4.8920000e-004,
00275 +6.0000000e+002, +4.0470000e-005, +3.8380000e-004,
00276 +6.2000000e+002, +2.9920000e-005, +3.0220000e-004,
00277 +6.4000000e+002, +2.2440000e-005, +2.3880000e-004,
00278 +6.6000000e+002, +1.7100000e-005, +1.8940000e-004,
00279 +6.8000000e+002, +1.3250000e-005, +1.5070000e-004,
00280 +7.0000000e+002, +1.0450000e-005, +1.2040000e-004,
00281 +7.2000000e+002, +8.3970000e-006, +9.6580000e-005,
00282 +7.4000000e+002, +6.8670000e-006, +7.7770000e-005,
00283 +7.6000000e+002, +5.7130000e-006, +6.2890000e-005,
00284 +7.8000000e+002, +4.8300000e-006, +5.1090000e-005,
00285 +8.0000000e+002, +4.1430000e-006, +4.1700000e-005,
00286 +8.5000000e+002, +3.1500000e-006, +2.7000000e-005,
00287 +9.0000000e+002, +2.2500000e-006, +1.8000000e-005,
00288 +9.5000000e+002, +1.7200000e-006, +1.2000000e-005,
00289 +1.0000000e+003, +1.4000000e-006, +8.8000000e-006,
00290 +1.1000000e+003, +8.5000000e-007, +5.3000000e-006,
00291 +1.2000000e+003, +5.4000000e-007, +3.2000000e-006,
00292 +1.3000000e+003, +3.8000000e-007, +2.2500000e-006,
00293 +1.4000000e+003, +2.8000000e-007, +1.5000000e-006,
00294 +1.5000000e+003, +1.9500000e-007, +1.0300000e-006,
00295 +1.6000000e+003, +1.3500000e-007, +8.0000000e-007,
00296 +1.7000000e+003, +1.0200000e-007, +6.5000000e-007,
00297 +1.8000000e+003, +7.4000000e-008, +5.2000000e-007,
00298 +1.9000000e+003, +5.6000000e-008, +4.2500000e-007,
00299 +2.0000000e+003, +4.4000000e-008, +3.4000000e-007,
00300 },
00301 {
00302 +1.1000000e+002, +7.8000000e+001, +7.8000000e+001,
00303 +1.2000000e+002, +2.4900000e+001, +2.4900000e+001,
00304 +1.3000000e+002, +8.3770000e+000, +8.7100000e+000,
00305 +1.4000000e+002, +3.8990000e+000, +4.0590000e+000,
00306 +1.5000000e+002, +2.1220000e+000, +2.2150000e+000,
00307 +1.6000000e+002, +1.2630000e+000, +1.3440000e+000,
00308 +1.7000000e+002, +8.0080000e-001, +8.7580000e-001,
00309 +1.8000000e+002, +5.2830000e-001, +6.0100000e-001,
00310 +1.9000000e+002, +3.6170000e-001, +4.2970000e-001,
00311 +2.0000000e+002, +2.5570000e-001, +3.1620000e-001,
00312 +2.1000000e+002, +1.8390000e-001, +2.3960000e-001,
00313 +2.2000000e+002, +1.3410000e-001, +1.8530000e-001,
00314 +2.3000000e+002, +9.9490000e-002, +1.4550000e-001,
00315 +2.4000000e+002, +7.4880000e-002, +1.1570000e-001,
00316 +2.5000000e+002, +5.7090000e-002, +9.3080000e-002,
00317 +2.6000000e+002, +4.4030000e-002, +7.5550000e-002,
00318 +2.7000000e+002, +3.4300000e-002, +6.1820000e-002,
00319 +2.8000000e+002, +2.6970000e-002, +5.0950000e-002,
00320 +2.9000000e+002, +2.1390000e-002, +4.2260000e-002,
00321 +3.0000000e+002, +1.7080000e-002, +3.5260000e-002,
00322 +3.2000000e+002, +1.0990000e-002, +2.5110000e-002,
00323 +3.4000000e+002, +7.2140000e-003, +1.8190000e-002,
00324 +3.6000000e+002, +4.8240000e-003, +1.3370000e-002,
00325 +3.8000000e+002, +3.2740000e-003, +9.9550000e-003,
00326 +4.0000000e+002, +2.2490000e-003, +7.4920000e-003,
00327 +4.2000000e+002, +1.5580000e-003, +5.6840000e-003,
00328 +4.4000000e+002, +1.0910000e-003, +4.3550000e-003,
00329 +4.6000000e+002, +7.7010000e-004, +3.3620000e-003,
00330 +4.8000000e+002, +5.4740000e-004, +2.6120000e-003,
00331 +5.0000000e+002, +3.9160000e-004, +2.0420000e-003,
00332 +5.2000000e+002, +2.8190000e-004, +1.6050000e-003,
00333 +5.4000000e+002, +2.0420000e-004, +1.2670000e-003,
00334 +5.6000000e+002, +1.4880000e-004, +1.0050000e-003,
00335 +5.8000000e+002, +1.0920000e-004, +7.9970000e-004,
00336 +6.0000000e+002, +8.0700000e-005, +6.3900000e-004,
00337 +6.2000000e+002, +6.0120000e-005, +5.1230000e-004,
00338 +6.4000000e+002, +4.5190000e-005, +4.1210000e-004,
00339 +6.6000000e+002, +3.4300000e-005, +3.3250000e-004,
00340 +6.8000000e+002, +2.6320000e-005, +2.6910000e-004,
00341 +7.0000000e+002, +2.0430000e-005, +2.1850000e-004,
00342 +7.2000000e+002, +1.6070000e-005, +1.7790000e-004,
00343 +7.4000000e+002, +1.2810000e-005, +1.4520000e-004,
00344 +7.6000000e+002, +1.0360000e-005, +1.1900000e-004,
00345 +7.8000000e+002, +8.4960000e-006, +9.7760000e-005,
00346 +8.0000000e+002, +7.0690000e-006, +8.0590000e-005,
00347 +8.5000000e+002, +4.8000000e-006, +5.5000000e-005,
00348 +9.0000000e+002, +3.3000000e-006, +3.7000000e-005,
00349 +9.5000000e+002, +2.4500000e-006, +2.4000000e-005,
00350 +1.0000000e+003, +1.9000000e-006, +1.7000000e-005,
00351 +1.1000000e+003, +1.1800000e-006, +8.7000000e-006,
00352 +1.2000000e+003, +7.5000000e-007, +4.8000000e-006,
00353 +1.3000000e+003, +5.3000000e-007, +3.2000000e-006,
00354 +1.4000000e+003, +4.1000000e-007, +2.0000000e-006,
00355 +1.5000000e+003, +2.9000000e-007, +1.3500000e-006,
00356 +1.6000000e+003, +2.0000000e-007, +9.5000000e-007,
00357 +1.7000000e+003, +1.6000000e-007, +7.7000000e-007,
00358 +1.8000000e+003, +1.2000000e-007, +6.3000000e-007,
00359 +1.9000000e+003, +9.6000000e-008, +5.2000000e-007,
00360 +2.0000000e+003, +7.3000000e-008, +4.4000000e-007,
00361 },
00362 {
00363 +1.1000000e+002, +7.8000000e+001, +7.8000000e+001,
00364 +1.2000000e+002, +2.4900000e+001, +2.4900000e+001,
00365 +1.3000000e+002, +8.2390000e+000, +8.5770000e+000,
00366 +1.4000000e+002, +3.8580000e+000, +4.0210000e+000,
00367 +1.5000000e+002, +2.1230000e+000, +2.2180000e+000,
00368 +1.6000000e+002, +1.2830000e+000, +1.3630000e+000,
00369 +1.7000000e+002, +8.2460000e-001, +8.9970000e-001,
00370 +1.8000000e+002, +5.5380000e-001, +6.2510000e-001,
00371 +1.9000000e+002, +3.8480000e-001, +4.5140000e-001,
00372 +2.0000000e+002, +2.7600000e-001, +3.3620000e-001,
00373 +2.1000000e+002, +2.0190000e-001, +2.5690000e-001,
00374 +2.2000000e+002, +1.4950000e-001, +2.0080000e-001,
00375 +2.3000000e+002, +1.1240000e-001, +1.5930000e-001,
00376 +2.4000000e+002, +8.5790000e-002, +1.2800000e-001,
00377 +2.5000000e+002, +6.6260000e-002, +1.0400000e-001,
00378 +2.6000000e+002, +5.1740000e-002, +8.5220000e-002,
00379 +2.7000000e+002, +4.0790000e-002, +7.0410000e-002,
00380 +2.8000000e+002, +3.2440000e-002, +5.8580000e-002,
00381 +2.9000000e+002, +2.6000000e-002, +4.9040000e-002,
00382 +3.0000000e+002, +2.0870000e-002, +4.1310000e-002,
00383 +3.2000000e+002, +1.3680000e-002, +2.9910000e-002,
00384 +3.4000000e+002, +9.1570000e-003, +2.2010000e-002,
00385 +3.6000000e+002, +6.2380000e-003, +1.6430000e-002,
00386 +3.8000000e+002, +4.3130000e-003, +1.2410000e-002,
00387 +4.0000000e+002, +3.0190000e-003, +9.4750000e-003,
00388 +4.2000000e+002, +2.1340000e-003, +7.2930000e-003,
00389 +4.4000000e+002, +1.5230000e-003, +5.6650000e-003,
00390 +4.6000000e+002, +1.0960000e-003, +4.4330000e-003,
00391 +4.8000000e+002, +7.9340000e-004, +3.4910000e-003,
00392 +5.0000000e+002, +5.7820000e-004, +2.7660000e-003,
00393 +5.2000000e+002, +4.2370000e-004, +2.2030000e-003,
00394 +5.4000000e+002, +3.1220000e-004, +1.7630000e-003,
00395 +5.6000000e+002, +2.3130000e-004, +1.4170000e-003,
00396 +5.8000000e+002, +1.7230000e-004, +1.1430000e-003,
00397 +6.0000000e+002, +1.2900000e-004, +9.2580000e-004,
00398 +6.2000000e+002, +9.7240000e-005, +7.5230000e-004,
00399 +6.4000000e+002, +7.3740000e-005, +6.1330000e-004,
00400 +6.6000000e+002, +5.6310000e-005, +5.0140000e-004,
00401 +6.8000000e+002, +4.3340000e-005, +4.1110000e-004,
00402 +7.0000000e+002, +3.3630000e-005, +3.3800000e-004,
00403 +7.2000000e+002, +2.6340000e-005, +2.7870000e-004,
00404 +7.4000000e+002, +2.0840000e-005, +2.3030000e-004,
00405 +7.6000000e+002, +1.6660000e-005, +1.9080000e-004,
00406 +7.8000000e+002, +1.3470000e-005, +1.5850000e-004,
00407 +8.0000000e+002, +1.1030000e-005, +1.3200000e-004,
00408 +8.5000000e+002, +7.8000000e-006, +9.2000000e-005,
00409 +9.0000000e+002, +5.1000000e-006, +6.3000000e-005,
00410 +9.5000000e+002, +3.4500000e-006, +4.1000000e-005,
00411 +1.0000000e+003, +2.6000000e-006, +2.8500000e-005,
00412 +1.1000000e+003, +1.6000000e-006, +1.4000000e-005,
00413 +1.2000000e+003, +1.0000000e-006, +7.4000000e-006,
00414 +1.3000000e+003, +7.0000000e-007, +4.3000000e-006,
00415 +1.4000000e+003, +5.4300000e-007, +2.6000000e-006,
00416 +1.5000000e+003, +4.0000000e-007, +1.7000000e-006,
00417 +1.6000000e+003, +2.9000000e-007, +1.2000000e-006,
00418 +1.7000000e+003, +2.3000000e-007, +9.4000000e-007,
00419 +1.8000000e+003, +1.7500000e-007, +7.4000000e-007,
00420 +1.9000000e+003, +1.4000000e-007, +6.0000000e-007,
00421 +2.0000000e+003, +1.0900000e-007, +5.2000000e-007,
00422 },
00423 {
00424 +1.1000000e+002, +7.8000000e+001, +7.8000000e+001,
00425 +1.2000000e+002, +2.4900000e+001, +2.4900000e+001,
00426 +1.3000000e+002, +8.0680000e+000, +8.3810000e+000,
00427 +1.4000000e+002, +3.8110000e+000, +3.9640000e+000,
00428 +1.5000000e+002, +2.1300000e+000, +2.2220000e+000,
00429 +1.6000000e+002, +1.3130000e+000, +1.3860000e+000,
00430 +1.7000000e+002, +8.5680000e-001, +9.2780000e-001,
00431 +1.8000000e+002, +5.9370000e-001, +6.5310000e-001,
00432 +1.9000000e+002, +4.2380000e-001, +4.7720000e-001,
00433 +2.0000000e+002, +3.1000000e-001, +3.5990000e-001,
00434 +2.1000000e+002, +2.2970000e-001, +2.7780000e-001,
00435 +2.2000000e+002, +1.7320000e-001, +2.1940000e-001,
00436 +2.3000000e+002, +1.3260000e-001, +1.7590000e-001,
00437 +2.4000000e+002, +1.0290000e-001, +1.4280000e-001,
00438 +2.5000000e+002, +8.0730000e-002, +1.1710000e-001,
00439 +2.6000000e+002, +6.3980000e-002, +9.6890000e-002,
00440 +2.7000000e+002, +5.1170000e-002, +8.0800000e-002,
00441 +2.8000000e+002, +4.1240000e-002, +6.7840000e-002,
00442 +2.9000000e+002, +3.3490000e-002, +5.7350000e-002,
00443 +3.0000000e+002, +2.7350000e-002, +4.8850000e-002,
00444 +3.2000000e+002, +1.8380000e-002, +3.5950000e-002,
00445 +3.4000000e+002, +1.2600000e-002, +2.6870000e-002,
00446 +3.6000000e+002, +8.7780000e-003, +2.0350000e-002,
00447 +3.8000000e+002, +6.2050000e-003, +1.5600000e-002,
00448 +4.0000000e+002, +4.4410000e-003, +1.2070000e-002,
00449 +4.2000000e+002, +3.2100000e-003, +9.4170000e-003,
00450 +4.4000000e+002, +2.3430000e-003, +7.4110000e-003,
00451 +4.6000000e+002, +1.7230000e-003, +5.8740000e-003,
00452 +4.8000000e+002, +1.2760000e-003, +4.6860000e-003,
00453 +5.0000000e+002, +9.5060000e-004, +3.7600000e-003,
00454 +5.2000000e+002, +7.1220000e-004, +3.0330000e-003,
00455 +5.4000000e+002, +5.3620000e-004, +2.4580000e-003,
00456 +5.6000000e+002, +4.0570000e-004, +2.0010000e-003,
00457 +5.8000000e+002, +3.0830000e-004, +1.6350000e-003,
00458 +6.0000000e+002, +2.3540000e-004, +1.3410000e-003,
00459 +6.2000000e+002, +1.8050000e-004, +1.1040000e-003,
00460 +6.4000000e+002, +1.3900000e-004, +9.1140000e-004,
00461 +6.6000000e+002, +1.0760000e-004, +7.5470000e-004,
00462 +6.8000000e+002, +8.3720000e-005, +6.2670000e-004,
00463 +7.0000000e+002, +6.5490000e-005, +5.2180000e-004,
00464 +7.2000000e+002, +5.1530000e-005, +4.3550000e-004,
00465 +7.4000000e+002, +4.0800000e-005, +3.6430000e-004,
00466 +7.6000000e+002, +3.2530000e-005, +3.0550000e-004,
00467 +7.8000000e+002, +2.6130000e-005, +2.5670000e-004,
00468 +8.0000000e+002, +2.1160000e-005, +2.1620000e-004,
00469 +8.5000000e+002, +1.3000000e-005, +1.4000000e-004,
00470 +9.0000000e+002, +7.9000000e-006, +9.4000000e-005,
00471 +9.5000000e+002, +5.0000000e-006, +6.4000000e-005,
00472 +1.0000000e+003, +3.5000000e-006, +4.4000000e-005,
00473 +1.1000000e+003, +2.1000000e-006, +2.2000000e-005,
00474 +1.2000000e+003, +1.3000000e-006, +1.1000000e-005,
00475 +1.3000000e+003, +9.0000000e-007, +6.2000000e-006,
00476 +1.4000000e+003, +6.8000000e-007, +3.6000000e-006,
00477 +1.5000000e+003, +5.0000000e-007, +2.2500000e-006,
00478 +1.6000000e+003, +3.7000000e-007, +1.5500000e-006,
00479 +1.7000000e+003, +3.0000000e-007, +1.2000000e-006,
00480 +1.8000000e+003, +2.3200000e-007, +9.0000000e-007,
00481 +1.9000000e+003, +1.8200000e-007, +7.3000000e-007,
00482 +2.0000000e+003, +1.4500000e-007, +6.0000000e-007,
00483 },
00484 {
00485 +1.1000000e+002, +7.8000000e+001, +7.8000000e+001,
00486 +1.2000000e+002, +2.4900000e+001, +2.4900000e+001,
00487 +1.3000000e+002, +7.9560000e+000, +8.2620000e+000,
00488 +1.4000000e+002, +3.7770000e+000, +3.9290000e+000,
00489 +1.5000000e+002, +2.1280000e+000, +2.2210000e+000,
00490 +1.6000000e+002, +1.3240000e+000, +1.3970000e+000,
00491 +1.7000000e+002, +8.7820000e-001, +9.4480000e-001,
00492 +1.8000000e+002, +6.1190000e-001, +6.7050000e-001,
00493 +1.9000000e+002, +4.3800000e-001, +4.9380000e-001,
00494 +2.0000000e+002, +3.2300000e-001, +3.7510000e-001,
00495 +2.1000000e+002, +2.4410000e-001, +2.9130000e-001,
00496 +2.2000000e+002, +1.8680000e-001, +2.3170000e-001,
00497 +2.3000000e+002, +1.4450000e-001, +1.8700000e-001,
00498 +2.4000000e+002, +1.1330000e-001, +1.5280000e-001,
00499 +2.5000000e+002, +8.9760000e-002, +1.2620000e-001,
00500 +2.6000000e+002, +7.1820000e-002, +1.0510000e-001,
00501 +2.7000000e+002, +5.7950000e-002, +8.8200000e-002,
00502 +2.8000000e+002, +4.7130000e-002, +7.4520000e-002,
00503 +2.9000000e+002, +3.8500000e-002, +6.3470000e-002,
00504 +3.0000000e+002, +3.1540000e-002, +5.4390000e-002,
00505 +3.2000000e+002, +2.1520000e-002, +4.0480000e-002,
00506 +3.4000000e+002, +1.4960000e-002, +3.0590000e-002,
00507 +3.6000000e+002, +1.0570000e-002, +2.3420000e-002,
00508 +3.8000000e+002, +7.5690000e-003, +1.8130000e-002,
00509 +4.0000000e+002, +5.4870000e-003, +1.4170000e-002,
00510 +4.2000000e+002, +4.0140000e-003, +1.1160000e-002,
00511 +4.4000000e+002, +2.9670000e-003, +8.8630000e-003,
00512 +4.6000000e+002, +2.2100000e-003, +7.0900000e-003,
00513 +4.8000000e+002, +1.6570000e-003, +5.7070000e-003,
00514 +5.0000000e+002, +1.2510000e-003, +4.6200000e-003,
00515 +5.2000000e+002, +9.4890000e-004, +3.7590000e-003,
00516 +5.4000000e+002, +7.2360000e-004, +3.0740000e-003,
00517 +5.6000000e+002, +5.5430000e-004, +2.5240000e-003,
00518 +5.8000000e+002, +4.2640000e-004, +2.0810000e-003,
00519 +6.0000000e+002, +3.2940000e-004, +1.7220000e-003,
00520 +6.2000000e+002, +2.5550000e-004, +1.4300000e-003,
00521 +6.4000000e+002, +1.9890000e-004, +1.1910000e-003,
00522 +6.6000000e+002, +1.5550000e-004, +9.9500000e-004,
00523 +6.8000000e+002, +1.2210000e-004, +8.3350000e-004,
00524 +7.0000000e+002, +9.6310000e-005, +7.0000000e-004,
00525 +7.2000000e+002, +7.6300000e-005, +5.8930000e-004,
00526 +7.4000000e+002, +6.0740000e-005, +4.9730000e-004,
00527 +7.6000000e+002, +4.8620000e-005, +4.2060000e-004,
00528 +7.8000000e+002, +3.9130000e-005, +3.5640000e-004,
00529 +8.0000000e+002, +3.1690000e-005, +3.0270000e-004,
00530 +8.5000000e+002, +2.0000000e-005, +2.0000000e-004,
00531 +9.0000000e+002, +1.2000000e-005, +1.3500000e-004,
00532 +9.5000000e+002, +7.7000000e-006, +9.3000000e-005,
00533 +1.0000000e+003, +5.1000000e-006, +6.8000000e-005,
00534 +1.1000000e+003, +2.8000000e-006, +3.4000000e-005,
00535 +1.2000000e+003, +1.6800000e-006, +1.7000000e-005,
00536 +1.3000000e+003, +1.1000000e-006, +9.4000000e-006,
00537 +1.4000000e+003, +8.1000000e-007, +5.2000000e-006,
00538 +1.5000000e+003, +6.0000000e-007, +3.2000000e-006,
00539 +1.6000000e+003, +4.5000000e-007, +2.2000000e-006,
00540 +1.7000000e+003, +3.6000000e-007, +1.6000000e-006,
00541 +1.8000000e+003, +2.8000000e-007, +1.2000000e-006,
00542 +1.9000000e+003, +2.2500000e-007, +9.1000000e-007,
00543 +2.0000000e+003, +1.7800000e-007, +7.2000000e-007,
00544 },
00545 {
00546 +1.1000000e+002, +7.8000000e+001, +7.8000000e+001,
00547 +1.2000000e+002, +2.4900000e+001, +2.4900000e+001,
00548 +1.3000000e+002, +7.8320000e+000, +8.1210000e+000,
00549 +1.4000000e+002, +3.7420000e+000, +3.8850000e+000,
00550 +1.5000000e+002, +2.1300000e+000, +2.2200000e+000,
00551 +1.6000000e+002, +1.3400000e+000, +1.4100000e+000,
00552 +1.7000000e+002, +9.0040000e-001, +9.6240000e-001,
00553 +1.8000000e+002, +6.3500000e-001, +6.8890000e-001,
00554 +1.9000000e+002, +4.6120000e-001, +5.1190000e-001,
00555 +2.0000000e+002, +3.4400000e-001, +3.9040000e-001,
00556 +2.1000000e+002, +2.6270000e-001, +3.0640000e-001,
00557 +2.2000000e+002, +2.0400000e-001, +2.4510000e-001,
00558 +2.3000000e+002, +1.5970000e-001, +1.9910000e-001,
00559 +2.4000000e+002, +1.2660000e-001, +1.6380000e-001,
00560 +2.5000000e+002, +1.0140000e-001, +1.3600000e-001,
00561 +2.6000000e+002, +8.1960000e-002, +1.1400000e-001,
00562 +2.7000000e+002, +6.6790000e-002, +9.6270000e-002,
00563 +2.8000000e+002, +5.4820000e-002, +8.1950000e-002,
00564 +2.9000000e+002, +4.5080000e-002, +7.0250000e-002,
00565 +3.0000000e+002, +3.7270000e-002, +6.0530000e-002,
00566 +3.2000000e+002, +2.5860000e-002, +4.5540000e-002,
00567 +3.4000000e+002, +1.8270000e-002, +3.4770000e-002,
00568 +3.6000000e+002, +1.3100000e-002, +2.6890000e-002,
00569 +3.8000000e+002, +9.5190000e-003, +2.1010000e-002,
00570 +4.0000000e+002, +6.9970000e-003, +1.6580000e-002,
00571 +4.2000000e+002, +5.1910000e-003, +1.3170000e-002,
00572 +4.4000000e+002, +3.8890000e-003, +1.0560000e-002,
00573 +4.6000000e+002, +2.9360000e-003, +8.5180000e-003,
00574 +4.8000000e+002, +2.2320000e-003, +6.9150000e-003,
00575 +5.0000000e+002, +1.7080000e-003, +5.6450000e-003,
00576 +5.2000000e+002, +1.3140000e-003, +4.6310000e-003,
00577 +5.4000000e+002, +1.0150000e-003, +3.8180000e-003,
00578 +5.6000000e+002, +7.8850000e-004, +3.1610000e-003,
00579 +5.8000000e+002, +6.1490000e-004, +2.6270000e-003,
00580 +6.0000000e+002, +4.8130000e-004, +2.1920000e-003,
00581 +6.2000000e+002, +3.7820000e-004, +1.8350000e-003,
00582 +6.4000000e+002, +2.9820000e-004, +1.5410000e-003,
00583 +6.6000000e+002, +2.3600000e-004, +1.2980000e-003,
00584 +6.8000000e+002, +1.8740000e-004, +1.0960000e-003,
00585 +7.0000000e+002, +1.4940000e-004, +9.2810000e-004,
00586 +7.2000000e+002, +1.1950000e-004, +7.8780000e-004,
00587 +7.4000000e+002, +9.5950000e-005, +6.7020000e-004,
00588 +7.6000000e+002, +7.7350000e-005, +5.7140000e-004,
00589 +7.8000000e+002, +6.2620000e-005, +4.8810000e-004,
00590 +8.0000000e+002, +5.0920000e-005, +4.1790000e-004,
00591 +8.5000000e+002, +3.1000000e-005, +2.7000000e-004,
00592 +9.0000000e+002, +1.8000000e-005, +1.8000000e-004,
00593 +9.5000000e+002, +1.1500000e-005, +1.3000000e-004,
00594 +1.0000000e+003, +7.6000000e-006, +9.6000000e-005,
00595 +1.1000000e+003, +3.8000000e-006, +5.1000000e-005,
00596 +1.2000000e+003, +2.1000000e-006, +2.5000000e-005,
00597 +1.3000000e+003, +1.3200000e-006, +1.4000000e-005,
00598 +1.4000000e+003, +9.4000000e-007, +8.1000000e-006,
00599 +1.5000000e+003, +7.0000000e-007, +5.0000000e-006,
00600 +1.6000000e+003, +5.2000000e-007, +3.4500000e-006,
00601 +1.7000000e+003, +4.1000000e-007, +2.4000000e-006,
00602 +1.8000000e+003, +3.3000000e-007, +1.6200000e-006,
00603 +1.9000000e+003, +2.6000000e-007, +1.2000000e-006,
00604 +2.0000000e+003, +2.1000000e-007, +9.4000000e-007,
00605 },
00606 {
00607 +1.1000000e+002, +7.8000000e+001, +7.8000000e+001,
00608 +1.2000000e+002, +2.4900000e+001, +2.4900000e+001,
00609 +1.3000000e+002, +7.7170000e+000, +7.9840000e+000,
00610 +1.4000000e+002, +3.7100000e+000, +3.8410000e+000,
00611 +1.5000000e+002, +2.1320000e+000, +2.2150000e+000,
00612 +1.6000000e+002, +1.3550000e+000, +1.4200000e+000,
00613 +1.7000000e+002, +9.2070000e-001, +9.7750000e-001,
00614 +1.8000000e+002, +6.5630000e-001, +7.0520000e-001,
00615 +1.9000000e+002, +4.8310000e-001, +5.2800000e-001,
00616 +2.0000000e+002, +3.6440000e-001, +4.0640000e-001,
00617 +2.1000000e+002, +2.8130000e-001, +3.2010000e-001,
00618 +2.2000000e+002, +2.2100000e-001, +2.5740000e-001,
00619 +2.3000000e+002, +1.7500000e-001, +2.1020000e-001,
00620 +2.4000000e+002, +1.4020000e-001, +1.7370000e-001,
00621 +2.5000000e+002, +1.1350000e-001, +1.4510000e-001,
00622 +2.6000000e+002, +9.2740000e-002, +1.2220000e-001,
00623 +2.7000000e+002, +7.6130000e-002, +1.0380000e-001,
00624 +2.8000000e+002, +6.2790000e-002, +8.8910000e-002,
00625 +2.9000000e+002, +5.2100000e-002, +7.6560000e-002,
00626 +3.0000000e+002, +4.3460000e-002, +6.6250000e-002,
00627 +3.2000000e+002, +3.0670000e-002, +5.0260000e-002,
00628 +3.4000000e+002, +2.2010000e-002, +3.8690000e-002,
00629 +3.6000000e+002, +1.6020000e-002, +3.0150000e-002,
00630 +3.8000000e+002, +1.1810000e-002, +2.3750000e-002,
00631 +4.0000000e+002, +8.8040000e-003, +1.8870000e-002,
00632 +4.2000000e+002, +6.6200000e-003, +1.5110000e-002,
00633 +4.4000000e+002, +5.0250000e-003, +1.2190000e-002,
00634 +4.6000000e+002, +3.8440000e-003, +9.9060000e-003,
00635 +4.8000000e+002, +2.9610000e-003, +8.0910000e-003,
00636 +5.0000000e+002, +2.2950000e-003, +6.6540000e-003,
00637 +5.2000000e+002, +1.7880000e-003, +5.4970000e-003,
00638 +5.4000000e+002, +1.4000000e-003, +4.5610000e-003,
00639 +5.6000000e+002, +1.1020000e-003, +3.8010000e-003,
00640 +5.8000000e+002, +8.7020000e-004, +3.1800000e-003,
00641 +6.0000000e+002, +6.9000000e-004, +2.6710000e-003,
00642 +6.2000000e+002, +5.4910000e-004, +2.2510000e-003,
00643 +6.4000000e+002, +4.3840000e-004, +1.9020000e-003,
00644 +6.6000000e+002, +3.5120000e-004, +1.6130000e-003,
00645 +6.8000000e+002, +2.8220000e-004, +1.3710000e-003,
00646 +7.0000000e+002, +2.2750000e-004, +1.1690000e-003,
00647 +7.2000000e+002, +1.8400000e-004, +9.9840000e-004,
00648 +7.4000000e+002, +1.4920000e-004, +8.5500000e-004,
00649 +7.6000000e+002, +1.2140000e-004, +7.3380000e-004,
00650 +7.8000000e+002, +9.9120000e-005, +6.3100000e-004,
00651 +8.0000000e+002, +8.1190000e-005, +5.4370000e-004,
00652 +8.5000000e+002, +4.4000000e-005, +3.6500000e-004,
00653 +9.0000000e+002, +2.7000000e-005, +2.4000000e-004,
00654 +9.5000000e+002, +1.7000000e-005, +1.7500000e-004,
00655 +1.0000000e+003, +1.1500000e-005, +1.3000000e-004,
00656 +1.1000000e+003, +5.3000000e-006, +7.3000000e-005,
00657 +1.2000000e+003, +2.6500000e-006, +3.8000000e-005,
00658 +1.3000000e+003, +1.5500000e-006, +2.2000000e-005,
00659 +1.4000000e+003, +1.0800000e-006, +1.3500000e-005,
00660 +1.5000000e+003, +8.0000000e-007, +8.4000000e-006,
00661 +1.6000000e+003, +5.8000000e-007, +5.8000000e-006,
00662 +1.7000000e+003, +4.6500000e-007, +3.8000000e-006,
00663 +1.8000000e+003, +3.6500000e-007, +2.4000000e-006,
00664 +1.9000000e+003, +2.9000000e-007, +1.7000000e-006,
00665 +2.0000000e+003, +2.3000000e-007, +1.2500000e-006,
00666 } };
00667
00668
00669 HarrisPriesterDrag::HarrisPriesterDrag()
00670 : workingF107(157.0)
00671 {
00672 init();
00673 }
00674
00675
00676 void HarrisPriesterDrag::init()
00677 {
00678
00679
00680 const int arrayF107[10] = {65, 75, 100, 125, 150, 175, 200, 225, 250, 275};
00681 for(int i = 0; i< 10; i++)
00682 {
00683 int f107 = arrayF107[i];
00684
00685 Matrix<double> hpc(59,3,0.0);
00686 hpc= &hpcoef[i][0];
00687
00688 hpCoeficient[f107] = hpc;
00689 }
00690
00691 }
00692
00693
00694 Matrix<double> HarrisPriesterDrag::getDensityCoeficentsByF107(double f107)
00695 {
00696 map<int, Matrix<double> >::iterator itL,itH;
00697
00698 itL = hpCoeficient.begin();
00699
00700 map<int, Matrix<double> >::iterator it;
00701 for( it = hpCoeficient.begin(); it != hpCoeficient.end(); it++)
00702 {
00703 if( f107 >= it->first ) itL = it;
00704 }
00705
00706 itH = itL;
00707 itH++;
00708
00709 if( itH == hpCoeficient.end() )
00710 {
00711 itH = itL;
00712 itL--;
00713 }
00714
00715 Matrix<double> out(59,3,0.0);
00716 for(int i=0; i<59; i++)
00717 {
00718
00719 out[i][0] = itL->second[i][0];
00720
00721
00722 out[i][1] = itL->second[i][1]
00723 + (itH->second[i][1]-itL->second[i][1])
00724 *(f107-itL->first)/(itH->first-itL->first);
00725
00726
00727 out[i][2] = itL->second[i][2]
00728 + (itH->second[i][2]-itL->second[i][2])
00729 *(f107-itL->first)/(itH->first-itL->first);
00730 }
00731
00732 return out;
00733
00734 }
00735
00736
00737
00738 void HarrisPriesterDrag::test()
00739 {
00740 cout<<"testing HarrisPriesterDrag"<<endl;
00741
00742 IERS::loadSTKFile("InputData\\EOP-v1.1.txt");
00743 ReferenceFrames::setJPLEphFile("InputData\\DE405\\jplde405");
00744
00745 Vector<double> r(3),v(3);
00746 r(0)=-4453783.586;
00747 r(1)=-5038203.756;
00748 r(2)=-426384.456;
00749
00750 v(0) = 3831.888;
00751 v(1) = -2887.221;
00752 v(2) = -6.018232;
00753
00754 EarthBody body;
00755 UTCTime t;
00756 t.setMJD(53157.5);
00757
00758 Spacecraft sc;
00759 sc.setDragArea(20.0);
00760 sc.setDragCoeff(2.2);
00761 sc.setDryMass(1000.0);
00762
00763 Vector<double> rv(6,0.0);
00764 Vector<double> p(0,0);
00765 for(int i=0;i<3;i++)
00766 {
00767 rv(i) = r(i);
00768 rv(i+3) = v(i);
00769 }
00770 sc.initStateVector(rv);
00771
00772 double den = computeDensity(t,body,r,v);
00773 doCompute(t,body,sc);
00774
00775 Vector<double> accl = getAccel();
00776
00777 double ax = accl(0);
00778 double ay = accl(1);
00779 double az = accl(2);
00780
00781 int a = 0;
00782 }
00783
00784 void HarrisPriesterDrag::updateF107(double f107)
00785 {
00786 workingF107 = f107;
00787 workingDens = getDensityCoeficentsByF107(workingF107);
00788 }
00789
00790
00791
00792
00793
00794
00795
00796
00797 double HarrisPriesterDrag::computeDensity( UTCTime utc,
00798 EarthBody& rb,
00799 Vector<double> r,
00800 Vector<double> v)
00801 {
00802 double density = 0.0;
00803
00804
00805 Matrix<double> N = ReferenceFrames::J2kToTODMatrix(utc);
00806
00807
00808
00809
00810
00811
00812
00813
00814
00815
00816
00817
00818
00819
00820
00821 Vector<double> r_tod = N * r;
00822
00823 double rmag = norm(r_tod);
00824
00825
00826 Position pos(r_tod(0), r_tod(1), r_tod(2), Position::Cartesian);
00827 double alt = pos.getAltitude()/1000.0;
00828
00829 if ( alt >= upper_limit || alt <= lower_limit )
00830 {
00831
00832
00833 string msg = "HarrisPriesterDrag is good for 100.0 km t0 2000.0 km"
00834 + string("the altitude you try is ")
00835 + StringUtils::asString(alt) + " km!";
00836
00837 Exception e(msg);
00838
00839
00840 }
00841
00842 Vector<double> r_Sun = ReferenceFrames::getJ2kPosition( utc.asTDB(),
00843 SolarSystem::Sun);
00844
00845
00846
00847 updateF107(averageF107);
00848
00849
00850
00851
00852
00853
00854
00855
00856
00857 double ra_Sun = std::atan2( r_Sun(1), r_Sun(0));
00858 double dec_Sun = std::atan2( r_Sun(2),
00859 std::sqrt(
00860 std::pow(r_Sun(0),2) + std::pow(r_Sun(1),2)
00861 ) );
00862
00863
00864
00865 double c_dec = std::cos(dec_Sun);
00866
00867
00868 Vector<double> u(3,0.0);
00869 u(0) = c_dec * std::cos(ra_Sun + ra_lag);
00870 u(1) = c_dec * std::sin(ra_Sun + ra_lag);
00871 u(2) = std::sin(dec_Sun);
00872
00873
00874
00875 double c_psi2 = (0.5 + 0.5 * dot(r,u)/norm(r));
00876
00877 int ih = 0;
00878
00879
00880 for(int i = 0; i < 59-1; i++)
00881 {
00882 if(alt >= workingDens[i][0] && alt < workingDens[i+1][0])
00883 {
00884 ih = i;
00885 break;
00886 }
00887 }
00888
00889
00890 double h_min = (workingDens[ih][0] - workingDens[ih+1][0])
00891 / std::log(workingDens[ih+1][1] / workingDens[ih][1]);
00892
00893 double h_max = (workingDens[ih][0] - workingDens[ih+1][0])
00894 / std::log(workingDens[ih+1][2]
00895 / workingDens[ih][2]);
00896
00897 double d_min = workingDens[ih][1]*std::exp((workingDens[ih][0]-alt)/h_min);
00898 double d_max = workingDens[ih][2]*std::exp((workingDens[ih][0]-alt)/h_max);
00899
00900
00901
00902
00903 double n_prm = 2.0;
00904 Vector<double> h = cross(r,v);
00905 double inc = std::acos(h(2) / norm(h));
00906 n_prm = 2.0 + inc * 8.0 / ASConstant::PI;
00907
00908
00909 density = d_min + (d_max - d_min) * std::pow(c_psi2,n_prm / 2.0);
00910
00911 return density * 1.0e-9;
00912
00913 }
00914
00915
00916 }
00917
00918
00919