If you have problems installing/using any product, contact IMSL Customer Support. The Customer Support group researches and answers your questions about all IMSL products. Contact information can be found in the file README located in this directory.

- Announcements
- Notice to customers using Oracle Solaris platforms: IMSL Fortran 2018 will be the last planned version to support Oracle Solaris platforms. Please contact your Rogue Wave account representative or Rogue Wave support with any questions concerning this announcement.
- Notice to customers using the IMSL Fortran
`CUBLAS_LIBRARY`

module: IMSL Fortran 2018 will not support the NVIDIA CUDA CUBLAS Library. Please contact your Rogue Wave account representative or Rogue Wave support with any questions concerning this announcement. - IMSL is transitioning toward online only documentation. Currently documentation is available with the installation of the product and on our website at IMSL Fortran Documentation. In future releases documentation will be available only on the web.
- IMSL has transitioned to the use of a Change Log documenting the running list of all changes that have occurred to the product over the course of multiple releases, rather than distributing a new file containing notes that are specific to the particular release.
- the MKL-enabled FNL libs are always installed and enabled by default. To disable MKL, users must switch to using the
`LINK_*_IMSL`

environment variables as described in the`Link Options`

section of the product README file.

- Additions
- Math/Library
- Chapter 8: Optimization
`LIN_CON_TRUST_REGION`

:- Minimizes a function of n variables subject to linear constraints using a derivative-free, interpolation-based trust-region method.

- Chapter 8: Optimization

- Math/Library
- Improvements
- Math/Library
- Chapter 1: Linear Systems
`GMRES`

:- Added printing functionality for intermediate solutions at the end of each
`GMRES`

cycle. - Fixed infinite loop problem that occurred if the starting point for the iteration is identical to the solution of the linear system
`A*x=b`

.

- Added printing functionality for intermediate solutions at the end of each
`LSVRR`

,`LSVCR`

:- Corrected sign in formula for shift calculation.

- Chapter 2: Eigensystem Analysis
`EVCRH`

:- Modified document example.

- Chapter 3: Interpolation and Approximation
`SURFND`

:- Added a check that the elements in each row of
`XDATA`

are strictly monotonic.

- Added a check that the elements in each row of

- Chapter 8: Optimization
`BCPOL`

:- Corrected descriptions of optional arguments
`FTOL`

and`MAXFCN`

. - Corrected formula under criteria 2 of the Description.

- Corrected descriptions of optional arguments
`DENSE_LP`

:- Corrected behavior for constraints with constraint type 4 (ignore constraint).

- Chapter 1: Linear Systems
- Stat/Library
- Chapter 2: Regression
`PLSR`

:- Corrected first dimension of an internal array related to input argument
`PRESS`

. - Corrected internal computation of the number of dependent and predictor variables.
- The condition
`2 <= K <= NOBS`

,`K`

the number of folds, is now always tested. - Added tests that check for the correct extents of the output arrays.

- Corrected first dimension of an internal array related to input argument

- Chapter 2: Regression

- Math/Library

- Announcements
- none

- Additions
- none

- Improvements
- Math/Library
- Chapter 8: Optimization
`BCPOL`

:- Optional argument
`XCPLX`

added allowing users to specify the initial complex points. - Optional argument
`REFLCOEF`

added allowing user to specify the reflection coefficient. - Optional argument
`EXPNCOEF`

added allowing user to specify the expansion coefficient. - Optional argument
`CNTRCOEF`

added allowing user to specify the contraction coefficient.

- Optional argument

- Chapter 8: Optimization

- Math/Library

- Announcements
- License management has been removed

- Additions
- none

- Improvements
- Math/Library
- Chapter 1: Linear Systems
`LCLSQ`

:- The matrix columns for fixed variables are not used any longer in computing a matrix norm.

`LFSXG`

:- Updated permutation test to avoid overflow.

`LFSZG`

:- Updated permutation test to avoid overflow.

`LOFCF`

:- Corrected the returned
`pvalue`

argument.

- Corrected the returned
`LSACG`

:- Made computation of the condition number the default when used with the default values of Integer Option 17.

`LSLCG`

:- Made computation of the condition number the default when used with the default values of Integer Option 17.

`LSLXG`

/`L2LXG`

:- Improved workspace documentation.

`LSVCR`

:- Improved Fortran 90 interface.

`LSVRR`

:- Improved Fortran 90 interface.
- Corrected
`LSVRR`

ScaLAPACK implementation so that it can handle a wider range of problems. Updated associated documentation.

`PARALLEL_BOUNDED_LSQ`

:- Updated example 1 and associated documentation.
- Added example 2 output to documentation.

`RNKSM`

:- Use of a correction term has been modified so that negative p-values do not occur.

- Chapter 5: Differential Equations
`IVOAM`

:- Modified the default initial stepsize to avoid an "initial step length too small" error message.
- Changed definition of optional argument EQNERR when a value of zero is specified.

`IVPAG`

:- Corrected a typographical error in manual example 4.

- Chapter 6: Tranforms
`c_fast_dft`

:- Added High Performance icons to the documentation. These icons specify that the routines leverage vendor-supplied libraries.

`c_fast_2dft`

:- Added High Performance icons to the documentation. These icons specify that the routines leverage vendor-supplied libraries.

`c_fast_3dft`

:- Added High Performance icons to the documentation. These icons specify that the routines leverage vendor-supplied libraries.

- Chapter 8: Optimization
`BCONF`

:- Initialized the elements of an array to 0.

`DENSE_LP`

:- Initialized an internally used variable.
- Corrected the size of internally used arrays.

`NNLPF`

:- Modified so that infeasible initial guesses are projected into the set of bound constraints.

`NNLPG`

:- Correct the optional argument order in the documentation.
- Modified so that infeasible initial guesses are projected into the set of bound constraints.

`QPROG`

:- Avoided infinite loops by not allowing iterative refinement to proceed if the objective function could not be improved upon because of numerical issues.

`READ_MPS`

:- Computation of upper bounds for type
`G`

(Greater than or equal) constraints with entries in the RANGES section was corrected.

- Computation of upper bounds for type
`SLPRS`

:- Corrected documentation of workspace arguments
`IPARAM(7)`

,`IPARAM(8)`

,`LW`

, and`LIW`

.

- Corrected documentation of workspace arguments

- Chapter 10: Linear Algebra Operators and Generic Functions
`DET`

:- Improve the displayed error messages.

- Chapter 11: Utilities
`RAND_GEN`

:- Removed manual example 4.

- Chapter 1: Linear Systems
- Stat/Library
- Chapter 8: Time Series Analysis and Forecasting
`MAX_ARMA`

:- Added tests to check if the gradient of the current iterate is numerically zero.

`NSBJF`

:- Corrected an error in the documentation example.

`REG_ARIMA`

:- Corrected the size requirement for the optional argument
`XLEAD`

.

- Corrected the size requirement for the optional argument

- Chapter 10: Discriminant Analysis
`DSCRM`

:- Use of optional arguments
`PRIOR`

,`NI`

,`XMEAN`

is now mandatory for certain`IDO`

values. - Corrected result when
`IDO=6`

. - Added an example to the documentation to demonstrate the use of the routine when
`IDO=4`

. - Clarified the description of output argument
`COEF`

. - Corrected the
`XMEAN`

description.

- Use of optional arguments

- Chapter 17: Probability Distribution Functions and Inverses
`MLE`

:- Swapped the starting value assignments and corrected the ratio calculation.

- Swapped the starting value assignments and corrected the ratio calculation.
`CHIDF`

:- Corrected the example output.

- Chapter 8: Time Series Analysis and Forecasting
- Math/Library Special Functions
- Chapter 6: Bessel Functions
`CBYS`

:- Modified to implement the Yousif and Melka (Y&M) approximation of Bessel Function
`Y(xnu,z=x+i*y)`

when either`x`

or`y`

has an absolute value which is near zero and generalized to allow argument properties:- 1)
`xnu > 1`

and`output-array-size < (order + 1)`

; - 2)
`xnu real > -1.`

; - 3)
`x`

and/or`y`

can be negative.

Implementation of Y&M algorithm insures that`Im(Y(xnu,z)) = 0`

when`Im(z) = 0`

and`Re(z) > 0`

.

- 1)

- Modified to implement the Yousif and Melka (Y&M) approximation of Bessel Function
`CBJS`

:- Modified to implement the Yousif and Melka (Y&M) approximation of Bessel Function
`J(xnu,z=x+i*y)`

when either`x`

or`y`

has an absolute value which is near zero and generalized to allow argument properties:- 1)
`xnu > 1`

and`output-array-size < (order + 1)`

; - 2)
`xnu real > -1.`

; - 3)
`x`

and/or`y`

can be negative.

- 1)

- Modified to implement the Yousif and Melka (Y&M) approximation of Bessel Function

- Chapter 6: Bessel Functions

- Math/Library

- Announcements
- Users have the option of using Basic Linear Algebra Subroutines (BLAS) which take advantage of the computational power of NVIDIA graphic cards through the use of the NVIDIA CUDA Toolkit.
- Integration of vendor supplied FFTs into IMSL code.
- Online documentation is provided as HTML files in addition to Adobe Acrobat PDF files.
- The ARPACK package is incorporated in the product with a Fortran 2003 interface.
- By default the LINK environment variables link with the supported high performance library. Refer to the description of the LINK options in the accompanying README file.

- Additions
- Math/Library
- Chapter 2: Eigensystem Analysis
`ARPACK_SYMMETRIC`

:- Computes the eigenvalues and eigenvectors of a generalized real symmetric eigenvalue problem.

`ARPACK_SVD`

:- Computes the singular values and the left and right singular vectors of a real rectangular matrix.

`ARPACK_NONSYMMETRIC`

:- Computes the eigenvalues and eigenvectors of a generalized eigenvalue problem.

`ARPACK_COMPLEX`

:- Computes the eigenvalues and eigenvectors of a generalized eigenvalue problem.

- Chapter 3: Interpolation and Approximation
`SURFND`

:- Multidimensional interpolation and differentiation.

- Chapter 4: Integration and Differentiation
`QDAG1D`

:- Integrates a function with a possible internal or endpoint singularity.

`QDAG2D`

:- Integrates a function of two variables with a possible internal or end point singularity.

`QDAG3D`

:- Integrates a function of three variables with a possible internal or endpoint singularity.

- Chapter 5: Differential Equations
`DAESL`

:- Solves a first order differential-algebraic system of equations,
`g(t, y, y') = 0`

, with optional additional constraints and user-defined linear system solver.

- Solves a first order differential-algebraic system of equations,
`IVOAM`

:- Solves an initial-value problem for a system of ordinary differential equations of order one or two using a variable order Adams method.

`MMOLCH`

:- Solves a system of partial differential equations of the form
`ut = f(x, t, u, ux, uxx)`

using the method of lines. The solution is represented with cubic Hermite polynomials.

- Solves a system of partial differential equations of the form
`FEYNMAN_KAC`

:- Solves the generalized Feynman-Kac PDE on a rectangular grid using a finite element Galerkin method. Initial and boundary conditions are provided. The solution is represented by a series of C2 Hermite quintic splines.

`HQSVAL`

:- This rank-1 array function evaluates a Hermite quintic spline or one of its derivatives for an array of input points. In particular, it computes solution values for the Feynman-Kac PDE handled by routine
`FEYNMAN_KAC`

.

- This rank-1 array function evaluates a Hermite quintic spline or one of its derivatives for an array of input points. In particular, it computes solution values for the Feynman-Kac PDE handled by routine

- Chapter 7: Nonlinear Equations
`ZUNI`

:- Finds a zero of a real univariate function.

- Chapter 8: Optimization
`DDJAC`

:- Approximates the Jacobian of
`M`

functions in`N`

unknowns using divided differences.

- Approximates the Jacobian of
`TRAN`

:- Solves a transportation problem.

- Chapter 9: Basic Vector/Matrix Operations
`SSPMV/DSPMV`

:- Performs the matrix-vector operation
`y := alpha*A*x + beta*y`

where`alpha`

and`beta`

are scalars,`x`

and`y`

are`n`

element vectors and`A`

is an`n`

by`n`

symmetric matrix, supplied in packed form.

- Performs the matrix-vector operation
`SSPR/DSPR`

:- Performs the symmetric rank 1 operation
`A := alpha*x*x' + A`

where`alpha`

is a real scalar, x is an`n`

element vector and`A`

is an`n`

by`n`

symmetric matrix, supplied in packed form.

- Performs the symmetric rank 1 operation
`SSPR2/DSPR2`

:- Performs the symmetric rank 2 operation
`A := alpha*x*y' + alpha*y*x' + A`

where`alpha`

is a scalar,`x`

and`y`

are`n`

element vectors and`A`

is an`n`

by`n`

symmetric matrix, supplied in packed form.

- Performs the symmetric rank 2 operation
`STPMV/DTPMV`

:- Performs one of the matrix-vector operations
`x := A*x, or x := A'*x`

where`x`

is an`n`

element vector and`A`

is an`n`

by`n`

unit, or non-unit, upper or lower triangular matrix, supplied in packed form.

- Performs one of the matrix-vector operations
`STPSV/DTPSV`

:- Solves one of the systems of equations
`A*x = b`

, or`A'*x = b`

where`b`

and`x`

are`n`

element vectors and A is an`n`

by`n`

unit, or non-unit, upper or lower triangular matrix, supplied in packed form.

- Solves one of the systems of equations
`CHPMV/ZHPMV`

:- Performs the matrix-vector operation
`y := alpha*A*x + beta*y`

where`alpha`

and`beta`

are scalars,`x`

and`y`

are`n`

element vectors and A is an`n`

by`n`

hermitian matrix, supplied in packed form.

- Performs the matrix-vector operation
`CHPR/ZHPR`

:- Performs the hermitian rank 1 operation
`A := alpha*x*conjg( x' ) + A`

where`alpha`

is a real scalar,`x`

is an`n`

element vector and`A`

is an`n`

by`n`

hermitian matrix, supplied in packed form.

- Performs the hermitian rank 1 operation
`CHPR2/ZHPR2`

:- Performs the hermitian rank 2 operation
`A := alpha*x*conjg( y' ) + conjg( alpha )*y*conjg( x' ) + A`

where`alpha`

is a scalar,`x`

and`y`

are`n`

element vectors and`A`

is an`n`

by`n`

hermitian matrix, supplied in packed form.

- Performs the hermitian rank 2 operation
`CTPMV/ZTPMV`

:- Performs one of the matrix-vector operations
`x := A*x`

, or`x := A'*x`

, or`x := conjg( A' )*x`

where`x`

is an`n`

element vector and`A`

is an`n`

by`n`

unit, or non-unit, upper or lower triangular matrix, supplied in packed form.

- Performs one of the matrix-vector operations
`CTPSV/ZTPSV`

:- Solves one of the systems of equations
`A*x = b`

, or`A'*x = b`

, or`conjg( A' )*x = b`

where`b`

and`x`

are`n`

element vectors and`A`

is an`n`

by`n`

unit, or non-unit, upper or lower triangular matrix, supplied in packed form.

- Solves one of the systems of equations

- Chapter 2: Eigensystem Analysis
- Math/Library Special Functions
- Chapter 4: Gamma Function and Related Functions
`PSI1`

:- Evaluates the second derivative of the log gamma function.

- Chapter 11: Probability Distribution Functions and Inverses
`BETNDF`

:- Evaluates the noncentral beta cumulative distribution function (CDF).

`BETNIN`

:- Evaluates the inverse of the noncentral beta cumulative distribution function (CDF).

`BETNPR`

:- Evaluates the noncentral beta probability density function.

`FNDF`

:- Evaluates the noncentral F cumulative distribution function (CDF).

`FNPR`

:- Evaluates the noncentral F probability density function.

`FNIN`

:- Evaluates the inverse of the noncentral F cumulative distribution function (CDF).

`TNPR`

:- Evaluates the noncentral Student's t probability density function.

`CSNPR`

:- Evaluates the noncentral chi-squared probability density function.

- Chapter 4: Gamma Function and Related Functions
- Stat/Library
- Chapter 2: Regression
`PLSR`

:- Performs partial least squares regression for one or more response variables and one or more predictor variables.

- Chapter 7: Test of Goodness of Fit
`ADNRM`

:- Performs an Anderson-Darling test for normality.

`CVMNRM`

:- Performs a Cramer-von Mises test for normality.

- Chapter 8: Time Series and Forecasting
`REG_ARIMA`

:- Fits a univariate, non-seasonal ARIMA time series model with the inclusion of one or more regression variables.

`TS_OUTLIER_IDENTIFICATION`

:- Detects and determines outliers and simultaneously estimates the model parameters in a time series whose underlying outlier free series follows a general seasonal or nonseasonal ARMA model.

`TS_OUTLIER_FORECAST`

:- Computes forecasts, associated probability limits and weights for an outlier contaminated time series.

`AUTO_ARIMA`

:- Automatically identifies time series outliers, determines parameters of a multiplicative seasonal ARIMA model and produces forecasts that incorporate the effects of outliers whose effects persist beyond the end of the series.

`AUTO_PARM`

:- Estimates structural breaks in non-stationary univariate time series.

- Chapter 17: Probability Distribution Functions and Inverses
`BETNDF`

:- This function evaluates the noncentral beta cumulative distribution function (CDF).

`BETNIN`

:- This function evaluates the inverse of the noncentral beta cumulative distribution function (CDF).

`BETNPR`

:- This function evaluates the noncentral beta probability density function.

`FNDF`

:- This function evaluates the noncentral F cumulative distribution function (CDF).

`FNPR`

:- This function evaluates the noncentral F probability density function.

`FNIN`

:- This function evaluates the inverse of the noncentral F cumulative distribution function (CDF).

`TNPR`

:- This function evaluates the noncentral Student's t probability density function.

`CSNPR`

:- This function evaluates the noncentral chi-squared probability density function.

- Chapter 18: Random Number Generation
`RNMVGC`

:- Given a Cholesky factorization of a correlation matrix, generates pseudorandom numbers from a Gaussian Copula distribution.

`RNMVTC`

:- Given a Cholesky factorization of a correlation matrix, generates pseudorandom numbers from a Student's T Copula distribution.

`CANCOR`

:- Given an input array of deviate values, generates a canonical correlation array.

`MLE`

:- Calculates maximum likelihood estimates for the parameters of one of several univariate probability distributions.

- Chapter 2: Regression

- Math/Library
- Improvements
- Math/Library
- Chapter 1: Eigensystem Analysis
`C_LIN_SOL_LSQ`

:- Corrected the calculation of the sign for the imaginary part.

- Chapter 3: Interpolation and Approximation
`CSIEZ`

:- Modified so that the reordering of the XVEC argument does not occur.

`SURF`

:- Resolved conflicting answers between IMSL v5 and v6.

- Chapter 4: Integration and Differentiation
`QDAGI`

:- Added a comment to the Comments section of the documentation

explaining transformation limitations.

- Added a comment to the Comments section of the documentation

- Chapter 6: Transforms
`FFT2B`

:- Corrected code so as to yield correct results when input array
`COEF`

is 1 by`N`

.

- Corrected code so as to yield correct results when input array

- Chapter 8: Optimization
`QPROG`

:- Added optional arguments
`MAXITN`

and`SMALL`

which allows users to set the maximum iterations allowed and the convergence criteria of a constraint violation. - The default values for
`MAXITN`

and`SMALL`

have been changed. These values were not previously accessible to the user.

- Added optional arguments
`NNLPF`

:- Added optional arguments
`LGMULT`

and`CONSTRES`

providing access to the Lagrange Multipliers and Constraint Residuals respectively. - Changed an internal COMMON block name so
`NNLPF`

and`NNLPG`

do not use common blocks with the same name.

- Added optional arguments
`NNLPG`

:- Added optional arguments
`LGMULT`

and`CONSTRES`

providing access to the Lagrange Multipliers and Constraint Residuals respectively.

- Added optional arguments
`UNLSF`

:- Code modified to prevent infinite looping. Also effects
`BCLSF`

,`BCLSJ`

,`NSLSE`

, and`UNLSJ`

.

- Code modified to prevent infinite looping. Also effects

- Chapter 10: Linear Algebra Operators and Generic Functions
`.DET.`

:- Resolved wrong sign issue in the imaginary part of the return value.

`.IX.`

:- Recompilation with newer compiler resolved segmentation fault issue ocurring on some environments.

`SPARSE_LINEAR_OPERATORS`

:- Improved performance and accuracy of optional (
`hbc_sparse%options%accumulate`

) sparse matrix accumulation algorithm.

- Improved performance and accuracy of optional (

- Chapter 1: Eigensystem Analysis
- Math/Library Special Functions
- Chapter 3: Exponential Integrals and Related Functions
`CI`

:- Corrected an equation in the documentation.

- Chapter 4: Gamma Function and Related Functions
`BETAI`

:- Complementary probabilities are used to calculate
`BETAI`

only when a direct CDF calculation demonstrates that the`BETAI`

value is in the extreme right tail (i.e. very close to 1) to improve accuracy.

- Complementary probabilities are used to calculate

- Chapter 11: Probability Distribution Functions and Inverses
`CHIDF`

:- Added optional argument
`COMPLEMENT`

to indicate the complement of the distribution function is to be determined. - Modified the algorithm to increase accuracy.

- Added optional argument
`CHIIN`

:- Modified the algorithm to increase accuracy.

`CSNDF`

:- Modified the algorithm to increase accuracy.

`FDF`

:- Added optional argument
`COMPLEMENT`

to indicate the complement of the distribution function is to be determined. - Modified the algorithm to increase accuracy.

- Added optional argument
`TDF`

:- Added optional argument
`COMPLEMENT`

to indicate the complement of the distribution function is to be determined. - Modified the algorithm to increase accuracy.

- Added optional argument

- Chapter 3: Exponential Integrals and Related Functions
- Stat/Library
- Chapter 2: Regression
`RNLIN`

:- Modified code to prevent possible infinite looping.

- Chapter 5: Categorical and Discrete Data Analysis
`CTGLM`

:- Changed the default allocation size of optional argument
`CLVAL`

to adjust according to values of`NCLVAR`

. - Added documentation to clarify the differences in log-likelihood values between models.

- Changed the default allocation size of optional argument

- Chapter 7: Tests of Goodness of Fit and Randomness
`KSTWO`

:- Corrected an equation in the documentation.

- Chapter 8: Time Series Analysis and Forecasting
`AUTO_UNI_AR`

:- Reduced memory requirements.

`MAX_ARMA`

:- Added error check to confirm that at least one of the arguments,
`PAR`

and`PMA`

, has a length greater than 0. - Added optional arguments
`WMEAN`

(an estimate of the mean),`CNST`

(an estimate of a constant term),`F (-2*log-likelihood)`

and`EWS`

(an array of residuals).

- Added error check to confirm that at least one of the arguments,
`NSBJF`

:- Corrected an equation in the documentation.

- Chapter 17: Probability Distribution Functions and Inverses
`CHIDF`

:- Added optional argument
`COMPLEMENT`

to indicate the complement of the distribution function is to be determined. - Modified the algorithm to increase accuracy.

- Added optional argument
`CHIIN`

:- Modified the algorithm to increase accuracy.

`CSNDF`

:- Modified the algorithm to increase accuracy.

`FDF`

:- Added optional argument
`COMPLEMENT`

to indicate the complement of the distribution function is to be determined. - Modified the algorithm to increase accuracy.

- Added optional argument
`TDF`

:- Added optional argument
`COMPLEMENT`

to indicate the complement of the distribution function is to be determined. - Modified the algorithm to increase accuracy.

- Added optional argument

- Chapter 19: Utilities
`SROWR`

:- Corrected sort when
`NCOL`

is not equal to`LDX`

.

- Corrected sort when

- Chapter 20: Mathematical Support
`CHFAC`

:- Corrected
`TOL`

argument in interface to be double precision.

- Corrected

- Chapter 2: Regression

- Math/Library

- Announcements
- The license management software which IMSL Fortran Numerical Library uses has been upgraded to FLEXnet Licensing. FLEXlm 9.2 was used for the previous release. FLEXnet Licensing is the next generation of FLEXlm. The user should not see any difference in license management behavior.
- The directory structure for IMSL Fortran Numerical Library has been updated.
- The IMSL Fortran Numerical Library is thread-safe.
- The IMSL Fortran Numerical Library leverages ScaLAPACK for improved performance.
- The environment variable
`LM_LICENSE_FILE`

, which is used by FLEXlm to locate the license file, has been changed to be a directory name. Therefore users are no longer restricted to using the name specified by the`LM_LICENSE_FILE`

environment variable. Any name ending with a`.lic`

filename extension, which resides in the directory specified by`LM_LICENSE_FILE`

, will be searched for the correct FEATURE name.

- Additions
- Math/Library
- Chapter 8: Optimization
`dense_lp`

:- Solves a dense linear programming problem.

`mps_free`

:- Deallocates the space allocated for the IMSL derived
`types_MPS`

. This routine is usually used in conjunction with READ_MPS.

- Deallocates the space allocated for the IMSL derived
`read_mps`

- Reads an MPS file containing a linear programming problem or a quadratic programming problem.

- Chapter 10: Linear Algebra and Generic Functions
- OPERATORS
`.X.`

,`.TX.`

,`.XT.`

,`.XH.`

,`.T.`

,`.H.`

,`.I.`

,`.XI.`

- Added sparse arguments

- OPERATORS
- Chapter 11: Utilities
`MPI_SETUP`

:- Initializes or finalizes MPI. This existed in previous releases but was not documented.

`RNGE32`

:- Retrieves the current table used in the 32-bit Mersenne Twister generator.

`RNIN32`

:- Initializes the 32-bit Mersenne Twister generator using an array.

`RNSE32`

:- Sets the current table used in the 32-bit Mersenne Twister generator.

`RNGE64`

:- Retrieves the current table used in the 64-bit Mersenne Twister generator.

`RNIN64`

:- Initializes the 64-bit Mersenne Twister generator using an array.

`RNSE64`

:- Sets the current table used in the 64-bit Mersenne Twister generator.

`ScaLAPACK_EXIT`

:- This routine exits ScaLAPACK mode for the IMSL Library routines. All processors in the
`BLACS`

context call the routine.

- This routine exits ScaLAPACK mode for the IMSL Library routines. All processors in the
`ScaLAPACK_GETDIM`

:- This routine calculates the row and column dimensions of a local distributed array based on the size of the array to be distributed and the row and column blocking factors to be used.

`ScaLAPACK_MAP`

:- This routine maps array data from a global array to local arrays in the two-dimensional block-cyclic form required by ScaLAPACK routines.

`ScaLAPACK_SETUP`

:- This routine sets up a processor grid and calculates default values for various entities to be used in mapping a global array to a processor grid.

`ScaLAPACK_UNMAP`

:- This routine unmaps array data from local distributed arrays to a global array. The data in the local arrays must have been stored in the two-dimensional block-cyclic form required by ScaLAPACK routines.

- Chapter 8: Optimization
- Math/Library Special Functions
- Chapter 8: Airy Functions
`CAI`

:- Evaluates the Airy function of the first kind for complex arguments.

`CBI`

:- Evaluates the Airy function of the second kind for complex arguments.

`CAID`

:- Evaluates the derivative of the Airy function of the first kind for complex arguments.

`CBID`

:- Evaluates the derivative of the Airy function of the second kind for complex arguments.

- Chapter 11: Probability Distribution Functions and Inverses
`ALNDF`

:- Evaluates the lognormal cumulative probability distribution function.

`ALNIN`

:- Evaluates the inverse of the lognormal cumulative probability distribution function.

`ALNPR`

:- Evaluates the lognormal probability density function.

`ANORPR`

:- Evaluates the normal probability density function.

`BETPR`

:- Evaluates the beta probability density function.

`CHIPR`

:- Evaluates the chi-squared probability density function.

`EXPDF`

:- Evaluates the exponential cumulative distribution function.

`EXPIN`

:- Evaluates the inverse of the exponential cumulative distribution function.

`EXPPR`

:- Evaluates the exponential probability density function.

`EXVDF`

:- Evaluates the extreme value cumulative distribution function.

`EXVIN`

:- Evaluates the inverse of the extreme value cumulative distribution function.

`EXVPR`

:- Evaluates the extreme value probability density function.

`FPR`

:- Evaluates the F probability density function.

`GAMPR`

:- Evaluates the gamma probability density function.

`GEODF`

:- Evaluates the discrete geometric cumulative probability distribution function.

`GEOIN`

:- Evaluates the inverse of the geometric cumulative probability distribution function.

`GEOPR`

:- Evaluates the discrete geometric probability density function.

`RALDF`

:- Evaluates the Rayleigh cumulative distribution function.

`RALIN`

:- Evaluates the inverse of the Rayleigh cumulative distribution function.

`RALPR`

:- Evaluates the Rayleigh probability density function.

`TPR`

:- Evaluates the Student's
`t`

probability density function.

- Evaluates the Student's
`UNDDF`

:- Evaluates the discrete uniform cumulative distribution function.

`UNDF`

:- Evaluates the uniform cumulative distribution function.

`UNDIN`

:- Evaluates the inverse of the discrete uniform cumulative distribution function.

`UNDPR`

:- Evaluates the discrete uniform probability density function.

`UNIN`

:- Evaluates the inverse of the uniform cumulative distribution function.

`UNPR`

:- Evaluates the uniform probability density function.

`WBLDF`

:- Evaluates the Weibull cumulative distribution function.

`WBLIN`

:- Evaluates the inverse of the Weibull cumulative distribution function.

`WBLPR`

:- Evaluates the Weibull probability density function.

- Chapter 8: Airy Functions
- Stat/Library
- Chapter 8: Time Series Analysis and Forecasting
`estimate_missing`

:- Estimates missing values in a time series.

`seasonal_fit`

:- Determines an optimal differencing for seasonal adjustment of a time series.

- Chapter 17: Probability Distribution Functions and Inverses
`ALNDF`

:- Evaluates the lognormal cumulative probability distribution function.

`ALNIN`

:- Evaluates the inverse of the lognormal cumulative probability distribution function.

`ALNPR`

:- Evaluates the lognormal probability density function.

`ANORPR`

:- Evaluates the normal probability density function.

`BETPR`

:- Evaluates the beta probability density function.

`CHIPR`

:- Evaluates the chi-squared probability density function.

`EXPDF`

:- Evaluates the exponential cumulative distribution function.

`EXPIN`

:- Evaluates the inverse of the exponential cumulative distribution function.

`EXPPR`

:- Evaluates the exponential probability density function.

`EXVDF`

:- Evaluates the extreme value cumulative distribution function.

`EXVIN`

:- Evaluates the inverse of the extreme value cumulative distribution function.

`EXVPR`

:- Evaluates the extreme value probability density function.

`FPR`

:- Evaluates the
`F`

probability density function.

- Evaluates the
`GAMPR`

:- Evaluates the gamma probability density function.

`GEODF`

:- Evaluates the discrete geometric cumulative probability distribution function.

`GEOIN`

:- Evaluates the inverse of the geometric cumulative probability distribution function.

`GEOPR`

:- Evaluates the discrete geometric probability density function.

`RALDF`

:- Evaluates the Rayleigh cumulative distribution function.

`RALIN`

:- Evaluates the inverse of the Rayleigh cumulative distribution function.

`RALPR`

:- Evaluates the Rayleigh probability density function.

`TPR`

:- Evaluates the Student's
`t`

probability density function.

- Evaluates the Student's
`UNDDF`

:- Evaluates the discrete uniform cumulative distribution function.

`UNDF`

:- Evaluates the uniform cumulative distribution function.

`UNDIN`

:- Evaluates the inverse of the discrete uniform cumulative distribution function.

`UNDPR`

:- Evaluates the discrete uniform probability density function.

`UNIN`

:- Evaluates the inverse of the uniform cumulative distribution function.

`UNPR`

:- Evaluates the uniform probability density function.

`WBLDF`

:- Evaluates the Weibull cumulative distribution function.

`WBLIN`

:- Evaluates the inverse of the Weibull cumulative distribution function.

`WBLPR`

:- Evaluates the Weibull probability density function.

- Chapter 18: Random Number Generation
`RNGE32`

:- Retrieves the current table used in the 32-bit Mersenne Twister generator.

`RNIN32`

:- Initializes the 32-bit Mersenne Twister generator using an array.

`RNSE32`

:- Sets the current table used in the 32-bit Mersenne Twister generator.

`RNGE64`

:- Retrieves the current table used in the 64-bit Mersenne Twister generator.

`RNIN64`

:- Initializes the 64-bit Mersenne Twister generator using an array.

`RNSE64`

:- Sets the current table used in the 64-bit Mersenne Twister generator.

`RNEXV`

:- Generates pseudorandom numbers from an extreme value distribution.

`RNFDF`

:- Generates pseudorandom numbers from the
`F`

distribution.

- Generates pseudorandom numbers from the
`RNRAL`

:- Generates pseudorandom numbers from a Rayleigh distribution.

- Chapter 8: Time Series Analysis and Forecasting

- Math/Library
- Improvements
- Math/Library
- Miscellaneous
`umpol_int`

(interface module)- Corrected intent on the optional arguments.

`cond_int`

(interface module)- Added optional argument
`norm_choice`

to calculate the condition number using`1-norm`

,`2-norm`

, and`inf-norm`

.`linear_operators`

(interface module) - Added sparse data type as valid arguments.

- Added optional argument

- Chapter 1: Linear Systems
`lchrg`

:`LCHRG`

documentation specified that the input matrix must be positive semi-definite, when, in fact, it must be positive definite. The error message was changed to reflect this.

`lftrb`

:- Changed the way A is copied to FAC so that A and FAC can share the same storage. This correction was necessary for the LAPACK algorithm only.

`lqrsl`

:- Increased the amount of workspace used. Fixed bug in using
`wk`

for computing X.

- Increased the amount of workspace used. Fixed bug in using
`lsqrr`

:- Initialize data when using the LAPACK algorithm.

`lsvcr`

:- Initialize data when using the LAPACK algorithm.

`lsvrr`

:- Changed
`jobu`

option to return "All" left or right singular vectors even when even when m is not equal to n when using the LAPACK algorithm.

- Changed

- Chapter 5: Differential Equations
`daspg`

:- Correct the way that
`atol`

and`rtol`

are handled when input as arrays.

- Correct the way that
`sleig`

:- Corrected code so that correct data is printed witherror messages.

- Chapter 8: Optimization
`dlprs`

:- Added code to avoid the situation when
`n=0`

which causes an invalid array access.

- Added code to avoid the situation when
`lconf`

:- Moved the location where the objective function value at the optimal point was being saved. Previously, it was possible to get an objective function value at a point other than the optimal point.

`lcong`

:- Moved the location where the objective function value at the optimal point was being saved. Previously, it was possible to get an objective function value at a point other than the optimal point.

`min_uncon_multivar`

:- Added a check to avoid a possible divide by zero. If the divide by zero occurs the code would end up in an infinite loop because of the presence of NaNs.

`nnlpf`

:- Allocate more memory to prevent access violation.

`nnlpg`

:- Allocate more memory to prevent access violation.

`umpol`

:- Remove warning message for s less than zero. Change application of random number when
`s=0.0`

and`xguess<1.0`

.

- Remove warning message for s less than zero. Change application of random number when

- Chapter 11: Utilities
`verml`

- Use environment variables instead of reading from a file to get info.

- Miscellaneous
- Stat/Library
- Miscellaneous
`c1f`

:- Changed how P values are calculated to avoid loss of precision for very small p-values. Used internally by numerous IMSL routines.

`mp_types`

(interface module):- Added new types for
`read_mps`

.

- Added new types for
`mpi_setup_int`

(interface module):- Changes for ScaLAPACK

- Chapter 1: Basic Statistics
`uvsta`

:- Added code to set
`stat(15,:)`

to`stat(10,:)`

when`iwt = 0`

. Before, it was not initialized.

- Added code to set

- Chapter 2: Regression
`rbest`

:- Code was added to prevent an out-of-bounds exception. Added a warning message in the case of an almost exact fit with Mallows CP criterion calculations. Initialized data which would sometimes cause a "Terminal Error".

- Chapter 8: Time Series Analysis and Forecasting
`diff`

:- Corrected the case when
`d=0`

and`s>0`

was being handled.

- Corrected the case when
`nslse`

:- Corrected code which caused an infinite loop condition.

- Chapter 11: Cluster Analysis
`cdist`

:- Initialize some variables which might cause the routine to erroneously report that workspace could not be allocated.

- Chapter 13: Survival Analysis, Life Testing and Reliability
`phglm`

:- Avoid assigning data to areas which have not been allocated. This only happens in a "Terminal Error" condition.

- Chapter 17: Probability Distribution Functions and Inverses
`bindf`

:- Changed input argument name from P to PIN and adjusted error message accordingly.

`binpr`

:- Changed input argument name from P to PIN and adjusted error message accordingly.

`tndf`

:- Change
`TNDF`

error code 2 (underflow) from TERMINAL to FATAL.

- Change

- Chapter 18: Random Number Generation
`r1int`

:- Implement the new Mersenne Twister algorithm. Used

to initialize the random number generator.

- Implement the new Mersenne Twister algorithm. Used
`rnopt`

:- Add implementation of Mersenne Twister.

`rnun`

:- Add implementation of Mersenne Twister.

`rnunf`

:- Add implementation of Mersenne Twister.

- Chapter 19: Utilities
`versl`

:- Use environment variables instead of reading from a file to get info.

- Miscellaneous

- Math/Library

- Announcements
- The IMSL Fortran Numerical Library, Version 5.01 leverages LAPACK for improved performance.

- Additions
- none

- Improvements
`gmres`

:- Additional error checking is implemented.

`rnsef`

:- Corrected problem where the 1st element of input is not copied into the table.

`surf`

:- Correct workspace allocation.

`u3lsf`

:- Call
`lqrsl`

instead of u10sf to accomodate LAPACK.

- Call
`u3lsj`

:- Call
`lqrsl`

instead of u10sf to accomodate LAPACK.

- Call

- Announcements
- The license management software which IMSL Fortran Numerical Library, Version 5.01 uses has been updated to FLEXlm 9.5. FLEXlm 6.1 was used for IMSL Fortran Library 5.0.
- Hyperjump capability in the documentation has been improved.
- Workspace allocation is now done using the Fortran 90 ALLOCATE/DEALLOCATE commands. In the past, workspace was allocated and deallocated in C.
- SMP capability using OpenMP directives was added to selected routines. Since this list is environment-specific, refer to the environment-specific README files for more information.
- Generic interface modules have been added to assist the user in calling IMSL Fortran Numerical Library routines. Among the advantages of using interface modules are the following:
- Identifies usage errors during compilation which otherwise would have resulted in a run-time error and would have been difficult to identify.
- Incorporates optional arguments making calling sequences of routines simpler.
- Makes the calls to IMSL routines precision independent. This allows for fewer required changes when switching data types within an application.

- Users wishing to use the generic interface modules with their current applications will most likely be required to change the calling sequences to the IMSL routines. Current applications DO NOT need to be modified if the interface modules are not used.

- Additions
`FAURE_FREE`

:- Frees the structure containing information about the FAURE structure.

`FAURE_INIT`

:- Shuffled FAURE sequence initialization.

`FAURE_NEXT`

:- Computes a shuffled Faure sequence.

`QMC`

:- Integrates a function over a hyper rectangle using a quasi-Monte Carlo method.

`MAX_ARMA`

:- Exact maximum likelihood estimation of the parameters in a univariate ARMA (auto-regressive, moving average) time series model.

`AUTO_UNI_AR`

:- Automatic selection and fitting of a univariate autoregressive time series model. The lag for the model is automatically selected using Akaike's Information Criterion (AIC). Estimates of the autoregressive parameters for the model with minimum AIC are calculated using method of moments or maximum likelihood.

`AUTO_FPE_UNI_AR`

:- Automatic selection and fitting of a univariate autoregressive time series model using Akaike's FPE (Final Prediction Error) criteria. Estimates of the autoregressive parameters for the model with minimum FPE are calculated using the methodology described in Akaike, H., et. al (1979).

`AUTO_MUL_AR`

:- Automatic selection and fitting of a multivariate autoregressive time series model. This is the multivariate version of
`AUTO_UNI_AR`

. The lag for the model is automatically selected using Akaike's Information Criterion (AIC).

- Automatic selection and fitting of a multivariate autoregressive time series model. This is the multivariate version of
`AUTO_FPE_MUL_AR`

:- Automatic selection and fitting of a multivariate autoregressive time series model using Akaike's Final Prediction Error (FPE) criteria.

- Automatic selection and fitting of a multivariate autoregressive time series model using Akaike's Final Prediction Error (FPE) criteria.
`BAY_SEA`

:- Bayesian seasonal adjustment modeling. The model allows for a decomposition of a time series into trend, seasonal, and an error component.

`GARCH`

:- Computes estimates of the parameters of a
`GARCH(p,q)`

model.

- Computes estimates of the parameters of a
`OPT_DES`

:- Optimal controller design based upon the methodology of Akaike and Nakagaw (1972). The routine allows for multiple channels for both the controlled and manipulated variables. The gain matrix is computed after automatically selecting the best autoregressive model using minimum multivariate final prediction error (MFPE).

`ARMA_SPEC`

:- Calculates the rational power spectrum for an ARMA model. It also computes the rational power spectrum for AR and MA models by setting the number of MA or AR coefficients to zero, respectively.

`NNLPF`

:- Solve a general nonlinear programming problem using a sequential equality quadratic programming method with an alternative usage of a fully regularized mixed constrained subprogram in case of non-regular constraints. It uses a slightly modified version of the Pantoja-Mayne update for the Hessian of the Lagrangian, variable dual scaling, and an improved Armijo-type stepsize algorithm.

`NNLPG`

:- Solve a general nonlinear programming problem using a sequential equality quadratic programming method with an alternative usage of a fully regularized mixed constrained subprogram in case of non-regular constraints, and user-supplied gradient. It uses a slightly modified version of the Pantoja-Mayne update for the Hessian of the Lagrangian, variable dual scaling, and an improved Armijo-type stepsize algorithm.

- Improvements
`anest`

:- Corrected problem with printing incorrect labels on means.

`bclsf`

:- Moved initialization of
`XSCALE`

in`b3lsf`

to correct a problem where`XGUESS`

was returned without iterating.

- Moved initialization of
`bclsj`

:- Moved initialization of
`XSCALE`

in`b3lsf`

to correct a problem where`XGUESS`

was returned without iterating.

- Moved initialization of
`bcoah`

:- Corrected problem occurring when a new iterate point was on the boundary, which could potentially cause an infinite loop. Moved tests for maximum iterations and evaluations ahead of scaled gradient test.

`bconf`

:- Modified
`b5onf`

to avoid a potential divide by 0.

- Modified
`bnrdf`

:- Replaced code for computation of Owen's T-function. This corrects a problem where
`bnrdf`

was incorrectly returning zero for some values of`x`

and`y`

.

- Replaced code for computation of Owen's T-function. This corrects a problem where
`bs1gd`

:- Removed code that caused resetting
`ncoef`

in the code.

- Removed code that caused resetting
`bsies`

:- Added code to handle the large
`x`

case.

- Added code to handle the large
`bsj1`

:- Changed double precision to return results which are consistent with single precision in the case where
`x<0`

.

- Changed double precision to return results which are consistent with single precision in the case where
`cbis`

:- Changed computation method in cases when
`|z|`

is greater than 25. This change resolves problems with accuracy that were showing up with large`z`

.

- Changed computation method in cases when
`cbins`

:- Fixed computations for large
`X`

. Added code to handle`z`

in quadrants 2 and 3, real`z`

, and large`z`

.

- Fixed computations for large
`cdist`

:- Changed some internal computations in
`m1ran`

to use`integer*8`

to avoid a potential segmentation fault with large input arrays.

- Changed some internal computations in
`cpsec`

:- Implement using Fortran intrinsic.

`csscv`

:- Use a more precise value for golden ratio.

`csswp`

:- Removed check for
`F`

in range`pi,-pi`

.

- Removed check for
`cswed`

:- Added statement to restore
`F`

after scaling for option`IFSCAL=1`

.

- Added statement to restore
`cswep`

:- Removed check for
`F`

in range`pi,-pi`

.

- Removed check for
`ctepr`

:- Replaced
`nrow`

with`ldtabl`

in areas where`TABLE(I, J)`

was accessed linearly`(table(I+(J-1)*nrow)`

.`ldtabl`

is required in these cases. This fixes some problems with workspace corruption when`LDTABL .gt. NROW`

.

- Replaced
`ctglm`

:- Modified centering adjustment in the computation of the first element of the covariance matrix. Also, to avoid failure with a segmentation fault for large input arrays, changed some internal computations in m1ran to use
`integer*8`

.

- Modified centering adjustment in the computation of the first element of the covariance matrix. Also, to avoid failure with a segmentation fault for large input arrays, changed some internal computations in m1ran to use
`cttwo`

:- Replaced code for Fisher Exact Test
`2-tail`

probability computation.

- Replaced code for Fisher Exact Test
`dlprs`

:- Fixed a bug that occurred when an unrestricted nonbasic variable enters the basis. In such cases, it would never leave.

`evlrg`

:- Changed check of subdiagonal element against tolerance rather than zero.

`gamdf`

:- Changed initialization of CUT to amach(4) to improve accuracy.

`ggues`

:- Changed some internal computations to use
`integer*8`

to avoid potential overflow.

- Changed some internal computations to use
`hyppr`

:- Changed the return value from 1 to 0 in case
`k > n.Eliminate K = M`

special case.

- Changed the return value from 1 to 0 in case
`iercd`

:- Added
`iercd`

to`numerical_libraries`

interface.

- Added
`ivprk`

:- Corrected problem with computation of final step size. This occurred when trying to force the step size to a constant value by inputting an equal minimum and maximum step size (
`HMIN`

and`HMAX`

). The returned trial step size (`HTRIAL`

) was sometimes half the input step size.

- Corrected problem with computation of final step size. This occurred when trying to force the step size to a constant value by inputting an equal minimum and maximum step size (
`kalmn`

:- Modified code to avoid potential divide by zero coming from
`u8inf`

.

- Modified code to avoid potential divide by zero coming from
`kstwo`

:- Correct workspace problem.

`lfsxg`

:- Modified to accept zero
`NL`

.

- Modified to accept zero
`lfszg`

:- Modified to accept zero
`NL`

.

- Modified to accept zero
`lftcg`

:- Use an algorithm which takes advantage of the SMP capabilities in the Sun Performance Library.

`lftdh`

:- Use an algorithm which takes advantage of the SMP capabilities in the Sun Performance Library.

`lftds`

:- Use an algorithm which takes advantage of the SMP capabilities in the Sun Performance Library.

`dlftrg`

:- Use an algorithm which takes advantage of the SMP capabilities in the Sun Performance Library.

`lftxg`

:- Replaced check for duplicate
`row,col`

to avoid possible integer overflow.

- Replaced check for duplicate
`lftzg`

:- Replaced check for duplicate
`row,col`

to avoid possible integer overflow.

- Replaced check for duplicate
`lftxg`

:- Changed some internal computations to
`integer*8`

to avoid overflows.

- Changed some internal computations to
`lnfxd`

:- Avoid workspace allocation error.

`lscxd`

:- Added code to set
`invper`

when`ijob=0 or 1`

.

- Added code to set
`lslxd`

:- Incorrectly outputs terminal error 10. Corrected initialization problem in
`l6cxd`

. Replaced check for duplicate`row,col`

to avoid possible integer overflow.

- Incorrectly outputs terminal error 10. Corrected initialization problem in
`lslxg`

:- Replaced code to check for duplicate rows and columns, and changed some internal computations to use
`integer*8`

to avoid potential overflows.

- Replaced code to check for duplicate rows and columns, and changed some internal computations to use
`lslzd`

:- Replaced check for duplicate
`row,col`

to avoid possible integer overflow.

- Replaced check for duplicate
`lslzg`

:- Replaced check for duplicate
`row,col`

to avoid possible integer overflow.

- Replaced check for duplicate
`msidv`

:- Correct logic which determines an error message.

`nconf`

:- Allow the the number of allowable constraints to change from 500 to 10000.

`ncong`

:- Allow the the number of allowable constraints to change from 500 to 10000.

`neqnj`

:- Fixed a typo DLETA should be DELTA.

`nslse`

:- Corrected problem with internal overflow.

`pcgrc`

:- Correct typo that had
`tri2`

not having save attribute.

- Correct typo that had
`pde_1d_mg`

:- Cannot make a new call to
`pde_1d_mg`

after a fatal error. Added code to release workspace for`D2SPG`

in case of error condition.

- Cannot make a new call to
`qdawf`

:- Corrected dimension of
`IWK`

, which caused incorrect results in some problems.

- Corrected dimension of
`qdder`

:- Corrected logic in
`q3der`

to locate index on grid closest to x.

- Corrected logic in
`qand`

:- Modified check for
`maxfcn`

.

- Modified check for
`rcovb`

:- Changed argument
`covb`

to`intent(out)`

in numerical_libraries interface.

- Changed argument
`rglm`

:- Results may vary depending upon column ordering. Corrected problem with internal call to
`g1glm`

.

- Results may vary depending upon column ordering. Corrected problem with internal call to
`rnnof`

:- Added to
`numerical_libraries`

interface.

- Added to
`rnun`

:- Use an algorithm which takes advantage of the machine architecture.

`rnunf`

:- Added
`rnunf`

to`numerical_libraries`

interface.

- Added
`sswp`

:- Removed check for
`F`

in range`pi, -pi`

.

- Removed check for
`svglm`

:- Modified centering adjustment in computation of the first element of the covariance matrix.

`swed`

:- Modified
`s2ed`

to restore`F`

to its original contents before exiting.

- Modified
`swep`

:- Removed check for
`F`

in range`pi, -pi`

.

- Removed check for
`swwd`

:- Modified
`s2wd`

to restore`F`

to its original contents before exiting.

- Modified
`ds6rf`

:- Made
`s3rf`

call a precision specific call.

- Made
`tdate`

:- Implement using a Fortran intrinsic.

`timdy`

:- Implement using a Fortran intrinsic.

`tndf`

:- Added terminal error message when underflow condition is detected.

`tnin`

:- Added terminal error message when underflow condition is detected.

`uvsta`

:- Modified internal computations of mean to use double the default precision to improve the accuracy of the result.

`unit`

:- Incorrect results for complex numbers. Corrected norm computation in
`c_norm2`

and`Z_norm2`

.

- Incorrect results for complex numbers. Corrected norm computation in