* Last processed by NICE on 12-Jun-2000 15:53:00 * Customized for : IEEE, LINUX, UNIX, MOTIF, F77 SUBROUTINE DPOINL(XV,A,DERIV) C---------------------------------------------------------------------- C POINT C Compute the derivatives of the pointing function C Dimensionned for MVAR or KVAR C V2.0 C Changed sign of excentricity corrections C---------------------------------------------------------------------- INCLUDE 'size.inc' REAL*8 XV(3),A(MVAR),DERIV(MVAR) REAL*8 AZ,EL,COSEL,SINEL,COSAZ,SINAZ * AZ=XV(1) EL=XV(2) COSEL=COS(EL) SINEL=SIN(EL) COSAZ=COS(AZ) SINAZ=SIN(AZ) IF (XV(3).EQ.0) THEN DERIV( 1)=-COSEL DERIV( 2)= 0 DERIV( 3)=-1.0/SQRT(MAX(1D-37,1.0D0-(A(3)/COSEL)**2)) DERIV( 4)= -COSAZ*SINEL DERIV( 5)= SINAZ*SINEL DERIV( 6)= SINEL DERIV( 7)= 0 DERIV( 8)= 0 DERIV( 9)= 0 DERIV(10)= 0 DERIV(11)= -SINAZ*COSEL DERIV(12)= -COSAZ*COSEL IF (KVAR.LE.12) RETURN DERIV(13)= SIN(2.D0*AZ)*COSEL DERIV(14)= COS(2.D0*AZ)*COSEL DERIV(15)= 0 DERIV(16)= 0 ELSE DERIV( 1)= 0 DERIV( 2)=-1 DERIV( 3)= -SINEL*A(3)/ $ SQRT(MAX(1D-30,1.0D0-SINEL**2/(1.0D0-A(3)**2)))/ $ SQRT(MAX(1D-30,(1.0D0-A(3)**2)**3)) DERIV( 4)=SINAZ DERIV( 5)=+COSAZ DERIV( 6)= 0 DERIV( 7)= 1.D0/TAN(EL) DERIV( 8)= DERIV(7)**3 DERIV( 9)= -SINEL DERIV(10)= -COSEL DERIV(11)= 0 DERIV(12)= 0 IF (KVAR.LE.12) RETURN DERIV(13)= 0 DERIV(14)= 0 DERIV(15)= SIN(2.D0*EL) DERIV(16)= COS(2.D0*EL) ENDIF END