! Program to test contained functions calling their siblings. ! This is tricky because we don't find the declaration for the sibling ! function until after the caller has been parsed. program contained_3 call test contains subroutine test if (sub(3) .ne. 6) call abort end subroutine integer function sub(i) integer i if (i .gt. 1) then sub = sub2(i) * i else sub = 1 end if end function integer function sub2(i) integer i sub2 = sub(i - 1) end function end program