Proof LATITUDE_LONGITUDE_SUBROUTINES #223 (#382)

* Proof FIXED_FIXED_CONSTANT_POOL (#207)

* wip(p1236/1242): Proof LATITUDE_LONGITUDE_SUBROUTINES #223

* wip(p1242/1242: DONE): Proof LATITUDE_LONGITUDE_SUBROUTINES #223

* wip(p1242/1242: polishing): Proof LATITUDE_LONGITUDE_SUBROUTINES #223

* Update Comanche055/LATITUDE_LONGITUDE_SUBROUTINES.agc

Co-Authored-By: dwiyatci <dwiyatci@mail.com>

* Update Comanche055/LATITUDE_LONGITUDE_SUBROUTINES.agc

Co-Authored-By: dwiyatci <dwiyatci@mail.com>

* Update Comanche055/LATITUDE_LONGITUDE_SUBROUTINES.agc

Co-Authored-By: dwiyatci <dwiyatci@mail.com>
This commit is contained in:
Glenn Dwiyatcita 2019-05-02 16:11:42 +02:00 committed by James Harris
parent 2599c17241
commit 77155ed107

View File

@ -31,20 +31,21 @@
# SUBROUTINE TO CONVERT RAD VECTOR AT GIVEN TIME TO LAT,LONG AND ALT # SUBROUTINE TO CONVERT RAD VECTOR AT GIVEN TIME TO LAT,LONG AND ALT
# #
# CALLING SEQUENCE # CALLING SEQUENCE
#
# L-1 CALL # L-1 CALL
# L LAT-LONG # L LAT-LONG
#
# SUBROUTINES USED # SUBROUTINES USED
# R-TO-RP, ARCTAN, SETGAMMA, SETRE
# #
# R-TO-RP,ARCTAN,SETGAMMA,SETRE
# ERASABLE INIT. REQ. # ERASABLE INIT. REQ.
# AXO, -AYO, AZO, TEPHEM (SET AT LAUNCH TIME)
# ALPHAV = POSITION VECTOR METERS B-29
# MPAC -- TIME (CSECS B-28)
# ERADFLAG =1, TO COMPUTE EARTH RADIUS, =0 FOR FIXED EARTH RADIUS
# LUNAFLAG=0 FOR EARTH, 1 FOR MOON
# #
# AXO,-AYO,AZO,TEPHEM (SET AT LAUNCH TIME)
# ALPHAV = POSITION VECTOR METERS B-29
# MPAC-- TIME (CSECS B-28)
# ERADFLAG =1, TO COMPUTE EARTH RADIUS, =0 FOR FIXED EARTH RADIUS
# LUNAFLAG=0 FOR EARTH,1 FOR MOON
# OUTPUT # OUTPUT
#
# LATITUDE IN LAT (REVS. B-0) # LATITUDE IN LAT (REVS. B-0)
# LONGITUDE IN LONG (REVS. B-0) # LONGITUDE IN LONG (REVS. B-0)
# ALTITUDE IN ALT METERS B-29 # ALTITUDE IN ALT METERS B-29
@ -63,16 +64,16 @@ LAT-LONG STQ SETPD
ALPHAV ALPHAV
PUSH ABVAL # 0-5D= R FOR R-TO-RP PUSH ABVAL # 0-5D= R FOR R-TO-RP
STODL ALPHAM # ABS. VALUE OF R FOR ALT FORMULA BELOW STODL ALPHAM # ABS. VALUE OF R FOR ALT FORMULA BELOW
ZEROVEC # SET MPAC=0 FOR EARTH, NON-ZERO FOR MOON ZEROVEC # SET MPAC=0 FOR EARTH,NON-ZERO FOR MOON
BOFF COS # USE COS(0) TO GET NON-ZERO IN MPAC BOFF COS # USE COS(0) TO GET NON-ZERO IN MPAC
LUNAFLAG # 0=EARTH, 1=MOON LUNAFLAG # 0=EARTH,1=MOON
CALLRTRP CALLRTRP
CALLRTRP CALL CALLRTRP CALL
R-TO-RP # RP VECTOR CONVERTED FROM R B-29 R-TO-RP # RP VECTOR CONVERTED FROM R B-29
UNIT # UNIT RP B-1 UNIT # UNIT RP B-1
STCALL ALPHAV # U2= 1/2 SINL FOR SETRE SUBR BELOW STCALL ALPHAV # U2= 1/2 SINL FOR SETRE SUBR BELOW
SETGAMMA # SET GAMMA=B2/A2 FOR EARTH, =1 FOR MOON SETGAMMA # SET GAMMA=B2/A2 FOR EARTH,=1 FOR MOON
CALL # SCALED B-1. CALL # SCALED B-1
SETRE # CALC RE METERS B-29 SETRE # CALC RE METERS B-29
DLOAD DSQ DLOAD DSQ
ALPHAV ALPHAV
@ -100,48 +101,46 @@ CALLRTRP CALL
INCORPEX INCORPEX
# Page 1238 # Page 1238
# SUBROUTINE TO CONVERT LAT,LONG.ALT AT GIVEN TIME TO RADIUS VECTOR # SUBROUTINE TO CONVERT LAT,LONG.ALT AT GIVEN TIME TO RADIUS VECTOR
#
# CALLING SEQUENCE # CALLING SEQUENCE
# L-1 CALL # L-1 CALL
# L LALOTORV # L LALOTORV
#
# SUBROUTINES USED # SUBROUTINES USED
# SETGAMMA, SETRE, RP-TO-R # SETGAMMA,SETRE,RP-TO-R
#
# ERASABLE INIT. REQ. # ERASABLE INIT. REQ.
# AXO, AYO, AZO, TEPHEM SET AT LAUNCH TIME
# LAT -- LATITUDE (REVS B0)
# LONG -- LONGITUDE (REVS B0)
# ALT -- ALTITUDE (METERS) B-29
# MPAC -- TIME (CSECS B-28)
# ERADFLAG =1 TO COMPUTE EARTH RADIUS, =0 FOR FIXED EARTH RADIUS
# LUNAFLAG=0 FOR EARTH, 1 FOR MOON
#
# OUTPUT
# R-VECTOR IN ALPHAV (METERS B-29)
# AXO,AYO,AZO,TEPHEM SET AT LAUNCH TIME
# LAT-- LATITUDE (REVS B0)
# LONG-- LONGITUDE (REVS B0)
# ALT--ALTITUDE (METERS) B-29
# MPAC-- TIME (CSECS B-28)
# ERADFLAG =1 TO COMPUTE EARTH RADIUS, =0 FOR FIXED EARTH RADIUS
# LUNAFLAG=0 FOR EARTH,1 FOR MOON
# OUTPUT
# R-VECTOR IN ALPHAV (METERS B-29)
LALOTORV STQ SETPD # LAT,LONG,ALT TO R VECTOR LALOTORV STQ SETPD # LAT,LONG,ALT TO R VECTOR
INCORPEX INCORPEX
0D 0D
STCALL 6D # 6-7D = TIME FOR RP-TO-R STCALL 6D # 6-7D= TIME FOR RP-TO-R
SETGAMMA # GAMMA = B2/A2 FOR EARTH, 1 FOR MOON B-1 SETGAMMA # GAMMA=B2/A2 FOR EARTH,1 FOR MOON B-1
DLOAD SIN # COS(LONG)COS(LAT) IN MPAC DLOAD SIN # COS(LONG)COS(LAT) IN MPAC
LAT # UNIT RP = SIN(LONG)COS(LAT) 2-3D LAT # UNIT RP= SIN(LONG)COS(LAT) 2-3D
DMPR PDDL # PD 2 GAMMA*SIN(LAT) 0-1D DMPR PDDL # PD 2 GAMMA*SIN(LAT) 0-1D
GAMRP GAMRP
LAT # 0-1D = GAMMA*SIN(LAT) B-2 LAT # 0-1D = GAMMA*SIN(LAT) B-2
COS PDDL # PD4 2-3D= COS(LAT) B-1 TEMPORARILY COS PDDL # PD4 2-3D=COS(LAT) B-1 TEMPORARILY
LONG LONG
SIN DMPR # PD 2 SIN DMPR # PD 2
PDDL COS # PD 4 2-3D= SIN(LONG)COS(LAT) B-2 PDDL COS # PD 4 2-3D=SIN(LONG)COS(LAT) B-2
LAT LAT
PDDL COS # PD 6 4-5D= COS(LAT) B-1 TEMPORARILY PDDL COS # PD 6 4-5D=COS(LAT) B-1 TEMPORARILY
LONG LONG
DMPR VDEF # PD4 MPAC = COS(LONG)COS(LAT) B-2 DMPR VDEF # PD4 MPAC= COS(LONG)COS(LAT) B-2
UNIT PUSH # 0-5D = UNIT RP FOR RP-TO-R SUBR. UNIT PUSH # 0-5D= UNIT RP FOR RP-TO-R SUBR.
STCALL ALPHAV # ALPHAV +4= SINL FOR SETRE SUBR. STCALL ALPHAV # ALPHAV +4= SINL FOR SETRE SUBR.
SETRE # RE METERS B-29 SETRE # RE METERS B-29
DLOAD BOFF # SET MPAC = 0 FOR EARTH, NON-ZERO FOR MOON DLOAD BOFF # SET MPAC=0 FOR EARTH,NON-ZERO FOR MOON
ZEROVEC ZEROVEC
LUNAFLAG LUNAFLAG
CALLRPRT CALLRPRT
@ -157,13 +156,14 @@ CALLRPRT CALL
VSL1 # R METERS B-29 VSL1 # R METERS B-29
STCALL ALPHAV # EXIT WITH R IN METERS B-29 STCALL ALPHAV # EXIT WITH R IN METERS B-29
INCORPEX INCORPEX
# SUBROUTINE TO COMPUTE EARTH RADIUS # SUBROUTINE TO COMPUTE EARTH RADIUS
#
# INPUT # INPUT
# 1/2 SIN LAT IN ALPHAV +4 # 1/2 SIN LAT IN ALPHAV +4
#
# OUTPUT # OUTPUT
# EARTH RADIUS IN ERADM AND MPAC (METERS B-29) # EARTH RADIUS IN ERADM AND MPAC (METERS B-29)
GETERAD DLOAD DSQ GETERAD DLOAD DSQ
@ -179,10 +179,10 @@ GETERAD DLOAD DSQ
STORE ERADM STORE ERADM
RVQ RVQ
# THE FOLLOWING CONSTANTS WERE COMPUTED WITH A=6378166, B=6356784 METERS # THE FOLLOWING CONSTANTS WERE COMPUTED WITH A=6378166,B=6356784 METERS
# B2XSC = B**2 SCALED B-51 # B2XSC= B**2 SCALED B-51
# B2/A2 = B**2/A**2 SCALED B-1 # B2/A2= B**2/A**2 SCALED B-1
# EE = (1-B**2/A**2) SCALED B-0 # EE=(1-B**2/A**2) SCALED B-0
B2XSC 2DEC .0179450689 # B**2 SCALED B-51 B2XSC 2DEC .0179450689 # B**2 SCALED B-51
@ -195,12 +195,14 @@ ERAD 2DEC 6373338 B-29 # PAD RADIUS
# Page 1240 # Page 1240
# ARCTAN SUBROUTINE # ARCTAN SUBROUTINE
#
# CALLING SEQUENCE # CALLING SEQUENCE
# SIN THETA IN SINTH B-1 # SIN THETA IN SINTH B-1
# COS THETA IN COSTH B-1 # COS THETA IN COSTH B-1
# CALL ARCTAN # CALL ARCTAN
#
# OUTPUT # OUTPUT
# ARCTAN THETA IN MPAC AND THETA B-0 IN RANGE -1/2 TO +1/2 # ARCTAN THETA IN MPAC AND THETA B-0 IN RANGE -1/2 TO +1/2
@ -212,7 +214,7 @@ CLROVFLW DLOAD DSQ
COSTH COSTH
DAD DAD
BZE SQRT BZE SQRT
ARCTANXX # ATAN=0/0. SET THETA=0 ARCTANXX # ATAN=0/0 SET THETA=0
BDDV BOV BDDV BOV
SINTH SINTH
ATAN=90 ATAN=90
@ -243,19 +245,19 @@ ATAN=90 DLOAD SIGN
# Page 1241 # Page 1241
# ***** SETGAMMA SUBROUTINE ***** # ***** SETGAMMA SUBROUTINE *****
# SUBROUTINE TO SET GAMMA FOR THE LAT-LONG AND LALOTORV SUBROUTINES # SUBROUTINE TO SET GAMMA FOR THE LAT-LONG AND LALOTORV SUBROUTINES
#
# GAMMA = B**2/A**2 FOR EARTH (B-1) # GAMMA = B**2/A**2 FOR EARTH (B-1)
# GAMMA = 1 FOR MOON (B-1) # GAMMA = 1 FOR MOON (B-1)
#
# CALLING SEQUENCE # CALLING SEQUENCE
# L CALL # L CALL
# L+1 SETGAMMA # L+1 SETGAMMA
#
# INPUT # INPUT
# LUNAFLAG=0 FOR EARTH, =1 FOR MOON # LUNAFLAG=0 FOR EARTH,=1 FOR MOON
#
# OUTPUT # OUTPUT
# GAMMA IN GAMRP (B-1) # GAMMA IN GAMRP (B-1)
SETGAMMA DLOAD BOFF # BRANCH FOR EARTH SETGAMMA DLOAD BOFF # BRANCH FOR EARTH
B2/A2 # EARTH GAMMA B2/A2 # EARTH GAMMA
@ -270,25 +272,25 @@ GAMRP = 8D
# Page 1242 # Page 1242
# ***** SETRE SUBROUTINE ***** # ***** SETRE SUBROUTINE *****
# SUBROUTINE TO SET RE (EARTH OR MOON RADIUS) # SUBROUTINE TO SET RE (EARTH OR MOON RADIUS)
#
# RE = RM FOR MOON # RE= RM FOR MOON
# RE = RREF FOR FIXED EARTH RADIUS OR COMPUTED RF FOR FISCHER ELLIPSOID # RE= RREF FOR FIXED EARTH RADIUS OR COMPUTED RF FOR FISCHER ELLIPSOID
#
# CALLING SEQUENCE # CALLING SEQUENCE
# L CALL # L CALL
# L+1 SETRE # L+1 SETRE
#
# SUBROUTINES USED # SUBROUTINES USED
# CETERAD # GETERAD
#
# INPUT # INPUT
# ERADFLAG = 0 FOR FIXED RE, 1 FOR COMPUTED RE # ERADFLAG=0 FOR FIXED RE, 1 FOR COMPUTED RE
# ALPHAV +4 = 1/2 SINL IF GETERAD IS CALLED # ALPHAV +4= 1/2 SINL IF GETERAD IS CALLED
# LUNAFLAG = 0 FOR EARTH, =1 FOR MOON # LUNAFLAG=0 FOR EARTH,=1 FOR MOON
#
# OUTPUT # OUTPUT
# ERADM = 504RM FOR MOON (METERS B-29) # ERADM= 504RM FOR MOON (METERS B-29)
# ERADM = ERAD OR COMPUTED RE FOR EARTH (METERS B-29) # ERADM= ERAD OR COMPUTED RF FOR EARTH (METERS B-29)
SETRE STQ DLOAD SETRE STQ DLOAD
SETREX SETREX
@ -297,13 +299,13 @@ SETRE STQ DLOAD
LUNAFLAG LUNAFLAG
TSTRLSRM TSTRLSRM
ERAD ERAD
BOFF CALL # ERADFLAG=0 FOR FIXED RE, 1 FOR COMPUTED BOFF CALL # ERADFLAG=0 FOR FIXED RE,1 FOR COMPUTED
ERADFLAG ERADFLAG
SETRXX SETRXX
GETERAD GETERAD
SETRXX STCALL ERADM # EXIT WITH RE OR RM METERS B-29 SETRXX STCALL ERADM # EXIT WITH RE OR RM METERS B-29
SETREX SETREX
TSTRLSRM BON VLOAD # ERADFLAG=0, SET R0=RLS TSTRLSRM BON VLOAD # ERADFLAG=0,SET R0=RLS
ERADFLAG # =1 R0=RM ERADFLAG # =1 R0=RM
SETRXX SETRXX
RLS RLS
@ -313,6 +315,3 @@ TSTRLSRM BON VLOAD # ERADFLAG=0, SET R0=RLS
SETREX = S2 SETREX = S2
504RM 2DEC 1738090 B-29 # METERS B-29 (MOON RADIUS) 504RM 2DEC 1738090 B-29 # METERS B-29 (MOON RADIUS)