'Program "STARS5" [STARS5.BAS] ' - calculates impact parameter & time of closest approACH for stars ' - required data ' 1 Star Number ' 2 Parallax("), Proper Motion (RA(s), Dec(")), Radial velocity (km/s) ' - Note ' The values obtained are only estimates, since the method is a ' straight line backtracking to the point. ' No attempt is made in this program to move back along the ' star's orbit 'assign input and output files and output format OPEN "stars5.dat" FOR INPUT AS #1 OPEN "stars5.res" FOR OUTPUT AS #2 PRINT #2, " PROGRAM STARS5" PRINT #2, PRINT #2, "FIRST ORDER ESTIMATION OF IMPACT PARAMETER AND TIME OF CLOSEST ENCOUNTER" lin$ = "------------------------------------------------------------------------" PRINT #2, lin$ PRINT #2, PRINT #2, "STAR PRESENT IMPACT TIME OF STAR" PRINT #2, "NUM DISTANCE PARAMETER APPROACH VELOCITY" PRINT #2, lin$ PRINT #2, " ( A.U. ) (YR) (KM/S)" f$ = "#### ##.##^^^^ ##.##^^^^ ##.##^^^^ ##.##^^^^" 'set constants pi = 3.14159 radius = 1! factr1 = 15! factr2 = 4.715 factr3 = 206265 'read and process data kount = 0 DO INPUT #1, starnum, parllx, pmra, pmdec, vrad PRINT starnum, parllx, pmra, pmdec, vrad pmra = pmra * factr1 vpm = factr2 * radius * SQR(pmra ^ 2 + pmdec ^ 2) / parllx vstar = SQR(vrad ^ 2 + vpm ^ 2) dist = factr3 * radius / parllx IF vrad = 0 THEN impact = dist time = 0 ELSE theta = ATN(vpm / vrad) impact = ABS(dist * SIN(theta)) time = -dist * COS(theta) * factr2 / vstar IF vrad < 0 THEN time = -time END IF ' IF impact < 400000! THEN PRINT #2, USING f$; starnum; dist; impact; time; vstar kount = kount + 1 'END IF LOOP WHILE EOF(1) = 0 PRINT #2, lin$ PRINT #2, " Number of possible stars = "; kount PRINT #2, lin$ PRINT "Processing complete" END