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

Finding IVF in the drop-down menu of the "Rulers"

postaquestion
Novice
2,728 Views
Recently I've installed the Intel Fortran Compiler on my IMac running on Mac OXS 10.5.2 (Leopard). The problem is that I could not find the Intel Fortran Compiler in the drop-down menu of the "Rulers" when choosing a compiler for "Fortran source files" in Xcode 3.0. Could you help me with this problem?
0 Kudos
29 Replies
Kevin_D_Intel
Employee
687 Views

Hi Dean,

The current errors I see involve duplicate defined symbols that cause the link to fail.

The first involves three source files that each contain a PROGRAM statement and thus each defines the symbol _MAIN__. ~/V5.090/parcs/parcs.F, ~/V5.090/parcs/parcs_master.F, ~/V5.090/src/trac.f90

If you need parcs_master.F, then you must deal with the #ifdef appearing at the top of parcs.F to activate the subroutine entry point and not the PROGRAM statement. Defining TPMERGE has implications in other sections of parcs.F and a number of other source files so I cannot advise on whether you should enable that define or not. Given the code structure, that seems to be the intent of the programmer, however, there are other things going on here as discussed below.

Another duplicate symbol involves source files ~/V5.090/src/tdmr.f90 and ~/V5.090/parcs/TdmrM.F which both define the MODULE and symbol _tdmmrm._. According to the source code comments, TdmrM.F is intended for use when building the parcs.lib, so I presume this should not be compiled and linked as a part of the trace5 executable.

In looking at ~/V5.090/src/trac.f90, it seems perhaps this application contains source for two distinct components, a parcs.lib library and main trace executable. However, under your Xcode project the trace5 target is treating all the source under the parcs and src subdirectories as a single program, thus compiling all the source and linking all the objects into the single trace executable which leads to these duplicate symbol definitions.

It appears to me ~/V5.090/src contains source to the trace executable and ~/V5.090/parcs contains source to parcs.lib library that is linked to the trace executable. If so, then you need to create a new target to build the parcs.lib that is only associated with the source files residing in the parcs subdirectory. Then, make this library a dependant of the trace5 target. You do that by simply dragging the parcs.lib target to the trace5 target under the Link Binary with Library section. You must also then make certain the trace5 target is only associated with the source files residing in the src subdirectory.

I can try to help restructure the latest Xcode project you provided if I can get PVM on my system to enable me to compile this app. If you have PVM on your system in self-contained area, like /usr/local, that you can zip up and drop on our ftp server then I should be able to make use of that. Avoiding using an absolute path of /usr when creating the zip.

Hope that helps and Im sorry this just keep getting more complicated. Once you overcome the hurdle of structuring the Xcode project accordingly for the application you should be set.

Kevin

0 Kudos
gnom_wang
Beginner
687 Views

deleted

0 Kudos
gnom_wang
Beginner
687 Views

deleted

0 Kudos
gnom_wang
Beginner
687 Views

deleted

0 Kudos
Kevin_D_Intel
Employee
687 Views

It appears as if each library (liblibparcs.a & liblibtpr.a) has linked in a static instance of the Intel Fortran RTLs.

You could try rebuilding your static libraries and link them to the dynamic Intel Fortran RTLs.Im not sure if you under Xcode now or not. If so, set Intel Runtime Libraries to Dynamic Libraries under the Intel Fortran Compiler 10.1 (Preview) Runtime settings. If you are using the ifort command line now, then link with the option: -shared-intel


I do not have a mockup to test with so I do not know if the linker option, -multiple_defined suppress, might help with linking with the static Intel Fortran RTLs.

0 Kudos
gnom_wang
Beginner
687 Views

deleted

0 Kudos
gnom_wang
Beginner
687 Views

deleted

0 Kudos
Kevin_D_Intel
Employee
687 Views

Hi Dean,

I appreciate the update and your efforts. I will help you get the app built/running with ifort.

Can you please provide me with the scripts for both GFortran and ifort?

It appears the forum only allows one file attach per reply, so if you want to zip those up together you can attach to a Forum reply or you are welcome to drop the file on our ftp server.

It appears the earlier build issues of duplicate Fortran RTL symbols may involve the use of libtool under Xcode versus ar to create the static libraries linked with trace. I will continue looking into this too.

Kevin

0 Kudos
gnom_wang
Beginner
687 Views

deleted

0 Kudos
Reply