SUBROUTINE ZSINC(X,A,Y,DYDA,NA) * * Module number: 13.12.3 * * Module name: ZSINC * * Keyphrase: * ---------- * Hrs Echelle ripple * Description: * ------------ * This routine computes the ripple function: * y = a(3) * (sinc( a(1)*x+a(2) ))**2 * and the partial direvatives of y with respect to a(i) * * FORTRAN name: zsinc.for * * Keywords of accessed files and tables: * -------------------------------------- * none * * Subroutines Called: * ------------------- * CDBS: * * SDAS: * * Others: * * * History: * -------- * Version Date Author Description * 1 Sept 87 D. Lindler Designed and Coded *------------------------------------------------------------------------------- C C INPUT PARAMETERS C X - X-POSITION (REAL*8) C A - VECTOR OF THREE COEFFICIENTS (REAL*8) C NA - NUMBER OF COEFFICIENTS C C OUTPUT PARAMETERS C Y - FUNCTION VALUE A X (REAL*8) C DYDA - THREE PARTIAL DIREVATIVES WITH RESPECT TO A(I) (REAL*8) C---------------------------------------------------------------------- DOUBLE PRECISION X,A(*),Y,DYDA(*) INTEGER NA C C LOCAL VARIABLES C DOUBLE PRECISION Q,SINQ,COSQ,SINC,SINC2,DYDQ C C COMPUTE FUNCTION VALUE C Q = A(1)*X + A(2) SINQ = DSIN(Q) SINC = SINQ/Q SINC2 = SINC*SINC Y = A(3)*SINC2 C C PARTIAL Y WITH RESPECT TO A(1) C COSQ = DCOS(Q) DYDQ = (COSQ/Q - SINQ/Q**2)*A(3) DYDA(1) = 2.0*SINC*X*DYDQ C C PARTIAL Y WITH RESPECT TO A(2) C DYDA(2) = 2.0*SINC*DYDQ C C PARTIAL Y WITH RESPECT TO A(3) C DYDA(3) = SINC2 RETURN END