I don’t have much to add beyond what I have said earlier on this implicit typing issue. In short, I think backward compatibility with legacy code is more important that others here in this discussion.
As for the burden of including implicit none in subroutines and interface blocks now, that argument doesn’t really make sense. If implicit none were the standard, then all variables would need to be explicitly typed. But as I have pointed out before, if all variables are explicitly typed, then it doesn’t matter if implicit none is there or what is the default implicit mapping, the codes will compile the same either way. Implicit none is more for code development, not necessarily for the final product.
Regarding the f77 subset comments above, I did use several fortran compilers in the early 1980s that did not have double precision. The FPS and Cray fortran compilers were two of them. The FPS compiler was otherwise a pretty good f77 compiler. Instead of a full compiler manual, they gave their customers a copy of the ANSI standard document along with a smaller manual with limitations and extensions. My memory might be fuzzy, but I think it did support complex, so it was perhaps best described as somewhere between the subset and the full f77 language. The Cray compiler was not f77 in the 1970s and early 1980s. It supported dozens of extensions, mostly high-level versions of the cray vector instructions to make efficient compilation easier. There were no characters and no open statements, for example. Sometime later, about 1989 or so, Cray did eventually have an f77 compiler on their Cray cpus. I remember it being a little slower than their mature compiler at first, but I used it anyway because it compiled my codes with fewer modifications (which were done with a preprocessor).