aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/fortran/3 module procedure
diff options
context:
space:
mode:
Diffstat (limited to 'meson/test cases/fortran/3 module procedure')
-rw-r--r--meson/test cases/fortran/3 module procedure/meson.build5
-rw-r--r--meson/test cases/fortran/3 module procedure/use_syntax.f9031
2 files changed, 36 insertions, 0 deletions
diff --git a/meson/test cases/fortran/3 module procedure/meson.build b/meson/test cases/fortran/3 module procedure/meson.build
new file mode 100644
index 000000000..a59001570
--- /dev/null
+++ b/meson/test cases/fortran/3 module procedure/meson.build
@@ -0,0 +1,5 @@
+project('Fortran 2003 use statement, in same file', 'fortran',
+ meson_version: '>= 0.50.0')
+
+e = executable('use_syntax', 'use_syntax.f90')
+test('Fortran 2003 use syntax', e)
diff --git a/meson/test cases/fortran/3 module procedure/use_syntax.f90 b/meson/test cases/fortran/3 module procedure/use_syntax.f90
new file mode 100644
index 000000000..2f3a9e652
--- /dev/null
+++ b/meson/test cases/fortran/3 module procedure/use_syntax.f90
@@ -0,0 +1,31 @@
+module circle
+implicit none
+
+integer :: x
+real :: radius
+
+interface default
+ module procedure timestwo
+end interface
+
+contains
+
+elemental integer function timestwo(x) result(y)
+ integer, intent(in) :: x
+ y = 2*x
+end function
+end module circle
+
+program prog
+
+use, non_intrinsic :: circle, only: timestwo, x
+
+implicit none
+
+x = 3
+
+if (timestwo(x) /= 6) error stop 'fortran module procedure problem'
+
+print *,'OK: Fortran module procedure'
+
+end program prog