unit UnSagCoT; { types and constants } interface Const jd2000 = 2451545.0 ; julianc = 36525.0 ; difepoch = 2400000.5 ; Const GaussConst = 0.0172020989500000e0 ; { in AstrUnit**3/ -->} GaussK = GaussConst ; { ((Ephem.Day**2)*MassOfSun if in Sqr } SqrGauK = GaussK*GaussK ; { to Sqr in AU^3/(day^2*M_S) } CavendishConst = 6.672e-20 ; { in km**3/(kg*s**2) } AstrUnit = 1.49597870691e8 ; { in km } VelOfLight = 299792.4580 ; { in km/s } SunFM = 1.32712438e11 ; { in km**3/s**2 } GeoR0 = 6378.140 ; { equatorial radius of the Earth in km } const grarad = Pi/180 ; radgra = 180/Pi ; secrad = grarad/3600.0 ; radsec = 3600.0*radgra ; pi22 = 2*Pi ; twopi = pi22 ; halfpi = Pi/2 ; const NumberOfCoor = 3 ; NumberOfVar = 6 ; type tsagelm = record { to identify the current satellite and planet } mig : byte ; { number of the main planet } snm : string[16] ; { may be the number of the satellite } stn : string[16] ; { may be the name or identification } epo : double ; { elements epoch in julian day } ela : double ; { semimajor axis in astronomical unit } ele : double ; { eccentricity } eli : double ; { inclination in degree } eln : double ; { longitude of ascension node in degree } elp : double ; { argument of pericentre in degree } elm : double ; { mean anomaly in degree } end; type TVarSix = Array [1..NumberOfVar] of Extended ; type tsagano = record { canonical elements } t : extended ; { epoch or current moment } e : tvarsix ; { canonical elements L G H l g h } n : extended ; { mean motion in radian per day } end; type tvect3 = array[1..3] of extended ; { for position and velosity } TypeDim3 = tvect3 ; { the same } tmatr33 = array[1..3,1..3] of extended ; { matrix to change } typedim33 = tmatr33 ; { the same } TFundArg = array [1..5] of Extended ; { fundamental arguments } type TCooRec = record nums : Integer ; { number of station in list } name : string[12] ; { name of station in list } desc : tvect3 ; { descart positions in kilometer } vauc : tvect3 ; { positions in Astronomical unit } geod : typedim3 ; { lat long degree h kilometer } topm : tmatr33 ; { matrix to topocentric } end; type tposvel = record t : extended ; { time } r : tvect3 ; { position } v : tvect3 ; { velosity } end; implementation end.