diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d65cd416d..ee5a7aa22 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -3,6 +3,7 @@ set(SRC stdlib_experimental_io.f90 stdlib_experimental_error.f90 stdlib_experimental_optval.f90 + stdlib_experimental_kinds.f90 ) add_library(fortran_stdlib ${SRC}) diff --git a/src/Makefile.manual b/src/Makefile.manual index 31ca7cad7..0807f3ff1 100644 --- a/src/Makefile.manual +++ b/src/Makefile.manual @@ -2,6 +2,7 @@ SRC = stdlib_experimental_ascii.f90 \ stdlib_experimental_error.f90 \ stdlib_experimental_io.f90 \ stdlib_experimental_optval.f90 \ + stdlib_experimental_kinds.f90 \ f18estop.f90 LIB = libstdlib.a @@ -28,4 +29,8 @@ clean: # Fortran module dependencies f18estop.o: stdlib_experimental_error.o -stdlib_experimental_io.o: stdlib_experimental_error.o stdlib_experimental_optval.o +stdlib_experimental_io.o: \ + stdlib_experimental_error.o \ + stdlib_experimental_optval.o \ + stdlib_experimental_kinds.o +stdlib_experimental_optval.o: stdlib_experimental_kinds.o diff --git a/src/stdlib_experimental_io.f90 b/src/stdlib_experimental_io.f90 index 547f9c0a9..048b30cfd 100644 --- a/src/stdlib_experimental_io.f90 +++ b/src/stdlib_experimental_io.f90 @@ -1,5 +1,5 @@ module stdlib_experimental_io -use iso_fortran_env, only: sp=>real32, dp=>real64, qp=>real128 +use stdlib_experimental_kinds, only: sp, dp, qp use stdlib_experimental_error, only: error_stop use stdlib_experimental_optval, only: optval implicit none diff --git a/src/stdlib_experimental_kinds.f90 b/src/stdlib_experimental_kinds.f90 new file mode 100644 index 000000000..d40a947b1 --- /dev/null +++ b/src/stdlib_experimental_kinds.f90 @@ -0,0 +1,10 @@ +module stdlib_experimental_kinds +use iso_fortran_env, only: sp=>real32, dp=>real64, qp=>real128 +use iso_fortran_env, only: int8, int16, int32, int64 +! If we decide later to use iso_fortran_env instead of iso_fortran_env: +!use iso_c_binding, only: sp=>c_float, dp=>c_double, qp=>c_float128 +!use iso_c_binding, only: int8=>c_int8_t, int16=>c_int16_t, int32=>c_int32_t, int64=>c_int64_t +implicit none +private +public sp, dp, qp, int8, int16, int32, int64 +end module diff --git a/src/stdlib_experimental_optval.f90 b/src/stdlib_experimental_optval.f90 index 85e67b8ce..6672d414c 100644 --- a/src/stdlib_experimental_optval.f90 +++ b/src/stdlib_experimental_optval.f90 @@ -8,7 +8,7 @@ module stdlib_experimental_optval !! !! It is an error to call `optval` with a single actual argument. !! - use iso_fortran_env, only: sp => real32, dp => real64, qp => real128, int8, int16, int32, int64 + use stdlib_experimental_kinds, only: sp, dp, qp, int8, int16, int32, int64 implicit none diff --git a/src/tests/io/test_loadtxt.f90 b/src/tests/io/test_loadtxt.f90 index 4b0ba95c8..fbd520e28 100644 --- a/src/tests/io/test_loadtxt.f90 +++ b/src/tests/io/test_loadtxt.f90 @@ -1,5 +1,5 @@ program test_loadtxt -use iso_fortran_env, only: sp=>real32, dp=>real64 +use stdlib_experimental_kinds, only: sp, dp use stdlib_experimental_io, only: loadtxt use stdlib_experimental_error, only: error_stop implicit none diff --git a/src/tests/io/test_loadtxt_qp.f90 b/src/tests/io/test_loadtxt_qp.f90 index 7ac4aa221..083eb3376 100644 --- a/src/tests/io/test_loadtxt_qp.f90 +++ b/src/tests/io/test_loadtxt_qp.f90 @@ -1,5 +1,5 @@ program test_loadtxt_qp -use iso_fortran_env, only: qp=>real128 +use stdlib_experimental_kinds, only: qp use stdlib_experimental_io, only: loadtxt implicit none diff --git a/src/tests/io/test_savetxt.f90 b/src/tests/io/test_savetxt.f90 index 273e72973..5ef4b5647 100644 --- a/src/tests/io/test_savetxt.f90 +++ b/src/tests/io/test_savetxt.f90 @@ -1,5 +1,5 @@ program test_savetxt -use iso_fortran_env, only: sp=>real32, dp=>real64 +use stdlib_experimental_kinds, only: sp, dp use stdlib_experimental_io, only: loadtxt, savetxt use stdlib_experimental_error, only: assert implicit none diff --git a/src/tests/io/test_savetxt_qp.f90 b/src/tests/io/test_savetxt_qp.f90 index 31492a0d0..69a973e00 100644 --- a/src/tests/io/test_savetxt_qp.f90 +++ b/src/tests/io/test_savetxt_qp.f90 @@ -1,5 +1,5 @@ program test_savetxt_qp -use iso_fortran_env, only: qp=>real128 +use stdlib_experimental_kinds, only: qp use stdlib_experimental_io, only: loadtxt, savetxt use stdlib_experimental_error, only: assert implicit none