1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
module interface_09_m
abstract interface
subroutine add(x, y, z)
integer, intent(in) :: x
integer, intent(in) :: y
integer, intent(in) :: z
end subroutine
end interface
end module
program interface_09
use interface_09_m, only : add
procedure (add) :: add_def
procedure (add), pointer :: p
p => add_def
call p(5, 10, 15)
end program
subroutine add_def(x, y, z)
integer, intent(in) :: x
integer, intent(in) :: y
integer, intent(in) :: z
print *, "sum: ", x + y + z
end subroutine
|