* G01MUF Example Program Text * Mark 21 Release. NAG Copyright 2004. * .. Parameters .. INTEGER NIN, NOUT PARAMETER (NIN=5,NOUT=6) INTEGER MODE PARAMETER (MODE=0) * .. Local Scalars .. DOUBLE PRECISION BETA2, C1, C2, RKAPPA, X, XL, XU, Y INTEGER IFAIL * .. External Functions .. DOUBLE PRECISION G01MUF, X02ALF EXTERNAL G01MUF, X02ALF * .. Local Arrays .. DOUBLE PRECISION WORK(322) * .. External Subroutines .. EXTERNAL G01ZUF * .. Executable Statements .. WRITE (NOUT,*) 'G01MUF Example Program Results' * Skip heading in data file READ (NIN,*) C1 = -X02ALF() C2 = -X02ALF() WRITE (NOUT,*) WRITE (NOUT,*) ' X RKAPPA BETA2 Y IFAIL' WRITE (NOUT,*) 20 READ (NIN,*,END=40) X, RKAPPA, BETA2 IF ((RKAPPA.NE.C1) .OR. (BETA2.NE.C2)) THEN * * Initialise array WORK before the the first call to G01MUF and * on subsequent calls when RKAPPA or BETA2 has changed. * IFAIL = 0 * CALL G01ZUF(RKAPPA,BETA2,MODE,XL,XU,WORK,IFAIL) * END IF * * Compute the value of the Vavilov density function * IFAIL = 0 * Y = G01MUF(X,WORK,IFAIL) * WRITE (NOUT,99999) X, RKAPPA, BETA2, Y, IFAIL C1 = RKAPPA C2 = BETA2 GO TO 20 40 STOP * 99999 FORMAT (1X,F4.1,5X,F4.1,5X,F4.1,3X,1P,D12.4,I6) END