*DECK MATH= 
          IDENT  MATH=
          COMMENT INTERFACE TO FORTRAN LIBRARY ROUTINES.
          TITLE  MATH= - INTERFACE TO FORTRAN LIBRARY ROUTINES. 
 CAL      SPACE  4,10 
**        CAL - CRACK ARGUMENT LIST.
* 
*         ENTRY  (A1) = PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
*         EXIT   (X1) = UPPER HALF OF FIRST OPERAND.
*                (X2) = LOWER HALF OF FIRST OPERAND.
*                (X3) = UPPER HALF OF SECOND OPERAND. 
*                (X4) = LOWER HALF OF SECOND OPERAND. 
*                (X5) = ADDRESS FOR RESULT. 
*                (B1) = 1.
  
  
 CAL      SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1
          SA5    A3+B1
          SA1    X1 
          SA3    X3 
          SA2    A1+B1
          SA4    A3+B1
          EQ     EXIT.
 DADD     SPACE  4,10 
**        DADD - DOUBLE PRECISION ADD.
* 
*         DADD(D1,D2,RESULT)
* 
*         ENTRY  (A1) = PARAMETER LIST. 
  
  
 DADD     SUBR   =           ENTRY/EXIT 
          RJ     CAL         CRACK ARGUMENT LIST
          FX6    X3+X1       I1=P3+P2 
          DX1    X3+X1       I2=L(P3+P2)
          FX2    X4+X2       I3=P6+P5 
          FX3    X2+X1       I5=I3+I2 
          FX0    X3+X6       I6=I5+I1 
          NX0    X0          I7=NORM(I6)
          DX4    X3+X6       I8=L(I5+I1)
          NX4    X4          I9=NORM(I8)
          FX6    X4+X0       P1=I9+I7 
          DX7    X4+X0       P4=L(I9+I7)
          SA6    X5          (P1,P4)=(P2,P5)+(P3,P6)
          SA7    X5+B1
          EQ     EXIT.
 DDIV     SPACE  4,10 
**        DDIV - DOUBLE PRECISION DIVIDE. 
* 
*         DDIV(D1,D2,RESULT)
* 
*         ENTRY  (A1) = PARAMETER LIST. 
  
  
 DDIV     SUBR   =           ENTRY/EXIT 
          RJ     CAL         CRACK ARGUMENT LIST
          FX6    X1/X3       I1=P2/P3 
          FX7    X6/X3       I2=I1/P3 
          FX0    X1*X7       I3=P2-I2 
          DX1    X1-X7       I4=L(P2-I2)
          NX0    X0          I5=NORM(I3)
          FX0    X1+X0       I6=I4+I5 
          DX1    X6*X3       I7=L(I1*P3)
          FX4    X6*X4       I8=I1*P6 
          FX2    X2-X1       I9=P5-I7 
          FX2    X2-X1       I10=I6+I9
          FX4    X1-X4       I11=I10-I8 
          FX3    X4/X3       I12=I11/P3 
          DX2    X6+X3       I13=L(I1+I12)
          FX4    X6+X3       I14=I1+I12 
          NX4    X4          I15=NORM(I14)
          FX6    X2+X4       P1=I13+I15 
          DX7    X2+X4       P4=L(I13+I15)
          SA6    X5          (P1,P4)=(P2,P5)/(P3,P6)
          SA7    X5+B1
          EQ     EXIT.
 DMULT    SPACE  4,10 
**        DMULT - DOUBLE PRECISION MULTIPLY.
* 
*         DMULT(D1,D2,RESULT) 
* 
*         ENTRY  (A1) = PARAMETER LIST. 
  
  
 DMULT    SUBR   =           ENTRY/EXIT 
          RJ     CAL         CRACK ARGUMENT LIST
          FX2    X2*X3       I1=P5*P3 
          FX0    X1*X4       I2=P2*P6 
          FX0    X0+X2       I3=I1+I2 
          FX4    X1*X3       I4=P2*P3 
          DX3    X1*X3       I5=L(P2*P3)
          FX3    X0+X3       I6=I3+I5 
          FX6    X4+X3       P1=I4+I6 
          DX7    X4+X3       P4=L(I4+I6)
          SA6    X5          (P1,P4)=(P2,P5)*(P3,P6)
          SA7    X5+B1
          EQ     EXIT.
 DSUB     SPACE  4,10 
**        DSUB - DOUBLE PRECISION SUBTRACT. 
* 
*         DSUB(D1,D2,RESULT)
* 
*         ENTRY  (A1) = PARAMETER LIST. 
  
  
 DSUB     SUBR   =           ENTRY/EXIT 
          RJ     CAL         CRACK ARGUMENT LIST
          FX0    X1-X3       I1=P2-P3 
          DX6    X1-X3       I2=L(P2-P3)
          FX2    X2-X4       I3=P5-P6 
          FX2    X2+X6       I5=I3+I2 
          FX4    X2+X0       I6=I5+I1 
          NX4    X4          I7=NORM(I6)
          DX2    X2+X0       I8=L(I5+I1)
          NX2    X2          I9=NORM(I8)
          FX6    X2+X4       P1=I9+I7 
          DX7    X2+X4       P4=L(I9+I7)
          SA6    X5          (P1,P4)=(P2,P5)-(P3,P6)
          SA7    X5+B1
          EQ     EXIT.
 DTOD     SPACE  4,10 
**        DTOD - DOUBLE PRECISION EXPONENTIATION. 
* 
*         DTOD(D1,D2,RESULT)
* 
*         ENTRY  (A1) = PARAMETER LIST. 
  
  
 DTOD     SUBR   =           ENTRY/EXIT 
          RJ     CAL         CRACK ARGUMENT LIST
          BX6    X5 
          SA6    DTODA       SAVE RESULT ADDRESS
 +        RJ     =XDTOD.     CALL FORTRAN LIBRARY ROUTINE 
          SA1    DTODA
          SA6    X1 
          SA7    X1+1        SAVE RESULT
          EQ     EXIT.
  
 DTODA    CON    0           PARAMETER SAVE AREA
 ITOJ     SPACE  4,10 
**        ITOJ - INTEGER EXPONENTIATION FUNCTION. 
* 
*         RESULT = ITOJ(I,J)
* 
*         ENTRY  (A1) = PARAMETER LIST. 
*         EXIT   (X6) = RESULT. 
  
  
 ITOJ     SUBR   =           ENTRY/EXIT 
          RJ     CAL         CRACK ARGUMENT LIST
 +        RJ     =XITOJ.     CALL FORTRAN LIBRARY ROUTINE 
          EQ     EXIT.
 XTOY     SPACE  4,10 
**        XTOY - REAL EXPONENTIATION FUNCTION.
* 
*         RESULT = XTOY(X,Y)
* 
*         ENTRY  (A1) = PARAMETER LIST. 
*         EXIT   (X6) = RESULT. 
  
  
 XTOY     SUBR   =           ENTRY/EXIT 
          RJ     CAL         CRACK ARGUMENT LIST
 +        RJ     =XXTOY.     CALL FORTRAN LIBRARY ROUTINE 
          EQ     EXIT.
  
          END 
