Hi,
We have dowloaded pgi visual fortran 11.1-0 with a trial license to evaluate the possible performance benefits of CUDA. Our f90/95 code is a fairly complicated finite element based simulation software. We make extensive use of modules and generic procedures. Some of our modules compiles fine,
while on some the compiler aborts compilation with a cryptic error:
Command exit code: 19
Command output: [NOTE: your trial license will expire in 8 days, 14.6 hours. PGF90/x86 Windows 11.1-0: compilation aborted ]
Module not found while generating build dependencies; will retry …......\IfeFEM\Source\CEQN_mfConstraintEquations.f90
Any idea as to why this happens.
When looking at the build output we also see that the compiler loops on compileing the failed files until it gives up after 4 iterations.
regards
Einar
The issue here was that we use MKL modules and they were not found by the compiler. The error message given gave us however no clues as to where to start looking.
You are right that the compiler should give more information. I have filed TRP#17627 to request more information from the compiler.
As for the compiler looping, if there are some dependency, it will compile files that have dependency resolved or no dependency first then loop back to compile other files.
After more investigation, it turns out that the compiler does give more information that module is not found.
If you see on the Error List, it should list all the errors why it does not compile.
You can also see it in Output from the build.
In Build Log, it does not show in detail on the first iteration because it will retry to compile at least on more time because of the dependency. But it eventually gives error message if there is any.
How did you get around the this? I have Fortran 90 modules that fail compilation with “Command exit code: 19”. LINPACK and BLAS are supposedly included with Portland Visual Fortran. Do I need some compiler switches to avoid the error? -llinpack -lblas don’t help, but then these are link switches.
PGI includes the NetLib Lapack and BLAS libraries as well as ACML. However, Lapack and Blas are F77 so do not have modules.
MKL includes a Fortran interface file that must be compiled with PGI Fortran compiler. This will create a module file that can then be used by your program.
Error 19 means that your missing a module file dependency. The message should show up in the Output or Error Windows. Most likely you’re missing the “precision” module which Mass references in this code but defines it in another of his articles.
module precision
! Precision control
integer, parameter, public :: Single = kind(0.0) ! Single precision
integer, parameter, public :: Double = kind(0.0d0) ! Double precision
integer, parameter, public :: fp_kind = Double
!integer, parameter, public :: fp_kind = Single
end module precision
Note that since this code uses CUDA Fortran language extensions, you need to change your project’s Fortran language properties.
This thread has multiple problems listed so you’ll need to be more specific.
The generic error 19 simply means that the module referenced by the current Fortran source can’t be found. The solution is to compile the source for the module before compiling this one. If you are using PVF and this source file is part of the project source, then PVF will go through a process of creating the depency list (the order in which the source files are compiled) during the build process. If this file is not part of your project, then you need to add the directory where the PGI compiled module can be found from the project’s property page “Fortran->General->Module Path”. Note that the first path in this list will be cleaned if you select “Clean Solution”.