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) | :: | ierr | |||
| real(kind=rk), | intent(inout) | :: | rpar(*) | |||
| integer, | intent(inout) | :: | ipar(*) |
This routine interfaces to subroutines pjac_rbdpre or pjac_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) | :: | ierr_res | |||
| 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_pjac | |||
| 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 pjac_rbdpre is
called. Otherwise, if jbg == 1, block-grouping is used and pjac_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(*) |