From:Darin Perusich
Subject:[NMusers] intel 7.0 on linux
Date:Thu, 09 Jan 2003 12:30:30 -0500
hello,
has anyone been able to successfully compile nonmem with this compiler
on linux? nonmem compiles successfully through SETUP, but when i try
compiling the nonmem executable i'm getting the following error.
/usr/local/nonmem5-v1.1-intel/nm/nonmem.a(FLU.o): In function `flu_':
FLU.o(.text+0x5): undefined reference to `flush_'
i've compiled nonmem with the following options.
SETUP /usr/local/nonmem5-v1.1-intel /opt/intel/compiler70/ia32/bin/ifc \
' -O2 -tpp7 -prec_div -pad_source ' /usr/bin/ar Intel
OS Redhat 7.3 (nonmem run fine with GNU compiler)
Intel(R) Fortran Compiler for 32-bit applications,
Version 7.0 Build 20021028Z
any thoughts?
--
Darin Perusich
Unix Systems Administrator
Cognigen Corp.
darinper@cognigencorp.com
intel 7.0 on linux
6 messages
3 people
Latest: Jan 24, 2003
From:"Bachman, William"
Subject:RE: [NMusers] intel 7.0 on linux
Date:Thu, 9 Jan 2003 12:49:09 -0500
Darin,
It appears that you will have to determine the appropriate compiler
directive to flush the buffer. This is set in flu.for:
C THE NONMEM SYSTEM MAY BE DISTRIBUTED ONLY BY GLOBOMAX, LLC.
C COPYRIGHT BY THE REGENTS OF THE UNIVERSITY OF CALIFORNIA
C 1979-1998 ALL RIGHTS RESERVED.
C
C DO NOT ATTEMPT TO MODIFY CODE
C WITHOUT FIRST CONSULTING WITH GLOBOMAX.
C
SUBROUTINE FLU (I)
CALL COMMITQQ(I)
RETURN
END
The Compaq/Digital compilers use COMMITQQ(I)as seen above. You seem to be
using the directive used by the g77 compiler, FLUSH(I), and the Intel
compiler is complaining. Consult your Intel documentation or Intel customer
support for help determining the correct flush command. If you can't
determine the correct command, you may comment out the call line. See
NONMEM Users Guide, p. 23.
nmconsult@globomaxnm.com
GloboMax LLC
7250 Parkway Drive, Suite 430
Hanover, MD 21076
Voice: (410) 782-2205
FAX: (410) 712-0737
From:"Bachman, William"
Subject: RE: [NMusers] intel 7.0 on linux --> see Nick Holfords email on Intel 7.0 for windows
Date: Thu, 9 Jan 2003 12:58:35 -0500
Nick Holford found the following to work with Intel 7.0 for windows:
"The NONMEM FLU subroutine requires the USE IFLPORT statement in order to
use the COMMITQQ procedure."
nmconsult@globomaxnm.com
GloboMax LLC
7250 Parkway Drive, Suite 430
Hanover, MD 21076
Voice: (410) 782-2205
FAX: (410) 712-0737
From:Nick Holford
Subject:Re: [NMusers] intel 7.0 on linux --> see Nick Holfords email on Intel 7.0 for windows
Date:Fri, 10 Jan 2003 08:12:53 +1300
Hi,
Hints for using Intel 7.0 and g77 with NONMEM can be found here:
http://wfn.sourceforge.net/g77inst.htm
Note that the problem (Windows) of getting intermediate output sent to the screen can be fixed for
both compilers by changing 'con' to 'CONOUT$' in BLKDAT.
Nick
--
Nick Holford, Divn 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/
From:Darin Perusich
Subject:Re: [NMusers] intel 7.0 on linux
Date:Fri, 24 Jan 2003 14:50:58 -0500
it is the operating system not the compiler that determines how a buffer
is written to disk, unix systems use FLUSH or FFLUSH, windows COMMITQQ, etc.
i was able to successfully compile and execute nonmem with the intel
compiler v7.0 on linux using the following arguments.
SETUP /usr/local/nonmem5-v1.1-intel /opt/intel/compiler70/ia32/bin/ifc \
' -O2 -tpp7 -prec_div -Vaxlib ' /usr/bin/ar Intel
the -Vaxlib is the important flag, it tells the compiler to link with
the protability library, so it knows how to FLUSH.
From: "Bachman, William"
Subject:RE: [NMusers] intel 7.0 on linux
Date:Fri, 24 Jan 2003 15:17:12 -0500
Actually, it IS the compiler that determines the "flush" command. The OS
doesn't care what it's called as long as it gets the signal to flush the
buffer. for example g77 for Windows uses FLUSH not COMMITQQ.
nmconsult@globomaxnm.com
GloboMax LLC
7250 Parkway Drive, Suite 430
Hanover, MD 21076
Voice: (410) 782-2205
FAX: (410) 712-0737
_________________________________________