A bump to this suggestion entirely in reaction to a Dr Fortran blog post, “Implicit Dissent”
It will be better, I feel rather strongly and so I repeat, if the practitioners of Fortran and the standard bearers make attempts to distinguish between
- implicit typing and
- implicit mapping.
That is, to let implicit typing
refer to the facility achieved by explicit IMPLICT statements in code such as IMPLICIT INTEGER(I-N), DOUBLE PRECISION(A-H,O-Z)'
that are common in legacy FORTRAN codes based on FORTRAN 77 and its various extensions. Or in modern Fortran codes, the ubiquitous implicit none
statement.
But for implicit mapping
, again note it refers to the specific mapping scheme in the Fortran standard, “If a mapping is not specified for a letter, the default for a program unit or an interface body is default integer if the letter is I, J, …, or N and default real otherwise” that has been rather detrimental to both the practitioners and to the overall goodwill toward Fortran to remain as “lingua franca” in scientific and technical computing.
There is really no need for Fortran to even obsolesce, let alone delete implicit typing
as distinguished in the 2 paragraphs above. If anything, under particular circumstances and as Fortran might advance to interactive computing, implicit typing
via explicit IMPLICIT statements can even be accepted as a good coding practice (GCP). The important point though is that its use is really a CHOICE for the Fortran programmer.
Implicit mapping
on the other hand must go. It FORCES a modern Fortran practitioner to introduce implicit none
statement in each and every program unit as well as all the interface bodies. See the example in the original post re: the latter.
There is no choice in practice really, the implicit none
statement has to be typed AD INFINITUM.
And note since MIL-STD-1753 starting 1980 i.e., over 40 years ago, almost every major institution such as NASA and US national labs, etc. and all the major and small companies and university and research departments developing Fortran libraries and applications have sought escape from the ill-effects of implicit mapping
in one form or other in their codes.
The situation now is there is hardly any code in Fortran known to the public domain that consciously seeks to employ the implicit mapping
facility in the standard. But yet the typing of implicit none
is continued to be imposed on coders.
So again, I keep hoping against hope the readers distinguish implicit mapping as entirely separate from the implicit typing
that is achieved with explicit use of IMPLICIT statements in code.
However the blogposts such as above keep conflating the two which makes communication so much harder for those offering minority reports like me and which then truly hurts those seeking to bring a different perspective and a meaningful improvement to the language for another Community from industry who is away from forums like these and who are silent because their work demands don’t allow them to make their voices heard online but who are also often herded away Fortran by their management simply because Fortran advances way, way, way too slowly or not at all.