--- daskr.orig/ddaskr.f 2008-03-14 06:34:48.000000000 -0400 +++ daskr/ddaskr.f 2014-03-02 16:10:47.319479666 -0500 @@ -1405,6 +1405,7 @@ DIMENSION RWORK(LRW),IWORK(LIW) DIMENSION RTOL(*),ATOL(*) DIMENSION RPAR(*),IPAR(*) + DIMENSION JROOT(*) CHARACTER MSG*80 EXTERNAL RES, JAC, PSOL, RT, DDASID, DDASIK, DNEDD, DNEDK C @@ -2515,6 +2516,7 @@ * RWORK, RPAR DIMENSION Y(*), YP(*), PHI(NEQ,*), PSI(*), * R0(*), R1(*), RX(*), JROOT(*), RWORK(*), IWORK(*) + DIMENSION RPAR(*), IPAR(*) INTEGER I, JFLAG DOUBLE PRECISION H DOUBLE PRECISION HMINR, T1, TEMP1, TEMP2, X, ZERO --- daskr.orig/dlinpk.f 2008-03-14 06:34:42.000000000 -0400 +++ daskr/dlinpk.f 2014-03-02 16:09:47.580384128 -0500 @@ -760,14 +760,24 @@ dnrm2 = zero go to 300 c - 10 assign 30 to next + 10 next = 30 sum = zero nn = n * incx c begin main loop i = 1 - 20 go to next,(30, 50, 70, 110) + 20 if (next .eq. 30) then + go to 30 + else if (next .eq. 50) then + go to 50 + else if (next .eq. 70) then + go to 70 + else if (next .eq. 110) then + go to 110 + else + continue + end if 30 if( dabs(dx(i)) .gt. cutlo) go to 85 - assign 50 to next + next = 50 xmax = zero c c phase 1. sum is zero @@ -776,13 +786,13 @@ if( dabs(dx(i)) .gt. cutlo) go to 85 c c prepare for phase 2. - assign 70 to next + next = 70 go to 105 c c prepare for phase 4. c 100 i = j - assign 110 to next + next = 110 sum = (sum / dx(i)) / dx(i) 105 xmax = dabs(dx(i)) go to 115