Note these restrictions:
Output from an exception handler is unpredictable.
If you make your own exception handler, do not do any FORTRAN output from it. If you must do some, then call abort right after the output. Doing so reduces the relative risk of a system freeze. FORTRAN I/O from an exception handler amounts to recursive I/O. See the next paragraph.
Recursive I/O does not work reliably.
If you list a function in an I/O list, and if that function does I/O, then during runtime, the execution may freeze, or some other unpredictable problem results. This risk exists independent of using parallelization.
WRITE(*,*) x, f(x) Not allowed because f() does I/O. END FUNCTION F(X) WRITE(*,*) X RETURN END