×
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!
  • Students Click Here

*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.

Students Click Here

Migrating a large fortran program from ifort to gfortran

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! Already a Member? Login


Resources

Research Report - How Engineers are Using Remote Access
Remote access enables engineers to work from anywhere provided they have an internet connection. We surveyed our audience of engineers, designers and product managers to learn how they use remote access within their organizations. We wanted to know which industries have adopted remote access, which software they are using, and what features matter most. Download Now
eBook - Managing the Context of Product Complexity Using the Digital Twin
Keeping track of changes to complex products is difficult—think Aerospace & Defense equipment, new generations of commercial aircraft, and software-based automobiles. A new way to managing the digital context of the physical product is required and the answer is the Digital Twin. This ebook explores the opportunity available for Operations and Maintenance for the Digital Twin. Download Now
White Paper - Trends in Industrial Filtration
Substantial progress has been made in filtration technologies in recent years. New filter media materials, designs and processes have led to filters that are more efficient, reliable, compact and longer lasting. This white paper will discuss the various trends that are impacting operational responsibilities of MROs today and the resources that are available for staying up-to-date on the latest filtration solutions. Download Now

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