diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-03-04 21:21:30 -0500 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-03-04 21:21:30 -0500 |
commit | d54fe7c1f704a63824c5bfa0ece65245572e9b27 (patch) | |
tree | afc52015ffc2c74e0266653eecef1c8ef8ba5d91 /src/slalib/dcc2s.f | |
download | calfuse-d54fe7c1f704a63824c5bfa0ece65245572e9b27.tar.gz |
Initial commit
Diffstat (limited to 'src/slalib/dcc2s.f')
-rw-r--r-- | src/slalib/dcc2s.f | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/slalib/dcc2s.f b/src/slalib/dcc2s.f new file mode 100644 index 0000000..9f5d0fe --- /dev/null +++ b/src/slalib/dcc2s.f @@ -0,0 +1,53 @@ + SUBROUTINE sla_DCC2S (V, A, B) +*+ +* - - - - - - +* D C C 2 S +* - - - - - - +* +* Direction cosines to spherical coordinates (double precision) +* +* Given: +* V d(3) x,y,z vector +* +* Returned: +* A,B d 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 + + DOUBLE PRECISION V(3),A,B + + DOUBLE PRECISION X,Y,Z,R + + + X = V(1) + Y = V(2) + Z = V(3) + R = SQRT(X*X+Y*Y) + + IF (R.EQ.0D0) THEN + A = 0D0 + ELSE + A = ATAN2(Y,X) + END IF + + IF (Z.EQ.0D0) THEN + B = 0D0 + ELSE + B = ATAN2(Z,R) + END IF + + END |