On a separate note, I have noticed some behavior that may be undefined in the "zhexpv.f" code. Specifically,
1 p2 = p1 - 1.0d0
p3 = p2 + p2 + p2
eps = ABS( p3-1.0d0 )
if ( eps.eq.0.0d0 ) go to 1
It looks to me that this could be an infinite loop if eps == 0.0 b/b p1 has not changed. However, it does not seem like it is ever possible to have eps = 0.0 with double precision arithmetic.
Something else that looks confusing to me is the following call to compute the Pade approximation:
call ZGPADM( ideg, mx, sgn*t_step, wsp(ih),mh,
. wsp(ifree),lfree, iwsp, iexph, ns, iflag )
As far as I can tell, "iexph" has not been set at this point in the program. Am I reading this correctly? Thanks for your time again!
Best,
Tyler