subroutine sub(a) integer a end subroutine sub integer function func(a) integer a func = 0 return end function func recursive subroutine rsub(a) integer a end subroutine rsub recursive integer function rfunc(a) integer a rfunc = 0 return end function rfunc recursive function rfunc2(a) result(b) integer a integer b b = 0 return end function rfunc2 program test integer a call sub(a) end program test