MultiForte and Boomer Manual - Chapter SEVEN

VII. Error Messages

This section is not exhaustive but is complete to date (i.e. these are error messages that I have seen while running or testing the program). With any large program there may be bugs which arise with unusual (i.e. untested) combinations of input.

A. SYSTEM Bombs!!

1. ID = 2

May occur when selecting data file name, before the dialog box appears. Put the latest system and finder on the application disk.

This error may also result when the printer is chosen for the first time after starting the program using a newly created System disk. If you use the Chooser to select a printer first, this should not be a problem.

2. ID = 3

This may occur on launching the program if there is not enough memory to run the program. With a 1 Megabyte machine the inclusion of various INITs, CDEVs or a RAM CACHE may reduce the amount of memory available for Boomer or Multi-Forte. Using a stripped down system folder should help. A FINDER (v6.1) and SYSTEM (v6.0.3) of 468K and 556K, respectively, will allow Boomer to run on a 1 Meg machine. (See ID = 10).

3. ID = 10

On launch of MULTI-FORTE demo (and relinked version), probably also BOOMER, caused by not enough memory. For example an extreme case of having MacroMaker with a 256K ram cache on a standard Mac Plus will cause this bomb. With MacroMaker and no ram cache the reduced graphics window could not be opened, warning with dialog box. Adding other INITs to the system folder will take memory the program would need and will probably cause this problem. The solution would be to create a minimum, recent version, system and launch the program under that system. If running from a hard disk it may be necessary to temporarily move INITs out of the system folder, turn off any ram cache and restart the machine before launching MULTI-FORTE or BOOMER. (see ID = 3).

4. ID = 26

On launch of relinked MULTI-FORTE application. The program is too big to compile with the short address option. Recompile your subroutine with the long address option.

B. FORTRAN error messages

1. Error 34 - disk full

May occur during linking or compiling or storing data to a spool file, output to a batch file, or output to a data file. Rerun with a disk containing more room for data. If this occurs during linking or compiling shut-down the system, remove the temporary linker or compiler files and recompile or link). It is often helpful to remove the old MULTI-FORTE application (to a floppy disk) before preparing a new version.

2. Error 38 - file not open

May occur when running under MultiFinder. Could be that the number of files open is too high. This limit on the number of files can be changed with programs/utilities like Suitcase II(c). May also show up as error 42 or 49.

3. Error 43 - file not found

Could occur if 1) Running the program from a locked disk and choosing the Print option, retry with the disk unlocked (should be an error 44), 2) User compiled model subroutines are missing, or 3) Data file missing (but calls to INQUIRE should mean this isn't possible).

4. Error 44 - disk is write protected

5. Error 45 - file is locked

6. Error 64 - insufficient memory

The runtime heap is too small for printing and data arrays too large. Relink the program with the linker specifying a larger runtime heap size. Currently a runtime heap of 80K is useful. Doesn't seem to be needed with Absoft MacFortran/020, version 2.4. However you may need to allocate more space under MultiFinder in response to this error. Try running under Finder

7. Error 75 - subroutine not found

A necessary subroutine has not been found. Check your link procedure file.

If the user stops the execution of the program with printer output selected, the dialog box. at left, will appear. If you have Absoft MacFortran you can select the included spool.sub. If you don't you can complete execution of the program by clicking the 'Cancel' button. The Scratch.fil printer output file can then be printed with another program such MacWrite, Edit, or using Boomer or MultiForte editor. The Scratch.fil is not deleted until after it is printed, therefore any output stopped by the user will be printed out before the next successful print output from the program.

8. Error 82 - array boundary error

Possible causes include entry of `0' as the `from' component on a first order, second order, or a Michaelis-Menten type rate constant. The `from' component needs to be some number between 1 and 25.

C. MS FORTRAN error messages

1. Run time error M6101:MATH - floating-point error:invalid

This error can result during solution using the Runge-Kutta or Runge-Kutta-Gill numerical integration routines. It means in general that a mathematical operation with an infinity value has occurred. The infinity value (> 10E+38) may result from mathematical instability in the problem. For example, if the RK method is used for `stiff' equations'. You could try adding smaller times using dummy data points or using another numerical integration method. Also divide by zero may occur if (upper or) lower parameter limits are used inappropriately, e.g. using a lower limit of zero for an apparent volume of distribution as Cp = Dose/V...

 

Other MS error messages are described in the compiler manuals. I have not had much experience with this compiler so to be able to give a long list of commonly encountered error messages.

D. MULTI-FORTE error messages

1. ** Error ** Not enough DATA N < M

There are more parameters than data points. Either use a smaller model or get more data. Maybe a Bayesian approach is the answer.

2. The number of parameters xx exceeds 30

3. The number of constants xx exceeds 100

4. The number of diff. eq. xx exceeds 30

5. The number of lines xx exceeds 20

6. Both nc and m are zero

The above messages (ii-vi) are displayed if the models are not specified properly in the user's MODEL subroutine.

7. ** Warning ** Out of damping

If using the damping Gauss-Newton method it is possible to get this warning. The answer is close to a shallow, local minimum (which maybe the global minimum).

8. **** Warning **** Final parameter value close to lower limit

9. **** Warning **** Final parameter value close to upper limit

These messages are printed (viii and ix) if the final parameter value is within 5% of either user defined limit. You may want to rerun with wider limits

10. *** Error *** All weights zero

If all the calculated weights are zero and the run is not a simulation this message indicates that there is a problem with the data or the weighting scheme selected.

11. ** Error ** ISTEP = xxxxxx

12. ** Error ** TSTEP = xxxxxx

These messages (xi-xii) are printed out if the Classical Runge-Kutta or the Runge-Kutta-Gill method are used and are working very hard. Maybe one of the Gear methods would be more appropriate. This error is often produced with 'stiff' equation systems.

 

13. IFLAG not equal to 2

Output if the RKF45 method is used. Also output are values for ndeq, y1, t0, t1, re, and ae. Ndeq is the number of differential equations, y1 is the current calculated value for the first line, t0 is the time at the beginning of this call, and t1 is the time at the end of the call. Re and ae are the relative and absolute errors in use by the program at this point. See below for discussion of the IFLAG value.

14. ** Error ** Absolute error term is zero

This is output if Adam or Gear method is used with an absolute error value of zero. This shouldn't occur but can be easily corrected by specifying a reasonable value for absolute error and rerunning the analysis.

15. KFLAG not equal to 1

This is output if Adam or Gear method is used. See below for details of KFLAG. Also output is ndeq, y1, t0, h, hmin, hmax, eps, kflag, jstart. Ndeq, y1, and t0 are as for xiv above. H, hmin, hmax, are stepsize, and minimum and maximum step size. Eps is the absolute error term. Kflag and jstart are described below.

--** Remember **--

There may be an error in your model definition in your Subroutine CP or MODEL which may cause problems. Thoroughly test your new models with known data or parameters. Try a simulation run with known data before you use a fitting method.

E. RKF45 error messages

1. IFLAG = 2

Normal exit from RKF45. The user will not see any message, just the result.

2. IFLAG = 3

Relative error too small. Outputted error value may be used when rerunning the program.

 

3. IFLAG = 4

More than 500 steps taken to perform the integration. Try rerunning with a larger value for absolute or relative error. Remember the units used internally. For example a dose entered as 1000 mg will mean that 1000 mg will be moved around the system. An absolute error of 0.001 is relatively very small and could probably set somewhat higher without losing any significant accuracy.

4. IFLAG = 5

Solution vanished. A non-zero absolute error term is required. Increase the value of the absolute error term and retry.

5. IFLAG = 6

Requested accuracy couldn't be achieved with smallest allowable stepsize. Try using larger values for the error terms.

6. IFLAG = 7

RKF45 inefficient for this problem. Try larger values for error terms or the Gear method.

7. IFLAG = 8

Invalid input parameters. Shouldn't occur, possibly there is an error in user defined model. Could be something wrong with this version of MultiForte

With IFLAG = 3, 4, 6, or 7, this method may be inappropriate. Maybe the system is stiff and the Gear method should be used.

In BATCH mode it is possible to have the program restart automatically after these (IFLAG = 5-8) errors.

F. DIFSUB error messages

The Gear and Adam methods are automatic, multi-step methods. JSTART on exit is equal to the current order used. The maximum values allowed are 7 for the Gear method and 8 for the Adam method.

1. KFLAG = 1

Normal finish. Not normally seen by the user.

2. KFLAG = -1

Step was taken with h = hmin, but the requested error was not achieved. Rerun with a larger value for the absolute error.

3. KFLAG = -2

The maximum order requested was too large. Rerun with larger error value?

4. KFLAG = -3

Corrector convergence could not be achieved with h greater than hmin.

5. KFLAG = -4

Requested error value too small. Try rerunning with a larger value for the error term. Maybe an error in your subroutine CP. If your function is not continuous (multiple dose, an infusion stops or starts) you will need to add an (INIT.eq.-1) section [see below] if you want to use the GEAR method.

In BATCH mode it is possible to have the program restart automatically after these (KFLAG != 1) errors.

Next Chapter - Chapter EIGHT


This file was last modified: Friday 08 Aug 2008 at 02:01 PM

Material on this website should be used for Educational or Self-Study Purposes Only

Copyright © 2001-2010 David W. A. Bourne (david@boomer.org)