___________________________________________________________________
| |
| WRITE PRINT |
|_________________________________________________________________|
MEANING: FORTRAN statements
CONTEXT: Abbreviated code
SAMPLE:
WRITE (50,*) 99,ID,CL,THETA(1),ETA(1)
IF (ICALL.EQ.3) THEN
WRITE (55,2) BIAS
ENDIF
DISCUSSION:
Certain forms of FORTRAN WRITE, PRINT, OPEN, CLOSE, and REWIND state-
ments may be used anywhere in $PRED, $INFN, $PK, $ERROR, $DES, $AES,
$AESINITIAL blocks.
PRINT list ...
PRINT *,list ...
WRITE (unit,format) list ...
WRITE (*,format) list ...
WRITE (unit,*) list ...
WRITE (*,*) list ...
OPEN(unit)
OPEN(unit,FILE=filename)
CLOSE(unit)
REWIND(unit)
Single or double quotes around the filename are optional. However, if
the filename contains commas, semicolons, or parentheses, then it must
be surrounded by single quotes ' or double quotes ". Filename may
also contain equal signs if it is enclosed in quotes.
If the file is opened by NM-TRAN, filename may contain embedded spaces |
if it is enclosed in quotes, and may contain at most 80 characters. |
If the file is opened by NONMEM, filename may not contain embedded |
spaces, and may contain at most 71 characters. |
unit
6, n or *.
6 indicates the unit connected to the NONMEM output file
n indicates the number of an alternative unit (40<n<100).
* indicates a FORTRAN system-dependent output (with most sys-
tems, this is equivalent to using unit 6, but see the FORTRAN
documentation) With OPEN, CLOSE and REWIND, the unit may not be
6 or *.
format
*, 1, 2, 991, or 992.
* indicates list-directed output. (FORTRAN library routines
will select a format appropriate for the current run-time value
of the quantity when displayed.)
1 or 991 requests the built-in format specification:
991 FORMAT (35F14.4)
2 or 992 requests the built-in format specification:
992 FORMAT (35E15.7)
(Format specification numbers 991 and 992 are used in generated
code to avoid conflict with statement numbers arising from DO
WHILE statements. The one digit versions are perhaps easier to
remember.)
(No integer format specification is provided because constants
are stored as floating point variables in generated and library
routines.)
list
A list of one or more right-hand quantities, i.e., variables or
constants that may appear on the right in abbreviated code. May
not include expressions or names of abbreviated functions. When
subscripts are appropriate, these must be integer constants.
With a PRINT statement, a list may also include character con-
stants. A character constant is delimited by single or double
quotes (' or "). As with any Fortran character constant, a pair
of adjacent delimiters within the constant represents a single
character. E.g., PRINT *,'A isn''t B' will appear in the output
as:
A isn't B
In an initialization or finalization block, a list may include
elements of the OMEGA and SIGMA arrays. In a finalization block,
a list may include elements of the standard error arrays
(SETHET,SEOMEG and SESIGM).
Any array whose elements may be listed individually in a WRITE or
PRINT statement may also be written in its entirety, by listing
it without any subscripts. Specifically, one or more of the fol-
lowing may be included in a list:
THETA SETHET THSIMP
ETA
OMEGA(BLOCK) OMEGA(DIAG) SEOMEG(BLOCK) SEOMEG(DIAG)
OMSIMP(BLOCK) OMSIMP(DIAG)
SIGMA(BLOCK) SIGMA(DIAG) SESIGM(BLOCK) SESIGM(DIAG)
SGSIMP(BLOCK) SGSIMP(DIAG)
IIDX CNTID IIDX,CNTID |
Note that IIDX and CNTID are arrays in ROCM50. When "IIDX" or "CNTID" |
is listed, then only that array is written. When "IIDX,CNTID" is |
specified, then pairs of values are written, one pair per line, one |
pair for each individual record. |
The option BLOCK requests that the entire array be written in full
symmetric form. The option DIAG requests that only the diagonal ele-
ments be written. DIAG may also be coded DIAGONAL. Arrays of possi-
bly different sizes (e.g., OMEGA and SIGMA) may not be listed together
in the same WRITE statement. If a WRITE statement requests that an
entire array be written, then the only other items that may be listed
with the statement are other entire arrays.
When entire arrays are written, the format specification with a
WRITE statement must be *. With either a WRITE or PRINT state-
ment, an appropriate format is created by the NONMEM system.
With these formats, elements of the standard error arrays that do
not exist have the value 1E10 and are printed as 0.1000000E+11.
(Such elements appear in NONMEM output as dots (.........).) If
the covariance step fails or is not requested, all elements of
the standard error arrays are 0 and are printed as 0.0000000E+00.
Example: To write the omega matrix and its standard errors in
symmetric form code the following. (Only as many elements will
be written as are appropriate for the dimension of omega in the
problem.)
IF (ICALL.EQ.3) WRITE (99,*) OMEGA(BLOCK),SEOMEG(BLOCK)
A list may also include a vector element or the entire vector (by
listing the vector without a subscript).
The OPEN, CLOSE, and REWIND statements are part of the FORTRAN
language. For details (i.e., the relationship of external files to
units), see the Language Reference Manual and the Users Guide for your
compiler.
REFERENCES: None.
Go to main index.
Created by nmhelp2html v. 1.0 written by Niclas Jonsson (Modified by AJB 5/2006,11/2007)