DIRK solvers are rather thoroughly investigated in the recent paper
Without any special needs, I found the suggested default solver āESDIRK4(3)6L[2]SAā pretty good.
Speed greatly depends on how fast the underlying implicit equation can be solved (by Newton?) and how good the adaptive time step control can be tuned.
I do atmospheric chemical kinetics involving 10,000s ODEs, which are very stiff. For this problem, one of the best methods is CVODE BDF with the banded matrix solver. CVODE is written in C but has an excellent Fortran interface.
Have you tried SEULEX from Hairer? For my problem it seems to be 2-3 times faster than DVODE when its stiff and on par with it when its mildly or not stiff.
Iāve had good results with ROCK2 from Hairer and RKC from Netlib. When they fail I tend to find MEBDF next best, followed by VODEPK. āBest codeā is probably ābest code for my problemā, so you may need to try a variety.
My own routine isnāt suitable ā built around my need, with extensions to the original. I have lots of parameters that I pass through for use with an unsteady-state process simulator.
case (8) ! MBEDF with full Jacobian (8)
mf = 22
LOUT = 10 ! For error messages
select case (m1(2))
case (1, -1); index = 1
case (2, -2); index = 2
end select
TempOutput = OutputTime
call DRIVER(ny, t0, m2(3), y, OutputTime, TempOutput,