Fortran was never meant to be interactive and was never meant to be a systems programming language. Its primary purpose was to describe mathematical computations and to do it expressively, reliably and fast.
Its I/O is geared towards batch operation: data will be read in, the CPU will crunch for hours and the results will be printed, maybe once maybe frequently enough to restart the program if the hardware failed on the way.
It has no concept of address so it cannot be made to control hardware in between I/O.
The only time that you can predict the value of variables is when I/O takes place. Between I/O, all bets are off. The only guarantee is that Output will be as if the described computations had taken place. Interactivity means that programs are sometimes expected to have their internal state inspected by some other program, which interprets the values in some region of memory as an image, say. Doing this in Fortran might not work without doing I/O or marking the variables as VOLATILE.
There’s a place for a systems programming language like C (to write kernels, compilers and browsers), a place for an interactive language like Python (to orchestrate a diversity of tools) and a place for a pure computation number-crunching myriad-core language like Fortran.