diff --git a/app/native-multi-image.F90 b/app/native-multi-image.F90 index 70adfbcb..889a311c 100644 --- a/app/native-multi-image.F90 +++ b/app/native-multi-image.F90 @@ -151,6 +151,9 @@ #ifndef HAVE_EVENT_POST_WAIT #define HAVE_EVENT_POST_WAIT HAVE_EVENT #endif +#ifndef HAVE_EVENT_POST_WAIT_ARRAY +#define HAVE_EVENT_POST_WAIT_ARRAY HAVE_EVENT +#endif #ifndef HAVE_EVENT_QUERY #define HAVE_EVENT_QUERY HAVE_EVENT #endif @@ -408,6 +411,7 @@ program native_multi_image # if HAVE_EVENT_TYPE type(event_type), target :: default_event[*] type(event_type) :: test_event[*] + type(event_type), allocatable :: test_event_arr(:)[:] # endif # if HAVE_NOTIFY_TYPE type(notify_type), target :: default_notify[*] @@ -776,13 +780,31 @@ program native_multi_image # if HAVE_EVENT_POST_WAIT STATUS("Testing event post / event wait...") if (THIS_IMAGE() == 1) then - !event post (test_event) ! currently broken + event post (test_event) event post (test_event[1]) + event wait (test_event) event wait (test_event, until_count=NUM_IMAGES()) else event post (test_event[1]) end if # endif +# if HAVE_EVENT_POST_WAIT_ARRAY + STATUS("Testing event post / event wait (allocatable array)...") + allocate(test_event_arr(4)[*]) + if (THIS_IMAGE() == 1) then + do i = 1, size(test_event_arr) + event post (test_event_arr(i)) + event post (test_event_arr(i)[1]) + event wait (test_event_arr(i)) + event wait (test_event_arr(i), until_count=NUM_IMAGES()) + end do + else + do i = 1, size(test_event_arr) + event post (test_event_arr(i)[1]) + end do + end if + deallocate(test_event_arr) +# endif # if HAVE_LOCK_TYPE CHECK_TYPE_COMPLIANCE(LOCK_TYPE, default_lock, .false., 64) diff --git a/app/print-native-flags.F90 b/app/print-native-flags.F90 index bbd57eb2..704f8b56 100644 --- a/app/print-native-flags.F90 +++ b/app/print-native-flags.F90 @@ -59,14 +59,14 @@ subroutine write_flags call no("COARRAY_LOCAL_ACCESS") call no("PUTGET") - call no("EVENT") - call yes("EVENT_TYPE") + call yes("EVENT") + call no("EVENT_QUERY") call no("LOCK") call yes("LOCK_TYPE") call no("NOTIFY") call yes("NOTIFY_TYPE") - call set("-DIGNORE_FAILURES=6") ! type checks for event, notify, lock + call set("-DIGNORE_FAILURES=4") ! type checks for notify, lock # endif #elif __LFORTRAN__ # if __LFORTRAN_MAJOR__ == 0 && __LFORTRAN_MINOR__ <= 63 @@ -155,6 +155,7 @@ subroutine write_flags # endif call set("-DTYPES_PRIF_COMPLIANT=0") call no("COSHAPE") ! missing F2018 feature + call no("CO_BROADCAST_DERIVED_POD") ! fails to broadcast the entire array of derived type call set("-DIGNORE_FAILURES=2") ! CO_MIN(character) get wrong answer with > 9 images # endif #elif __INTEL_COMPILER diff --git a/install.sh b/install.sh index 4f7cf4ad..95f6a0e7 100755 --- a/install.sh +++ b/install.sh @@ -887,7 +887,8 @@ info) echo MAKE=\$MAKE echo FC=\$FC echo CC=\$CC - echo FFLAGS=\$FFLAGS + echo FFLAGS=\$RAWFLAGS + echo NATIVEFLAGS=\$NATIVEFLAGS echo CFLAGS=\$CFLAGS echo LDFLAGS=\$LDFLAGS grep -e link \$SRCDIR/fpm.toml