This file is indexed.

/usr/share/gnudatalanguage/astrolib/astro.pro is in gdl-astrolib 2018.02.16+dfsg-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
pro astro, selection, EQUINOX = equinox, FK4 = FK4   
;+
; NAME:
;     ASTRO
; PURPOSE:
;     Interactive utility for precession and coordinate conversion.
;
; CALLING SEQUENCE:
;     ASTRO, [ selection, EQUINOX =, /FK4]
;
; OPTIONAL INPUT:
;      SELECTION - Scalar Integer (0-6) giving the the particular astronomical
;              utility to be used.  (0) Precession, (1) RA, Dec (2000) to Galactic 
;              coordinates, (2) Galactic to RA,Dec (2000) (3) RA,Dec (2000) to 
;              Ecliptic, (4) Ecliptic to RA, Dec, (5) Ecliptic to Galactic, (6) Galactic
;              to Ecliptic.   Program will prompt for SELECTION if this 
;              parameter is omitted.
;
; OPTIONAL KEYWORD INPUT:
;       EQUINOX - numeric scalar specifying the equinox to use when converting 
;               between celestial and other coordinates.    If not supplied, 
;               then the RA and Dec will be assumed to be in EQUINOX J2000.   
;               This keyword is ignored by the precession utility.   For 
;               example, to convert from RA and DEC (J1975) to Galactic 
;               coordinates:
;
;               IDL> astro, 1, E=1975
;       /FK4 - If this keyword is set and nonzero, then calculations are done
;              in the FK4 system.    For example, to convert from RA and Dec
;              (B1975) to Galactic coordinates
;
;               IDL> astro,1, E=1975,/FK4 
; METHOD:
;      ASTRO uses PRECESS to compute precession, and EULER to compute
;      coordinate conversions.   The procedure GET_COORDS is used to
;      read the coordinates, and ADSTRING to format the RA,Dec output.
;
; NOTES:
;      (1) ASTRO temporarily sets !QUIET to suppress compilation messages and
;      keep a pretty screen display.   
;
;      (2) ASTRO was changed in December 1998 to use J2000 as the default 
;      equinox, **and may be incompatible with earlier calls.***
;      
;      (3) A nice online page for coordinate conversions is available at
;       http://heasarc.gsfc.nasa.gov/cgi-bin/Tools/convcoord/convcoord.pl   
; PROCEDURES USED:
;      Procedures: GET_COORDS, EULER       Function: ADSTRING
; REVISION HISTORY
;      Written, W. Landsman November 1987
;      Code cleaned up       W. Landsman   October 1991
;      Added Equinox keyword, call to GET_COORDS, W. Landsman   April, 1992
;      Allow floating point equinox input J. Parker/W. Landsman  July 1996
;      Make FK5 the default, add FK4 keyword
;-
 On_error,2                    ;Return to caller

 input_type =   [0,0,1,0,2,2,1]     ;0= RA,Dec  1= Galactic   2 = Ecliptic
 output_type =  [0,1,0,2,0,1,2]        

 sv_quiet = !quiet & !quiet = 1 ;Don't display compiled procedures


 if keyword_set(FK4) then begin
       if not keyword_set(EQUINOX) then equinox = 1950
       fk = 'B'
       ref_year = 1950  
       yeari = 1950 & yearf = 1950
 endif else begin
       if not keyword_set(EQUINOX) then equinox = 2000
       fk = 'J'  
       ref_year = 2000 
       yeari = 2000 & yearf = 2000
 endelse
      eqname = fk + string(equinox,f='(f6.1)') + ')'

 select = ['(0) Precession: (RA, Dec)',                  $
           '(1) Conversion: (RA, Dec ' + eqname + ' --> Galactic', $
           '(2) Conversion: Galactic --> (RA, Dec ' + eqname, $
           '(3) Conversion: (RA, Dec ' + eqname + ' --> Ecliptic', $
           '(4) Conversion: Ecliptic --> (RA, Dec ' + eqname, $
           '(5) Conversion: Ecliptic --> Galactic',       $
           '(6) Conversion: Galactic --> Ecliptic']

 npar = N_params()       

 SELECTOR: if (npar EQ 0 ) then begin

        print,'Select astronomical utility'
        for i = 0,6 do print, select[i]
        selection = 0
        print,' '
        read,'Enter Utility Number: ',selection 
        print,' '

     endif

 if ( selection LT 0 ) or ( selection GT 6 ) then begin

       print,selection,' is not an available option'
       npar = 0
       goto, SELECTOR

 endif

 print, select[selection]

 if keyword_set(EQUINOX) and (input_type[selection] EQ 0) then yeari =equinox
 if keyword_set(EQUINOX) and (output_type[selection] EQ 0) then yearf = equinox

 if ( selection EQ 0 ) then read, $
     'Enter initial and final equinox (e.g. 1975,2000): ',yeari,yearf


 case output_type[selection] of

   0:  OutName = " RA Dec (" + fk + string( yearf, f= "(F6.1)" ) + "):  "
   1:  OutName = " Galactic longitude and latitude: "
   2:  OutName = " Ecliptic longitude and latitude: (" +  $
                  fk + string( yearf, f= "(F6.1)" ) + ")"
 endcase 

 case input_type[selection] of 

  0:  InName = "RA Dec (" + fk + string(yeari ,f ='(F6.1)' ) + ')'
  1:  InName = "Galactic longitude and latitude: "
  2:  InName = "Ecliptic longitude and latitude: (" + fk + $
                string(yeari ,f ='(F6.1)' ) + ')'

 endcase
 
 HELP_INP: if ( input_type[selection] EQ 0 ) then begin

  print,format='(/A)',' Enter RA, DEC with either 2 or 6 parameters '
  print,format='(A/)',' Either RA, DEC (degrees) or HR, MIN, SEC, DEG, MIN SEC'

 endif

 READ_INP: 

     get_coords,coords,'Enter '+ InName, Numcoords 

 if ( coords[0] EQ -999 ) then begin        ;Normal Return
        print,' '
        if Numcoords GT 0 then goto, READ_INP
        !quiet = sv_quiet
        return
 endif

 ra = coords[0] & dec = coords[1]
 if Numcoords EQ 6 then ra = ra*15.

 if ( selection EQ 0 ) then begin 

         precess, ra , dec , yeari, yearf, FK4 = fk4    ;Actual Calculations
         newra = ra & newdec = dec

 endif else begin 
       if yeari NE ref_year then precess, ra, dec, yeari, ref_year,FK4=fk4
       euler, ra, dec, newra, newdec, selection, fk4 = FK4
       if yearf NE ref_year then precess, newra,newdec, ref_year, yearf,FK4=fk4
 endelse

 if newra LT 0 then newra = newra + 360.

 if output_type[selection] EQ 0 then $
     print, outname + adstring( [newra,newdec], 1) $

 else  print, FORM = '(A,2F7.2,A,F7.2 )', $
      outname, newra, newdec

 print,' '
 goto, READ_INP      

 end