1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
| IMPLICIT DOUBLE PRECISION ( A-H, O-Z ) IMPLICIT INTEGER ( I-N ) DIMENSION STAR(6), OBSERV(6), SKYPOS(7), . POS(3), VEL(3), POSE(3), VTER(3), VCEL(3)
PARAMETER ( PI = 3.14159265358979324D0 ) PARAMETER ( DEGRAD = PI / 180.D0 )
INTEGER PLANET_num CHARACTER*3 PLANETS_name(9),PLANET_name
DATA STAR, OBSERV / 12 * 0.D0 /
DATA IYEAR, MONTH, IDAY, HOUR / . 2023, 5, 1, 23.262097222222224D0 / DATA LEAPS, UT1UTC, XP, YP / . 37, -0.0342596D0, 0.027600D0,0.473427D0 /
DATA GLON, GLAT, HT / 74.896667D0, 38.329722D0, 4520.D0 /
PLANETS_name= (/'MOO','MER','VEN','MAR', .'JUP','SAT','URA','NEP','PLU'/)
* FORMAT STATEMENTS FOR OUTPUT
9010 FORMAT(1X, 3(F17.12, 8X)) 9020 FORMAT(1X, 2(F15.6, 8X), 1F17.12) 9030 FORMAT(1X, 2(F17.12, 8X), 1D18.12) 9040 FORMAT(1X, F5.0,'d', 2X,F5.0,'m' 2X, 1F7.3,'s') 9050 FORMAT(1X, F5.0,'h', 2X,F5.0,'m' 2X, 1F9.5,'s') WRITE ( *, * ) WRITE ( *, * ) 'NOVAS Calculations' WRITE ( *, * ) '-------------------------' * SETUP CALLS * HIGH ACCURACY AND EQUINOX MODE ARE NOVAS DEFAULTS. CALL HIACC CALL EQINOX IEARTH = IDSS ( 'EARTH' ) * WRITE OUT ASSUMED LONGITUDE, LATITUDE, HEIGHT (ITRS = WGS-84) WRITE ( *, * ) WRITE ( *, * ) 'Geodetic location: ' WRITE ( *, 9010 ) GLON, GLAT, HT * ESTABLISH TIME ARGUMENTS CALL JULDAT ( IYEAR, MONTH, IDAY, HOUR, UTCJD ) TTJD = UTCJD + ( LEAPS + 32.184D0 ) / 86400.D0 UT1JD = UTCJD + UT1UTC / 86400.D0 DELTAT = 32.184D0 + LEAPS - UT1UTC WRITE ( *, * ) WRITE ( *, * ) 'DATE and TIME' WRITE ( *, * ) IYEAR,MONTH,IDAY,HOUR WRITE ( *, * ) WRITE ( *, * ) 'TT and UT1 Julian Dates and Delta-T: ' WRITE ( *, 9020 ) TTJD, UT1JD, DELTAT PLANET_num=1
DO 30 WHILE ( PLANET_num.LT.10 ) PLANET_name=PLANETS_name(PLANET_num)
NAME = IDSS ( PLANET_name )
WRITE ( *, * ) WRITE ( *, * ) WRITE ( *, * ) CALL APPLAN ( TTJD, NAME, IEARTH, RA, DEC, DIS ) WRITE ( *, * ) PLANET_name,'--------------------------' WRITE ( *, * ) ' geocentric positions:' WRITE ( *, 9030 ) RA, DEC, DIS CALL thetaA(RA,rah,ram,ras) WRITE(*,9050) rah,ram,ras CALL thetaA(DEC,decd,decm,decs) WRITE(*,9040) decd,decm,decs
CALL TPPLAN ( UT1JD, GLON, GLAT, HT, RAT, DECT, DIST ) WRITE ( *, * ) WRITE ( *, * ) ' geocentric positions:' WRITE ( *, 9030 ) RAT, DECT, DIST CALL thetaA(RAT,rath,ratm,rats) WRITE ( *, 9050 ) rath,ratm,rats CALL thetaA(DECT,dectd,dectm,dects) WRITE ( *, 9040 ) dectd,dectm,dects
* POSITION OF THE PLANET IN LOCAL HORIZON COORDINATES
CALL ZDAZ ( UT1JD, XP, YP, GLON, GLAT, HT, RAT, DECT, 1, . ZD, AZ, RAR, DECR ) WRITE ( *, * ) WRITE ( *, * ) ' zenith distance and azimuth:' WRITE ( *, 9010 ) ZD, AZ CALL thetaA(ZD,zdd,zdm,zds) WRITE ( *, 9040 ) zdd,zdm,zds CALL thetaA(AZ,azd,azm,azs) WRITE ( *, 9040 ) azd,azm,azs
IF (zdd.GT.90.0) THEN WRITE ( *, * ) WRITE ( *, * ) '!!!!!!',PLANET_name,' INVISIBLE' ENDIF
PLANET_num = PLANET_num + 1 30 CONTINUE
END
SUBROUTINE thetaA ( RA, rah, ram, ras ) DOUBLE PRECISION RA DOUBLE PRECISION rah,ram,ras
IF (RA.gt.0) THEN rah = int(RA) ram = ( RA - rah ) * 60 ras = ( ram - int(ram) )*60 ram = int(ram) ENDIF
IF (RA.lt.0) THEN RA = -RA rah = int(RA) ram = ( RA - rah ) * 60 ras = ( ram - int(ram) )*60 ram = int(ram) rah = -rah RA = -RA ENDIF RETURN END
|