This is a Python interface to the Fortran library described in file read.me.
This file shows how to call these routines from Python.

Procedures in module lmoments. 

----------- pelexp ------------
 PARAMETER ESTIMATION VIA L-MOMENTS FOR THE EXPONENTIAL DISTRIBUTION

 PARAMETERS OF ROUTINE:
 XMOM   * INPUT* ARRAY OF LENGTH 2. CONTAINS THE L-MOMENTS LAMBDA-1,
                 LAMBDA-2.
 PARA   *OUTPUT* ARRAY OF LENGTH 2. ON EXIT, CONTAINS THE PARAMETERS
                 IN THE ORDER XI, ALPHA (LOCATION, SCALE).

Calling sequence: 
   para = pelexp(xmom)
Fortran declarations for these variables are:
          doubleprecision, intent(in):: xmom (2)
          doubleprecision, intent(out):: para (2)

----------- pelgev ------------
 PARAMETER ESTIMATION VIA L-MOMENTS FOR THE GENERALIZED EXTREME-VALUE
 DISTRIBUTION

 PARAMETERS OF ROUTINE:
 XMOM   * INPUT* ARRAY OF LENGTH 3. CONTAINS THE L-MOMENTS LAMBDA-1,
                 LAMBDA-2, TAU-3.
 PARA   *OUTPUT* ARRAY OF LENGTH 3. ON EXIT, CONTAINS THE PARAMETERS
                 IN THE ORDER XI, ALPHA, K (LOCATION, SCALE, SHAPE).

 OTHER ROUTINES USED: DLGAMA

 METHOD: FOR  -0.8 LE TAU3 LT 1,  K IS APPROXIMATED BY RATIONAL
 FUNCTIONS AS IN DONALDSON (1996, COMMUN. STATIST. SIMUL. COMPUT.).
 IF TAU3 IS OUTSIDE THIS RANGE, NEWTON-RAPHSON ITERATION IS USED.

Calling sequence: 
   para = pelgev(xmom)
Fortran declarations for these variables are:
          doubleprecision, intent(in):: xmom (3)
          doubleprecision, intent(out):: para (3)

----------- pelgno ------------
 PARAMETER ESTIMATION VIA L-MOMENTS FOR THE GENERALIZED NORMAL
 DISTRIBUTION

 PARAMETERS OF ROUTINE:
 XMOM   * INPUT* ARRAY OF LENGTH 3. CONTAINS THE L-MOMENTS LAMBDA-1,
                 LAMBDA-2, TAU-3. ABS(TAU3) MAY NOT EXCEED 0.95.
 PARA   *OUTPUT* ARRAY OF LENGTH 3. ON EXIT, CONTAINS THE PARAMETERS
                 IN THE ORDER XI, ALPHA, K (LOCATION, SCALE, SHAPE).

 OTHER ROUTINES USED: DERF

 METHOD: RATIONAL-FUNCTION APPROXIMATION OF K IN TERMS OF TAU-3

Calling sequence: 
   para = pelgno(xmom)
Fortran declarations for these variables are:
          doubleprecision, intent(in):: xmom (3)
          doubleprecision, intent(out):: para (3)

----------- pelgum ------------
 PARAMETER ESTIMATION VIA L-MOMENTS FOR THE GUMBEL DISTRIBUTION

 PARAMETERS OF ROUTINE:
 XMOM   * INPUT* ARRAY OF LENGTH 2. CONTAINS THE L-MOMENTS LAMBDA-1,
                 LAMBDA-2.
 PARA   *OUTPUT* ARRAY OF LENGTH 2. ON EXIT, CONTAINS THE PARAMETERS
                 IN THE ORDER XI, ALPHA (LOCATION, SCALE).

Calling sequence: 
   para = pelgum(xmom)
Fortran declarations for these variables are:
          doubleprecision, intent(in):: xmom (2)
          doubleprecision, intent(out):: para (2)

----------- pelnor ------------
 PARAMETER ESTIMATION VIA L-MOMENTS FOR THE NORMAL DISTRIBUTION

 PARAMETERS OF ROUTINE:
 XMOM   * INPUT* ARRAY OF LENGTH 2. CONTAINS THE L-MOMENTS LAMBDA-1,
                 LAMBDA-2.
 PARA   *OUTPUT* ARRAY OF LENGTH 2. ON EXIT, CONTAINS THE PARAMETERS
                 IN THE ORDER MU, SIGMA (LOCATION, SCALE).

Calling sequence: 
   para = pelnor(xmom)
Fortran declarations for these variables are:
          doubleprecision, intent(in):: xmom (2)
          doubleprecision, intent(out):: para (2)

----------- pelwak ------------
 PARAMETER ESTIMATION VIA L-MOMENTS FOR THE WAKEBY DISTRIBUTION

 PARAMETERS OF ROUTINE:
 XMOM   * INPUT* ARRAY OF LENGTH 5. CONTAINS THE L-MOMENTS LAMBDA-1,
                 LAMBDA-2, TAU-3, TAU-4, TAU-5.
 PARA   *OUTPUT* ARRAY OF LENGTH 5. ON EXIT, CONTAINS THE PARAMETERS
                 IN THE ORDER XI, ALPHA, BETA, GAMMA, DELTA.
 IFAIL  *OUTPUT* FAIL FLAG. ON EXIT, IT IS SET AS FOLLOWS.
                 0 SUCCESSFUL EXIT
                 1 ESTIMATES COULD ONLY BE OBTAINED BY SETTING XI=0
                 2 ESTIMATES COULD ONLY BE OBTAINED BY FITTING A
                   GENERALIZED PARETO DISTRIBUTION
                 3 L-MOMENTS INVALID

 PROCEDURE:
 1. LOOK FOR A SOLUTION WITH XI UNCONSTRAINED;
 2. IF NONE FOUND, LOOK FOR A SOLUTION WITH XI=0;
 3. IF NONE FOUND, FIT A GENERALIZED PARETO DISTRIBUTION TO THE
    FIRST 3 L-MOMENTS.
 ESTIMATES ARE CALCULATED USING THE FORMULAS GIVEN BY GREENWOOD ET AL.
 (1979, WATER RESOUR. RES., TABLE 5), BUT EXPRESSED IN TERMS OF
 L-MOMENTS RATHER THAN PROBABILITY WEIGHTED MOMENTS.

Calling sequence: 
   para, ifail = pelwak(xmom)
Fortran declarations for these variables are:
          doubleprecision, intent(in):: xmom (5)
          doubleprecision, intent(out):: para (5)
          integer, intent(out):: ifail

----------- pelgam ------------
 PARAMETER ESTIMATION VIA L-MOMENTS FOR THE GAMMA DISTRIBUTION

 PARAMETERS OF ROUTINE:
 XMOM   * INPUT* ARRAY OF LENGTH 2. CONTAINS THE L-MOMENTS LAMBDA-1,
                 LAMBDA-2.
 PARA   *OUTPUT* ARRAY OF LENGTH 2. ON EXIT, CONTAINS THE PARAMETERS
                 IN THE ORDER ALPHA, BETA (SHAPE, SCALE).

 OTHER ROUTINES USED: DLGAMA

 METHOD: RATIONAL APPROXIMATION IS USED TO EXPRESS ALPHA AS A FUNCTION
 OF L-CV. RELATIVE ACCURACY OF THE  APPROXIMATION IS BETTER THAN 5E-5.

Calling sequence: 
   para = pelgam(xmom)
Fortran declarations for these variables are:
          doubleprecision, intent(in):: xmom (2)
          doubleprecision, intent(out):: para (2)

----------- pelglo ------------
 PARAMETER ESTIMATION VIA L-MOMENTS FOR THE GENERALIZED LOGISTIC
 DISTRIBUTION

 PARAMETERS OF ROUTINE:
 XMOM   * INPUT* ARRAY OF LENGTH 3. CONTAINS THE L-MOMENTS LAMBDA-1,
                 LAMBDA-2, TAU-3.
 PARA   *OUTPUT* ARRAY OF LENGTH 3. ON EXIT, CONTAINS THE PARAMETERS
                 IN THE ORDER XI, ALPHA, K (LOCATION, SCALE, SHAPE).

Calling sequence: 
   para = pelglo(xmom)
Fortran declarations for these variables are:
          doubleprecision, intent(in):: xmom (3)
          doubleprecision, intent(out):: para (3)

----------- pelgpa ------------
 PARAMETER ESTIMATION VIA L-MOMENTS FOR  THE GENERALIZED PARETO
 DISTRIBUTION

 PARAMETERS OF ROUTINE:
 XMOM   * INPUT* ARRAY OF LENGTH 3. CONTAINS THE L-MOMENTS LAMBDA-1,
                 LAMBDA-2, TAU-3.
 PARA   *OUTPUT* ARRAY OF LENGTH 3. ON EXIT, CONTAINS THE PARAMETERS
                 IN THE ORDER XI, ALPHA, K (LOCATION, SCALE, SHAPE).

Calling sequence: 
   para = pelgpa(xmom)
Fortran declarations for these variables are:
          doubleprecision, intent(in):: xmom (3)
          doubleprecision, intent(out):: para (3)

----------- pelkap ------------
 PARAMETER ESTIMATION VIA L-MOMENTS FOR THE KAPPA DISTRIBUTION

 PARAMETERS OF ROUTINE:
 XMOM   * INPUT* ARRAY OF LENGTH 4. CONTAINS THE L-MOMENTS LAMBDA-1,
                 LAMBDA-2, TAU-3, TAU-4.
 PARA   *OUTPUT* ARRAY OF LENGTH 4. ON EXIT, CONTAINS THE PARAMETERS
                 IN THE ORDER XI, ALPHA, K, H.
 IFAIL  *OUTPUT* FAIL FLAG. ON EXIT, IT IS SET AS FOLLOWS.
                 0  SUCCESSFUL EXIT
                 1  L-MOMENTS INVALID
                 2  (TAU-3, TAU-4) LIES ABOVE THE GENERALIZED-LOGISTIC
                    LINE (SUGGESTS THAT L-MOMENTS ARE NOT CONSISTENT
                    WITH ANY KAPPA DISTRIBUTION WITH H.GT.-1)
                 3  ITERATION FAILED TO CONVERGE
                 4  UNABLE TO MAKE PROGRESS FROM CURRENT POINT IN
                    ITERATION
                 5  ITERATION ENCOUNTERED NUMERICAL DIFFICULTIES -
                    OVERFLOW WOULD HAVE BEEN LIKELY TO OCCUR
                 6  ITERATION FOR H AND K CONVERGED, BUT OVERFLOW
                    WOULD HAVE OCCURRED WHEN CALCULATING XI AND ALPHA

 N.B.  PARAMETERS ARE SOMETIMES NOT UNIQUELY DEFINED BY THE FIRST 4
 L-MOMENTS. IN SUCH CASES THE ROUTINE RETURNS THE SOLUTION FOR WHICH
 THE H PARAMETER IS LARGEST.

 OTHER ROUTINES USED: DLGAMA,DIGAMD

 THE SHAPE PARAMETERS K AND H ARE ESTIMATED USING NEWTON-RAPHSON
 ITERATION ON THE RELATIONSHIP BETWEEN (TAU-3,TAU-4) AND (K,H).
 THE CONVERGENCE CRITERION IS THAT TAU-3 AND TAU-4 CALCULATED FROM
 THE ESTIMATED VALUES OF K AND H SHOULD DIFFER BY LESS THAN 'EPS'
 FROM THE VALUES SUPPLIED IN ARRAY XMOM.

Calling sequence: 
   para, ifail = pelkap(xmom)
Fortran declarations for these variables are:
          doubleprecision, intent(in):: xmom (4)
          doubleprecision, intent(out):: para (4)
          integer, intent(out):: ifail

----------- pelpe3 ------------
 PARAMETER ESTIMATION VIA L-MOMENTS FOR THE PEARSON TYPE 3 DISTRIBUTION

 PARAMETERS OF ROUTINE:
 XMOM   * INPUT* ARRAY OF LENGTH 3. CONTAINS THE L-MOMENTS LAMBDA-1,
                 LAMBDA-2 AND TAU-3.
 PARA   *OUTPUT* ARRAY OF LENGTH 3. ON EXIT, CONTAINS THE PARAMETERS
                 IN THE ORDER MU, SIGMA, GAMMA (MEAN, S.D., SKEWNESS).

 OTHER ROUTINES USED: DLGAMA

 METHOD: RATIONAL APPROXIMATION IS USED TO EXPRESS ALPHA, THE SHAPE
 PARAMETER OF THE GAMMA DISTRIBUTION, AS A FUNCTION OF TAU-3.
 RELATIVE ACCURACY OF THE APPROXIMATION IS BETTER THAN 3E-5.

Calling sequence: 
   para = pelpe3(xmom)
Fortran declarations for these variables are:
          doubleprecision, intent(in):: xmom (3)
          doubleprecision, intent(out):: para (3)

----------- samlmu ------------
 SAMPLE L-MOMENTS OF A DATA ARRAY

 PARAMETERS OF ROUTINE:
 X      * INPUT* ARRAY OF LENGTH N. CONTAINS THE DATA, IN ASCENDING
                 ORDER.
 N      * INPUT* NUMBER OF DATA VALUES
 XMOM   *OUTPUT* ARRAY OF LENGTH NMOM. CONTAINS THE SAMPLE L-MOMENTS,
                 STORED AS DESCRIBED BELOW.
 NMOM   * INPUT* NUMBER OF L-MOMENTS TO BE FOUND. AT MOST 100.

Calling sequence: 
   xmom = samlmu(x, n, nmom)
Fortran declarations for these variables are:
          doubleprecision, intent(in):: x (n)
          integer, intent(in):: n
          doubleprecision, intent(out):: xmom (nmom)
          integer, intent(in):: nmom
