kkkttt 发表于 2015-10-27 08:04

IMSL在IVF下的安装和配置

安装的时候输入License时输入201111,安装后把源文件中的Crack目录下的License.dat复制到IMSL的安装目录(默认是C:\\Program Files\VNI)下的License目录下。然后用记事本打开License,另存为License.lic,保存在同样的目录下。
配置环境:
             Windows 7 Professional
             Microsoft Visual Studio 2008 Professional English
             Intel.Visual.Fortran.Compiler.Professional.v11.1.060
             IMSL Fortran Numerical Library Version 6.0
IMSL在IVF中的安装和应用 (Windows系统)
-----------------------------------------------------
1. IMSL在IVF中的安装
2. IMSL在IVF中的调用
3. 其它程序库的调用
-----------------------------------------------------
1. IMSL在IVF中的安装
1) 如果是IVF pro版本自带的IMSL,直接安装就OK.可以直接阅读第2部分。
2) 如果是手动安装,IVF与IMSL版本不同,要注意以下问题
    a) 首先,安装IMSL到缺省目录 (不同的版本,目录可能不同)
       例如,IMSL6.0的安装路径是C:\Program Files\VNI\imsl\fnl600
    b)如果是在IDE环境下调用IMSL,那么需要首先设置IMSL在IVF中
      的搜索路径,其设置方法为:
      设置步骤:
      (1) 打开 Microsoft Visual Studio 2008 ;
      (2) 打开菜单 Tools|options...
      (3) 选择左侧的 ”Intel(R) Fortran“ ,再选”Gerneral“或是”compiler“,
            然后在右侧找到 "Project Directories"或是“compiler Selection”.
            然后在下面你可以看到 "Libraries" 和 "Includes".
            点击右侧的 "..." 在Includes打开窗口中输入IMSL的include搜索路径,
            在Libraries打开的窗口中输入IMSL的lib搜索路径
            对于IMSL6.0,其include路径为:
            C:\Program Files\VNI\imsl\fnl600\IA32\include\dll
            C:\Program Files\VNI\imsl\fnl600\IA32\include\static      
            其lib路径是:
            C:\Program Files\VNI\imsl\fnl600\IA32\lib         
            如果是其他版本,也请查找类似目录。
            一般说,include某个目录下应该有很多*.mod文件,在lib的某个目录下有很多
            *.lib或*.dll文件,这就是正确的路径所在。
      (4)选择“ok”,完成设置。
---------------------------------------------------------------------------------------------------------------------------------------------------------------         
2. IMSL在IVF中的调用
1)找到IMSL中合适的函数或子程序(在开始菜单中,安装IMSL的目录下会找到一个pdf文件,里面是IMSL的说明文件,包括函数和子程序的详细信息,并有例子)
2)在自己的程序中调用IMSL. 首先在IVF的帮助文档中“index”选项卡下输入IMSL,就可以看到
   Using from the Command Line
   Using from IDE
   这两项主要内容,请仔细阅读这个部分。一般情况下,调用IMSL需要注意两个地方:
    a) 加入 INCLUDE 'link_fnl_static.h' 或是类似的语句在你的主程序中,不同的库函数选用不同的*.h文件
    b) 加入合适的use 语句,例如
       use IMSL
       use lin_sol_gen_int
       use rand_gen_int
       use error_option_packet
       等,你可以在IMSL的帮助文档中看到如何应用合适的use 语句
    c) 在主程序中call IMSL中的functions或是subroutines
    d) 编译,链接,得到执行程序。
3)在命令行中调用和编译:
   首先在command窗口中执行ifortvars这个命令,如果不能执行,请直接从开始菜单中的IVF目录下面直接运行这个程序(Build Environment for applications running on IA-32),
   或是将此文件所在的目录写入path环境变量,使其可以执行。
   然后用ifort命令对你的主程序进行编译即可。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
3. 其它程序库的调用
   学会了IMSL的调用,其实其他的程序库如CXML,LAPACK, BLAS, WFL等在IVF下的调用都是类似过程,即主要要设置好include和lib的路径,使得编译器
   可以找到需要包含的mod文件和链接的lib文件,这个过程大同小异。
----------------------------------------------------


测试算例:
! ================ Program start ==============
program fnl
! Include the necessary header file:
! For the dynamic library:
INCLUDE 'link_fnl_shared.h'
! For the static library:
!INCLUDE 'link_fnl_static.h'
!!DEC$ OBJCOMMENT lib:"libguide.lib"
! Declare which IMSL functions will be used
USE LSARG_INT
USE WRRRN_INT
! Declare variables
PARAMETER (LDA=3, N=3)
REAL A(LDA,LDA), B(N), X(N)
!
! Set values for A and B
! A = (33.0 16.0 72.0)
! (-24.0 -10.0 -57.0)
! (18.0 -11.0 7.0)
! B = (129.0 -96.0 8.5)
!
DATA A/33.0, -24.0, 18.0, 16.0, -10.0, -11.0, 72.0, -57.0, 7.0/
DATA B/129.0, -96.0, 8.5/
!
! The main IMSL function call to solve for x in Ax=B.
! This is the floating point version, to use double-precision, call DLSARG.
!
CALL LSARG(A,B,X)
!
! Now print the solution x using WRRRN, a printing utility
!
CALL WRRRN('X',X,1,N,1)
Read(*,*)
END PROGRAM fnl
!================ Program End ==============
页: [1]
查看完整版本: IMSL在IVF下的安装和配置