aboutsummaryrefslogtreecommitdiff
path: root/src/slalib/cc2s.f
blob: 2e24b9d0c2cd4019badc26a4f41345445e5668da (plain) (blame)
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
SUBROUTINE sla_CC2S (V, A, B)
*+
*     - - - - -
*      C C 2 S
*     - - - - -
*
*  Direction cosines to spherical coordinates (single precision)
*
*  Given:
*     V     r(3)   x,y,z vector
*
*  Returned:
*     A,B   r      spherical coordinates in radians
*
*  The spherical coordinates are longitude (+ve anticlockwise
*  looking from the +ve latitude pole) and latitude.  The
*  Cartesian coordinates are right handed, with the x axis
*  at zero longitude and latitude, and the z axis at the
*  +ve latitude pole.
*
*  If V is null, zero A and B are returned.
*  At either pole, zero A is returned.
*
*  P.T.Wallace   Starlink   July 1989
*
*  Copyright (C) 1995 Rutherford Appleton Laboratory
*-

      IMPLICIT NONE

      REAL V(3),A,B

      REAL X,Y,Z,R


      X = V(1)
      Y = V(2)
      Z = V(3)
      R = SQRT(X*X+Y*Y)

      IF (R.EQ.0.0) THEN
         A = 0.0
      ELSE
         A = ATAN2(Y,X)
      END IF

      IF (Z.EQ.0.0) THEN
         B = 0.0
      ELSE
         B = ATAN2(Z,R)
      END IF

      END