Mercurial > octave
changeset 24854:32671b14ed7b
use INTEGER*4 in ranlib functions (bug #51961)
Until now we have relied on proper compiler flag settings to compile
these files so that Fortran integer variables are 32-bits wide.
Instead, we now use the non-standard but almost universally available
INTEGER*4 declaration.
* advnst.f, genmn.f, genmul.f, genprm.f, getcgn.f, getsd.f, ignbin.f,
ignlgi.f, ignnbn.f, ignpoi.f, ignuin.f, initgn.f, inrgcm.f, lennob.f,
mltmod.f, phrtsd.f, ranf.f, setall.f, setant.f, setgmn.f, setsd.f,
sexpo.f, snorm.f: Declare all integer variables as INTEGER*4. This
makes the parameters match prototypes in lo-ranlib-proto.h and ensures
that the generators work as intended (no conversions between 8-bit and
4-bit integer values, for example).
* wrap.f: Provide types for external functions.
line wrap: on
line diff
--- a/liboctave/external/ranlib/advnst.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/advnst.f Fri Mar 09 11:42:57 2018 -0500 @@ -23,25 +23,25 @@ C C********************************************************************** C .. Parameters .. - INTEGER numg + INTEGER*4 numg PARAMETER (numg=32) C .. C .. Scalar Arguments .. - INTEGER k + INTEGER*4 k C .. C .. Scalars in Common .. - INTEGER a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 + INTEGER*4 a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 C .. C .. Arrays in Common .. - INTEGER cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + INTEGER*4 cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + lg2(numg) LOGICAL qanti(numg) C .. C .. Local Scalars .. - INTEGER g,i,ib1,ib2 + INTEGER*4 g,i,ib1,ib2 C .. C .. External Functions .. - INTEGER mltmod + INTEGER*4 mltmod LOGICAL qrgnin EXTERNAL mltmod,qrgnin C ..
--- a/liboctave/external/ranlib/genmn.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/genmn.f Fri Mar 09 11:42:57 2018 -0500 @@ -39,7 +39,7 @@ C .. C .. Local Scalars .. REAL ae - INTEGER i,icount,j,p + INTEGER*4 i,icount,j,p C .. C .. External Functions .. REAL snorm
--- a/liboctave/external/ranlib/genmul.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/genmul.f Fri Mar 09 11:42:57 2018 -0500 @@ -39,18 +39,18 @@ C C********************************************************************** C .. Scalar Arguments .. - INTEGER n,ncat + INTEGER*4 n,ncat C .. C .. Array Arguments .. REAL p(*) - INTEGER ix(*) + INTEGER*4 ix(*) C .. C .. Local Scalars .. REAL prob,ptot,sum - INTEGER i,icat,ntot + INTEGER*4 i,icat,ntot C .. C .. External Functions .. - INTEGER ignbin + INTEGER*4 ignbin EXTERNAL ignbin C .. C .. Intrinsic Functions ..
--- a/liboctave/external/ranlib/genprm.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/genprm.f Fri Mar 09 11:42:57 2018 -0500 @@ -17,16 +17,16 @@ C C********************************************************************** C .. Scalar Arguments .. - INTEGER larray + INTEGER*4 larray C .. C .. Array Arguments .. - INTEGER iarray(larray) + INTEGER*4 iarray(larray) C .. C .. Local Scalars .. - INTEGER i,itmp,iwhich + INTEGER*4 i,itmp,iwhich C .. C .. External Functions .. - INTEGER ignuin + INTEGER*4 ignuin EXTERNAL ignuin C .. C .. Executable Statements ..
--- a/liboctave/external/ranlib/getcgn.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/getcgn.f Fri Mar 09 11:42:57 2018 -0500 @@ -1,5 +1,5 @@ SUBROUTINE getcgn(g) - INTEGER g + INTEGER*4 g C********************************************************************** C C SUBROUTINE GETCGN(G) @@ -16,7 +16,7 @@ C C********************************************************************** C - INTEGER curntg,numg + INTEGER*4 curntg,numg SAVE curntg PARAMETER (numg=32) DATA curntg/1/
--- a/liboctave/external/ranlib/getsd.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/getsd.f Fri Mar 09 11:42:57 2018 -0500 @@ -26,22 +26,22 @@ C C********************************************************************** C .. Parameters .. - INTEGER numg + INTEGER*4 numg PARAMETER (numg=32) C .. C .. Scalar Arguments .. - INTEGER iseed1,iseed2 + INTEGER*4 iseed1,iseed2 C .. C .. Scalars in Common .. - INTEGER a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 + INTEGER*4 a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 C .. C .. Arrays in Common .. - INTEGER cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + INTEGER*4 cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + lg2(numg) LOGICAL qanti(numg) C .. C .. Local Scalars .. - INTEGER g + INTEGER*4 g C .. C .. External Functions .. LOGICAL qrgnin
--- a/liboctave/external/ranlib/ignbin.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/ignbin.f Fri Mar 09 11:42:57 2018 -0500 @@ -1,7 +1,7 @@ - INTEGER FUNCTION ignbin(n,pp) + INTEGER*4 FUNCTION ignbin(n,pp) C********************************************************************** C -C INTEGER FUNCTION IGNBIN( N, PP ) +C INTEGER*4 FUNCTION IGNBIN( N, PP ) C C GENerate BINomial random deviate C @@ -151,12 +151,12 @@ C .. C .. Scalar Arguments .. REAL pp - INTEGER n + INTEGER*4 n C .. C .. Local Scalars .. REAL al,alv,amaxp,c,f,f1,f2,ffm,fm,g,p,p1,p2,p3,p4,psave,q,qn,r,u, + v,w,w2,x,x1,x2,xl,xll,xlr,xm,xnp,xnpq,xr,ynorm,z,z2 - INTEGER i,ix,ix1,k,m,mp,nsave + INTEGER*4 i,ix,ix1,k,m,mp,nsave C .. C .. External Functions .. REAL ranf
--- a/liboctave/external/ranlib/ignlgi.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/ignlgi.f Fri Mar 09 11:42:57 2018 -0500 @@ -1,7 +1,7 @@ - INTEGER FUNCTION ignlgi() + INTEGER*4 FUNCTION ignlgi() C********************************************************************** C -C INTEGER FUNCTION IGNLGI() +C INTEGER*4 FUNCTION IGNLGI() C GeNerate LarGe Integer C C Returns a random integer following a uniform distribution over @@ -16,19 +16,19 @@ C C********************************************************************** C .. Parameters .. - INTEGER numg + INTEGER*4 numg PARAMETER (numg=32) C .. C .. Scalars in Common .. - INTEGER a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 + INTEGER*4 a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 C .. C .. Arrays in Common .. - INTEGER cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + INTEGER*4 cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + lg2(numg) LOGICAL qanti(numg) C .. C .. Local Scalars .. - INTEGER curntg,k,s1,s2,z + INTEGER*4 curntg,k,s1,s2,z LOGICAL qqssd C .. C .. External Functions ..
--- a/liboctave/external/ranlib/ignnbn.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/ignnbn.f Fri Mar 09 11:42:57 2018 -0500 @@ -1,7 +1,7 @@ - INTEGER FUNCTION ignnbn(n,p) + INTEGER*4 FUNCTION ignnbn(n,p) C********************************************************************** C -C INTEGER FUNCTION IGNNBN( N, P ) +C INTEGER*4 FUNCTION IGNNBN( N, P ) C C GENerate Negative BiNomial random deviate C @@ -40,7 +40,7 @@ C .. C .. Scalar Arguments .. REAL p - INTEGER n + INTEGER*4 n C .. C .. Local Scalars .. REAL y,a,r @@ -49,7 +49,7 @@ C JJV changed to call SGAMMA directly C REAL gengam REAL sgamma - INTEGER ignpoi + INTEGER*4 ignpoi C EXTERNAL gengam,ignpoi EXTERNAL sgamma,ignpoi C ..
--- a/liboctave/external/ranlib/ignpoi.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/ignpoi.f Fri Mar 09 11:42:57 2018 -0500 @@ -1,7 +1,7 @@ - INTEGER FUNCTION ignpoi(mu) + INTEGER*4 FUNCTION ignpoi(mu) C********************************************************************** C -C INTEGER FUNCTION IGNPOI( MU ) +C INTEGER*4 FUNCTION IGNPOI( MU ) C C GENerate POIsson random deviate C @@ -61,7 +61,7 @@ C C C**********************************************************************C C -C INTEGER FUNCTION IGNPOI(IR,MU) +C INTEGER*4 FUNCTION IGNPOI(IR,MU) C C INPUT: IR=CURRENT STATE OF BASIC RANDOM NUMBER GENERATOR C MU=MEAN MU OF THE POISSON DISTRIBUTION @@ -84,7 +84,7 @@ REAL a0,a1,a2,a3,a4,a5,a6,a7,b1,b2,c,c0,c1,c2,c3,d,del,difmuk,e, + fk,fx,fy,g,muold,muprev,omega,p,p0,px,py,q,s,t,u,v,x,xx C JJV I added a variable 'll' here - it is the 'l' for CASE A - INTEGER j,k,kflag,l,ll,m + INTEGER*4 j,k,kflag,l,ll,m C .. C .. Local Arrays .. REAL fact(10),pp(35)
--- a/liboctave/external/ranlib/ignuin.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/ignuin.f Fri Mar 09 11:42:57 2018 -0500 @@ -1,7 +1,7 @@ - INTEGER FUNCTION ignuin(low,high) + INTEGER*4 FUNCTION ignuin(low,high) C********************************************************************** C -C INTEGER FUNCTION IGNUIN( LOW, HIGH ) +C INTEGER*4 FUNCTION IGNUIN( LOW, HIGH ) C C GeNerate Uniform INteger C @@ -33,20 +33,20 @@ C IGNLGI generates integers between 1 and 2147483562 C MAXNUM is 1 less than maximum generable value C .. Parameters .. - INTEGER maxnum + INTEGER*4 maxnum PARAMETER (maxnum=2147483561) CHARACTER*(*) err1,err2 PARAMETER (err1='LOW > HIGH in IGNUIN', + err2=' ( HIGH - LOW ) > 2,147,483,561 in IGNUIN') C .. C .. Scalar Arguments .. - INTEGER high,low + INTEGER*4 high,low C .. C .. Local Scalars .. - INTEGER err,ign,maxnow,range,ranp1 + INTEGER*4 err,ign,maxnow,range,ranp1 C .. C .. External Functions .. - INTEGER ignlgi + INTEGER*4 ignlgi EXTERNAL ignlgi C .. C .. Intrinsic Functions ..
--- a/liboctave/external/ranlib/initgn.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/initgn.f Fri Mar 09 11:42:57 2018 -0500 @@ -29,26 +29,26 @@ C C********************************************************************** C .. Parameters .. - INTEGER numg + INTEGER*4 numg PARAMETER (numg=32) C .. C .. Scalar Arguments .. - INTEGER isdtyp + INTEGER*4 isdtyp C .. C .. Scalars in Common .. - INTEGER a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 + INTEGER*4 a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 C .. C .. Arrays in Common .. - INTEGER cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + INTEGER*4 cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + lg2(numg) LOGICAL qanti(numg) C .. C .. Local Scalars .. - INTEGER g + INTEGER*4 g C .. C .. External Functions .. LOGICAL qrgnin - INTEGER mltmod + INTEGER*4 mltmod EXTERNAL qrgnin,mltmod C .. C .. External Subroutines ..
--- a/liboctave/external/ranlib/inrgcm.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/inrgcm.f Fri Mar 09 11:42:57 2018 -0500 @@ -14,19 +14,19 @@ C C********************************************************************** C .. Parameters .. - INTEGER numg + INTEGER*4 numg PARAMETER (numg=32) C .. C .. Scalars in Common .. - INTEGER a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 + INTEGER*4 a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 C .. C .. Arrays in Common .. - INTEGER cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + INTEGER*4 cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + lg2(numg) LOGICAL qanti(numg) C .. C .. Local Scalars .. - INTEGER i + INTEGER*4 i LOGICAL qdum C .. C .. External Functions ..
--- a/liboctave/external/ranlib/lennob.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/lennob.f Fri Mar 09 11:42:57 2018 -0500 @@ -1,8 +1,8 @@ - INTEGER FUNCTION lennob(string) - IMPLICIT INTEGER (a-p,r-z),LOGICAL (q) + INTEGER*4 FUNCTION lennob(string) + IMPLICIT INTEGER*4 (a-p,r-z),LOGICAL (q) C********************************************************************** C -C INTEGER FUNCTION LENNOB( STRING ) +C INTEGER*4 FUNCTION LENNOB( STRING ) C LENgth NOt counting trailing Blanks C C
--- a/liboctave/external/ranlib/mltmod.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/mltmod.f Fri Mar 09 11:42:57 2018 -0500 @@ -1,7 +1,7 @@ - INTEGER FUNCTION mltmod(a,s,m) + INTEGER*4 FUNCTION mltmod(a,s,m) C********************************************************************** C -C INTEGER FUNCTION MLTMOD(A,S,M) +C INTEGER*4 FUNCTION MLTMOD(A,S,M) C C Returns (A*S) MOD M C @@ -21,14 +21,14 @@ C C********************************************************************** C .. Parameters .. - INTEGER h + INTEGER*4 h PARAMETER (h=32768) C .. C .. Scalar Arguments .. - INTEGER a,m,s + INTEGER*4 a,m,s C .. C .. Local Scalars .. - INTEGER a0,a1,k,p,q,qh,rh + INTEGER*4 a0,a1,k,p,q,qh,rh C .. C .. Executable Statements .. C
--- a/liboctave/external/ranlib/phrtsd.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/phrtsd.f Fri Mar 09 11:42:57 2018 -0500 @@ -39,23 +39,23 @@ PARAMETER (table='abcdefghijklmnopqrstuvwxyz'// + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'//'0123456789'// + '!@#$%^&*()_+[];:''"<>?,./') - INTEGER twop30 + INTEGER*4 twop30 PARAMETER (twop30=1073741824) - INTEGER sixty4 + INTEGER*4 sixty4 PARAMETER (sixty4=64) C .. C .. Scalar Arguments .. - INTEGER seed1,seed2 + INTEGER*4 seed1,seed2 CHARACTER phrase* (*) C .. C .. Local Scalars .. - INTEGER i,ichr,j,lphr,idxval + INTEGER*4 i,ichr,j,lphr,idxval C .. C .. Local Arrays .. - INTEGER shift(0:4),values(5) + INTEGER*4 shift(0:4),values(5) C .. C .. External Functions .. - INTEGER lennob + INTEGER*4 lennob EXTERNAL lennob C .. C .. Intrinsic Functions ..
--- a/liboctave/external/ranlib/ranf.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/ranf.f Fri Mar 09 11:42:57 2018 -0500 @@ -17,7 +17,7 @@ C C********************************************************************** C .. External Functions .. - INTEGER ignlgi + INTEGER*4 ignlgi EXTERNAL ignlgi C .. C .. Executable Statements ..
--- a/liboctave/external/ranlib/setall.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/setall.f Fri Mar 09 11:42:57 2018 -0500 @@ -27,27 +27,27 @@ C C********************************************************************** C .. Parameters .. - INTEGER numg + INTEGER*4 numg PARAMETER (numg=32) C .. C .. Scalar Arguments .. - INTEGER iseed1,iseed2 + INTEGER*4 iseed1,iseed2 LOGICAL qssd C .. C .. Scalars in Common .. - INTEGER a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 + INTEGER*4 a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 C .. C .. Arrays in Common .. - INTEGER cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + INTEGER*4 cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + lg2(numg) LOGICAL qanti(numg) C .. C .. Local Scalars .. - INTEGER g,ocgn + INTEGER*4 g,ocgn LOGICAL qqssd C .. C .. External Functions .. - INTEGER mltmod + INTEGER*4 mltmod LOGICAL qrgnin EXTERNAL mltmod,qrgnin C ..
--- a/liboctave/external/ranlib/setant.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/setant.f Fri Mar 09 11:42:57 2018 -0500 @@ -29,22 +29,22 @@ C C********************************************************************** C .. Parameters .. - INTEGER numg + INTEGER*4 numg PARAMETER (numg=32) C .. C .. Scalar Arguments .. LOGICAL qvalue C .. C .. Scalars in Common .. - INTEGER a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 + INTEGER*4 a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 C .. C .. Arrays in Common .. - INTEGER cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + INTEGER*4 cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + lg2(numg) LOGICAL qanti(numg) C .. C .. Local Scalars .. - INTEGER g + INTEGER*4 g C .. C .. External Functions .. LOGICAL qrgnin
--- a/liboctave/external/ranlib/setgmn.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/setgmn.f Fri Mar 09 11:42:57 2018 -0500 @@ -48,14 +48,14 @@ C********************************************************************** C .. Scalar Arguments .. C INTEGER p - INTEGER p, ldcovm + INTEGER*4 p, ldcovm C .. C .. Array Arguments .. C REAL covm(p,p),meanv(p),parm(p* (p+3)/2+1) REAL covm(ldcovm,p),meanv(p),parm(p* (p+3)/2+1) C .. C .. Local Scalars .. - INTEGER i,icount,info,j + INTEGER*4 i,icount,info,j C .. C .. External Subroutines .. EXTERNAL spotrf
--- a/liboctave/external/ranlib/setsd.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/setsd.f Fri Mar 09 11:42:57 2018 -0500 @@ -26,22 +26,22 @@ C C********************************************************************** C .. Parameters .. - INTEGER numg + INTEGER*4 numg PARAMETER (numg=32) C .. C .. Scalar Arguments .. - INTEGER iseed1,iseed2 + INTEGER*4 iseed1,iseed2 C .. C .. Scalars in Common .. - INTEGER a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 + INTEGER*4 a1,a1vw,a1w,a2,a2vw,a2w,m1,m2 C .. C .. Arrays in Common .. - INTEGER cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + INTEGER*4 cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg), + lg2(numg) LOGICAL qanti(numg) C .. C .. Local Scalars .. - INTEGER g + INTEGER*4 g C .. C .. External Functions .. LOGICAL qrgnin
--- a/liboctave/external/ranlib/sexpo.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/sexpo.f Fri Mar 09 11:42:57 2018 -0500 @@ -30,7 +30,7 @@ C JJV added a Save statement for q (in Data statement) C .. Local Scalars .. REAL a,q1,u,umin,ustar - INTEGER i + INTEGER*4 i C .. C .. Local Arrays .. REAL q(8)
--- a/liboctave/external/ranlib/snorm.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/snorm.f Fri Mar 09 11:42:57 2018 -0500 @@ -29,7 +29,7 @@ C C .. Local Scalars .. REAL aa,s,tt,u,ustar,w,y - INTEGER i + INTEGER*4 i C .. C .. Local Arrays .. REAL a(32),d(31),h(31),t(31)
--- a/liboctave/external/ranlib/wrap.f Fri Mar 09 09:22:18 2018 -0500 +++ b/liboctave/external/ranlib/wrap.f Fri Mar 09 11:42:57 2018 -0500 @@ -1,25 +1,35 @@ subroutine dgennor (av, sd, result) double precision av, sd, result + real gennor + external gennor result = gennor (real (av), real (sd)) return end subroutine dgenunf (low, high, result) double precision low, high, result + real genunf + external genunf result = genunf (real (low), real (high)) return end subroutine dgenexp (av, result) double precision av, result + real genexp + external genexp result = genexp (real (av)) return end subroutine dgengam (a, r, result) double precision a, r, result + real gengam + external gengam result = gengam (real (a), real (r)) return end subroutine dignpoi (mu, result) double precision mu, result + integer*4 ignpoi + external ignpoi result = ignpoi (real (mu)) return end