# HG changeset patch # User Mike Miller # Date 1393795786 18000 # Sun Mar 02 16:29:46 2014 -0500 # Node ID 4f1e7bfd53dd8061a4019b1d8b62b12d9aba8353 # Parent 31cb9aacfac5a5d22a3824c2006e6be77950b4cc Eliminate gfortran "rank mismatch" warnings in fortran libraries * cash.diff, daskr.diff: Update patches to specify dimensions on array parameters that were being used as implicit scalars. diff --git a/src/cash.diff b/src/cash.diff --- a/src/cash.diff +++ b/src/cash.diff @@ -1,6 +1,5 @@ -diff -u -u cash.orig/mebdfdae.f cash/mebdfdae.f ---- cash.orig/mebdfdae.f 2007-12-15 21:33:33.000000000 +0100 -+++ cash/mebdfdae.f 2008-01-19 17:41:05.000000000 +0100 +--- cash.orig/mebdfdae.f 2007-12-15 15:37:46.000000000 -0500 ++++ cash/mebdfdae.f 2014-03-02 16:20:04.683064613 -0500 @@ -53,13 +53,13 @@ C C NOVEMBER 6th 1998: FIRST RELEASE @@ -1927,9 +1926,8 @@ -* End of LSAME -* - END -diff -u -u cash.orig/mebdfi.f cash/mebdfi.f ---- cash.orig/mebdfi.f 2007-11-16 19:00:20.000000000 +0100 -+++ cash/mebdfi.f 2008-01-19 17:24:20.000000000 +0100 +--- cash.orig/mebdfi.f 2007-12-15 15:37:46.000000000 -0500 ++++ cash/mebdfi.f 2014-03-02 16:22:33.208828923 -0500 @@ -58,11 +58,11 @@ C C SEPTEMBER 20th 1999: FIRST RELEASE @@ -2638,8 +2636,11 @@ C IF NRENEW > 0 THEN FORM A NEW JACOBIAN BEFORE C COMPUTING THE COEFFICIENT MATRIX FOR C THE NEWTON-RAPHSON ITERATION -@@ -2132,8 +1949,8 @@ +@@ -2130,10 +1947,11 @@ + C .. + C .. LOCAL ARRAYS .. DIMENSION EL(10),ELST(10),TQ(5) ++ DIMENSION Y0(N) C .. C .. EXTERNAL SUBROUTINES .. - EXTERNAL COSET,CPYARY,ERRORS,HCHOSE,ITRAT2, @@ -2649,7 +2650,7 @@ C .. C .. INTRINSIC FUNCTIONS .. INTRINSIC DABS,DMAX1,DMIN1 -@@ -2225,14 +2042,14 @@ +@@ -2225,14 +2043,14 @@ HUSED = H C ----------------------------------------------------------------- C IF THE CALLER HAS CHANGED N , THE CONSTANTS E, EDN, EUP @@ -2666,7 +2667,7 @@ LMAX = MAXDER + 1 RC = RC*EL(1)/OLDLO OLDLO = EL(1) -@@ -2243,14 +2060,14 @@ +@@ -2243,14 +2061,14 @@ C NRENEW AND NEWPAR ARE TO INSTRUCT ROUTINE THAT C WE WISH A NEW J TO BE CALCULATED FOR THIS STEP. C ***************************************************** @@ -2684,7 +2685,7 @@ IF(IERR.NE.0) THEN H=H/2 IERR = 0 -@@ -2263,7 +2080,7 @@ +@@ -2263,7 +2081,7 @@ C >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C DIFFERENT PARAMETERS ON THIS CALL < C <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @@ -2693,7 +2694,7 @@ IF (MF.NE.MFOLD) THEN METH = MF/10 MITER = MF - 10*METH -@@ -2306,7 +2123,7 @@ +@@ -2306,7 +2124,7 @@ C ********************************************* 40 RH = DMAX1(RH,HMIN/DABS(H)) 50 RH = DMIN1(RH,HMAX/DABS(H),RMAX) @@ -2702,7 +2703,7 @@ RMAX = 10.0D+0 JCHANG = 1 H = H*RH -@@ -2323,7 +2140,7 @@ +@@ -2323,7 +2141,7 @@ END IF IDOUB = L + 1 @@ -2711,7 +2712,7 @@ 60 IF (DABS(RC-ONE).GT.UPBND) IWEVAL = MITER HUSED = H -@@ -2348,7 +2165,7 @@ +@@ -2348,7 +2166,7 @@ IF (JCHANG.EQ.1) THEN C IF WE HAVE CHANGED STEPSIZE THEN PREDICT A VALUE FOR Y(T+H) C AND EVALUATE THE DERIVATIVE THERE (STORED IN SAVE2()) @@ -2720,7 +2721,7 @@ IF(IERR.NE.0) GOTO 8000 DO 95 I=1,N YPRIME(I)=(Y(I,1)-ARH(I))/QI -@@ -2371,7 +2188,7 @@ +@@ -2371,7 +2189,7 @@ C ------------------------------------------------------------------- C IF INDICATED, THE MATRIX P = I/(H*EL(2)) - J IS RE-EVALUATED BEFORE C STARTING THE CORRECTOR ITERATION. IWEVAL IS SET = 0 TO INDICATE @@ -2729,7 +2730,7 @@ C THE PROCESSED MATRIX IS STORED IN PW C ------------------------------------------------------------------- IWEVAL = 0 -@@ -2436,14 +2253,14 @@ +@@ -2436,14 +2254,14 @@ JSNOLD = 0 MQ1TMP = MEQC1 MQ2TMP = MEQC2 @@ -2746,7 +2747,7 @@ IF (IER.NE.0) THEN C IF IER>0 THEN WE HAVE HAD A SINGULARITY IN THE ITERATION MATRIX IJUS=1 -@@ -2467,14 +2284,14 @@ +@@ -2467,14 +2285,14 @@ C LOOP. THE UPDATED Y VECTOR IS STORED TEMPORARILY IN SAVE1. C ********************************************************************** IF (.NOT.SAMPLE) THEN @@ -2763,7 +2764,7 @@ + WORKED,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND, + NIND1,NIND2,NIND3,IPIV,0,ITOL,RTOL,ATOL,IPAR,RPAR, + HUSED,NBSOL,NRE,NQUSED,resid,IERR) -@@ -2589,7 +2406,7 @@ +@@ -2589,7 +2407,7 @@ ARH(I) = ARH(I) + EL(JP1)*Y(I,J1) 200 CONTINUE 210 CONTINUE @@ -2772,7 +2773,7 @@ IF(IERR.NE.0) GOTO 8000 DO 215 I=1,N YPRIME(I)=(Y(I,1)-ARH(I))/QQQ -@@ -2603,7 +2420,7 @@ +@@ -2603,7 +2421,7 @@ C FOR NOW WILL ASSUME THAT WE DO NOT WISH TO SAMPLE C AT THE N+2 STEP POINT C @@ -2781,7 +2782,7 @@ + WORKED,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND, + NIND1,NIND2,NIND3,IPIV,1,ITOL,RTOL,ATOL,IPAR,RPAR, + HUSED,NBSOL,NRE,NQUSED,resid,IERR) -@@ -2661,10 +2478,10 @@ +@@ -2661,10 +2479,10 @@ NRE=NRE+1 C IF (MF.GE. 23) THEN @@ -2794,7 +2795,7 @@ NBSOL = NBSOL + 1 ENDIF DO 321 I=1,N -@@ -2758,7 +2575,7 @@ +@@ -2758,7 +2576,7 @@ IF(NQ.GT.1) FFAIL = 0.5D+0/DBLE(FLOAT(NQ)) IF(NQ.GT.2) FRFAIL = 0.5D+0/DBLE(FLOAT(NQ-1)) EFAIL = 0.5D+0/DBLE(FLOAT(L)) @@ -2803,7 +2804,7 @@ RMAX = 2.0D+0 IF (DABS(H).LE.HMIN*1.00001D+0) THEN C -@@ -2787,10 +2604,10 @@ +@@ -2787,10 +2605,10 @@ NQ=NEWQ RH=ONE/(PLFAIL*DBLE(FLOAT(-KFAIL))) L=NQ+1 @@ -2816,7 +2817,7 @@ ELSE NEWQ = NQ RH = ONE/ (PRFAIL*DBLE(FLOAT(-KFAIL))) -@@ -2816,7 +2633,7 @@ +@@ -2816,7 +2634,7 @@ C ********************************* JCHANG = 1 RH = DMAX1(HMIN/DABS(H),0.1D+0) @@ -2825,7 +2826,7 @@ H = H*RH DO 350 I = 1,N Y(I,1) = YHOLD(I,1) -@@ -2832,11 +2649,11 @@ +@@ -2832,11 +2650,11 @@ NQ = 1 L = 2 C RESET ORDER, RECALCULATE ERROR BOUNDS @@ -2839,7 +2840,7 @@ C NOW JUMP TO NORMAL CONTINUATION POINT GO TO 60 C ********************************************************************** -@@ -3003,7 +2820,7 @@ +@@ -3003,7 +2821,7 @@ GOTO 440 ENDIF RH = DMIN1(RH,RMAX) @@ -2848,7 +2849,7 @@ IF ((JSINUP.LE.20).AND.(KFLAG.EQ.0).AND.(RH.LT.1.1D+0)) THEN C WE HAVE RUN INTO PROBLEMS IDOUB = 10 -@@ -3031,16 +2848,16 @@ +@@ -3031,16 +2849,16 @@ NQ = NEWQ L = NQ + 1 C RESET ORDER,RECALCULATE ERROR BOUNDS @@ -2868,7 +2869,7 @@ RMAX = 10.0D+0 JCHANG = 1 H = H*RH -@@ -3057,7 +2874,7 @@ +@@ -3057,7 +2875,7 @@ C INFORMATION NECESSARY TO PERFORM AN INTERPOLATION TO FIND THE C SOLUTION AT THE SPECIFIED OUTPUT POINT IF APPROPRIATE. C ---------------------------------------------------------------------- @@ -2877,7 +2878,7 @@ NSTEP = NSTEP + 1 JSINUP = JSINUP + 1 JSNOLD = JSNOLD + 1 -@@ -3112,7 +2929,7 @@ +@@ -3112,7 +2930,7 @@ IF ((T-TOUT)*H.GE.0.0D+0) THEN C HAVE OVERSHOT TOUT WRITE (LOUT,*) T,TOUT,H @@ -2886,7 +2887,7 @@ HO = H T0 = TOUT IDID = -5 -@@ -3123,7 +2940,7 @@ +@@ -3123,7 +2941,7 @@ goto 30 endif c @@ -2895,7 +2896,7 @@ IF(.NOT.FINISH) THEN GO TO 40 ELSE -@@ -3132,9 +2949,9 @@ +@@ -3132,9 +2950,9 @@ 9000 FORMAT (1X,' CORRECTOR HAS NOT CONVERGED') END @@ -2907,7 +2908,7 @@ IMPLICIT DOUBLE PRECISION(A-H,O-Z) C .. SCALAR ARGUMENTS .. -@@ -3246,7 +3063,7 @@ +@@ -3246,7 +3064,7 @@ END C--------------------------------------------------------------------------- @@ -2916,7 +2917,7 @@ IMPLICIT DOUBLE PRECISION(A-H,O-Z) C C COPIES THE ARRAY SOURCE() INTO THE ARRAY TARGET() -@@ -3271,7 +3088,7 @@ +@@ -3271,7 +3089,7 @@ END C---------------------------------------------------------------------------- @@ -2925,7 +2926,7 @@ IMPLICIT DOUBLE PRECISION(A-H,O-Z) COMMON / STPSZE / HSTPSZ(2,14) LOGICAL OVRIDE -@@ -3306,953 +3123,3 @@ +@@ -3306,953 +3124,3 @@ RETURN END diff --git a/src/daskr.diff b/src/daskr.diff --- a/src/daskr.diff +++ b/src/daskr.diff @@ -1,5 +1,23 @@ ---- daskr.orig/dlinpk.f 2008-05-19 11:26:08.000000000 +0200 -+++ daskr/dlinpk.f 2008-05-19 11:21:57.000000000 +0200 +--- 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