This file is indexed.

/usr/share/gnudatalanguage/astrolib/rhotheta.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
FUNCTION RHOTHETA,P,T,e,a,i,Omega,omega2,t2

;+ 
; NAME:
;    RHOTHETA
;
; PURPOSE:
;     Calculate the separation and position angle of a binary star
;
; EXPLANATION:
;    This function will return the separation rho and position angle
;    theta of a visual binary star derived from its orbital elements.
;    The algorithms described in the following book will be used:
;    Meeus J., 1992, Astronomische Algorithmen, Barth.
;    Compared to the examples given at p. 400 and no discrepancy found.
;    Input parameters will never be changed.
;
; CALLING SEQUENCE:
;
;  Result = RHOTHETA ( P, T, e, a, i, Omega, omega2, t2)
;
; INPUT:
;
; P             - Period [year]
; T             - Time of periastron passage [year]
; e             - eccentricity of the orbit
; a             - semi-major axis [arc second]
; i             - inclination [degree]
; Omega         - node [degree]
; omega2        - longitude of periastron [degree] 
; t2            - epoch of observation [year]
;
; OUTPUT:
;
;  structure containing
;  rho          - separation [arc second]
;  theta        - position angle [degree]
;  In case of errors rho and theta are -1.
;
; RESTRICTIONS:
;
;  All input parameters have to be scalars and floating point numbers.
;  
; EXAMPLE:
;       Find the position of Eta Coronae Borealis at the epoch 1980.0
;
;       IDL> test=rhotheta(41.623,1934.008,0.2763,0.907,59.025,23.717,219.907,1980.0)
;       rho=     0.411014    theta=       318.42307
; 
; PROCEDURES CALLED:
;       CIRRANGE  - from IDL Astronomy Library
;       
; MODIFICATION HISTORY:
;
;  Written by:  Sebastian Kohl Hamburg Observatory, November, 2012
;-
;
result={rho:DOUBLE(-1),theta:DOUBLE(-1)}

IF (N_PARAMS() EQ 8) THEN BEGIN 
; see chapter 55
n=360.0/P
M=n*(t2-T)
M=M/360.0*2.0*!PI; convert M in radians

; solution of Kepler equation, see chapter 29, 3rd method
F= M GT 0 ? 1 : -1
M=ABS(M)/2.0/!PI
M=(M-FLOOR(M))*2.0*!PI*F
IF (M LT 0.0) THEN M=M+2.0*!PI
F=1.0
IF (M GT !PI) THEN F=-1.0
IF (M GT !PI) THEN M=2.0*!PI-M
E0=!PI/2.0
D=!PI/4.0
FOR j=1,33 DO BEGIN
M1=E0-e*sin(E0)
SGN_M = (M-M1) GT 0 ? 1 : -1
E0=E0+D*SGN_M
D=D/2.0
ENDFOR
E0=E0*F

; return to chapter 55
r=a*(1.0-e*cos(E0))
nu=2.0*ATAN(SQRT((1.0+e)/(1.0-e))*TAN(E0/2.0))
my_omega2=omega2/180.0*!PI; convert variables in radians and copy them to a new variable to prevent changes to the input parameter
my_i=i/180.0*!PI
my_Omega=Omega/180.0*!PI
theta=my_Omega+ATAN(SIN(nu+my_omega2)*COS(my_i),COS(nu+my_omega2))
rho=r*COS(nu+my_omega2)/COS(theta-my_Omega)
theta=theta*180.0/!PI; convert theta in degree

CIRRANGE,theta; force theta to be in 0..360 range
print,'rho=   ',rho,'    theta= ',theta
result.rho=rho
result.theta=theta

ENDIF ELSE print,'Syntax - RHOTHETA, P, T, e, a, i, Omega, omega2, t2'

RETURN,result

 end