blob: 8fcda5ffa75affe2c092f1061d3db36d3478563e [file] [log] [blame]
! Program to test the power (**) operator
program testpow
implicit none
real(kind=4) r, s, two
real(kind=8) :: q
complex(kind=4) :: c, z
real, parameter :: del = 0.0001
integer i, j
i = 2
j = i ** 10
if (abs (j - 1024) .gt. del) STOP 1
j = i ** (-10)
if (abs (j - 0) .gt. del) STOP 2
j = i ** 0
if (abs (j - 1) .gt. del) STOP 3
i = 1
j = i ** 10
if (abs (j - 1) .gt. del) STOP 4
j = i ** (-10)
if (abs (j - 1) .gt. del) STOP 5
j = i ** 0
if (abs (j - 1) .gt. del) STOP 6
i = -1
j = i ** 10
if (abs (j - 1) .gt. del) STOP 7
j = i ** (-10)
if (abs (j - 1) .gt. del) STOP 8
j = i ** 0
if (abs (j - 1) .gt. del) STOP 9
j = i ** 11
if (abs (j - (-1)) .gt. del) STOP 10
j = i ** (-11)
if (abs (j - (-1)) .gt. del) STOP 11
c = (2.0, 3.0)
z = c ** 2
if (abs(z - (-5.0, 12.0)) .gt. del) STOP 12
z = c ** 7
if (abs(z - (6554.0, 4449.0)) .gt. del) STOP 13
two = 2.0
r = two ** 1
if (abs (r - 2.0) .gt. del) STOP 14
r = two ** 2
if (abs (r - 4.0) .gt. del) STOP 15
r = two ** 3
if (abs (r - 8.0) .gt. del) STOP 16
r = two ** 4
if (abs (r - 16.0) .gt. del) STOP 17
r = two ** 0
if (abs (r - 1.0) .gt. del) STOP 18
r = two ** (-1)
if (abs (r - 0.5) .gt. del) STOP 19
r = two ** (-2)
if (abs (r - 0.25) .gt. del) STOP 20
r = two ** (-4)
if (abs (r - 0.0625) .gt. del) STOP 21
s = 3.0
r = two ** s
if (abs (r - 8.0) .gt. del) STOP 22
s = -3.0
r = two ** s
if (abs (r - 0.125) .gt. del) STOP 23
i = 3
r = two ** i
if (abs (r - 8.0) .gt. del) STOP 24
i = -3
r = two ** i
if (abs (r - 0.125) .gt. del) STOP 25
c = (2.0, 3.0)
c = c ** two
if (abs(c - (-5.0, 12.0)) .gt. del) STOP 26
end program