This routine performs preprocessing related to the sparse linear systems that must be solved if MITER = 1 or 2.
The operations that are performed here are:
In addition to variables described previously, DPREP uses the following for communication:
the history array. Only the first column, containing the current Y vector, is used. Used only if MOSS .ne. 0.
a work array of length NEQ, used only if MOSS .ne. 0.
array of length NEQ containing (inverted) error weights. Used only if MOSS = 2 or if ISTATE = MOSS = 1.
a work array of length NEQ, identical to ACOR in the driver, used only if MOSS = 2.
a real work array of length LENWK, identical to WM in the driver.
integer work array, assumed to occupy the same space as WK.
the length of the work arrays WK and IWK.
a copy of the driver input argument ISTATE (= 1 on the first call, = 3 on a continuation call).
flag value from ODRV or CDRV.
output error flag with the following values and meanings: 0 no error. -1 insufficient storage for internal structure pointers. -2 insufficient storage for JGROUP. -3 insufficient storage for ODRV. -4 other error flag from ODRV (should never occur). -5 insufficient storage for CDRV. -6 other error flag from CDRV.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | Neq(*) | ||||
real(kind=dp), | intent(inout) | :: | Y(*) | |||
real(kind=dp), | intent(in) | :: | Yh(*) | |||
real(kind=dp), | intent(inout) | :: | Savf(*) | |||
real(kind=dp), | intent(in) | :: | Ewt(*) | |||
real(kind=dp) | :: | Ftem(*) | ||||
integer, | intent(in) | :: | Ia(*) | |||
integer, | intent(in) | :: | Ja(*) | |||
real(kind=dp) | :: | Wk(*) | ||||
integer, | intent(inout) | :: | Iwk(*) | |||
integer, | intent(out) | :: | Ipper | |||
real | :: | f | ||||
integer | :: | jac |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public, | parameter | :: | dp | = | kind(0.0d0) | |
real(kind=dp), | public | :: | dq | ||||
real(kind=dp), | public | :: | dyj | ||||
real(kind=dp), | public | :: | erwt | ||||
real(kind=dp), | public | :: | fac | ||||
integer, | public | :: | i | ||||
integer, | public | :: | ibr | ||||
integer, | public | :: | ier | ||||
integer, | public | :: | ipil | ||||
integer, | public | :: | ipiu | ||||
integer, | public | :: | iptt1 | ||||
integer, | public | :: | iptt2 | ||||
integer, | public | :: | j | ||||
integer, | public | :: | jfound | ||||
integer, | public | :: | k | ||||
integer, | public | :: | kmax | ||||
integer, | public | :: | kmin | ||||
integer, | public | :: | knew | ||||
integer, | public | :: | ldif | ||||
integer, | public | :: | lenigp | ||||
integer, | public | :: | liwk | ||||
integer, | public | :: | maxg | ||||
integer, | public | :: | np1 | ||||
integer, | public | :: | nzsut | ||||
real(kind=dp), | public | :: | yj |