web_m Module

Procedures for example_web.


Uses

  • module~~web_m~~UsesGraph module~web_m web_m module~daskr_kinds daskr_kinds module~web_m->module~daskr_kinds iso_fortran_env iso_fortran_env module~daskr_kinds->iso_fortran_env

Used by

  • module~~web_m~~UsedByGraph module~web_m web_m program~example_web example_web program~example_web->module~web_m

Functions

public function to_string(value) result(string)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: value

Return Value character(len=:), allocatable


Subroutines

public pure subroutine setid(mx, my, ns, nsd, lid, iwork)

This routine sets the ID array in iwork, indicating which components are differential and which are algebraic.

Arguments

Type IntentOptional 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(*)

public pure subroutine cinit(c, cprime, pred_ic, rpar)

This routine computes and loads the vectors of initial values.

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(out) :: c(:)
real(kind=rk), intent(out) :: cprime(:)
real(kind=rk), intent(in) :: pred_ic
real(kind=rk), intent(inout) :: rpar(:)

public impure subroutine out(t, c, ns, mx, my, lout)

This routine prints the values of the individual species densities at the current time t, to logical unit lout.

Arguments

Type IntentOptional 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

public pure subroutine res(t, c, cprime, cj, delta, ires, rpar, ipar)

This routine computes the residuals vector, using subroutine f for the right-hand sides.

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in) :: t
real(kind=rk), intent(in) :: c(*)
real(kind=rk), intent(in) :: cprime(*)
real(kind=rk), intent(in) :: cj
real(kind=rk), intent(out) :: delta(*)
integer, intent(in) :: ires
real(kind=rk), intent(inout) :: rpar(*)
integer, intent(in) :: ipar(*)

public pure subroutine f(t, c, cprime, rpar)

This routine computes the right-hand sides of all the equations and returns them in the array cprime. The interaction rates are computed by calls to rates, and these are saved in rpar for later use in preconditioning.

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in) :: t
real(kind=rk), intent(in) :: c(*)
real(kind=rk), intent(out) :: cprime(*)
real(kind=rk), intent(inout) :: rpar(*)

public pure subroutine rates(t, jx, jy, c, rate)

This routine computes one block of the rate term of the system , namely block (jx, jy), for use in preconditioning.

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in) :: t
integer, intent(in) :: jx
integer, intent(in) :: jy
real(kind=rk), intent(in) :: c(*)
real(kind=rk), intent(inout) :: rate(*)

public subroutine jacrs(res_, ires, neq, t, c, cprime, rewt, savr, wk, h, cj, wp, iwp, ier, rpar, ipar)

This routine interfaces to subroutines DRBDJA or DRBGJA, depending on the flag jbg=ipar(2), to generate and preprocess the block-diagonal Jacobian corresponding to the reaction term .

Read more…

Arguments

Type IntentOptional Attributes Name
real :: res_
integer, intent(in) :: ires
integer, intent(in) :: neq
real(kind=rk), intent(in) :: t
real(kind=rk), intent(in) :: c(*)
real(kind=rk), intent(in) :: cprime(*)
real(kind=rk), intent(in) :: rewt(*)
real(kind=rk), intent(in) :: savr(*)
real(kind=rk), intent(in) :: wk(*)
real(kind=rk), intent(in) :: h
real(kind=rk), intent(in) :: cj
real(kind=rk), intent(in) :: wp(*)
integer, intent(in) :: iwp(*)
integer, intent(in) :: ier
real(kind=rk), intent(in) :: rpar(*)
integer, intent(in) :: ipar(*)

public subroutine psolrs(neq, t, cc, ccprime, savr, wk, cj, wt, wp, iwp, b, eplin, ier, rpar, 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 gs, for the inverse of the spatial factor, and/or a call to DRBDPS or DRBGPS for the inverse of the reaction-based factor (cj*I_d - dR/dy). The latter factor uses block-grouping (with a call to DRBGPS) if jbg == 1, and does not (with a call to DRBDPS) if jbg == 0. the flag jbg is passed as ipar(2). The array b is overwritten with the solution.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: neq
real(kind=rk), intent(in) :: t
real(kind=rk), intent(in) :: cc(*)
real(kind=rk), intent(in) :: ccprime(*)
real(kind=rk), intent(in) :: savr(*)
real(kind=rk), intent(inout) :: wk(*)
real(kind=rk), intent(in) :: cj
real(kind=rk), intent(in) :: wt(*)
real(kind=rk), intent(in) :: wp(*)
integer, intent(in) :: iwp(*)
real(kind=rk), intent(inout) :: b(*)
real(kind=rk), intent(in) :: eplin
integer, intent(inout) :: ier
real(kind=rk), intent(inout) :: rpar(*)
integer, intent(in) :: ipar(*)

public pure subroutine gauss_seidel(n, hl0, z, x)

This routine provides the inverse of the spatial factor for a product preconditoner in an ns-species reaction-diffusion problem. It performs itmax Gauss-Seidel iterations to compute an approximation to , where , and represents the diffusion contributions to the Jacobian. The solution vector is returned in z.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n
real(kind=rk), intent(in) :: hl0
real(kind=rk), intent(inout) :: z(*)
real(kind=rk), intent(inout) :: x(*)

public pure subroutine c1_average(c, c1ave)

This routine computes the spatial average value of .

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in) :: c(*)
real(kind=rk), intent(out) :: c1ave

public pure subroutine rt(neq, t, c, cprime, nrt, rval, rpar, ipar)

Roots routine.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: neq
real(kind=rk), intent(in) :: t
real(kind=rk), intent(in) :: c(neq)
real(kind=rk), intent(in) :: cprime(neq)
integer, intent(in) :: nrt
real(kind=rk), intent(out) :: rval(nrt)
real(kind=rk), intent(in) :: rpar(*)
integer, intent(in) :: ipar(*)