1.5.1 FORTRAN Dialects

Standards for computer languages are set by standard organizations (in Japan, JIS) and the International Organization for Standardization (ISO). FORTRAN is no exception, and its standards are:

All three are basically the same, and are referred to as the FORTRAN77 standard.

Language standards are similar to "Japanese grammar," and one must know them to make the computer carry out the desired operations. This seems obvious, but it isn't that simple. Many people, when they learn how to program using FORTRAN, do not do so in the way they would learn a foreign language (English, for example), that is, by studiously learning  the grammar. In fact, many learn to use FORTRAN as they had learned Japanese - by imitating examples and through trial and error.  Such learning habits will result in inheriting dialects without the person realizing it, and it is not uncommon for a person to write a program that can only be understood by a specific compiler for a specific computer.

The FORTRAN compiler usually has the FORTRAN77 standard + alpha functions. This alpha part is called the extended functions and compilers with extended functions are referred to as the FORTRAN77 upper compatible compilers. This means the the compiler has "higher capability" and that it can compile programs written only using the standard language and also those written with the standard language plus the alpha functions. However, it also means that programs that use these alpha functions must be compiled using the "high capability" compilers. These alpha portions is what is called the dialect.

In colloquial styles, dialects do not present problems, and are rather convenient since they can relay nuances that cannot be expressed in standard languages. This is because dialects work as extended functions for the standard language, but when dialects are used in business conversations, they often complicate matters. One would be confused as whether to go to Tokyo or not tomorrow upon hearing "Asu Tokyo ni ikazu," as this means "Let's not go to Tokyo tomorrow" in standard Japanese while it means "Let's go to Tokyo tomorrow" in the dialect of Chubu region.

Similarly, FORTRAN dialects may be convenient to use on a certain computer, but it should not be overused. However, just as one would not be aware of one's dialect if one does not leave his native region, it is difficult to learn correct FORTRAN grammar if one's experience is limited to a certain computer. This is because the person would mistakenly believe that programs that can be compiled by the  FORTRAN77 compiler he normally uses follow the FORTRAN77 standard. Of course, this is clearly wrong. All compiler have dialects to some extent, and all programs using such dialects are not programs conforming to FORTRAN77 standards even if they can be compiled using a FORTRAN77-conformed compiler.

Therefore, it is strongly advised that beginners who have just learned to write programs in FORTRAN and veterans who have been doing so for more than 10 years all keep a copy of the "Iwanami FORTRAN Dictionary" o his desk, besides other grammar books on market. This is not just a grammar book, and is also a pleasure to read since it provides the meaning of the standards and the historical backgrounds.

The DCL has avoided the use of "dialects" as much as possible, and there are only a few exceptions. When the use of dialects cannot be avoided, they are not used directly, but are defined as "DCL standard language" and used as such in the respective programs. 

For example,  when the  msgdmp in SYSLIB detects an error, it performs a system-dependent error handling (for example, output of error trace-back information) and then calls the osabrt subroutine which forcefully aborts the program. Each compiler has a similar subroutine as a dialect, and what the osabrt  is doing is simply calling the compiler-native subroutine (the dialect). However, by writing a different subroutine using osabrt , which is a "DCL standard language,"  only the osabrt  needs to be adapted for use with different compilers to transfer all programs.

This portability is the strongest feature of the DCL, and where the library developers put most of their efforts into. To use this feature to its fullest extent, we hope that the users will work to gain a good understanding of the FORTRAN grammar and to avoid the use of unnecessary dialects.

The following sections will provide a brief explanation of what you should know to avoid unnecessary dialects, some facts you might find convenient, and on pitfalls in programming.