* G01AMF Example Program Text * Mark 22 Release. NAG Copyright 2006. * .. Parameters .. INTEGER NIN, NOUT PARAMETER (NIN=5,NOUT=6) INTEGER NMAX PARAMETER (NMAX=100) * .. Local Scalars .. INTEGER I, IFAIL, N, NQ * .. Local Arrays .. DOUBLE PRECISION Q(NMAX), QV(NMAX), RV(NMAX) * .. External Subroutines .. EXTERNAL G01AMF * .. Executable Statements .. WRITE (NOUT,*) 'G01AMF Example Program Results' * Skip heading in data file READ (NIN,*) * Read in problem size and check array sizes READ (NIN,*) N, NQ IF (N.LT.1 .OR. N.GT.NMAX .OR. NQ.LT.1 .AND. NQ.GT.NMAX) THEN WRITE (NOUT,99996) GO TO 40 END IF * Read in rest of the data READ (NIN,*) (RV(I),I=1,N) READ (NIN,*) (Q(I),I=1,NQ) * Display the data WRITE (NOUT,*) WRITE (NOUT,*) 'Data Values:' WRITE (NOUT,*) WRITE (NOUT,99998) (RV(I),I=1,N) * Call NAG routine IFAIL = 1 CALL G01AMF(N,RV,NQ,Q,QV,IFAIL) IF (IFAIL.NE.0) THEN WRITE (NOUT,99997) IFAIL GO TO 40 END IF * Display the results WRITE (NOUT,*) WRITE (NOUT,*) 'Quantile Result' WRITE (NOUT,*) DO 20 I = 1, NQ WRITE (NOUT,99999) Q(I), QV(I) 20 CONTINUE * 40 CONTINUE * 99999 FORMAT (1X,F7.2,4X,F7.2) 99998 FORMAT (1X,20F7.2) 99997 FORMAT (1X,' ** G01AMF returned with IFAIL = ',I5) 99996 FORMAT (1X,' ** Problem size too large, increase array limits') END