In an application that I put together recently I utilised the allocatable argument feature in a function call but forgot to create an explicit interface in the calling program unit. I initially used the debug configuration during the development stage and the program seemed to behave perfectly well however when I compiled the Release configuration it crashed in the function at the point where it called
if(allocated(files)) deallocate(files) where files is the allocatable argument.
I cured the problem by putting the function in a module so that the interface is defined by the module. I am curious as to why it should work in Debug but not in Release and why the compiler can't detect such cases where allocatable arguments have no interfaces defined.