b7adf43
#! /bin/sh /usr/share/dpatch/dpatch-run
b7adf43
## 216-use-cernlib-gamma-not-intrinsic.dpatch by Kevin B. McCarty <kmccarty@debian.org>
b7adf43
##
b7adf43
## All lines beginning with `## DP:' are a description of the patch.
b7adf43
## DP: Force use of mathlib gamma function in mathlib tests.
b7adf43
## DP: Built-in libc gamma function may not be sufficiently precise,
b7adf43
## DP: see, e.g., http://gcc.gnu.org/ml/fortran/2007-10/msg00096.html etc.
b7adf43
b7adf43
@DPATCH@
db90bd4
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/algama.F cernlib-2006.dfsg.2/src/mathlib/gen/c/algama.F
db90bd4
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/algama.F	1996-04-01 07:01:54.000000000 -0800
db90bd4
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/algama.F	2008-01-29 10:02:41.000000000 -0800
db90bd4
@@ -10,6 +10,7 @@
db90bd4
 #if (defined(CERNLIB_DOUBLE))&&(!defined(CERNLIB_IBM))
db90bd4
       FUNCTION ALGAMA(X)
db90bd4
       DOUBLE PRECISION DLGAMA,D
db90bd4
+      EXTERNAL DLGAMA
db90bd4
 
db90bd4
       ENTRY ALOGAM(X)
db90bd4
 
db90bd4
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/alogam.F cernlib-2006.dfsg.2/src/mathlib/gen/c/alogam.F
db90bd4
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/alogam.F	1996-04-01 07:01:54.000000000 -0800
db90bd4
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/alogam.F	2008-01-29 10:03:54.000000000 -0800
db90bd4
@@ -9,6 +9,7 @@
db90bd4
 #include "gen/pilot.h"
db90bd4
 #if (defined(CERNLIB_DOUBLE))&&(defined(CERNLIB_IBM))
db90bd4
       FUNCTION ALOGAM(X)
db90bd4
+      EXTERNAL ALGAMA
db90bd4
       ALOGAM = ALGAMA(X)
db90bd4
       END
db90bd4
 #endif
b7adf43
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/bsja64.F cernlib-2006.dfsg.2/src/mathlib/gen/c/bsja64.F
b7adf43
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/bsja64.F	1996-04-01 07:02:08.000000000 -0800
db90bd4
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/bsja64.F	2008-01-29 10:00:11.000000000 -0800
b7adf43
@@ -21,9 +21,11 @@
b7adf43
 #if defined(CERNLIB_DOUBLE)
b7adf43
       PARAMETER (NAMEJ = 'BSJA/DBSJA',
b7adf43
      1           NAMEI = 'BSIA/DBSIA')
b7adf43
+      EXTERNAL DGAMMA
b7adf43
 #endif
b7adf43
 #if !defined(CERNLIB_DOUBLE)
b7adf43
       PARAMETER (NAMEJ = 'BSJA', NAMEI = 'BSIA')
b7adf43
+      EXTERNAL GAMMA
b7adf43
 #endif
b7adf43
       LOGICAL LJA,LIA,LEV,LER
b7adf43
       DIMENSION B(0:*),BA(0:100),RR(0:100)
b7adf43
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/cbsja64.F cernlib-2006.dfsg.2/src/mathlib/gen/c/cbsja64.F
b7adf43
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/cbsja64.F	1996-04-01 07:02:09.000000000 -0800
db90bd4
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/cbsja64.F	2008-01-29 10:00:11.000000000 -0800
b7adf43
@@ -21,9 +21,11 @@
b7adf43
       CHARACTER NAME*(*)
b7adf43
 #if defined(CERNLIB_DOUBLE)
b7adf43
       PARAMETER (NAME = 'CBSJA/WBSJA')
b7adf43
+      EXTERNAL DGAMMA
b7adf43
 #endif
b7adf43
 #if !defined(CERNLIB_DOUBLE)
b7adf43
       PARAMETER (NAME = 'CBSJA')
b7adf43
+      EXTERNAL GAMMA
b7adf43
 #endif
b7adf43
       LOGICAL LER
b7adf43
       DIMENSION CB(0:*),CBA(0:100),RR(0:100)
db90bd4
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/dlogam.F cernlib-2006.dfsg.2/src/mathlib/gen/c/dlogam.F
db90bd4
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/dlogam.F	1996-04-01 07:01:55.000000000 -0800
db90bd4
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/dlogam.F	2008-01-29 10:04:25.000000000 -0800
db90bd4
@@ -9,6 +9,7 @@
db90bd4
 #include "gen/pilot.h"
db90bd4
 #if defined(CERNLIB_IBM)
db90bd4
       FUNCTION DLOGAM(X)
db90bd4
+      EXTERNAL DLGAMA
db90bd4
 #include "gen/imp64.inc"
db90bd4
       DLOGAM = DLGAMA(X)
db90bd4
       END
db90bd4
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/gagnc64.F cernlib-2006.dfsg.2/src/mathlib/gen/c/gagnc64.F
db90bd4
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/gagnc64.F	1996-04-01 07:02:05.000000000 -0800
db90bd4
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/gagnc64.F	2008-01-29 10:04:48.000000000 -0800
db90bd4
@@ -25,9 +25,11 @@
db90bd4
       CHARACTER NAME*(*)
db90bd4
       CHARACTER*80 ERRTXT
db90bd4
 #if !defined(CERNLIB_DOUBLE)
db90bd4
+      EXTERNAL ALGAMA
db90bd4
       PARAMETER (NAME = 'RGAGNC')
db90bd4
 #endif
db90bd4
 #if defined(CERNLIB_DOUBLE)
db90bd4
+      EXTERNAL DLGAMA
db90bd4
       PARAMETER (NAME = 'RGAGNC/DGAGNC')
db90bd4
 #endif
db90bd4
 
db90bd4
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/gapnc64.F cernlib-2006.dfsg.2/src/mathlib/gen/c/gapnc64.F
db90bd4
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/gapnc64.F	1996-04-01 07:02:05.000000000 -0800
db90bd4
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/gapnc64.F	2008-01-29 10:03:35.000000000 -0800
db90bd4
@@ -24,9 +24,11 @@
db90bd4
       CHARACTER NAME*(*)
db90bd4
       CHARACTER*80 ERRTXT
db90bd4
 #if !defined(CERNLIB_DOUBLE)
db90bd4
+      EXTERNAL ALGAMA
db90bd4
       PARAMETER (NAME = 'RGAPNC')
db90bd4
 #endif
db90bd4
 #if defined(CERNLIB_DOUBLE)
db90bd4
+      EXTERNAL DLGAMA
db90bd4
       PARAMETER (NAME = 'RGAPNC/DGAPNC')
db90bd4
 #endif
db90bd4
       PARAMETER (EPS = 5D-14)
b7adf43
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/rrizet64.F cernlib-2006.dfsg.2/src/mathlib/gen/c/rrizet64.F
b7adf43
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/rrizet64.F	1996-04-01 07:02:00.000000000 -0800
db90bd4
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/rrizet64.F	2008-01-29 10:00:11.000000000 -0800
b7adf43
@@ -14,12 +14,14 @@
b7adf43
 C
b7adf43
       CHARACTER*(*) NAME
b7adf43
       PARAMETER(NAME='RRIZET/DRIZET')
b7adf43
+      EXTERNAL DGAMMA
b7adf43
 #endif
b7adf43
 #if !defined(CERNLIB_DOUBLE)
b7adf43
       FUNCTION RRIZET(X)
b7adf43
 C
b7adf43
       CHARACTER*(*) NAME
b7adf43
       PARAMETER(NAME='RRIZET')
b7adf43
+      EXTERNAL GAMMA
b7adf43
 #endif
b7adf43
 C
b7adf43
       DIMENSION P1(0:8),P2(0:8),P3(0:9),P4(0:8)
b7adf43
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/g/gamdis.F cernlib-2006.dfsg.2/src/mathlib/gen/g/gamdis.F
b7adf43
--- cernlib-2006.dfsg.2~/src/mathlib/gen/g/gamdis.F	1996-04-01 07:02:43.000000000 -0800
db90bd4
+++ cernlib-2006.dfsg.2/src/mathlib/gen/g/gamdis.F	2008-01-29 10:00:11.000000000 -0800
b7adf43
@@ -28,6 +28,8 @@
b7adf43
       PARAMETER (Z1 = 1, HALF = Z1/2, QUAR = Z1/4)
b7adf43
       PARAMETER (C1 = 3*Z1/2, KMAX = 300)
b7adf43
 
b7adf43
+      EXTERNAL GAMMA
b7adf43
+
b7adf43
       DATA C
b7adf43
      1/ 0.5772157,-0.6558781,-0.0420026, 0.1665386,-0.0421977,
b7adf43
      2 -0.0096220, 0.0072189,-0.0011652,-0.0002152, 0.0001281,
b7adf43
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/tests/c302m.F cernlib-2006.dfsg.2/src/mathlib/gen/tests/c302m.F
b7adf43
--- cernlib-2006.dfsg.2~/src/mathlib/gen/tests/c302m.F	1996-04-01 07:01:13.000000000 -0800
db90bd4
+++ cernlib-2006.dfsg.2/src/mathlib/gen/tests/c302m.F	2008-01-29 10:00:11.000000000 -0800
b7adf43
@@ -36,6 +36,7 @@
b7adf43
 #include "gen/imp64.inc"
b7adf43
 
b7adf43
       REAL GAMMA
b7adf43
+      EXTERNAL GAMMA, DGAMMA
b7adf43
       CHARACTER*6 TFUNC(2)
b7adf43
 #include "iorc.inc"
b7adf43
 C
db90bd4
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/tests/c310m.F cernlib-2006.dfsg.2/src/mathlib/gen/tests/c310m.F
db90bd4
--- cernlib-2006.dfsg.2~/src/mathlib/gen/tests/c310m.F	1996-04-01 07:01:14.000000000 -0800
db90bd4
+++ cernlib-2006.dfsg.2/src/mathlib/gen/tests/c310m.F	2008-01-29 10:02:19.000000000 -0800
db90bd4
@@ -36,6 +36,7 @@
db90bd4
 
db90bd4
 #include "imp64r.inc"
db90bd4
       REAL  ALGAMA
db90bd4
+      EXTERNAL ALGAMA
db90bd4
 C     Set maximum error allowed for test to be considered successful
db90bd4
       DIMENSION TOL(2),TOLIBM(2)
db90bd4
 
db90bd4
@@ -50,6 +51,7 @@
db90bd4
 #if defined(CERNLIB_DOUBLE)
db90bd4
       DIMENSION  Y(7),T(7)
db90bd4
       REAL            RT(7)
db90bd4
+      EXTERNAL DLGAMA
db90bd4
 #endif
db90bd4
 #if !defined(CERNLIB_DOUBLE)
db90bd4
       REAL       Y(7),T(7)
b7adf43
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/tests/e408m.F cernlib-2006.dfsg.2/src/mathlib/gen/tests/e408m.F
b7adf43
--- cernlib-2006.dfsg.2~/src/mathlib/gen/tests/e408m.F	1998-11-05 02:41:34.000000000 -0800
db90bd4
+++ cernlib-2006.dfsg.2/src/mathlib/gen/tests/e408m.F	2008-01-29 10:00:11.000000000 -0800
b7adf43
@@ -44,6 +44,12 @@
b7adf43
       DATA TXT(2) /'EXP(-X**2)  (-1 <= X <= 1)  LUKE 3.2.2(8)'/
b7adf43
       DATA TXT(3) /'J_1(X)      (-1 <= X <= 1)  LUKE 9.7(7)'/
b7adf43
 
b7adf43
+#if defined(CERNLIB_DOUBLE)
b7adf43
+      EXTERNAL DGAMMA
b7adf43
+#else
b7adf43
+      EXTERNAL GAMMA
b7adf43
+#endif
b7adf43
+
b7adf43
 #if !defined(CERNLIB_WINNT) && !defined(CERNLIB_LINUX)
b7adf43
 # if defined(CERNLIB_DOUBLE)
b7adf43
       GVSUM(N,B,C) = DVSUM(N,B,C)