Subroutines snset, snseti, snsetr

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.