Blob Blame History Raw
#! /bin/sh /usr/share/dpatch/dpatch-run
## 115-rsrtnt64-goto-outer-block.dpatch by  <kmccarty@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Patch from Patrice Dumas <pertusus@free.fr> to fix spaghetti code in
## DP: rsrtnt64.F that breaks linking step on Itanium.
## DP: Also, following Harald Vogt, change indicators of line continuation
## DP: from "1" -> "&" to be compatible with gfortran.

@DPATCH@
diff -urNad cernlib-2005.dfsg~/src/mathlib/gen/b/rsrtnt64.F cernlib-2005.dfsg/src/mathlib/gen/b/rsrtnt64.F
--- cernlib-2005.dfsg~/src/mathlib/gen/b/rsrtnt64.F	1996-04-01 10:01:51.000000000 -0500
+++ cernlib-2005.dfsg/src/mathlib/gen/b/rsrtnt64.F	2006-09-06 14:12:38.087369193 -0400
@@ -53,7 +53,7 @@
       IF(LLL) GO TO 9
 
       LLL=K .GE. 0 .OR. K .EQ. -1 .AND. U*V .NE. 0
-     1             .OR. K .LE. -2 .AND. U*V .GT. 0
+     &             .OR. K .LE. -2 .AND. U*V .GT. 0
       IF(.NOT.LLL) GO TO 9
 
       DELTA=4*A*C-B**2
@@ -117,9 +117,16 @@
         ENDIF
        ELSE
         IF(N .EQ. 1) THEN
-         ASSIGN 11 TO JMP1
-         GO TO 10
-   11    IF(K .EQ. 0) THEN
+      C2=2*C
+      IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
+       H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
+     &           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
+      ELSEIF(DELTA .EQ. 0) THEN
+       H=ABS(LOG(ABS((C2*V+B)/(C2*U+B))))/SQRT(C)
+      ELSE
+       H=(ASIN((C2*U+B)/RTD)-ASIN((C2*V+B)/RTD))/SQRT(-C)
+      ENDIF
+         IF(K .EQ. 0) THEN
           H=H
          ELSEIF(K .EQ. 1) THEN
           H=(RT(V)-RT(U)-HF*B*H)/C
@@ -134,7 +141,7 @@
           G2=A*C
           H3=G1-16*G2
           H=(((H1*V-H2)*V+H3)*RT(V)-((H1*U-H2)*U+H3)*RT(U)-
-     1       (HF*G1-18*G2)*B*H)/(24*C**3)
+     &       (HF*G1-18*G2)*B*H)/(24*C**3)
          ENDIF
         ELSE
          IF(DELTA .EQ. 0) THEN
@@ -174,21 +181,35 @@
            H=2*((H1+B*U)/RT(U)-(H1+B*V)/RT(V))/DELTA
            LB1=11
           ELSEIF(K .EQ. 2) THEN
-           ASSIGN 12 TO JMP1
-           GO TO 10
-   12      H1=DELTA-B**2
+      C2=2*C
+      IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
+       H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
+     &           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
+      ELSEIF(DELTA .EQ. 0) THEN
+       H=ABS(LOG(ABS((C2*V+B)/(C2*U+B))))/SQRT(C)
+      ELSE
+       H=(ASIN((C2*U+B)/RTD)-ASIN((C2*V+B)/RTD))/SQRT(-C)
+      ENDIF
+           H1=DELTA-B**2
            H2=2*A*B
            H=(((H1*U-H2)/RT(U)-(H1*V-H2)/RT(V))/DELTA+H)/C
           ELSEIF(K .EQ. 3) THEN
-           ASSIGN 13 TO JMP1
-           GO TO 10
-   13      H1=C*DELTA
+      C2=2*C
+      IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
+       H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
+     &           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
+      ELSEIF(DELTA .EQ. 0) THEN
+       H=ABS(LOG(ABS((C2*V+B)/(C2*U+B))))/SQRT(C)
+      ELSE
+       H=(ASIN((C2*U+B)/RTD)-ASIN((C2*V+B)/RTD))/SQRT(-C)
+      ENDIF
+           H1=C*DELTA
            G1=A*C
            G2=3*B**2
            H2=B*(10*G1-G2)
            H3=A*(8*G1-G2)
            H=(2*(((H1*V+H2)*V+H3)/RT(V)-((H1*U+H2)*U+H3)/RT(U))/
-     1       DELTA-3*B*H)/(2*C**2)
+     &       DELTA-3*B*H)/(2*C**2)
           ENDIF
          ENDIF
         ENDIF
@@ -217,9 +238,33 @@
         ENDIF
        ELSE
         IF(N .EQ. 1) THEN
-         ASSIGN 21 TO JMP2
-         GO TO 20
-   21    IF(K .EQ. -1) THEN
+      IF(C .EQ. 0) THEN
+       IF(B .EQ. 0) THEN
+        H=LOG(ABS(V/U))/SQRT(A)
+       ELSE
+        IF(A .LT. 0) THEN
+         H=2*(ATAN(SQRT(-(A+B*V)/A))-ATAN(SQRT(-(A+B*U)/A)))/SQRT(-A)
+        ELSE
+         WA=SQRT(A)
+         WU=SQRT(A+B*U)
+         WV=SQRT(A+B*V)
+         H=LOG(ABS((WV-WA)*(WU+WA)/((WV+WA)*(WU-WA))))/WA
+        ENDIF
+       ENDIF
+      ELSE
+       A2=2*A
+       IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. A .GT. 0) THEN
+        H=LOG(ABS((-2*SQRT(A*P(V))+B*V+A2)*U/
+     &           ((-2*SQRT(A*P(U))+B*U+A2)*V)))/SQRT(A)
+       ELSEIF(DELTA .EQ. 0) THEN
+        H=LOG(ABS((B*U+A2)*V/((B*V+A2)*U)))/SQRT(A)
+        IF(U*V .GT. 0) H=SIGN(H,U)
+       ELSE
+        H=(ASIN((B*V+A2)/(V*RTD))-ASIN((B*U+A2)/(U*RTD)))/SQRT(-A)
+        IF(U .LT. 0 .AND. V .LT. 0) H=-H
+       ENDIF
+      ENDIF
+         IF(K .EQ. -1) THEN
           H=H
          ELSEIF(K .EQ. -2) THEN
           H=(RT(U)/U-RT(V)/V-HF*B*H)/A
@@ -227,7 +272,7 @@
           H1=6*B
           H2=4*A
           H=((H1*V-H2)*RT(V)/V**2-(H1*U-H2)*RT(U)/U**2+
-     1       (3*B**2-H2*C)*H)/(8*A**2)
+     &       (3*B**2-H2*C)*H)/(8*A**2)
          ENDIF
         ELSE
          IF(DELTA .EQ. 0) THEN
@@ -257,9 +302,33 @@
            IF(U. LT. -X0) H=-H
           ENDIF
          ELSE
-          ASSIGN 22 TO JMP2
-          GO TO 20
-   22     IF(K .EQ. -1) THEN
+      IF(C .EQ. 0) THEN
+       IF(B .EQ. 0) THEN
+        H=LOG(ABS(V/U))/SQRT(A)
+       ELSE
+        IF(A .LT. 0) THEN
+         H=2*(ATAN(SQRT(-(A+B*V)/A))-ATAN(SQRT(-(A+B*U)/A)))/SQRT(-A)
+        ELSE
+         WA=SQRT(A)
+         WU=SQRT(A+B*U)
+         WV=SQRT(A+B*V)
+         H=LOG(ABS((WV-WA)*(WU+WA)/((WV+WA)*(WU-WA))))/WA
+        ENDIF
+       ENDIF
+      ELSE
+       A2=2*A
+       IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. A .GT. 0) THEN
+        H=LOG(ABS((-2*SQRT(A*P(V))+B*V+A2)*U/
+     &           ((-2*SQRT(A*P(U))+B*U+A2)*V)))/SQRT(A)
+       ELSEIF(DELTA .EQ. 0) THEN
+        H=LOG(ABS((B*U+A2)*V/((B*V+A2)*U)))/SQRT(A)
+        IF(U*V .GT. 0) H=SIGN(H,U)
+       ELSE
+        H=(ASIN((B*V+A2)/(V*RTD))-ASIN((B*U+A2)/(U*RTD)))/SQRT(-A)
+        IF(U .LT. 0 .AND. V .LT. 0) H=-H
+       ENDIF
+      ENDIF
+          IF(K .EQ. -1) THEN
            H1=B*C
            H2=B**2-2*A*C
            H=(2*((H1*U+H2)/RT(U)-(H1*V+H2)/RT(V))/DELTA+H)/A
@@ -270,7 +339,7 @@
            H2=(G1-10*G2)*B
            H3=A*DELTA
            H=(((H1*V+H2-H3/V)/RT(V)-(H1*U+H2-H3/U)/RT(U))/DELTA
-     1       -3*HF*B*H)/A**2
+     &       -3*HF*B*H)/A**2
           ELSEIF(K .EQ. -3) THEN
            G1=A*DELTA
            G2=A*C
@@ -281,52 +350,13 @@
            H3=(G4-62*G2)*G3+24*G2**2
            H4=B*C*(G4-52*G2)
            H=((((H2-H1/V)/V-H3-H4*V)/RT(V)-((H2-H1/U)/U-H3-H4*U)/RT(U))
-     1        /DELTA+HF*(G4-12*G2)*H)/(4*A**3)
+     &        /DELTA+HF*(G4-12*G2)*H)/(4*A**3)
           ENDIF
          ENDIF
         ENDIF
        ENDIF
       ENDIF
-      GO TO 9
 
-   10 C2=2*C
-      IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
-       H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
-     1           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
-      ELSEIF(DELTA .EQ. 0) THEN
-       H=ABS(LOG(ABS((C2*V+B)/(C2*U+B))))/SQRT(C)
-      ELSE
-       H=(ASIN((C2*U+B)/RTD)-ASIN((C2*V+B)/RTD))/SQRT(-C)
-      ENDIF
-      GO TO JMP1, (11,12,13)
-
-   20 IF(C .EQ. 0) THEN
-       IF(B .EQ. 0) THEN
-        H=LOG(ABS(V/U))/SQRT(A)
-       ELSE
-        IF(A .LT. 0) THEN
-         H=2*(ATAN(SQRT(-(A+B*V)/A))-ATAN(SQRT(-(A+B*U)/A)))/SQRT(-A)
-        ELSE
-         WA=SQRT(A)
-         WU=SQRT(A+B*U)
-         WV=SQRT(A+B*V)
-         H=LOG(ABS((WV-WA)*(WU+WA)/((WV+WA)*(WU-WA))))/WA
-        ENDIF
-       ENDIF
-      ELSE
-       A2=2*A
-       IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. A .GT. 0) THEN
-        H=LOG(ABS((-2*SQRT(A*P(V))+B*V+A2)*U/
-     1           ((-2*SQRT(A*P(U))+B*U+A2)*V)))/SQRT(A)
-       ELSEIF(DELTA .EQ. 0) THEN
-        H=LOG(ABS((B*U+A2)*V/((B*V+A2)*U)))/SQRT(A)
-        IF(U*V .GT. 0) H=SIGN(H,U)
-       ELSE
-        H=(ASIN((B*V+A2)/(V*RTD))-ASIN((B*U+A2)/(U*RTD)))/SQRT(-A)
-        IF(U .LT. 0 .AND. V .LT. 0) H=-H
-       ENDIF
-      ENDIF
-      GO TO JMP2, (21,22)
 
     9 RES=SIGN(R1,V1-U1)*H
       LRL=LLL