From d54fe7c1f704a63824c5bfa0ece65245572e9b27 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 4 Mar 2015 21:21:30 -0500 Subject: Initial commit --- src/slalib/cc2s.f | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/slalib/cc2s.f (limited to 'src/slalib/cc2s.f') diff --git a/src/slalib/cc2s.f b/src/slalib/cc2s.f new file mode 100644 index 0000000..2e24b9d --- /dev/null +++ b/src/slalib/cc2s.f @@ -0,0 +1,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 -- cgit