Proof TIME_OF_FREE_FALL #264 (#396)

* Proof FIXED_FIXED_CONSTANT_POOL (#207)

* wip(pp. 1373-1377): Proof TIME_OF_FREE_FALL #264

* wip(pp. 1373-1383): Proof TIME_OF_FREE_FALL #264

* done(pp. 1373-1388): Proof TIME_OF_FREE_FALL #264
pull/538/head
Glenn Dwiyatcita 2019-09-11 21:00:39 +02:00 committed by James Harris
parent 68c072a49e
commit 5de7ff6517
1 changed files with 263 additions and 290 deletions

View File

@ -29,55 +29,54 @@
# Colossus 2A # Colossus 2A
# Page 1373 # Page 1373
# THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER # THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER
# KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE, AND 1/SQRT(MU) AT THE # KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE AND 1/SQRT(MU) AT THE
# APPROPRIATE SCALE LEVEL FOR THE PROPER PRIMARY BODY. # APPROPRIATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
#
# EARTH ORIGIN POSITION -29 METERS # EARTH ORIGIN POSITION -29 METERS
# VELOCITY -7 METERS/CENTISECOND # VELOCITY -7 METERS/CENTISECOND
# 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED) # 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED)
#
# MOON ORIGIN POSITION -27 METERS # MOON ORIGIN POSITION -27 METERS
# VELOCITY -5 METERS/CENTISECONDS # VELOCITY -5 METERS/CENTISECONDS
# 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED) # 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED)
#
# ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES, # ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES,
# THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND # THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND
# LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN. # LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
# # THE USER MUST STORE THE STATE VECTOR IN RONE, VONE AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
# THE USER MUST STORE THE STATE VECTOR IN RONE, VONE, AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
# AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA, # AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA,
# THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED. # THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
# # PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
# PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
# RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY. # RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
# #
# THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST. # THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
#
# BELOW E: IS USED FOR EARTH ORIGIN SCALE
# M: IS USED FOR MOON ORIGIN SCALE
# #
# BELOW E: IS USED FOR EARTH ORIGIN SCALE
# M: IS USED FOR MOON ORIGIN SCALE
#TFFSW = 119D # BIT1 0 = CALCTFF 1 = CALCTPER #TFFSW = 119D # BIT1 0 = CALCTFF 1 = CALCTPER
TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15) TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15)
RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27) RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27)
#RPER = 14D # PERIGEE RADIUS M E: (-29) M: (-27) #RPER = 14D # PERIGEE RADIUS M E: (-29) M: (-27)
TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15) TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15)
#SDELF/2 # SIN(THETA) /2 #SDELF/2 # SIN(THETA) /2
CDELF/2 = 14D # COS(THETA) /2 CDELF/2 = 14D # COS(THETA) /2
#RAPO = 16D # APOGEE RADIUS M E: (-29) M: (-27) #RAPO = 16D # APOGEE RADIUS M E: (-29) M: (-27)
NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR) NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR)
# M: (-27+NR) # M: (-27+NR)
RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27) RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27)
TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18) TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18)
TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA) TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA)
# M: (-20-2 NA) # M: (-20-2 NA)
TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA) TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA)
TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR) TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR)
TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR) TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR)
# M: (-36+2 NR) # M: (-36+2 NR)
TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14) TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14)
NRMAG = 32D # PRESENT RADIUS M E: (-29+NR) NRMAG = 32D # PRESENT RADIUS M E: (-29+NR)
# M: (-27+NR) # M: (-27+NR)
TFFX = 34D # TFFX = 34D #
TFFTEM = 36D # TEMPORARY TFFTEM = 36D # TEMPORARY
# Page 1374 # Page 1374
@ -86,79 +85,70 @@ TFFTEM = 36D # TEMPORARY
# LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT # LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
# SUBROUTINES. # SUBROUTINES.
# -NR C(X1) = NORM COUNT OF RMAG # -NR C(X1) = NORM COUNT OF RMAG
# -NA C(X2) = NORM COUNT OF SQRT(ABS(ALFA)) # -NA C(X2)= NORM COUNT OF SQRT(ABS(ALFA))
# Page 1375 # Page 1375
# SUBROUTINE NAME: TFFCONIC DATE: 01.29.67 # SUBROUTINE NAME: TFFCONIC DATE: 01.29.67
# MOD NO: 0 LOG SECTION: TIME OF FREE FALL # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
# MOD BY: RR BAIRNSFATHER # MOD BY: RR BAIRNSFATHER
# MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67 # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
# MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU. # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU.
# MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
# # FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
# FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
# SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT. # SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT.
# THE EQUATIONS ARE: # THE EQUATIONS ARE:
# _ __ __ # - - -
# H = RN*VN ANGULAR MOMENTUM # H = RN*VN ANGULAR MOMENTUM
# _ _ # - -
# LCP = H.H / MU SEMI LATUS RECTUM # LCP = H.H / MU SEMI LATUS RECTUM
# __ __ # - -
# ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI MAJ AXIS, SIGNED # ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI MAJ AXIS, SIGNED
#
# AND ALFA IS POS FOR ELLIPTIC ORBITS # AND ALFA IS POS FOR ELLIPTIC ORBITS
# 0 FOR PARABOLIC ORBITS # 0 FOR PARABOLIC ORBITS
# NEG FOR HYPERBOLIC ORBITS. # NEG FOR HYPERBOLIC ORBITS.
# SUBROUTINE ALSO COMPUTES AND SAVES RMAG. # SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
#
# CALLING SEQUENCE: # CALLING SEQUENCE:
# TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM # TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
# 1/SQRT(MU). THE PROGRAM WILL SAVE IN TFF/RTMU. THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON # 1/SQRT(MU). THE PROGRAM WILL SAVE IN TFF/RTMU . THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
# ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE, # ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
# VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE # VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
# TFF ROUTINES. # TFF ROUTINES.
#
# ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED. # ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
#
# TO SPECIFY MU: DLOAD CALL # IF MU ALREADY STORED: CALL # TO SPECIFY MU: DLOAD CALL # IF MU ALREADY STORED: CALL
# YOURMU # 1/RTMU E:(17) M:(14) TFFCONMU # YOURMU # 1/RTMU E:(17) M:(14) TFFCONMU
# TFFCONIC # TFFCONIC
# PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D # PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
#
# SUBROUTINES CALLED: NONE # SUBROUTINES CALLED: NONE
# # NORMAL EXIT MODES: RVQ
# NORMAL EXIT MODES: RVQ # ALARMS: NONE
#
# ALARMS: NONE
#
# OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA. # OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
# RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH. # RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH.
# NRMAG E:(-29+NR) M RMAG, NORMALIZED # NRMAG E:(-29+NR) M RMAG, NORMALIZED
# M:(-27+NR) # M:(-27+NR)
# X1 -NR, NORM COUNT # X1 -NR, NORM COUNT
# TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC. # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC
# M:(-36+2NR) # M:(-36+2NR)
# TFF/RTMU E:(17) M:(14) 1/SQRT(MU) # TFF/RTMU E:(17) M:(14) 1/SQRT(MU)
# TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY,NORMLIZED. FOR VGAMCALC # TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY,NORMLIZED. FOR VGAMCALC
# TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR # TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR
# M:(24-NR) # M:(24-NR)
# TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED
# M:(9+NA) # M:(9+NA)
# Page 1376 # Page 1376
# X2 -NA, NORM COUNT # X2 -NA, NORM COUNT
# TFF1/ALF E:(-22-2NA) SIGNED SEMI MAJ AXIS, WEIGHTED BY NA # TFF1/ALF E: (-22-2NA) SIGNED SEMI MAJ AXIS, WEIGHTED BY NA
# M:(-20-2NA) # M: (-20-2NA)
# PUSHLOC AT PDL+0 # PUSHLOC AT PDL+0
# # THE FOLLOWING IS STORED IN GENERAL ERASABLE
# THE FOLLOWING IS STORED IN GENERAL ERASABLE # VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY
# VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY
#
# ERASABLE INITIALIZATION REQUIRED: # ERASABLE INITIALIZATION REQUIRED:
# RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER
# VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER # VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER
# TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU. # TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU.
# DEBRIS: QPRET. PDL+0 ... PDL+3
# #
# DEBRIS: QPRET PDL+0 ... PDL+3
BANK 33 BANK 33
SETLOC TOF-FF SETLOC TOF-FF
@ -166,34 +156,34 @@ TFFTEM = 36D # TEMPORARY
COUNT* $$/TFF COUNT* $$/TFF
TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E:(17) M:(14) TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E: (17) M: (14)
TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED. TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
RONE # SAVED RN. M E:(-29) M:(-27) RONE # SAVED RN. M E: (-29) M: (-27)
PDDL # UR/2 TO PDL+0, +5 PDDL # UR/2 TO PDL+0, +5
36D # MAGNITUDE 36D # MAGNITUDE
STORE RMAG1 # M E:(-29) M:(-27) STORE RMAG1 # M E:(-29) M:(-27)
NORM NORM
X1 # -NR X1 # -NR
STOVL NRMAG # RMAG M E:(-29+NR) M:(-27+NR) STOVL NRMAG # RMAG M E: (-29+NR) M: (-27+NR)
VONE # SAVED VN. M/CS E:(-7) M:(-5) VONE # SAVED VN. M/CS E: (-7) M: (-5)
VXSC VXSC
TFF/RTMU # E:(17) M:(14) TFF/RTMU # E:(17) M:(14)
STORE VONE' # VN/SQRT(MU) E:(10) M:(9) STORE VONE' # VN/SQRT(MU) E: (10) M: (9)
VXSC VXV VXSC VXV
NRMAG # E:(-29+NR) M:(-27+NR) NRMAG # E: (-29+NR) M: (-27+NR)
# UR/2 FROM PDL # UR/2 FROM PDL
VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR) VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR)
STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR) STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
# SAVE ALSO FOR VGAMCALC # SAVE ALSO FOR VGAMCALC
TFF1/4 TFF1/4
DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR) DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR)
NRMAG # RMAG M E:(-29+NR) M:(-27+NR) NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
VONE' # SAVED VN. E:(10) M:(9) VONE' # SAVED VN. E:(10) M:(9)
VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT. VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT.
STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18) STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18)
# SAVE FOR VGAMCALC # SAVE FOR VGAMCALC
SR* DAD SR* DAD
# Page 1377 # Page 1377
@ -201,7 +191,7 @@ TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
STADR STADR
# 2/RMAG FROM PDL+2 # 2/RMAG FROM PDL+2
STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR) STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
SL* PUSH # TEMP SAVE ALFA E:(20) M:(18) SL* PUSH # TEMP SAVE ALFA E:(20) M:(18)
0 -6,1 0 -6,1
ABS SQRT # E:(10) M:(9) ABS SQRT # E:(10) M:(9)
NORM NORM
@ -212,55 +202,47 @@ TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA
+2 +2
TFF1/4 TFF1/4
+2 STORE TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) +2 STORE TFF1/ALF # 1/ALFA E:(-22-2 NA) M:(-20-2 NA)
DUMPCNIC RVQ DUMPCNIC RVQ
# 39 W # 39 W
# Page 1378 # Page 1378
# SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67 # SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67
# MOD NO: 0 LOG SECTION: TIME OF FREE FALL # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
# MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67 # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
# MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
# ALSO IMPROVE ACCURACY OF RAPO. # ALSO IMPROVE ACCURACY OF RAPO.
# # FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
# FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
# APOGEE RADIUS FOR A GENERAL CONIC. # APOGEE RADIUS FOR A GENERAL CONIC.
# PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY # PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY
# RP = P/(1+E) RA = (1+E) / ALFA # RP = P /(1+E) RA = (1+E) / ALFA
# WHERE 2 # WHERE 2
# E = 1 - P ALFA # E = 1 - P ALFA
# IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE # IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
# 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA # 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
# 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA # 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
# 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE. # 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
#
# THIS SUBROUTINE REQUIRED THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA. # THIS SUBROUTINE REQUIRED THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA.
# # CALLING SEQUENCE: CALL
# CALLING SEQUENCE: CALL # TFFRP/RA
# TFFRP/RA
# PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D # PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
# C(MPAC) UNSPECIFIED # C(MPAC) UNSPECIFIED
#
# SUBROUTINES CALLED: NONE # SUBROUTINES CALLED: NONE
#
# NORMAL EXIT MODE: RVQ # NORMAL EXIT MODE: RVQ
# IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT. # IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
# OTHERWISE, RAPO = POSMAX. # OTHERWISE, RAPO = POSMAX.
#
# ALARMS: NONE # ALARMS: NONE
# # OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
# OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC. # RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
# RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG. # RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER
# RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER # PUSHLOC AT PDL+0
# PUSHLOC AT PDL+0
#
# ERASABLE INITIALIZATION REQUIRED: # ERASABLE INITIALIZATION REQUIRED:
# TFFALFA E:(26-NR) M 1/SEMI MAJ AXIS LEFT BY TFFCONIC # TFFALFA E:(26-NR) M 1/SEMI MAJ AXIS LEFT BY TFFCONIC
# M:(24-NR) # M:(24-NR)
# TFFNP E:(-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC # TFFNP E: (-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC
# M:(-36+2NR) # M: (-36+2NR)
# X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC # X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC
# X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC # X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC
#
# DEBRIS: QPRET, PDL+0 ... PDL+1 # DEBRIS: QPRET, PDL+0 ... PDL+1
# Page 1379 # Page 1379
@ -269,16 +251,16 @@ RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27)
TFFRP/RA DLOAD DMP TFFRP/RA DLOAD DMP
TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR) TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
TFFNP # LC P M E:(-38+2NR) M:(-36+2NR) TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
SR* DCOMP # ALFA P (-12+NR) SR* DCOMP # ALFA P (-12+NR)
0 -8D,1 # ALFA P (-4) 0 -8D,1 # ALFA P (-4)
DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT) DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT)
# (ABS PROTECTS SQRT IF E IS VERY NEAR 0) # (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
DP2(-4) DP2(-4)
SQRT DAD # E SQ = (1- P ALFA) (-4) SQRT DAD # E SQ = (1- P ALFA) (-4)
TFF1/4 TFF1/4
PUSH BDDV # (1+E) (-2) TO PDL+0 PUSH BDDV # (1+E) (-2) TO PDL+0
TFFNP # LCP M E:(-38+2NR) M:(-36+2NR) TFFNP # LCP M E:(-38+2NR) M:(-36+2NR)
SR* SR* # (DOES SR THEN SL TO AVOID OVFL) SR* SR* # (DOES SR THEN SL TO AVOID OVFL)
0,1 # X1=-NR 0,1 # X1=-NR
0 -7,1 # (EFFECTIVE SL) 0 -7,1 # (EFFECTIVE SL)
@ -288,7 +270,7 @@ TFFRP/RA DLOAD DMP
TFF1/ALF # E:(-22-2NA) M:(-20-2NA) TFF1/ALF # E:(-22-2NA) M:(-20-2NA)
TCDANZIG # CLEAR OVFIND, IF ON. TCDANZIG # CLEAR OVFIND, IF ON.
BZE SL* BZE SL*
MAXRA # SET POSMAX IF ALFA=0 MAXRA # SET POSMAX, IF ALFA=0
0 -5,2 # -5+NA 0 -5,2 # -5+NA
SL* BOV SL* BOV
0,2 0,2
@ -297,104 +279,105 @@ TFFRP/RA DLOAD DMP
+3 +3
MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO = MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO =
NEARONE # POSMAX AS A TAG. NEARONE # POSMAX AS A TAG.
+3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27) +3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27)
DUMPRPRA RVQ DUMPRPRA RVQ
# 30 W # 30 W
# Page 1380 # Page 1380
# SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67 # SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67
# MOD NO: 0 LOG SECTION: TIME OF FREE FALL # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
# MOD BY: RR BAIRNSFATHER # MOD BY: RR BAIRNSFATHER
# MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67 # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67
# MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67 # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67
# MOD BY: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST) # MOD BY: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST)
# MOD BY: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU. # MOD BY: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU.
# MOD BY: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES # MOD BY: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
# # FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
# FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND # VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM , SUPPLIED BY THE USER. THE POSITION VECTOR
# VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER. THE POSITION VECTOR
# RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE. # RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
# THE EQUATIONS ARE: # THE EQUATIONS ARE
#
# Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE) LEQ +- LCE/SQRT(ALFA) # Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE)) LEQ +- LCE/SQRT(ALFA)
# __ __ # - -
# Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA) # Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA)
#
# Z = NUM / DEN LEQ +- 1/SQRT(ALFA) # Z = NUM / DEN LEQ +- 1/SQRT(ALFA)
#
# WHERE, IF INBOUND # WHERE, IF INBOUND
# NUM = RTERM -RN LEQ +- 2 LCE/ALFA # NUM = RTERM -RN LEQ +- 2 LCE/ALFA
# DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA) # DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA)
#
# AND, IF OUTBOUND # AND, IF OUTBOUND
# NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA) # NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA)
# DEN = 2 - ALFA (RTERM + RN). LEQ +- 2 LCE # DEN = 2 - ALFA (RTERM + RN) . LEQ +- 2 LCE
#
# IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG) # IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
# THEN X = ALFA Z Z # THEN X = ALFA Z Z
# AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU) # AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
# EXCEPT IF ALFA PNZ, AND IF TFF NEG, # EXCEPT IF ALFA PNZ, AND IF TFF NEG,
# THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF # THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
# OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
# OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
# THEN X = 1/ALFA Z Z # THEN X = 1/ALFA Z Z
# AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU) # AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
# WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES # WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
# 2 3 2 # 2 3 2
# 1/3 - X/5 + X /7 - X /8 ... (X < 1.0) # 1/3 -X/5 +X /7 -X /9... (X < 1.0)
#
# CALLING SEQUENCE: TIME TO RTERM TIME TO PERIGEE # CALLING SEQUENCE: TIME TO RTERM TIME TO PERIGEE
# CALL CALL # CALL CALL
# CALCTFF CALCTPER # CALCTFF CALCTPER
# C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M # C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M
# FOR EITHER, E:(-29) M:(-27) # FOR EITHER, E: (-29) M: (-27)
# FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D. # FOR EITHER, PUSHLOC = PDL+0 , ARBITRARY IF LEQ 8D.
# Page 1381 # Page 1381
# #
# SUBROUTINES CALLED: T(X), VIA RTB # SUBROUTINES CALLED: T(X), VIA RTB
# # NORMAL EXIT MODE: RVQ
# NORMAL EXIT MODE: RVQ # HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE.
# HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE. # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
# A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD. # B. (THIS OPTION IS NO LONGER USED.)
# B. (THIS OPTION IS NO LONGER USED.) # C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
# C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO # THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
# THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
#
# OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE # OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE
# TFFX (0) X, LEFT FOR ENTRY DISPLAY TFF ROUTINES # TFFX (0) X, LEFT FOR ENTRY DISPLAY TFF ROUTINES
# NRTERM E:(-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES # NRTERM E: (-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES
# M:(-27+NR) # M: (-27+NR)
# TFFTEM E:(-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES # TFFTEM E: (-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
# M:(-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES # M: (-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
# NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:. # NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
# RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED. # RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED.
# TFFQ1 E:(-16) M:(-15) PDL 14D # TFFQ1 E:(-16) M:(-15) PDL 14D
# TFFDELQ E:(-16) M:(-15) PDL 10D # TFFDELQ E:(-16) M:(-15) PDL 10D
# PUSHLOC AT PDL+0 # PUSHLOC AT PDL+0
#
# ERASABLE INITIALIZATION REQUIRED: # ERASABLE INITIALIZATION REQUIRED:
# RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER
# VONE' E:(+10) M:(+9) VN/SQRT(NU) LEFT BY TFF/CONIC # VONE' E:(+10) M:(+9) VN/SQRT(NU) LEFT BY TFF/CONIC
# RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC # RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC
# C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER # C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER
# #
# THE FOLLOWING ARE STORED IN THE PUSH LIST AREA. # THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
# TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC. # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC.
# NRMAG E:(-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC # NRMAG E: (-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC
# M:(-27+NR) # M: (-27+NR)
# X1 -NR, NORM COUNT LEFT BY TFFCONIC # X1 -NR, NORM COUNT LEFT BY TFFCONIC
# TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC # TFFNP E: (-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC
# M:(-36+2N4) # M: (-36+2NR)
# TFFALFA E:(26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC # TFFALFA E: (26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC
# M:(24-NR) # M: (24-NR)
# TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC
# M:(9+NA) # M:(9+NA)
# X2 -NA, NORM COUNT LEFT BY TFFCONIC # X2 -NA, NORM COUNT LEFT BY TFFCONIC
# TFF1/ALF E:(-22-2NA) SIGNED SEMIMAJ AXIS, WEIGHTED BY NA LEFT BY TFFCONIC # TFF1/ALF E:(-22-2NA) SIGNED SEMIMAJ AXIS, WEIGHTED BY NA LEFT BY TFFCONIC
# M:(-20-2NA) # M:(-20-2NA)
#
# DEBRIS: QPRET, PDL+0 ... PDL+3 # DEBRIS: QPRET, PDL+0 ... PDL+3
# RTERM E:(-29) M(-27) RTERM, TERMINAL RADIUS LENGTH # RTERM E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH
# RAPO E:(-29) M(-27) PDL 16D (=NRTERM) # RAPO E:(-29) M:(-27) PDL 16D (=NRTERM)
# RPER E:(-29) M(-27) PDL 14D (=TFFQ1) # RPER E:(-29) M:(-27) PDL 14D (=TFFQ1)
# Page 1382 # Page 1382
CALCTPER SETGO # ENTER WITH RPER IN MPAC CALCTPER SETGO # ENTER WITH RPER IN MPAC
@ -402,54 +385,55 @@ CALCTPER SETGO # ENTER WITH RPER IN MPAC
+3 +3
CALCTFF CLEAR # ENTER WITH RTERM IN MPAC CALCTFF CLEAR # ENTER WITH RTERM IN MPAC
TFFSW TFFSW
+3 STORE RTERM # E:(-29) M:(-27) +3 STORE RTERM # E: (-29) M: (-27)
SL* SL*
0,1 # X1=-NR 0,1 # X1=-NR
STORE NRTERM # RTERM E:(-29+NR) M:(-27+NR) STORE NRTERM # RTERM E: (-29+NR) M: (-27+NR)
DMP BDSU DMP BDSU
TFFALFA # ALFA E:(26-NR) M:(24-NR) TFFALFA # ALFA E:(26-NR) M:(24-NR)
TFF1/4 TFF1/4
PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0 PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0
NRTERM # E:(-29+NR) M:(-27+NR) NRTERM # E: (-29+NR) M: (-27+NR)
PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2 PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2
# E:(-32+NR) M:(-30+NR) # E: (-32+NR) M: (-30+NR)
TFFNP # LC P E:(-38+2NR) M:(-36+2NR) TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
0 -6,1 # X1 = -NR 0 -6,1 # X1 = -NR
DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT
# RTERM(2-ALFA RTERM) FROM PDL +2 # RTERM(2-ALFA RTERM) FROM PDL+2
# E:(-32+NR) M:(-30+NR) # E: (-32+NR) M: (-30+NR)
SR* # LEAVE E:(-32) M:(-30) SR* # LEAVE E: (-32) M: (-30)
0,1 # X1 = -NR 0,1 # X1 = -NR
BOFF DLOAD # CHECK TFF /TPER SWITCH BOFF DLOAD # CHECK TFF / TPER SWITCH
TFFSW TFFSW
+2 # IF TFF, CONTINUE +2 # IF TFF, CONTINUE
TFFZEROS # IF TPER, SET Q2 = 0 TFFZEROS # IF TPER, SET Q2 = 0
+2 BMN SQRT # E:(-16) M:(-15) +2 BMN SQRT # E: (-16) M: (-15)
MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE
# RESET PDL, SET TFF=POSMAX, AND EXIT. # RESET PDL, SET TFF=POSMAX, AND EXIT.
DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0 DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0
TCDANZIG # ANY PORT IN A STORM. TCDANZIG # ANY PORT IN A STORM.
STOVL TFFTEM # Q2 E:(-16) M:(-15) STOVL TFFTEM # Q2 E: (-16) M: (-15)
VONE' # VN/SQRT(MU) E:(10) M:(9) VONE' # VN/SQRT(MU) E: (10) M: (9)
DOT SL3 DOT SL3
RONE # SAVED RN. E:(-29) M:(-27) RONE # SAVED RN. E: (-29) M: (-27)
STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST. STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST.
# E:(-16) M:(-15) # E: (-16) M: (-15)
BMN BDSU BMN BDSU
INBOUND # USE ALTERNATE Z INBOUND # USE ALTERNATE Z
TFFTEM # Q2 E:(-16) M:(-15) TFFTEM # Q2 E: (-16) M: (-15)
# OUTBOUND Z CALC CONTINUES HERE # OUTBOUND Z CALC CONTINUES HERE
STODL TFFX # NUM=Q2-Q1 E:(-16) M:(-15) STODL TFFX # NUM=Q2-Q1 E: (-16) M: (-15)
TFFALFA # ALFA E:(26-NR) M:(24-NR) TFFALFA # ALFA E: (26-NR) M: (24-NR)
DMP BDSU DMP BDSU
# Page 1383 # Page 1383
NRMAG # RMAG E:(-29+NR) M:(-27+NR) NRMAG # RMAG E: (-29+NR) M: (-27+NR)
# (2-RTERM ALFA) (-3) FROM PDL+0 # (2-RTERM ALFA) (-3) FROM PDL+0
SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16) SAVEDEN PUSH ABS # DEN TO PDL+0 E: (-3) OR (-16)
# M:(-3) OR (-15) # M: (-3) OR (-15)
DAD BOV # INDETERMINANCY TEST DAD BOV # INDETERMINANCY TEST
LIM(-22) # =1.0-B(-22) LIM(-22) # =1.0-B(-22)
TFFXTEST # GO IF DEN >/= B(-22) TFFXTEST # GO IF DEN >/= B(-22)
@ -457,7 +441,7 @@ SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16)
TFFZEROS TFFZEROS
# XCH ZERO WITH PDL+0 # XCH ZERO WITH PDL+0
DLOAD DCOMP DLOAD DCOMP
TFFALFA # ALFA E:(26-NR) M:(24-NR) TFFALFA # ALFA E: (26-NR) M:( 24-NR)
BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90. BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90.
TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
@ -465,21 +449,20 @@ SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16)
DUMPTFF1 RVQ # RETURN TFF =0 DUMPTFF1 RVQ # RETURN TFF =0
# INBOUND Z CALC CONTINUES HERE # INBOUND Z CALC CONTINUES HERE
INBOUND DLOAD # RESET PDL+0 INBOUND DLOAD # RESET PDL+0
DLOAD DSU # ALTERNATE Z CALC DLOAD DSU # ALTERNATE Z CALC
RTERM # E:(-29) M:(-27) RTERM # E: (-29) M: (-27)
RMAG1 # E:(-29) M:(-27) RMAG1 # E: (-29) M: (-27)
STODL TFFX # NUM=RTERM-RN E:(-29) M:(-27) STODL TFFX # NUM=RTERM-RN E: (-29) M: (-27)
TFFTEM # Q2 E:(-16) M:(-15) TFFTEM # Q2 E: (-16) M: (-15)
DAD GOTO DAD GOTO
TFFQ1 # Q1 E:(-16) M:(-15) TFFQ1 # Q1 E: (-16) M: (-15)
SAVEDEN # DEN = Q2+Q1 E:(-16) M:(-15) SAVEDEN # DEN = Q2+Q1 E: (-16) M: (-15)
TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2) E:(-3) OR (-16) TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2)) E: (-3) OR (-16)
# M:(-3) OR (-15) # M: (-3) OR (-15)
DP(-22) # RESTORE ABS(DEN) TO MPAC DP(-22) # RESTORE ABS(DEN) TO MPAC
TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27) TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
DMP SR* DMP SR*
TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA) TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
0 -3,2 # X2=-NA 0 -3,2 # X2=-NA
@ -488,46 +471,46 @@ TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2) E:(-3) OR (-16)
# ABS(DEN) FROM PDL+2 E:(-3) OR (-16) # ABS(DEN) FROM PDL+2 E:(-3) OR (-16)
# M:(-3) OR (-15) # M:(-3) OR (-15)
DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL) DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL)
TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27) TFFX # NUM E: (-16) OR (-29) M:(-15) OR (-27)
TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90 TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90
# OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN # OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
DDV STADR DDV STADR
# DEN FROM PDL+0 E:(-3) OR (-16) # DEN FROM PDL+0 E: (-3) OR (-16)
# M:(-3) OR (-15) # M: (-3) OR (-15)
STORE TFFTEM # Z SAVE FOR SIGN OF SDELF. STORE TFFTEM # Z SAVE FOR SIGN OF SDELF.
# Page 1384 # Page 1384
# E:(-13) M:(-12) # E: (-13) M: (-12)
PUSH DSQ # Z TO PDL+0 PUSH DSQ # Z TO PDL+0
PUSH DMP # Z SQ TO PDL+2 E:(-26) M:(-24) PUSH DMP # Z SQ TO PDL+2 E: (-26) M: (-24)
TFFNP # LC P E:(-38+2NR) M:(-36+NR) TFFNP # LC P E: (-38+2NR) M: (-36+2NR)
SL SIGN SL SIGN
5 5
TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY) TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
STODL TFFTEM # P ZSQ E:(-59+2NR) M:(-55+2NR) STODL TFFTEM # P ZSQ E: (-59+2NR) M: (-55+2NR)
# (ARG IS USED IN TFF/TRIG) # (ARG IS USED IN TFF/TRIG)
# ZSQ FROM PDL+2 E:(-26) M:(-24) # ZSQ FROM PDL+2 E: (-26) M: (-24)
PUSH DMP # RESTORE PUSH LOC PUSH DMP # RESTORE PUSH LOC
TFFALFA # ALFA E:(26-NR) M:(24-NR) TFFALFA # ALFA E: (26-NR) M: (24-NR)
SL* SL*
0,1 # X1=-NR 0,1 # X1=-NR
STORE TFFX # X STORE TFFX # X
RTB DMP RTB DMP
T(X) # POLY T(X) # POLY
# ZSQ FROM PDL+2 E:(-26) M:(-24) # ZSQ FROM PDL+2 E: (-26) M: (-24)
SR2 BDSU # 2 ZSQ T(X) E:(-29) M:(-27) SR2 BDSU # 2 ZSQ T(X) E: (-29) M: (-27)
RTERM # RTERM E:(-29) M:(-27) RTERM # RTERM E: (-29) M: (-27)
DAD DMP DAD DMP
RMAG1 # E:(-29) M:(-27) RMAG1 # E: (-29) M: (-27)
# Z FROM PDL+0 E:(-13) M:(-12) # Z FROM PDL+0 E: (-13) M: (-12)
SR3 BPL # TFF SQRT(MU) E:(-45) M:(-42) SR3 BPL # TFF SQRT(MU) E: (-45) M: (-42)
ENDTFF # (NO PUSH UP) ENDTFF # (NO PUSH UP)
PUSH SIGN # TFF SQRT(MU) TO PDL+0 PUSH SIGN # TFF SQRT(MU) TO PDL+0
TFFQ1 # Q1 FOR GONEPAST TEST TFFQ1 # Q1 FOR GONEPAST TEST
BPL DLOAD # GONE PAST ? BPL DLOAD # GONE PAST ?
NEGTFF # YES. TFF < 0. NEGTFF # YES. TFF < 0 .
TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) TFF1/ALF # 1/ALFA E: (-22-2NA) M: (-20-2NA)
DCOMP BPL # ALFA > 0 ? DCOMP BPL # ALFA > 0 ?
NEGTFF # NO. TFF IS NEGATIVE. NEGTFF # NO. TFF IS NEGATIVE.
@ -536,7 +519,7 @@ TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2) E:(-3) OR (-16)
DCOMP # YES. CORRECT FOR ORB PERIOD. DCOMP # YES. CORRECT FOR ORB PERIOD.
DMP DDV DMP DDV
PI/16 # 2 PI (-5) PI/16 # 2 PI (-5)
TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA) TFFRTALF # SQRT(ALFA) E: (10+NA) M: (9+NA)
SL* SL* SL* SL*
0 -4,2 # X2=-NA 0 -4,2 # X2=-NA
0 -4,2 0 -4,2
@ -544,10 +527,10 @@ TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2) E:(-3) OR (-16)
0,2 0,2
# TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42) # TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42)
ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42) ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
TFF/RTMU # E:(17) M:(14) TFF/RTMU # E: (17) M: (14)
MAXTFF # SET POSMAX IN OVFL. MAXTFF # SET POSMAX IN OVFL.
DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC. DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC.
# Page 1385 # Page 1385
NEGTFF DLOAD NEGTFF DLOAD
@ -561,24 +544,24 @@ MAXTFF DLOAD RVQ
# TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90. # TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
# NUM FROM TFFX. E:(-16) OR (-29) # NUM FROM TFFX. E: (-16) OR (-29)
# M:(-15) OR (-27) # M: (-15) OR (-27)
TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25) TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25)
BDDV PUSH # TEMP SAVE D/N IN PDL+0 BDDV PUSH # TEMP SAVE D/N IN PDL+0
# DEN FROM PDL+0 E:(-3)/(-16) M:(-3)/(-15) # DEN FROM PDL+0 E:(-3)/( 16) M:(-3)/(-15)
# N/D TO PDL+0 E:(11) M:(10) # N/D TO PDL+0 E: (11) M: (10)
TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0) TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
TFFTEM # Q2 E:(-16) M:(-15) TFFTEM # Q2 E: (-16) M: (-15)
TFFQ1 # Q1 E:(-16) M:(-15) TFFQ1 # Q1 E: (-16) M: (-15)
STODL TFFDELQ # Q2-Q1 E:(-16) M:(-15) STODL TFFDELQ # Q2-Q1 E: (-16) M: (-15)
# D/N FROM PDL+0 # D/N FROM PDL+0
STADR STADR
STORE TFFTEM # D/N E:(11) M:(10) STORE TFFTEM # D/N E: (11) M: (10)
DMP SL* DMP SL*
TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) TFF1/ALF # 1/ALFA E: (-22-2NA) M: (-20-2NA)
0,2 # 1/ALFA Z E:(-11-NA) M:(-10-NA) 0,2 # 1/ALFA Z E: (-11-NA) M: (-10-NA)
PUSH DMP # TO PDL+0 PUSH DMP # TO PDL+0
TFFTEM # 1/Z E:(11) M:(10) TFFTEM # 1/Z E: (11) M: (10)
SL* BOVB SL* BOVB
0,2 # X2= -NA 0,2 # X2= -NA
SIGNMPAC # IN CASE X= 1.0, CONTINUE SIGNMPAC # IN CASE X= 1.0, CONTINUE
@ -593,12 +576,12 @@ TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
# 1/ALFA Z FROM PDL+0 E:(-11-NA) # 1/ALFA Z FROM PDL+0 E:(-11-NA)
# M:(-10-NA) # M:(-10-NA)
DLOAD DMP # GET SIGN FOR SDELF DLOAD DMP # GET SIGN FOR SDELF
TFFTEM # 1/Z E:(11) M:(10) TFFTEM # 1/Z E: (11) M: (10)
RMAG1 # E:(-29) M:(-27) RMAG1 # E: (-29) M: (-27)
SL2 DAD SL2 DAD
TFFQ1 # Q1 E:(-16) M:(-15) TFFQ1 # Q1 E: (-16) M: (-15)
STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15) STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15
TFFNP # LC P E:(-38+2NR) M:(-36+2NR) TFFNP # LC P E: (-38+2NR) M: (-36+2NR)
DMP SL* # CALC FOR ARG FOR TFF/TRIG. DMP SL* # CALC FOR ARG FOR TFF/TRIG.
# Page 1386 # Page 1386
TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
@ -606,9 +589,9 @@ TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
SIGN SL* SIGN SL*
TFFTEM # AFFIX SIGN FOR SDELF TFFTEM # AFFIX SIGN FOR SDELF
0,2 0,2
STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR) STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR)
# (ARG FOR USE IN TFF/TRIG) # (ARG FOR USE IN TFF/TRIG)
TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
SQRT DMP SQRT DMP
PI/16 # PI (-4) PI/16 # PI (-4)
DAD DAD
@ -616,51 +599,43 @@ TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
# M:(-14-NA) # M:(-14-NA)
SL* DSU SL* DSU
0 -1,2 0 -1,2
TFFDELQ # Q2-Q1 E:(-16) M:(-15) TFFDELQ # Q2-Q1 E: (-16) M: (-15)
DMP SL* DMP SL*
TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
0 -3,2 0 -3,2
SL* GOTO SL* GOTO
0 -4,2 0 -4,2
ENDTFF # TFF SQRT(MU) IN MPAC E:(-145) M:(-42) ENDTFF # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
# Page 1387 # Page 1387
# PROGRAM NAME: T(X) DATE: 01.17.67 # PROGRAM NAME: T(X) DATE: 01.17.67
# MOD NO: 0 LOG SECTION: TIME OF FREE FALL # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
# MOD BY: RR BAIRNSFATHER # MOD BY: RR BAIRNSFATHER
# # FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
# FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
# CALCTPER TO APPROXIMATE THE SERIES # CALCTPER TO APPROXIMATE THE SERIES
# 2 3 # 2 3
# 1/3 -X/5 +X /7 -X /9 ... # 1/3 -X/5 +X /7 -X /9 ...
#
# WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1 # WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1
# X = 1/(ALFA Z Z) IF ALFA Z Z G 1 # X = 1/(ALFA Z Z ) IF ALFA Z Z G 1
#
# ALSO X IS NEG FOR HYPERBOLIC ORBITS # ALSO X IS NEG FOR HYPERBOLIC ORBITS
# X = 0 FOR PARABOLIC ORBITS # X = 0 FOR PARABOLIC ORBITS
# X IS POSITIVE FOR ELLIPTIC ORBITS # X IS POSITIVE FOR ELLIPTIC ORBITS
#
# FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM # FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
# DEVIATION FROM THE SERIES OF 2 E-5. (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING # DEVIATION FROM THE SERIES OF 2 E-5 (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
# MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).) # MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1). )
#
# CALLING SEQUENCE: RTB # CALLING SEQUENCE: RTB
# T(X) # T(X)
# C(MPAC) = X # C(MPAC) = X
#
# SUBROUTINE CALLED: NONE # SUBROUTINE CALLED: NONE
# # NORMAL EXIT MODE: TC DANZIG
# NORMAL EXIT MODE: TC DANZIG # ALARMS: NONE
# # OUTPUT: C(MPAC) = T(X)
# ALARMS: NONE
#
# OUTPUT: C(MPAC) = T(X)
#
# ERASABLE INITIALIZATION REQUIRED: # ERASABLE INITIALIZATION REQUIRED:
# C(MPAC) = X # C(MPAC) = X
# # DEBRIS: NONE
# DEBRIS: NONE
T(X) TC POLY T(X) TC POLY
DEC 4 # N-1 DEC 4 # N-1
@ -677,20 +652,22 @@ TCDANZIG = ENDT(X)
# Page 1388 # Page 1388
# TFF CONSTANTS # TFF CONSTANTS
BANK 32 BANK 32
SETLOC TOF-FF1 SETLOC TOF-FF1
BANK BANK
# # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ. # # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
#MUE = 3.990815471 E10 # M CUBE/CS SQ
#MUE = 3.990 815 471 E10 # M CUBE/CS SQ
#RTMUE = 1.997702549 E5 B-18* # MODIFIED EARTH MU #RTMUE = 1.997702549 E5 B-18* # MODIFIED EARTH MU
1/RTMU 2DEC* .5005750271 E-5 B17* # MODIFIED EARTH MU 1/RTMU 2DEC* .5005750271 E-5 B17* # MODIFIED EARTH MU
# # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ. # # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
#MUM = 4.902778 E8 # M CUBE/CS SQ
#MUM = 4.902 778 E8 # M CUBE /CS SQ
#RTMUM 2DEC* 2.21422176 E4 B-18* #RTMUM 2DEC* 2.21422176 E4 B-18*
PI/16 2DEC 3.141592653 B-4 PI/16 2DEC 3.141592653 B-4
LIM(-22) 2OCT 3777737700 # 1.0 -B(-22) LIM(-22) 2OCT 3777737700 # 1.0 -B(-22)
@ -698,13 +675,9 @@ DP(-22) 2OCT 0000000100 # B(-22)
DP2(-3) 2DEC 1 B-3 DP2(-3) 2DEC 1 B-3
DP2(-4) 2DEC 1 B-4 # 1/16 DP2(-4) 2DEC 1 B-4 # 1/16
# RPAD1 2DEC 6373338 B-29 # M (-29) = 20909901.57 FT # RPAD1 2DEC 6373338 B-29 # M (-29) =20 909 901.57 FT
RPAD1 = RPAD RPAD1 = RPAD
R300K 2DEC 6464778 B-29 # (-29) M R300K 2DEC 6464778 B-29 # (-29) M
NEARONE 2DEC .999999999 NEARONE 2DEC .999999999
TFFZEROS EQUALS HI6ZEROS TFFZEROS EQUALS HI6ZEROS
TFF1/4 EQUALS HIDP1/4 TFF1/4 EQUALS HIDP1/4