summaryrefslogtreecommitdiffstats
path: root/test cases/fortran/13 coarray
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-29 04:41:38 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-29 04:41:38 +0000
commit7b6e527f440cd7e6f8be2b07cee320ee6ca18786 (patch)
tree4a2738d69fa2814659fdadddf5826282e73d81f4 /test cases/fortran/13 coarray
parentInitial commit. (diff)
downloadmeson-upstream.tar.xz
meson-upstream.zip
Adding upstream version 1.0.1.upstream/1.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test cases/fortran/13 coarray')
-rw-r--r--test cases/fortran/13 coarray/main.f9010
-rw-r--r--test cases/fortran/13 coarray/meson.build24
2 files changed, 34 insertions, 0 deletions
diff --git a/test cases/fortran/13 coarray/main.f90 b/test cases/fortran/13 coarray/main.f90
new file mode 100644
index 0000000..eee03ea
--- /dev/null
+++ b/test cases/fortran/13 coarray/main.f90
@@ -0,0 +1,10 @@
+program main
+implicit none
+
+if (this_image() == 1) print *, 'number of Fortran coarray images:', num_images()
+
+sync all ! semaphore, ensures message above is printed at top.
+
+print *, 'Process ', this_image()
+
+end program
diff --git a/test cases/fortran/13 coarray/meson.build b/test cases/fortran/13 coarray/meson.build
new file mode 100644
index 0000000..893cec9
--- /dev/null
+++ b/test cases/fortran/13 coarray/meson.build
@@ -0,0 +1,24 @@
+project('Fortran coarray', 'fortran',
+ meson_version: '>=0.50')
+
+fc = meson.get_compiler('fortran')
+
+if ['pgi', 'flang'].contains(fc.get_id())
+ error('MESON_SKIP_TEST: At least through PGI 19.10 and Flang 7.1 do not support Fortran Coarrays.')
+endif
+
+# coarray is required because single-image fallback is an intrinsic feature
+coarray = dependency('coarray')
+
+# check coarray, because user might not have all the library stack installed correctly
+# for example, conflicting library/compiler versions on PATH
+# this has to invoke a run of "sync all" to verify the MPI stack is functioning,
+# particularly for dynamic linking
+if fc.run('sync all; end', dependencies: coarray, name: 'Coarray link & run').returncode() != 0
+ error('MESON_SKIP_TEST: coarray stack (including MPI) did not link correctly so that a simple test could run.')
+endif
+
+exe = executable('hello', 'main.f90',
+ dependencies : coarray)
+
+test('Coarray hello world', exe, timeout: 10)