Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

question about dodesol statistics

Brian_Murphy
New Contributor II
102 Views

Do calls to dodesol return any information about the number of steps and function calls?  Perhaps in the ipar array?

0 Kudos
5 Replies
Steve_Lionel
Black Belt Retired Employee
102 Views

Sounds like more of an MKL question than Fortran...

Brian_Murphy
New Contributor II
102 Views

I agree, Steve, but I thought I'd have better luck getting an answer here than in the MKL forum.  This forum is tops.

Brian_Murphy
New Contributor II
102 Views

I asked the question on the MKL forum, and they haven't heard of it.  mecej4 is who I got the ODE solvers from, so he might be the only one that can answer this.

mecej4
Black Belt
102 Views

That library is no longer supported, so you have to be content with whatever the included documentation says. As far as I can see, the information that you ask for is not available, nor of much use, and the use of IPAR() to control the algorithm is discouraged.

You can easily add counters of the number of function calls to the RHS and JACMAT subprograms yourself. Create a module containing variables nRHS and nJAC, both initialized to zero, and USE that module in your RHS and JACMAT subroutines and in the main program. In RHS, add "nrhs = nrhs+1". Similarly, in JACMAT add "njac=njac+1", and in the main program PRINT nrhs, njac.

Brian_Murphy
New Contributor II
102 Views

Thanks, mecej4.  I have no intention of controlling the algorithm.  The integrator routines I'm replacing (IMSL) pass back counters for the things I mentioned.  That led me to ask if these routines did the same.  Counting the number times RHS and RHSJ are called I think I can do, but the actual number of intermediate steps would be nice to have.  I suppose I can take the passed back final time step size, and divide that into (tend-tstart) for each call.  That's not perfect, but it will be good enough.

Reply