Re: [mpich-discuss] mpich2-1.0.7 file mpif.h and fortran compiler g95

cornelis.broeders at web.de cornelis.broeders at web.de
Sat Oct 11 17:44:18 CDT 2008


I am not so sure that it is not a practical mpich problem.
The well-designed and well-maintained code mcnpx includes the file mpif.h with a SAVE statement. Only the g95 compiler complains with the discussed error, resulting in compilation stop. In my opinion it is reasonable to consider a g95 specific treatment in mpich, especially in view of the many fortran code adaptations to the free avaliable fortran compiler g95,
Cheers,
C.B.


> -----Ursprüngliche Nachricht-----
> Von: "Martin Siegert" <siegert at sfu.ca>
> Gesendet: 11.10.08 23:30:20
> An: mpich-discuss at mcs.anl.gov
> Betreff: Re: [mpich-discuss] mpich2-1.0.7 file mpif.h and fortran compiler g95


> Surely this is not a mpich problem but a problem with the program
> that includes the blanket save statement. The Fortran standard is
> quite clear about this:
> 
> "If a SAVE statement with an omitted saved entity list occurs in a scoping
> unit, no other explicit occurrence of the SAVE attribute or SAVE statement
> is permitted in the same scoping unit."
> 
> Thus, this is not a problem related to g95 since it follows the standard
> (you could argue that the gfortran behaviour is actually incorrect).
> Other compilers could (should) behave the same way.
> In other words, if you do have a blanket save statement you either do not
> include any other files or you must make sure that those included files
> do not contain save statements. If you cannot guarantee that because,
> e.g., those files are from third party software, you must not have
> a blanket save statement, but list the saved variables explicitly.
> 
> Cheers,
> Martin
> 
> -- 
> Martin Siegert
> Head, Research Computing
> WestGrid Site Lead
> IT Services                                phone: 778 782-4691
> Simon Fraser University                    fax:   778 782-4242
> Burnaby, British Columbia                  email: siegert at sfu.ca
> Canada  V5A 1S6
> 
> On Sat, Oct 11, 2008 at 12:33:47PM +0200, cornelis.broeders at web.de wrote:
> > problem is reproducable with following procedures:
> > 
> > 1) create file savetest.F with 4 lines:  
> > 
> >      save
> > #include "sav.h"
> >       stop
> >       end
> > 
> > 2) create file sav.h with 2 lines:
> > 
> >       integer*4 j
> >       save j
> > 
> > 3) run g95 result:
> > 
> > g95 -o savetest savetest.F
> > In file sav.h:2
> > 
> >     Included at savetest.F:2
> > 
> >       save j
> > 
> > 
> >           1
> > Error: SAVE statement at (1) follows blanket SAVE statement
> > 
> > 4) for completeness gfortran: 
> > 
> > gfortran -o savetest savetest.F
> > sav.h:2.10:
> >     Included at savetest.F:3:
> > 
> >       save j
> >          1
> > Warning: SAVE statement at (1) follows blanket SAVE statement
> > sav.h:1.17:
> >     Included at savetest.F:3:
> > 
> >       integer*4 j
> >                 1
> > Warning: Duplicate SAVE attribute specified at (1)
> > 
> > I hope this information helps.
> > 
> > C.H.M. Broeders     http://www.cornelis-broeders.de     
> > 
> > 
> > > -----Ursprüngliche Nachricht-----
> > > Von: "Anthony Chan" <chan at mcs.anl.gov>
> > > Gesendet: 10.10.08 22:23:43
> > > An: mpich-discuss at mcs.anl.gov
> > > Betreff: Re: [mpich-discuss] mpich2-1.0.7 file mpif.h and fortran compiler g95
> > 
> > 
> > > 
> > > I don't see mpif.h has any "blanket" SAVE statement (assume I don't
> > > misinterpret what a "blanket" SAVE is).  To help us understand the issue,
> > > can you send us a simple fortran MPI program that illustrates the need
> > > of such a construct in mpif.h ?
> > > 
> > > Thanks,
> > > A.Chan
> > > 
> > > ----- "cornelis broeders" <cornelis.broeders at web.de> wrote:
> > > 
> > > > Hello,
> > > > I encountered the error message "SAVE statement at (1) follows blanket
> > > > SAVE statement"  during installation of the huge package mcnpx. After
> > > > some efforts I found that this message is generally issued by g95 (and
> > > > gfortran?) if a program with a previous "save" statement includes a
> > > > file, like mpif.h, containing  "save var" statements. Putting the SAVE
> > > > statements of mpif.h in an exclude construct "#ifndef G95  ... #endif
> > > > solved my problem. I propose to include such kind of patch for g95 in
> > > > future releases of mpich2. Could somebody comment on this proposal?
> > > > Best regards,  
> > > > 
> > > > 
> > > > 
> > > > C.H.M. Broeders,       http://www.cornelis-broeders.de
> > > 
> > > 
> > 
> > -- 
> > http://www.cornelis-broeders.de 
> > 
> > 
> > 
> > 
> > C.H.M. Broeders,       http://www.cornelis-broeders.de
> 
> 

-- 
http://www.cornelis-broeders.de 




C.H.M. Broeders,       http://www.cornelis-broeders.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Cornelis Broeders.vcf
Type: text/x-vcard
Size: 279 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20081012/92fc95a0/attachment.vcf>


More information about the mpich-discuss mailing list