SUBROUTINE YFUNCP(X,A,Y,DYDA,MA) * * Module Number: 14.8.2.4 * * Module Name: functn * * Keyphrase: * ---------- * Evalute prism dispersion relation function * * Description: * ------------ * The function value for the prism dispersion relation is computed * as: * a(1) + a(2)/xx + a(3)/xx**2 + a(4)/xx**3 + a(5)/xx**4 * where * xx = x-a(6) * * The partial direvatives of the function with respect to each * a(i) is returned * Fortran Name: functn * * Keywords of accessed files and tables: * -------------------------------------- * none * * Subroutines Called: * ------------------- * CDBS: * none * SDAS: * none * * History: * -------- * version date Author Description * 1 JAN 88 D. Lindler Designed and coded * *------------------------------------------------------------------------- * * Input parameters * * X - x values, (diode number) (real*8) * A - array of coefficients (real*8) * MA - number of terms to fit (ignored) 6 is used * * Output parameters * Y - computed function value (real*8) * DYDA - computed derivatives (6 element real*8 vector) * DOUBLE PRECISION X,Y,DYDA(6),A(6) INTEGER MA C C LOCAL VARIABLES C DOUBLE PRECISION XX,XX2,XX3,XX4,XX5 C C--------------------------------------------------------------- XX=X-A(6) XX2=XX*XX XX3=XX2*XX XX4=XX3*XX XX5=XX4*XX C C COMPUTE FUNCTION C Y=A(1) + A(2)/XX + A(3)/XX2 + A(4)/XX3 + A(5)/XX4 C C COMPUTE PARTIAL DIREVATIVES C DYDA(1)=1.0 DYDA(2)=1/XX DYDA(3)=1/XX2 DYDA(4)=1/XX3 DYDA(5)=1/XX4 DYDA(6)=A(2)/XX2 + 2*A(3)/XX3 + 3*A(4)/XX4 + 4*A(5)/XX5 RETURN END