struct tab_rec p_tab = { 0, /* Minimum delta */ 50, /* Delta to switch interpolation direction */ 105, /* Maximum delta */ SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ { { 68, 211, 354, 497, 639, 781, 922, 1063, 1203, 1342, 1480, 1617, 1753, 1887, 2019, 2150, 2280, 2407, 2532, 2655, 2770, 2874, 2975, 3074, 3171, 3268, 3362, 3454, 3545, 3635, 3725, 3813, 3901, 3988, 4075, 4161, 4246, 4330, 4414, 4498, 4581, 4663, 4745, 4827, 4908, 4989, 5068, 5147, 5226, 5303, 5380, 5456, 5532, 5607, 5680, 5754, 5826, 5898, 5968, 6038, 6107, 6175, 6243, 6309, 6375, 6440, 6504, 6568, 6631, 6693, 6754, 6815, 6875, 6934, 6992, 7050, 7107, 7163, 7218, 7273, 7327, 7380, 7432, 7484, 7535, 7585, 7635, 7684, 7732, 7780, 7827, 7873, 7919, 7965, 8011, 8057, 8103, 8148, 8193, 8238, 8284, 8329, 8374, 8418, 8462, 8506 }, { 54, 177, 320, 463, 605, 747, 887, 1028, 1167, 1306, 1444, 1581, 1716, 1850, 1981, 2112, 2241, 2367, 2492, 2615, 2725, 2829, 2929, 3028, 3125, 3222, 3316, 3408, 3499, 3588, 3677, 3766, 3854, 3941, 4027, 4113, 4198, 4282, 4366, 4449, 4532, 4615, 4697, 4779, 4860, 4940, 5020, 5098, 5177, 5254, 5331, 5407, 5482, 5557, 5631, 5704, 5776, 5848, 5918, 5988, 6057, 6125, 6192, 6259, 6324, 6389, 6453, 6516, 6579, 6641, 6702, 6763, 6822, 6882, 6940, 6998, 7055, 7112, 7167, 7222, 7276, 7329, 7381, 7432, 7483, 7533, 7582, 7631, 7679, 7727, 7774, 7821, 7867, 7913, 7958, 8004, 8049, 8095, 8140, 8185, 8231, 8276, 8321, 8365, 8409, 8453 }, { 135, 204, 329, 467, 604, 741, 877, 1016, 1152, 1287, 1422, 1556, 1689, 1821, 1950, 2079, 2205, 2329, 2452, 2565, 2671, 2773, 2872, 2969, 3065, 3162, 3255, 3347, 3438, 3527, 3616, 3704, 3791, 3878, 3964, 4049, 4134, 4218, 4301, 4384, 4467, 4549, 4631, 4713, 4794, 4874, 4953, 5032, 5110, 5187, 5264, 5340, 5415, 5490, 5563, 5636, 5708, 5779, 5849, 5918, 5987, 6055, 6122, 6189, 6254, 6319, 6383, 6446, 6508, 6570, 6631, 6691, 6751, 6809, 6868, 6925, 6982, 7038, 7093, 7148, 7202, 7255, 7307, 7358, 7408, 7458, 7507, 7556, 7604, 7651, 7698, 7745, 7791, 7837, 7882, 7928, 7973, 8019, 8064, 8110, 8155, 8200, 8244, 8288, 8332, 0 }, { 214, 258, 360, 484, 613, 744, 876, 1010, 1143, 1275, 1406, 1537, 1667, 1796, 1923, 2049, 2173, 2295, 2411, 2516, 2619, 2719, 2817, 2914, 3010, 3104, 3197, 3288, 3379, 3468, 3557, 3645, 3732, 3818, 3903, 3988, 4072, 4156, 4240, 4323, 4405, 4487, 4569, 4650, 4730, 4810, 4889, 4967, 5045, 5122, 5198, 5274, 5349, 5423, 5496, 5569, 5641, 5711, 5781, 5851, 5919, 5987, 6054, 6120, 6185, 6250, 6314, 6377, 6439, 6500, 6561, 6621, 6680, 6739, 6797, 6854, 6910, 6966, 7021, 7075, 7129, 7182, 7234, 7285, 7335, 7385, 7434, 7482, 7530, 7577, 7624, 7671, 7717, 7763, 7808, 7854, 7899, 7945, 7990, 8036, 8081, 8126, 8170, 8214, 8258, 0 }, { 291, 323, 406, 513, 632, 756, 883, 1011, 1140, 1269, 1397, 1525, 1651, 1776, 1900, 2023, 2144, 2260, 2365, 2467, 2569, 2668, 2765, 2862, 2956, 3049, 3141, 3232, 3322, 3411, 3499, 3586, 3673, 3759, 3844, 3929, 4013, 4097, 4180, 4263, 4345, 4427, 4508, 4589, 4669, 4748, 4827, 4904, 4982, 5058, 5134, 5209, 5283, 5357, 5430, 5502, 5573, 5644, 5714, 5783, 5851, 5918, 5985, 6051, 6116, 6180, 6244, 6307, 6369, 6430, 6491, 6551, 6611, 6670, 6728, 6785, 6841, 6896, 6951, 7005, 7058, 7111, 7162, 7214, 7264, 7314, 7363, 7411, 7458, 7505, 7552, 7598, 7645, 7691, 7736, 7782, 7827, 7873, 7918, 7964, 8009, 8054, 8098, 8142, 8186, 0 }, { 366, 391, 458, 552, 660, 775, 895, 1018, 1142, 1266, 1390, 1514, 1638, 1760, 1881, 2001, 2113, 2219, 2322, 2423, 2522, 2620, 2717, 2812, 2905, 2996, 3087, 3178, 3268, 3356, 3444, 3531, 3617, 3703, 3788, 3872, 3956, 4040, 4123, 4205, 4287, 4369, 4450, 4530, 4610, 4689, 4767, 4845, 4922, 4998, 5073, 5147, 5221, 5294, 5366, 5438, 5509, 5579, 5649, 5718, 5786, 5853, 5919, 5984, 6049, 6113, 6176, 6239, 6301, 6362, 6423, 6483, 6543, 6602, 6660, 6717, 6773, 6828, 6883, 6936, 6989, 7041, 7093, 7144, 7194, 7244, 7293, 7341, 7388, 7435, 7482, 7528, 7575, 7621, 7666, 7712, 7757, 7803, 7848, 7894, 7939, 7984, 8028, 8072, 8116, 0 }, { 439, 459, 516, 597, 694, 801, 914, 1031, 1149, 1268, 1388, 1508, 1628, 1747, 1863, 1970, 2076, 2180, 2281, 2381, 2479, 2576, 2672, 2765, 2857, 2947, 3038, 3128, 3217, 3305, 3392, 3478, 3564, 3649, 3734, 3818, 3902, 3985, 4068, 4150, 4232, 4313, 4394, 4474, 4554, 4633, 4711, 4788, 4865, 4941, 5016, 5090, 5164, 5237, 5309, 5380, 5451, 5520, 5589, 5658, 5725, 5791, 5857, 5922, 5986, 6050, 6113, 6176, 6237, 6298, 6359, 6419, 6478, 6537, 6595, 6652, 6708, 6763, 6817, 6870, 6923, 6975, 7027, 7077, 7128, 7177, 7225, 7273, 7321, 7367, 7414, 7460, 7507, 7553, 7598, 7644, 7690, 7735, 7780, 7826, 7871, 7915, 7959, 8003, 0, 0 }, { 511, 527, 576, 646, 734, 833, 937, 1048, 1161, 1275, 1390, 1506, 1618, 1729, 1836, 1940, 2041, 2142, 2243, 2341, 2438, 2534, 2629, 2720, 2811, 2901, 2991, 3080, 3168, 3255, 3342, 3428, 3514, 3599, 3684, 3768, 3852, 3935, 4017, 4099, 4181, 4262, 4342, 4422, 4501, 4580, 4658, 4735, 4811, 4887, 4962, 5036, 5110, 5183, 5255, 5326, 5396, 5465, 5533, 5600, 5667, 5733, 5799, 5864, 5928, 5992, 6055, 6117, 6178, 6239, 6299, 6358, 6417, 6475, 6532, 6588, 6644, 6699, 6753, 6806, 6859, 6911, 6962, 7013, 7063, 7112, 7160, 7208, 7255, 7302, 7348, 7394, 7441, 7487, 7532, 7578, 7624, 7669, 7715, 7760, 7804, 7848, 7892, 7936, 0, 0 }, { 580, 593, 634, 697, 775, 865, 963, 1065, 1171, 1279, 1386, 1493, 1599, 1705, 1809, 1911, 2012, 2112, 2211, 2308, 2403, 2497, 2590, 2681, 2771, 2861, 2950, 3039, 3126, 3214, 3300, 3386, 3471, 3555, 3639, 3723, 3806, 3889, 3971, 4053, 4134, 4215, 4295, 4374, 4453, 4531, 4608, 4685, 4761, 4836, 4911, 4985, 5058, 5130, 5201, 5272, 5342, 5410, 5478, 5545, 5612, 5678, 5744, 5809, 5873, 5936, 5998, 6060, 6121, 6181, 6241, 6300, 6358, 6416, 6473, 6529, 6584, 6639, 6693, 6746, 6798, 6850, 6901, 6951, 7001, 7050, 7098, 7146, 7193, 7240, 7286, 7332, 7378, 7424, 7470, 7515, 7560, 7606, 7651, 7696, 7741, 7785, 7829, 7873, 0, 0 }, { 645, 657, 692, 748, 817, 899, 989, 1084, 1183, 1284, 1386, 1488, 1589, 1691, 1792, 1892, 1990, 2087, 2184, 2279, 2373, 2465, 2557, 2647, 2737, 2826, 2914, 3002, 3090, 3176, 3262, 3347, 3432, 3516, 3600, 3683, 3766, 3848, 3929, 4010, 4091, 4171, 4251, 4330, 4408, 4486, 4563, 4639, 4715, 4790, 4864, 4937, 5010, 5081, 5152, 5222, 5291, 5360, 5428, 5495, 5561, 5627, 5692, 5756, 5820, 5883, 5945, 6007, 6068, 6128, 6187, 6246, 6304, 6361, 6417, 6473, 6528, 6582, 6636, 6689, 6741, 6793, 6843, 6894, 6943, 6992, 7040, 7087, 7134, 7181, 7227, 7273, 7319, 7365, 7411, 7456, 7501, 7547, 7592, 7637, 7682, 7726, 7770, 7814, 0, 0 }, { 708, 718, 748, 798, 862, 935, 1018, 1106, 1198, 1293, 1389, 1487, 1586, 1685, 1782, 1879, 1975, 2069, 2163, 2256, 2348, 2439, 2530, 2619, 2708, 2796, 2884, 2971, 3057, 3143, 3228, 3313, 3397, 3481, 3564, 3647, 3729, 3811, 3893, 3974, 4054, 4134, 4213, 4291, 4369, 4446, 4522, 4598, 4673, 4748, 4821, 4894, 4965, 5036, 5106, 5176, 5245, 5313, 5381, 5448, 5514, 5579, 5644, 5708, 5771, 5834, 5896, 5957, 6017, 6077, 6136, 6194, 6252, 6309, 6365, 6421, 6476, 6530, 6583, 6636, 6688, 6739, 6790, 6840, 6889, 6938, 6986, 7033, 7080, 7127, 7173, 7219, 7264, 7310, 7355, 7400, 7445, 7490, 7535, 7580, 7626, 7670, 7714, 0, 0, 0 }, { 768, 777, 803, 847, 906, 973, 1048, 1131, 1217, 1307, 1399, 1491, 1586, 1681, 1776, 1871, 1964, 2055, 2147, 2238, 2328, 2418, 2508, 2596, 2684, 2771, 2858, 2944, 3029, 3114, 3199, 3283, 3367, 3450, 3533, 3615, 3697, 3779, 3860, 3940, 4020, 4099, 4178, 4255, 4333, 4409, 4485, 4560, 4634, 4708, 4781, 4853, 4924, 4995, 5065, 5134, 5202, 5270, 5337, 5403, 5469, 5534, 5598, 5662, 5725, 5787, 5849, 5909, 5970, 6029, 6088, 6146, 6203, 6260, 6316, 6371, 6426, 6479, 6533, 6585, 6637, 6688, 6739, 6788, 6838, 6886, 6933, 6980, 7027, 7073, 7119, 7165, 7211, 7257, 7303, 7348, 7393, 7438, 7483, 7528, 7573, 7617, 7661, 0, 0, 0 }, { 828, 836, 859, 898, 951, 1014, 1082, 1159, 1240, 1325, 1412, 1500, 1590, 1681, 1772, 1864, 1955, 2045, 2135, 2225, 2313, 2402, 2490, 2577, 2664, 2750, 2836, 2921, 3006, 3090, 3174, 3257, 3341, 3423, 3505, 3587, 3668, 3749, 3830, 3910, 3989, 4067, 4145, 4222, 4298, 4374, 4449, 4524, 4598, 4671, 4744, 4816, 4886, 4956, 5026, 5094, 5162, 5229, 5295, 5361, 5426, 5490, 5554, 5618, 5680, 5742, 5803, 5864, 5924, 5983, 6042, 6100, 6157, 6213, 6268, 6323, 6377, 6431, 6483, 6536, 6587, 6638, 6688, 6737, 6786, 6834, 6881, 6928, 6975, 7021, 7067, 7113, 7159, 7205, 7251, 7296, 7341, 7386, 7431, 7476, 7521, 7565, 7609, 0, 0, 0 }, { 888, 895, 915, 949, 997, 1054, 1119, 1189, 1265, 1345, 1427, 1512, 1598, 1685, 1773, 1862, 1951, 2040, 2128, 2216, 2303, 2390, 2477, 2563, 2649, 2734, 2819, 2903, 2987, 3071, 3154, 3237, 3319, 3401, 3482, 3563, 3644, 3724, 3804, 3883, 3961, 4038, 4115, 4191, 4267, 4342, 4417, 4491, 4564, 4637, 4709, 4780, 4850, 4919, 4988, 5056, 5123, 5190, 5256, 5321, 5386, 5450, 5514, 5576, 5639, 5700, 5761, 5821, 5880, 5939, 5997, 6054, 6111, 6166, 6222, 6276, 6330, 6383, 6435, 6487, 6538, 6588, 6638, 6687, 6736, 6784, 6831, 6878, 6924, 6970, 7016, 7062, 7108, 7153, 7199, 7244, 7289, 7335, 7380, 7425, 7470, 7514, 7558, 0, 0, 0 } } }; struct tab_rec pkp_tab = { PKP_MIN_DELTA, /* Minimum delta */ 150, /* Delta to switch interpolation direction */ 180, /* Maximum delta */ SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ { { 0, 0, 0, 0,11132,11152,11171,11191,11211,11230,11250, 11269,11288,11308,11327,11347,11366,11385,11405,11424,11443,11462, 11482,11501,11520,11539,11558,11577,11595,11614,11632,11650,11669, 11687,11705,11723,11740,11757,11774,11792,11809,11826,11842,11858, 11874,11889,11904,11918,11932,11945,11958,11972,11985,11997,12008, 12018,12028,12038,12048,12058,12067,12074,12080,12086,12092,12098, 12104,12109,12112,12115,12118,12120,12121,12122,12122 }, { 0, 0, 0, 0,11078,11098,11118,11137,11157,11177,11196, 11215,11234,11254,11274,11293,11312,11332,11351,11370,11389,11409, 11428,11447,11466,11485,11504,11523,11542,11560,11578,11597,11615, 11633,11651,11669,11686,11703,11720,11738,11755,11772,11788,11804, 11820,11835,11850,11864,11878,11891,11904,11918,11931,11943,11954, 11964,11974,11984,11994,12004,12013,12020,12026,12032,12038,12044, 12050,12055,12058,12061,12064,12066,12067,12068,12068 }, { 0, 0, 0, 0,10998,11018,11037,11057,11077,11097,11116, 11135,11154,11174,11193,11213,11232,11251,11271,11290,11309,11328, 11348,11367,11386,11405,11424,11443,11461,11480,11498,11516,11535, 11553,11571,11589,11606,11623,11640,11658,11675,11692,11708,11724, 11740,11755,11770,11784,11797,11811,11824,11837,11850,11862,11873, 11883,11893,11903,11913,11923,11932,11939,11945,11951,11957,11963, 11969,11974,11977,11980,11983,11985,11986,11987,11987 }, { 0, 0, 0, 0,10920,10940,10959,10979,10999,11019,11038, 11057,11076,11096,11115,11135,11154,11173,11193,11212,11231,11250, 11270,11289,11308,11327,11346,11365,11383,11402,11420,11438,11457, 11475,11493,11511,11528,11545,11562,11580,11597,11613,11630,11646, 11661,11676,11691,11705,11719,11732,11745,11759,11772,11784,11795, 11805,11815,11825,11835,11845,11853,11860,11867,11873,11879,11885, 11890,11895,11898,11901,11904,11906,11907,11908,11908 }, { 0, 0, 0, 0,10844,10864,10883,10903,10923,10942,10962, 10981,11000,11020,11039,11059,11078,11097,11117,11136,11155,11174, 11194,11213,11232,11251,11270,11289,11307,11325,11344,11362,11380, 11399,11417,11434,11451,11468,11486,11503,11520,11537,11553,11569, 11585,11600,11615,11629,11642,11655,11669,11682,11695,11707,11718, 11728,11738,11748,11758,11768,11776,11783,11789,11795,11801,11807, 11813,11818,11821,11824,11827,11829,11830,11831,11831 }, { 0, 0, 0, 0,10770,10790,10809,10829,10849,10868,10888, 10907,10926,10946,10965,10985,11004,11023,11043,11062,11081,11100, 11120,11139,11158,11177,11196,11214,11233,11251,11269,11288,11306, 11324,11342,11360,11377,11394,11411,11429,11446,11465,11479,11495, 11510,11525,11540,11554,11568,11581,11594,11608,11621,11632,11643, 11653,11663,11673,11683,11693,11701,11709,11715,11721,11727,11733, 11738,11743,11746,11749,11752,11754,11755,11756,11756 }, { 0, 0, 0, 0,10698,10717,10737,10757,10777,10796,10815, 10835,10854,10873,10893,10912,10932,10951,10970,10990,11009,11028, 11047,11067,11086,11105,11123,11142,11161,11179,11197,11216,11234, 11252,11270,11288,11305,11322,11339,11357,11374,11390,11406,11422, 11438,11453,11468,11482,11495,11508,11522,11535,11548,11560,11570, 11580,11590,11600,11610,11620,11629,11636,11642,11648,11654,11660, 11665,11670,11673,11676,11679,11681,11682,11683,11683 }, { 0, 0, 0,10608,10627,10647,10666,10686,10706,10725,10745, 10764,10783,10803,10822,10842,10861,10880,10900,10919,10938,10957, 10977,10996,11015,11034,11053,11071,11090,11108,11126,11145,11163, 11181,11199,11217,11234,11251,11268,11285,11302,11319,11335,11351, 11367,11382,11396,11410,11424,11437,11450,11463,11476,11488,11499, 11509,11519,11529,11539,11548,11557,11564,11570,11576,11582,11588, 11593,11598,11602,11605,11607,11609,11610,11611,11611 }, { 0, 0, 0,10540,10559,10579,10599,10618,10638,10658,10677, 10696,10716,10735,10755,10774,10793,10813,10832,10851,10870,10889, 10909,10928,10947,10966,10985,11003,11022,11040,11059,11077,11095, 11113,11131,11149,11166,11183,11200,11218,11235,11251,11267,11283, 11299,11314,11328,11342,11355,11369,11382,11395,11408,11420,11430, 11440,11450,11460,11470,11480,11488,11495,11501,11507,11513,11519, 11525,11529,11533,11536,11538,11540,11541,11542,11542 }, { 0, 0, 0,10476,10495,10515,10534,10554,10574,10593,10612, 10632,10651,10671,10690,10709,10729,10748,10767,10786,10806,10825, 10844,10864,10883,10902,10920,10939,10957,10976,10994,11012,11031, 11049,11067,11084,11101,11118,11135,11153,11170,11186,11202,11218, 11234,11249,11263,11277,11290,11304,11317,11330,11343,11354,11366, 11375,11385,11395,11405,11414,11423,11430,11436,11442,11448,11454, 11459,11464,11467,11470,11473,11475,11476,11477,11477 }, { 0, 0, 0,10414,10434,10453,10473,10493,10512,10532,10551, 10570,10590,10609,10629,10648,10667,10687,10706,10725,10744,10764, 10783,10802,10821,10840,10859,10877,10896,10914,10932,10951,10969, 10987,11005,11022,11039,11057,11074,11091,11108,11125,11141,11156, 11172,11187,11201,11215,11228,11242,11255,11268,11281,11292,11303, 11313,11323,11333,11343,11352,11360,11367,11373,11379,11385,11391, 11397,11401,11405,11408,11410,11412,11413,11414,11414 }, { 0, 0, 0,10355,10375,10395,10414,10434,10454,10473,10492, 10512,10531,10551,10570,10589,10609,10628,10647,10666,10685,10705, 10724,10743,10762,10781,10800,10819,10837,10855,10873,10892,10910, 10928,10946,10963,10980,10997,11015,11032,11049,11065,11081,11097, 11112,11127,11141,11155,11169,11182,11195,11208,11221,11232,11243, 11253,11263,11273,11283,11294,11300,11307,11313,11319,11325,11331, 11337,11341,11344,11347,11350,11352,11353,11354,11354 }, { 0, 0, 0,10297,10316,10336,10356,10375,10395,10414,10434, 10453,10472,10492,10511,10531,10550,10569,10588,10608,10627,10646, 10665,10684,10703,10724,10741,10760,10778,10796,10815,10833,10851, 10869,10887,10904,10921,10938,10956,10973,10990,11006,11022,11038, 11053,11068,11082,11096,11109,11123,11136,11149,11161,11173,11183, 11193,11203,11213,11223,11232,11240,11247,11253,11259,11265,11271, 11277,11281,11284,11287,11290,11292,11293,11294,11294 }, { 0, 0, 0,10239,10258,10278,10298,10317,10337,10356,10375, 10395,10414,10434,10453,10472,10492,10511,10530,10549,10569,10588, 10607,10626,10645,10664,10683,10701,10720,10738,10756,10775,10793, 10811,10829,10846,10863,10880,10898,10915,10931,10948,10964,10979, 10994,11009,11023,11037,11050,11064,11077,11090,11102,11114,11124, 11134,11144,11154,11164,11173,11181,11188,11194,11199,11205,11211, 11217,11221,11225,11228,11230,11232,11233,11234,11234 } } }; struct tab_rec s_tab = { 0, /* Minimum delta */ 50, /* Delta to switch interpolation direction */ S_MAX_DELTA, /* Maximum delta */ SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ { { 107, 361, 615, 869, 1122, 1375, 1626, 1876, 2126, 2375, 2622, 2867, 3111, 3353, 3592, 3829, 4064, 4295, 4523, 4749, 4971, 5174, 5362, 5544, 5719, 5889, 6056, 6221, 6382, 6543, 6702, 6860, 7016, 7172, 7327, 7482, 7637, 7790, 7943, 8094, 8245, 8394, 8542, 8689, 8834, 8979, 9122, 9265, 9406, 9547, 9686, 9824, 9962,10098,10234, 10368,10502,10634,10766,10897,11026,11154,11281,11407,11532,11655, 11778,11899,12019,12138,12256,12373,12488,12602,12714,12826,12936, 13045,13153,13260,13365,13469,13572,13674,13774,13873,13970,14066, 14160,14253,14345,14434,14523,14610,14697,14782,14867,14952,15036, 15120,15204,15288,15371,15455,15538,15621,15704,15787 }, { 92, 308, 561, 815, 1069, 1321, 1572, 1821, 2070, 2319, 2566, 2810, 3053, 3294, 3533, 3769, 4002, 4233, 4460, 4685, 4906, 5100, 5287, 5468, 5643, 5813, 5978, 6142, 6303, 6463, 6622, 6779, 6936, 7092, 7247, 7402, 7556, 7710, 7862, 8014, 8164, 8313, 8461, 8607, 8753, 8897, 9040, 9182, 9324, 9464, 9603, 9741, 9879,10015,10151, 10285,10419,10551,10682,10813,10942,11070,11197,11322,11447,11570, 11692,11813,11933,12052,12170,12286,12402,12516,12628,12740,12850, 12959,13067,13173,13278,13382,13485,13586,13686,13785,13882,13978, 14072,14165,14257,14346,14434,14522,14608,14693,14778,14863,14947, 15031,15115,15199,15282,15366,15449,15532,15615,15698 }, { 236, 358, 572, 818, 1064, 1311, 1557, 1802, 2047, 2291, 2532, 2772, 3011, 3248, 3483, 3718, 3946, 4173, 4394, 4614, 4816, 5005, 5187, 5363, 5535, 5703, 5869, 6032, 6194, 6353, 6511, 6668, 6825, 6980, 7135, 7289, 7443, 7595, 7747, 7898, 8048, 8196, 8344, 8490, 8635, 8779, 8922, 9064, 9204, 9344, 9483, 9621, 9758, 9894,10029, 10163,10296,10428,10559,10689,10818,10946,11072,11198,11322,11445, 11567,11688,11808,11927,12044,12159,12274,12387,12498,12609,12719, 12828,12935,13042,13147,13251,13353,13454,13554,13652,13749,13844, 13938,14031,14122,14211,14299,14386,14472,14557,14642,14727,14811, 14895,14979,15063,15146,15230,15313,15396,15478,15562 }, { 377, 457, 638, 855, 1085, 1319, 1557, 1796, 2035, 2272, 2508, 2743, 2977, 3210, 3440, 3668, 3894, 4117, 4336, 4540, 4727, 4913, 5091, 5263, 5432, 5600, 5765, 5927, 6088, 6247, 6404, 6561, 6717, 6873, 7027, 7181, 7334, 7486, 7638, 7788, 7937, 8085, 8231, 8377, 8522, 8665, 8807, 8949, 9089, 9229, 9367, 9505, 9641, 9777, 9911, 10045,10178,10309,10440,10570,10698,10825,10951,11076,11200,11323, 11445,11565,11684,11802,11919,12034,12148,12261,12373,12483,12593, 12701,12808,12914,13019,13122,13224,13325,13424,13522,13618,13713, 13807,13899,13990,14079,14167,14254,14340,14425,14510,14595,14679, 14762,14846,14930,15013,15097,15180,15263,15346, 0 }, { 515, 574, 719, 911, 1122, 1344, 1571, 1801, 2032, 2262, 2492, 2723, 2952, 3179, 3403, 3626, 3848, 4065, 4267, 4458, 4643, 4823, 4998, 5168, 5336, 5501, 5663, 5825, 5985, 6144, 6301, 6458, 6613, 6768, 6923, 7076, 7229, 7381, 7531, 7681, 7830, 7977, 8123, 8268, 8412, 8555, 8697, 8838, 8979, 9118, 9256, 9393, 9529, 9664, 9798, 9931,10063,10195,10325,10455,10583,10710,10835,10960,11083,11205, 11326,11447,11566,11683,11800,11915,12029,12141,12252,12362,12471, 12579,12685,12791,12895,12998,13099,13200,13299,13396,13492,13586, 13680,13771,13862,13951,14038,14125,14211,14296,14381,14466,14550, 14633,14717,14801,14884,14968,15051,15133,15217, 0 }, { 651, 697, 815, 982, 1175, 1382, 1597, 1817, 2039, 2262, 2486, 2710, 2933, 3154, 3373, 3591, 3806, 4002, 4193, 4380, 4561, 4737, 4909, 5078, 5244, 5407, 5568, 5728, 5887, 6045, 6202, 6358, 6513, 6668, 6822, 6975, 7127, 7279, 7429, 7579, 7727, 7874, 8019, 8164, 8308, 8450, 8592, 8732, 8872, 9010, 9148, 9285, 9420, 9555, 9688, 9821, 9953,10084,10214,10343,10471,10597,10722,10846,10969,11091, 11212,11332,11450,11568,11684,11799,11912,12024,12134,12244,12353, 12460,12566,12671,12775,12877,12978,13078,13176,13273,13368,13463, 13555,13647,13737,13825,13913,13999,14085,14170,14255,14339,14424, 14507,14591,14674,14758,14841,14924,15007,15090, 0 }, { 783, 819, 920, 1065, 1239, 1430, 1632, 1841, 2054, 2269, 2486, 2702, 2918, 3134, 3350, 3552, 3745, 3935, 4123, 4306, 4483, 4655, 4825, 4991, 5156, 5318, 5478, 5637, 5795, 5952, 6109, 6265, 6420, 6574, 6727, 6880, 7032, 7182, 7332, 7480, 7628, 7774, 7919, 8063, 8206, 8348, 8489, 8629, 8769, 8907, 9044, 9180, 9315, 9450, 9583, 9715, 9846, 9977,10106,10235,10362,10488,10613,10736,10859,10980, 11101,11220,11338,11455,11571,11685,11798,11910,12020,12129,12237, 12344,12450,12555,12658,12760,12860,12960,13057,13154,13249,13343, 13435,13526,13616,13704,13791,13878,13963,14048,14133,14217,14302, 14385,14469,14553,14636,14719,14802,14885, 0, 0 }, { 912, 942, 1028, 1155, 1311, 1486, 1674, 1875, 2077, 2283, 2491, 2700, 2909, 3110, 3308, 3501, 3690, 3876, 4058, 4235, 4408, 4578, 4745, 4910, 5072, 5233, 5393, 5551, 5708, 5864, 6020, 6175, 6330, 6484, 6637, 6789, 6940, 7090, 7239, 7387, 7534, 7680, 7824, 7967, 8110, 8251, 8391, 8531, 8669, 8806, 8943, 9079, 9214, 9348, 9481, 9613, 9744, 9874,10003,10130,10257,10382,10507,10630,10752,10873, 10993,11112,11229,11346,11461,11575,11687,11798,11908,12017,12125, 12231,12337,12441,12544,12646,12746,12846,12944,13040,13135,13228, 13320,13411,13500,13588,13675,13761,13846,13931,14016,14100,14184, 14268,14351,14434,14518,14601,14684,14767, 0, 0 }, { 1036, 1063, 1136, 1248, 1388, 1549, 1724, 1909, 2100, 2294, 2490, 2687, 2883, 3076, 3267, 3456, 3640, 3821, 3997, 4170, 4340, 4508, 4673, 4836, 4997, 5157, 5316, 5473, 5629, 5785, 5940, 6095, 6249, 6403, 6556, 6708, 6858, 7008, 7156, 7303, 7449, 7594, 7737, 7880, 8021, 8162, 8302, 8441, 8579, 8716, 8852, 8987, 9122, 9255, 9388, 9519, 9649, 9779, 9907,10034,10160,10285,10409,10531,10653,10773, 10892,11011,11128,11243,11358,11471,11583,11694,11804,11912,12019, 12126,12231,12334,12437,12538,12638,12737,12834,12930,13024,13117, 13209,13299,13388,13476,13562,13648,13733,13818,13903,13987,14071, 14155,14239,14322,14405,14488,14571,14654, 0, 0 }, { 1155, 1176, 1241, 1340, 1466, 1612, 1774, 1946, 2125, 2308, 2494, 2681, 2868, 3052, 3236, 3419, 3598, 3774, 3945, 4115, 4282, 4448, 4611, 4772, 4932, 5090, 5248, 5404, 5560, 5715, 5870, 6025, 6178, 6332, 6484, 6635, 6784, 6933, 7080, 7226, 7371, 7515, 7658, 7800, 7941, 8081, 8220, 8359, 8496, 8632, 8768, 8903, 9037, 9169, 9301, 9432, 9562, 9690, 9818, 9945,10070,10194,10317,10439,10560,10680, 10799,10916,11033,11148,11262,11375,11486,11596,11705,11813,11920, 12026,12130,12234,12336,12437,12536,12634,12731,12826,12920,13012, 13103,13193,13282,13369,13456,13542,13627,13711,13795,13879,13963, 14047,14130,14214,14297,14380,14463,14546, 0, 0 }, { 1269, 1289, 1344, 1432, 1546, 1678, 1827, 1987, 2156, 2329, 2505, 2683, 2860, 3037, 3215, 3391, 3564, 3735, 3903, 4070, 4235, 4397, 4559, 4718, 4876, 5033, 5190, 5345, 5501, 5655, 5810, 5964, 6116, 6268, 6419, 6569, 6718, 6865, 7011, 7157, 7301, 7444, 7586, 7727, 7868, 8007, 8146, 8284, 8421, 8557, 8692, 8826, 8959, 9091, 9222, 9352, 9481, 9609, 9736, 9862, 9987,10111,10233,10355,10475,10594, 10712,10829,10944,11059,11172,11284,11395,11505,11614,11722,11829, 11934,12038,12141,12242,12342,12440,12538,12633,12728,12821,12913, 13004,13093,13182,13269,13355,13441,13526,13610,13694,13778,13861, 13945,14029,14112,14195,14278,14361, 0, 0, 0 }, { 1379, 1396, 1446, 1524, 1626, 1748, 1883, 2031, 2188, 2352, 2519, 2689, 2859, 3030, 3201, 3370, 3537, 3704, 3869, 4032, 4194, 4356, 4515, 4672, 4829, 4985, 5141, 5296, 5451, 5605, 5759, 5911, 6063, 6214, 6363, 6512, 6659, 6806, 6951, 7096, 7239, 7381, 7523, 7663, 7802, 7941, 8079, 8216, 8352, 8488, 8622, 8755, 8887, 9019, 9149, 9278, 9406, 9534, 9660, 9786, 9910,10033,10155,10275,10395,10513, 10630,10746,10861,10975,11088,11200,11311,11420,11529,11636,11742, 11846,11949,12051,12152,12251,12350,12446,12542,12636,12728,12819, 12909,12998,13086,13173,13259,13344,13429,13513,13597,13681,13764, 13848,13932,14015,14098,14181,14264, 0, 0, 0 }, { 1486, 1502, 1546, 1616, 1709, 1820, 1946, 2082, 2228, 2381, 2538, 2700, 2864, 3028, 3193, 3357, 3519, 3682, 3844, 4004, 4163, 4322, 4480, 4636, 4791, 4947, 5102, 5256, 5410, 5563, 5716, 5867, 6017, 6167, 6315, 6462, 6608, 6754, 6898, 7042, 7184, 7325, 7466, 7606, 7744, 7882, 8019, 8155, 8290, 8425, 8558, 8690, 8822, 8952, 9082, 9210, 9337, 9464, 9589, 9714, 9837, 9959,10080,10200,10319,10437, 10553,10669,10783,10896,11008,11119,11229,11337,11445,11551,11656, 11761,11864,11966,12066,12165,12262,12359,12453,12547,12639,12730, 12819,12908,12995,13081,13167,13252,13336,13420,13504,13587,13671, 13755,13839,13922,14005,14088, 0, 0, 0, 0 }, { 1590, 1604, 1644, 1707, 1791, 1894, 2009, 2134, 2269, 2414, 2565, 2719, 2875, 3033, 3192, 3351, 3510, 3669, 3827, 3985, 4141, 4297, 4453, 4608, 4763, 4918, 5072, 5225, 5378, 5529, 5680, 5830, 5979, 6127, 6274, 6420, 6565, 6709, 6852, 6994, 7135, 7276, 7415, 7554, 7692, 7829, 7965, 8100, 8234, 8368, 8500, 8632, 8762, 8892, 9020, 9148, 9274, 9400, 9524, 9647, 9769, 9890,10011,10130,10248,10365, 10481,10595,10709,10821,10932,11042,11151,11259,11365,11471,11576, 11679,11782,11883,11983,12081,12179,12274,12369,12462,12553,12644, 12733,12821,12908,12994,13079,13164,13248,13332,13416,13499,13583, 13667,13751,13834,13917,14000, 0, 0, 0, 0 }, } }; struct tab_rec sks_tab = { SKS_MIN_DELTA, /* Minimum delta */ 112, /* Delta to switch interpolation direction */ 180, /* Maximum delta */ SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ { { 12137,12212,12287,12362,12437,12511,12586,12660,12734,12808,12882, 12955,13029,13102,13175,13248,13320,13391,13463,13534,13604,13673, 13741,13808,13875,13941,14005,14067,14128,14187,14244,14301,14356, 14411,14465,14518,14570,14621,14670,14719,14767,14814,14860,14905, 14950,14994,15037,15080,15122,15163,15203,15243,15282,15320,15357, 15394,15430,15465,15500,15533,15566,15598,15629,15659,15689,15718, 15746,15773,15799,15824,15849,15873,15891,15908,15925,15942,15959, 15975,15991,16008,16024,16039,16054,16069,16083,16097,16111,16125, 16138,16151,16163,16175,16186,16197,16207,16217,16227,16237,16247, 16256,16264,16271,16278,16285,16292,16298,16304,16310,16315,16319, 16323,16326,16329,16331,16333,16334,16334,16335,16335 }, { 12047,12122,12197,12272,12347,12421,12496,12570,12644,12718,12792, 12865,12939,13012,13085,13158,13230,13301,13373,13444,13514,13583, 13651,13718,13785,13851,13914,13976,14037,14096,14153,14210,14265, 14320,14374,14427,14479,14530,14579,14628,14676,14723,14769,14814, 14859,14903,14946,14989,15031,15072,15112,15152,15191,15228,15265, 15302,15338,15373,15408,15441,15474,15506,15537,15567,15597,15626, 15654,15681,15707,15732,15757,15782,15799,15816,15833,15850,15867, 15883,15899,15916,15932,15947,15962,15977,15991,16005,16019,16033, 16046,16059,16071,16083,16094,16105,16115,16125,16135,16145,16155, 16164,16172,16179,16186,16193,16200,16206,16212,16218,16223,16227, 16231,16234,16237,16239,16241,16242,16242,16243,16243 }, { 11910,11985,12060,12135,12210,12284,12359,12433,12507,12581,12655, 12728,12802,12875,12948,13021,13093,13164,13235,13306,13375,13444, 13512,13579,13646,13712,13776,13837,13898,13957,14014,14071,14126, 14180,14234,14287,14339,14390,14439,14487,14535,14582,14628,14673, 14718,14762,14805,14848,14889,14930,14970,15010,15049,15086,15123, 15160,15196,15231,15265,15298,15331,15363,15394,15424,15454,15483, 15511,15538,15564,15591,15614,15638,15656,15673,15690,15707,15724, 15740,15756,15773,15789,15804,15819,15834,15848,15862,15876,15890, 15903,15916,15928,15940,15951,15962,15972,15982,15992,16002,16012, 16021,16029,16036,16043,16050,16057,16063,16069,16075,16080,16084, 16088,16091,16094,16096,16098,16099,16099,16100,16099 }, { 11776,11851,11926,12001,12076,12150,12225,12299,12373,12447,12521, 12594,12668,12741,12814,12887,12959,13030,13100,13171,13240,13309, 13376,13443,13510,13575,13639,13700,13761,13820,13877,13933,13988, 14043,14097,14149,14201,14251,14300,14349,14397,14443,14489,14534, 14579,14621,14666,14709,14750,14791,14831,14871,14910,14946,14983, 15020,15056,15091,15125,15158,15191,15223,15254,15284,15314,15343, 15371,15398,15423,15448,15473,15498,15515,15532,15549,15566,15583, 15599,15615,15632,15648,15663,15678,15693,15707,15721,15735,15749, 15762,15775,15787,15799,15810,15821,15831,15841,15851,15861,15871, 15880,15888,15895,15902,15909,15916,15922,15928,15934,15939,15943, 15947,15950,15953,15955,15957,15958,15958,15959,15958 }, { 11644,11719,11794,11869,11944,12018,12093,12167,12241,12315,12389, 12462,12536,12609,12682,12755,12827,12898,12967,13037,13107,13175, 13243,13310,13376,13442,13505,13566,13627,13685,13742,13798,13853, 13907,13961,14014,14065,14116,14165,14213,14261,14308,14353,14398, 14443,14486,14529,14572,14613,14654,14694,14733,14772,14809,14846, 14883,14919,14954,14988,15021,15054,15086,15117,15147,15177,15206, 15234,15261,15286,15311,15336,15361,15378,15394,15411,15428,15445, 15461,15477,15494,15510,15525,15540,15555,15569,15583,15597,15611, 15623,15636,15648,15660,15671,15682,15692,15702,15712,15722,15732, 15741,15749,15756,15763,15770,15777,15783,15789,15795,15800,15804, 15808,15811,15814,15816,15818,15819,15820,15819,15819 }, { 11515,11590,11665,11740,11815,11889,11964,12038,12112,12186,12260, 12333,12407,12480,12553,12626,12698,12769,12838,12909,12978,13047, 13114,13181,13247,13312,13375,13436,13496,13554,13611,13667,13721, 13775,13829,13881,13933,13983,14032,14080,14128,14174,14220,14265, 14310,14353,14396,14439,14480,14520,14560,14599,14638,14675,14712, 14749,14785,14820,14854,14887,14920,14952,14983,15013,15043,15072, 15100,15127,15152,15177,15202,15225,15243,15259,15276,15293,15310, 15326,15341,15358,15374,15389,15404,15419,15433,15447,15461,15475, 15487,15500,15513,15524,15535,15546,15556,15566,15576,15586,15596, 15605,15613,15620,15628,15634,15641,15647,15653,15659,15664,15668, 15672,15675,15678,15680,15682,15683,15683,15684,15683 }, { 11390,11465,11540,11615,11690,11764,11839,11913,11987,12061,12135, 12208,12280,12355,12428,12501,12573,12644,12713,12783,12852,12921, 12988,13055,13120,13185,13248,13309,13369,13427,13483,13539,13593, 13647,13700,13753,13804,13854,13903,13951,13998,14045,14090,14135, 14180,14224,14266,14309,14350,14390,14430,14469,14509,14545,14582, 14619,14655,14690,14724,14757,14790,14822,14853,14882,14912,14941, 14968,14995,15020,15045,15070,15094,15111,15129,15146,15163,15178, 15194,15209,15226,15242,15257,15272,15287,15301,15315,15329,15343, 15356,15369,15381,15393,15404,15415,15425,15435,15445,15455,15465, 15474,15482,15489,15496,15503,15510,15516,15522,15528,15533,15537, 15541,15544,15547,15549,15551,15552,15552,15553,15552 }, { 11270,11345,11420,11495,11570,11644,11719,11793,11867,11941,12015, 12088,12162,12235,12308,12381,12453,12524,12592,12662,12731,12800, 12867,12933,12999,13064,13127,13187,13247,13304,13360,13416,13469, 13523,13576,13628,13679,13729,13777,13825,13873,13919,13965,14009, 14054,14098,14140,14183,14224,14264,14304,14343,14382,14419,14456, 14493,14528,14563,14597,14630,14663,14694,14725,14754,14784,14813, 14840,14867,14892,14917,14942,14966,14983,14999,15018,15033,15050, 15066,15081,15098,15114,15129,15144,15159,15173,15187,15201,15215, 15227,15240,15252,15264,15275,15286,15296,15306,15316,15326,15336, 15345,15353,15360,15367,15374,15381,15387,15393,15399,15404,15408, 15412,15415,15418,15420,15422,15423,15423,15424,15423 }, { 11156,11231,11306,11381,11456,11530,11605,11679,11753,11827,11901, 11974,12048,12121,12194,12267,12339,12410,12476,12546,12616,12684, 12751,12817,12883,12947,13010,13070,13129,13186,13242,13297,13351, 13404,13457,13509,13560,13610,13658,13706,13753,13799,13845,13889, 13933,13977,14019,14062,14103,14143,14183,14222,14261,14298,14334, 14371,14406,14441,14475,14508,14541,14572,14603,14632,14662,14691, 14718,14745,14770,14795,14820,14843,14861,14877,14894,14911,14927, 14943,14958,14975,14991,15006,15021,15036,15050,15064,15078,15092, 15104,15117,15129,15141,15152,15163,15173,15183,15193,15203,15213, 15222,15230,15237,15244,15250,15257,15263,15269,15275,15280,15284, 15288,15291,15294,15296,15298,15299,15299,15300,15299 }, { 11046,11121,11196,11271,11346,11420,11495,11569,11643,11717,11791, 11864,11938,12011,12084,12157,12229,12300,12364,12434,12504,12572, 12639,12705,12770,12834,12896,12956,13015,13072,13127,13183,13236, 13290,13343,13395,13446,13496,13544,13592,13639,13685,13730,13774, 13818,13861,13904,13946,13987,14027,14066,14106,14144,14181,14217, 14254,14289,14324,14358,14391,14424,14455,14486,14515,14544,14573, 14600,14627,14652,14676,14701,14724,14742,14758,14775,14792,14808, 14824,14839,14856,14872,14887,14902,14916,14930,14944,14958,14972, 14985,14998,15010,15022,15033,15044,15054,15064,15074,15084,15094, 15103,15111,15118,15125,15131,15138,15144,15150,15156,15161,15165, 15169,15172,15175,15177,15179,15180,15180,15181,15180 }, { 10941,11016,11091,11166,11241,11315,11390,11464,11538,11612,11686, 11759,11833,11906,11979,12052,12124,12195,12258,12328,12398,12466, 12532,12598,12663,12727,12789,12849,12908,12965,13020,13075,13128, 13181,13233,13285,13335,13385,13433,13481,13528,13574,13619,13663, 13707,13750,13792,13834,13875,13915,13954,13993,14031,14068,14104, 14141,14176,14211,14245,14278,14311,14342,14373,14402,14431,14460, 14487,14514,14539,14563,14588,14611,14629,14645,14662,14679,14695, 14711,14726,14743,14759,14774,14789,14803,14817,14831,14845,14859, 14872,14885,14897,14909,14920,14931,14941,14951,14961,14971,14981, 14990,14998,15005,15012,15018,15025,15031,15037,15043,15048,15052, 15056,15059,15062,15064,15066,15067,15067,15068,15067 }, { 10840,10915,10990,11065,11140,11214,11289,11363,11437,11511,11585, 11658,11732,11805,11878,11951,12023,12094,12156,12226,12295,12363, 12430,12495,12560,12623,12685,12744,12802,12858,12913,12967,13021, 13074,13126,13177,13227,13277,13325,13373,13420,13466,13511,13555, 13599,13642,13684,13726,13767,13807,13846,13885,13923,13960,13996, 14032,14068,14102,14136,14169,14202,14233,14264,14293,14322,14351, 14378,14405,14430,14454,14479,14502,14520,14536,14552,14569,14585, 14601,14616,14633,14649,14664,14679,14693,14707,14721,14735,14749, 14762,14775,14787,14799,14810,14821,14831,14841,14851,14861,14871, 14880,14888,14895,14902,14908,14915,14921,14927,14933,14938,14942, 14946,14949,14952,14954,14956,14957,14957,14958,14958 }, { 10743,10818,10893,10968,11043,11117,11192,11266,11340,11414,11488, 11561,11635,11708,11781,11854,11926,11997,12058,12128,12197,12265, 12331,12396,12461,12524,12585,12644,12702,12758,12812,12867,12919, 12972,13024,13075,13125,13174,13221,13269,13316,13362,13407,13451, 13495,13538,13580,13622,13663,13703,13742,13781,13818,13855,13891, 13927,13963,13997,14031,14063,14096,14127,14158,14187,14216,14245, 14272,14299,14324,14348,14372,14396,14413,14429,14445,14462,14478, 14494,14509,14526,14542,14556,14571,14586,14600,14614,14628,14642, 14655,14668,14680,14692,14703,14714,14724,14734,14743,14753,14763, 14772,14780,14787,14794,14801,14808,14814,14820,14826,14831,14835, 14839,14841,14844,14846,14848,14849,14849,14850,14850 }, { 10651,10726,10801,10876,10951,11025,11100,11174,11248,11322,11396, 11469,11543,11616,11689,11762,11834,11905,11963,12033,12102,12170, 12236,12301,12366,12429,12490,12549,12606,12662,12716,12770,12822, 12874,12925,12976,13026,13075,13122,13169,13216,13262,13307,13351, 13395,13438,13480,13521,13562,13602,13641,13680,13717,13754,13790, 13826,13861,13895,13929,13961,13995,14025,14055,14084,14113,14142, 14169,14196,14223,14245,14269,14292,14309,14325,14341,14358,14374, 14390,14405,14422,14438,14452,14467,14482,14496,14510,14523,14537, 14550,14563,14575,14587,14598,14609,14619,14629,14638,14648,14658, 14667,14675,14682,14689,14696,14703,14709,14715,14721,14726,14730, 14734,14737,14739,14741,14743,14744,14744,14745,14745 } } }; struct tab_rec p_short = { 0, /* Minimum delta */ 0, /* Not used - interpolation always forward */ 1.5, /* Maximum delta */ 0, /* Minimum depth in earth radii */ 0.02, /* Maximum depth in earth radii */ { { 54, 57, 66, 77, 91,105,119,134,148,162,177,191,205,219,234,248 }, { 70, 72, 78, 88, 98,110,123,136,150,164,178,192,206,221,235,250 }, { 86, 88, 92,100,109,119,130,142,155,168,182,196,209,224,238,253 }, { 103,104,107,114,121,130,141,151,163,175,188,201,214,228,242,257 }, { 119,120,122,128,134,142,152,162,173,183,195,207,220,233,247,261 }, { 135,136,138,142,148,156,164,173,183,193,204,216,229,241,254,267 }, { 151,152,154,158,163,169,176,184,194,204,214,225,237,248,261,273 }, { 167,168,169,172,177,183,189,196,205,215,225,235,246,257,268,280 }, { 182,183,185,187,192,197,203,210,217,225,235,245,255,266,277,288 }, { 198,199,201,203,206,211,217,224,231,238,247,256,266,276,286,297 }, { 214,214,216,218,221,226,231,237,243,250,258,267,276,286,296,306 } } }; struct tab_rec s_short = { 0, /* Minimum delta */ 0, /* Not used - interpolation always forward */ 1.5, /* Maximum delta */ 0, /* Minimum depth in earth radii */ 0.02, /* Maximum depth in earth radii */ { { 92, 98,112,132,155,180,206,231,257,282,308,333,359,384,410,435 }, { 121,124,133,149,167,188,212,236,260,285,310,335,360,386,411,437 }, { 150,153,160,173,189,206,226,248,270,294,317,341,365,390,415,441 }, { 178,180,187,198,211,226,244,264,284,305,328,350,374,397,422,447 }, { 207,209,214,224,235,249,264,282,301,321,342,363,385,408,432,456 }, { 236,238,242,250,260,272,286,302,318,337,357,378,399,421,444,466 }, { 264,265,270,276,285,296,309,323,339,357,375,394,415,435,457,478 }, { 292,293,297,303,311,321,333,346,360,376,393,411,430,450,471,492 }, { 321,322,326,331,338,347,358,370,383,398,414,431,449,468,487,507 }, { 349,350,353,358,365,373,383,394,406,420,435,451,468,486,505,524 }, { 377,378,381,385,392,400,409,419,431,443,457,472,488,505,523,541 } } }; struct tab_rec pP_P_tab = { pP_LOW_DELTA, /* Minimum delta */ 50, /* Delta to switch interpolation direction */ pP_HIGH_DELTA, /* Maximum delta */ SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 67, 66, 71, 75, 87, 93, 96, 97, 98, 99, 99, 101, 101, 103, 103, 103, 104, 105, 106, 106, 106, 107 }, { 0, 0, 0, 137, 187, 211, 218, 224, 227, 229, 233, 237, 241, 244, 248, 251, 253, 256, 259, 260, 260, 0 }, { 0, 0, 0, 0, 271, 324, 335, 345, 351, 356, 363, 369, 376, 381, 386, 392, 396, 401, 405, 406, 406, 0 }, { 0, 0, 0, 0, 0, 431, 450, 462, 471, 479, 490, 499, 509, 518, 525, 530, 538, 543, 548, 549, 549, 0 }, { 0, 0, 0, 0, 0, 531, 558, 573, 585, 596, 611, 626, 639, 652, 660, 666, 675, 682, 689, 690, 690, 0 }, { 0, 0, 0, 0, 0, 621, 659, 680, 694, 707, 724, 742, 759, 775, 787, 795, 806, 815, 824, 826, 826, 0 }, { 0, 0, 0, 0, 0, 0, 754, 778, 795, 811, 831, 851, 875, 892, 908, 922, 933, 945, 956, 958, 959, 0 }, { 0, 0, 0, 0, 0, 0, 832, 865, 887, 907, 930, 956, 983, 1003, 1021, 1038, 1054, 1068, 1079, 1083, 1084, 0 }, { 0, 0, 0, 0, 0, 0, 895, 940, 969, 993, 1021, 1051, 1081, 1107, 1129, 1149, 1167, 1183, 1197, 1201, 1203, 0 }, { 0, 0, 0, 0, 0, 0, 0, 1004, 1038, 1069, 1103, 1139, 1173, 1203, 1228, 1252, 1273, 1291, 1306, 1312, 1314, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 1098, 1136, 1175, 1216, 1257, 1291, 1321, 1349, 1373, 1393, 1412, 1417, 1420, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 1146, 1196, 1241, 1290, 1336, 1378, 1412, 1443, 1471, 1495, 1515, 1521, 1525, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1244, 1299, 1356, 1409, 1456, 1496, 1532, 1564, 1593, 1615, 1623, 1627 } } }; /* Tables used by other_phase function. */ /* Surface focus tables are simply an array in increasing delta. */ /* Depth allowance tables are the other way round to the tab_rec */ /* tables above, ie rows from JB (delta) across not down the page here. */ /* PcP */ struct dep_allow_tab_rec pcp_dep_allow_tab = { SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ 11, { 0, 10, 20, 30, 40, 50, 60, 70, 80, 90,100 }, { { 54, 135, 214, 291, 366, 439, 511, 580, 645, 708, 768, 828, 888 }, { 54, 134, 213, 290, 365, 438, 509, 578, 643, 705, 765, 825, 885 }, { 54, 134, 212, 288, 362, 435, 506, 574, 638, 699, 758, 816, 874 }, { 53, 133, 210, 286, 359, 430, 500, 567, 631, 691, 748, 805, 862 }, { 53, 132, 209, 284, 356, 426, 495, 561, 624, 683, 739, 795, 849 }, { 53, 131, 207, 281, 352, 422, 490, 555, 617, 674, 729, 782, 833 }, { 53, 131, 206, 279, 350, 419, 486, 550, 611, 668, 723, 776, 828 }, { 53, 130, 205, 277, 348, 416, 483, 547, 607, 663, 717, 770, 822 }, { 53, 130, 205, 277, 348, 416, 483, 546, 605, 661, 715, 768, 819 }, { 53, 130, 205, 277, 348, 416, 483, 546, 605, 661, 715, 768, 819 }, { 53, 130, 205, 277, 348, 416, 483, 546, 605, 661, 715, 768, 819 } } }; struct surf_tab_rec pcp_surf_tab = { 0, /* Minimum delta */ 100, /* Maximum delta */ &pcp_dep_allow_tab, /* Table with depth allowances */ { 5143, 5143, 5145, 5147, 5150, 5154, 5159, 5166, 5173, 5181, 5190, 5200, 5211, 5223, 5235, 5249, 5264, 5279, 5295, 5312, 5330, 5349, 5368, 5388, 5409, 5430, 5452, 5475, 5499, 5524, 5549, 5575, 5602, 5629, 5657, 5686, 5715, 5745, 5776, 5807, 5839, 5871, 5904, 5937, 5971, 6005, 6040, 6075, 6111, 6147, 6183, 6220, 6257, 6294, 6332, 6370, 6409, 6448, 6487, 6526, 6566, 6606, 6646, 6687, 6728, 6769, 6810, 6852, 6894, 6936, 6978, 7020, 7063, 7105, 7148, 7191, 7234, 7277, 7320, 7363, 7406, 7449, 7493, 7536, 7579, 7623, 7667, 7710, 7754, 7798, 7842, 7886, 7930, 7974, 8019, 8063, 8107, 8152, 8196, 8241, 8285 } }; /* ScS */ struct dep_allow_tab_rec scs_dep_allow_tab = { SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ 11, { 0, 10, 20, 30, 40, 50, 60, 70, 80, 90,100 }, { { 92, 236, 377, 515, 651, 783, 912,1036,1155,1269,1379,1486,1590 }, { 92, 235, 376, 514, 649, 781, 909,1032,1151,1264,1374,1481,1584 }, { 92, 234, 374, 511, 645, 776, 903,1026,1143,1254,1362,1467,1569 }, { 91, 233, 371, 507, 639, 768, 894,1012,1127,1237,1344,1447,1546 }, { 91, 231, 368, 502, 633, 760, 883,1001,1114,1223,1327,1428,1524 }, { 91, 230, 365, 497, 626, 751, 873, 990,1101,1207,1309,1407,1501 }, { 90, 228, 363, 494, 622, 746, 867, 982,1091,1195,1295,1391,1483 }, { 90, 226, 360, 491, 618, 741, 859, 974,1083,1186,1284,1378,1468 }, { 90, 226, 359, 489, 615, 737, 855, 969,1077,1178,1275,1368,1457 }, { 90, 226, 359, 489, 615, 737, 855, 969,1077,1178,1275,1368,1457 }, { 90, 226, 359, 489, 615, 737, 855, 969,1077,1178,1275,1368,1457 }, { 90, 226, 359, 489, 615, 737, 855, 969,1077,1178,1275,1368,1457 }, { 90, 226, 359, 489, 615, 737, 855, 969,1077,1178,1275,1368,1457 } } }; struct surf_tab_rec scs_surf_tab = { 0, /* Minimum delta */ 100, /* Maximum delta */ &scs_dep_allow_tab, /* Table with depth allowances */ { 9357, 9358, 9361, 9365, 9371, 9379, 9389, 9401, 9414, 9429, 9446, 9465, 9485, 9507, 9530, 9555, 9582, 9610, 9639, 9670, 9703, 9737, 9773, 9810, 9849, 9889, 9930, 9973,10017,10063,10110,10158,10208, 10259,10311,10364,10418,10474,10530,10588,10646,10705,10765,10826, 10888,10951,11015,11080,11145,11211,11278,11346,11415,11484,11554, 11625,11696,11768,11841,11914,11988,12062,12137,12212,12288,12364, 12441,12518,12596,12674,12752,12831,12910,12990,13070,13150,13231, 13311,13392,13474,13555,13637,13719,13801,13883,13965,14047,14130, 14213,14295,14378,14461,14543,14626,14709,14792,14875,14958,15041, 15124,15207 } }; /* PP */ struct dep_allow_tab_rec pp_dep_allow_tab = { SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ 24, { 0, 10, 20, 30, 32, 34, 36, 38, 40, 45, 50, 60, 70, 80, 90,100, 110,120,130,140,150,160,170,180 }, { { 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 50, 60, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 70, 100, 120, 130, 140, 130, 140, 140, 0, 0, 0, 0 }, { 40, 70, 100, 130, 140, 160, 170, 190, 200, 140, 0, 0, 0 }, { 40, 80, 110, 140, 150, 180, 210, 240, 250, 250, 0, 0, 0 }, { 40, 80, 110, 140, 180, 220, 250, 280, 300, 310, 0, 0, 0 }, { 40, 80, 120, 170, 220, 260, 290, 320, 340, 360, 360, 0, 0 }, { 40, 100, 150, 200, 240, 280, 320, 350, 380, 390, 400, 400, 0 }, { 50, 100, 160, 210, 260, 300, 340, 380, 410, 430, 450, 460, 460 }, { 50, 100, 160, 220, 270, 320, 360, 400, 430, 460, 480, 500, 510 }, { 50, 110, 170, 230, 280, 330, 380, 420, 460, 490, 520, 540, 550 }, { 50, 110, 170, 230, 290, 340, 390, 440, 480, 510, 540, 570, 590 }, { 50, 110, 180, 240, 290, 350, 400, 450, 490, 530, 560, 590, 610 }, { 50, 120, 180, 240, 300, 360, 410, 460, 500, 540, 570, 610, 640 }, { 50, 120, 180, 250, 310, 360, 420, 470, 510, 550, 590, 630, 660 }, { 50, 120, 190, 250, 320, 370, 430, 480, 530, 570, 610, 650, 690 }, { 50, 120, 190, 260, 320, 380, 440, 490, 540, 590, 630, 670, 710 }, { 50, 120, 190, 260, 330, 390, 450, 500, 560, 600, 650, 690, 740 }, { 50, 120, 190, 260, 330, 400, 460, 510, 570, 620, 660, 710, 750 }, { 50, 130, 200, 270, 330, 400, 460, 520, 580, 630, 680, 720, 770 }, { 50, 130, 200, 270, 340, 400, 470, 530, 590, 640, 690, 740, 790 }, { 50, 130, 200, 270, 340, 410, 470, 540, 590, 650, 700, 750, 800 }, { 50, 130, 200, 280, 350, 410, 480, 540, 600, 650, 710, 760, 810 }, { 50, 130, 200, 280, 350, 410, 480, 540, 600, 650, 710, 760, 810 }, { 50, 130, 200, 280, 350, 420, 480, 550, 600, 660, 710, 770, 820 } } }; struct surf_tab_rec pp_surf_tab = { 0, /* Minimum delta */ 180, /* Maximum delta */ &pp_dep_allow_tab, /* Table with depth allowances */ { 140, 280, 420, 570, 710, 850, 990, 1140, 1280, 1420, 1560, 1700, 1850, 1990, 2130, 2270, 2410, 2550, 2680, 2820, 2960, 3100, 3230, 3370, 3510, 3640, 3770, 3910, 4040, 4170, 4300, 4430, 4560, 4690, 4810, 4940, 5060, 5190, 5310, 5430, 5540, 5640, 5750, 5850, 5950, 6050, 6150, 6250, 6340, 6440, 6540, 6630, 6720, 6820, 6910, 7000, 7090, 7180, 7270, 7360, 7450, 7540, 7630, 7710, 7800, 7890, 7980, 8060, 8150, 8240, 8320, 8410, 8490, 8580, 8660, 8750, 8830, 8910, 9000, 9080, 9160, 9250, 9330, 9410, 9490, 9570, 9650, 9740, 9820, 9900, 9980,10060,10140,10220,10300,10370,10450,10530,10610, 10680,10760,10840,10910,10990,11060,11140,11210,11290,11360,11440, 11510,11580,11650,11730,11800,11870,11940,12010,12080,12150,12210, 12280,12350,12420,12490,12550,12620,12680,12750,12820,12880,12950, 13010,13070,13140,13200,13260,13320,13390,13450,13510,13570,13630, 13690,13750,13810,13870,13930,13990,14040,14100,14160,14210,14270, 14330,14380,14440,14490,14550,14600,14650,14710,14760,14810,14870, 14920,14970,15020,15070,15120,15170,15220,15270,15320,15370,15420, 15470,15510,15560,15610,15650,15650,15700,15750,15790,15840,15880, 15930,15980,16020,16070,16110,16160,16210,16250,16300,16340,16390, 16430,16480,16520,16570,16610,16660,16700,16750,16790,16840,16880, 16920,16970,17010 } }; /* PPP */ struct dep_allow_tab_rec ppp_dep_allow_tab = { SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ 21, { 0, 10, 20, 30, 40, 50, 52, 54, 56, 58, 60, 70, 80, 90,100, 120,140,160,180,200,220 }, { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 50, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 70, 90, 90, 90, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 80, 110, 130, 150, 150, 150, 170, 170, 0, 0, 0, 0 }, { 40, 80, 110, 140, 160, 170, 180, 210, 210, 0, 0, 0, 0 }, { 40, 80, 110, 140, 160, 190, 220, 250, 260, 0, 0, 0, 0 }, { 40, 80, 120, 150, 190, 230, 260, 290, 300, 310, 0, 0, 0 }, { 40, 90, 140, 180, 220, 260, 300, 330, 340, 350, 0, 0, 0 }, { 40, 100, 150, 200, 240, 280, 320, 350, 370, 380, 390, 0, 0 }, { 50, 100, 160, 210, 260, 300, 350, 380, 410, 430, 450, 470, 0 }, { 50, 110, 170, 220, 280, 320, 370, 410, 440, 470, 490, 510, 520 }, { 50, 110, 170, 230, 280, 330, 380, 420, 460, 490, 510, 530, 550 }, { 50, 110, 170, 230, 290, 340, 390, 430, 470, 500, 530, 550, 570 }, { 50, 110, 170, 240, 290, 350, 400, 440, 490, 520, 550, 580, 610 }, { 50, 110, 180, 240, 300, 360, 410, 460, 500, 540, 580, 610, 640 }, { 50, 120, 180, 250, 310, 370, 420, 470, 520, 560, 600, 640, 680 }, { 50, 120, 190, 260, 320, 380, 440, 490, 540, 590, 630, 670, 710 }, { 50, 120, 190, 260, 320, 380, 440, 490, 540, 590, 630, 670, 710 }, { 50, 120, 190, 260, 330, 390, 450, 510, 560, 610, 650, 700, 750 }, { 50, 120, 190, 260, 330, 400, 460, 520, 570, 620, 670, 720, 770 } } }; struct surf_tab_rec ppp_surf_tab = { 0, /* Minimum delta */ 220, /* Maximum delta */ &ppp_dep_allow_tab, /* Table with depth allowances */ { 200, 350, 490, 630, 780, 920, 1060, 1210, 1350, 1490, 1630, 1780, 1920, 2060, 2200, 2340, 2490, 2630, 2770, 2910, 3050, 3190, 3330, 3470, 3610, 3750, 3890, 4030, 4160, 4300, 4440, 4580, 4710, 4850, 4990, 5120, 5260, 5390, 5530, 5660, 5790, 5930, 6060, 6190, 6320, 6450, 6580, 6710, 6840, 6970, 7090, 7220, 7350, 7470, 7600, 7720, 7840, 7970, 8090, 8200, 8310, 8420, 8520, 8620, 8720, 8830, 8930, 9030, 9120, 9220, 9320, 9420, 9510, 9610, 9710, 9800, 9900, 9990,10090,10180,10270,10360,10450,10540,10640,10730,10820,10910, 11000,11090,11170,11260,11350,11440,11530,11620,11700,11790,11880, 11970,12050,12140,12230,12310,12400,12480,12570,12650,12740,12820, 12910,12990,13070,13160,13240,13330,13410,13500,13580,13660,13740, 13830,13910,13990,14070,14150,14240,14320,14400,14480,14560,14640, 14720,14810,14890,14970,15050,15130,15200,15280,15360,15440,15520, 15600,15680,15760,15830,15910,15990,16060,16140,16220,16290,16370, 16440,16520,16600,16670,16750,16820,16890,16970,17040,17120,17190, 17260,17330,17410,17480,17550,17620,17690,17760,17830,17900,17970, 18040,18110,18180,18250,18320,18320,18390,18460,18530,18590,18660, 18730,18800,18860,18930,18990,19060,19130,19190,19260,19320,19380, 19450,19510,19580,19640,19700,19770,19830,19890,19960,20020,20080, 20140,20200,20260,20320,20380,20450,20510,20570,20630,20680,20740, 20800,20860 } }; /* PS */ struct dep_allow_tab_rec ps_dep_allow_tab = { SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ 13, { 50, 60, 70, 80, 85, 90, 95,100,105,110,120,130,140 }, { { 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 30, 50, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 70, 90, 100, 100, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 80, 110, 140, 150, 160, 170, 170, 0, 0, 0, 0, 0 }, { 40, 80, 110, 150, 170, 190, 210, 220, 0, 0, 0, 0, 0 }, { 40, 90, 120, 160, 210, 230, 260, 280, 300, 0, 0, 0, 0 }, { 40, 90, 140, 190, 230, 260, 300, 320, 340, 340, 0, 0, 0 }, { 50, 100, 150, 200, 240, 280, 320, 350, 370, 380, 390, 400, 400 }, { 50, 100, 160, 210, 250, 300, 340, 370, 400, 420, 430, 440, 440 }, { 50, 110, 160, 210, 260, 310, 360, 390, 420, 450, 470, 480, 490 }, { 50, 110, 170, 220, 280, 330, 380, 420, 460, 490, 510, 540, 550 }, { 50, 110, 170, 230, 290, 340, 390, 440, 470, 510, 540, 570, 580 }, { 50, 110, 170, 230, 290, 350, 400, 440, 480, 520, 550, 580, 590 } } }; struct surf_tab_rec ps_surf_tab = { 44, /* Minimum delta */ 147, /* Maximum delta */ &ps_dep_allow_tab, /* Table with depth allowances */ { 8900, 9050, 9190, 9330, 9480, 9620, 9760, 9900,10050,10190, 10330,10470,10610,10750,10890,11030,11170,11300,11440,11580, 11720,11850,11990,12120,12260,12390,12520,12650,12790,12920, 13050,13180,13310,13430,13560,13690,13810,13940,14060,14190, 14310,14430,14560,14680,14800,14920,15030,15150,15270,15380, 15490,15600,15710,15820,15920,16030,16130,16240,16340,16450, 16550,16650,16750,16850,16950,17040,17140,17240,17330,17430, 17520,17620,17710,17800,17890,17980,18070,18160,18250,18340, 18420,18510,18600,18690,18770,18860,18940,19030,19110,19200, 19280,19370,19450,19530,19620,19700,19790,19870,19950,20040, 20120,20200,20290,20370 } }; /* SP */ struct dep_allow_tab_rec sp_dep_allow_tab = { SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ 14, { 40, 50, 60, 70, 80, 85, 90, 95,100,105,110,120,130,140 }, { { 80, 200, 310, 420, 530, 630, 730, 810, 890, 960,1020,1080,1130 }, { 80, 200, 310, 420, 530, 630, 730, 820, 900, 970,1030,1090,1140 }, { 80, 200, 320, 430, 540, 640, 740, 830, 920, 990,1060,1120,1180 }, { 80, 210, 320, 440, 550, 660, 760, 850, 940,1020,1090,1160,1220 }, { 80, 210, 330, 450, 560, 670, 770, 870, 960,1050,1120,1200,1270 }, { 90, 210, 330, 450, 570, 680, 780, 880, 980,1060,1140,1220,1290 }, { 90, 210, 340, 460, 570, 680, 790, 890, 990,1080,1160,1240,1330 }, { 90, 220, 340, 470, 580, 700, 810, 920,1020,1110,1190,1280,1360 }, { 90, 220, 340, 470, 590, 700, 820, 930,1030,1120,1210,1290,1390 }, { 90, 220, 350, 470, 600, 710, 830, 940,1040,1130,1220,1310,1400 }, { 90, 220, 350, 480, 600, 720, 830, 940,1050,1140,1240,1330,1410 }, { 90, 220, 350, 480, 610, 730, 840, 950,1060,1160,1260,1350,1430 }, { 90, 220, 360, 490, 610, 730, 850, 960,1070,1170,1270,1360,1450 }, { 90, 230, 360, 490, 610, 730, 850, 970,1070,1180,1270,1370,1450 } } }; /* Same as ps apart from depth allowance table. */ struct surf_tab_rec sp_surf_tab = { 44, /* Minimum delta */ 147, /* Maximum delta */ &sp_dep_allow_tab, /* Table with depth allowances */ { 8900, 9050, 9190, 9330, 9480, 9620, 9760, 9900,10050,10190, 10330,10470,10610,10750,10890,11030,11170,11300,11440,11580, 11720,11850,11990,12120,12260,12390,12520,12650,12790,12920, 13050,13180,13310,13430,13560,13690,13810,13940,14060,14190, 14310,14430,14560,14680,14800,14920,15030,15150,15270,15380, 15490,15600,15710,15820,15920,16030,16130,16240,16340,16450, 16550,16650,16750,16850,16950,17040,17140,17240,17330,17430, 17520,17620,17710,17800,17890,17980,18070,18160,18250,18340, 18420,18510,18600,18690,18770,18860,18940,19030,19110,19200, 19280,19370,19450,19530,19620,19700,19790,19870,19950,20040, 20120,20200,20290,20370 } }; /* PPS or PSP */ struct dep_allow_tab_rec pps_psp_dep_allow_tab = { SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ 11, { 60, 70, 80, 90,100,110,120,130,140,160,180 }, { { 30, 30, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 50, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 60, 80, 80, 0,0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 70, 100, 110, 120,0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 80, 110, 140, 160, 170, 180, 170, 0, 0, 0, 0, 0 }, { 40, 90, 120, 180, 210, 240, 270, 290, 280, 0, 0, 0, 0 }, { 40, 100, 150, 200, 240, 280, 310, 340, 360, 370, 0, 0, 0 }, { 50, 100, 160, 210, 260, 300, 340, 380, 400, 420, 440, 440, 0 }, { 50, 110, 160, 220, 270, 320, 360, 400, 430, 460, 490, 500, 510 }, { 50, 110, 170, 230, 280, 340, 380, 430, 470, 500, 530, 550, 570 }, { 50, 110, 170, 230, 290, 350, 400, 440, 480, 520, 550, 580, 600 }, } }; struct surf_tab_rec pps_psp_surf_tab = { 44, /* Minimum delta */ 180, /* Maximum delta */ &pps_psp_dep_allow_tab, /* Table with depth allowances */ { 8970, 9120, 9260, 9400, 9540, 9690, 9830, 9970,10120,10260, 10400,10540,10680,10830,10970,11110,11250,11390,11530,11670, 11810,11950,12090,12230,12370,12510,12650,12780,12920,13060, 13200,13330,13470,13600,13740,13870,14010,14140,14270,14410, 14540,14670,14800,14940,15070,15200,15330,15460,15590,15710, 15840,15970,16100,16220,16350,16470,16600,16720,16840,16970, 17090,17210,17330,17450,17570,17690,17810,17930,18050,18160, 18270,18370,18480,18590,18690,18800,18900,19010,19110,19220, 19320,19420,19520,19620,19720,19820,19920,20020,20120,20220, 20310,20410,20510,20600,20700,20790,20880,20980,21070,21160, 21250,21340,21440,21530,21620,21710,21800,21880,21970,22060, 22150,22240,22330,22410,22500,22590,22670,22760,22850,22930, 23020,23100,23190,23270,23360,23440,23530,23610,23700,23780, 23860,23950,24030,24120,24200,24280,24370 } }; /* SPP */ struct dep_allow_tab_rec spp_dep_allow_tab = { SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ 12, { 40, 50, 60, 70, 80, 90,100,110,120,140,160,180 }, { { 80, 200, 310, 420, 530, 630, 730, 810, 890, 960,1020,1080,1130 }, { 80, 200, 310, 420, 530, 630, 730, 810, 890, 970,1030,1090,1130 }, { 80, 200, 320, 430, 530, 630, 730, 820, 900, 980,1040,1100,1150 }, { 80, 200, 320, 430, 540, 640, 740, 830, 920, 990,1060,1120,1170 }, { 80, 210, 320, 430, 540, 650, 750, 840, 930,1010,1080,1150,1200 }, { 80, 210, 320, 440, 550, 660, 770, 860, 950,1030,1110,1180,1240 }, { 80, 210, 330, 450, 560, 670, 780, 880, 970,1050,1130,1210,1270 }, { 90, 220, 340, 460, 580, 690, 800, 910,1010,1100,1180,1260,1340 }, { 90, 220, 340, 470, 590, 690, 820, 920,1030,1120,1210,1290,1370 }, { 90, 220, 350, 480, 600, 720, 840, 950,1050,1150,1240,1330,1420 }, { 90, 220, 360, 490, 610, 730, 850, 960,1070,1170,1260,1350,1440 }, { 90, 220, 360, 490, 610, 730, 850, 970,1070,1180,1270,1370,1450 }, } }; /* Same as pss/psp apart from depth allowance table. */ struct surf_tab_rec spp_surf_tab = { 44, /* Minimum delta */ 180, /* Maximum delta */ &spp_dep_allow_tab, /* Table with depth allowances */ { 8970, 9120, 9260, 9400, 9540, 9690, 9830, 9970,10120,10260, 10400,10540,10680,10830,10970,11110,11250,11390,11530,11670, 11810,11950,12090,12230,12370,12510,12650,12780,12920,13060, 13200,13330,13470,13600,13740,13870,14010,14140,14270,14410, 14540,14670,14800,14940,15070,15200,15330,15460,15590,15710, 15840,15970,16100,16220,16350,16470,16600,16720,16840,16970, 17090,17210,17330,17450,17570,17690,17810,17930,18050,18160, 18270,18370,18480,18590,18690,18800,18900,19010,19110,19220, 19320,19420,19520,19620,19720,19820,19920,20020,20120,20220, 20310,20410,20510,20600,20700,20790,20880,20980,21070,21160, 21250,21340,21440,21530,21620,21710,21800,21880,21970,22060, 22150,22240,22330,22410,22500,22590,22670,22760,22850,22930, 23020,23100,23190,23270,23360,23440,23530,23610,23700,23780, 23860,23950,24030,24120,24200,24280,24370 } }; /* SS */ struct dep_allow_tab_rec ss_dep_allow_tab = { SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ 24, { 10, 20, 30, 32, 34, 36, 38, 40, 42.5, 45, 50, 60, 70, 80, 90,100, 110,120,130,140,150,160,170,180 }, { { 50, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 60, 90, 100, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 60, 110, 150, 180, 200, 200, 180, 190, 180, 160, 0, 0, 0 }, { 60, 120, 160, 200, 220, 240, 240, 260, 270, 250, 0, 0, 0 }, { 60, 120, 170, 210, 250, 270, 300, 340, 360, 360, 350, 0, 0 }, { 60, 130, 180, 230, 270, 320, 370, 420, 450, 460, 470, 0, 0 }, { 60, 130, 190, 250, 320, 390, 450, 500, 530, 560, 580, 580, 0 }, { 60, 140, 230, 310, 390, 460, 520, 580, 620, 660, 680, 690, 700 }, { 70, 170, 260, 340, 430, 500, 570, 640, 690, 730, 760, 780, 780 }, { 80, 180, 260, 350, 450, 530, 610, 680, 740, 780, 830, 840, 850 }, { 80, 190, 290, 390, 480, 560, 650, 720, 780, 840, 880, 910, 930 }, { 80, 190, 300, 400, 500, 590, 680, 760, 830, 890, 940, 970,1000 }, { 80, 190, 300, 400, 510, 600, 690, 770, 840, 910, 960,1000,1040 }, { 80, 200, 310, 410, 520, 610, 710, 790, 870, 930, 990,1050,1090 }, { 80, 200, 310, 420, 530, 630, 720, 810, 890, 960,1030,1080,1130 }, { 80, 200, 320, 430, 540, 640, 740, 830, 910, 990,1060,1120,1170 }, { 80, 200, 320, 440, 550, 650, 750, 850, 930,1010,1080,1150,1210 }, { 80, 210, 330, 440, 550, 660, 770, 860, 950,1030,1110,1180,1240 }, { 80, 210, 330, 450, 560, 670, 780, 880, 970,1060,1140,1210,1280 }, { 90, 210, 340, 460, 570, 680, 790, 900, 990,1080,1160,1240,1310 }, { 90, 210, 340, 470, 580, 690, 810, 910,1010,1100,1190,1270,1350 }, { 90, 220, 350, 470, 590, 710, 820, 930,1030,1120,1210,1290,1380 }, { 90, 220, 350, 480, 600, 720, 830, 940,1040,1140,1230,1320,1400 }, { 90, 220, 350, 480, 610, 730, 840, 960,1060,1160,1260,1350,1430 } } }; struct surf_tab_rec ss_surf_tab = { 0, /* Minimum delta */ 180, /* Maximum delta */ &ss_dep_allow_tab, /* Table with depth allowances */ { 210, 470, 720, 980, 1230, 1480, 1740, 1990, 2250, 2500, 2750, 3000, 3250, 3500, 3750, 4000, 4250, 4500, 4750, 5000, 5250, 5490, 5740, 5980, 6220, 6470, 6710, 6950, 7190, 7420, 7660, 7890, 8130, 8360, 8590, 8820, 9050, 9270, 9500, 9720, 9940,10160,10350,10540, 10720,10910,11090,11260,11440,11610,11780,11950,12110,12280,12440, 12600,12760,12930,13090,13250,13400,13560,13720,13880,14030,14190, 14340,14500,14650,14810,14960,15120,15270,15430,15580,15730,15890, 16040,16190,16340,16490,16640,16790,16940,17080,17230,17380,17520, 17670,17810,17960,18100,18240,18390,18530,18670,18810,18950,19090, 19230,19370,19510,19650,19790,19920,20060,20200,20330,20470,20600, 20740,20870,21000,21140,21270,21400,21530,21660,21790,21920,22050, 22180,22310,22440,22560,22690,22810,22940,23060,23190,23310,23430, 23560,23680,23800,23920,24040,24160,24280,24390,24510,24630,24750, 24860,24980,25090,25200,25320,25430,25540,25650,25760,25870,25980, 26090,26200,26310,26410,26520,26630,26730,26830,26940,27040,27150, 27250,27350,27450,27550,27650,27750,27840,27940,28040,28130,28230, 28320,28410,28510,28600,28690 } }; /* SSP / SPS*/ /* Reviser (blkpit2.f) disagrees with JB tables - copy latter here. */ struct dep_allow_tab_rec ssp_sps_dep_allow_tab = { SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ 10, { 90,100,110,120,130,140,150,160,170,180 }, { { 80, 200, 310, 420, 530, 630, 720, 810, 890, 960,1030,1080,1130 }, { 80, 200, 320, 430, 530, 630, 730, 820, 900, 970,1040,1100,1150 }, { 80, 200, 320, 430, 540, 640, 740, 830, 910, 990,1060,1120,1170 }, { 80, 200, 320, 430, 540, 650, 750, 840, 930,1010,1080,1140,1200 }, { 80, 210, 330, 440, 550, 660, 760, 850, 940,1020,1100,1160,1220 }, { 80, 210, 330, 440, 560, 670, 770, 870, 960,1040,1120,1190,1250 }, { 80, 210, 330, 450, 560, 680, 780, 880, 970,1060,1140,1210,1280 }, { 90, 210, 330, 450, 570, 680, 790, 890, 990,1080,1160,1240,1310 }, { 90, 210, 340, 460, 580, 690, 810, 910,1010,1100,1190,1270,1350 }, { 90, 220, 350, 470, 590, 710, 820, 930,1030,1120,1210,1290,1380 } } }; struct surf_tab_rec ssp_sps_surf_tab = { 90, /* Minimum delta */ 180, /* Maximum delta */ &ssp_sps_dep_allow_tab, /* Table with depth allowances */ { 18030,18170,18310,18460,18600,18740,18880,19030,19170,19310, 19450,19590,19730,19880,20020,20160,20300,20440,20580,20710, 20850,20990,21130,21270,21400,21540,21680,21810,21950,22090, 22220,22360,22490,22620,22760,22890,23020,23160,23290,23420, 23550,23680,23810,23940,24070,24200,24330,24460,24590,24720, 24840,24970,25100,25220,25350,25470,25600,25720,25840,25970, 26090,26210,26330,26450,26570,26690,26810,26930,27050,27170, 27290,27410,27530,27640,27750,27870,27980,28090,28200,28310, 28430,28540,28640,28750,28860,28970,29080,29180,29290,29400, 29500 } }; /* PSS */ /* Reviser (blkpit2.f) disagrees with JB tables - copy latter here. */ struct dep_allow_tab_rec pss_dep_allow_tab = { SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ 9, { 100,110,120,130,140,150,160,170,180 }, { { 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 60, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 70, 90, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 70, 100, 130, 140, 0, 0, 0, 0, 0, 0, 0, 0 }, { 40, 80, 110, 150, 170, 180, 190, 0, 0, 0, 0, 0, 0 }, { 40, 80, 120, 160, 190, 220, 240, 260, 0, 0, 0, 0, 0 }, { 40, 90, 140, 180, 220, 260, 280, 310, 310, 0, 0, 0, 0 }, { 40, 100, 150, 200, 240, 280, 310, 340, 360, 370, 0, 0, 0 }, } }; /* Same as ssp/sps except for depth allowance table */ struct surf_tab_rec pss_surf_tab = { 90, /* Minimum delta */ 180, /* Maximum delta */ &pss_dep_allow_tab, /* Table with depth allowances */ { 18030,18170,18310,18460,18600,18740,18880,19030,19170,19310, 19450,19590,19730,19880,20020,20160,20300,20440,20580,20710, 20850,20990,21130,21270,21400,21540,21680,21810,21950,22090, 22220,22360,22490,22620,22760,22890,23020,23160,23290,23420, 23550,23680,23810,23940,24070,24200,24330,24460,24590,24720, 24840,24970,25100,25220,25350,25470,25600,25720,25840,25970, 26090,26210,26330,26450,26570,26690,26810,26930,27050,27170, 27290,27410,27530,27640,27750,27870,27980,28090,28200,28310, 28430,28540,28640,28750,28860,28970,29080,29180,29290,29400, 29500 } }; /* SSS */ struct dep_allow_tab_rec sss_dep_allow_tab = { SURFACE, /* Minimum depth in earth radii */ MAX_DEPTH, /* Maximum depth in earth radii */ 22, { 10, 20, 30, 40, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 80, 90, 100,120,140,160,180 }, { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 50, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 60, 80, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 60, 100, 130, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 60, 120, 170, 200, 220, 230, 0, 200, 0, 0, 0, 0, 0 }, { 60, 120, 170, 210, 240, 250, 0, 270, 270, 0, 0, 0, 0 }, { 60, 120, 180, 220, 250, 280, 300, 340, 350, 0, 0, 0, 0 }, { 60, 130, 180, 230, 270, 310, 370, 420, 430, 430, 0, 0, 0 }, { 60, 130, 190, 250, 310, 380, 430, 480, 510, 520, 520, 0, 0 }, { 70, 150, 220, 300, 370, 440, 500, 550, 590, 610, 620, 0, 0 }, { 70, 170, 250, 330, 410, 480, 550, 600, 640, 670, 690, 0, 0 }, { 70, 170, 260, 340, 420, 500, 570, 630, 670, 710, 730, 730, 0 }, { 80, 170, 270, 360, 440, 520, 590, 650, 700, 740, 770, 780, 0 }, { 80, 180, 270, 360, 450, 530, 600, 670, 730, 780, 800, 820, 0 }, { 80, 180, 280, 370, 460, 540, 620, 690, 750, 810, 830, 850, 860 }, { 80, 190, 290, 390, 490, 580, 660, 740, 800, 850, 900, 930, 950 }, { 80, 190, 300, 400, 500, 590, 680, 760, 830, 880, 930, 970,1000 }, { 80, 190, 300, 400, 500, 600, 690, 770, 840, 900, 950, 990,1020 }, { 80, 200, 310, 410, 520, 610, 710, 790, 860, 930, 990,1040,1080 }, { 80, 200, 320, 430, 530, 630, 730, 820, 900, 970,1040,1090,1140 }, { 80, 200, 320, 430, 540, 650, 750, 840, 920,1000,1070,1130,1190 }, { 80, 210, 330, 440, 550, 660, 770, 860, 950,1030,1110,1180,1240 } } }; struct surf_tab_rec sss_surf_tab = { 0, /* Minimum delta */ 180, /* Maximum delta */ &sss_dep_allow_tab, /* Table with depth allowances */ { 320, 580, 830, 1080, 1340, 1590, 1850, 2100, 2350, 2610, 2860, 3110, 3370, 3620, 3870, 4130, 4380, 4630, 4880, 5130, 5380, 5630, 5880, 6130, 6380, 6630, 6880, 7130, 7370, 7620, 7870, 8110, 8360, 8600, 8850, 9090, 9330, 9580, 9820,10060, 10300,10540,10780,11020,11250,11490,11720,11960,12190,12420, 12660,12890,13110,13340,13570,13800,14020,14250,14470,14690, 14910,15130,15330,15520,15710,15900,16090,16270,16450,16630, 16810,16980,17160,17330,17500,17670,17840,18000,18170,18330, 18500,18660,18820,18990,19150,19310,19470,19630,19790,19950, 20110,20270,20420,20580,20740,20890,21050,21200,21360,21520, 21670,21830,21980,22140,22290,22450,22600,22760,22910,23060, 23220,23370,23520,23680,23830,23980,24130,24280,24430,24580, 24730,24880,25030,25180,25330,25480,25630,25770,25920,26070, 26210,26360,26500,26650,26790,26940,27080,27220,27370,27510, 27650,27790,27940,28080,28220,28360,28500,28640,28780,28920, 29060,29200,29330,29470,29610,29750,29890,30020,30160,30290, 30430,30570,30700,30840,30970,31100,31240,31370,31510,31640, 31770,31900,32030,32170,32300,32430,32560,32690,32820,32950, 33080 } }; double interpol ( double frac, double v1, double v2, double v3 ); double int_diff ( double frac, double v1, double v2, double v3 );