Manual Page for Command >> USER
>> USER (: anno)
This command selects a user-specified parameter. This option enables a user to estimate any
conceivable parameter which can be any TOUGH2 variable or function thereof. The user must
program the function in subroutine USERPAR, file it2user.f. Identification of and
details about the parameter can be given in the iTOUGH2 input file and will be transferred to
subroutine USERPAR. A parameter annotation anno should be provided following a colon
on the command line. This annotation (or a substring thereof) will be available in subroutine
USERPAR (variable ANNO) and can be used to identify the parameter type. The significant
part of the string should therefore not be changed by command >>>> ANNOTATION.
Furthermore, multiple material names as well as grid block or sink/source code names
defined by the corresponding third-level command will be transferred to the subroutine in
array NAMEA. Integers read after command >>>> INDEX are provided through array
IDA. A flag (variable IVLF) indicates whether the estimate is a value, logarithm, or
multiplication factor of the corresponding parameter.
The user must ensure that all TOUGH2 variables used by the function are transferred to
subroutine USERPAR via COMMON blocks. If a variable is not predefined in one of the
standard COMMON blocks, a new COMMON block must be created which and added to the
include file usercom.inc.
Subroutine USERPAR has two major blocks. In the first block (IUIG=1), the value
specified in the TOUGH2 input file is transferred to iTOUGH2 as an initial guess.
Programming this first part is optional because initial guesses can also be provided through
the iTOUGH2 input file by means of command >> GUESS, >>>> PRIOR, or >>>> GUESS.
Programming the second part (IUIG=2) is mandatory. In this part, the parameter is updated,
i.e., the generic parameter value calculated by iTOUGH2, which is stored in variable XX,
must be assigned to the appropriate TOUGH2 variable.
In this simple example, the tortuosity factor (TOUGH2 variable TORT(NMAT)) is treated as
a user-specified parameter. Variable TORT is provided through COMMON block SOLI11 in
include file rock.inc.
>> USER-specified parameter: TORTUOSITY
>>> MATERIAL: SAND1
Additional examples can be found in file it2user.f .
Back to Command Index
Page updated: July 25, 1997