IMSL in PVF 10.9


I am trying to use IMSL with PVF 10.9. However, I cannot make it work. I am following the directions described in the Readme file of the VNI for PVF (Part 4). But it still does not work. It cannot see the modules generated in the IMSL library.

Actually, I have version 11.4 installed in another computer, and it has the same version of VNI in it. There, I can make the same code work by only adding IMSL library through the solution properties. I read in the forums that in versions prior to 11.2, this does not work because of a bug, and it was corrected with version 11.2. It definitely looks like that. I can make IMSL work with a simple alteration with version 11.4. However, with version 10.9, even if I make all the changes manually outlined in readme file, I cannot make it work.

Do you have any suggestions about what might be the problem?



If the error is just not seeing the module, that means the include directory is not correctly set. Note that if your system is 64-bit and also have C:\Program Files (x86) directory, IMSL will be installed in that directory instead of C:\Program Files. The document part IV, show example with the assumption that IMSL is installed in C:\Program Files. You need to check where exactly IMSL is installed and change the include files location accordingly.

By the way the IMSL document is quite old and PVF property locations/names may change due to newer version of PVF.

Hope this helps.


I once again checked the directories, and they are all fine. The IMSL document, as you said, is old, but it pretty much is consistent with my version 10.9. There is only one property page, which is Fortran | Output, that I cannot locate. But I assume it is the Additional Include Directories in Fortran | General, in which I added the location of include directory of the IMSL. So, I suspect the problem is about neither of these two.

Any other suggestions?


As a matter of fact, an older PVF uses the property; Fortran | Output to search for modules.

For a new version of PVF, please add the IMSL include/module directory to:
Fortran -> General -> Module Path

By default, it will have only one entry, $(IntDir).
If you highlight Module Path tab, it will have […] at the end of the line, click on it. The Module Path window will pop up.
Add IMSL include directory on another line.

For example, on Module Path pop window:

C:/Program Files (x86)/VNI/imsl/fnl600/winpg715x64/include

That should do it. Let me know if you still have problem.


It didn’t work. But I guess I have a more basic problem here. After installing imsl, I didn’t do the validation. I triede to make the validation following the steps in readme file using command prompt, but it also didn’t work. It gives the following error:

PGF90-F-0004-Unable to open MODULE rand_gen_int_mod

Can you point any particular reason for this odd behavior?



Is there rand_gen_int.mod in the include directory? If not, then I would reinstall IMSL again.

Which version of IMSL you are trying to use, 32-bit or 64-bit?
Example below is for 64-bit.

Please bare with me and try the following steps again.
I would like to make sure that they are exactly what you do.

  1. Open up PGI DOS command prompt:

Start -> All Program -> PGI Visual Fortran -> Comman Shells -> PVF 2010 Cmd (64)

  1. In this PGI Visual Fortran (64) DOS window, do following commands to set up IMSL environment.

C:\Users\hongyon>chdir “C:\Program Files (x86)\VNI\imsl\fnl600\winpg715x64\bin”

C:\Program Files (x86)\VNI\imsl\fnl600\winpg715x64\bin>fnlsetup.bat
Setting environment for IMSL Fortran Library - winpg715x64

3) Below are steps to validate directory and compile example program. I get an error but it is not about cannot find module file but because I was not an administrator. That should be OK. If you get similar error, then just copy validate directory to a temp directory where you have write access.

C:\Program Files (x86)\VNI\imsl\fnl600\winpg715x64\bin>chdir “C:\Program Files (x86)\VNI\imsl\fnl600\winpg715x64\examples\validate”

C:\Program Files (x86)\VNI\imsl\fnl600\winpg715x64\examples\validate>%FC% %F90FLAGS% imslmp.f90 %LINK_FNL%
C:\Program Files\PGI/win64/10.9/bin\pgcnv.EXE: error CNV017: Cannot create file.
No such file or directory: imslmp.obj


That’s exactly what I did previously, and it it gave the message I mentioned in the previous post. It cannot open the module although the module is there. As I said, I have the same IMSL installed in another computer together with PVF 11.4, and there the same code works perfectly fine.

So, do you suggest to reinstall IMSL from scratch?


Yes, please reinstall IMSL.

Can you post the result of following commands in validate directory, after you invoke fnlsetup.bat?

%FC% %F90FLAGS% imslmp.f90 %LINK_FNL% -v
echo %include%

I would also install and try with 11.4 on the machine in question to see if it works.



Reinstalling the IMSL worked. Now, it works fine even without manually configuring the project properties. Just setting “yes” to use imsl libraries option in the properties is enough!


I am glad it works.

As you know there is a small bug in setting the property to use IMSL in 10.9. It works most of the time but the library libimslscalar.lib is missing from the link line. We have fixed it in later release(11.2). If you get undefined reference to functions in that library, you may need to add it to the link line.