aboutsummaryrefslogtreecommitdiff
path: root/src/slalib/pa.f
diff options
context:
space:
mode:
Diffstat (limited to 'src/slalib/pa.f')
-rw-r--r--src/slalib/pa.f46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/slalib/pa.f b/src/slalib/pa.f
new file mode 100644
index 0000000..8c68296
--- /dev/null
+++ b/src/slalib/pa.f
@@ -0,0 +1,46 @@
+ DOUBLE PRECISION FUNCTION sla_PA (HA, DEC, PHI)
+*+
+* - - -
+* P A
+* - - -
+*
+* HA, Dec to Parallactic Angle (double precision)
+*
+* Given:
+* HA d hour angle in radians (geocentric apparent)
+* DEC d declination in radians (geocentric apparent)
+* PHI d observatory latitude in radians (geodetic)
+*
+* The result is in the range -pi to +pi
+*
+* Notes:
+*
+* 1) The parallactic angle at a point in the sky is the position
+* angle of the vertical, i.e. the angle between the direction to
+* the pole and to the zenith. In precise applications care must
+* be taken only to use geocentric apparent HA,Dec and to consider
+* separately the effects of atmospheric refraction and telescope
+* mount errors.
+*
+* 2) At the pole a zero result is returned.
+*
+* P.T.Wallace Starlink 16 August 1994
+*
+* Copyright (C) 1995 Rutherford Appleton Laboratory
+*-
+
+ IMPLICIT NONE
+
+ DOUBLE PRECISION HA,DEC,PHI
+
+ DOUBLE PRECISION CP,SQSZ,CQSZ
+
+
+
+ CP=COS(PHI)
+ SQSZ=CP*SIN(HA)
+ CQSZ=SIN(PHI)*COS(DEC)-CP*SIN(DEC)*COS(HA)
+ IF (SQSZ.EQ.0D0.AND.CQSZ.EQ.0D0) CQSZ=1D0
+ sla_PA=ATAN2(SQSZ,CQSZ)
+
+ END