aboutsummaryrefslogtreecommitdiff
path: root/test cases/fortran/3 module procedure
diff options
context:
space:
mode:
authorMichael Hirsch, Ph.D <scivision@users.noreply.github.com>2019-06-23 11:14:06 -0400
committerJussi Pakkanen <jpakkane@gmail.com>2019-06-23 21:11:16 +0300
commit3f531be2e77656976f54c16ecaa9419dad6ac9ff (patch)
tree8ae762cc03b806b41ffd46df0a3df51f1825c522 /test cases/fortran/3 module procedure
parent9dbd5f129b770d365caaed6a805fb43de8100682 (diff)
downloadmeson-3f531be2e77656976f54c16ecaa9419dad6ac9ff.zip
meson-3f531be2e77656976f54c16ecaa9419dad6ac9ff.tar.gz
meson-3f531be2e77656976f54c16ecaa9419dad6ac9ff.tar.bz2
fortran 2003 use, non_instrinsic
incl inver
Diffstat (limited to 'test cases/fortran/3 module procedure')
-rw-r--r--test cases/fortran/3 module procedure/meson.build7
-rw-r--r--test cases/fortran/3 module procedure/prog.f9015
-rw-r--r--test cases/fortran/3 module procedure/use_syntax.f9031
3 files changed, 35 insertions, 18 deletions
diff --git a/test cases/fortran/3 module procedure/meson.build b/test cases/fortran/3 module procedure/meson.build
index f05a70c..a590015 100644
--- a/test cases/fortran/3 module procedure/meson.build
+++ b/test cases/fortran/3 module procedure/meson.build
@@ -1,4 +1,5 @@
-project('use in same file', 'fortran')
+project('Fortran 2003 use statement, in same file', 'fortran',
+ meson_version: '>= 0.50.0')
-e = executable('prog', 'prog.f90')
-test('simple', e)
+e = executable('use_syntax', 'use_syntax.f90')
+test('Fortran 2003 use syntax', e)
diff --git a/test cases/fortran/3 module procedure/prog.f90 b/test cases/fortran/3 module procedure/prog.f90
deleted file mode 100644
index 4899d8b..0000000
--- a/test cases/fortran/3 module procedure/prog.f90
+++ /dev/null
@@ -1,15 +0,0 @@
-MODULE Circle
- REAL, PARAMETER :: Pi = 3.1415927
- REAL :: radius
- INTERFACE DEFAULT
- MODULE PROCEDURE func
- END INTERFACE
- CONTAINS
- FUNCTION func()
- func = 0
- END FUNCTION
-END MODULE Circle
-
-PROGRAM PROG
- print *, "Module procedure is working."
-END PROGRAM PROG
diff --git a/test cases/fortran/3 module procedure/use_syntax.f90 b/test cases/fortran/3 module procedure/use_syntax.f90
new file mode 100644
index 0000000..2f3a9e6
--- /dev/null
+++ b/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