RE: $ABBR REPLACE Limitations?
Bill:
If a substitution fails, you can more surely enforce its replacement if you
surround the variable to be substituted with parentheses.
In your example,
$ABBR REPLACE CMTUPGUT=1
$ABBR REPLACE CMTUPGUT2=15
…
$PK
…
IF (CMT.EQ.(CMTUPGUT).OR.CMT.EQ.(CMTUPGUT2).AND.AMTEFFSOLID.GT.0) THEN
…
ENDIF
…
Should work.
Robert J. Bauer, Ph.D.
Senior Director
Pharmacometrics R&D
ICON Early Phase
820 W. Diamond Avenue
Suite 100
Gaithersburg, MD 20878
Office: (215) 616-6428
Mobile: (925) 286-0769
[email protected]<mailto:[email protected]>
http://www.iconplc.com/
Quoted reply history
From: Bill Denney [mailto:[email protected]]
Sent: Saturday, February 03, 2018 11:35 AM
To: Alison Boeckmann
Cc: Bauer, Robert; Luann Phillips; nmusers
Subject: RE: [NMusers] $ABBR REPLACE Limitations?
Hi,
I hit another issue that I think may be related to the issue below. I’m still
in NONMEM 7.4.1, so if it’s fixed in 7.4.2, please let me know. I don’t have
any spaces , so I think that it’s at least subtly different than the related
issue discovered previously with spacing before and/or after substituted
parameters.
Is it possible to use replaced parameter in the beginning of a compound Boolean
statement in the $PK?
$ABBR REPLACE CMTUPGUT=1
$ABBR REPLACE CMTUPGUT2=15
…
$PK
…
IF (CMT.EQ.CMTUPGUT.OR.CMT.EQ.CMTUPGUT2.AND.AMTEFFSOLID.GT.0) THEN
…
ENDIF
…
Gives the error below:
AN ERROR WAS FOUND ON LINE 245 AT THE APPROXIMATE POSITION NOTED:
IF (CMT.EQ.CMTUPGUT.OR.CMT.EQ.CMTUPGUT2.AND.AMTEFFSOLID.GT.0) THEN
X
THE CHARACTERS IN ERROR ARE: CMTUPGUT
208 UNDEFINED VARIABLE.
Switching the order in the IF statement
$ABBR REPLACE CMTUPGUT=1
$ABBR REPLACE CMTUPGUT2=15
…
$PK
…
IF (CMT.EQ.CMTUPGUT2.OR.CMT.EQ.CMTUPGUT.AND.AMTEFFSOLID.GT.0) THEN
…
ENDIF
…
Gives the equivalent error for CMTUPGUT2.
Doing manual substitution of the first value in the IF statement makes the code
apparently work:
$ABBR REPLACE CMTUPGUT=1
$ABBR REPLACE CMTUPGUT2=15
…
$PK
…
IF (CMT.EQ.1.OR.CMT.EQ.CMTUPGUT2.AND.AMTEFFSOLID.GT.0) THEN
…
ENDIF
…
Thanks,
Bill