C Test Program of Rounding Mode Control with C C for Linux / FreeBSD 3.x C C Written by Takeshi OGITA. 2000/12/4 C implicit real*8 (a-h, o-z) parameter (nd = 100, n = nd) dimension A(nd), B(nd), X(nd), Y(nd) C ii = 1 do i=1,n ii = -ii X(i) = 1.0*i Y(i) = 1.0*ii end do C call near do i=1,n A(i) = X(i)/10.0 B(i) = Y(i)/10.0 end do prod = 0.0 do i=1,n prod = prod + A(i)*B(i) end do write(6,1001) prod C call up do i=1,n A(i) = X(i)/10.0 B(i) = Y(i)/10.0 end do prod = 0.0 do i=1,n prod = prod + A(i)*B(i) end do write(6,1002) prod C call down do i=1,n A(i) = X(i)/10.0 B(i) = Y(i)/10.0 end do prod = 0.0 do i=1,n prod = prod + A(i)*B(i) end do write(6,1003) prod C call chop do i=1,n A(i) = X(i)/10.0 B(i) = Y(i)/10.0 end do prod = 0.0 do i=1,n prod = prod + A(i)*B(i) end do write(6,1004) prod C 1000 format(1h , i4, f25.20) 1001 format(1h , 'inner product (Near) = ', f25.20) 1002 format(1h , 'inner product (Up) = ', f25.20) 1003 format(1h , 'inner product (Down) = ', f25.20) 1004 format(1h , 'inner product (Chop) = ', f25.20) C pause stop end C===================================================================== C C C C inner product (Near) = 0.50000000000000000000 C inner product (Up) = 0.50000000000000544009 C inner product (Down) = 0.49999999999999455991 C inner product (Chop) = 0.50000000000000000000 C