Another(?) ADVAN5 Problem

NONMEM Topic 17

Keywords: ADVAN5, Divide by Zero, VAX VMS, NOABORT option

Topic started by: SN=Maier%G=Gary%I=A%O=STERLING%OU1=PRD1%KODAK@mcimail.com (Gary Maier) - 1 Apr 94

This note is addressed to all nonmem users using a VAX/VMS system (our version is 5.5-2). The problem we are facing is that when we run a simple 2 compartment model using advan5 the program ends even before the iteration process is invoked (the VAX gives a divide by zero error message in the DDDFRS routine line 23). Yet the same code and data set run successfully on a SUN system. If any users have some suggestions as to what we can try we would be most appreciative. (Interestingly a one compartment model runs without any problem)

Response from: (Sandra Lawrence)

I followed the installation guide for installing with the listed adjustments. In the code attached, when I made a modification, I used a lower case c to comment out the original code. Double precision code was installed. Install steps executed: 2.1.1 - file name change to redirect output 2.1.3 - changed to VAX values indicated on page 17 2.4a - NONMEM project team change - DATA SMALLS from 10e-40 to 10e-38 2.5 - change OPEN statements to open FSTREAM as old when running NONMEM from NMTRAN procedure 2.7 - increase number of observations per subject from 50 to 500 Compiled code with command: FORTRAN/LIST/NOOP/NOF77 NONMEM This should provide a start.

Response from: gasparini@binfc1.jrf.be

VAX/VMS is not IEEE-based, that is, the precision of calculations is less than on other systems. Probably Sun is IEEE-based (as is IBM, for example). I try to circumvent these kind of errors by trying different sets of initial estimates for the thetas. After a while iterations start, and one can try to guess a certain direction. (I work with the same version of VMS). I hope this is of some help.

Response from: david-bourne@uokhsc.edu (David Bourne)

I was able to modify an example I had to run under ADVAN5 on the VAX [6610 VMS 5.5] as a fitting exercise without any errors. However I did stop it short (by reducing the MAXEVALS, it was taking too long). I then developed a simple fitting problem with one subject and it ran fine with ADVAN5 and ADVAN4, except for the S MATRIX ALGORITHMICALLY SINGULAR (with both ADVANs) which I guess is due to the small number of data points. These were very simple examples but they seem to work. I would have compiled the program with the FORTRAN default settings. I'd be happy to try a bigger problem - I hadn't used these ADVANs before so may have made an error somewhere. .....

Response from: david-bourne@uokhsc.edu (David Bourne)

I've been able to get the ADVAN4,TRANS3 control/data set working OK. I have also got the ADVAN5 control/data working up to a point. It gets into the estimation step and quits with:
ITERATION NO.:    5     OBJECTIVE VALUE: -0.4620E+03     NO. OF FUNC. EVALS.:16
 CUMULATIVE NO. OF FUNC. EVALS.:   84
 PARAMETER:  0.1471E+00  0.1593E+00  0.2208E+00  0.1696E+00  0.7005E-01  0.1034
            -0.4224E-01
 GRADIENT:   0.3169E+04  0.1221E+04  0.2882E+03 -0.8345E+03 -0.3778E+03 -0.4312
             0.3047E+04
ITERATION NO.:   10     OBJECTIVE VALUE: -0.4932E+03     NO. OF FUNC. EVALS.:14
 CUMULATIVE NO. OF FUNC. EVALS.:  155
 PARAMETER:  0.1642E+00  0.2150E+00  0.2424E+00  0.2169E+00  0.7882E-01  0.1471
            -0.3362E-01
 GRADIENT:   0.3636E+04 -0.9969E+02 -0.1446E+02 -0.1907E+03 -0.3621E+03 -0.2671
             0.7632E+04
PRED EXIT CODE = 1                                                            
INDIVIDUAL NO.    1   ID=0.12270030E+07   (WITHIN-INDIVIDUAL) DATA REC NO.  2 
 THETA=                                                                        
  1.83E+01   8.20E+01   6.29E+00   8.71E+02   5.84E+00                         
 NUMERICAL DIFFICULTIES OBTAINING THE SOLUTION.                                
PROGRAM TERMINATED BY OBJ
 MESSAGE ISSUED FROM ESTIMATION STEP
THERE ARE ERROR MESSAGES IN FILE PRDERR                                       
there is a PRED error - EXIT CODE = 1. I haven't found this error in the manuals I have access to at work. I've tried different initial values and I get the error at different stages in the estimation step. My guess is that certain combinations of parameter values are producing the error. Alison, et al. are there different 'settings' that might help.

Response from: alison@c255.ucsf.EDU (ABoeckmann)

In any event, sorry, there are no 'settings' that will help ADVAN5. I presume that you all include the NOABORT option on the $ESTIMATION record so that NONMEM can back away from the "bad" thetas and try values closer to the last good set of thetas. Gary originally said: The problem we are facing is that when we run a simple 2 compartment model using advan5 the program ends even before the iteration process is invoked (the VAX gives a divide by zero error message in the DDDFRS routine line 23). David, are you trying Gary's problem on your Vax? If so, the fact that no divide by zero occured points to some problem with the installation on Gary's Vax. I suggest that PREDPP be read in from the original installation tape, and that Gary verify that the source code for ADVAN5, REXPON, and RXSUBS is exactly as read. Recompile them too. Another possibility is that Gary uses a different (later?) version of FORTRAN than David, or that he uses different compiler options. Gary might try compiling without optimization, for example.

Response from: david-bourne@uokhsc.edu (David Bourne)

>In any event, sorry, there are no 'settings' that will help ADVAN5. >I presume that you all include the NOABORT option on the $ESTIMATION >record so that NONMEM can back away from the "bad" thetas and try values >closer to the last good set of thetas. No I haven't tried this. ... I have now. That was the 'setting' I needed. It now seems to work OK. I didn't get exactly the same results as with the ADVAN4 but I haven't looked at the results in detail - there are possibly (significant) differences in the control.dat files. >David, are you trying Gary's problem on your Vax? I have now or at least a similar example that Gary provided. >If so, the fact that >no divide by zero occured points to some problem with the installation >on Gary's Vax. I suggest that PREDPP be read in from the original >installation tape, and that Gary verify that the source code for >ADVAN5, REXPON, and RXSUBS is exactly as read. Recompile them too. >Another possibility is that Gary uses a different (later?) version of >FORTRAN than David, or that he uses different compiler options. Gary >might try compiling without optimization, for example. I agree - this difference, PRED EXIT CODE = 1 versus DIVIDE by ZERO, suggests installation differences (problems).

Response from: david-bourne@uokhsc.edu (David Bourne)

It seems that I DID do an OPTIMIZE, that is our default. I was just talking with our Computer Center Director and he tells me that we use all the standard defaults (as listed below from the Help Fortran screen)
  Qualifiers
  /ANALYSIS_DATA[=file-spec]  D=/NOANALYSIS_DATA
  /CHECK[=(option[,...])]     D=/CHECK=(NOBOUNDS,OVERFLOW,NOUNDERFLOW)
  /CONTINUATIONS=n            D=/CONTINUATIONS=19
  /CROSS_REFERENCE            D=/NOCROSS_REFERENCE
  /DEBUG[=(option[,...])]     D=/DEBUG=(NOSYMBOLS,TRACEBACK)
  /DESIGN[=option,...])       D=/NODESIGN
  /DIAGNOSTICS[=file-spec]    D=/NODIAGNOSTICS
  /D_LINES                    D=/NOD_LINES
  /DML
  /EXTEND_SOURCE              D=/NOEXTEND_SOURCE
  /F77                        D=/F77
  /G_FLOATING                 D=/NOG_FLOATING
  /I4                         D=/I4
  /LIBRARY
  /LIST[=file-spec]           D=/NOLIST
  /MACHINE_CODE               D=/NOMACHINE_CODE
  /OBJECT[=file-spec]         D=/OBJECT
  /OPTIMIZE                   D=/OPTIMIZE

Note - default is OPTIMIZE

  /PARALLEL                   D=/NOPARALLEL
  /SHOW[=(option[,...])]      D=/SHO=(NODICT,NOINCL,MAP,NOPREPROC,SINGL)
  /STANDARD[=(option[,...])]  D=/NOSTANDARD
  /WARNINGS[=(option[,...])]  D=/WARN=(GEN,NODECLAR,NOULTRIX,NOVAXELN)
He asked what VAX you were using and pointed out that the Vector Processing VAXs use a different FORTRAN compiler. See topic 15

End of Topic - 9 August 94