These routines specify a single option that might otherwise be defined in one line of a SPECS file.
|
|
subroutine snset ( |
buffer, iPrint, iSumm, inform, |
|
$ |
|
cw, lencw, iw, leniw, rw, lenrw ) |
|
|
subroutine snseti( |
buffer, ivalue, iPrint, iSumm, inform, |
|
$ |
|
cw, lencw, iw, leniw, rw, lenrw ) |
|
|
subroutine snsetr( |
buffer, rvalue, iPrint, iSumm, inform, |
|
$ |
|
cw, lencw, iw, leniw, rw, lenrw ) |
|
|
|
|
|
|
character*(*) |
buffer |
|
|
integer |
ivalue, iPrint, iSumm, inform |
|
|
double precision |
rvalue |
|
|
integer |
lencw, leniw, lenrw |
|
|
character*8 |
cw(lencw) |
|
|
integer |
iw(leniw) |
|
|
double precision |
rw(lenrw) |
On entry:
buffer is a string to be decoded. Use snset if the string contains all relevant data.
For example, if the value 1000 is known at compile time, say
call snset ( 'Iterations 1000', iPrint, iSumm, inform, ... )
Restriction: len(buffer)
72 (snset) or
55 (snseti
and snsetr).
ivalue
is an integer value associated with the keyword in buffer.
Use snseti
if it is convenient to define
the value at run time.
For example, the following allows the iterations limit to be computed:
itnlim
= 1000
if (m .gt. 500) itnlim = 8000
call snseti( 'Iterations', itnlim, iPrint, iSumm, inform, ... )
rvalue
is a real value associated with the keyword in buffer.
The following illustrates how the LU stability tolerance could be defined
at run time:
factol
= 100.0d+0
if ( illcon ) factol = 5.0d+0
call snsetr( 'LU factor tol', factol, iPrint, iSumm, inform, ...)
iPrint is a file number for printing each line of data, along with any error messages. iPrint = 0 suppresses this output.
iSumm is a file number for printing any error messages. iSumm = 0 suppresses this output.
inform should be 0 for the first call to the snset routines.
On exit:
inform is the number of errors encountered so far.
cw(lencw), iw(leniw), rw(lenrw) record the specified option.