1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
|
#! /bin/sh /usr/share/dpatch/dpatch-run
## 216-use-cernlib-gamma-not-intrinsic.dpatch by Kevin B. McCarty <kmccarty@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Force use of mathlib gamma function in mathlib tests.
## DP: Built-in libc gamma function may not be sufficiently precise,
## DP: see, e.g., http://gcc.gnu.org/ml/fortran/2007-10/msg00096.html etc.
@DPATCH@
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/algama.F cernlib-2006.dfsg.2/src/mathlib/gen/c/algama.F
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/algama.F 1996-04-01 07:01:54.000000000 -0800
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/algama.F 2008-01-29 10:02:41.000000000 -0800
@@ -10,6 +10,7 @@
#if (defined(CERNLIB_DOUBLE))&&(!defined(CERNLIB_IBM))
FUNCTION ALGAMA(X)
DOUBLE PRECISION DLGAMA,D
+ EXTERNAL DLGAMA
ENTRY ALOGAM(X)
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/alogam.F cernlib-2006.dfsg.2/src/mathlib/gen/c/alogam.F
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/alogam.F 1996-04-01 07:01:54.000000000 -0800
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/alogam.F 2008-01-29 10:03:54.000000000 -0800
@@ -9,6 +9,7 @@
#include "gen/pilot.h"
#if (defined(CERNLIB_DOUBLE))&&(defined(CERNLIB_IBM))
FUNCTION ALOGAM(X)
+ EXTERNAL ALGAMA
ALOGAM = ALGAMA(X)
END
#endif
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/bsja64.F cernlib-2006.dfsg.2/src/mathlib/gen/c/bsja64.F
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/bsja64.F 1996-04-01 07:02:08.000000000 -0800
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/bsja64.F 2008-01-29 10:00:11.000000000 -0800
@@ -21,9 +21,11 @@
#if defined(CERNLIB_DOUBLE)
PARAMETER (NAMEJ = 'BSJA/DBSJA',
1 NAMEI = 'BSIA/DBSIA')
+ EXTERNAL DGAMMA
#endif
#if !defined(CERNLIB_DOUBLE)
PARAMETER (NAMEJ = 'BSJA', NAMEI = 'BSIA')
+ EXTERNAL GAMMA
#endif
LOGICAL LJA,LIA,LEV,LER
DIMENSION B(0:*),BA(0:100),RR(0:100)
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/cbsja64.F cernlib-2006.dfsg.2/src/mathlib/gen/c/cbsja64.F
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/cbsja64.F 1996-04-01 07:02:09.000000000 -0800
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/cbsja64.F 2008-01-29 10:00:11.000000000 -0800
@@ -21,9 +21,11 @@
CHARACTER NAME*(*)
#if defined(CERNLIB_DOUBLE)
PARAMETER (NAME = 'CBSJA/WBSJA')
+ EXTERNAL DGAMMA
#endif
#if !defined(CERNLIB_DOUBLE)
PARAMETER (NAME = 'CBSJA')
+ EXTERNAL GAMMA
#endif
LOGICAL LER
DIMENSION CB(0:*),CBA(0:100),RR(0:100)
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/dlogam.F cernlib-2006.dfsg.2/src/mathlib/gen/c/dlogam.F
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/dlogam.F 1996-04-01 07:01:55.000000000 -0800
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/dlogam.F 2008-01-29 10:04:25.000000000 -0800
@@ -9,6 +9,7 @@
#include "gen/pilot.h"
#if defined(CERNLIB_IBM)
FUNCTION DLOGAM(X)
+ EXTERNAL DLGAMA
#include "gen/imp64.inc"
DLOGAM = DLGAMA(X)
END
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/gagnc64.F cernlib-2006.dfsg.2/src/mathlib/gen/c/gagnc64.F
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/gagnc64.F 1996-04-01 07:02:05.000000000 -0800
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/gagnc64.F 2008-01-29 10:04:48.000000000 -0800
@@ -25,9 +25,11 @@
CHARACTER NAME*(*)
CHARACTER*80 ERRTXT
#if !defined(CERNLIB_DOUBLE)
+ EXTERNAL ALGAMA
PARAMETER (NAME = 'RGAGNC')
#endif
#if defined(CERNLIB_DOUBLE)
+ EXTERNAL DLGAMA
PARAMETER (NAME = 'RGAGNC/DGAGNC')
#endif
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/gapnc64.F cernlib-2006.dfsg.2/src/mathlib/gen/c/gapnc64.F
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/gapnc64.F 1996-04-01 07:02:05.000000000 -0800
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/gapnc64.F 2008-01-29 10:03:35.000000000 -0800
@@ -24,9 +24,11 @@
CHARACTER NAME*(*)
CHARACTER*80 ERRTXT
#if !defined(CERNLIB_DOUBLE)
+ EXTERNAL ALGAMA
PARAMETER (NAME = 'RGAPNC')
#endif
#if defined(CERNLIB_DOUBLE)
+ EXTERNAL DLGAMA
PARAMETER (NAME = 'RGAPNC/DGAPNC')
#endif
PARAMETER (EPS = 5D-14)
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/rrizet64.F cernlib-2006.dfsg.2/src/mathlib/gen/c/rrizet64.F
--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/rrizet64.F 1996-04-01 07:02:00.000000000 -0800
+++ cernlib-2006.dfsg.2/src/mathlib/gen/c/rrizet64.F 2008-01-29 10:00:11.000000000 -0800
@@ -14,12 +14,14 @@
C
CHARACTER*(*) NAME
PARAMETER(NAME='RRIZET/DRIZET')
+ EXTERNAL DGAMMA
#endif
#if !defined(CERNLIB_DOUBLE)
FUNCTION RRIZET(X)
C
CHARACTER*(*) NAME
PARAMETER(NAME='RRIZET')
+ EXTERNAL GAMMA
#endif
C
DIMENSION P1(0:8),P2(0:8),P3(0:9),P4(0:8)
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/g/gamdis.F cernlib-2006.dfsg.2/src/mathlib/gen/g/gamdis.F
--- cernlib-2006.dfsg.2~/src/mathlib/gen/g/gamdis.F 1996-04-01 07:02:43.000000000 -0800
+++ cernlib-2006.dfsg.2/src/mathlib/gen/g/gamdis.F 2008-01-29 10:00:11.000000000 -0800
@@ -28,6 +28,8 @@
PARAMETER (Z1 = 1, HALF = Z1/2, QUAR = Z1/4)
PARAMETER (C1 = 3*Z1/2, KMAX = 300)
+ EXTERNAL GAMMA
+
DATA C
1/ 0.5772157,-0.6558781,-0.0420026, 0.1665386,-0.0421977,
2 -0.0096220, 0.0072189,-0.0011652,-0.0002152, 0.0001281,
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/tests/c302m.F cernlib-2006.dfsg.2/src/mathlib/gen/tests/c302m.F
--- cernlib-2006.dfsg.2~/src/mathlib/gen/tests/c302m.F 1996-04-01 07:01:13.000000000 -0800
+++ cernlib-2006.dfsg.2/src/mathlib/gen/tests/c302m.F 2008-01-29 10:00:11.000000000 -0800
@@ -36,6 +36,7 @@
#include "gen/imp64.inc"
REAL GAMMA
+ EXTERNAL GAMMA, DGAMMA
CHARACTER*6 TFUNC(2)
#include "iorc.inc"
C
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/tests/c310m.F cernlib-2006.dfsg.2/src/mathlib/gen/tests/c310m.F
--- cernlib-2006.dfsg.2~/src/mathlib/gen/tests/c310m.F 1996-04-01 07:01:14.000000000 -0800
+++ cernlib-2006.dfsg.2/src/mathlib/gen/tests/c310m.F 2008-01-29 10:02:19.000000000 -0800
@@ -36,6 +36,7 @@
#include "imp64r.inc"
REAL ALGAMA
+ EXTERNAL ALGAMA
C Set maximum error allowed for test to be considered successful
DIMENSION TOL(2),TOLIBM(2)
@@ -50,6 +51,7 @@
#if defined(CERNLIB_DOUBLE)
DIMENSION Y(7),T(7)
REAL RT(7)
+ EXTERNAL DLGAMA
#endif
#if !defined(CERNLIB_DOUBLE)
REAL Y(7),T(7)
diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/tests/e408m.F cernlib-2006.dfsg.2/src/mathlib/gen/tests/e408m.F
--- cernlib-2006.dfsg.2~/src/mathlib/gen/tests/e408m.F 1998-11-05 02:41:34.000000000 -0800
+++ cernlib-2006.dfsg.2/src/mathlib/gen/tests/e408m.F 2008-01-29 10:00:11.000000000 -0800
@@ -44,6 +44,12 @@
DATA TXT(2) /'EXP(-X**2) (-1 <= X <= 1) LUKE 3.2.2(8)'/
DATA TXT(3) /'J_1(X) (-1 <= X <= 1) LUKE 9.7(7)'/
+#if defined(CERNLIB_DOUBLE)
+ EXTERNAL DGAMMA
+#else
+ EXTERNAL GAMMA
+#endif
+
#if !defined(CERNLIB_WINNT) && !defined(CERNLIB_LINUX)
# if defined(CERNLIB_DOUBLE)
GVSUM(N,B,C) = DVSUM(N,B,C)
|