Source Code

052356,000001: # Copyright: Public domain. 052357,000002: # Filename: TIME_OF_FREE_FALL.agc 052358,000003: # Purpose: A section of Luminary 1C, revision 131. 052359,000004: # It is part of the source code for the Lunar Module's (LM) 052360,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 052361,000006: # This file is intended to be a faithful transcription, except 052362,000007: # that the code format has been changed to conform to the 052363,000008: # requirements of the yaYUL assembler rather than the 052364,000009: # original YUL assembler. 052365,000010: # Reference: pp. 1265-1280 of 1729.pdf. 052366,000011: # Contact: Ron Burkey <info@sandroid.org>. 052367,000012: # Website: www.ibiblio.org/apollo/index.html 052368,000013: # Mod history: 06/03/03 RSB. Began transcribing. 052369,000014: # 05/14/05 RSB Corrected website reference above 052370,000015: # 2010-10-25 JL Indentation fixes. 052371,000016: 052372,000017: # Page 1265 052373,000018: # THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER 052374,000019: # KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE, AND 1/SQRT(MU) AT THE 052375,000020: # APPROPIRATE SCALE LEVEL FOR THE PROPER PRIMARY BODY. 052376,000021: 052377,000022: # EARTH ORIGIN POSITION -29 METERS 052378,000023: # VELOCITY -7 METERS/CENTISECOND 052379,000024: # 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED) 052380,000025: 052381,000026: # MOON ORIGIN POSITION -27 METERS 052382,000027: # VELOCITY -5 METERS/CENTISECONDS 052383,000028: # 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED) 052384,000029: 052385,000030: # ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES, 052386,000031: # THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND 052387,000032: # LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN. 052388,000033: 052389,000034: # THE USER MUST STORE THE STATE VECTOR IN RONE, VONE, AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU 052390,000035: # AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA, 052391,000036: # THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED. 052392,000037: 052393,000038: # PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT 052394,000039: # RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY. 052395,000040: 052396,000041: # THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST. 052397,000042: 052398,000043: # BELOW E: IS USED FOR EARTH ORIGIN SCALE 052399,000044: # M: IS USED FOR MOON ORIGIN SCALE 052400,000045: 052401,000046: # TFFSW = 119D # BIT1 0 = CALCTFF 1 = CALCTPER 052402,000047: 10,2213 TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15) 052403,000048: 10,2213 RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27) 052404,000049: # RPER = 14D # PERIGEE RADIUS M E: (-29) M: (-27) 052405,000050: 10,2213 TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15) 052406,000051: # SDELF/2 # SIN(THETA) /2 052407,000052: 10,2213 CDELF/2 = 14D # COS(THETA) /2 052408,000053: # RAPO = 16D # APOGEE RADIUS M E: (-29) M: (-27) 052409,000054: 10,2213 NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR) 052410,000055: # M: (-27+NR) 052411,000056: 10,2213 RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27) 052412,000057: 10,2213 TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18) 052413,000058: 10,2213 TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA) 052414,000059: # M: (-20-2 NA) 052415,000060: 10,2213 TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA) 052416,000061: 10,2213 TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR) 052417,000062: 10,2213 TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR) 052418,000063: # M: (-36+2 NR) 052419,000064: 10,2213 TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14) 052420,000065: 10,2213 NRMAG = 32D # PRESENT RADIUS M E: (-29+NR) 052421,000066: # M: (-27+NR) 052422,000067: 10,2213 TFFX = 34D 052423,000068: 10,2213 TFFTEM = 36D # TEMPORARY 052424,000069: # Page 1266 052425,000070: # REGISTERS S1, S2 ARE UNTOUCED BY ANY TFF SUBROUTINE 052426,000071: # INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB- 052427,000072: # LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT 052428,000073: # SUBROUTINES. 052429,000074: # -NR C(X1) = NORM COUNT OF RMAG 052430,000075: # -NA C(X2) = NORM COUNT OF SQRT(ABS(ALFA)) 052431,000076: 052432,000077: # Page 1267 052433,000078: # SUBROUTINE NAME: TFFCONIC DATE: 01.29.67 052434,000079: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL 052435,000080: # MOD BY: RR BAIRNSFATHER 052436,000081: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67 052437,000082: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU. 052438,000083: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES 052439,000084: 052440,000085: # FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF 052441,000086: # SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT. 052442,000087: # THE EQUATIONS ARE: 052443,000088: # _ __ __ 052444,000089: # H = RN*VN ANGULAR MOMENTUM 052445,000090: # _ _ 052446,000091: # LCP = H.H / MU SEMI LATUS RECTUM 052447,000092: # __ __ 052448,000093: # ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI-MAJOR AXIS, SIGNED 052449,000094: 052450,000095: # AND ALFA IS POS FOR ELLIPTIC ORBITS 052451,000096: # 0 FOR PARABOLIC ORBITS 052452,000097: # NEG FOR HYPERBOLIC ORBITS 052453,000098: # SUBROUTINE ALSO COMPUTES AND SAVES RMAG. 052454,000099: 052455,000100: # CALLING SEQUENCE: 052456,000101: # TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM 052457,000102: # 1/SQRT(MU). THE PROGRAM WILL SAVE IN TFF/RTMU. THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON 052458,000103: # ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE, 052459,000104: # VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE 052460,000105: # TFF ROUTINES. 052461,000106: 052462,000107: # ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED. 052463,000108: 052464,000109: # TO SPECIFY MU: DLOAD CALL # IF MU ALREADY STORED: CALL 052465,000110: # YOURMU # 1/RTMU E:(17) M:(14) TFFCONMU 052466,000111: # TFFCONIC 052467,000112: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D 052468,000113: 052469,000114: # SUBROUTINES CALLED: NONE 052470,000115: 052471,000116: # NORMAL EXIT MODES: RVQ 052472,000117: 052473,000118: # ALARMS: NONE 052474,000119: 052475,000120: # OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA. 052476,000121: # RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH. 052477,000122: # NRMAG E:(-29+NR) M RMAG, NORMALIZED 052478,000123: # M:(-27+NR) 052479,000124: # X1 -NR, NORM COUNT 052480,000125: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC. 052481,000126: # M:(-36+2NR) 052482,000127: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) 052483,000128: # TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY, NORMALIZED. FOR VGAMCALC 052484,000129: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR 052485,000130: # M:(24-NR) 052486,000131: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED 052487,000132: # M:(9+NA) 052488,000133: # Page 1268 052489,000134: # X2 -NA, NORMCOUNT 052490,000135: # TFF1/ALF E:(-22-2NA) SIGNED SEMI-MAJOR AXIS, WEIGHTED BY NA 052491,000136: # M:(-20-2NA) 052492,000137: # PUSHLOC AT PDL+0 052493,000138: 052494,000139: # THE FOLLOWING IS STORED IN GENERAL ERASABLE 052495,000140: # VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY 052496,000141: 052497,000142: # ERASABLE INITIALIZATION REQUIRED: 052498,000143: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER 052499,000144: # VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER 052500,000145: # TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU. 052501,000146: 052502,000147: # DEBRIS: QPRET PDL+0 ... PDL+3 052503,000148: 052504,000149: 33,3760 BANK 33 052505,000150: 27,2000 SETLOC TOF-FF 052506,000151: 27,2000 BANK 052507,000152: 052508,000153: 27,3361 COUNT* $$/TFF 052509,000154: 052510,000155: 27,3361 00037 TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E:(17) M:(14) 052511,000156: 052512,000157: 27,3362 53575 TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED. 052513,000158: 27,3363 02207 RONE # SAVED RN. M E:(-29) M:(-27) 052514,000159: 27,3364 77725 PDDL # UR/2 TO PDL+0, +5 052515,000160: 27,3365 00045 36D # MAGNITUDE 052516,000161: 27,3366 00015 STORE RMAG1 # M E:(-29) M:(-27) 052517,000162: 052518,000163: 27,3367 77701 NORM 052519,000164: 27,3370 00047 X1 # -NR 052520,000165: 27,3371 24041 STOVL NRMAG # RMAG M E:(-29+NR) M:(-27+NR) 052521,000166: 27,3372 02215 VONE # SAVED VN. M/CS E:(-7) M:(-5) 052522,000167: 27,3373 77761 VXSC 052523,000168: 27,3374 00037 TFF/RTMU # E:(17) M:(14) 052524,000169: 27,3375 02170 STORE VONE' # VN/SQRT(MU) E:(10) M:(9) 052525,000170: 052526,000171: 27,3376 47361 VXSC VXV 052527,000172: 27,3377 00041 NRMAG # E:(-29+NR) M:(-27+NR) 052528,000173: # UR/2 FROM PDL 052529,000174: 27,3400 47572 VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR) 052530,000175: 27,3401 14035 STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR) 052531,000176: # SAVE ALSO FOR VGAMCALC 052532,000177: 27,3402 06514 TFF1/4 052533,000178: 27,3403 63271 DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR) 052534,000179: 27,3404 00041 NRMAG # RMAG M E:(-29+NR) M:(-27+NR) 052535,000180: 27,3405 02170 VONE' # SAVED VN. E:(10) M:(9) 052536,000181: 27,3406 57436 VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT. 052537,000182: 27,3407 00025 STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18) 052538,000183: # SAVE FOR VGAMCALC 052539,000184: 27,3410 43257 SR* DAD 052540,000185: # Page 1269 052541,000186: 27,3411 20573 0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR) 052542,000187: 27,3412 77626 STADR 052543,000188: # 2/RMAG FROM PDL+2 052544,000189: 27,3413 77744 STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR) 052545,000190: 27,3414 41457 SL* PUSH # TEMP SAVE ALFA E:(20) M:(18) 052546,000191: 27,3415 20173 0 -6,1 052547,000192: 27,3416 75446 ABS SQRT # E:(10) M:(9) 052548,000193: 27,3417 77701 NORM 052549,000194: 27,3420 00050 X2 # X2 = -NA 052550,000195: 27,3421 00031 STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA) 052551,000196: 27,3422 75316 DSQ SIGN # NOT SO ACCURATE, BUT OK 052552,000197: # ALFA FROM PDL+2 E:(20) M:(18) 052553,000198: 27,3423 55254 BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA 052554,000199: 27,3424 57426 +2 052555,000200: 27,3425 06514 TFF1/4 052556,000201: 27,3426 00027 +2 STORE TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 052557,000202: 27,3427 77616 DUMPCNIC RVQ 052558,000203: 052559,000204: # Page 1270 052560,000205: # SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67 052561,000206: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL 052562,000207: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67 052563,000208: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES 052564,000209: # ALSO IMPROVE ACCURACY OF RAPO. 052565,000210: 052566,000211: # FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO 052567,000212: # APOGEE RADIUS FOR A GENERAL CONIC. 052568,000213: # PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY 052569,000214: # RP = P/(1+E) RA = (1+E) / ALFA 052570,000215: # WHERE 2 052571,000216: # E = 1 - P ALFA 052572,000217: # IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE 052573,000218: # 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA 052574,000219: # 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA 052575,000220: # 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE. 052576,000221: 052577,000222: # THIS SUBROUTINE REQUIRED THE SIGNED RECIPROCAL SEMI-MAJOR AXIS, ALFA, AND SEMI-LATUS RECTUM AS DATA. 052578,000223: 052579,000224: # CALLING SEQUENCE: CALL 052580,000225: # TFFRP/RA 052581,000226: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D 052582,000227: # C(MPAC) UNSPECIFIED 052583,000228: 052584,000229: # SUBROUTINES CALLED: NONE 052585,000230: 052586,000231: # NORMAL EXIT MODE: RVQ 052587,000232: # IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT. 052588,000233: # OTHERWISE, RAPO = POSMAX. 052589,000234: 052590,000235: # ALARMS: NONE 052591,000236: 052592,000237: # OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC. 052593,000238: # RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG. 052594,000239: # RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER 052595,000240: # PUSHLOC AT PDL+0 052596,000241: 052597,000242: # ERASABLE INITIALIZATION REQUIRED: 052598,000243: # TFFALFA E:(26-NR) M 1/SEMI-MAJOR AXIS LEFT BY TFFCONIC 052599,000244: # M:(24-NR) 052600,000245: # TFFNP E:(-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC 052601,000246: # M:(-36+2NR) 052602,000247: # X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC 052603,000248: # X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC 052604,000249: 052605,000250: # DEBRIS: QPRET, PDL+0 ... PDL+1 052606,000251: 052607,000252: # Page 1271 052608,000253: 27,3430 RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27) 052609,000254: 27,3430 RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27) 052610,000255: 052611,000256: 27,3430 41345 TFFRP/RA DLOAD DMP 052612,000257: 27,3431 00033 TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR) 052613,000258: 27,3432 00035 TFFNP # LC P M E:(-38+2NR) M:(-36+2NR) 052614,000259: 27,3433 57457 SR* DCOMP # ALFA P (-12+NR) 052615,000260: 27,3434 20571 0 -8D,1 # ALFA P (-4) 052616,000261: 27,3435 51415 DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT) 052617,000262: # (ABS PROTECTS SQRT IF E IS VERY NEAR 0) 052618,000263: 27,3436 17766 DP2(-4) 052619,000264: 27,3437 43366 SQRT DAD # E SQ = (1- P ALFA) (-4) 052620,000265: 27,3440 06514 TFF1/4 052621,000266: 27,3441 55206 PUSH BDDV # (1+E) (-2) TO PDL+0 052622,000267: 27,3442 00035 TFFNP # LCP M E:(-38+2NR) M:(-36+2NR) 052623,000268: 27,3443 53657 SR* SR* # (DOES SR THEN SL TO AVOID OVFL) 052624,000269: 27,3444 20601 0,1 # X1=-NR 052625,000270: 27,3445 20572 0 -7,1 # (EFFECTIVE SL) 052626,000271: 27,3446 14017 STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27) 052627,000272: # (1+E) (-2) FROM PDL+0 052628,000273: 27,3447 41005 DMP BOVB 052629,000274: 27,3450 00027 TFF1/ALF # E:(-22-2NA) M:(-20-2NA) 052630,000275: 27,3451 57754 TCDANZIG # CLEAR OVFIND, IF ON. 052631,000276: 27,3452 53654 BZE SL* 052632,000277: 27,3453 57462 MAXRA # SET POSMAX IF ALFA=0 052633,000278: 27,3454 57603 0 -5,2 # -5+NA 052634,000279: 27,3455 40057 SL* BOV 052635,000280: 27,3456 57576 0,2 052636,000281: 27,3457 57462 MAXRA # SET POSMAX IF OVFL. 052637,000282: 27,3460 77644 BPL # CONTINUE WITH VALID RAPO. 052638,000283: 27,3461 57464 +3 052639,000284: 27,3462 77745 MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO = 052640,000285: 27,3463 17772 NEARONE # POSMAX AS A TAG. 052641,000286: 27,3464 00021 +3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27) 052642,000287: 27,3465 77616 DUMPRPRA RVQ 052643,000288: 052644,000289: # Page 1272 052645,000290: # SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67 052646,000291: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL 052647,000292: # MOD BY: RR BAIRNSFATHER 052648,000293: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67 052649,000294: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67 052650,000295: # MOD BY: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST) 052651,000296: # MOD BY: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU. 052652,000297: # MOD BY: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES 052653,000298: 052654,000299: # FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND 052655,000300: # VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER. THE POSITION VECTOR 052656,000301: # RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE. 052657,000302: # THE EQUATIONS ARE: 052658,000303: 052659,000304: # Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE) LEQ +- LCE/SQRT(ALFA) 052660,000305: # __ __ 052661,000306: # Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA) 052662,000307: 052663,000308: # Z = NUM / DEN LEQ +- 1/SQRT(ALFA) 052664,000309: 052665,000310: # WHERE, IF INBOUND 052666,000311: # NUM = RTERM -RN LEQ +- 2 LCE/ALFA 052667,000312: # DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA) 052668,000313: 052669,000314: # AND, IF OUTBOUND 052670,000315: # NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA) 052671,000316: # DEN = 2 - ALFA (RTERM + RN). LEQ +- 2 LCE 052672,000317: 052673,000318: # IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG) 052674,000319: # THEN X = ALFA Z Z 052675,000320: # AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU) 052676,000321: # EXCEPT IF ALFA PNZ, AND IF TFF NEG, 052677,000322: # THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF 052678,000323: # OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG) 052679,000324: # THEN X = 1/ALFA Z Z 052680,000325: # AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU) 052681,000326: # WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES 052682,000327: # 2 3 2 052683,000328: # 1/3 - X/5 + X /7 - X /8 ... (X < 1.0) 052684,000329: 052685,000330: # CALLING SEQUENC: TIME TO RTERM TIME TO PERIGEE 052686,000331: # CALL CALL 052687,000332: # CALCTFF CALCTPER 052688,000333: # C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M 052689,000334: # FOR EITHER, E:(-29) M:(-27) 052690,000335: # FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D. 052691,000336: # Page 1273 052692,000337: 052693,000338: # SUBROUTINES CALLED: T(X), VIA RTB 052694,000339: 052695,000340: # NORMAL EXIT MODE: RVQ 052696,000341: # HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE. 052697,000342: # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD. 052698,000343: # B. (THIS OPTION IS NO LONGER USED.) 052699,000344: # C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO 052700,000345: # THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA. 052701,000346: 052702,000347: # OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE 052703,000348: # TFFX (0) X LEFT FOR ENTRY DISPLAY TFF ROUTINES 052704,000349: # NRTERM E:(-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES 052705,000350: # M:(-27+NR) 052706,000351: # TFFTEM E:(-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES 052707,000352: # M:(-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES 052708,000353: # NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:. 052709,000354: # RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED. 052710,000355: # TFFQ1 E:(-16) M:(-15) PDL 14D 052711,000356: # TFFDELQ E:(-16) M:(-15) PDL 10D 052712,000357: # PUSHLOC AT PDL+0 052713,000358: 052714,000359: # ERASABLE INITIALIZATION REQUIRED: 052715,000360: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER 052716,000361: # VONE' E:(+10) M:(+9) VN/SQRT(NU) LEFT BY TFF/CONIC 052717,000362: # RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC 052718,000363: # C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER 052719,000364: 052720,000365: # THE FOLLOWING ARE STORED IN THE PUSH LIST AREA. 052721,000366: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC. 052722,000367: # NRMAG E:(-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC 052723,000368: # M:(-27+NR) 052724,000369: # X1 -NR, NORM COUNT LEFT BY TFFCONIC 052725,000370: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC 052726,000371: # M:(-36+2N4) 052727,000372: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC 052728,000373: # M:(24-NR) 052729,000374: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC 052730,000375: # M:(9+NA) 052731,000376: # X2 -NA, NORMCOUNT LEFT BY TFFCONIC 052732,000377: # TFF1/ALF E:(-22-2NA) SIGNED SEMI-MAJOR AXIS, WEIGHTED BY NA LEFT BY TFFCONIC 052733,000378: # M:(-20-2NA) 052734,000379: 052735,000380: # DEBRIS: QPRET, PDL+0 ... PDL+3 052736,000381: # RTERM E:(-29) M(-27) RTERM, TERMINAL RADIUS LENGTH 052737,000382: # RAPO E:(-29) M(-27) PDL 16D (=NRTERM) 052738,000383: # RPER E:(-29) M(-27) PDL 14D (=TFFQ1) 052739,000384: 052740,000385: # Page 1274 052741,000386: 27,3466 77614 CALCTPER SETGO # ENTER WITH RPER IN MPAC 052742,000387: 27,3467 03436 TFFSW 052743,000388: 27,3470 57473 +3 052744,000389: 27,3471 77614 CALCTFF CLEAR # ENTER WITH RTERM IN MPAC 052745,000390: 27,3472 03676 TFFSW 052746,000391: 27,3473 00023 +3 STORE RTERM # E:(-29) M:(-27) 052747,000392: 27,3474 77657 SL* 052748,000393: 27,3475 20201 0,1 # X1=-NR 052749,000394: 27,3476 00021 STORE NRTERM # RTERM E:(-29+NR) M:(-27+NR) 052750,000395: 27,3477 44205 DMP BDSU 052751,000396: 27,3500 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR) 052752,000397: 27,3501 06514 TFF1/4 052753,000398: 27,3502 41206 PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0 052754,000399: 27,3503 00021 NRTERM # E:(-29+NR) M:(-27+NR) 052755,000400: 27,3504 53725 PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2 052756,000401: # E:(-32+NR) M:(-30+NR) 052757,000402: 27,3505 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR) 052758,000403: 27,3506 20573 0 -6,1 # X1 = -NR 052759,000404: 27,3507 43276 DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT 052760,000405: # RTERM(2-ALFA RTERM) FROM PDL +2 052761,000406: # E:(-32+NR) M:(-30+NR) 052762,000407: 27,3510 77657 SR* # LEAVE E:(-32) M:(-30) 052763,000408: 27,3511 20601 0,1 # X1 = -NR 052764,000409: 27,3512 71214 BOFF DLOAD # CHECK TFF /TPER SWITCH 052765,000410: 27,3513 03756 TFFSW 052766,000411: 27,3514 57516 +2 # IF TFF, CONTINUE 052767,000412: 27,3515 06524 TFFZEROS # IF TPER, SET Q2 = 0 052768,000413: 27,3516 75440 +2 BMN SQRT # E:(-16) M:(-15) 052769,000414: 27,3517 57651 MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE 052770,000415: # RESET PDL, SET TFF=POSMAX, AND EXIT. 052771,000416: 052772,000417: 27,3520 41076 DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0 052773,000418: 27,3521 57754 TCDANZIG # ANY PORT IN A STORM. 052774,000419: 27,3522 24045 STOVL TFFTEM # Q2 E:(-16) M:(-15) 052775,000420: 27,3523 02170 VONE' # VN/SQRT(MU) E:(10) M:(9) 052776,000421: 27,3524 52441 DOT SL3 052777,000422: 27,3525 02207 RONE # SAVED RN. E:(-29) M:(-27) 052778,000423: 27,3526 00017 STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST. 052779,000424: # E:(-16) M:(-15) 052780,000425: 27,3527 44240 BMN BDSU 052781,000426: 27,3530 57551 INBOUND # USE ALTERNATE Z 052782,000427: 27,3531 00045 TFFTEM # Q2 E:(-16) M:(-15) 052783,000428: 052784,000429: # OUTBOUND Z CALC CONTINUES HERE 052785,000430: 052786,000431: 27,3532 14043 STODL TFFX # NUM=Q2-Q1 E:(-16) M:(-15) 052787,000432: 27,3533 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR) 052788,000433: 27,3534 44205 DMP BDSU 052789,000434: # Page 1275 052790,000435: 27,3535 00041 NRMAG # RMAG E:(-29+NR) M:(-27+NR) 052791,000436: # (2-RTERM ALFA) (-3) FROM PDL+0 052792,000437: 27,3536 51406 SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16) 052793,000438: # M:(-3) OR (-15) 052794,000439: 27,3537 40015 DAD BOV # INDETERMINANCY TEST 052795,000440: 27,3540 17760 LIM(-22) # =1.0-B(-22) 052796,000441: 27,3541 57562 TFFXTEST # GO IF DEN >/= B(-22) 052797,000442: 27,3542 65345 DLOAD PDDL # SET DEN=0 OTHERWISE 052798,000443: 27,3543 06524 TFFZEROS 052799,000444: # XCH ZERO WITH PDL+0 052800,000445: 27,3544 57545 DLOAD DCOMP 052801,000446: 27,3545 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR) 052802,000447: 27,3546 71240 BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90. 052803,000448: 27,3547 57656 TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N 052804,000449: 052805,000450: # Z INDET. AT PERIGEE FOR PARAB OR HYPERB. 052806,000451: 27,3550 77616 DUMPTFF1 RVQ # RETURN TFF =0 052807,000452: 052808,000453: # INBOUND Z CALC CONTINUES HERE 052809,000454: 052810,000455: 27,3551 77745 INBOUND DLOAD # RESET PDL+0 052811,000456: 27,3552 45345 DLOAD DSU # ALTERNATE Z CALC 052812,000457: 27,3553 00023 RTERM # E:(-29) M:(-27) 052813,000458: 27,3554 00015 RMAG1 # E:(-29) M:(-27) 052814,000459: 27,3555 14043 STODL TFFX # NUM=RTERM-RN E:(-29) M:(-27) 052815,000460: 27,3556 00045 TFFTEM # Q2 E:(-16) M:(-15) 052816,000461: 27,3557 52015 DAD GOTO 052817,000462: 27,3560 00017 TFFQ1 # Q1 E:(-16) M:(-15) 052818,000463: 27,3561 57536 SAVEDEN # DEN = Q2+Q1 E:(-16) M:(-15) 052819,000464: 052820,000465: 27,3562 65215 TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2) E:(-3) OR (-16) 052821,000466: # M:(-3) OR (-15) 052822,000467: 27,3563 17762 DP(-22) # RESTORE ABS(DEN) TO MPAC 052823,000468: 27,3564 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27) 052824,000469: 27,3565 53605 DMP SR* 052825,000470: 27,3566 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA) 052826,000471: 27,3567 57201 0 -3,2 # X2=-NA 052827,000472: 27,3570 77671 DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16) 052828,000473: # M:(-3) OR (-15) 052829,000474: # ABS(DEN) FROM PDL+2 E:(-3) OR (-16) 052830,000475: # M:(-3) OR (-15) 052831,000476: 27,3571 40145 DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL) 052832,000477: 27,3572 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27) 052833,000478: 27,3573 57654 TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90 052834,000479: 052835,000480: # OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN 052836,000481: 052837,000482: 27,3574 45471 DDV STADR 052838,000483: # DEN FROM PDL+0 E:(-3) OR (-16) 052839,000484: # M:(-3) OR (-15) 052840,000485: 27,3575 77732 STORE TFFTEM # Z SAVE FOR SIGN OF SDELF. 052841,000486: # Page 1276 052842,000487: # E:(-13) M:(-12) 052843,000488: 27,3576 63406 PUSH DSQ # Z TO PDL+0 052844,000489: 27,3577 41206 PUSH DMP # Z SQ TO PDL+2 E:(-26) M:(-24) 052845,000490: 27,3600 00035 TFFNP # LC P E:(-38+2NR) M:(-36+NR) 052846,000491: 27,3601 75261 SL SIGN 052847,000492: 27,3602 20206 5 052848,000493: 27,3603 00045 TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY) 052849,000494: 27,3604 14045 STODL TFFTEM # P ZSQ E:(-59+2NR) M:(-55+2NR) 052850,000495: # (ARG IS USED IN TFF/TRIG) 052851,000496: # ZSQ FROM PDL+2 E:(-26) M:(-24) 052852,000497: 27,3605 41206 PUSH DMP # RESTORE PUSH LOC 052853,000498: 27,3606 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR) 052854,000499: 27,3607 77657 SL* 052855,000500: 27,3610 20201 0,1 # X1=-NR 052856,000501: 27,3611 00043 STORE TFFX # X 052857,000502: 27,3612 41234 RTB DMP 052858,000503: 27,3613 57736 T(X) # POLY 052859,000504: # ZSQ FROM PDL+2 E:(-26) M:(-24) 052860,000505: 27,3614 44302 SR2 BDSU # 2 ZSQ T(X) E:(-29) M:(-27) 052861,000506: 27,3615 00023 RTERM # RTERM E:(-29) M:(-27) 052862,000507: 27,3616 41215 DAD DMP 052863,000508: 27,3617 00015 RMAG1 # E:(-29) M:(-27) 052864,000509: # Z FROM PDL+0 E:(-13) M:(-12) 052865,000510: 27,3620 51042 SR3 BPL # TFF SQRT(MU) E:(-45) M:(-42) 052866,000511: 27,3621 57642 ENDTFF # (NO PUSH UP) 052867,000512: 27,3622 75206 PUSH SIGN # TFF SQRT(MU) TO PDL+0 052868,000513: 27,3623 00017 TFFQ1 # Q1 FOR GONEPAST TEST 052869,000514: 27,3624 71244 BPL DLOAD # GONE PAST ? 052870,000515: 27,3625 57646 NEGTFF # YES. TFF < 0. 052871,000516: 27,3626 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 052872,000517: 27,3627 51076 DCOMP BPL # ALFA > 0 ? 052873,000518: 27,3630 57646 NEGTFF # NO. TFF IS NEGATIVE. 052874,000519: 052875,000520: # CORRECT FOR ORBITAL PERIOD. 052876,000521: 052877,000522: 27,3631 77676 DCOMP # YES. CORRECT FOR ORB PERIOD. 052878,000523: 27,3632 56205 DMP DDV 052879,000524: 27,3633 17756 PI/16 # 2 PI (-5) 052880,000525: 27,3634 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA) 052881,000526: 27,3635 53657 SL* SL* 052882,000527: 27,3636 57602 0 -4,2 # X2=-NA 052883,000528: 27,3637 57602 0 -4,2 052884,000529: 27,3640 43257 SL* DAD 052885,000530: 27,3641 57576 0,2 052886,000531: # TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42) 052887,000532: 27,3642 40005 ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42) 052888,000533: 27,3643 00037 TFF/RTMU # E:(17) M:(14) 052889,000534: 27,3644 57652 MAXTFF # SET POSMAX IN OVFL. 052890,000535: 052891,000536: 27,3645 77616 DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC. 052892,000537: 052893,000538: # Page 1277 052894,000539: 27,3646 77745 NEGTFF DLOAD 052895,000540: # TFF SQRT(MU) FROM PDL+0, NEGATIVE. 052896,000541: 27,3647 77650 GOTO 052897,000542: 27,3650 57642 ENDTFF 052898,000543: 052899,000544: 27,3651 77745 MAXTFF1 DLOAD # RESET PDL 052900,000545: 27,3652 43545 MAXTFF DLOAD RVQ 052901,000546: 27,3653 17772 NEARONE 052902,000547: 052903,000548: # TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90. 052904,000549: 052905,000550: # NUM FROM TFFX. E:(-16) OR (-29) 052906,000551: # M:(-15) OR (-27) 052907,000552: 27,3654 77712 TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25) 052908,000553: 27,3655 41465 BDDV PUSH # TEMP SAVE D/N IN PDL+0 052909,000554: # DEN FROM PDL+0 E:(-3)/(-16) M:(-3)/(-15) 052910,000555: # N/D TO PDL+0 E:(11) M:(10) 052911,000556: 27,3656 45345 TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0) 052912,000557: 27,3657 00045 TFFTEM # Q2 E:(-16) M:(-15) 052913,000558: 27,3660 00017 TFFQ1 # Q1 E:(-16) M:(-15) 052914,000559: 27,3661 14013 STODL TFFDELQ # Q2-Q1 E:(-16) M:(-15) 052915,000560: # D/N FROM PDL+0 052916,000561: 27,3662 77626 STADR 052917,000562: 27,3663 77732 STORE TFFTEM # D/N E:(11) M:(10) 052918,000563: 27,3664 53605 DMP SL* 052919,000564: 27,3665 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 052920,000565: 27,3666 57576 0,2 # 1/ALFA Z E:(-11-NA) M:(-10-NA) 052921,000566: 27,3667 41206 PUSH DMP # TO PDL+0 052922,000567: 27,3670 00045 TFFTEM # 1/Z E:(11) M:(10 052923,000568: 27,3671 41057 SL* BOVB 052924,000569: 27,3672 57576 0,2 # X2= -NA 052925,000570: 27,3673 21713 SIGNMPAC # IN CASE X= 1.0, CONTINUE 052926,000571: 27,3674 00043 STORE TFFX # X=1/ALFA ZSQ 052927,000572: 27,3675 41234 RTB DMP 052928,000573: 27,3676 57736 T(X) # POLY 052929,000574: 27,3677 00043 TFFX 052930,000575: 27,3700 45242 SR3 DSU 052931,000576: 27,3701 17764 DP2(-3) 052932,000577: 27,3702 41405 DMP PUSH # 2(X T(X)-1) /Z ALFA E:(-15-NA) 052933,000578: # M:(-14-NA) 052934,000579: # 1/ALFA Z FROM PDL+0 E:(-11-NA) 052935,000580: # M:(-10-NA) 052936,000581: 27,3703 41345 DLOAD DMP # GET SIGN FOR SDELF 052937,000582: 27,3704 00045 TFFTEM # 1/Z E:(11) M:(10) 052938,000583: 27,3705 00015 RMAG1 # E:(-29) M:(-27) 052939,000584: 27,3706 43312 SL2 DAD 052940,000585: 27,3707 00017 TFFQ1 # Q1 E:(-16) M:(-15) 052941,000586: 27,3710 14045 STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15) 052942,000587: 27,3711 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR) 052943,000588: 27,3712 53605 DMP SL* # CALC FOR ARG FOR TFF/TRIG. 052944,000589: # Page 1278 052945,000590: 27,3713 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 052946,000591: 27,3714 57575 1,2 # X2=-NA 052947,000592: 27,3715 53765 SIGN SL* 052948,000593: 27,3716 00045 TFFTEM # AFFIX SIGN FOR SDELF 052949,000594: 27,3717 57576 0,2 052950,000595: 27,3720 14045 STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR) 052951,000596: # (ARG FOR USE IN TFF/TRIG) 052952,000597: 27,3721 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 052953,000598: 27,3722 41366 SQRT DMP 052954,000599: 27,3723 17756 PI/16 # PI (-4) 052955,000600: 27,3724 77615 DAD 052956,000601: # 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA) 052957,000602: # M:(-14-NA) 052958,000603: 27,3725 45257 SL* DSU 052959,000604: 27,3726 57577 0 -1,2 052960,000605: 27,3727 00013 TFFDELQ # Q2-Q1 E:(-16) M:(-15) 052961,000606: 27,3730 53605 DMP SL* 052962,000607: 27,3731 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 052963,000608: 27,3732 57601 0 -3,2 052964,000609: 27,3733 52057 SL* GOTO 052965,000610: 27,3734 57602 0 -4,2 052966,000611: 27,3735 57642 ENDTFF # TFF SQRT(MU) IN MPAC E:(-145) M:(-42) 052967,000612: 052968,000613: # Page 1279 052969,000614: # PROGRAM NAME: T(X) DATE: 01.17.67 052970,000615: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL 052971,000616: # MOD BY: RR BAIRNSFATHER 052972,000617: 052973,000618: # FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND 052974,000619: # CALCTPER TO APPROXIMATE THE SERIES 052975,000620: # 2 3 052976,000621: # 1/3 -X/5 +X /7 -X /9 ... 052977,000622: 052978,000623: # WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1 052979,000624: # X = 1/(ALFA Z Z) IF ALFA Z Z G 1 052980,000625: 052981,000626: # ALSO X IS NEG FOR HYPERBOLIC ORBITS 052982,000627: # X = 0 FOR PARABOLIC ORBITS 052983,000628: # X IS POSITIVE FOR ELLIPTIC ORBITS 052984,000629: 052985,000630: # FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM 052986,000631: # DEVIATION FROM THE SERIES OF 2 E-5. (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING 052987,000632: # MAX PROGRAM AUTOCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).) 052988,000633: 052989,000634: # CALLING SEQUENCE: RTB 052990,000635: # T(X) 052991,000636: # C(MPAC) = X 052992,000637: 052993,000638: # SUBROUTINE CALLED: NONE 052994,000639: 052995,000640: # NORMAL EXIT MODE: TC TANZIG 052996,000641: 052997,000642: # ALARMS: NONE 052998,000643: 052999,000644: # OUTPUT: C(MPAC) = T(X) 053000,000645: 053001,000646: # ERASABLE INITIALIZATION REQUIRED: 053002,000647: # C(MPAC) = X 053003,000648: 053004,000649: # DEBRIS: NONE 053005,000650: 053006,000651: 27,3736 07225 T(X) TC POLY 053007,000652: 27,3737 00004 DEC 4 B-14 # N-1 053008,000653: 27,3740 12525 12525 2DEC 3.333333333 E-1 053009,000654: 27,3742 71463 57703 2DEC* -1.999819135 E-1* 053010,000655: 27,3744 04423 17645 2DEC* 1.418148467 E-1* 053011,000656: 27,3746 74604 43667 2DEC* -1.01310997 E-1* 053012,000657: 27,3750 01626 37256 2DEC* 5.609004986 E-2* 053013,000658: 27,3752 77404 52071 2DEC* -1.536156925 E-2* 053014,000659: 053015,000660: 27,3754 06064 ENDT(X) TC DANZIG 053016,000661: 053017,000662: 27,3755 27,3754 TCDANZIG = ENDT(X) 053018,000663: 053019,000664: # Page 1280 053020,000665: # TFF CONSTANTS 053021,000666: 053022,000667: 32,3751 BANK 32 053023,000668: 053024,000669: 27,2000 SETLOC TOF-FF1 053025,000670: 27,2000 BANK 053026,000671: 053027,000672: # # NOTE: ADJUSTED MUE FOR NEAR EARTH TRAJ. 053028,000673: # MUE = 3.990815471 E10 # M CUBE/CS SQ 053029,000674: # RTMUE = 1.997702549 E5 B-18 # MODIFIED EARTH MU 053030,000675: 053031,000676: # # NOTE: ADJUSTED MUE FOR NEAR EARTH TRAJ. 053032,000677: # MUM = 4.902778 E8 # M CUBE/CS SQ 053033,000678: # RTMUM 2DEC* 2.21422176 E4 B-18* 053034,000679: 27,3755 06220 37553 PI/16 2DEC 3.141592653 B-4 053035,000680: 27,3757 37777 37700 LIM(-22) 2OCT 3777737700 # 1.0 -B(-22) 053036,000681: 27,3761 00000 00100 DP(-22) 2OCT 0000000100 # B(-22) 053037,000682: 27,3763 04000 00000 DP2(-3) 2DEC 1 B-3 053038,000683: 27,3765 02000 00000 DP2(-4) 2DEC 1 B-4 # 1/16 053039,000684: 053040,000685: # RPAD1 2DEC 6373338 B-29 # M (-29) = 20909901.57 FT 053041,000686: 27,3767 23,2337 RPAD1 = RPAD 053042,000687: 053043,000688: 27,3767 00305 11205 R300K 2DEC 6464778 B-29 # (-29) M 053044,000689: 27,3771 37777 37777 NEARONE 2DEC .999999999 053045,000690: 27,3773 23,2523 TFFZEROS EQUALS HI6ZEROS 053046,000691: 27,3773 23,2513 TFF1/4 EQUALS HIDP1/4 053047,000692: End of include-file TIME_OF_FREE_FALL.agc. Parent file is MAIN.agc