* F04YAF Example Program Text * Mark 14 Revised. NAG Copyright 1989. * .. Parameters .. INTEGER PMAX, LDA, LWORK PARAMETER (PMAX=10,LDA=PMAX,LWORK=4*PMAX) INTEGER NIN, NOUT PARAMETER (NIN=5,NOUT=6) * .. Local Scalars .. DOUBLE PRECISION SIGMA, TOL INTEGER I, IFAIL, IRANK, J, JOB, N, P LOGICAL SVD * .. Local Arrays .. DOUBLE PRECISION A(LDA,PMAX), CJ(PMAX), WORK(LWORK), Y(PMAX) * .. External Subroutines .. EXTERNAL F04JGF, F04YAF * .. Executable Statements .. WRITE (NOUT,*) 'F04YAF Example Program Results' * Skip heading in data file READ (NIN,*) READ (NIN,*) N, P TOL = 5.0D-4 IF (N.GT.0 .AND. N.LE.LDA .AND. P.GT.0 .AND. P.LE.PMAX) THEN READ (NIN,*) ((A(I,J),J=1,P),I=1,N) READ (NIN,*) (Y(I),I=1,N) * IFAIL = 1 CALL F04JGF(N,P,A,LDA,Y,TOL,SVD,SIGMA,IRANK,WORK,LWORK,IFAIL) * WRITE (NOUT,*) IF (IFAIL.EQ.0) THEN WRITE (NOUT,99999) 'SIGMA =', SIGMA, ' Rank =', IRANK, + ' SVD =', SVD WRITE (NOUT,*) WRITE (NOUT,*) 'Solution vector' WRITE (NOUT,99998) (Y(I),I=1,P) JOB = 0 IFAIL = 1 * CALL F04YAF(JOB,P,SIGMA,A,LDA,SVD,IRANK,WORK,CJ,WORK(P+1), + IFAIL) * IF (IFAIL.EQ.0) THEN WRITE (NOUT,*) WRITE (NOUT,*) + 'Estimated variances of regression coefficients' WRITE (NOUT,99998) (CJ(J),J=1,P) ELSE WRITE (NOUT,99997) IFAIL END IF ELSE WRITE (NOUT,99996) IFAIL END IF END IF * 99999 FORMAT (1X,A,F9.4,A,I3,A,L3) 99998 FORMAT (1X,7F9.4) 99997 FORMAT (1X,' ** F04YAF returned with IFAIL = ',I5) 99996 FORMAT (1X,' ** F04JGF returned with IFAIL = ',I5) END