Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
27413 Discussions

Placement of SAVE statement within a module

Honari__Siavash
Beginner
404 Views

From a past forum discussion concerning the use of the SAVE statement, I know that adding a SAVE statement within the module is certainly the safest bet. However, I'm not sure where exactly to use the statement. For example, I don't know which of the following usages of SAVE statement are correct:

MODULE A
        IMPLICIT NONE
        SAVE
        INTEGER, PARAMETER:: B=0
END MODULE A

or

MODULE A
        IMPLICIT NONE
        INTEGER, PARAMETER:: B=0
        SAVE
END MODULE A

 

Thanks for any info.

0 Kudos
1 Solution
Steve_Lionel
Black Belt Retired Employee
404 Views

You don't need to use SAVE in a module, but if you do, anywhere in the specification-part is fine. Note that as of F2008, the words about module data being defined as long as a USE was in scope has been removed - the reality is that module data is implicitly SAVE and the standard now reflects that.

View solution in original post

5 Replies
jimdempseyatthecove
Black Belt
404 Views

SAVE does not belong in modules. Module data is persistent and global to those that USE it.

Jim Dempsey

Steve_Lionel
Black Belt Retired Employee
405 Views

You don't need to use SAVE in a module, but if you do, anywhere in the specification-part is fine. Note that as of F2008, the words about module data being defined as long as a USE was in scope has been removed - the reality is that module data is implicitly SAVE and the standard now reflects that.

Honari__Siavash
Beginner
404 Views
Thank you, Steve and Jim. I followed some of the old discussions suggesting that it is prudent to use the SAVE statement in the modules to ensure that all the variables are saved. Now if I understand correctly, it is not necessary but hopefully doesn't really hurt, right? Thanks
Steve_Lionel
Black Belt Retired Employee
404 Views

It doesn’t hurt and is still allowed by the standard.

Honari__Siavash
Beginner
404 Views

Thanks alot

Reply