Modern Fortran Edition of the DOP853 ODE Solver.
The default real kind (wp
) can be
changed using optional preprocessor flags.
This library was built with real kind:
real(kind=real64)
[8 bytes]
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public, | parameter | :: | dop853_wp | = | real64 |
real kind used by this module [8 bytes] |
integer, | private, | parameter | :: | wp | = | dop853_wp |
local copy of |
real(kind=wp), | private, | parameter | :: | uround | = | epsilon(1.0_wp) |
machine |
real(kind=wp), | private, | parameter | :: | c2 | = | 0.526001519587677318785587544488e-01_wp | |
real(kind=wp), | private, | parameter | :: | c3 | = | 0.789002279381515978178381316732e-01_wp | |
real(kind=wp), | private, | parameter | :: | c4 | = | 0.118350341907227396726757197510_wp | |
real(kind=wp), | private, | parameter | :: | c5 | = | 0.281649658092772603273242802490_wp | |
real(kind=wp), | private, | parameter | :: | c6 | = | 0.333333333333333333333333333333_wp | |
real(kind=wp), | private, | parameter | :: | c7 | = | 0.25_wp | |
real(kind=wp), | private, | parameter | :: | c8 | = | 0.307692307692307692307692307692_wp | |
real(kind=wp), | private, | parameter | :: | c9 | = | 0.651282051282051282051282051282_wp | |
real(kind=wp), | private, | parameter | :: | c10 | = | 0.6_wp | |
real(kind=wp), | private, | parameter | :: | c11 | = | 0.857142857142857142857142857142_wp | |
real(kind=wp), | private, | parameter | :: | c14 | = | 0.1_wp | |
real(kind=wp), | private, | parameter | :: | c15 | = | 0.2_wp | |
real(kind=wp), | private, | parameter | :: | c16 | = | 0.777777777777777777777777777778_wp | |
real(kind=wp), | private, | parameter | :: | b1 | = | 5.42937341165687622380535766363e-2_wp | |
real(kind=wp), | private, | parameter | :: | b6 | = | 4.45031289275240888144113950566_wp | |
real(kind=wp), | private, | parameter | :: | b7 | = | 1.89151789931450038304281599044_wp | |
real(kind=wp), | private, | parameter | :: | b8 | = | -5.8012039600105847814672114227_wp | |
real(kind=wp), | private, | parameter | :: | b9 | = | 3.1116436695781989440891606237e-1_wp | |
real(kind=wp), | private, | parameter | :: | b10 | = | -1.52160949662516078556178806805e-1_wp | |
real(kind=wp), | private, | parameter | :: | b11 | = | 2.01365400804030348374776537501e-1_wp | |
real(kind=wp), | private, | parameter | :: | b12 | = | 4.47106157277725905176885569043e-2_wp | |
real(kind=wp), | private, | parameter | :: | bhh1 | = | 0.244094488188976377952755905512_wp | |
real(kind=wp), | private, | parameter | :: | bhh2 | = | 0.733846688281611857341361741547_wp | |
real(kind=wp), | private, | parameter | :: | bhh3 | = | 0.220588235294117647058823529412e-1_wp | |
real(kind=wp), | private, | parameter | :: | er1 | = | 0.1312004499419488073250102996e-01_wp | |
real(kind=wp), | private, | parameter | :: | er6 | = | -0.1225156446376204440720569753e+01_wp | |
real(kind=wp), | private, | parameter | :: | er7 | = | -0.4957589496572501915214079952_wp | |
real(kind=wp), | private, | parameter | :: | er8 | = | 0.1664377182454986536961530415e+01_wp | |
real(kind=wp), | private, | parameter | :: | er9 | = | -0.3503288487499736816886487290_wp | |
real(kind=wp), | private, | parameter | :: | er10 | = | 0.3341791187130174790297318841_wp | |
real(kind=wp), | private, | parameter | :: | er11 | = | 0.8192320648511571246570742613e-01_wp | |
real(kind=wp), | private, | parameter | :: | er12 | = | -0.2235530786388629525884427845e-01_wp | |
real(kind=wp), | private, | parameter | :: | a21 | = | 5.26001519587677318785587544488e-2_wp | |
real(kind=wp), | private, | parameter | :: | a31 | = | 1.97250569845378994544595329183e-2_wp | |
real(kind=wp), | private, | parameter | :: | a32 | = | 5.91751709536136983633785987549e-2_wp | |
real(kind=wp), | private, | parameter | :: | a41 | = | 2.95875854768068491816892993775e-2_wp | |
real(kind=wp), | private, | parameter | :: | a43 | = | 8.87627564304205475450678981324e-2_wp | |
real(kind=wp), | private, | parameter | :: | a51 | = | 2.41365134159266685502369798665e-1_wp | |
real(kind=wp), | private, | parameter | :: | a53 | = | -8.84549479328286085344864962717e-1_wp | |
real(kind=wp), | private, | parameter | :: | a54 | = | 9.24834003261792003115737966543e-1_wp | |
real(kind=wp), | private, | parameter | :: | a61 | = | 3.7037037037037037037037037037e-2_wp | |
real(kind=wp), | private, | parameter | :: | a64 | = | 1.70828608729473871279604482173e-1_wp | |
real(kind=wp), | private, | parameter | :: | a65 | = | 1.25467687566822425016691814123e-1_wp | |
real(kind=wp), | private, | parameter | :: | a71 | = | 3.7109375e-2_wp | |
real(kind=wp), | private, | parameter | :: | a74 | = | 1.70252211019544039314978060272e-1_wp | |
real(kind=wp), | private, | parameter | :: | a75 | = | 6.02165389804559606850219397283e-2_wp | |
real(kind=wp), | private, | parameter | :: | a76 | = | -1.7578125e-2_wp | |
real(kind=wp), | private, | parameter | :: | a81 | = | 3.70920001185047927108779319836e-2_wp | |
real(kind=wp), | private, | parameter | :: | a84 | = | 1.70383925712239993810214054705e-1_wp | |
real(kind=wp), | private, | parameter | :: | a85 | = | 1.07262030446373284651809199168e-1_wp | |
real(kind=wp), | private, | parameter | :: | a86 | = | -1.53194377486244017527936158236e-2_wp | |
real(kind=wp), | private, | parameter | :: | a87 | = | 8.27378916381402288758473766002e-3_wp | |
real(kind=wp), | private, | parameter | :: | a91 | = | 6.24110958716075717114429577812e-1_wp | |
real(kind=wp), | private, | parameter | :: | a94 | = | -3.36089262944694129406857109825_wp | |
real(kind=wp), | private, | parameter | :: | a95 | = | -8.68219346841726006818189891453e-1_wp | |
real(kind=wp), | private, | parameter | :: | a96 | = | 2.75920996994467083049415600797e+1_wp | |
real(kind=wp), | private, | parameter | :: | a97 | = | 2.01540675504778934086186788979e+1_wp | |
real(kind=wp), | private, | parameter | :: | a98 | = | -4.34898841810699588477366255144e+1_wp | |
real(kind=wp), | private, | parameter | :: | a101 | = | 4.77662536438264365890433908527e-1_wp | |
real(kind=wp), | private, | parameter | :: | a104 | = | -2.48811461997166764192642586468_wp | |
real(kind=wp), | private, | parameter | :: | a105 | = | -5.90290826836842996371446475743e-1_wp | |
real(kind=wp), | private, | parameter | :: | a106 | = | 2.12300514481811942347288949897e+1_wp | |
real(kind=wp), | private, | parameter | :: | a107 | = | 1.52792336328824235832596922938e+1_wp | |
real(kind=wp), | private, | parameter | :: | a108 | = | -3.32882109689848629194453265587e+1_wp | |
real(kind=wp), | private, | parameter | :: | a109 | = | -2.03312017085086261358222928593e-2_wp | |
real(kind=wp), | private, | parameter | :: | a111 | = | -9.3714243008598732571704021658e-1_wp | |
real(kind=wp), | private, | parameter | :: | a114 | = | 5.18637242884406370830023853209_wp | |
real(kind=wp), | private, | parameter | :: | a115 | = | 1.09143734899672957818500254654_wp | |
real(kind=wp), | private, | parameter | :: | a116 | = | -8.14978701074692612513997267357_wp | |
real(kind=wp), | private, | parameter | :: | a117 | = | -1.85200656599969598641566180701e+1_wp | |
real(kind=wp), | private, | parameter | :: | a118 | = | 2.27394870993505042818970056734e+1_wp | |
real(kind=wp), | private, | parameter | :: | a119 | = | 2.49360555267965238987089396762_wp | |
real(kind=wp), | private, | parameter | :: | a1110 | = | -3.0467644718982195003823669022_wp | |
real(kind=wp), | private, | parameter | :: | a121 | = | 2.27331014751653820792359768449_wp | |
real(kind=wp), | private, | parameter | :: | a124 | = | -1.05344954667372501984066689879e+1_wp | |
real(kind=wp), | private, | parameter | :: | a125 | = | -2.00087205822486249909675718444_wp | |
real(kind=wp), | private, | parameter | :: | a126 | = | -1.79589318631187989172765950534e+1_wp | |
real(kind=wp), | private, | parameter | :: | a127 | = | 2.79488845294199600508499808837e+1_wp | |
real(kind=wp), | private, | parameter | :: | a128 | = | -2.85899827713502369474065508674_wp | |
real(kind=wp), | private, | parameter | :: | a129 | = | -8.87285693353062954433549289258_wp | |
real(kind=wp), | private, | parameter | :: | a1210 | = | 1.23605671757943030647266201528e+1_wp | |
real(kind=wp), | private, | parameter | :: | a1211 | = | 6.43392746015763530355970484046e-1_wp | |
real(kind=wp), | private, | parameter | :: | a141 | = | 5.61675022830479523392909219681e-2_wp | |
real(kind=wp), | private, | parameter | :: | a147 | = | 2.53500210216624811088794765333e-1_wp | |
real(kind=wp), | private, | parameter | :: | a148 | = | -2.46239037470802489917441475441e-1_wp | |
real(kind=wp), | private, | parameter | :: | a149 | = | -1.24191423263816360469010140626e-1_wp | |
real(kind=wp), | private, | parameter | :: | a1410 | = | 1.5329179827876569731206322685e-1_wp | |
real(kind=wp), | private, | parameter | :: | a1411 | = | 8.20105229563468988491666602057e-3_wp | |
real(kind=wp), | private, | parameter | :: | a1412 | = | 7.56789766054569976138603589584e-3_wp | |
real(kind=wp), | private, | parameter | :: | a1413 | = | -8.298e-3_wp | |
real(kind=wp), | private, | parameter | :: | a151 | = | 3.18346481635021405060768473261e-2_wp | |
real(kind=wp), | private, | parameter | :: | a156 | = | 2.83009096723667755288322961402e-2_wp | |
real(kind=wp), | private, | parameter | :: | a157 | = | 5.35419883074385676223797384372e-2_wp | |
real(kind=wp), | private, | parameter | :: | a158 | = | -5.49237485713909884646569340306e-2_wp | |
real(kind=wp), | private, | parameter | :: | a1511 | = | -1.08347328697249322858509316994e-4_wp | |
real(kind=wp), | private, | parameter | :: | a1512 | = | 3.82571090835658412954920192323e-4_wp | |
real(kind=wp), | private, | parameter | :: | a1513 | = | -3.40465008687404560802977114492e-4_wp | |
real(kind=wp), | private, | parameter | :: | a1514 | = | 1.41312443674632500278074618366e-1_wp | |
real(kind=wp), | private, | parameter | :: | a161 | = | -4.28896301583791923408573538692e-1_wp | |
real(kind=wp), | private, | parameter | :: | a166 | = | -4.69762141536116384314449447206_wp | |
real(kind=wp), | private, | parameter | :: | a167 | = | 7.68342119606259904184240953878_wp | |
real(kind=wp), | private, | parameter | :: | a168 | = | 4.06898981839711007970213554331_wp | |
real(kind=wp), | private, | parameter | :: | a169 | = | 3.56727187455281109270669543021e-1_wp | |
real(kind=wp), | private, | parameter | :: | a1613 | = | -1.39902416515901462129418009734e-3_wp | |
real(kind=wp), | private, | parameter | :: | a1614 | = | 2.9475147891527723389556272149_wp | |
real(kind=wp), | private, | parameter | :: | a1615 | = | -9.15095847217987001081870187138_wp | |
real(kind=wp), | private, | parameter | :: | d41 | = | -0.84289382761090128651353491142e+01_wp | |
real(kind=wp), | private, | parameter | :: | d46 | = | 0.56671495351937776962531783590_wp | |
real(kind=wp), | private, | parameter | :: | d47 | = | -0.30689499459498916912797304727e+01_wp | |
real(kind=wp), | private, | parameter | :: | d48 | = | 0.23846676565120698287728149680e+01_wp | |
real(kind=wp), | private, | parameter | :: | d49 | = | 0.21170345824450282767155149946e+01_wp | |
real(kind=wp), | private, | parameter | :: | d410 | = | -0.87139158377797299206789907490_wp | |
real(kind=wp), | private, | parameter | :: | d411 | = | 0.22404374302607882758541771650e+01_wp | |
real(kind=wp), | private, | parameter | :: | d412 | = | 0.63157877876946881815570249290_wp | |
real(kind=wp), | private, | parameter | :: | d413 | = | -0.88990336451333310820698117400e-01_wp | |
real(kind=wp), | private, | parameter | :: | d414 | = | 0.18148505520854727256656404962e+02_wp | |
real(kind=wp), | private, | parameter | :: | d415 | = | -0.91946323924783554000451984436e+01_wp | |
real(kind=wp), | private, | parameter | :: | d416 | = | -0.44360363875948939664310572000e+01_wp | |
real(kind=wp), | private, | parameter | :: | d51 | = | 0.10427508642579134603413151009e+02_wp | |
real(kind=wp), | private, | parameter | :: | d56 | = | 0.24228349177525818288430175319e+03_wp | |
real(kind=wp), | private, | parameter | :: | d57 | = | 0.16520045171727028198505394887e+03_wp | |
real(kind=wp), | private, | parameter | :: | d58 | = | -0.37454675472269020279518312152e+03_wp | |
real(kind=wp), | private, | parameter | :: | d59 | = | -0.22113666853125306036270938578e+02_wp | |
real(kind=wp), | private, | parameter | :: | d510 | = | 0.77334326684722638389603898808e+01_wp | |
real(kind=wp), | private, | parameter | :: | d511 | = | -0.30674084731089398182061213626e+02_wp | |
real(kind=wp), | private, | parameter | :: | d512 | = | -0.93321305264302278729567221706e+01_wp | |
real(kind=wp), | private, | parameter | :: | d513 | = | 0.15697238121770843886131091075e+02_wp | |
real(kind=wp), | private, | parameter | :: | d514 | = | -0.31139403219565177677282850411e+02_wp | |
real(kind=wp), | private, | parameter | :: | d515 | = | -0.93529243588444783865713862664e+01_wp | |
real(kind=wp), | private, | parameter | :: | d516 | = | 0.35816841486394083752465898540e+02_wp | |
real(kind=wp), | private, | parameter | :: | d61 | = | 0.19985053242002433820987653617e+02_wp | |
real(kind=wp), | private, | parameter | :: | d66 | = | -0.38703730874935176555105901742e+03_wp | |
real(kind=wp), | private, | parameter | :: | d67 | = | -0.18917813819516756882830838328e+03_wp | |
real(kind=wp), | private, | parameter | :: | d68 | = | 0.52780815920542364900561016686e+03_wp | |
real(kind=wp), | private, | parameter | :: | d69 | = | -0.11573902539959630126141871134e+02_wp | |
real(kind=wp), | private, | parameter | :: | d610 | = | 0.68812326946963000169666922661e+01_wp | |
real(kind=wp), | private, | parameter | :: | d611 | = | -0.10006050966910838403183860980e+01_wp | |
real(kind=wp), | private, | parameter | :: | d612 | = | 0.77771377980534432092869265740_wp | |
real(kind=wp), | private, | parameter | :: | d613 | = | -0.27782057523535084065932004339e+01_wp | |
real(kind=wp), | private, | parameter | :: | d614 | = | -0.60196695231264120758267380846e+02_wp | |
real(kind=wp), | private, | parameter | :: | d615 | = | 0.84320405506677161018159903784e+02_wp | |
real(kind=wp), | private, | parameter | :: | d616 | = | 0.11992291136182789328035130030e+02_wp | |
real(kind=wp), | private, | parameter | :: | d71 | = | -0.25693933462703749003312586129e+02_wp | |
real(kind=wp), | private, | parameter | :: | d76 | = | -0.15418974869023643374053993627e+03_wp | |
real(kind=wp), | private, | parameter | :: | d77 | = | -0.23152937917604549567536039109e+03_wp | |
real(kind=wp), | private, | parameter | :: | d78 | = | 0.35763911791061412378285349910e+03_wp | |
real(kind=wp), | private, | parameter | :: | d79 | = | 0.93405324183624310003907691704e+02_wp | |
real(kind=wp), | private, | parameter | :: | d710 | = | -0.37458323136451633156875139351e+02_wp | |
real(kind=wp), | private, | parameter | :: | d711 | = | 0.10409964950896230045147246184e+03_wp | |
real(kind=wp), | private, | parameter | :: | d712 | = | 0.29840293426660503123344363579e+02_wp | |
real(kind=wp), | private, | parameter | :: | d713 | = | -0.43533456590011143754432175058e+02_wp | |
real(kind=wp), | private, | parameter | :: | d714 | = | 0.96324553959188282948394950600e+02_wp | |
real(kind=wp), | private, | parameter | :: | d715 | = | -0.39177261675615439165231486172e+02_wp | |
real(kind=wp), | private, | parameter | :: | d716 | = | -0.14972683625798562581422125276e+03_wp |
subroutine computing the value of
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dop853_class), | intent(inout) | :: | me | |||
real(kind=wp), | intent(in) | :: | x |
independent variable |
||
real(kind=wp), | intent(in), | dimension(:) | :: | y |
state vector [size n] |
|
real(kind=wp), | intent(out), | dimension(:) | :: | f |
derivative vector [size n] |
solout
furnishes the solution y
at the nr
-th
grid-point x
(thereby the initial value is
the first grid-point).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dop853_class), | intent(inout) | :: | me | |||
integer, | intent(in) | :: | nr |
grid point (0,1,...) |
||
real(kind=wp), | intent(in) | :: | xold |
the preceding grid point |
||
real(kind=wp), | intent(in) | :: | x |
current grid point |
||
real(kind=wp), | intent(in), | dimension(:) | :: | y |
state vector [size n] |
|
integer, | intent(inout) | :: | irtrn |
serves to interrupt the integration. if
|
||
real(kind=wp), | intent(out) | :: | xout |
|
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | n | = | 0 |
the dimension of the system |
|
integer, | private | :: | nfcn | = | 0 |
number of function evaluations |
|
integer, | private | :: | nstep | = | 0 |
number of computed steps |
|
integer, | private | :: | naccpt | = | 0 |
number of accepted steps |
|
integer, | private | :: | nrejct | = | 0 |
number of rejected steps (due to error test), (step rejections in the first step are not counted) |
|
integer, | private | :: | nrdens | = | 0 |
number of components, for which dense output
is required. for |
|
real(kind=wp), | private | :: | h | = | 0.0_wp |
predicted step size of the last accepted step |
|
integer, | private | :: | iprint | = | output_unit |
switch for printing error messages
if |
|
integer, | private | :: | nmax | = | 100000 |
the maximal number of allowed steps. |
|
integer, | private | :: | nstiff | = | 1000 |
test for stiffness is activated after step number
|
|
real(kind=wp), | private | :: | hinitial | = | 0.0_wp |
initial step size, for |
|
real(kind=wp), | private | :: | hmax | = | 0.0_wp |
maximal step size, defaults to |
|
real(kind=wp), | private | :: | safe | = | 0.9_wp |
safety factor in step size prediction |
|
real(kind=wp), | private | :: | fac1 | = | 0.333_wp |
parameter for step size selection.
the new step size is chosen subject to the restriction
|
|
real(kind=wp), | private | :: | fac2 | = | 6.0_wp |
parameter for step size selection.
the new step size is chosen subject to the restriction
|
|
real(kind=wp), | private | :: | beta | = | 0.0_wp |
is the |
|
integer, | private, | dimension(:), allocatable | :: | icomp |
|
||
real(kind=wp), | private, | dimension(:), allocatable | :: | cont |
|
||
integer, | private | :: | iout | = | 0 |
copy of |
|
real(kind=wp), | private | :: | xold | = | 0.0_wp | ||
real(kind=wp), | private | :: | hout | = | 0.0_wp | ||
procedure(deriv_func), | private, | pointer | :: | fcn | => | null() |
subroutine computing the value of |
procedure(solout_func), | private, | pointer | :: | solout | => | null() |
subroutine providing the
numerical solution during integration.
if |
procedure , public :: initialize => set_parameters Subroutine | initialization routine. |
procedure , public :: integrate => dop853 Subroutine | main integration routine. |
procedure , public :: destroy => destroy_dop853 Subroutine | destructor. |
procedure , public :: info => get_dop853_info Subroutine | to get info after a run. |
procedure , private :: dp86co Subroutine | |
procedure , private :: hinit Function | |
procedure , public :: contd8 Function | can be called in user's solout_func for dense output. |
computation of an initial step size guess
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dop853_class), | intent(inout) | :: | me | |||
real(kind=wp), | intent(in) | :: | x | |||
real(kind=wp), | intent(in), | dimension(:) | :: | y |
dimension(n) |
|
real(kind=wp), | intent(in) | :: | posneg | |||
real(kind=wp), | intent(in), | dimension(:) | :: | f0 |
dimension(n) |
|
integer, | intent(in) | :: | iord | |||
real(kind=wp), | intent(in) | :: | hmax | |||
real(kind=wp), | intent(in), | dimension(:) | :: | atol | ||
real(kind=wp), | intent(in), | dimension(:) | :: | rtol | ||
integer, | intent(in) | :: | itol |
this function can be used for continuous output in connection
with the output-subroutine for dop853. it provides an
approximation to the ii
-th component of the solution at x
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dop853_class), | intent(in) | :: | me | |||
integer, | intent(in) | :: | ii | |||
real(kind=wp), | intent(in) | :: | x |
Get info from a dop853_class.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dop853_class), | intent(in) | :: | me | |||
integer, | intent(out), | optional | :: | n |
dimension of the system |
|
integer, | intent(out), | optional | :: | nfcn |
number of function evaluations |
|
integer, | intent(out), | optional | :: | nstep |
number of computed steps |
|
integer, | intent(out), | optional | :: | naccpt |
number of accepted steps |
|
integer, | intent(out), | optional | :: | nrejct |
number of rejected steps (due to error test), (step rejections in the first step are not counted) |
|
real(kind=wp), | intent(out), | optional | :: | h |
predicted step size of the last accepted step |
|
integer, | intent(out), | optional | :: | iout |
|
Destructor for dop853_class.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dop853_class), | intent(out) | :: | me |
Set the optional inputs for dop853.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dop853_class), | intent(inout) | :: | me | |||
integer, | intent(in) | :: | n |
the dimension of the system (size of and vectors) |
||
procedure(deriv_func) | :: | fcn |
subroutine computing the value of |
|||
procedure(solout_func), | optional | :: | solout |
subroutine providing the
numerical solution during integration.
if |
||
integer, | intent(in), | optional | :: | iprint |
switch for printing error messages
if |
|
integer, | intent(in), | optional | :: | nstiff |
test for stiffness is activated after step number
|
|
integer, | intent(in), | optional | :: | nmax |
the maximal number of allowed steps. |
|
real(kind=wp), | intent(in), | optional | :: | hinitial |
initial step size, for |
|
real(kind=wp), | intent(in), | optional | :: | hmax |
maximal step size, defaults to |
|
real(kind=wp), | intent(in), | optional | :: | safe |
safety factor in step size prediction |
|
real(kind=wp), | intent(in), | optional | :: | fac1 |
parameter for step size selection.
the new step size is chosen subject to the restriction
|
|
real(kind=wp), | intent(in), | optional | :: | fac2 |
parameter for step size selection.
the new step size is chosen subject to the restriction
|
|
real(kind=wp), | intent(in), | optional | :: | beta |
is the |
|
integer, | intent(in), | optional, | dimension(:) | :: | icomp |
the components for which dense output is required (size from 0 to |
logical, | intent(out) | :: | status_ok |
will be false for invalid inputs. |
Numerical solution of a system of first order ordinary differential equations . This is an explicit Runge-Kutta method of order 8(5,3) due to Dormand & Prince (with stepsize control and dense output).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dop853_class), | intent(inout) | :: | me | |||
real(kind=wp), | intent(inout) | :: | x |
input: initial value of independent variable.
output: |
||
real(kind=wp), | intent(inout), | dimension(:) | :: | y |
input: initial values for |
|
real(kind=wp), | intent(in) | :: | xend |
final x-value ( |
||
real(kind=wp), | intent(in), | dimension(:) | :: | rtol |
relative error tolerance. |
|
real(kind=wp), | intent(in), | dimension(:) | :: | atol |
absolute error tolerance. |
|
integer, | intent(in) | :: | iout |
switch for calling the subroutine |
||
integer, | intent(out) | :: | idid |
reports on successfulness upon return: |
Core integrator for dop853. parameters same as in dop853 with workspace added.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(dop853_class), | intent(inout) | :: | me | |||
real(kind=wp), | intent(inout) | :: | x | |||
real(kind=wp), | intent(inout), | dimension(:) | :: | y | ||
real(kind=wp), | intent(in) | :: | xend | |||
real(kind=wp), | intent(inout) | :: | hmax | |||
real(kind=wp), | intent(inout) | :: | h | |||
real(kind=wp), | intent(in), | dimension(:) | :: | rtol | ||
real(kind=wp), | intent(in), | dimension(:) | :: | atol | ||
integer, | intent(in) | :: | itol | |||
integer, | intent(in) | :: | iprint | |||
integer, | intent(in) | :: | iout | |||
integer, | intent(out) | :: | idid | |||
integer, | intent(in) | :: | nmax | |||
integer, | intent(in) | :: | nstiff | |||
real(kind=wp), | intent(in) | :: | safe | |||
real(kind=wp), | intent(in) | :: | beta | |||
real(kind=wp), | intent(in) | :: | fac1 | |||
real(kind=wp), | intent(in) | :: | fac2 | |||
integer, | intent(inout) | :: | nfcn | |||
integer, | intent(inout) | :: | nstep | |||
integer, | intent(inout) | :: | naccpt | |||
integer, | intent(inout) | :: | nrejct |