What exactly does IMPLICIT NONE mean?

We are taught to use IMPLICIT NONE in our programs. But, how does it help? Let's find out.
 We declare our variables in the programs in a declaration statement such as:

real x,y,imag, angle, temp

integer a,b,matmul (10,10), Nfact, Binom

Earlier, there was no not required. This was an attempt to save memory.

All the variable names were automatically assigned a 'type' based on initials.  Those that began with I,J,K,L,M,N were assigned the type 'integer' and the rest were assigned 'real'. (Imagine working with just two types of variables!. Now, we have a lot more flexibility.)

This meant that imag would automatically be used as an integer and a,b and Binom would become real. The explicit declaration statement simply did not exit. Now suppose we typed umag instead of imag. Since there was no way to tell if we wanted umag in the program or if it was a mere typo, the program would run with a whole new variable umag that was of the type real. Imagine the errors this could lead to!

This is why we now have an implicit none statement. The program immediately 'catches' anything that is not declared. This was the program would warn you that you have used a variable (umag) but not declared it. You can immediately correct this error by correcting the spelling or declaring this variable with the type you desire(if that is what you wanted). It can be handy as a little spell check in your Fortran compiler's dictionary. Here is how you can declare this.

program what_you_may_call_it
implicit none

Notice that implicit none is used immediately after the program name, unless of course, you used a USE statement. It is also used in subroutines.

subroutine abc
implicit none

1 comment:

  1. Fortranease: What Exactly Does Implicit None Mean? >>>>> Download Now

    >>>>> Download Full

    Fortranease: What Exactly Does Implicit None Mean? >>>>> Download LINK

    >>>>> Download Now

    Fortranease: What Exactly Does Implicit None Mean? >>>>> Download Full

    >>>>> Download LINK x1

    ReplyDelete