Nonmem seems to hang itself
From: Erik Olofsen +31 71 5263344 / 5152719
Subject: Nonmem seems to hang itself
Date: 17 Oct 1997 09:04:01 -0400
Dear NONMEM users,
I've been running NONMEM under Linux, and I have had the same problem as Dr. Rombout, which was that NONMEM did not abort after a floating point exception. On the WWW I found information provided by Dr. Giannetti on how to solve it. (see http://www.adl.dmt.csiro.au/mail_lists/html/linux-gcc/msg00090.html)
By adding the following verbatim code to $PK or to a user-written PRED, the masks for floating point errors can be set as desired:
$PK
"FIRST
"IF (ICALL.EQ.1) THEN
" WRITE(*,*) 'CALLING SETFPUCW'
" CALL SETFPUCW
"ENDIF
NONMEM then needs to be linked with the following C routine. The advantage of implementing this in C is that one can use the FPU constants as defined in the header file.
#include <fpu_control.h>
void setfpucw_()
{
__setfpucw(_FPU_DEFAULT & ~(_FPU_MASK_IM | _FPU_MASK_ZM | _FPU_MASK_OM));
}
This causes a core dump in case of an invalid operation, a divide by zero or overflow.
Erik Olofsen
Department of Anesthesiology
Leiden University Medical Center
The Netherlands