Bug 54797 - Gnu Fortran compiler does not recognize module file it created
Summary: Gnu Fortran compiler does not recognize module file it created
Status: RESOLVED WONTFIX
Alias: None
Product: gcc
Classification: Unclassified
Component: fortran (show other bugs)
Version: 4.6.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-03 18:56 UTC by christopher.romick
Modified: 2013-11-24 19:22 UTC (History)
4 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2012-10-21 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description christopher.romick 2012-10-03 18:56:21 UTC
I am trying to compile a library of module files using make for use later in codes, that may require mpi or on earlier created modules. I have tested the compilation with pgfortran and intel compilers on linux with open-mpi 1.4.5 and it works perfectly. I have additionally tested it on linux using open-mpi 1.4.5 and gfortran 4.2.1 and on Mac OSx 10.6 with open-mpi 1.4.3 and gfortran 4.6, with both failing with the following error:

Fatal Error: File 'odesoldat.mod' opened at (1) is not a GFORTRAN module file

I have checked to make sure that I throughly cleaned the folders to make sure the module file as well as the object file are deleted prior to compilation. 

I am using the following compilation flags:
FLAGS = -O3 -fdefault-real-8 -fdefault-double-8  -J $(MODULE)

If anyone has insights they would be most welcome.
Comment 1 kargls 2012-10-03 19:20:19 UTC
(In reply to comment #0)
> I am trying to compile a library of module files using make for use later in
> codes, that may require mpi or on earlier created modules. I have tested the
> compilation with pgfortran and intel compilers on linux with open-mpi 1.4.5 and
> it works perfectly. I have additionally tested it on linux using open-mpi 1.4.5
> and gfortran 4.2.1 and on Mac OSx 10.6 with open-mpi 1.4.3 and gfortran 4.6,
> with both failing with the following error:
> 
> Fatal Error: File 'odesoldat.mod' opened at (1) is not a GFORTRAN module file
> 
> I have checked to make sure that I throughly cleaned the folders to make sure
> the module file as well as the object file are deleted prior to compilation. 
> 
> I am using the following compilation flags:
> FLAGS = -O3 -fdefault-real-8 -fdefault-double-8  -J $(MODULE)
> 
> If anyone has insights they would be most welcome.

What is the first line in odesoldat.mod?
Have you tried using the -I option?
Comment 2 christopher.romick 2012-10-03 19:37:24 UTC
I have indeed tried include -I but it makes no differences. The compilation returns the same error.

The 1st line states

GFORTRAN module created from /.../odesolver/LSODE/datodesol.f90 on Wed Oct  3 15:35:10 2012

of course the ... is the rest of the full path
Comment 3 Steve Kargl 2012-10-03 19:55:46 UTC
On Wed, Oct 03, 2012 at 07:37:24PM +0000, christopher.romick at gmail dot com wrote:
> 
> I have indeed tried include -I but it makes no differences. The compilation
> returns the same error.
> 
> The 1st line states
> 
> GFORTRAN module created from /.../odesolver/LSODE/datodesol.f90 on Wed Oct  3
> 15:35:10 2012
> 
> of course the ... is the rest of the full path
> 

Which version of gfortran?  With version 4.4.x and above 
you should have a version number.

% gfc44 -c a.f90 && head -1 a.mod
GFORTRAN module version '0' created from a.f90 on Wed Oct  3 12:50:55 2012
% gfc45 -c a.f90 && head -1 a.mod
GFORTRAN module version '4' created from a.f90 on Wed Oct  3 12:51:00 2012
% gfc46 -c a.f90 && head -1 a.mod
GFORTRAN module version '6' created from a.f90 on Wed Oct  3 12:51:04 2012
% gfc47 -c a.f90 && head -1 a.mod
GFORTRAN module version '9' created from a.f90
% gfc4x -c a.f90 && head -1 a.mod
GFORTRAN module version '9' created from a.f90

Do you have more than one version of gfortran installed
on the system?  It appears as if you are building the
module with an older gfortran and trying to use with a
newer version.
Comment 4 Dominique d'Humieres 2013-06-19 13:05:40 UTC
Any progress on this PR? or should it be closed at WORKSFORME?
Comment 5 Francois-Xavier Coudert 2013-11-23 22:58:02 UTC
The module file you are trying to read was produced from a version of gfortran <= 4.3, at a time when module files were not versioned. Module files are not necessarily (I'd even go as far as to say: not usually) portable between different major gfortran versions. Recent versions of the compiler give a better error, indicating that the cause is a mismatch between compiler version that produced the module file, and current compiler.
Comment 6 Joost VandeVondele 2013-11-24 19:22:57 UTC
there is actually some recent change that causes similar behavior:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59276