aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/fortran/19 fortran_std/std2008.f90
diff options
context:
space:
mode:
authorAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
commitaf1a266670d040d2f4083ff309d732d648afba2a (patch)
tree2fc46203448ddcc6f81546d379abfaeb323575e9 /meson/test cases/fortran/19 fortran_std/std2008.f90
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'meson/test cases/fortran/19 fortran_std/std2008.f90')
-rw-r--r--meson/test cases/fortran/19 fortran_std/std2008.f9033
1 files changed, 33 insertions, 0 deletions
diff --git a/meson/test cases/fortran/19 fortran_std/std2008.f90 b/meson/test cases/fortran/19 fortran_std/std2008.f90
new file mode 100644
index 000000000..750173e1b
--- /dev/null
+++ b/meson/test cases/fortran/19 fortran_std/std2008.f90
@@ -0,0 +1,33 @@
+program main
+use, intrinsic :: iso_fortran_env, only : error_unit, sp=>real32, dp=>real64
+implicit none
+
+real(sp) :: a32
+real(dp) :: a64
+
+real(sp), parameter :: pi32 = 4*atan(1._sp)
+real(dp), parameter :: pi64 = 4*atan(1._dp)
+
+if (pi32 == pi64) error stop 'real32 values generally do not exactly equal real64 values'
+
+call timestwo(a32)
+call timestwo(a64)
+
+contains
+
+elemental subroutine timestwo(a)
+
+class(*), intent(inout) :: a
+
+select type (a)
+ type is (real(sp))
+ a = 2*a
+ type is (real(dp))
+ a = 2*a
+ type is (integer)
+ a = 2*a
+end select
+
+end subroutine timestwo
+
+end program