Re: fortran compiler
From n.holford@auckland.ac.nz Tue Apr 29 17:40:28 1997
Subject: Re: fortran compiler
I have used Watcom 10.5 and 10.6 to run NONMEM. Here are my notes. I use the following compiler options: /ox /5 /fp5
CHANGES TO NONMEM SOURCE FOR WATCOM COMPILER V 10.5/6
=====================================================
nonmem.f:
Needs more file handles than default allows (v 10.5)
Also need to add FILE=60 (or more) in CONFIG.SYS.
C MOD 23 Nov 1995 NHGH
INCLUDE 'FSUBLIB.FI'
INTEGER NEW_LIMIT
NEW_LIMIT=GROWHANDLES(60)
C MOD END
blkdat.f:
define NULL device:
C MOD START NHGH
DATA FNSTP,FNINT,FNERR/'nul','nul','PRDERR'/
C MOD END NHGH
Comment out IEEE:
C MOD START NHGH
C DATA IREPS,ITOL,LARGE,IEPS/1018167296,0,55574528,0,
C 1 2146435071,-1,864026624/
C DATA ISREPS,ISTOL/872415232,201326592/
C MOD END NHGH
Uncomment Intel Chip:
C MOD START NHGH
DATA IREPS,ITOL,LARGE,IEPS/0,1018167296,0,55574528,
1 -1,2146435071,864026624/
DATA ISREPS,ISTOL/872415232,201326592/
C MOD END NHGH
ofiles.f:
comment out REWIND 5
C MOD START NHGH
C REWIND 5
C MOD END NHGH
CHANGES TO NMTRAN SOURCE FOR WATCOM COMPILER
============================================
Note that nmtran will read from stdin and write to stdout.
cfilex.f:
Between INTEGER N and GO TO (1,2,3,4,5,6) NOPEN. A
WATCOM specific include file is needed to use FEXIT()
(see below):
C MOD 10 June 94 NHGH
INCLUDE 'FSUBLIB.FI'
C MOD END
Remove comment and change CALL EXIT(N):
C Use FEXIT() to return with exit status
CALL FEXIT(N)
C MOD END
chkdat.f:
Replace FORM(3)='(A300)':
C MOD NHGH 13 Jun 94 - Fix Watcom bug if FORM(3)>A256
C FORM(3)='(A300)'
FORM(3)='(A256)'
C MOD END
read2.f:
Replace FORM(1)='(A300)':
C MOD NHGH 13 Jun 94 - Fix Watcom bug if FORM(1)>A256
C FORM(1)='(A300)'
FORM(1)='(A256)'
C MOD END
skipbl.f:
Modify RECORD(CURRLN) etc as follows:
C MOD NHGH 20 Jun 94 - Watcom breaks if CPOS>J-1
C IF (RECORD(CURRLN)(CPOS:J-1).EQ.' ') THEN
IF ((CPOS.GE.J).OR.RECORD(CURRLN)(CPOS:J-1).EQ.' ') THEN
C MOD END
pkparm.f:
The I6 format breaks CALLFL=-2. AB suggests:
In NMTRAN's routine PKPARM, locate:
READ (VCON(RHSPOS(KK),II)(1:LVCON(RHSPOS(KK),II)-1),
X '(I6)') J
Replace with:
READ (VCON(RHSPOS(KK),II)(1:1),'(I1)') J
IF (LVCON(RHSPOS(KK),II).NE.2) J=9
--
Nick Holford, Dept Pharmacology & Clinical Pharmacology
University of Auckland, Private Bag 92019, Auckland, New Zealand
email:n.holford@auckland.ac.nz tel:+64(9)373-7599x6730 fax:373-7556
http://www.phm.auckland.ac.nz/Staff/NHolford/nholford.html
****