Procedures for example_web.
This routine sets the ID array in iwork
, indicating which components are differential
and which are algebraic.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | mx | |||
integer, | intent(in) | :: | my | |||
integer, | intent(in) | :: | ns | |||
integer, | intent(in) | :: | nsd | |||
integer, | intent(in) | :: | lid | |||
integer, | intent(inout) | :: | iwork(*) |
This routine computes and loads the vectors of initial values.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(out) | :: | c(:) | |||
real(kind=rk), | intent(out) | :: | cdot(:) | |||
real(kind=rk), | intent(in) | :: | pred_ic | |||
real(kind=rk), | intent(inout) | :: | rpar(:) |
This routine prints the values of the individual species densities at the current time
t
, to logical unit lout
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in) | :: | t | |||
real(kind=rk), | intent(in) | :: | c(ns,mx,my) | |||
integer, | intent(in) | :: | ns | |||
integer, | intent(in) | :: | mx | |||
integer, | intent(in) | :: | my | |||
integer, | intent(in) | :: | lout |
This routine computes the residuals vector, using subroutine f
for the right-hand
sides.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in) | :: | t | |||
real(kind=rk), | intent(in) | :: | c(*) | |||
real(kind=rk), | intent(in) | :: | cdot(*) | |||
real(kind=rk), | intent(in) | :: | cj | |||
real(kind=rk), | intent(out) | :: | delta(*) | |||
integer, | intent(inout) | :: | ires | |||
real(kind=rk), | intent(inout) | :: | rpar(*) | |||
integer, | intent(inout) | :: | ipar(*) |
This routine interfaces to subroutines jac_rbdpre or jac_rbgpre, depending on the
flag jbg = ipar(2)
, to generate and preprocess the block-diagonal Jacobian corresponding
to the reaction term.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
procedure(res_t) | :: | res | ||||
integer, | intent(out) | :: | ires | |||
integer, | intent(in) | :: | neq | |||
real(kind=rk), | intent(in) | :: | t | |||
real(kind=rk), | intent(inout) | :: | c(*) | |||
real(kind=rk), | intent(in) | :: | cdot(*) | |||
real(kind=rk), | intent(in) | :: | rewt(*) | |||
real(kind=rk), | intent(inout) | :: | savr(*) | |||
real(kind=rk), | intent(inout) | :: | wk(*) | |||
real(kind=rk), | intent(in) | :: | h | |||
real(kind=rk), | intent(in) | :: | cj | |||
real(kind=rk), | intent(inout) | :: | rwp(*) | |||
integer, | intent(inout) | :: | iwp(*) | |||
integer, | intent(inout) | :: | ierr | |||
real(kind=rk), | intent(inout) | :: | rpar(*) | |||
integer, | intent(inout) | :: | ipar(*) |
This routine applies the inverse of a product preconditioner matrix to the vector in the
array b
. Depending on the flag jpre
, this involves a call to gauss_seidel
, for the
inverse of the spatial factor, and/or a call to psol_rbdpre or psol_rbgpre for the
inverse of the reaction-based factor .
If jbg == 0
, the latter factor does not use block-grouping and jac_rbdpre is called.
Otherwise, if jbg == 1
, block-grouping is used and jac_rbgpre is called. The array
b
is overwritten with the solution.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | neq | |||
real(kind=rk), | intent(in) | :: | t | |||
real(kind=rk), | intent(in) | :: | c(*) | |||
real(kind=rk), | intent(in) | :: | cdot(*) | |||
real(kind=rk), | intent(in) | :: | savr(*) | |||
real(kind=rk), | intent(inout) | :: | wk(*) | |||
real(kind=rk), | intent(in) | :: | cj | |||
real(kind=rk), | intent(in) | :: | wght(*) | |||
real(kind=rk), | intent(inout) | :: | rwp(*) | |||
integer, | intent(inout) | :: | iwp(*) | |||
real(kind=rk), | intent(inout) | :: | b(*) | |||
real(kind=rk), | intent(in) | :: | epslin | |||
integer, | intent(inout) | :: | ierr | |||
real(kind=rk), | intent(inout) | :: | rpar(*) | |||
integer, | intent(inout) | :: | ipar(*) |
This routine computes the spatial average value of .
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in) | :: | c(*) | |||
real(kind=rk), | intent(out) | :: | c1ave |
Roots routine.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | neq | |||
real(kind=rk), | intent(in) | :: | t | |||
real(kind=rk), | intent(in) | :: | c(neq) | |||
real(kind=rk), | intent(in) | :: | cdot(neq) | |||
integer, | intent(in) | :: | nrt | |||
real(kind=rk), | intent(out) | :: | rval(nrt) | |||
real(kind=rk), | intent(in) | :: | rpar(*) | |||
integer, | intent(in) | :: | ipar(*) |