*DECK C$DTOD
          IDENT  C$DTOD 
          TITLE  CBDTOD - DOUBLE ** DOUBLE
  
          MACHINE  ANY,I
          COMMENT  DOUBLE ** DOUBLE 
 CBDTOD   SPACE  4
**        C.DTOD - DOUBLE ** DOUBLE 
* 
*         INPUT 
*                X1   BASE (UPPER HALF) 
*                X2   BASE (LOWER HALF) 
*                X3   EXPONENT (UPPER HALF) 
*                X4   EXPONENT (LOWER HALF) 
* 
*         OUTPUT
*                X5   RESULT (UPPER HALF) 
*                X0   RESULT (LOWER HALF) 
*                B3   ERROR FLAG
* 
*         SAVES 
*                B1 
* 
*         CALLS-
*                FORTRAN OBJECT LIBRARY ROUTINE *DTOD.* 
  
          ENTRY  C.DTOD 
 C.DTOD   DATA   0
          SB3    B0          ZERO ERROR FLAG
          NG     X1,C.DTOD3 
          ZR     X1,C.DTOD2 
          ZR     X3,C.DTOD1 
          RJ     =XDTOD.
          BX5    X6 
          BX0    X7 
          SB3    B0 
          SB1    1
          EQ     C.DTOD 
  
 C.DTOD1  SA5    =XC.FP1     X**0 = 1 
          MX0    0
          EQ     C.DTOD 
  
 C.DTOD2  NG     X3,C.DTOD3  0**(-X) UNDEFINED
          ZR     X3,C.DTOD3  0**0    UNDEFINED
          MX5    0           0**X = 0 
          MX0    0
          EQ     C.DTOD 
  
 C.DTOD3  SB3    B1          ERROR
          EQ     C.DTOD 
          TITLE  DTOD. - FORTRAN 5 DOUBLE ** DOUBLE 
**        DTOD. - FORTRAN 5 DOUBLE ** DOUBLE
* 
*         DTOD. WILL RAISE A DOUBLE BASE TO A DOUBLE POWER WITH NO
*         ERROR CHECKING. 
*         D = D1**D2
* 
*         ENTRY  (X1) - UPPER PART OF D1
*                (X2) - LOWER PART OF D1
*                (X3) - UPPER PART OF D2
*                (X4) - LOWER PART OF D2
*         EXIT   (X6) - UPPER PART OF RESULT
*                (X7) - LOWER PART OF RESULT
*         CALLS  C$DEXP, C$DLOG 
  
  
*         COPYRIGHT CONTROL DATA CORP 1978,1979,1980,1981,1982
* 
*         CONTROL DATA PROPRIETARY PRODUCT
  
 DTOD.    DATA   1           ENTRY/EXIT WORD
          BX6    X3 
          LX7    X4 
          SA6    EXPON       SAVE THE EXPONENT
          SA7    EXPON+1
          RJ     =XC$DLOG      DLOG(BASE) 
  
          SA1    EXPON
          SA2    EXPON+1
          FX4    X7*X1       EXPONENT*DLOG(BASE)    (DOUBLE PRECISION)
          FX5    X6*X2
          FX4    X4+X5
          DX5    X6*X1
          FX7    X6*X1
          FX5    X4+X5
          FX1    X5+X7
          DX2    X5+X7
          RJ     =XC$DEXP      D1**D2 = 2.718281728459 ** (D2 * DLOG(D1)) 
          EQ     DTOD.
  
 EXPON    BSS    2
          END 
