nag logo Error Bulletin for the NAG Fortran Library

This document contains a list of errors that affect various Marks of the NAG Fortran Library.

Some of these errors may have been fixed at intermediate "point" releases of the Library, while other fixes are scheduled for incorporation at future releases. For library Marks where those fixes are not yet incorporated, a workaround for the known problem is provided wherever possible.

To find the Mark and point release number of your library, call NAG routine A00AAF( ).

  1. Routine: C02ADF
    Synopsis:   Routine C05ADF exhibits unpredictable (and incorrect) behaviour
    Description:   Certain smooth and continuous test functions can cause the routine to behave in an unpredictable manner, including homing in to a zero outside the specified interval or wildly oscillating and generating NaNs
    Severity:   Critical
    Problem since Mark:   22.1
    Fixed in Mark:   22.2
    Workaround:   None

  2. Routine: C02AGF
    Synopsis:   Overflow may occur if the routine attempts to scale the polynomial coefficients.
    Description:   In rare circumstances overflow may be observed if SCAL = .TRUE..
    Severity:   Non-critical
    Problem since Mark:   16.0
    Fixed in Mark:   -
    Workaround:   Set parameter SCAL = .FALSE.

  3. Routine: C05QSF
    Synopsis:   IFLAG not set on entry to FCN in C05QSF
    Description:   The argument IFLAG to FCN in C05QSF is never initialized internally, but its value on exit from FCN is tested to determine whether user termination has been requested.
    Severity:   Critical
    Problem since Mark:   23.0
    Fixed in Mark:   23.1
    Workaround:   If you wish to continue execution, always set IFLAG to a positive value in FCN.

  4. Routines: C09AAF, C09CCF and C09CDF
    Synopsis:   Multi-level wavelets cannot handle periodic end extension
    Description:   When MODE = 'P' and WTRANS = 'M' the multi-level wavelet transform routines do not work properly if N is not a power of 2.
    Severity:   Non-critical
    Problem since Mark:   22.0
    Fixed in Mark:   23.0
    Workaround:   The option combination of a multi-level wavelet transform using a periodic end extension is currently disallowed; a call to the initialization routine C09AAF with this combination will return with an error code.
    For multi-level analysis of periodic data, you are advised to experiment with the alternative end conditions; the periodic property of the data can also be used to extend the data set in both directions to points that better suit the alternative end condition (e.g. extend the data to next maximum or minimum).

  5. Routines: D06AAF, D06ABF and D06ACF
    Synopsis:   Stack size or thread safety problems may be observed with some D06 routines
    Description:   D06AAF, D06ABF and D06ACF contain large local arrays that may cause stack size and/or thread safety problems.
    Severity:   Critical
    Problem since Mark:   20.0
    Fixed in Mark:   24.0
    Workaround:   Do not use these routines in a multithreaded environment. For serial execution, set stack size limit to 10MB or greater.

  6. Routines: D06ABF and D06ACF
    Synopsis:   D06ABF D06ACF array bound violation
    Description:   Calls to D06ABF and D06ACF could, potentially, perform memory overwrites leading to unpredictable behaviour. This is due to the possibility of writes to the array argument COOR of D06ABF and D06ACF outside of its declared bounds; this could occur when the argument NVMAX is set to a value less than NVB+NVINT+12 for calls to D06ABF or to a value less than NVB+NVINT+13 for calls to D06ACF.
    Severity:   Critical
    Problem since Mark:   22.0
    Fixed in Mark:   22.1
    Workaround:   Increase the value of NVMAX to be at least NVB+NVINT+12 when calling D06ABF and to be at least NVB+NVINT+13 when calling D06ACF. This will ensure that no array bound violations for COOR are possible.

  7. Routines: D06ABF, D06ACF and D06BAF
    Synopsis:   D06ABF, D06ACF, D06BAF may crash if ITRACE > 1
    Description:   Setting argument ITRACE > 1 in calls of any of D06ABF, D06ACF, D06BAF causes failure with a run-time error due to record overflow - values are written into a string which is not big enough.
    Severity:   Critical
    Problem since Mark:   22.1
    Fixed in Mark:   22.2
    Workaround:   Argument ITRACE is used to get printed information about a generated grid. The only workaround is to use values of ITRACE <= 1.

  8. Routine: E02BFF
    Synopsis:   Incorrect computation and potential illegal memory read may occur with START=10 or 11 and XORD=1
    Description:   When using START = 10 or 11 and XORD = 1, if any abscissae are outside the valid section of the spline (i.e IXLOC<4 or IXLOC>NCAP7-3) and the ordering of the segment groups of abscissae is insufficient, some valid abscissae will not be evaluated and the evaluation of some invalid abscissae will be attempted. Specifically, if there are NLOWER abscissae with IXLOC<4 and NUPPER abscissae with IXLOC>NCAP7-3, then all abscissae with index i satisfying NLOWER < i <= NX-NUPPER will be evalauted, and all other abscissae will not be evaluated. Hence if (the provided or computed) IXLOC is not ordered as [ IXLOC<4, 4 <= IXLOC <= NCAP7-3 , IXLOC>NCAP7-3], i.e. any lower invalid points are at the start and any invalid upper points are at the end, then some incorrect computation will be performed. If any lower invalid points are not at the start, then an illegal data read of C before its first element will be performed.
    Severity:   Critical
    Problem since Mark:   24.0
    Fixed in Mark:   25.0
    Workaround:   Either order the abscissae so that any lower invalid points are at the start and any upper invalid points are at then end, or do not use XORD=1 with START = 10 or 11.

  9. Routines: E04DGA E04MFA E04NCA E04NFA E04NKA E04UCA E04UFA E04UGA E04USA
    Synopsis:   No check that a mandatory call to the initialization routine has been made
    Description:   Whilst it is necessary to call initialization routine E04WBF prior to calling the named E04 routines, no software check is made to ensure that this has happened.
    Severity:   Non-critical
    Problem since Mark:   20.0
    Fixed in Mark:   -
    Workaround:   Ensure that initialization routine E04WBF has been called.

  10. Routine: E04MXF
    Synopsis:   Insufficient estimates of problem size might lead to crash
    Description:   In some circumstances when calling E04MXF not in query mode, internal memory overwrites may occur, possibly causing program crash.
    Severity:   Critical
    Problem since Mark:   24.0
    Fixed in Mark:   25.0
    Workaround:   Call E04MXF in query mode first to get good upper estimates of the problem size.

  11. Routines: E04NKA, E04NKF
    Synopsis:   Actual array size required is underestimated
    Description:   Sometimes the suggested array size returned in parameter MINIZ is underestimated.
    Severity:   Critical
    Problem since Mark:   22.0
    Fixed in Mark:   24.0
    Workaround:   Increase the size of array IZ and the value of LENIZ accordingly.

  12. Routines: E04NQF, E04VHF, E04WDF
    Synopsis:   Internal file overflow
    Description:   If you set a New Basis File in E04NQF, E04VHF or E04WDF and your total problem size (N + M, N + NF or N + NCLIN + NCNLN, respectively) is greater than 80 you will experience an internal buffer overflow and possible program crash.
    Severity:   Critical
    Problem since Mark:   22.0
    Fixed in Mark:   23.0
    Workaround:   Unfortunately there is no convenient workaround. The only way to avoid this crash is to not specify a New Basis File or to have a small enough problem.

  13. Routine: E04NSF
    Synopsis:   'List' option does not work
    Description:   CALL E04NSF('List',CW,IW,RW,IFAIL) fails to cause the options subsequently set to be echoed.
    Severity:   Non-critical
    Problem since Mark:   23.0
    Fixed in Mark:   23.2
    Workaround:   Unfortunately there is no convenient workaround.

  14. Routines: E04VHF and others
    Synopsis:   User-supplied character strings containing spaces may cause garbled error messages
    Description:   Some routines produce error messages containing character data that has been supplied through the argument list by the user. An example is E04VHF, where the XNAMES or FNAMES can be referred to in error messages. Having spaces in these strings confuses the internal error-message splitter, which splits on spaces. Thus, error messages returned by the routine may be garbled.
    Severity:   Non-critical
    Problem since Mark:   22.0
    Fixed in Mark:   23.0
    Workaround:   Make sure user-provided character data is without spaces.

  15. Routine: E04VLF
    Synopsis:   Setting the optional parameters 'LIST' or 'NOLIST' for E04VHF results in an erroneous exit flag and, potentially, undefined behaviour
    Description:   Enabling or disabling echoing of optional parameters to E04VHF as they are set, by specifying
          CALL E04VLF('LIST',CW,IW,RW,IFAIL)
    
    or
          CALL E04VLF('NOLIST',CW,IW,RW,IFAIL)
    
    results in an internal exit flag being set. This erroneous, undefined, error flag is then returned as IFAIL by E04VHF.
    Severity:   Non-critical
    Problem since Mark:   23.0
    Fixed in Mark:   23.2
    Workaround:   Unfortunately there is no convenient workaround using NAG Fortran Library routines, but it is possible to set an element of the IW array to enable or disable listing. To enable listing (equivalent to setting 'List') set IW(502) = 1 and to disable listing ('NoList') set IW(502) = 0.

  16. Routine: E04WFF
    Synopsis:   Setting the optional parameters 'LIST' or 'NOLIST' for E04WDF results in an erroneous exit flag and, potentially, undefined behaviour
    Description:   Enabling or disabling echoing of optional parameters to E04WDF as they are set, by specifying
          CALL E04WFF('LIST',IW,RW,IFAIL)
    
    or
          CALL E04WFF('NOLIST',IW,RW,IFAIL)
    
    results in an internal exit flag being set. This erroneous, undefined, error flag is then returned as IFAIL by E04WDF.
    Severity:   Non-critical
    Problem since Mark:   23.0
    Fixed in Mark:   23.2
    Workaround:   Unfortunately there is no convenient workaround using NAG Fortran Library routines, but it is possible to set an element of the IW array to enable or disable listing. To enable listing (equivalent to setting 'List') set IW(502) = 1 and to disable listing ('NoList') set IW(502) = 0 .

  17. Routines: E04XAA, E04XAF
    Synopsis:   Attempt to write too many characters to a record in a routine called by E04XAF
    Description:   Call E04XAF or E04XAA with MSGLVL = 2 and a compiler runtime error may occur.
    Severity:   Critical
    Problem since Mark:   22.1
    Fixed in Mark:   22.2
    Workaround:   Don't call E04XAA or E04XAF with MSGLVL = 2.

  18. Routine: E05JBF
    Synopsis:   Array-out-of-bounds error in routine called by E05JBF
    Description:   When using initialization method IINIT = 4 with infinite bounds BL and BU, and when the number of randomly-generated initialization points (which will always be between 3 and SDLIST) is greater than N, NaNs may be created in the initialization data, which makes the initializer enter into an infinite loop.
    Severity:   Critical
    Problem since Mark:   22.0
    Fixed in Mark:   22.1
    Workaround:   Use finite bounds when IINIT = 4.

  19. Routines: E05JCF and E05JDF
    Synopsis:   Crash may occur when the real value does not contain a decimal point, e.g. when 1E5 is passed as the real value.
    Description:   When setting a real valued optional parameter using either E05JCF or E05JDF, if the real value contained in the string is in exponential format without a decimal point (for example 1E5 as opposed to 1.0E5), an unrecoverable crash may occur.
    Severity:   Critical
    Problem since Mark:   23.0
    Fixed in Mark:   23.1
    Workaround:   Real values contained in the optional parameter string should always include a decimal point.

  20. Routines: E05SAF and E05SBF
    Synopsis:   Gradient check is incorrect and will fail or enter infinite loop
    Description:   Error in OBJFUN gradient checking when using either E05SAF or E05SBF in conjunction with E04DGF or E04KZF as the local minimizer.
    Severity:   Critical
    Problem since Mark:   23.0
    Fixed in Mark:   23.1
    Workaround:   Simply disabling gradient checking will allow the algorithm to continue unhindered. Alternatively, using E04UCF as the local minimizer will test the gradients provided in OBJFUN correctly.

  21. Routines: E05SAF and E05SBF
    Synopsis:   Optional parameter values can be set incorrectly
    Description:   If optional parameter 'Local Minimizer Interior Iterations = 0' is set then this will also, incorrectly, disable exterior local minimization.
    Severity:   Non-critical
    Problem since Mark:   23.0
    Fixed in Mark:   23.2
    Workaround:   If no internal local minimization is required, set optional parameter 'Local Minimizer Interior Iterations = 1'.

  22. Routine: E05SBF
    Synopsis:   Unpredictable behaviour if E05SBF is called with NCON ≥ NDIM + 2
    Description:   Attempting to solve non-linearly constrained problems where the number of constraints is greater than the number of dimensions may lead to unpredictable behaviour.
    Severity:   Critical
    Problem since Mark:   23.0
    Fixed in Mark:   23.2
    Workaround:   Increasing NDIM to be greater than NCON, and setting all additional box bounds to equality will prevent the error. This will unfortunately come at a cost of efficiency in the routine.

  23. Routine: E05ZKF
    Synopsis:   Crash may occur when the real value does not contain a decimal point, e.g. when 1E5 is passed as the real value.
    Description:   When setting a real valued optional parameter using E05ZKF, if the real value contained in the string is in exponential format without a decimal point (for example 1E5 as opposed to 1.0E5), an unrecoverable crash may occur.
    Severity:   Critical
    Problem since Mark:   23.0
    Fixed in Mark:   23.1
    Workaround:   Real values contained in the optional parameter string should always include a decimal point.

  24. Routine: E05ZKF
    Synopsis:   Parsing an optional parameter string may incorrectly identify a token as numeric
    Description:   E05ZKF may incorrectly identify strings, that may be numeric in exponential format, as numeric when they should be interpreted as strings. The exact circumstance under which this error may occur cannot be defined and it is unlikely to occur in practice
    Severity:   Critical
    Problem since Mark:   23.0
    Fixed in Mark:   23.1
    Workaround:   Avoid using optional parameter strings that contain substrings such as 'E05', '+D01', '.E15', ..., as input.

  25. Routine: F01BSF
    Synopsis:   An error message issued by the routine may be garbled
    Description:   When called with data which is incompatible with the matrix factorized by the previous call of F01BRF, F01BSF will return IFAIL = 5, but the associated printed message may be garbled.
    Severity:   Non-critical
    Problem since Mark:   19.0
    Fixed in Mark:   25.0
    Workaround:   Avoid supplying incompatible data to F01BSF

  26. Routine: G02QGF
    Synopsis:   Returns incorrect results when NTAU > 1 and user supplied initial values for B are being used
    Description:   If NTAU > 1, the optional parameter 'Calculate Initial Values = No' is set, the rows of array B are not all identical, then the results returned by G02QGF are incorrect.
    Severity:   Critical
    Problem since Mark:   23.0
    Fixed in Mark:   24.0
    Workaround:   Rather than call the routine once with NTAU > 1, call the routine multiple times with NTAU = 1, analysing a different value of TAU on each call.

  27. Routine: H02BBF
    Synopsis:   Misleading error associated with an undocumented error exit can be produced
    Description:   A puzzling error message may be produced with an undocumented error exit IFAIL = 11 if workspace sizes are not sufficiently large to accommodate an internal partition of the workspace that meets the requirements of the problem.
    Severity:   Non-critical
    Problem since Mark:   22.0
    Fixed in Mark:   24.0
    Workaround:   Increase the size of workspace arrays IWORK and RWORK and their dimensions LIWORK and LRWORK

  28. Routine: H02CBF
    Synopsis:   Minimum lengths of real workspace displayed in errors messages from H02CBF are incorrect
    Description:   If you provide too little real workspace to H02CBF the minimum value required will be displayed in the error message (if messaging is enabled). The value is too small by 4*MDEPTH + N. The documented values are correct.
    Severity:   Non-critical
    Problem since Mark:   22.3
    Fixed in Mark:   22.4
    Workaround:   Add 4*MDEPTH + N to the minimum LWRK described in error messages, or use the values from the documentation.

  29. Routine: LAPACK (applies to 32-bit Windows library FLDLL244M/L only)
    Synopsis:   Calls of LAPACK routines with incorrect arguments may cause program crash
    Description:   (This error report applies to 32-bit Windows library FLDLL244M/L only).
    In some circumstances, a call to an LAPACK routine from the FLDLL244M_mkl variant of the NAG library may cause a program crash. The crash can occur if your program calls any LAPACK routine with faulty arguments (for example, if you call LAPACK routine DGETRF with argument N < 0). In normal circumstances, MKL should issue an error message, but a problem with the LAPACK error handling routine XERBLA in the version of MKL distributed with Mark 24.1 of the NAG library leads to a crash instead of an error message.
    Severity:   Non-critical
    Problem since Mark:   24.1
    Fixed in Mark:   24.1.1
    Workaround:   A workaround is simply to link to the all-NAG library FLDLL244M_nag where the problem does not exist. Once you are confident that you have no argument errors in your calls to LAPACK routines, you can revert to calling FLDLL244M_mkl.

  30. Routine: S30NAF
    Synopsis:   The constraint on argument S of S30NAF is incorrectly checked
    Description:   The documented constraint on argument S is correct, but the constraint was incorrectly checked. This made it impossible to use a value of S less than 1.0.
    Severity:   Non-critical
    Problem since Mark:   22.0
    Fixed in Mark:   22.1
    Workaround:   None

Page generated on 19-March-2013
The Nag Fortran Library
NAG Technical Support
NAG Home Page