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

Slow fortran compilation

Petrov__Sergey
Beginner
2,499 Views

Hi,

I'm trying to compile LAPACK library with Fortran compiler but the compilation time is about few hours... Even from LAPACK_tutorial video it is clear that it should not take so much time to be compiled. What is the possible reason for my problem?

I use:

Windows 7x64

Intel Parallel Studio XE 2020 with Microsoft Visual Studio 2017

0 Kudos
1 Solution
mecej4
Honored Contributor III
2,469 Views

Petrov, Sergey wrote:
... the compilation output tells me that 1 of 4 task is completed with error "error LNK2001: unresolved external symbol XERBL        sorhr_col.obj".

There is a subroutine called XERBLA, which is used for reporting errors in BLAS and Lapack routines. See if a typographical error caused XERBLA to be read as XERBL in the source file sorhr_col.f in the Lapack SRC directory.

Petrov, Sergey wrote:
How to use flags like /Qxhost /fpp /nologo /Qvec-threshold:80 in Visual Studio? What this flag means?

You do not have to use these flags. I reported the flags because compilation time is affected by the code generation and optimization options that are in effect. 

See https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-alphabetical-list-of-compiler-options .

View solution in original post

0 Kudos
21 Replies
jimdempseyatthecove
Honored Contributor III
259 Views

Sergey,

With fixed format Fortran files, when you edit these files, be careful NOT to use the TAB character. The Fortran compiler will see TAB as a single character, whereas in your file editor you will observe what looks like padded spaces. For example, in mecej4's post #18, had TABs been used, your editor may show what you observe in the image in post #18, but Fortran will see it at the actual character count position which could be in the 20 some characters into the line.

From a historical point, Fortran source files used to be held on punched cards. It was not unusual for you to occasionally drop a deck of cards. Putting the cards back in order was problematic, especially if you did not have a hard copy printout. As a protective measure, it was decided that it would be a good idea to reserve the last 8 columns of an 80 column punch card for a programmer to place a sequence number. Each programmer could define their own sequencing method. As an example the first column for application number, second through forth as procedure number, and fifth through eighth as sequence within procedure. You would also assign sequence numbers with gaps in them such that you could insert a card (line of code) without re-sequencing the other cards. Then in the event you drop a deck of cards, you could run them through a card sorter (on last 8 columns) to put the card deck back in order.

When BASIC was first developed, the first several characters on a line could be used for sequence numbers (typically assigned with gaps).

Jim Dempsey

0 Kudos
Reply