A bug in NM-TRAN has been detected and is described below. Both a
workaround and a
code fix are also described. A fixed routine is available at:
ftp://ftp.globomaxnm.com/Public/nonmem/NONMEM_VI_fixed_routines/
<ftp://ftp.globomaxnm.com/Public/nonmem/NONMEM_VI_fixed_routines/> .
Login with
User name:nonmemvi
Password: updates
An alternative way to access this directory is to use
ftp://nonmemvi:[EMAIL PROTECTED]/
<ftp://nonmemvi:[EMAIL PROTECTED]/>
Code changes have been supplied to Metrum Institute for inclusion
in the next release of NMQUAL.
A cummulative bug list, NONMEM_VI_1.2_Bug_List.txt, is available at
ftp://ftp.globomaxnm.com/Public/nonmem/NONMEM_VI_buglist/
<ftp://ftp.globomaxnm.com/Public/nonmem/NONMEM_VI_buglist/>
At the time these fixes are incorporated into NONMEM VI 1.2 we recommend
changing the value of LEV in BLKDAT to 1.3.
NM-TRAN code
7. This bug affects only NONMEM VI.
The bug affects $ERROR abbreviated code of the form
IF (condition) V=expression
or
IF (condition) THEN
V=expression
ENDIF
when all of the following are true of at least one variable X:
1) X appears in both the condition and the expression;
2) X is defined in $PK
3) X has partials wrt. ETAs.
The bug causes the partials of X to be ignored.
If V (and therefore X) affects the objective function, then the
value of the objective function is incorrect.
Workaround:
Assign the variable from $PK (or the complete expression that uses
variables from $PK) to a variable that is local to $ERROR.
E.g.,
Instead of
IF (A(1)/V1.GT.0) TY=A(1)/V1
Use
C1=A(1)/V1
IF (C1.GT.0) TY=C1
Fix:
In routine GETLOG, locate
C ALSO DO THIS IF IN INITIALIZATION-FINALIZATION BLOCK 8/00
Insert after it:
IF (NTYP.EQ.2) THEN
Locate the following 6 lines down:
IPOS=NTEMP
Insert after it:
ENDIF
_____________________________________________________________________________________________________________