From: "Nick Holford"  
Subject:[NMusers] Avoiding ABORT in NONMEM Initialization
Date: Thu, October 7, 2004 9:12 pm 

Hi,

I have a simulation/estimation problem in which I want to avoid flip-flop. I can
arrange for this in the simulation step but when I try to avoid it during estimation
I get an ABORT during NONMEM's initialization when I use EXIT to stop KA becoming
less than or equal to CL/V.

I've tried using ICALL to stop the EXIT statement being triggered but I suspect that
ICALL=2 is used during regular iterations as well as during initialization.
    IF (ICALL.NE.4.AND.ICALL.GT.2.AND.KA.LE.CL/V) EXIT 1 100

I know there are other ways to avoid flip-flop. That is not my primary reason for
asking this question. I would like to learn if there is a way to either
1) make NONMEM behave consistently during the initialization and subsequent
iterations with respect to the NOABORT option
or 
2) detect the initialization phase so that the condition triggering the EXIT can be
avoided.

The control stream and error message are shown below. Thanks in advance for your
suggestions.

Nick

$PROB
$INPUT ID AMT TIME DV MDV
$DATA data
$SUBROUTINES  ADVAN2 TRANS2
$SIM (20041008 NEW) SUBPROB=1
$ESTIM MAXEVAL=9990 SIGDIG=3 NOABORT
METHOD=CONDITIONAL INTERACTION

$THETA 
(0.01,0.693) ;POPCL
(0.01,1) ;POPV
(0.01,1.5) ;POPKA

$OMEGA BLOCK(1)
0.09 ;PPVCL

$OMEGA
0.09 ;PPVV
0.09 ;PPVKA

$SIGMA 0.01 ;RUVCV

$PK
    CL=POPCL*EXP(PPVCL)
    V=POPV*EXP(PPVV)
    KA=POPKA*EXP(PPVKA)
    IF (ICALL.NE.4.AND.KA.LE.CL/V) EXIT 1 100
    IF (ICALL.EQ.4) THEN
       NETA=0
       DOWHILE(KA.LE.CL/V.AND.NETA.LT.100000) ; safety net in case of getting stuck
in loop
          CALL SIMETA(ETA)
          CL=POPCL*EXP(PPVCL)
          V=POPV*EXP(PPVV)
          KA=POPKA*EXP(PPVKA)
          NETA=NETA+1
       ENDDO
    ENDIF
    SC=V
               
$ERROR
        
    Y=F*(1+EPS(1))

and this is the typical error - note it occurs before the ITERATION 0 message:

nmgo test
nmtran.exe test.ctl

 WARNINGS AND ERRORS (IF ANY) FOR PROBLEM  1

 (WARNING  2) NM-TRAN INFERS THAT THE DATA ARE POPULATION.
df /fltconsistency /optimize:4 /fast /Fetest FSUBS.for @link.txt
NONMEM test...
 MONITORING OF SEARCH:

0PRED EXIT CODE = 1

0INDIVIDUAL NO.   26   ID=0.26000000E+02   (WITHIN-INDIVIDUAL) DATA REC NO.   1

 THETA=

  6.93E-01   1.00E+00   1.50E+00

 OCCURS DURING SEARCH FOR ETA AT A NONZERO VALUE OF ETA

 PK SUBROUTINE: USER ERROR CODE = 100




--
Nick Holford, Dept Pharmacology & Clinical Pharmacology
University of Auckland, 85 Park Rd, Private Bag 92019, Auckland, New Zealand
email:n.holford@auckland.ac.nz tel:+64(9)373-7599x86730 fax:373-7556
http://www.health.auckland.ac.nz/pharmacology/staff/nholford/
_______________________________________________________