C===================================================== QUAGEV.FOR DOUBLE PRECISION FUNCTION QUAGEV(F,PARA) C*********************************************************************** C* * C* FORTRAN CODE WRITTEN FOR INCLUSION IN IBM RESEARCH REPORT RC20525, * C* 'FORTRAN ROUTINES FOR USE WITH THE METHOD OF L-MOMENTS, VERSION 3' * C* * C* J. R. M. HOSKING * C* IBM RESEARCH DIVISION * C* T. J. WATSON RESEARCH CENTER * C* YORKTOWN HEIGHTS * C* NEW YORK 10598, U.S.A. * C* * C* VERSION 3 AUGUST 1996 * C* * C*********************************************************************** C C QUANTILE FUNCTION OF THE GENERALIZED EXTREME-VALUE DISTRIBUTION C IMPLICIT DOUBLE PRECISION (A-H,O-Z) DOUBLE PRECISION PARA(3) DATA ZERO/0D0/,ONE/1D0/ U=PARA(1) A=PARA(2) G=PARA(3) IF(A.LE.ZERO)GOTO 1000 IF(F.LE.ZERO.OR.F.GE.ONE)GOTO 10 Y=-DLOG(-DLOG(F)) IF(G.NE.ZERO)Y=(ONE-DEXP(-G*Y))/G QUAGEV=U+A*Y RETURN C 10 IF(F.EQ.ZERO.AND.G.LT.ZERO)GOTO 20 IF(F.EQ.ONE .AND.G.GT.ZERO)GOTO 20 WRITE(6,7000) QUAGEV=ZERO RETURN 20 QUAGEV=U+A/G RETURN C 1000 WRITE(6,7010) QUAGEV=ZERO RETURN C 7000 FORMAT(' *** ERROR *** ROUTINE QUAGEV :', * ' ARGUMENT OF FUNCTION INVALID') 7010 FORMAT(' *** ERROR *** ROUTINE QUAGEV : PARAMETERS INVALID') END