Linux系统下编译LAPACK过程自述「建议收藏」

Linux系统下编译LAPACK过程自述「建议收藏」今天需要使用LAPACK库当中的几个函数,之前师兄编译好的LAPACK库在我的系统上怎么也没法通过编译,没办法,只能自己编译一遍啦!下面的文章当中,加粗的是在命令行里面输入的,其他的修改可以用各种编辑器完成,我是用的vim首先,找到LAPACK的官网,直接百度就行了。找到LAPACK的压缩包。我现在最新的版本是lapack-3.7.0.tgz将这个压

大家好,欢迎来到IT知识分享网。

今天需要使用LAPACK库当中的几个函数,之前师兄编译好的LAPACK库在我的系统上怎么也没法通过编译,没办法,只能自己编译一遍啦!

下面的文章当中,加粗的是在命令行里面输入的,其他的修改可以用各种编辑器完成,我是用的vim

首先,找到LAPACK的官网,直接百度就行了。找到LAPACK的压缩包。

我现在最新的版本是lapack-3.7.0.tgz

将这个压缩包放在某个目录当中,解压缩。解压的命令是 tar -zxvf lapack-3.7.0.tgz

解压完成之后会出现一个名为lapack-3.7.0的文件夹。进入这个文件夹的目录下。 命令 vi lapack-3.7.0

下一步命令 cp make.inc.example make.inc

                     vi make.inc

将 make.inc当中第19行的 FORTRAN = gfortran 修改为 FORTRAN = ifort -g

                              第23行     LOADER = gfortran 修改为 LOADER = ifort -g

(这一步的目的是修改编译的编译器,我们组里都是使用ifort编译的,如果用gfortran编译其实应该也是可以的。)

因为我用的ifort,所以把第38行TIMER    = INT_ETIME 修改为    # TIMER    = INT_ETIME

(其实就是把这一行注释掉)

然后把第41行# TIMER    = INT_CPU_TIME 修改为 TIMER    = INT_CPU_TIME

(其实就是把注释取消。)

点击键盘的Esc键,然后输入 :wq 保存并退出

这时候就回到了bash。我们这时候再来修改另外一个文件

命令 vi Makefile

第11和第12行的内容为 

lib: lapacklib tmglib
# lib: blaslib variants lapacklib tmglib

修改成

#lib: lapacklib tmglib

lib: blaslib variants lapacklib tmglib

(其实就是把注释的位置换一下。)保存退出 

命令 make

等待编译成功之后,会出现新的文件和目录,其中有三个后缀为.a的文件。

liblapack.a    librefblas.a   libtmglib.a

将liblapack.a librefblas.a拷贝到需要编译的程序的目录下

然后编译的时候的命令就是 ifort main.f90 liblapck.a librefblas.a

贴出一段从网上down的代码,我测试的时候就是用这段代码编译的,然后就编译成功了,非常开心!

program main
    implicit none
    INTEGER :: N, LDA, LDB
    INTEGER :: NRHS
    INTEGER :: INFO
    INTEGER :: IPIV(4)
    REAL(8) :: A(4,4), B(4,1)

    N=4;LDA=4;LDB=4
    NRHS=1

    A=reshape((/1.80,2.88,2.05,-0.89,&
                5.25,-2.95,-0.95,-3.80,&
                1.58,-2.69,-2.90,-1.04,&
                -1.11,-0.66,-0.59,0.80/),(/4,4/))
    B=reshape((/9.52,24.35,0.77,-6.22/),(/4,1/))

    call DGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO )

    write(*,*) “Solution:”
    write(*,'(f8.3)’) B
    write(*,*) “INFO=”, INFO

    stop
end program

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/24221.html

(0)
上一篇 2023-08-26 18:45
下一篇 2023-08-27 21:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信