Source Code
057949,000001: # Copyright: Public domain.
057950,000002: # Filename: TIME_OF_FREE_FALL.agc
057951,000003: # Purpose: Part of the source code for Colossus, build 249.
057952,000004: # It is part of the source code for the Command Module's (CM)
057953,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9.
057954,000006: # Assembler: yaYUL
057955,000007: # Reference: Begins on p. 1363 of 1701.pdf.
057956,000008: # Contact: Ron Burkey <info@sandroid.org>.
057957,000009: # Website: www.ibiblio.org/apollo.
057958,000010: # Mod history: 08/30/04 RSB. Began adapting from corresponding Luminary131 file.
057959,000011: # 2010-10-24 JL Indentation fixes.
057960,000012:
057961,000013: # The contents of the "Colossus249" files, in general, are transcribed
057962,000014: # from a scanned document obtained from MIT's website,
057963,000015: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this
057964,000016: # document read, in part:
057965,000017:
057966,000018: # Assemble revision 249 of AGC program Colossus by NASA
057967,000019: # 2021111-041. October 28, 1968.
057968,000020:
057969,000021: # This AGC program shall also be referred to as
057970,000022: # Colossus 1A
057971,000023:
057972,000024: # Prepared by
057973,000025: # Massachusetts Institute of Technology
057974,000026: # 75 Cambridge Parkway
057975,000027: # Cambridge, Massachusetts
057976,000028: # under NASA contract NAS 9-4065.
057977,000029:
057978,000030: # Refer directly to the online document mentioned above for further information.
057979,000031: # Please report any errors (relative to 1701.pdf) to info@sandroid.org.
057980,000032:
057981,000033: # In some cases, where the source code for Luminary 131 overlaps that of
057982,000034: # Colossus 249, this code is instead copied from the corresponding Luminary 131
057983,000035: # source file, and then is proofed to incorporate any changes.
057984,000036:
057985,000037: # Page 1363
057986,000038: # THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER
057987,000039: # KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE, AND 1/SQRT(MU) AT THE
057988,000040: # APPROPIRATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
057989,000041:
057990,000042: # EARTH ORIGIN POSITION -29 METERS
057991,000043: # VELOCITY -7 METERS/CENTISECOND
057992,000044: # 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED)
057993,000045:
057994,000046: # MOON ORIGIN POSITION -27 METERS
057995,000047: # VELOCITY -5 METERS/CENTISECONDS
057996,000048: # 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED)
057997,000049:
057998,000050: # ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES,
057999,000051: # THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND
058000,000052: # LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
058001,000053:
058002,000054: # THE USER MUST STORE THE STATE VECTOR IN RONE, VONE, AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
058003,000055: # AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA,
058004,000056: # THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
058005,000057:
058006,000058: # PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
058007,000059: # RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
058008,000060:
058009,000061: # THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
058010,000062:
058011,000063: # BELOW E: IS USED FOR EARTH ORIGIN SCALE
058012,000064: # M: IS USED FOR MOON ORIGIN SCALE
058013,000065:
058014,000066: # TFFSW = 119D # BIT1 0 = CALCTFF 1 = CALCTPER
058015,000067: 23,3725 TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15)
058016,000068: 23,3725 RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27)
058017,000069: # RPER = 14D # PERIGEE RADIUS M E: (-29) M: (-27)
058018,000070: 23,3725 TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15)
058019,000071: # SDELF/2 # SIN(THETA) /2
058020,000072: 23,3725 CDELF/2 = 14D # COS(THETA) /2
058021,000073: # RAPO = 16D # APOGEE RADIUS M E: (-29) M: (-27)
058022,000074: 23,3725 NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR)
058023,000075: # M: (-27+NR)
058024,000076: 23,3725 RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27)
058025,000077: 23,3725 TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18)
058026,000078: 23,3725 TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA)
058027,000079: # M: (-20-2 NA)
058028,000080: 23,3725 TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA)
058029,000081: 23,3725 TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR)
058030,000082: 23,3725 TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR)
058031,000083: # M: (-36+2 NR)
058032,000084: 23,3725 TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14)
058033,000085: 23,3725 NRMAG = 32D # PRESENT RADIUS M E: (-29+NR)
058034,000086: # M: (-27+NR)
058035,000087: 23,3725 TFFX = 34D
058036,000088: 23,3725 TFFTEM = 36D # TEMPORARY
058037,000089: # Page 1364
058038,000090: # REGISTERS S1, S2 ARE UNTOUCED BY ANY TFF SUBROUTINE
058039,000091: # INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB-
058040,000092: # LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
058041,000093: # SUBROUTINES.
058042,000094: # -NR C(X1) = NORM COUNT OF RMAG
058043,000095: # -NA C(X2) = NORM COUNT OF SQRT(ABS(ALFA))
058044,000096:
058045,000097: # Page 1365
058046,000098: # SUBROUTINE NAME: TFFCONIC DATE: 01.29.67
058047,000099: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
058048,000100: # MOD BY: RR BAIRNSFATHER
058049,000101: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
058050,000102: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU.
058051,000103: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
058052,000104:
058053,000105: # FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
058054,000106: # SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT.
058055,000107: # THE EQUATIONS ARE:
058056,000108: # _ __ __
058057,000109: # H = RN*VN ANGULAR MOMENTUM
058058,000110: # _ _
058059,000111: # LCP = H.H / MU SEMI LATUS RECTUM
058060,000112: # __ __
058061,000113: # ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI-MAJOR AXIS, SIGNED
058062,000114:
058063,000115: # AND ALFA IS POS FOR ELLIPTIC ORBITS
058064,000116: # 0 FOR PARABOLIC ORBITS
058065,000117: # NEG FOR HYPERBOLIC ORBITS
058066,000118: # SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
058067,000119:
058068,000120: # CALLING SEQUENCE:
058069,000121: # TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
058070,000122: # 1/SQRT(MU). THE PROGRAM WILL SAVE IN TFF/RTMU. THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
058071,000123: # ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
058072,000124: # VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
058073,000125: # TFF ROUTINES.
058074,000126:
058075,000127: # ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
058076,000128:
058077,000129: # TO SPECIFY MU: DLOAD CALL # IF MU ALREADY STORED: CALL
058078,000130: # YOURMU # 1/RTMU E:(17) M:(14) TFFCONMU
058079,000131: # TFFCONIC
058080,000132: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
058081,000133:
058082,000134: # SUBROUTINES CALLED: NONE
058083,000135:
058084,000136: # NORMAL EXIT MODES: RVQ
058085,000137:
058086,000138: # ALARMS: NONE
058087,000139:
058088,000140: # OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
058089,000141: # RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH.
058090,000142: # NRMAG E:(-29+NR) M RMAG, NORMALIZED
058091,000143: # M:(-27+NR)
058092,000144: # X1 -NR, NORM COUNT
058093,000145: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC.
058094,000146: # M:(-36+2NR)
058095,000147: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU)
058096,000148: # TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY, NORMALIZED. FOR VGAMCALC
058097,000149: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR
058098,000150: # M:(24-NR)
058099,000151: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED
058100,000152: # M:(9+NA)
058101,000153: # Page 1366
058102,000154: # X2 -NA, NORMCOUNT
058103,000155: # TFF1/ALF E:(-22-2NA) SIGNED SEMI-MAJOR AXIS, WEIGHTED BY NA
058104,000156: # M:(-20-2NA)
058105,000157: # PUSHLOC AT PDL+0
058106,000158:
058107,000159: # THE FOLLOWING IS STORED IN GENERAL ERASABLE
058108,000160: # VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY
058109,000161:
058110,000162: # ERASABLE INITIALIZATION REQUIRED:
058111,000163: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER
058112,000164: # VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER
058113,000165: # TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU.
058114,000166:
058115,000167: # DEBRIS: QPRET PDL+0 ... PDL+3
058116,000168:
058117,000169: 33,3772 BANK 33
058118,000170: 27,2000 SETLOC TOF-FF
058119,000171: 27,2000 BANK
058120,000172:
058121,000173: 27,2750 COUNT* $$/TFF
058122,000174:
058123,000175: 27,2750 00037 TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E:(17) M:(14)
058124,000176:
058125,000177: 27,2751 53575 TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
058126,000178: 27,2752 02327 RONE # SAVED RN. M E:(-29) M:(-27)
058127,000179: 27,2753 77725 PDDL # UR/2 TO PDL+0, +5
058128,000180: 27,2754 00045 36D # MAGNITUDE
058129,000181: 27,2755 00015 STORE RMAG1 # M E:(-29) M:(-27)
058130,000182:
058131,000183: 27,2756 77701 NORM
058132,000184: 27,2757 00047 X1 # -NR
058133,000185: 27,2760 24041 STOVL NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
058134,000186: 27,2761 02335 VONE # SAVED VN. M/CS E:(-7) M:(-5)
058135,000187: 27,2762 77761 VXSC
058136,000188: 27,2763 00037 TFF/RTMU # E:(17) M:(14)
058137,000189: 27,2764 02372 STORE VONE' # VN/SQRT(MU) E:(10) M:(9)
058138,000190:
058139,000191: 27,2765 47361 VXSC VXV
058140,000192: 27,2766 00041 NRMAG # E:(-29+NR) M:(-27+NR)
058141,000193: # UR/2 FROM PDL
058142,000194: 27,2767 47572 VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR)
058143,000195: 27,2770 14035 STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
058144,000196: # SAVE ALSO FOR VGAMCALC
058145,000197: 27,2771 15322 TFF1/4
058146,000198: 27,2772 63271 DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR)
058147,000199: 27,2773 00041 NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
058148,000200: 27,2774 02372 VONE' # SAVED VN. E:(10) M:(9)
058149,000201: 27,2775 57436 VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT.
058150,000202: 27,2776 00025 STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18)
058151,000203: # SAVE FOR VGAMCALC
058152,000204: 27,2777 43257 SR* DAD
058153,000205: # Page 1367
058154,000206: 27,3000 20573 0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR)
058155,000207: 27,3001 77626 STADR
058156,000208: # 2/RMAG FROM PDL+2
058157,000209: 27,3002 77744 STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
058158,000210: 27,3003 41457 SL* PUSH # TEMP SAVE ALFA E:(20) M:(18)
058159,000211: 27,3004 20173 0 -6,1
058160,000212: 27,3005 75446 ABS SQRT # E:(10) M:(9)
058161,000213: 27,3006 77701 NORM
058162,000214: 27,3007 00050 X2 # X2 = -NA
058163,000215: 27,3010 00031 STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA)
058164,000216: 27,3011 75316 DSQ SIGN # NOT SO ACCURATE, BUT OK
058165,000217: # ALFA FROM PDL+2 E:(20) M:(18)
058166,000218: 27,3012 55254 BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA
058167,000219: 27,3013 57015 +2
058168,000220: 27,3014 15322 TFF1/4
058169,000221: 27,3015 00027 +2 STORE TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
058170,000222: 27,3016 77616 DUMPCNIC RVQ
058171,000223: # 39 W
058172,000224: # Page 1368
058173,000225: # SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67
058174,000226: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
058175,000227: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
058176,000228: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
058177,000229: # ALSO IMPROVE ACCURACY OF RAPO.
058178,000230:
058179,000231: # FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
058180,000232: # APOGEE RADIUS FOR A GENERAL CONIC.
058181,000233: # PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY
058182,000234: # RP = P/(1+E) RA = (1+E) / ALFA
058183,000235: # WHERE 2
058184,000236: # E = 1 - P ALFA
058185,000237: # IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
058186,000238: # 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
058187,000239: # 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
058188,000240: # 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
058189,000241:
058190,000242: # THIS SUBROUTINE REQUIRED THE SIGNED RECIPROCAL SEMI-MAJOR AXIS, ALFA, AND SEMI-LATUS RECTUM AS DATA.
058191,000243:
058192,000244: # CALLING SEQUENCE: CALL
058193,000245: # TFFRP/RA
058194,000246: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
058195,000247: # C(MPAC) UNSPECIFIED
058196,000248:
058197,000249: # SUBROUTINES CALLED: NONE
058198,000250:
058199,000251: # NORMAL EXIT MODE: RVQ
058200,000252: # IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
058201,000253: # OTHERWISE, RAPO = POSMAX.
058202,000254:
058203,000255: # ALARMS: NONE
058204,000256:
058205,000257: # OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
058206,000258: # RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
058207,000259: # RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER
058208,000260: # PUSHLOC AT PDL+0
058209,000261:
058210,000262: # ERASABLE INITIALIZATION REQUIRED:
058211,000263: # TFFALFA E:(26-NR) M 1/SEMI-MAJOR AXIS LEFT BY TFFCONIC
058212,000264: # M:(24-NR)
058213,000265: # TFFNP E:(-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC
058214,000266: # M:(-36+2NR)
058215,000267: # X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC
058216,000268: # X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC
058217,000269:
058218,000270: # DEBRIS: QPRET, PDL+0 ... PDL+1
058219,000271:
058220,000272: # Page 1369
058221,000273: 27,3017 RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27)
058222,000274: 27,3017 RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27)
058223,000275:
058224,000276: 27,3017 41345 TFFRP/RA DLOAD DMP
058225,000277: 27,3020 00033 TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
058226,000278: 27,3021 00035 TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
058227,000279: 27,3022 57457 SR* DCOMP # ALFA P (-12+NR)
058228,000280: 27,3023 20571 0 -8D,1 # ALFA P (-4)
058229,000281: 27,3024 51415 DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT)
058230,000282: # (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
058231,000283: 27,3025 17357 DP2(-4)
058232,000284: 27,3026 43366 SQRT DAD # E SQ = (1- P ALFA) (-4)
058233,000285: 27,3027 15322 TFF1/4
058234,000286: 27,3030 55206 PUSH BDDV # (1+E) (-2) TO PDL+0
058235,000287: 27,3031 00035 TFFNP # LCP M E:(-38+2NR) M:(-36+2NR)
058236,000288: 27,3032 53657 SR* SR* # (DOES SR THEN SL TO AVOID OVFL)
058237,000289: 27,3033 20601 0,1 # X1=-NR
058238,000290: 27,3034 20572 0 -7,1 # (EFFECTIVE SL)
058239,000291: 27,3035 14017 STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27)
058240,000292: # (1+E) (-2) FROM PDL+0
058241,000293: 27,3036 41005 DMP BOVB
058242,000294: 27,3037 00027 TFF1/ALF # E:(-22-2NA) M:(-20-2NA)
058243,000295: 27,3040 57343 TCDANZIG # CLEAR OVFIND, IF ON.
058244,000296: 27,3041 53654 BZE SL*
058245,000297: 27,3042 57051 MAXRA # SET POSMAX IF ALFA=0
058246,000298: 27,3043 57603 0 -5,2 # -5+NA
058247,000299: 27,3044 40057 SL* BOV
058248,000300: 27,3045 57576 0,2
058249,000301: 27,3046 57051 MAXRA # SET POSMAX IF OVFL.
058250,000302: 27,3047 77644 BPL # CONTINUE WITH VALID RAPO.
058251,000303: 27,3050 57053 +3
058252,000304: 27,3051 77745 MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO =
058253,000305: 27,3052 17363 NEARONE # POSMAX AS A TAG.
058254,000306: 27,3053 00021 +3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27)
058255,000307: 27,3054 77616 DUMPRPRA RVQ
058256,000308: # 30 W
058257,000309: # Page 1370
058258,000310: # SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67
058259,000311: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
058260,000312: # MOD BY: RR BAIRNSFATHER
058261,000313: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67
058262,000314: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67
058263,000315: # MOD BY: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST)
058264,000316: # MOD BY: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU.
058265,000317: # MOD BY: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
058266,000318:
058267,000319: # FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
058268,000320: # VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER. THE POSITION VECTOR
058269,000321: # RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
058270,000322: # THE EQUATIONS ARE:
058271,000323:
058272,000324: # Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE) LEQ +- LCE/SQRT(ALFA)
058273,000325: # __ __
058274,000326: # Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA)
058275,000327:
058276,000328: # Z = NUM / DEN LEQ +- 1/SQRT(ALFA)
058277,000329:
058278,000330: # WHERE, IF INBOUND
058279,000331: # NUM = RTERM -RN LEQ +- 2 LCE/ALFA
058280,000332: # DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA)
058281,000333:
058282,000334: # AND, IF OUTBOUND
058283,000335: # NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA)
058284,000336: # DEN = 2 - ALFA (RTERM + RN). LEQ +- 2 LCE
058285,000337:
058286,000338: # IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
058287,000339: # THEN X = ALFA Z Z
058288,000340: # AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
058289,000341: # EXCEPT IF ALFA PNZ, AND IF TFF NEG,
058290,000342: # THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
058291,000343: # OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
058292,000344: # THEN X = 1/ALFA Z Z
058293,000345: # AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
058294,000346: # WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
058295,000347: # 2 3 2
058296,000348: # 1/3 - X/5 + X /7 - X /8 ... (X < 1.0)
058297,000349:
058298,000350: # CALLING SEQUENC: TIME TO RTERM TIME TO PERIGEE
058299,000351: # CALL CALL
058300,000352: # CALCTFF CALCTPER
058301,000353: # C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M
058302,000354: # FOR EITHER, E:(-29) M:(-27)
058303,000355: # FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D.
058304,000356: # Page 1371
058305,000357:
058306,000358: # SUBROUTINES CALLED: T(X), VIA RTB
058307,000359:
058308,000360: # NORMAL EXIT MODE: RVQ
058309,000361: # HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE.
058310,000362: # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
058311,000363: # B. (THIS OPTION IS NO LONGER USED.)
058312,000364: # C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
058313,000365: # THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
058314,000366:
058315,000367: # OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE
058316,000368: # TFFX (0) X LEFT FOR ENTRY DISPLAY TFF ROUTINES
058317,000369: # NRTERM E:(-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES
058318,000370: # M:(-27+NR)
058319,000371: # TFFTEM E:(-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
058320,000372: # M:(-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
058321,000373: # NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
058322,000374: # RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED.
058323,000375: # TFFQ1 E:(-16) M:(-15) PDL 14D
058324,000376: # TFFDELQ E:(-16) M:(-15) PDL 10D
058325,000377: # PUSHLOC AT PDL+0
058326,000378:
058327,000379: # ERASABLE INITIALIZATION REQUIRED:
058328,000380: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER
058329,000381: # VONE' E:(+10) M:(+9) VN/SQRT(NU) LEFT BY TFF/CONIC
058330,000382: # RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC
058331,000383: # C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER
058332,000384:
058333,000385: # THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
058334,000386: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC.
058335,000387: # NRMAG E:(-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC
058336,000388: # M:(-27+NR)
058337,000389: # X1 -NR, NORM COUNT LEFT BY TFFCONIC
058338,000390: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC
058339,000391: # M:(-36+2N4)
058340,000392: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC
058341,000393: # M:(24-NR)
058342,000394: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC
058343,000395: # M:(9+NA)
058344,000396: # X2 -NA, NORMCOUNT LEFT BY TFFCONIC
058345,000397: # TFF1/ALF E:(-22-2NA) SIGNED SEMI-MAJOR AXIS, WEIGHTED BY NA LEFT BY TFFCONIC
058346,000398: # M:(-20-2NA)
058347,000399:
058348,000400: # DEBRIS: QPRET, PDL+0 ... PDL+3
058349,000401: # RTERM E:(-29) M(-27) RTERM, TERMINAL RADIUS LENGTH
058350,000402: # RAPO E:(-29) M(-27) PDL 16D (=NRTERM)
058351,000403: # RPER E:(-29) M(-27) PDL 14D (=TFFQ1)
058352,000404:
058353,000405: # Page 1372
058354,000406: 27,3055 77614 CALCTPER SETGO # ENTER WITH RPER IN MPAC
058355,000407: 27,3056 03436 TFFSW
058356,000408: 27,3057 57062 +3
058357,000409: 27,3060 77614 CALCTFF CLEAR # ENTER WITH RTERM IN MPAC
058358,000410: 27,3061 03676 TFFSW
058359,000411: 27,3062 00023 +3 STORE RTERM # E:(-29) M:(-27)
058360,000412: 27,3063 77657 SL*
058361,000413: 27,3064 20201 0,1 # X1=-NR
058362,000414: 27,3065 00021 STORE NRTERM # RTERM E:(-29+NR) M:(-27+NR)
058363,000415: 27,3066 44205 DMP BDSU
058364,000416: 27,3067 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
058365,000417: 27,3070 15322 TFF1/4
058366,000418: 27,3071 41206 PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0
058367,000419: 27,3072 00021 NRTERM # E:(-29+NR) M:(-27+NR)
058368,000420: 27,3073 53725 PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2
058369,000421: # E:(-32+NR) M:(-30+NR)
058370,000422: 27,3074 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
058371,000423: 27,3075 20573 0 -6,1 # X1 = -NR
058372,000424: 27,3076 43276 DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT
058373,000425: # RTERM(2-ALFA RTERM) FROM PDL +2
058374,000426: # E:(-32+NR) M:(-30+NR)
058375,000427: 27,3077 77657 SR* # LEAVE E:(-32) M:(-30)
058376,000428: 27,3100 20601 0,1 # X1 = -NR
058377,000429: 27,3101 71214 BOFF DLOAD # CHECK TFF /TPER SWITCH
058378,000430: 27,3102 03756 TFFSW
058379,000431: 27,3103 57105 +2 # IF TFF, CONTINUE
058380,000432: 27,3104 15332 TFFZEROS # IF TPER, SET Q2 = 0
058381,000433: 27,3105 75440 +2 BMN SQRT # E:(-16) M:(-15)
058382,000434: 27,3106 57240 MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE
058383,000435: # RESET PDL, SET TFF=POSMAX, AND EXIT.
058384,000436:
058385,000437: 27,3107 41076 DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0
058386,000438: 27,3110 57343 TCDANZIG # ANY PORT IN A STORM.
058387,000439: 27,3111 24045 STOVL TFFTEM # Q2 E:(-16) M:(-15)
058388,000440: 27,3112 02372 VONE' # VN/SQRT(MU) E:(10) M:(9)
058389,000441: 27,3113 52441 DOT SL3
058390,000442: 27,3114 02327 RONE # SAVED RN. E:(-29) M:(-27)
058391,000443: 27,3115 00017 STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST.
058392,000444: # E:(-16) M:(-15)
058393,000445: 27,3116 44240 BMN BDSU
058394,000446: 27,3117 57140 INBOUND # USE ALTERNATE Z
058395,000447: 27,3120 00045 TFFTEM # Q2 E:(-16) M:(-15)
058396,000448:
058397,000449: # OUTBOUND Z CALC CONTINUES HERE
058398,000450:
058399,000451: 27,3121 14043 STODL TFFX # NUM=Q2-Q1 E:(-16) M:(-15)
058400,000452: 27,3122 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
058401,000453: 27,3123 44205 DMP BDSU
058402,000454: # Page 1373
058403,000455: 27,3124 00041 NRMAG # RMAG E:(-29+NR) M:(-27+NR)
058404,000456: # (2-RTERM ALFA) (-3) FROM PDL+0
058405,000457: 27,3125 51406 SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16)
058406,000458: # M:(-3) OR (-15)
058407,000459: 27,3126 40015 DAD BOV # INDETERMINANCY TEST
058408,000460: 27,3127 17351 LIM(-22) # =1.0-B(-22)
058409,000461: 27,3130 57151 TFFXTEST # GO IF DEN >/= B(-22)
058410,000462: 27,3131 65345 DLOAD PDDL # SET DEN=0 OTHERWISE
058411,000463: 27,3132 15332 TFFZEROS
058412,000464: # XCH ZERO WITH PDL+0
058413,000465: 27,3133 57545 DLOAD DCOMP
058414,000466: 27,3134 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
058415,000467: 27,3135 71240 BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90.
058416,000468: 27,3136 57245 TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
058417,000469:
058418,000470: # Z INDET. AT PERIGEE FOR PARAB OR HYPERB.
058419,000471: 27,3137 77616 DUMPTFF1 RVQ # RETURN TFF =0
058420,000472:
058421,000473: # INBOUND Z CALC CONTINUES HERE
058422,000474:
058423,000475: 27,3140 77745 INBOUND DLOAD # RESET PDL+0
058424,000476: 27,3141 45345 DLOAD DSU # ALTERNATE Z CALC
058425,000477: 27,3142 00023 RTERM # E:(-29) M:(-27)
058426,000478: 27,3143 00015 RMAG1 # E:(-29) M:(-27)
058427,000479: 27,3144 14043 STODL TFFX # NUM=RTERM-RN E:(-29) M:(-27)
058428,000480: 27,3145 00045 TFFTEM # Q2 E:(-16) M:(-15)
058429,000481: 27,3146 52015 DAD GOTO
058430,000482: 27,3147 00017 TFFQ1 # Q1 E:(-16) M:(-15)
058431,000483: 27,3150 57125 SAVEDEN # DEN = Q2+Q1 E:(-16) M:(-15)
058432,000484:
058433,000485: 27,3151 65215 TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2) E:(-3) OR (-16)
058434,000486: # M:(-3) OR (-15)
058435,000487: 27,3152 17353 DP(-22) # RESTORE ABS(DEN) TO MPAC
058436,000488: 27,3153 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
058437,000489: 27,3154 53605 DMP SR*
058438,000490: 27,3155 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
058439,000491: 27,3156 57201 0 -3,2 # X2=-NA
058440,000492: 27,3157 77671 DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16)
058441,000493: # M:(-3) OR (-15)
058442,000494: # ABS(DEN) FROM PDL+2 E:(-3) OR (-16)
058443,000495: # M:(-3) OR (-15)
058444,000496: 27,3160 40145 DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL)
058445,000497: 27,3161 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
058446,000498: 27,3162 57243 TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90
058447,000499:
058448,000500: # OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
058449,000501:
058450,000502: 27,3163 45471 DDV STADR
058451,000503: # DEN FROM PDL+0 E:(-3) OR (-16)
058452,000504: # M:(-3) OR (-15)
058453,000505: 27,3164 77732 STORE TFFTEM # Z SAVE FOR SIGN OF SDELF.
058454,000506: # Page 1374
058455,000507: # E:(-13) M:(-12)
058456,000508: 27,3165 63406 PUSH DSQ # Z TO PDL+0
058457,000509: 27,3166 41206 PUSH DMP # Z SQ TO PDL+2 E:(-26) M:(-24)
058458,000510: 27,3167 00035 TFFNP # LC P E:(-38+2NR) M:(-36+NR)
058459,000511: 27,3170 75261 SL SIGN
058460,000512: 27,3171 20206 5
058461,000513: 27,3172 00045 TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
058462,000514: 27,3173 14045 STODL TFFTEM # P ZSQ E:(-59+2NR) M:(-55+2NR)
058463,000515: # (ARG IS USED IN TFF/TRIG)
058464,000516: # ZSQ FROM PDL+2 E:(-26) M:(-24)
058465,000517: 27,3174 41206 PUSH DMP # RESTORE PUSH LOC
058466,000518: 27,3175 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
058467,000519: 27,3176 77657 SL*
058468,000520: 27,3177 20201 0,1 # X1=-NR
058469,000521: 27,3200 00043 STORE TFFX # X
058470,000522: 27,3201 41234 RTB DMP
058471,000523: 27,3202 57325 T(X) # POLY
058472,000524: # ZSQ FROM PDL+2 E:(-26) M:(-24)
058473,000525: 27,3203 44302 SR2 BDSU # 2 ZSQ T(X) E:(-29) M:(-27)
058474,000526: 27,3204 00023 RTERM # RTERM E:(-29) M:(-27)
058475,000527: 27,3205 41215 DAD DMP
058476,000528: 27,3206 00015 RMAG1 # E:(-29) M:(-27)
058477,000529: # Z FROM PDL+0 E:(-13) M:(-12)
058478,000530: 27,3207 51042 SR3 BPL # TFF SQRT(MU) E:(-45) M:(-42)
058479,000531: 27,3210 57231 ENDTFF # (NO PUSH UP)
058480,000532: 27,3211 75206 PUSH SIGN # TFF SQRT(MU) TO PDL+0
058481,000533: 27,3212 00017 TFFQ1 # Q1 FOR GONEPAST TEST
058482,000534: 27,3213 71244 BPL DLOAD # GONE PAST ?
058483,000535: 27,3214 57235 NEGTFF # YES. TFF < 0.
058484,000536: 27,3215 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
058485,000537: 27,3216 51076 DCOMP BPL # ALFA > 0 ?
058486,000538: 27,3217 57235 NEGTFF # NO. TFF IS NEGATIVE.
058487,000539:
058488,000540: # CORRECT FOR ORBITAL PERIOD.
058489,000541:
058490,000542: 27,3220 77676 DCOMP # YES. CORRECT FOR ORB PERIOD.
058491,000543: 27,3221 56205 DMP DDV
058492,000544: 27,3222 17347 PI/16 # 2 PI (-5)
058493,000545: 27,3223 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
058494,000546: 27,3224 53657 SL* SL*
058495,000547: 27,3225 57602 0 -4,2 # X2=-NA
058496,000548: 27,3226 57602 0 -4,2
058497,000549: 27,3227 43257 SL* DAD
058498,000550: 27,3230 57576 0,2
058499,000551: # TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42)
058500,000552: 27,3231 40005 ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
058501,000553: 27,3232 00037 TFF/RTMU # E:(17) M:(14)
058502,000554: 27,3233 57241 MAXTFF # SET POSMAX IN OVFL.
058503,000555:
058504,000556: 27,3234 77616 DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC.
058505,000557:
058506,000558: # Page 1375
058507,000559: 27,3235 77745 NEGTFF DLOAD
058508,000560: # TFF SQRT(MU) FROM PDL+0, NEGATIVE.
058509,000561: 27,3236 77650 GOTO
058510,000562: 27,3237 57231 ENDTFF
058511,000563:
058512,000564: 27,3240 77745 MAXTFF1 DLOAD # RESET PDL
058513,000565: 27,3241 43545 MAXTFF DLOAD RVQ
058514,000566: 27,3242 17363 NEARONE
058515,000567:
058516,000568: # TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
058517,000569:
058518,000570: # NUM FROM TFFX. E:(-16) OR (-29)
058519,000571: # M:(-15) OR (-27)
058520,000572: 27,3243 77712 TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25)
058521,000573: 27,3244 41465 BDDV PUSH # TEMP SAVE D/N IN PDL+0
058522,000574: # DEN FROM PDL+0 E:(-3)/(-16) M:(-3)/(-15)
058523,000575: # N/D TO PDL+0 E:(11) M:(10)
058524,000576: 27,3245 45345 TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
058525,000577: 27,3246 00045 TFFTEM # Q2 E:(-16) M:(-15)
058526,000578: 27,3247 00017 TFFQ1 # Q1 E:(-16) M:(-15)
058527,000579: 27,3250 14013 STODL TFFDELQ # Q2-Q1 E:(-16) M:(-15)
058528,000580: # D/N FROM PDL+0
058529,000581: 27,3251 77626 STADR
058530,000582: 27,3252 77732 STORE TFFTEM # D/N E:(11) M:(10)
058531,000583: 27,3253 53605 DMP SL*
058532,000584: 27,3254 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
058533,000585: 27,3255 57576 0,2 # 1/ALFA Z E:(-11-NA) M:(-10-NA)
058534,000586: 27,3256 41206 PUSH DMP # TO PDL+0
058535,000587: 27,3257 00045 TFFTEM # 1/Z E:(11) M:(10
058536,000588: 27,3260 41057 SL* BOVB
058537,000589: 27,3261 57576 0,2 # X2= -NA
058538,000590: 27,3262 45707 SIGNMPAC # IN CASE X= 1.0, CONTINUE
058539,000591: 27,3263 00043 STORE TFFX # X=1/ALFA ZSQ
058540,000592: 27,3264 41234 RTB DMP
058541,000593: 27,3265 57325 T(X) # POLY
058542,000594: 27,3266 00043 TFFX
058543,000595: 27,3267 45242 SR3 DSU
058544,000596: 27,3270 17355 DP2(-3)
058545,000597: 27,3271 41405 DMP PUSH # 2(X T(X)-1) /Z ALFA E:(-15-NA)
058546,000598: # M:(-14-NA)
058547,000599: # 1/ALFA Z FROM PDL+0 E:(-11-NA)
058548,000600: # M:(-10-NA)
058549,000601: 27,3272 41345 DLOAD DMP # GET SIGN FOR SDELF
058550,000602: 27,3273 00045 TFFTEM # 1/Z E:(11) M:(10)
058551,000603: 27,3274 00015 RMAG1 # E:(-29) M:(-27)
058552,000604: 27,3275 43312 SL2 DAD
058553,000605: 27,3276 00017 TFFQ1 # Q1 E:(-16) M:(-15)
058554,000606: 27,3277 14045 STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15)
058555,000607: 27,3300 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
058556,000608: 27,3301 53605 DMP SL* # CALC FOR ARG FOR TFF/TRIG.
058557,000609: # Page 1376
058558,000610: 27,3302 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
058559,000611: 27,3303 57575 1,2 # X2=-NA
058560,000612: 27,3304 53765 SIGN SL*
058561,000613: 27,3305 00045 TFFTEM # AFFIX SIGN FOR SDELF
058562,000614: 27,3306 57576 0,2
058563,000615: 27,3307 14045 STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR)
058564,000616: # (ARG FOR USE IN TFF/TRIG)
058565,000617: 27,3310 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
058566,000618: 27,3311 41366 SQRT DMP
058567,000619: 27,3312 17347 PI/16 # PI (-4)
058568,000620: 27,3313 77615 DAD
058569,000621: # 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA)
058570,000622: # M:(-14-NA)
058571,000623: 27,3314 45257 SL* DSU
058572,000624: 27,3315 57577 0 -1,2
058573,000625: 27,3316 00013 TFFDELQ # Q2-Q1 E:(-16) M:(-15)
058574,000626: 27,3317 53605 DMP SL*
058575,000627: 27,3320 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
058576,000628: 27,3321 57601 0 -3,2
058577,000629: 27,3322 52057 SL* GOTO
058578,000630: 27,3323 57602 0 -4,2
058579,000631: 27,3324 57231 ENDTFF # TFF SQRT(MU) IN MPAC E:(-145) M:(-42)
058580,000632:
058581,000633: # Page 1377
058582,000634: # PROGRAM NAME: T(X) DATE: 01.17.67
058583,000635: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
058584,000636: # MOD BY: RR BAIRNSFATHER
058585,000637:
058586,000638: # FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
058587,000639: # CALCTPER TO APPROXIMATE THE SERIES
058588,000640: # 2 3
058589,000641: # 1/3 -X/5 +X /7 -X /9 ...
058590,000642:
058591,000643: # WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1
058592,000644: # X = 1/(ALFA Z Z) IF ALFA Z Z G 1
058593,000645:
058594,000646: # ALSO X IS NEG FOR HYPERBOLIC ORBITS
058595,000647: # X = 0 FOR PARABOLIC ORBITS
058596,000648: # X IS POSITIVE FOR ELLIPTIC ORBITS
058597,000649:
058598,000650: # FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
058599,000651: # DEVIATION FROM THE SERIES OF 2 E-5. (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
058600,000652: # MAX PROGRAM AUTOCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).)
058601,000653:
058602,000654: # CALLING SEQUENCE: RTB
058603,000655: # T(X)
058604,000656: # C(MPAC) = X
058605,000657:
058606,000658: # SUBROUTINE CALLED: NONE
058607,000659:
058608,000660: # NORMAL EXIT MODE: TC TANZIG
058609,000661:
058610,000662: # ALARMS: NONE
058611,000663:
058612,000664: # OUTPUT: C(MPAC) = T(X)
058613,000665:
058614,000666: # ERASABLE INITIALIZATION REQUIRED:
058615,000667: # C(MPAC) = X
058616,000668:
058617,000669: # DEBRIS: NONE
058618,000670:
058619,000671: 27,3325 07171 T(X) TC POLY
058620,000672: 27,3326 00004 DEC 4 B-14 # N-1
058621,000673: 27,3327 12525 12525 2DEC 3.333333333 E-1
058622,000674: 27,3331 71463 57703 2DEC* -1.999819135 E-1*
058623,000675: 27,3333 04423 17645 2DEC* 1.418148467 E-1*
058624,000676: 27,3335 74604 43667 2DEC* -1.01310997 E-1*
058625,000677: 27,3337 01626 37256 2DEC* 5.609004986 E-2*
058626,000678: 27,3341 77404 52071 2DEC* -1.536156925 E-2*
058627,000679:
058628,000680: 27,3343 06030 ENDT(X) TC DANZIG
058629,000681:
058630,000682: 27,3344 27,3343 TCDANZIG = ENDT(X)
058631,000683:
058632,000684: # Page 1378
058633,000685: # TFF CONSTANTS
058634,000686:
058635,000687: 32,3755 BANK 32
058636,000688:
058637,000689: 27,2000 SETLOC TOF-FF1
058638,000690: 27,2000 BANK
058639,000691:
058640,000692: # # NOTE: ADJUSTED MUE FOR NEAR EARTH TRAJ.
058641,000693: # MUE = 3.990815471 E10 # M CUBE/CS SQ
058642,000694: # RTMUE = 1.997702549 E5 B-18 # MODIFIED EARTH MU
058643,000695:
058644,000696: 27,3344 24775 30424 1/RTMU 2DEC* .5005750271 E-5 B17* # MODIFIED EARTH MU
058645,000697:
058646,000698: # # NOTE: ADJUSTED MUE FOR NEAR EARTH TRAJ.
058647,000699: # MUM = 4.902778 E8 # M CUBE/CS SQ
058648,000700: # RTMUM 2DEC* 2.21422176 E4 B-18*
058649,000701: 27,3346 06220 37553 PI/16 2DEC 3.141592653 B-4
058650,000702: 27,3350 37777 37700 LIM(-22) 2OCT 3777737700 # 1.0 -B(-22)
058651,000703: 27,3352 00000 00100 DP(-22) 2OCT 0000000100 # B(-22)
058652,000704: 27,3354 04000 00000 DP2(-3) 2DEC 1 B-3
058653,000705: 27,3356 02000 00000 DP2(-4) 2DEC 1 B-4 # 1/16
058654,000706:
058655,000707: # RPAD1 2DEC 6373338 B-29 # M (-29) = 20909901.57 FT
058656,000708: 27,3360 22,3310 RPAD1 = RPAD
058657,000709:
058658,000710: 27,3360 00305 11205 R300K 2DEC 6464778 B-29 # (-29) M
058659,000711: 27,3362 37777 37777 NEARONE 2DEC .999999999
058660,000712: 27,3364 26,3331 TFFZEROS EQUALS HI6ZEROS
058661,000713: 27,3364 26,3321 TFF1/4 EQUALS HIDP1/4
058662,000714:
058663,000715:
058664,000716:
End of include-file TIME_OF_FREE_FALL.agc. Parent file is MAIN.agc