NONMEM Users Guide Part III - Installation
6.1. NSIZES, PSIZES, LSIZES, TSIZES
6.2. NONMEM Installation (Chapter III)
6.2.1. BEGIN
6.2.2. BLKDAT
6.2.3. FLUSH
6.2.4. Compiling NONMEM
6.3. NM-TRAN Installation (Chapter V)
6.4. NM-TRAN Library Routines Installation (Chapter VI)
6.5. Run-Time Tools Installation (Chapter VII)
6.5.1. Nmlink5
6.5.2. Path.for
6.5.3. Nmfe5.com

NONMEM Users Guide Part III - Installation

Appendix 6 - Suggestions for VAX/VMS and OPEN/VMS

The contents of this section is obsolete. However, the material is retained because it may be of interest to users who are installing NONMEM on a platform other than Unix, OS X or Windows.

This appendix contains suggestions for installation of NONMEM V on VAX/VMS and OPEN/VMS systems. It is not a complete guide to installation. Rather, it serves as a supplement to Chapters I through VII of this guide, and the reader is assumed to be familiar with those chapters.

VAX/VMS suggestions in those chapters (which may be found by using the index at the back of the guide) should be examined carefully, because some of these suggestions came from other users, and may give valuable alternate or additional ideas.

The suggestions in this appendix are provided with the kind assistance of Dr. Jerry Nedelman of Novartis Pharmaceuticals. Neither Dr. Nedelman nor the NONMEM Project Group guarantees their accuracy or applicability to your particular situation.

6.1. NSIZES, PSIZES, LSIZES, TSIZES

The files must be named NSIZES.FOR, PSIZES.FOR, LSIZES.FOR, and TSIZES.FOR.

6.2. NONMEM Installation (Chapter III)

It is not necessary to separate the files. It is indeed inconvenient to do so since there is no simple way to compile multiple files without explicitly naming each one in the compile command. However, it is necessary to separate out and separately compile NONMEM.FOR and BLKDAT.FOR, as discussed in Chapter III 1.1.

6.2.1. BEGIN

The four lines in BEGIN should be commented out. Units 5 and 6 will be connected in the command procedure nmfe5.com (see Section 5.3).

6.2.2. BLKDAT

Activate the constants appropriate to your computer (VAX or IEEE).

Change the first DATA statement as follows (lines with ’C’ in column 1 are the original lines as read from the distribution medium):

C    1/’nul’,’con’,’PRDERR’,’INTER’,’nul’/
     1/’NLA0:’,’NONMEM_FILE2’,’NONMEM_PRDERR’,’NONMEM_INTER’,’NLA0:’/

Change the remaining DATA statements as follows:

C     DATA FN07,FN10,FN11,FN12,FN13,FN14,FN15,FN16/’FILE07’,’FILE10’,
C    1’FILE11’,’FILE12’,’FILE13’,’FILE14’,’FILE15’,’FILE16’/
C     DATA FN17,FN18,FN19,FN20,FN21,FN22,FN23,FN24,FN25,FN26,FN27
C    1/’FILE17’,’FILE18’,’FILE19’,’FILE20’,’FILE21’,’FILE22’,’FILE23’,
C    2’FILE24’,’FILE25’,’FILE26’,’FILE27’/
C     DATA FN31,FN32,FN33/’FILE31’,’FILE32’,’FILE33’/
      DATA FN07 /’NONMEM_WORKFILE07’/
      ...
      DATA FN33 /’NONMEM_WORKFILE33’/

6.2.3. FLUSH

The call in FLU for VMS should be

      CALL SYS$FLUSH(%VAL(FOR$RAB(I)))

6.2.4. Compiling NONMEM

The commands to compile the BLKDAT routine, the NONMEM main program, and the remaining routines, and to create a binary library, are as follows:

$ fortran/list blkdat
$ fortran/list nonmem
$ fortran/list nmd
$ library/object/create nmd.olb nmd.obj

6.3. NM-TRAN Installation (Chapter V)

Change filenames in ABLOCK as follows:

C     DATA FSTRM,FREPT,FLIB,FDATA,FWORK,FCON,FSUBS,FWARN
C    X /’FSTREAM’,’FREPORT’,’FLIB’,
C    X  ’FDATA’,’FWORK’,’FCON’,’FSUBS’,’FWARN’/
      DATA FSTRM/’NONMEM_FSTREAM.DAT’/
      DATA FREPT/’NONMEM_FREPORT.DAT’/
      DATA FLIB/’NONMEM_FLIB.DAT’/
      DATA FDATA/’NONMEM_FDATA.DAT’/
      DATA FWORK/’NONMEM_FWORK.DAT’/
      DATA FCON/’NONMEM_FCON.DAT’/
      DATA FSUBS/’NONMEM_FSUBS.FOR’/
      DATA FWARN/’NONMEM_FWARN.DAT’/

6.4. NM-TRAN Library Routines Installation (Chapter VI)

Change LSIZES.FOR as follows:

C     PARAMETER (FLIB=’FLIB’)
      PARAMETER (FLIB=’NONMEM_FLIB.DAT’)

6.5. Run-Time Tools Installation (Chapter VII)

Chapter VII suggests the use of tools NMLINK5, NMFE5 and NMFE5.BAT to run NONMEM. Here are modifications suitable for the VMS environment.

6.5.1. Nmlink5

Several changes must made to program nmlink5.for. In particular, nmlink5.for reads a file named FSUBS.DAT, which is created at run time by the nmfe5.com command procedure (see Section 5.3). FSUBS.DAT contains the full pathname for the FSUBS.FOR file. Nmlink5.for copies the contents of FSUBS.DAT to its output file (LINK.OPT) as the last line. Thus last line ends without the character "-", which is required on all lines prior to the last line, but which is not permitted on the last line. (If a full pathname to the object file is not provided, the linker assumes that the object file is in the same directory as the most recent file in the LINK.OPT list for which a full pathname was provided.)

Locate these lines:

      CHARACTER*72 TEMP,PREFIX,PATH
      OPEN (11,FILE = ’LINK.LNK’)
      PREFIX=PATH(1:LP)//S//’pr’//S
      PREFIX=PATH(1:LP)//S//’tl’//S

Change to:

      CHARACTER*72 TEMP,PREFIX,PATH,FSUBS
      OPEN (11,FILE = ’LINK.OPT’)
      PREFIX=PATH(1:LP)//’PR’//S
      PREFIX=PATH(1:LP)//’TL’//S

Locate this line:

99    END

Replace with:

99    CLOSE (10)
      OPEN(10,FILE=’FSUBS.DAT’)
      READ(10,*) FSUBS
      WRITE(11,*) FSUBS(2:)
      CLOSE (11)
      CLOSE (10)
      END

6.5.2. Path.for

A file called path.for must be created in the directory where nmlink5.for exists. It must contain the following three lines. The PATH constant as shown may need to be modified for the user’s environment.

        PATH=’DSMWS1$DKA700:[000000.NMV.’
        S=’]’
        SUF=’,-’

6.5.3. Nmfe5.com

The following code is suggested for the command file nmfe5.com that may be used to run NONMEM. It is very similar to NMFE5.BAT and NMFE5 discussed in Chapter VII, but contains code to create the file FSUBS.DAT that is needed by nmlink5.for.

The usage is:

nmfe5 infile outfile

The NM-TRAN input file must be named infile.control, and the NONMEM output report is written to outfile.lst.

$ s = "dsmws1$dka700"
$ ndir = "’’s’:[000000.nmv.nmd]"
$ n = "’’ndir’nonmem.obj, ’’ndir’blkdat.obj, ’’ndir’nmd.olb/library"
$ u = ""
$ if f$search("nonmem_fsubs.for")   .nes. "" then delete nonmem_fsubs.*;*
$ if f$search("fsubs.dat")          .nes. "" then delete fsubs.dat;*
$ if f$search("nonmem_flib.dat")    .nes. "" then delete nonmem_flib.dat;*
$ if f$search("nonmem_freport.dat") .nes. "" then delete nonmem_freport.dat;*
$ if f$search("link.opt")        .nes. "" then delete link*.opt;*
$ if f$search("nonmem.exe")         .nes. "" then delete nonmem.exe;*
$ if f$length("’’p1’") .nes. 0 then goto checko
$ write sys$output "Usage: @nmfe infile outfile"
$ exit
$ checko:
$   if f$length("’’p2’") .nes. 0 then goto checki
$   write sys$output "Usage: @nmfe infile outfile"
$   exit
$ checki:
$   if f$search("’’p1’.control") .nes. "" then goto tran
$   write sys$output "’’p1’.control does not exist"
$   exit
$ tran:
$   define for005 ’p1’.control
$   define for006 sys$output
$   run ’s’:[000000.nmv.tran]tran
$   deassign for005
$   deassign for006
$   if f$search("nonmem_fcon.dat") .eqs. "" then exit
$   open/write fsubs fsubs.dat
$   default = f$environment("default")
$   write fsubs " ’ ’’default’nonmem_fsubs ’ "
$   close fsubs
$   run ’s’:[000000.nmv.run]nmlink
$   if f$search("nonmem_fsubs.for") .nes. "" then goto comp
$   copy ’s’:[000000.nmv.run]fsubs.for nonmem_fsubs.for
$ comp:
$   fortran/list nonmem_fsubs
$   link/executable=nonmem.exe link.opt/options, ’n’
$   if f$search("nonmem.exe") .eqs. "" then goto exite
$   define for005 nonmem_fcon.dat
$   define for006 ’p2’.lst
$   define nonmem_file2 sys$output
$   write sys$output "Starting nonmem execution ..."
$   run nonmem
$   goto exit
$ exite:
$   write sys$output "No nonmem execution."
$ exit:
$   deassign for005
$   deassign for006
$   deassign nonmem_file2

TOP
TABLE OF CONTENTS