mirror of
https://github.com/moshix/mvs.git
synced 2026-01-11 23:43:00 +00:00
91 lines
2.2 KiB
Rexx
91 lines
2.2 KiB
Rexx
/* rexx for orbital mechanics */
|
|
/* computing period, eccentricity, and extremem speeds of
|
|
space craft from the altitude of its perigee and apogee
|
|
|
|
let ap and aq be the altitudes of the perigee and apoggee of the
|
|
spacecraft orbiting around the earth. enter "ap" and "aq"
|
|
in miles as data in Line 100. to output to the printer
|
|
change print definition in TSO */
|
|
/* ATTENTION THIS IS IN MILES BASIS (IMPERIAL) NOT METERS/SEC,
|
|
SO THIGNS LIKE GRAVITY ARE EXPRESSED IN MILES/SEC, NOT METERS!!!*/
|
|
ap = 6400 /* apogee km */
|
|
aq = 6400 /* perigee km */
|
|
h = 6678 /* altitude km */
|
|
step = 100
|
|
say 'Pls input periapse in km from earth center: '
|
|
pull ap
|
|
say 'Pls input apoiapse in km from earth center: '
|
|
pull aq
|
|
say 'Pls input increments for plit in kilomters: '
|
|
pull step
|
|
r = 6371
|
|
rp = ap + r
|
|
rq= aq + r
|
|
e =((rq - rp ) / (rq + rp))
|
|
f = e * 10
|
|
say 'Eccentricity ='f
|
|
say 'ap ='ap'km'
|
|
say 'aq ='aq'km'
|
|
do i = ap to aq by step
|
|
say 'at orbital altitude: ' i 'km, velocity is ' vel(ap,aq,i) 'm/sec'
|
|
end
|
|
exit
|
|
|
|
/* parse values */
|
|
vel: procedure; parse arg vp,vq,vh
|
|
vh =vh*1000 /* hight in meters */
|
|
/* */
|
|
vg = 6.67408E-11 /* gravity constant */
|
|
vm = 5.972E24 /* mass of earth */
|
|
vmu = vg*vm /* mu */
|
|
va = ((vp+vq)/2)*1000
|
|
vvs =vmu*((2/vh)-(1/va)) /* v sqrd for eliptic */
|
|
vv = sqr(vvs) /* square rt of v2 */
|
|
s = 'ms-1 '
|
|
return (vv)
|
|
end
|
|
|
|
|
|
sqr: procedure; parse arg x
|
|
/*insure that X is numeric, X>=0, and NUMERIC DIGITS is large enough.*/
|
|
/* [insert your code to do that (above) below. (heh heh heh).*/
|
|
x=x/1; if x==0 then return x
|
|
_=format(x,,,,0) 'E0'; parse var _ x "E" p .
|
|
if abs(p)//2 then do; s=sign(p); x=x*10**s; p=p-s; end
|
|
g=.5*(x+1)
|
|
do forever
|
|
_=.5*(g+x/g); if g=_ then return (g*10**(p%2))/1
|
|
g=_
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|