program main implicit none integer :: a = 2, b = 3 call add_print(a, b) contains subroutine add_print(a, b, c) integer, intent(in) :: a, b integer, intent(in), optional :: c print *, a + b + c ! 省略された引数 c を参照している! end subroutine end program