quad_qag(...) error message



I get quad_qag(..) error message no. 2 
  ("excessive roundoff error") with
  a very simple function f(x) = x.
  
---------------------------------  
1. Why are we getting excessive
roundoff error with such a simple
integrand?

Or is this error message itself an error?

--------------------
2. Why are the SLATEC error messages
  progressively disappearing the more
  times we call quad_qags(..) with
  the same function? ("message exhaustion")

===================

(%i1) integrate( x, x, -1, 1 );
(%o1)                                  0

/* quad_qag(..) run 1  */

(%i2) for i thru 6 do
         (qlist : quad_qag( x, x, -1, 1, i ),
             print( "key is ", i ," ", qlist ) )$
             
 ***MESSAGE FROM ROUTINE DQAG IN LIBRARY SLATEC.
 ***INFORMATIVE MESSAGE, PROG CONTINUES, TRACEBACK REQUESTED
 *  ABNORMAL RETURN
 *  ERROR NUMBER = 2
 *   
 ***END OF MESSAGE
 
key is  1   [0.0, 1.1020760842711039E-14, 15, 2] 

[ SAME SLATEC MESSAGE, ERROR N0. 2  ]

key is  2   [0.0, 1.1060840041517323E-14, 21, 2] 

[ SAME SLATEC MESSAGE, ERROR N0. 2  ]

key is  3   [0.0, 1.108321668765528E-14, 31, 2] 

[ SAME SLATEC MESSAGE, ERROR N0. 2  ]

key is  4   [0.0, 1.1091368685730577E-14, 41, 2] 

[ SAME SLATEC MESSAGE, ERROR N0. 2  ]
 
key is  5   [0.0, 1.1095211642996757E-14, 51, 2] 

[ SAME SLATEC MESSAGE, ERROR N0. 2  ]
 
key is  6   [0.0, 1.1097322727621492E-14, 61, 2] 


-------------------


/* quad_qag(..) run 2  */

(%i3) for i thru 6 do
         (qlist : quad_qag( x, x, -1, 1, i ),
             print( "key is ", i ," ", qlist ) )$
             
[ SAME SLATEC MESSAGE, ERROR N0. 2  ]
 
key is  1   [0.0, 1.1020760842711039E-14, 15, 2] 

[ SAME SLATEC MESSAGE, ERROR N0. 2  ]
 
key is  2   [0.0, 1.1060840041517323E-14, 21, 2] 

[ SAME SLATEC MESSAGE, ERROR N0. 2  ]
 
key is  3   [0.0, 1.108321668765528E-14, 31, 2] 

[ SAME SLATEC MESSAGE, ERROR N0. 2  ]
 
key is  4   [0.0, 1.1091368685730577E-14, 41, 2] 
key is  5   [0.0, 1.1095211642996757E-14, 51, 2] 
key is  6   [0.0, 1.1097322727621492E-14, 61, 2] 

--------------------

/* quad_qag(..) run 3  */

(%i4) for i thru 6 do
         (qlist : quad_qag( x, x, -1, 1, i ),
             print( "key is ", i ," ", qlist ) )$
             
key is  1   [0.0, 1.1020760842711039E-14, 15, 2] 
key is  2   [0.0, 1.1060840041517323E-14, 21, 2] 
key is  3   [0.0, 1.108321668765528E-14, 31, 2] 
key is  4   [0.0, 1.1091368685730577E-14, 41, 2] 
key is  5   [0.0, 1.1095211642996757E-14, 51, 2] 
key is  6   [0.0, 1.1097322727621492E-14, 61, 2] 

--------------------------
Ted Woollett