1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
module math_submodule_10
implicit none
interface logspace
module function func1(n, base) result(res)
integer, intent(in) :: n
integer, intent(in) :: base
real :: res(max(n,0))
end function func1
module function func2(n, base) result(res)
integer, intent(in) :: n
real, intent(in) :: base
integer :: res(max(n, 0))
end function func2
end interface
end module
submodule (math_submodule_10) log_submodule_10
implicit none
contains
module procedure func1
real, parameter :: array(2) = [1.0 , 2.0]
res = array
end procedure
module procedure func2
integer, parameter :: array(2) = [1 , 2]
res = array
end procedure
end submodule
program submodule_10
use math_submodule_10
implicit none
integer, parameter :: n = 2
integer, parameter :: base = 1
real :: result1(n)
integer :: result2(n)
result1 = logspace(n, base)
result2 = logspace(n, base)
print *, result1
print *, result2
if (.not. all(result1 == [1.0, 2.0])) error stop
if (.not. all(result2 == [1, 2])) error stop
end program
|