INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Jobs

Migrating a large fortran program from ifort to gfortran

Migrating a large fortran program from ifort to gfortran

(OP)
I have a large program containing 40 source files that I am trying to migrate to `gfortran` compiler. 39 of these source files contain module definitions (only) and 1 of these files contains a main program. The main program references 12 of the module definition source files via `use modulename` syntax. These 12 files in turn reference the other 27 module definitions. All the files are necessary for the functioning of the program.

I have compiled all of the 39 module-definition source files using the following syntax. I also made sure ensuring that I compile lowest level modules first (i.e those that reference no other modules) then higher level modules next (i.e those that reference many other modules).

`gfortran -ffree-form -ffree-line-length-200 -DMACRO1 -DMACRO2 -c ModuleFileName.FOR -o ModuleFileName.o`

Once all 39 modules were compiled I ensured that corresponding .o and .mod files were generated (which they were). I then attempted to compile the main program using the following command:

`gfortran -ffree-form -ffree-line-length-200 -DMACRO1 -DMACRO2 -o MainProgramName.FOR ModuleFileName1.o ModuleFileName2.o ModuleFileName3.o ..... ModuleFileName11.o ModuleFileName12.o`

Note above that I am only using the 12 module definitions that the main program uses, since the .o and .mod files for all the modules are available. I have also attempted a very large (similar command) containing all 39 modules including the ones not reference by `MainProgram`. The issue I faced was the same, multiple instances of the same error:

`undefined reference to '__[module_name]_MOD_[function_name]'`

I am sure that this is due to how I have gone about compiling the program, specifically the `gfortran` commands. Why am I getting this error when all the .o and .mod files are already created? Is this from the way I have compiled the modules individually or from the way I am compiling the main program?

RE: Migrating a large fortran program from ifort to gfortran

You need the -fintrinsic-modules-path to specify the directory where the mod files are created/picked up from

RE: Migrating a large fortran program from ifort to gfortran

(OP)
Doesn't it just work off of the current directory? I don't think the program needs a full path for every .mod file. They are all contained within the same directory as the main program...

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources


Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close