Our new system is the Intel64 f90 on Red Hat Linux 64 bit environment.
I am porting from DEC Alpha Unix Tru 64. So we are moving from a 64 bit environment, to a new 64 bit environment using a 64 bit compiler.
The real declarations used in the old code are: Implicit real*8(A-H,O-Z)
In one large application, I spent a week changing the real declaration from the implicit to: IMPLICIT NONE and the REAL(8) for the all the vars thereby explicitly declaring all the reals.
I am now working on a huge application (at least a half billion lines of code) and it uses the same implicit declarations.
The compiler does not complain about the use of implicit declaration; however, I am having problems with the output. Do I need to stop troubleshooting and explicitly declare the reals before proceeding any further?
Thanks in advance for you time. -Jon
Having ported a Fortran application from Alpha OpenVMS to Linux, I can offer the opinion that "implicit none" is worth it. Let the compiler find the variables that need to be declared; errors and warnings can be your friend.
You might look at using the command line option:
***However, there may be issues to resolve with library routines that you do not compile.
I do strongly agree/suggest use of IMPLICIT NONE.
Also, make use of all the compilation diagnostics during conversion as this often shakes out errors in coding that went undetected.
If you really decide to write declarations for 500 million lines of code, you should use utilities that are known to do a good job of that.
It may also be useful to use the cross-reference listings that the compiler can output when run on the old code. Those listings will show information about the variables in each subprogram, which you can use in checking the variable declarations that are being added.