| ! { dg-do run } |
| ! |
| ! CO_SUM/CO_MIN/CO_MAX |
| ! |
| program test |
| implicit none |
| intrinsic co_max |
| intrinsic co_min |
| intrinsic co_sum |
| call test_min |
| call test_max |
| call test_sum |
| contains |
| subroutine test_max |
| integer :: val |
| val = this_image () |
| call co_max (val, result_image=1) |
| if (this_image() == 1) then |
| !write(*,*) "Maximal value", val |
| if (val /= num_images()) STOP 1 |
| end if |
| end subroutine test_max |
| |
| subroutine test_min |
| integer :: val |
| val = this_image () |
| call co_min (val, result_image=1) |
| if (this_image() == 1) then |
| !write(*,*) "Minimal value", val |
| if (val /= 1) STOP 2 |
| end if |
| end subroutine test_min |
| |
| subroutine test_sum |
| integer :: val, n |
| val = this_image () |
| call co_sum (val, result_image=1) |
| if (this_image() == 1) then |
| !write(*,*) "The sum is ", val |
| n = num_images() |
| if (val /= (n**2 + n)/2) STOP 3 |
| end if |
| end subroutine test_sum |
| end program test |