I was just thinking about the optional attribute, present() and optimisation by compilers.
subroutine foo(arg1, arg2)
real, intent(in) :: arg1
real, optional, intent(in) :: arg2
if (present(arg2)) then blabla...
If I use some aggressive optimization option implying inlining, will the compiler remove the if statement if arg2 is not present in a call? (I guess or I hope so)