|
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( ).
| 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 |
| 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. |
| 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. |
| 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). |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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 . |
| 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. |
| 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. |
| 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. |
| 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. |
| 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'. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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 |
| 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. |
| 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
|