diff options
Diffstat (limited to 'src/slalib/vn.f')
-rw-r--r-- | src/slalib/vn.f | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/slalib/vn.f b/src/slalib/vn.f new file mode 100644 index 0000000..e252867 --- /dev/null +++ b/src/slalib/vn.f @@ -0,0 +1,46 @@ + SUBROUTINE sla_VN (V, UV, VM) +*+ +* - - - +* V N +* - - - +* +* Normalizes a 3-vector also giving the modulus (single precision) +* +* Given: +* V real(3) vector +* +* Returned: +* UV real(3) unit vector in direction of V +* VM real modulus of V +* +* If the modulus of V is zero, UV is set to zero as well +* +* P.T.Wallace Starlink 23 November 1995 +* +* Copyright (C) 1995 Rutherford Appleton Laboratory +*- + + IMPLICIT NONE + + REAL V(3),UV(3),VM + + INTEGER I + REAL W1,W2 + + +* Modulus + W1=0.0 + DO I=1,3 + W2=V(I) + W1=W1+W2*W2 + END DO + W1=SQRT(W1) + VM=W1 + +* Normalize the vector + IF (W1.LE.0.0) W1=1.0 + DO I=1,3 + UV(I)=V(I)/W1 + END DO + + END |