| ! { dg-do run } |
| ! |
| ! Run-time test for EVENT_TYPE |
| ! |
| use iso_fortran_env, only: event_type |
| implicit none |
| |
| type(event_type), save, allocatable :: var(:)[:] |
| integer :: count, stat |
| |
| allocate(var(3)[*]) |
| |
| count = -42 |
| call event_query (var(1), count) |
| if (count /= 0) STOP 1 |
| call event_query (var(1), count) |
| if (count /= 0) STOP 2 |
| call event_query (var(2), count) |
| if (count /= 0) STOP 3 |
| call event_query (var(3), count) |
| if (count /= 0) STOP 4 |
| |
| stat = 99 |
| event post (var(2), stat=stat) |
| if (stat /= 0) STOP 5 |
| call event_query (var(1), count) |
| if (count /= 0) STOP 6 |
| call event_query(var(2), count, stat=stat) |
| if (count /= 1 .or. stat /= 0) STOP 7 |
| call event_query (var(3), count) |
| if (count /= 0) STOP 8 |
| |
| stat = 99 |
| event post (var(2)[this_image()]) |
| call event_query(var(1), count) |
| if (count /= 0) STOP 9 |
| call event_query(var(2), count) |
| if (count /= 2) STOP 10 |
| call event_query(var(2), count) |
| if (count /= 2) STOP 11 |
| call event_query(var(3), count) |
| if (count /= 0) STOP 12 |
| |
| stat = 99 |
| event wait (var(2)) |
| call event_query(var(1), count) |
| if (count /= 0) STOP 13 |
| call event_query(var(2), count) |
| if (count /= 1) STOP 14 |
| call event_query(var(3), count) |
| if (count /= 0) STOP 15 |
| |
| stat = 99 |
| event post (var(2)) |
| call event_query(var(1), count) |
| if (count /= 0) STOP 16 |
| call event_query(var(2), count) |
| if (count /= 2) STOP 17 |
| call event_query(var(3), count) |
| if (count /= 0) STOP 18 |
| |
| stat = 99 |
| event post (var(2)) |
| call event_query(var(1), count) |
| if (count /= 0) STOP 19 |
| call event_query(var(2), count) |
| if (count /= 3) STOP 20 |
| call event_query(var(3), count) |
| if (count /= 0) STOP 21 |
| |
| stat = 99 |
| event wait (var(2), until_count=2) |
| call event_query(var(1), count) |
| if (count /= 0) STOP 22 |
| call event_query(var(2), count) |
| if (count /= 1) STOP 23 |
| call event_query(var(3), count) |
| if (count /= 0) STOP 24 |
| |
| stat = 99 |
| event wait (var(2), stat=stat, until_count=1) |
| if (stat /= 0) STOP 25 |
| call event_query(event=var(1), stat=stat, count=count) |
| if (count /= 0 .or. stat /= 0) STOP 26 |
| call event_query(event=var(2), stat=stat, count=count) |
| if (count /= 0 .or. stat /= 0) STOP 27 |
| call event_query(event=var(3), stat=stat, count=count) |
| if (count /= 0 .or. stat /= 0) STOP 28 |
| end |