Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Asm/Apollo-11/Comanche055/     Datei vom 11.9.2026 mit Größe 36 kB image not shown  

Quelle  P37_P70.agc   Sprache: Apollo

 

# Copyright: Public domain.
# Filename: P37_P70.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Jim Lawton <jim.lawton@gmail.com>.
# Website: www.ibiblio.org/apollo.
# Pages: 890-933
# Mod history: 2009-05-11 JVL Adapted from the Colossus249/ file
# of the same name, using Comanche055 page
# images.
# 2009-05-20 RSB Added missing label V2T179.  Fixed POODOO -> POODOO.
# 2009-05-23 RSB In RTD18, corrected a STOVL DELVLVC to
# STODL DELVLVC and a STODL 02D to STORE 02D.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum.  The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum.  Many
# thanks to both.  The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo.  If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
#    Assemble revision 055 of AGC program Comanche by NASA
#    2021113-051.  10:28 APR. 1, 1969
#
#    This AGC program shall also be referred to as
#            Colossus 2A

# Page 890
  BANK 31
  SETLOC RTE1
  BANK

  EBANK= RTEDVD
  COUNT 31/P37

# PROGRAM DESCRIPTION:  P37, RETURN TO EARTH
#
# DESCRIPTION
# A RETURN TO EARTH TRAJECTORY IS COMPUTED PROVIDED THE CSM IS OUTSIDE THE LUNAR SPHERE OF INFLUENCE AT THE
# TIME OF IGNITION.  INITIALLY A CONIC TRAJECTORY IS DETERMINED AND RESULTING IGNITION AND REENTRY PARAMETERS ARE
#  DISPLAYED TO THE ASTRONAUT.  THEN IF THE ASTRONAUT SO DESIRES, A PRECISION TRAJECTORY IS DETERMINED WITH THE
#  RESULTING IGNITION AND REENTRY PARAMETERS DISPLAYED.  UPON FINAL ACCEPTANCE BY THE ASTRONAUT, THE PROGRAM
#  COMPUTES AND STORES THE TARGET PARAMETERS FOR RETURN TO EARTH FOR USE BY SPS PROGRAM (P40) OR RCS PROGRAM (P41).
#
# CALLING SEQUENCE
# L TC P37
#
# SUBROUTINES CALLED
# PREC100
# V2T100
# RTENCK2
# RTENCK3
# TIMERAD
# PARAM
# V2T100
# GAMDV10
# XT1LIM
# DVCALC
# RTENCK1
# INTSTALL
# INTEGRVS
# RTEVN
# RTEDISP
# TMRAD100
# AUGEKUGL
# LAT-LONG
# TMRAD100
# TIMERAD
# INVC100
# CSMPREC
# GETERAD
# TIMETHET
# P370ALRM
# VN1645
# POLY
#
# ERASABLE INITIALIZATION REQUIRED
# CSM STATE VECTOR
# Page 891
# NJETSFLG NUMBER OF JETS IF THE RCS PROPULSION SYSTEM SELECTED STATE FLAG 0=4 JETS  1=2 JETS
#
# ASTRONAUT INPUT
# SPRTETIG TIME OF IGNITION (OVERLAYS TIG) DP B28 CS
# VPRED DESIRED CHANGE IN VELOCITY AT TIG(PROGRM COMPUTED IF 0) DP B7 METERS/CS
# GAMMAEI DESIRED FLIGHT PATH ANGLE AT REENTRY (COMPUTED IF 0) DP B0 REVS + ABOVE HORIZ.
# OPTION2 PROPULSION SYSTEM OPTION SP B14 1=SPS, 2=RCS
#
# OUTPUT
#    CONIC OR PRECISION TRAJECTORY DISPLAY
# VPRED   VELOCITY MAGNITUDE AT 400,000 FT. ENTRY ALTITUDE DP B7 METERS/CS
# T3TOT4 TRANSIT TIME TO 400,000 FT. ENTRY ALTITUDE DP B28 CS
# GAMMAEI FLIGHT PATH ANGLE AT 400,00 FT. ENTRY ALTITUDE DP B0 REVS + ABOVE HORIZON
# DELVLVC INITIAL VELOCITY CHANGE VECTOR IN LOCAL VERTICAL COORD. VECTOR B7 METERS/CS
# LAT(SPL) LATITUDE OF THE LANDING SITE DP B0 REVS
# LNG(SPL) LONGITUDE OF THE LANDING SITE DP B0 REVS
#    TARGETING COMPUTATION DISPLAY
# TIG RECOMPUTED TIG BASED ON THRUST OPTION DP B28 CS
# TTOGO TIME FROM TIG DP B28 CS
# +MGA POSITIVE MIDDLE GIMBAL ANGLE DP B0 REVS -.02 IF REFSMFLG=0
#    THRUST PROGRAM COMMUNICATION
# XDELVFLG EXTERNAL DELTA V FLAG STATE FLAG SET 0 FOR LAMBERT AIMPT
# NORMSW LAMBERT AIMPT ROTATION SWITCH STATE FLAG SET 0 FOR NO ROTATION
# ECSTEER CROSS PRODUCT STEERING CONSTANT SP B2 SET 1
# RTARG CONICALLY INTEGRATED REENTRY POSITION VECTOR VECTOR B29 METERS
# TPASS4 REENTRY TIME DP B28 CS

P37  TC PHASCHNG # P37 IS NOT RESTARTABLE
  OCT 4

  TC INTPRET
  AXT,1 SXA,1
  OCT 04000
   ECSTEER
  DLOAD
   ZEROVECS
  STORE VPRED
  STORE GAMMAEI
  EXIT
  CAF V6N33RTE # INPUT TIG STORED IN SPRTETIG
  TCR P370GOF  # OVERLAYED WITH TIG
  TCF -2  # DISPLAY NEW DATA
  CAF V6N60RTE # INPUT REENTRY ANGLE IN GAMMAEI
  TCR P37GFRB1 # AND DESIRED DELTA V IN RTEDVD
  TCF -2  # DISPLAY NEW DATA
RTE299  TC INTPRET
  SSP DLOAD
   OVFIND
   0
   VPRED
# Page 892
  STODL RTEDVD
   GAMMAEI
  STODL RTEGAM2D
   1RTEB13
  STODL CONICX1
   C4RTE
  STCALL MAMAX1
   INVC100  # GET R(T1)/,V(T1)/,UR1/,UH/
  CLEAR DLOAD
   SLOWFLG
   RTEDVD
  BPL ABS
   RTE317
  STORE RTEDVD
  DLOAD DSU
   R(T1)
   K1RTE
  BMN SET
   RTE317
   SLOWFLG
RTE317  DLOAD EXIT
   R(T1)
  TC POLY
  DEC 2
  2DEC 181000434. B-31
  2DEC 1.50785145 B-2
  2DEC* -6.49993057 E-9 B27*
  2DEC* 9.76938926 E-18 B56*
  TC INTPRET
  SL1
  STODL MAMAX2  # C0+C1*R+C2*R**2+C3*R**3=MAMAX2 B30
   M9RTEB28
  STODL NN1A
   K2RTE
RTE320  STODL RCON  # RCON=K2
   RTEGAM2D
  BZE BDSU
   RTE340  # GOTORTE340 IF REENTRY ANGLE NOT INPUT
   1RTEB2
  PUSH COS  # PL02D
  PDDL SIN
  BDDV STADR  # PL00D
  STCALL X(T2)  # X(T2)=COT(GAM2D) B0
   RTE360
RTE340  DLOAD DSU
   R(T1)
# Page 893
   K1RTE
  BMN DLOAD
   RTE350
   K4RTE
  STCALL X(T2)  # X(T2)=K4
   RTE360
RTE350  DLOAD
   K3RTE
  STORE X(T2)  # X(T2)=K3
RTE360  CALL
   V2T100
  BZE GOTO
   RTE367
   RTEALRM
RTE367  VLOAD
   R(T1)/
  STODL RVEC
   RCON
  STOVL RDESIRED
   V2(T1)/
  STCALL VVEC
   TMRAD100
  DAD
   T1
  STODL T2
   RTEGAM2D
  BZE GOTO
   RTE369
   RTE372
RTE369  VLOAD ABVAL
   V(T2)/
  EXIT
  TC POLY
  DEC 2
  2DEC 0
  2DEC -4.8760771 E-2 B4
  2DEC 4.5419476 E-4 B11
  2DEC -1.4317675 E-6 B18

  TC INTPRET
  DAD
   RTED1
  SL3 GOTO  # X(T2),=D1+D2V2+D3V2**2+D4V2**3
   RTE373
RTE372  DLOAD   # X(T2),=X(T2)
   X(T2)
RTE373  DSU PUSH  # X(T2)ERR B0 PL02D
# Page 894
   X(T2)
  VLOAD UNIT
   R(T2)/  # B58
  STCALL ALPHAV
   GETERAD
  DAD
   E3RTE
  PUSH DSU  # RCON,=(E1/1+E2BETA11)**.5)+E3  B29 PL04D
   RCON
  ABS DSU
   EPC2RTE
  BMN GOTO
   RTE374
   RTE375
RTE374  DLOAD ABS
   00D
  DSU BMN
   EPC3RTE
   P37E
RTE375  DLOAD DAD
   NN1A
   1RTEB28
  BMN SLOAD
   RTE380
   OCT605
  GOTO
   RTEALRM  # TOO MANY ITERATIONS
RTE380  STORE NN1A
  DSU BZE
   M8RTEB28
   RTE385
  DLOAD DSU
   00D
   DRCON
  NORM PDDL  # X(T2)ERR-X(T2)ERR,=Z1 PL06D
   X1
   RPRE'
  DSU DDV  # X(T2)PRI-X(T2)=Z2 PL04D
   X(T2)
  DMP SL*  # DX(T2)=X(T2)ERR(Z2/Z1)
   00D
   0,1
  GOTO
   RTE390
RTE385  DLOAD   # DX(T2)=X(T2)ERR
   00D
RTE390  STODL 16D  # DX(T2) PL02D
  STADR
  STODL RCON  # RCON=RCON,
  BOV
# Page 895
   RTE360
  STODL DRCON  # X(T2)ERR,=X(T2)ERR
   X(T2)
  STODL RPRE'  # X(T2)PRI=X(T2)
   16D
  DAD
   X(T2)
  STCALL X(T2)  # X(T2)=X(T2)+DX(T2)
   RTE360  # REITERATE
P37E  CALL   # DISPLAY CONIC SOLUTION
   RTEVN
RTE505  DLOAD DMP
   PCON
   BETA1
  BDSU BZE
   RCON
   RTE510
  BMN DLOAD
   RTE510
   1RTEB2
  GOTO   # ENTRY NEAR APOGEE
   RTE515
RTE510  DLOAD DCOMP  # ENTRY NEAR PERIGEE
   1RTEB2
RTE515  STCALL PHI2
   PREC100  # PRECISION TRAJECTORY COMPUTATION
RTE625  BZE
   P37G
RTEALRM  CALL
   P370ALRM
  EXIT
  TCF P37  # RECYCLE AFTER ALARM DISPLAY

# RETURN TO EARTH DISPLAY SUBROUTINE

RTEVN  STQ CALL
   VNSTORE
   RTEDISP  # DISPLAY PREPARATION
  EXIT
  CAF V6N61RTE # LATITUDE,LONGITUDE,BLANK
  TCR P370GOFR #   IN LAT(SPL),LNG(SPL),-
  CAF FOUR
  TCR 37BLANK +1
  TCF +5
  TCF P37  # RECYCLE
  CAF V6N39RTE # T21 HRS,MIN,SEC IN T3TOT4
  TCR P370GOF
  TCF P37  # RECYCLE
  CAF V6N60RTE # DISPLAY BLANK,V(T2),FPA2
  TCR P37GFRB1 #   IN -,VPRED,GAMMAEI
# Page 896
  TCF P37  # RECYCLE
  CAF V6N81RTE # DISPLAY DELTA V (LV) IN DELVLVC
  TCR P370GOF
  TCF P37  # RECYCLE
  TCR INTPRET
  GOTO
   VNSTORE

# PRECISION DISPLAY, TARGETING COMPUTATION AND RTE END PROCESSING

P37G  CALL
   RTEVN
  EXIT
P37N  CAF SEVEN
  TS OPTION1
  CAF ONE
  TS OPTION2
  CAF V4N06RTE # DISPLAY RCS OR SPS OPTION  SPS ASSUMED
  TCR P370GOF
  TCF -2  # RECYCLE
  TC INTPRET  # PROCEED
  SETPD SLOAD
   00D
   OPTION2
  DSU BZE
   1RTEB13
   P37Q
  SLOAD NORM  # SPS
   EMDOT
   X1
  PDDL GOTO
   VCSPS
   P37T
P37Q  DLOAD BON  # RCS
   MDOTRCS
   NJETSFLG
   P37R
  SL1
P37R  SL1
  NORM PDDL
   X1
   VCRCS
P37T  PDDL DDV  # DV/VC B7 -B5 = B2  PL02D
   DV
  EXIT
  TC POLY
  DEC 1
  2DEC 5.66240507 E-4 B-3
  2DEC 9.79487897 E-1 B-1
# Page 897
  2DEC -.388281955 B1
  TC INTPRET
  PUSH SLOAD  # (1-E)**(-DV/VC)=A B3  PL04D
   WEIGHT/G
  DMP DDV  # DTB=(M0/MDOT)A B16+B3-B3=B16  PL00D
  SL* DMP
   0 -12D,1
   CSUBT
  BDSU
   T1
  STORE TIG  # TIG=T1-CT*DTB B28
  EXIT
  CAF V6N33RTE # DISPLAY BIASED TIG
  TCR P370GOF
  TCF -2
  CAF ZERO
  TS VHFCNT
  TS TRKMKCNT
  TC INTPRET
  CALL   # CONICALLY INTEGRATE FROM R1,V1 OVER T12
   RTENCK1
  VLOAD UNIT  # PL00D
   R(T2)/
  PDVL VXSC  # UR2 B1  PL06D
   UR1/
   MCOS7.5
  PDVL VXSC  # -UR1(COS7.5) B1  PL12D
   UH/
   MSIN7.5
  VAD DOT  # K/=-UR1(COS7.5)-UH(SIN7.5) B2  PL00D
  DAD BMN
   MCOS22.5
   P37W
  VLOAD DOT  # K/ . UR2 GR COS22.5
   UH/
   R(T2)/
  BMN DLOAD
   P37U
   THETA165
  PUSH GOTO
   P37V
P37U  DLOAD PUSH
   THETA210
P37V  SIN
  STODL SNTH
  COS CLEAR
   RVSW
  STOVL CSTH
   R(T1)/
# Page 898
  STOVL RVEC
   V2(T1)/
  STCALL VVEC
   TIMETHET
P37W  CLEAR CLEAR
   XDELVFLG
   NORMSW
  SET VLOAD
   FINALFLG
  STADR
  STODL RTARG
   T
  DAD
   T1
  STOVL TPASS4
   V2(T1)/
  VSU
   V(T1)/
  STCALL DELVSIN
   VN1645
  GOTO
   P37W

# SUBROUTINE TO GO TO GOFLASHR AND BLANK R1

P37GFRB1 EXTEND
  QXCH SPRTEX
  TCR P370GOFR
37BLANK  CAF ONE
  TCR BLANKET
  TCF ENDOFJOB
  TC SPRTEX  # RECYCLE
  TCF P37PROC  # PROCEED

# SUBROUTINE TO GO TO GOFLASHR

P370GOFR EXTEND
  QXCH RTENCKEX
  TCR BANKCALL
  CADR GOFLASHR
  TCF GOTOPOOH # TERMINATE
  TCF +3
  TCF +4
  TC RTENCKEX # IMMEDIATE RETURN
  INDEX RTENCKEX # PROCEED
  TCF 0 +4
  INDEX RTENCKEX # RECYCLE
  TCF 0 +3

# SUBROUTINE TO GO TO GOFLASH

# Page 899
P370GOF  EXTEND
  QXCH SPRTEX
  TCR BANKCALL
  CADR GOFLASH
  TCF GOTOPOOH
  TCF +2
  TC SPRTEX
P37PROC  INDEX SPRTEX
  TCF 0 +1
V6N33RTE VN 0633
V4N06RTE VN 0406
V6N61RTE VN 0661
V6N39RTE VN 0639
V6N60RTE VN 0660
V6N81RTE VN 0681
  BANK 32
  SETLOC RTE
  BANK
  COUNT 32/RTE

# Page 900
# ALARM DISPLAY SUBROUTINE

P370ALRM STQ EXIT
   SPRTEX
  CA MPAC
  TC VARALARM
  CAF V5N09RTE
  TC BANKCALL
  CADR GOFLASH
  TCF GOTOPOOH
  TCF -4
  TC INTPRET
  GOTO
   SPRTEX
V5N09RTE VN 0509

# Page 901
# TIME RADIUS CALLING SUBROUTINE
#
# INPUT
# RVEC INITIAL POSITION VECTOR VECTOR B29 METERS
# VVEC INITIAL VELOCITY VECTOR VECTOR B7 METERS/CS
# RDESIRED FINAL RADIUS FOR WHICH TRANSFER TIME IS TO BE COMPUTED DP B29 METERS
# CONICX1 X1 SETTING FOR CONIC SUBROUTINES  -2=EARTH SP B14
#
# OUTPUT
# R(T2)/ FINAL POSITION VECTOR VECTOR B29  METERS
# V(T2)/ FINAL VELOCITY VECTOR VECTOR B7 METERS/CS
# T12 TRANSFER TIME TO FINAL RADIUS DP B28 CS

TMRAD100 STQ CLEAR
   RTENCKEX
   RVSW
  AXC,2 SXA,2
  OCT 20000
   SGNRDOT
  LXC,1 CALL
   CONICX1
   TIMERAD
  STOVL V(T2)/       PL00D
  STADR
  STODL R(T2)/
   T
  STCALL T12
   RTENCKEX

# Page 902
# DISPLAY CALCULATION SUBROUTINE
#
# DESCRIPTION
# OUTPUT FOR DISPLAY IS CONVERTED TO PROPER UNITS AND PLACED IN OUTPUT STORAGE REGISTERS.  LANDING SITE
# COMPUTATION FOR DETERMINING LANDING SITE LATITUDE AND LONGITUDE IS INCLUDED IN THE ROUTINE.
#
# CALLING SEQUENCE
# L CALL
# L+1 RTEDISP
#
# SUBROUTINES CALLED
# TMRAD100
# AUGEKUGL
# LAT-LONG
#
# ERASABLE INITIALIZATION REQUIRED
#    PUSHLIST
# NONE
#    MPAC
# NONE
#    OTHER
# R(T2)/ FINAL POSITION VECTOR VECTOR B29 METERS
# V(T2)/ FINAL VELOCITY VECTOR VECTOR B7 METERS/CS
# T2 FINAL TIME DP B28 CS
# V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7 METERS/CS
# V(T1)/ INITIAL VELOCITY VECTOR VECTOR B7
# UR1/ UNIT INITIAL VECTOR VECTOR B1
# UH/ UNIT HORIZONTAL VECTOR VECTOR B1
#
# OUTPUT
# VPRED VELOCITY MAGNITUDE AT 400,000 FT. ENTRY ALTITUDE DP B7 METERS/CS
# T3TOT4 TRANSIT TIME TO 400,000 FT. ENTRY ALTITUDE DP B28 CS
# GAMMAEI FLIGHT PATH ANGLE AT 400,000 FT. ENTRY ALTITUDE DP B0 REVS + ABOVE HORIZ
# DELVLVC INITIAL VELOCITY CHANGE VECTOR IN LOCAL VERTICAL COORD. VECTOR B7 METERS/CS
# LAT(SPL) LATITUDE OF THE LANDING SITE DP B0 REVS
# LNG(SPL) LONGITUDE OF THE LANDING SITE DP B0 REVS

RTEDISP  STQ VLOAD  # DISPLAY
   SPRTEX
   V(T2)/
  UNIT PDDL
   36D
  STODL VPRED  # V(T2)
   T2
  DSU
   SPRTETIG
  STOVL T3TOT4  # T21
   R(T2)/
  UNIT DOT
  SL1

# Page 903
  ARCCOS BDSU
   1RTEB2
  STOVL GAMMAEI  # FLIGHT PATH ANGLE T2
   V2(T1)/
  VSU PUSH
   V(T1)/
  DOT DCOMP
   UR1/
  PDVL PUSH
  DLOAD PDVL
   ZERORTE
  DOT VDEF
   UH/
  VSL1
  STODL DELVLVC
   DELVLVC
  BOFF DCOMP
   RETROFLG
   RTD18
  STORE DELVLVC  # NEGATE X COMPONENT, RETROGRADE
RTD18  VLOAD ABVAL
   DELVLVC
  STOVL VGDISP
   R(T2)/
  STORE RVEC  # ***** LANDING SITE COMPUTATION *****
  ABVAL DSU
   30480RTE
  STOVL RDESIRED
   V(T2)/
  STCALL VVEC
   TMRAD100 # R3,V3,T23 FROM TIMERAD
  VLOAD UNIT
   R(T2)/
  PDVL UNIT  # UR3 PL06D
   V(T2)/
  DOT SL1  # GAMMAE=ARCSIN(UR3 . UV3) PL00D
  ARCSIN PDDL  # V(T3) PL02D
   36D
  PDDL ABS
  PUSH CALL  # /GAMMAE/ PL04D
   AUGEKUGL # PHIE PL06D
  DAD DAD
   T12  # T23
   T2
  STORE 02D  # T(LS)=T2&T23&TE
  SLOAD BZE
   P37RANGE
   RTD22
  STORE 04D  # OVERRIDE RANGE (PCR 261)
RTD22  DLOAD SIN

# Page 904
   04D
  STODL LNG(SPL) # LNG(SPL)=SIN(PHIE) PL04D
  COS
  STORE LAT(SPL) # LAT(SPL)=COS(PHIE)
  VLOAD UNIT
   R(T2)/
  PUSH PUSH
  PDVL UNIT  # PL22D
   V(T2)/
  PDVL VXV
  VXV UNIT  # UH3=UNIT(UR3 X UV3 X UR3) PL10D
  VXSC PDVL
   LNG(SPL)
  VXSC VAD  # PL04D
   LAT(SPL)
  CLEAR CLEAR  # T(LS) IN MPAC
   ERADFLAG
   LUNAFLAG
  STODL ALPHAV  # ALPHAV=UR3(COSPHIE)+UH3(SINPHIE)  PL02D
  CALL
   LAT-LONG
  DLOAD
   LAT
  STODL LAT(SPL) # LATITUDE LANDING SITE  *****
   LONG
  STCALL LNG(SPL) # LONGITUDE LANDING SITE *****
   SPRTEX
  COUNT* $$/RTE

# Page 905
# INITIAL VECTOR SUBROUTINE
#
# DESCRIPTION
# A PRECISION INTEGRATION OF THE STATE VECTOR TO THE TIME OF IGNITION IS PERFORMED. PRECOMPUTATIONS OCCUR.
#
# CALLING SEQUENCE
# L CALL
# L+1 INVC100
#
# NORMAL EXIT MODE
# AT L+2 OF CALLING SEQUENCE WITH MPAC = 0
#
# ALARM EXIT MODE
# AT L+2 OF CALLING SEQUENCE WITH MPAC = OCTAL 612 FOR STATE VECTOR IN MOONS SPHERE OF INFLUENCE
#
# SUBROUTINES CALLED
# CSMPREC
#
# ERASABLE INITIALIZATION REQUIRED
#    PUSHLIST
# NONE
#    MPAC
# NONE
#    OTHER
# SPRTETIG TIME OF IGNITION DP B28 CS
# CSM STATE VECTOR
#
# OUTPUT
# R(T1)/ INITIAL POSITION VECTOR AT TIG VECTOR B29 METERS
# V(T1)/ INITIAL VELOCITY VECTOR AT TIG VECTOR B7 METERS/CS
# T1 INITIAL VECTOR TIME (TIG) DP B28 CS
# UR1/ UNIT INITIAL VECTOR VECTOR B1
# UH/ UNIT HORIZONTAL VECTOR VECTOR B1
# CFPA COSINE OF INITIAL FLIGHT PATH ANGLE DP B1

INVC100  STQ DLOAD
   SPRTEX
   SPRTETIG
  STCALL TDEC1
   CSMPREC  # PRECISION INTEGRATION  R0,V0 TO R1,V1
  VLOAD SXA,2
   RATT
   P(T1)
  STOVL R(T1)/
   VATT
  STODL V(T1)/
   TAT
  STORE T1
  SLOAD BZE
   P(T1)
# Page 906
   INVC109
INVC107  SLOAD GOTO
   OCT612
   RTEALRM  # R1,V1 NOT IN PROPER SPHERE OF INFLUENCE
INVC109  VLOAD UNIT
   R(T1)/
  STODL UR1/  # UR1/ B1
   36D
  STOVL R(T1)  # R(T1) B29
   V(T1)/
  UNIT
  STORE UV1/
  DOT SL1
   UR1/
  STORE CFPA  # CFPA B1
  ABS DSU
   EPC1RTE
  BMN DLOAD
   INVC115  # NOT NEAR RECTILINEAR
   1RTEB2
  PDDL PUSH
   ZERORTE
  VDEF PUSH  # N/ = (0,0,1)
  GOTO
   INVC120
INVC115  VLOAD VXV
   UR1/
   UV1/
  PUSH   # N/ = UR X UV B2
INVC120  CLEAR DLOAD
   RETROFLG
  PUSH BPL
   INVC125
  VLOAD VCOMP  # RETROGRADE ORBIT
  PUSH SET
   RETROFLG
INVC125  VLOAD
  VXV UNIT
   UR1/
  STORE UH/  # UH/ B1
  GOTO
   SPRTEX

# Page 907
# PRECISION TRAJECTORY COMPUTATION SUBROUTINE
#
# DESCRIPTION
# A NUMERICALLY INTEGRATED TRAJECTORY IS GENERATED WHICH FOR THE RETURN TO EARTH PROBLEM SATISFIES THE REENTRY
# CONSTRAINTS (RCON AND X(T2)) ACHIEVED BY THE INITIAL CONIC TRAJECTORY AND MEETS THE DVD REQUIREMENT AS CLOSELY
# AS POSSIBLE.
#
# CALLING SEQUENCE
# L CALL
# L+1 PREC100
#
# NORMAL EXIT MODE
# AT L+2 OF CALLING SEQUENCE WITH MPAC = 0
#
# ALARM EXIT MODE
# AT L+2 OF CALLING SEQUENCE WITH MPAC =
# OCTAL 605 FOR EXCESS ITERATIONS
# OCTAL 613 FOR REENTRY ANGLE OUT OF LIMITS
#
# SUBROUTINES CALLED
# INTSTALL
# RTENCK2
# RTENCK3
# TIMERAD
# PARAM
# V2T100
#
# ERASABLE INITIALIZATION REQUIRED
#    PUSHLIST
# NONE
#    MPAC
# NONE
#    OTHER
# R(T1)/ INITIAL POSITION VECTOR VECTOR B29/B27 METERS
# V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# V(T1)/ INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# T1 INITIAL VECTOR TIME DP B28 CS
# T12 INITIAL TO FINAL POSITION TIME DP B28  CS
# RCON CONIC FINAL RADIUS DP B29/B27 METERS
# R(T1) MAGNITUDE OF INITIAL POSITION VECTOR DP B29/B27 METERS
# X(T2) COTANGENT OF FINAL FLIGHT PATH ANGLE DP B0
# X(T1) COTANGENT OF INITIAL FLIGHT PATH ANGLE DP B5
# RTEDVD DELTA VELOCITY DESIRED DP B7/B5 METERS/CS
# MAMAX1 MAJOR AXIS LIMIT FOR LOWER BOUND ON GAMDV ITERATOR DP B30/B28 METERS
# MAMAX2 MAJOR AXIS LIMIT FOR UPPER BOUND ON GAMDV ITERATOR DP B30/B28 METERS
# UR1/ UNIT INITIAL VECTOR VECTOR B1
# UH/ UNIT HORIZONTAL VECTOR VECTOR B1
# BETA1 1+X(T2)**2 DP B1
# PHI2 PERIGEE OR APOGEE INDICATOR DP B2 -1 PERIGEE, +1 APOGEE
#
# Page 908
#
# OUTPUT
#     V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7 METERS/CS
# R(T2)/ FINAL POSITION VECTOR VECTOR B29 METERS
# V(T2)/ FINAL VELOCITY VECTOR VECTOR B7 METERS/CS
# T2 FINAL TIME DP B28 CENTISECONDS
#
# DEBRIS
# RD FINAL R DESIRED DP B29/B27 METERS
# R/APRE R/A DP B6
# P/RPRE P/R DP B4
# RPRE MAGNITUDE OF R(T2)/ DP B29/B27 METERS
# X(T2)PRE COTANGENT OF GAMMA2 DP B0
# DT12 CORRECTION TO FINAL TIME T2 DP B28 CENTISECONDS
# RCON FINAL RADIUS DP B29/B27 METERS
# DRCON DELTA RCON DP B29/B27 METERS

PREC100  STQ DLOAD
   SPRTEX
   10RTE
  STODL NN1A
   RCON
  STORE RD
PREC120  DLOAD
   2RTEB1
  STODL DT21PR  # DT21PR = POSMAX
   M15RTE
  STCALL NN2
   RTENCK3
PREC125  CALL
   PARAM
  DLOAD
   P
  STODL P/RPRE
   R1A
  STODL R/APRE
   R1
  STODL RPRE
   COGA
  SL
   5
  STORE X(T2)PRE
  DCOMP DAD
   X(T2)
  ABS DSU
   EPC4RTE
  BOV BMN
   PREC130
   PREC175

# DESIRED REENTRY ANGLE NOT ACHIEVED

# Page 909
PREC130  DLOAD BMN
   NN2
   PREC140
PREC132  SLOAD GOTO  # TOO MANY ITERATIONS
   OCT605  # EXIT WITH ALARM
   PRECX

# DETERMINE RADIUS AT WHICH THE DESIRED REENTRY ANGLE WILL BE ACHIEVED

PREC140  DLOAD BZE
   NN1A
   PREC162
PREC150  DLOAD SL2      B2
   P/RPRE
  DMP SL1  # BETA2=BETA1*P/R B2 PL02
   BETA1
  PUSH DLOAD
   R/APRE
  SL4 DMP
   00D
  BDSU BMN  # BETA3=1-BETA2*R/A
   1RTEB4
   PREC160
PREC155  SL2 SQRT
  DMP BDSU
   PHI2
   1RTEB3
  NORM PDDL
   X1
  SR1 DDV  # BETA4=BETA2/(1-PHI2*SQRT(BETA3))
  SL* GOTO      B1
   0 -1,1
   PREC165
PREC160  DLOAD NORM
   R/APRE
   X1
  BDDV SL*      B1
   1RTEB1
   0 -6,1
  GOTO
   PREC165
PREC162  DLOAD NORM
   RPRE
   X1
  BDDV SL*  # BETA4=RD/RPRE B1
   RD
   0 -1,1
PREC165  SETPD PUSH
   0
  DSU DCOMP
# Page 910
   1RTEB1
  STORE BETA12
  BMN DLOAD
   PREC168
   X(T2)PRE
  BMN DLOAD
   PREC167
   BETA12
  DCOMP
  STORE BETA12
PREC167  DLOAD
   BETA12
PREC168  ABS DSU
   EPC6RTE
  BMN DLOAD
   PREC175
  DMP SL1
   RPRE
  PUSH   # RF = NEW RADIUS
PREC170  DLOAD DAD
   NN2
   1RTEB28
  STORE NN2
  VLOAD SET
   R(T2)/
   RVSW
  STOVL RVEC
   V(T2)/
  SIGN
   BETA12
  STODL VVEC
   1RTEB1
  SIGN DCOMP
   BETA12
  LXA,2 DLOAD
   MPAC
  LXC,1 SXA,2
   CONICX1
   SGNRDOT
  STCALL RDESIRED # COMPUTED DT12 (CORRECTION TO TIME OF
   TIMERAD  # NEW RADIUS)
  DLOAD SIGN
   T
   BETA12
  PDDL NORM  # DT21=(PHI4)DT21 PL02D
   DT21PR
   X1
  BDDV SL*
   00D
   0 -3,1
# Page 911
  PUSH BMN  # BETA13=(DT21)/(DT21PR) R3  PL04D
   PREC172
  DLOAD PDDL  # BETA14=1 B0  PL04D
   2RTEB1
  GOTO
   PREC173
PREC172  DLOAD PDDL  # BETA14=.6 B0  PL04D
   M.6RTE
PREC173  DDV DSU
   02D
   1RTEB3
  BMN DLOAD
   PREC174
  DMP
   DT21PR
  STORE 00D  # DT21=(BETA14)DT21PR B28
PREC174  DLOAD PUSH
   00D
  STCALL DT21PR
   RTENCK2
  GOTO
   PREC125
PREC175  DLOAD DSU
   RPRE
   RD
  PUSH ABS  # RPRE-RD = RERR
  DSU BMN
   EPC7RTE
   PREC220

# DESIRED RADIUS HAS NOT BEEN ACHIEVED

  DLOAD BZE
   NN1A
   PREC132  # TOO MANY ITERATIONS
  DSU BZE
   10RTE
   PREC207
PREC205  DLOAD DSU  # NOT FIRST PASS OF ITERATION
   RPRE'
   RPRE  # RPRE'-RPRE B29/B27
  NORM BDDV
   X2
   DRCON
  SL* PUSH  # DRCON/(RPRE'-RPRE)=S B2
   0 -2,2
  DAD BOV  # S GR +4 OR LS -4
   1RTEB1
   PREC205M
  ABS DSU
# Page 912
   1RTEB1
  BMN
   PREC206
PREC205M DLOAD DCOMP  # S GR 0 OR LS -4
   2RTEB1
  PDDL   # S=-4 B2
PREC206  DLOAD DMP
  SL2
  STORE DRCON  # DRCON=S(RERR) B29
  DAD
   RCON
  STORE RCON  # RCON+DRCON=RCON
  GOTO
   PREC210
PREC207  DLOAD DSQ  # FIRST PASS OF ITERATION
   RD
  NORM SR1
   X1
  PDDL NORM
   RPRE
   X2
  XSU,1 BDDV
   X2
  SR*
   0 -1,1
  STORE RCON  # RD**2/RPRE=RCON
  DSU
   RD
  STORE DRCON  # RCON-RD=DRCON
PREC210  DLOAD   # PREPARE FOR NEXT ITERATION
   RPRE
  STODL RPRE'
   NN1A
  DSU
   1RTEB28
  STCALL NN1A
   V2T100
  BHIZ GOTO
   PREC120
   PRECX

# DESIRED RADIUS ACHIEVED

  SETLOC RTE2
  BANK
PREC220  DLOAD DSU
   X(T2)
   X(T2)PRE
  ABS DSU
   EPC8RTE
# Page 913
  BMN SLOAD
   PREC225
   OCT613
  GOTO
   PRECX  # IF REENTRY ANGLE OUT OF LIMITS

EPC8RTE  2DEC .002

OCT613  OCT 613

# DESIRED FINAL ANGLE HAS BEEN REACHED.

  SETLOC RTE
  BANK
PREC225  DLOAD
   ZERORTE
PRECX  GOTO
   SPRTEX

# Page 914
# INTEGRATION CALLING SUBROUTINE
#
# DESCRIPTION
# PERFORMS CONIC AND PRECISION INTEGRATIONS USING SUBROUTINE INTEGRVS.  THERE ARE THREE ENTRANCES (RTENCK1,
# RTENCK2, AND RTENCK3) FOR DIFFERENT SOURCES OF INPUT AND DIFFERENT OPTIONS.  THERE IS A COMMON SET OF OUTPUT
#  WHICH INCLUDES SET UP OF INPUT FOR THE PARAM SUBROUTINE.
#
# RTENCK1 (CONIC INTEGRATION)
#
#    CALLING SEQUENCE
# L CALL
# L+1 RTENCK1
#
#    ERASABLE INITIALIZATION REQUIRED
# SAME AS FOR THE RTENCK3 ENTRANCE
#
# RTENCK2 (PRECISION INTEGRATION)
#
#    CALLING SEQUENCE
# L CALL
# L+1 RTENCK2
#
#    ERASABLE INITIALIZATION REQUIRED
# PUSHLIST
#     PUSHLOC-2 INTEGRATION TIME DT12 (CORRECTION TO T2) DP B28 CS
# OTHER
#     R(T2)/ FINAL POSITION VECTOR VECTOR B29 METERS
#     V(T2)/ FINAL VELOCITY VECTOR VECTOR B7 METERS/CS
#     T2 FINAL TIME DP B28 CS
#
# RTENCK3 (PRECISION INTEGRATION)
#
#    CALLING SEQUENCE
# L CALL
# L+1 RTENCK3
#
#    ERASABLE INITIALIZATION REQUIRED
# R(T1)/ INITIAL POSITION VECTOR VECTOR B29 METERS
# V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7 M/CS
# T1 INITIAL VECTOR TIME DP B28 CS
# T2 FINAL TIME DP B28 CS
#
# EXIT MODE
# AT L+2 OF CALLING SEQUENCE
#
# SUBROUTINES CALLED
# INTSTALL
# INTEGRVS
#
# OUTPUT
#    PUSHLIST
# Page 915
# PUSHLOC-6 FINAL POSITION VECTOR R(T2)/ VECTOR B29 METERS
# X1 CONICS MUTABLE ENTRY FOR EARTH (-2) SP B14
#    MPAC
# FINAL VELOCITY VECTOR V(T2)/ VECTOR B7 M/CS
#    OTHER
# R(T2)/ AS IN PUSHLIST
# V(T2)/ AS IN MPAC
# T2 FINAL TIME DP B28 CS

  SETLOC RTE3
  BANK
RTENCK1  STQ CALL
   RTENCKEX
   INTSTALL
  VLOAD SET
   R(T1)/
   INTYPFLG
  GOTO
   RTENCK3B

RTENCK2  STQ CALL
   RTENCKEX
   INTSTALL
  CLEAR VLOAD
   INTYPFLG
   R(T2)/
  STOVL RCV
   V(T2)/
  STODL VCV
   T2
  STORE TET
  DAD
  GOTO
   RTENCK3D

RTENCK3  STQ CALL
   RTENCKEX
   INTSTALL
RTENCK3A VLOAD CLEAR
   R(T1)/
   INTYPFLG
RTENCK3B STOVL RCV
   V2(T1)/
  STODL VCV
   T1
  STODL TET
   T2
# Page 916
RTENCK3D STORE TDEC1
  CLEAR CALL
   MOONFLAG
   INTEGRVS
  VLOAD
   RATT
  STORE R(T2)/
  PDDL LXC,1
   TAT
   CONICX1
  STOVL T2
   VATT
  STORE V(T2)/
  GOTO
   RTENCKEX
  SETLOC RTE
  BANK

# Page 917
# V2(T1) COMPUTATION SUBROUTINE
#
# DESCRIPTION
# A POST IMPULSE VELOCITY VECTOR (V2(T1)) IS COMPUTED WHICH EITHER
# (1) MEETS THE INPUT VELOCITY CHANGE DESIRED (RTEDVD) IN A MINIMUM TIME OR
# (2) IF A VELOCITY CHANGE ISN'T SPECIFIED (RTEDVD = 0), A V2(T1) IS COMPUTED WHICH MINIMIZES THE IMPULSE (DV)
# AND CONSEQUENTLY FUEL.
#
# CALLING SEQUENCE
# L CALL
# L+1 V2T100
#
# NORMAL EXIT MODE
# AT L+2 OF CALLING SEQUENCE WITH MPAC = 0
#
# ALARM EXIT MODE
# AT L+2 OF CALLING SEQUENCE WITH MPAC = OCTAL 605 FOR EXCESS ITERATIONS.
#
# SUBROUTINES CALLED
# GAMDV10
# XT1LIM
# DVCALC
#
# ERASABLE INITIALIZATION REQUIRED
#    PUSHLIST
# NONE
#    MPAC
# NONE
#    OTHER
# R(T1) MAGNITUDE OF INITIAL POSITION VECTOR DP B29/B27 METERS
# RCON MAGNITUDE OF FINAL POSITION VECTOR DP B29/B27 METERS
# V(T1)/ INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# RTEDVD DELTA VELOCITY DESIRED DP B7/B5 METERS/CS
# UR1/ UNIT INITIAL VECTOR VECTOR B1
# UH/ UNIT HORIZONTAL VECTOR VECTOR B1
# X(T2) COTANGENT OF FINAL FLIGHT PATH ANGLE DP B0
# X(T1) COTANGENT OF INITIAL FLIGHT PATH ANGLE (INPUT FOR PREC) DP B5
# CFPA COSINE OF INITIAL FLIGHT PATH ANGLE DP B1
# MAMAX1 MAJOR AXIS LIMIT FOR LOWER BOUND ON GAMDV ITERATOR DP B30/B28 METERS
# MAMAX2 MAJOR AXIS LIMIT FOR UPPER BOUND ON GAMDV ITERATOR DP B30/B28 METERS
# PHI2 REENTRY NEAR PERIGEE OR APOGEE INDICATE (RTE ONLY) DP B2 -1 PERIGEE, +1 APOGEE
# N1 CONIC OR PRECISION ITERATION OPERATOR DP B28 NEGATIVE CONIC, PLUS PREC
#
# OUTPUT
# V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# DV INITIAL VELOCITY CHANGE DP B7/B5 METERS/CS
# X(T1) COTANGENT OF INITIAL FLIGHT PATH ANGLE (POST IMPULSE) DP B5
# PCON SEMI-LATUS RECTUM DP B28/B26 METERS
# BETA1 1+X(T2)**2 DP B1
#
# Page 918
#
# DEBRIS
#    PUSHLIST
# 00D X(T1),,=PREVIOUS PRECISION X(T1) DP B5
# 02D THETA1=BETA5*LAMBDA-1 TP B17
# 05D THETA2=2*R(T1)*(LAMBDA-1) TP B38/B36
# 08D THETA3=MU**.5/R(T1) DP B-4/B-5
# 10D X(T1)MIN=LOWER BOUND ON X(T1) IN GAMDV ITERATOR DP B5
# 12D DX(T1)MAX=MAXIMUM DELTA X(T1) DP B5
# 14D X(T1)MAX=UPPER BOUND ON X(T1) IN GAMDV ITERATOR DP B5
# 16D DX(T1)=ITERATOR INCREMENT DP B5
# 31D GAMDV10 SUBROUTINE RETURN ADDRESS
# 32D DVCALC SUBROUTINE RETURN ADDRESS
# 33D V2T100 SUBROUTINE RETURN ADDRESS

V2T100  STQ DLOAD
   33D
   RCON
  BMN DSU  # ABORT IF RCON NEGATIVE
   V2TERROR
   R(T1)
  BMN
   V2T101
V2TERROR EXIT   # OR IF LAMBDA LESS THAN ONE
  TC POODOO  # NO SOLUTION IF LAMBDA LESS THAN 1
  OCT 00610
V2T101  SETPD CLEAR
   0  # PL00D
   F2RTE
  DLOAD NORM
   RCON
   X1
  PDDL NORM
   R(T1)
   S1
  STORE 10D
  SR1 DDV  # R1/RCON = LAMBDA B1
  XSU,1 PDDL  # PL02D
   S1
   X(T2)
  DSQ
  SR1 DAD
   1RTEB1
  STORE BETA1  # 1+X(T2)**2 = BETA1 B1
  DMP
   00D
  STORE 28D  # BETAI*LAMBDA = BETA5
  DMP SL*
   00D
   0 -7,1
  SL* DSU
# Page 919
   0 -7,1
   1RTEB17
  RTB PDDL  # BETA5*LAMBDA-1 = THETA1 B17 PL05D
   TPMODE
   1RTEB1
  SR* DCOMP
   0,1
  DAD DMP
   00D
   R(T1)
  SL* RTB
   0 -7D,1
   TPMODE
  PDDL   # 2*R(T1)*(LAMBDA-1)=THETA2 B38/B36 PL08D
   RTMURTE
  NORM SR1
   X2
  XSU,2 DDV
   S1
   10D
  SR* PDDL  # MU**.5/R(T1)=THETA3 B-4/B-5 PL10D
   6,2
   MAMAX1
  PUSH PUSH  # MAMAX1=MA
  CALL
   XT1LIM
  DCOMP PUSH  # X(T1)MIN B5  PL12D
  DCOMP SR4
  PDDL PUSH  # DX(T1)MAX B5  PL14D
   MAMAX2
  PUSH CALL
   XT1LIM
  PDDL BMN  # X(T1)MAX B5  PL16D
   NN1A
   V2T102
  GOTO
   V2T110

# PROCEED HERE IF NOT PRECISION COMPUTATION

V2T102  DLOAD
   RTEDVD
  BZE GOTO
   V2T105
   V2T140
V2T105  DLOAD BMN
   CFPA
   V2T140
  GOTO
   V2T145
# Page 920
# DURING A PRECISION TRAJECTORY ITERATION CONSTRAIN THE INDEPENDENT
# VARIABLE TO INSURE THAT ALL CONICS PASS THROUGH RCON ON THE SAME PASS
# THROUGH X(T2)

V2T110  DLOAD RTB
   1RTEB17
   TPMODE
  DCOMP PDDL  # -1 B17  PL19D
   2RTEB1
  SR* DSU
   0,1
   00D
  DMP SL*
   28D
   0 -7,1
  SL* TAD
   0 -7,1
  RTB PDDL  # BETA5(2-LAMBDA)-1=BETA6 B17  PL19D
   TPMODE
   X(T1)
  STORE 00D  # X(T1),, B5
  TLOAD   # PL16D
  BMN BZE
   V2T115
   V2T115
  SL GOTO
   7
   V2T120
V2T115  DLOAD BMN
   PHI2
   V2T125
  DCOMP
  STODL PHI2
   10RTE
  STORE NN1A
  GOTO
   V2T125
V2T120  SQRT RTB
   DPMODE
  PDDL BMN  # BETA6**.5=X(T1)LIM B5  PL18D
   PHI2
   V2T130
  DLOAD STADR
  STORE 14D  # X(T1)LIM = X(T1)MAX
  DCOMP
  STORE 10D  # -X(T1)LIM = X(T1)MIN
V2T125  DLOAD BZE
   X(T1)
   V2T140
  BMN GOTO
# Page 921
   V2T140
   V2T145
V2T130  DLOAD BZE
   X(T1)
   V2T135
  BMN DLOAD  # PL16D
   V2T135
  STADR
  STORE 10D  # X(T1)LIM = X(T1)MIN
  GOTO
   V2T145
V2T135  DLOAD DCOMP  # PL16D
  STADR
  STORE 14D  # -X(T1)LIM = X(T1)MAX
V2T140  DLOAD
   10D
  STODL X(T1)  # X(T1)MIN = X(T1)
   12D
  PUSH GOTO  # DX(T1)MAX = DX(T1) PL18D
   V2T150
V2T145  DLOAD
   14D
  STODL X(T1)  # X(T1)MAX = X(T1)
   12D
  DCOMP PUSH  # -DX(T1)MAX = DX(T1) PL18D
V2T150  CALL   # GOTO X(T1)-DV ITERATOR
   GAMDV10
  DLOAD BZE  # EXIT IF MINIMUM FUEL MODE
   RTEDVD
   V2T1X

# CONTINUE IF TIME CRITICAL MODE

  DSU BMN
   DV
   V2T155
  GOTO
   V2T175
V2T155  DLOAD BMN
   NN1A
   V2T160
  GOTO
   V2T185

# CONIC TRAJECTORY COMPUTATION

V2T160  DLOAD BZE
   X(T1)
   V2T165
  BMN GOTO
# Page 922
   V2T165
   V2T300
V2T165  DLOAD BZE
   CFPA
   V2T300
  BMN DLOAD
   V2T300
   14D
  STODL X(T1)  # X(T1)MAX=X(T1)
   12D
  DCOMP
  STCALL 16D  # -DX(T1)MAX=DX(T1)
   GAMDV10
  DLOAD DSU
   RTEDVD
   DV
  BMN
   V2T300
V2T175  SET DLOAD
   F2RTE
   X(T1)
  BOFF
   SLOWFLG
   V2T177
  STODL 10D  # X(T1)MIN
   12D  # DX(T1)MAX
  GOTO
   V2T179
V2T177  STODL 14D
   12D
  DCOMP
V2T179  STCALL 16D  # DX(T1)
   GAMDV10
  DLOAD BMN
   NN1A
   V2T300

# PREVENT A LARGE CHANGE IN INDEPENDENT VARIABLE DURING AN ITERATION FOR A
# PRECISION TRAJECTORY

V2T185  DLOAD DSU
   X(T1)
   00D
  ABS PDDL  # /X(T1)-X(T1),,/ = BETA7
   12D
  SL1 BDSU
  BMN DLOAD
   V2T300
   00D  # CONTINUE IF BETA7 LARGER THAN 2DX(T1)MAX
  STORE X(T1)  # X(T1),, = X(T1)
# Page 923
  DSU BMN
   14D
   V2T195
  DLOAD
   14D
  STORE X(T1)  # X(T1)MAX = X(T1)
  GOTO
   V2T205
V2T195  DLOAD DSU
   X(T1)
   10D
  BMN GOTO
   V2T200
   V2T205
V2T200  DLOAD
   10D
  STORE X(T1)  # X(T1)MIN = X(T1)
V2T205  CALL
   DVCALC
V2T300  DLOAD
   ZERORTE
V2T1X  GOTO
   33D

# Page 924
# X(T1)-DV ITERATOR SUBROUTINE
#
# DESCRIPTION
# COMPUTES A POST IMPULSE VELOCITY VECTOR (V2(T1)) WHICH REQUIRES A MINIMUM DV.
#
# CALLING SEQUENCE
# L CALL
# L+1 GAMDV10
#
# NORMAL EXIT MODE
# AT L+2 OF CALLING SEQUENCE
#
# ALARM EXIT MODE
# AT V2T1X WITH MPAC = OCTAL 605 FOR EXCESS ITERATIONS
#
# SUBROUTINES CALLED
# DVCALC
#
# ERASABLE INITIALIZATION REQUIRED
#    PUSHLIST
# 02D THETA1=BETA5*LAMBDA-1 TP B17
# 05D THETA2=2*R(T1)*(LAMBDA-1) TP B38/B36
# 08D THETA3=MU**.5/R(T1) DP B-4/B-5
# 10D X(T1)MIN=LOWER BOUND ON INDEPENDENT VARIABLE X(T1) DP B5
# 12D DX(T1)MAX=MAXIMUM DX(T1) DP B5
# 14D X(T1)MAX=UPPER BOUND ON INDEPENDENT VARIABLE X(T1) DP B5
# 16D DX(T1)=ITERATOR INCREMENT DP B5
#    MPAC
# NONE
#    OTHER
# V(T1)/ INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# RTEDVD DELTA VELOCITY DESIRED DP B7/B5 METERS/CS
# UR1/ UNIT INITIAL VECTOR VECTOR B1
# UH/ UNIT HORIZONTAL VECTOR VECTOR B1
# X(T1) COTANGENT OF INITIAL FLIGHT PATH ANGLE (FROM VERTICAL) DP B5
# F2RTE TIME CRITICAL OR MINIMUM FUEL MODE INDICATOR STATE AREA 0 MIN. FUEL, 1 MIN. TIME
#
# OUTPUT
# V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# DV INITIAL VELOCITY CHANGE DP B7/B5 METERS/CS
# X(T1) COTANGENT OF INITIAL FPA MEASURED FROM VERTICAL DP B5
# PCON SEMI-LATUS RECTUM DP B28/B26 METERS
#
# DEBRIS
#    PUSHLIST
# 00D X(T1),,
# 02D THETA1
# 05D THETA2
# 08D THETA3
# 10D X(T1)MIN
# 12D DX(T1)MAX
# Page 925
# 14D X(T1)MAX
# 16D DX(T1)
# 22D DV,=PREVIOUS DV DP B7/B5
# 24D BETA9=X(T1)+1.1DX(T1) DP B5
# 31D GAMDV10 SUBROUTINE RETURN ADDRESS
# 32D DVCALC SUBROUTINE RETURN ADDRESS
# 33D V2T100 SUBROUTINE RETURN ADDRESS

GAMDV10  STQ
   31D
  SETPD CALL
   18D  # PL18D
   DVCALC
  DLOAD DSU
   14D
   10D
  BOV
   GAMDV20
  PUSH DSU  # X(T1)MAX-X(T1)MIN=BETA8 B5  PL20D
   EPC9RTE
  BMN DLOAD
   GAMDVX  # BOUNDS CLOSE TOGETHER
   18D
  DSU BMN  # BETA8-DX(T1)MAX
   12D
   GAMDV15
  SETPD GOTO  # PL18D
   18D
   GAMDV20
GAMDV15  DLOAD   # PL18D
  SIGN SR1
   16D
  STORE 16D  # BETA8(SIGNDX(T1))/2=DX(T1)
GAMDV20  DLOAD
   M144RTE
  STORE NN2
GAMDV25  DLOAD DAD
   NN2
   1RTEB28
  BMN SLOAD
   GAMDV30
   OCT605
  GOTO
   V2T1X
GAMDV30  STORE NN2  # NN2=NN2+1
  DLOAD PDDL  # X(T1)=X(T1), B5  PL20D
   X(T1)
   DV
  PDDL DAD  # DV=DV, B7/B5  PL22D
   X(T1)
   16D
# Page 926
  STCALL X(T1)  # X(T1)+DX(T1)=X(T1) B5
   DVCALC
  BON DLOAD
   F2RTE
   GAMDV35
   DV
  DSU BMN  # CONTINUE IF FUEL CRITICAL MODE
   20D
   GAMDV33
GAMDV32  DLOAD DCOMP
   16D
  SR1
  STORE 16D
GAMDV33  SETPD GOTO
   18D  # PL18D
   GAMDV50

# TIME CRITICAL MODE

GAMDV35  DLOAD DSU
   RTEDVD
   DV
  PDDL PUSH  # DVD-DV=DVERR B7/B5  PL22D
GAMDV40  DLOAD ABS  # DV, PL24D
   20D
  DSU BMN
   EPC10RTE
   GAMDVX
GAMDV45  BOVB DLOAD
   TCDANZIG # ASSURE OVFIND IS 0
  BDSU NORM
   DV
   X2
  PDDL   # DV-DV, B7/B5-N2 PL22D
  NORM SR1  # DVERR B8/B6-N1
   X1
  DDV PDDL  # DVERR/ DV - DV
  BDSU DMP  # PL18D
   X(T1)
  XSU,1
   X2
  STORE 16D  # PRESERVE SIGN IF OVERFLOW
  SR* BOV
   0 -1,1
   GAMDV47
  STORE 16D  # (X(T1)-X(T1),)DVERR/(DV-DV,)=DX(T1)
  ABS DSU
   12D
  BMN
   GAMDV50
# Page 927
GAMDV47  DLOAD SIGN
   12D
   16D
  STORE 16D  # DX(T1)MAX(SIGNDX(T1))=DX(T1)

# CHECK TO KEEP INDEPENDENT VARIABLE IN BOUNDS

GAMDV50  DLOAD DMP
   16D
   1.1RTEB1
  SL1 DAD
   X(T1)
  STORE 24D  # X(T1)+1.1DX(T1)=BETA9 B5
  DSU BMN
   14D
   GAMDV55
  DLOAD DSU
   14D
   X(T1)
  SR1
  STCALL 16D  # (X(T1)MAX-X(T1))/2=DX(T1) B5
   GAMDV65
GAMDV55  DLOAD DSU
   24D
   10D
  BMN GOTO
   GAMDV60
   GAMDV65
GAMDV60  DLOAD DSU
   10D
   X(T1)
  SR1
  STORE 16D  # (X(T1)MIN-X(T1))/2=DX(T1) B5
GAMDV65  DLOAD ABS
   16D
  DSU BMN
   EPC9RTE
   GAMDVX
  GOTO
   GAMDV25
GAMDVX  GOTO
   31D

# Page 928
# DV CALCULATION SUBROUTINE
#
# INPUT
#    PUSHLIST
# 02D THETA1=BETA5*LAMBDA-1 TP B17
# 05D THETA2=2*R(T1)*(LAMBDA-1) TP B38/B36
# 08D THETA3=MU**.5/R(T1) DP B-4/B-5
#    OTHER
# X(T1) COTANGENT OF POST IMPULSE INITIAL FLIGHT PATH ANGLE DP B5
# V(T1)/ INITIAL VELOCITY VECTOR (PRE IMPULSE) VECTOR B7/B5 METERS/CS
# UR1/ UNIT INITIAL VECTOR VECTOR B1
# UH/ UNIT HORIZONTAL VECTOR VECTOR B1
#
# OUTPUT
# V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# DV INITIAL VELOCITY CHANGE DP B7/B5 METERS/CS
# PCON SEMI-LATUS RECTUM DP B28/B26 METERS
#
# DEBRIS
# 28D THETA3*PCON**.5 DP B10/B8-N1
# C(PUSHLOC) THETA3(PCON**.5)*X(T1)*UR1/ VECTOR B7/B5
# 32D DVCALC SUBROUTINE RETURN ADDRESS
# X1 NORMALIZATION FACTOR FOR VALUE IN 28D
#
# PUSHLOC IS RESTORED TO ITS ENTRANCE VALUE UPON EXITING DVCALC

DVCALC  STQ DLOAD
   32D
   X(T1)
  DSQ SR
   7
  DCOMP TAD
   02D
  NORM PUSH
   X1
  TLOAD NORM
   05D
   X2
  RTB SR1
   DPMODE
  XSU,2 DDV
   X1
  SR*
   6,2
  STORE PCON  # THETA2/(THETA1-X(T1)**2)=PCON B28/26
  SQRT DMP
   08D
  NORM
   X1
  STODL 28D  # THETA3*PCON**.5 B10/B8 -N1
# Page 929
   X(T1)
  NORM VXSC
   X2
   UR1/  # X(T1)*UR1/ B5+B1 -N2
  XAD,2 VXSC
   X1
   28D
  VSR* PDVL  # THETA3(PCON**.5)X(T1)*UR1/ B7/B5
   0 -9D,2  # +
   UH/
  VXSC VSR*  # THETA3(PCON**.5)UH/ B7/B5
   28D
   0 -4,1  # =
  VAD STADR
  STORE V2(T1)/  # V2(T1)/ B7/B5
  VSU ABVAL
   V(T1)/
  STORE DV  # ABVAL(V2(T1)/-V1(T)/)=DV B7/B5
  GOTO
   32D

# Page 930
# SUBROUTINE TO COMPUTE BOUNDS ON INDEPENDENT VARIABLE X(T1)
#
# INPUT
#    PUSHLIST
# PUSHLOC -4 MAJOR AXIS (MA) DP B30/B28
# PUSHLOC -2 MAJOR AXIS (MA) AGAIN DP B30/B28
# 28D BETA5=LAMBDA*BETA1 DP B9
#    OTHER
# RCON DP B29/B27
# R(T1) DP B29/B27
#
# OUTPUT
#    MPAC
# X(T1)LIM LIMIT ON INDEPENDENT VARIABLE X(T1) DP B5
#
# DEBRIS
#    PUSHLIST
# C(PUSHLOC) MA-RCON DP (B30/28)-N1
# C(PUSHLOC) +2 MA DP B30/B28
# X1 NORMALIZATION FACTOR FOR MA-RCON
# 20D XT1LIM SUBROUTINE RETURN ADDRESS
#
# PUSHLOC IS RESTORED TO ITS ENTRANCE VALUE UPON EXITING XT1LIM

XT1LIM  STQ DLOAD
   20D
   RCON
  SR1 BDSU
  NORM PDDL  # MA-RCON B30-N1
   X2
  PDDL SR1
   R(T1)
  BDSU DDV
  SL* DMP
   0 -3,2
   28D
  SL* DSU  # BETA10=BETA5(MA-RT)/(MA-RC)-1 B11
   0 -6,1
   1RTEB25 +1 # 1.0 B-11
  SL1 BOV
   XT1LIM2
  BMN GOTO
   XT1LIM5
   XT1LIM3
XT1LIM2  DLOAD   # BETA10=POSMAX IF OVERFLOW
   2RTEB1
XT1LIM3  SQRT GOTO  # X(T1)=SQRT(BETA10)
   XT1LIMX
XT1LIM5  DLOAD
   ZERORTE
XT1LIMX  GOTO
   20D

# Page 931
# CONSTANTS FOR THE P37 AND P70 PROGRAMS AND SUBROUTINES

  BANK 36
  SETLOC RTECON1
  BANK

1RTEB1  2DEC 1. B-1
1RTEB2  2DEC 1. B-2
1RTEB3  2DEC 1. B-3
1RTEB4  2DEC 1. B-4
1RTEB10  2DEC 1. B-10
1RTEB12  2DEC 1. B-12
1RTEB13  2DEC 1. B-13
1RTEB17  2DEC 1. B-17
1RTEB25  2DEC 1. B-25
# * * B25 AND B28 MUST BE CONSECUTIVE * *
1RTEB28  2DEC 1. B-28
ZERORTE  2DEC 0
M144RTE  2DEC -144. B-28
M15RTE  2DEC -15
10RTE  2DEC 10
M.6RTE  2DEC -.6
1.1RTEB1 2DEC 1.1 B-1
M6RTEB28 2DEC -6
2RTEB1  2OCT 3777737777
M9RTEB28 2DEC -9
M8RTEB28 2DEC -8
30480RTE 2DEC 30480. B-29
VCSPS  2DEC 31.510396 B-5 # (SEE 2VEXHUST)
# Page 932
VCRCS  2DEC 27.0664 B-5
MDOTRCS  2DEC .0016375 B-3
CSUBT  2DEC .5
OCT605  OCT 00605
OCT612  OCT 00612
MCOS7.5  2DEC -.99144486
MSIN7.5  2DEC -.13052619
MCOS22.5 2DEC -.92387953 B-2
THETA165 2DEC .4583333333
THETA210 2DEC .5833333333
EPC1RTE  2DEC .99966 B-1
EPC2RTE  2DEC 100. B-29
EPC3RTE  2DEC .001
EPC4RTE  2DEC .00001
EPC5RTE  2DEC .01 B-6
EPC6RTE  2DEC .000007 B-1
EPC7RTE  2DEC 1000. B-29
EPC9RTE  2DEC 1. B-25
EPC10RTE 2DEC .0001 B-7

  BANK 35
  SETLOC RTECON1
  BANK

C4RTE  2DEC -6.986643 E7 B-30
K1RTE  2DEC 7. E6 B-29
K2RTE  2DEC 6495000. B-29
K3RTE  2DEC -.06105
K4RTE  2DEC -.10453
RTMURTE  2DEC 199650.501 B-18
# Page 933
E3RTE  2DEC 121920. B-29


Messung V0.5 in Prozent
C=61 H=100 G=82

¤ Dauer der Verarbeitung: 0.36 Sekunden  (vorverarbeitet am  2026-10-12) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.