+--------------------------------------------------------------------+
| |
| INFN-DEFINED VARIABLES |
| |
+--------------------------------------------------------------------+
MEANING: INFN-defined global variables
CONTEXT: User-supplied routines
USAGE:
MODULE INFNP
USE PRINFN, ONLY: TLCOM=>ITV
END MODULE INFNP
GLOBAL DECLARATION:
MODULE PRINFN
USE SIZES, ONLY : DPSIZE,DIMTMP
IMPLICIT NONE
SAVE
REAL(KIND=DPSIZE), TARGET, DIMENSION (DIMTMP):: ITV
END MODULE PRINFN
DISCUSSION:
PRINFN is a module for INFN-defined variables. It contains an array
ITV. (TLCOM is suggested above as an alternate to the name ITV to be
consistent with generated code, but this is optional.) Variables
are stored in PRINFN for communication with other other blocks of
abbreviated code or with user-written codes. These are variables
defined first in $INFN or in $PK-INFN or $ERROR-INFN blocks. Module
PRINFN is declared in all generated routines PK, ERROR, etc., and the
variables can be used as right-hand quantities in these routines.
INFN-defined variables are not initialized or modified by NONMEM or
PREDPP. Hence the variables in the module may be initialized or modi-
fied at ICALL values 0 or 1 or 3, and will retain whatever values they
are given. These variables cannot be displayed in tables or scatter-
plots. If they are to be displayed, WRITE statements can be used, or
their values can be assigned to variables that are listed in module
NMPRD4. (See PRED-defined_variables).
Variables from PRINFN can be used in a user-written code. MODULE INFNP
must be defined as above prior to the SUBROUTINE statement. The vari-
ables have names TLCOM(1), TLCOM(2), etc.
E.g., X=TLCOM(1)/TLCOM(2). It is possible to give the variables the
same (non-subscripted) names that they had in $INFN. Suppose variables
X1 and X2 are used in $INFN, and the following is present in the gen-
erated INFN routine:
X1=>TLCOM(00001); X2=>TLCOM(00002)
In the user-written code, after the last declaraction, include:
POINTER :: X1,X2
Prior to the first executable statement, include:
X1=>TLCOM(1); X2=>TLCOM(2)
Now the code is X=X1/X2.
Code generated by NM-TRAN is somewhat more complex, but achieves the
same result.
REFERENCES: None.
Go to main index.
Created by nmhelp2html v. 1.0 written by Niclas Jonsson (Modified by AJB 5/2006,11/2007,10/2012)