___________________________________________________________________
 |                                                                 |
 |                                NMPRD4                           |
 |_________________________________________________________________|

 MEANING: NONMEM-PRED common
 CONTEXT: User-supplied routines

 USAGE:
 COMMON /NMPRD4/ v1, v2, ..., vn
 (If double precision is to be used):
 DOUBLE PRECISION v1,v2, ..., vn
 (If single precision is to be used):
 REAL v1,v2, ..., vn

 DISCUSSION:
 v1, v2, ... , vn are the names of the variables in  the  common.   Any
 PRED-defined  variables  (including PK-defined and ERROR-defined vari-
 ables) may be listed in this common.  This may be done for  communica-
 tion  with  other  user-written codes, or so that NONMEM has access to
 these   variables   for   display   in   tables    or    scatterplots.
 (See $table, $scatter).   Values  are stored by PRED. A SAVE region of
 NMPRD4 may be designated; (See nmprd3).  The length of NMPRD4 is 1000,
 but  this may be changed when NONMEM is compiled.  It may be necessary
 to "pad" the common to the same size as in NONMEM if the  user's  com-
 piler  considers  a  discrepancy in the size of a common to be a fatal
 error.  See below for the way this is done by NM-TRAN.

 When abbreviated code is used, by  default  NM-TRAN  lists  all  PRED-
 defined  variables  in  the common, as well as certain NM-TRAN-defined
 variables which give the values of partial derivatives.  Comment lines
 in  the  generated  code  (file FSUBS) identify these variables.  This
 makes the listed variables globally accessible to all blocks of abbre-
 viated  code,  which  may not be desirable, and which can also lead to
 difficulties with array sizes in NM-TRAN.  (An exception is  made  for
 initialization-finalization  variables;  these  are PRED-defined vari-
 ables that are first defined within a block that tests for ICALL 0, 1,
 3.   Such variables are stored locally and will not be changed by NON-
 MEM at ICALL 2 or 4).

 Variables from a given block of abbreviated code can be excluded  from
 the common by including the following pseudo-statement in that block:
 COMRES=-1
 Variables from all blocks of abbreviated code can be excluded from the
 common  by including the identical option (COMRES=-1) on the $ABBREVI-
 ATED record.

 NM-TRAN includes in the generated routines extra  variables  to  "pad"
 the common to the appropriate size. E.g.,
       COMMON/NMPRD4/KA,K,V,S2,Y,BBBBBB(0995)

 When verbatim  code  is  present,  or  when  the  $ABBREVIATED  record
 includes  the  COMRES  option to reserve a portion of the common, then
 NM-TRAN also includes the following code in generated subroutines:
 DIMENSION COM(1000)
 EQUIVALENCE (COM(1),v1)
 This allows explicit reference to the reserved elements of the  common
 in  abbreviated  code,  and  to all elements of the common in verbatim
 code.

REFERENCES: Guide III Section III.2.9.3, III.2.9.4, V.2.7, VI.2.1.2
REFERENCES: Guide IV Section III.B.7, III.B.16, III.B.17, IV.H, V.C.5-9
REFERENCES: Guide VI Section III.J, III.L.2, IV.E, IV.G.4, Figure 5, Figure 14


  
Go to main index.
  
Created by nmhelp2html v. 1.0 written by Niclas Jonsson (Modified by AJB 5/2006,11/2007)