编译 intel MKL的一个fortran77 example DSYEV Example Program in Fortran

DSYEV Example Program in Fortran

https://www.intel.com/content/www/us/en/docs/onemkl/code-samples-lapack/2023-1/dsyev-example-fortran.html

1. 示例代码

 copy from hyperlink up:

*  Copyright (C) 2009-2015 Intel Corporation. All Rights Reserved.
*  The information and material ("Material") provided below is owned by Intel
*  Corporation or its suppliers or licensors, and title to such Material remains
*  with Intel Corporation or its suppliers or licensors. The Material contains
*  proprietary information of Intel or its suppliers and licensors. The Material
*  is protected by worldwide copyright laws and treaty provisions. No part of
*  the Material may be copied, reproduced, published, uploaded, posted,
*  transmitted, or distributed in any way without Intel's prior express written
*  permission. No license under any patent, copyright or other intellectual
*  property rights in the Material is granted to or conferred upon you, either
*  expressly, by implication, inducement, estoppel or otherwise. Any license
*  under such intellectual property rights must be express and approved by Intel
*  in writing.
*  =============================================================================
*
*  DSYEV Example.
*  ==============
*
*  Program computes all eigenvalues and eigenvectors of a real symmetric
*  matrix A:
*
*    1.96  -6.49  -0.47  -7.20  -0.65
*   -6.49   3.80  -6.39   1.50  -6.34
*   -0.47  -6.39   4.17  -1.51   2.67
*   -7.20   1.50  -1.51   5.70   1.80
*   -0.65  -6.34   2.67   1.80  -7.10
*
*  Description.
*  ============
*
*  The routine computes all eigenvalues and, optionally, eigenvectors of an
*  n-by-n real symmetric matrix A. The eigenvector v(j) of A satisfies
*
*  A*v(j) = lambda(j)*v(j)
*
*  where lambda(j) is its eigenvalue. The computed eigenvectors are
*  orthonormal.
*
*  Example Program Results.
*  ========================
*
* DSYEV Example Program Results
*
* Eigenvalues
* -11.07  -6.23   0.86   8.87  16.09
*
* Eigenvectors (stored columnwise)
*  -0.30  -0.61   0.40  -0.37   0.49
*  -0.51  -0.29  -0.41  -0.36  -0.61
*  -0.08  -0.38  -0.66   0.50   0.40
*   0.00  -0.45   0.46   0.62  -0.46
*  -0.80   0.45   0.17   0.31   0.16
*  =============================================================================
*
*     .. Parameters ..INTEGER          NPARAMETER        ( N = 5 )INTEGER          LDAPARAMETER        ( LDA = N )INTEGER          LWMAXPARAMETER        ( LWMAX = 1000 )
*
*     .. Local Scalars ..INTEGER          INFO, LWORK
*
*     .. Local Arrays ..DOUBLE PRECISION A( LDA, N ), W( N ), WORK( LWMAX )DATA             A/$  1.96, 0.00, 0.00, 0.00, 0.00,$ -6.49, 3.80, 0.00, 0.00, 0.00,$ -0.47,-6.39, 4.17, 0.00, 0.00,$ -7.20, 1.50,-1.51, 5.70, 0.00,$ -0.65,-6.34, 2.67, 1.80,-7.10$                  /
*
*     .. External Subroutines ..EXTERNAL         DSYEVEXTERNAL         PRINT_MATRIX
*
*     .. Intrinsic Functions ..INTRINSIC        INT, MIN
*
*     .. Executable Statements ..WRITE(*,*)'DSYEV Example Program Results'
*
*     Query the optimal workspace.
*LWORK = -1CALL DSYEV( 'Vectors', 'Upper', N, A, LDA, W, WORK, LWORK, INFO )LWORK = MIN( LWMAX, INT( WORK( 1 ) ) )
*
*     Solve eigenproblem.
*CALL DSYEV( 'Vectors', 'Upper', N, A, LDA, W, WORK, LWORK, INFO )
*
*     Check for convergence.
*IF( INFO.GT.0 ) THENWRITE(*,*)'The algorithm failed to compute eigenvalues.'STOPEND IF
*
*     Print eigenvalues.
*CALL PRINT_MATRIX( 'Eigenvalues', 1, N, W, 1 )
*
*     Print eigenvectors.
*CALL PRINT_MATRIX( 'Eigenvectors (stored columnwise)', N, N, A,$                   LDA )STOPEND
*
*     End of DSYEV Example.
*
*  =============================================================================
*
*     Auxiliary routine: printing a matrix.
*SUBROUTINE PRINT_MATRIX( DESC, M, N, A, LDA )CHARACTER*(*)    DESCINTEGER          M, N, LDADOUBLE PRECISION A( LDA, * )
*INTEGER          I, J
*WRITE(*,*)WRITE(*,*) DESCDO I = 1, MWRITE(*,9998) ( A( I, J ), J = 1, N )END DO
*9998 FORMAT( 11(:,1X,F6.2) )RETURNEND

将上面代码存储为: ex_dsyev.f

2. 下载lapack-3.11:

wget https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v3.11.tar.gz

3. 解压lapack并copy make.inc:

tar zxvf v3.11.tar.gz
cd lapack-3.11
cp make.inc.example make.inc

并且编辑 lapack-3.11/make.inc,将其中的-O3 -O2等等,改成-g

编译lapack-3.11/Makefile,将其中

lib: lapacklib tmglib
修改为:
lib:  blaslib variants lapacklib tmglib lapackelib lapacke_example
 

4. 编译lapack:

make -j

5. 安装lapack lib:

cp LAPACKE/include/*.h /home/hipper/ex/ex_fortran/sdk_lapack/include/
cp *.a /home/hipper/ex/ex_fortran/sdk_lapack/lib/

 其中的*.a 如下:

liblapack.a  liblapacke.a  librefblas.a  libtmglib.a

6. 编译fortran示例:
gfortran -g ex_dsyev.f -L /home/hipper/ex/ex_fortran/sdk_lapack/lib/ -llapack -lrefblas

7. 运行:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/55077.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并查集模板-两个操作:合并集合和查询两个元素是否属于同一个集合

一、链接 836. 合并集合 二、题目 一共有 nn 个数,编号是 1∼n1∼n,最开始每个数各自在一个集合中。 现在要进行 mm 个操作,操作共有两种: M a b,将编号为 aa 和 bb 的两个数所在的集合合并,如果两个数…

pip用法

pip show -f 包名 可以显示指定包的文件安装路径 参考: pip的基本使用 - 习久性成 - 博客园pip简介 1、pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。 2、pip是官方推荐的安装和管理Python包的工具…

2023华数杯数学建模竞赛选题建议

提示&#xff1a;DS C君认为的难度&#xff1a;C<B<A&#xff0c;开放度&#xff1a;B<A<C 。 A题&#xff1a;隔热材料的结构优化控制研究 A题是数模类赛事很常见的物理类赛题&#xff0c;需要学习不少相关知识。 其中第一问需要建立平纹织物整体热导率与单根纤…

【Linux操作系统】Vim:提升你的编辑效率

Vim是一款功能强大的文本编辑器&#xff0c;它具有高度可定制性和灵活性&#xff0c;可以帮助程序员和文本编辑者提高编辑效率。本文将介绍Vim的基本使用方法、常用功能和一些实用技巧。 文章目录 1. Vim的基本使用方法&#xff1a;2. 常用功能&#xff1a;2.1 文件操作&#…

物联网平台使用笔记

阿里云的IOT平台限制了50个设备。排除 移动云的限制较少&#xff0c;这里试用下。 创建完产品&#xff0c;接入设备后。使用MQTT客户端测试 其中client id 为设备id&#xff0c; username 为产品id&#xff0c; password 可以使用设备调试那里生成的。或使用官方token.exe 生成…

计算机网络(3) --- 网络套接字TCP

计算机网络&#xff08;2&#xff09; --- 网络套接字UDP_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/131977544?spm1001.2014.3001.5501 目录 1.TCP 1.服务端接口介绍 1.listen状态 2.accept获取链接 2.客户端接口介绍 2.TCP的服务器…

2023年 Java 面试八股文(20w字)

目录 第一章-Java基础篇 1、你是怎样理解OOP面向对象 难度系数&#xff1a;⭐ 2、重载与重写区别 难度系数&#xff1a;⭐ 3、接口与抽象类的区别 难度系数&#xff1a;⭐ 4、深拷贝与浅拷贝的理解 难度系数&#xff1a;⭐ 5、sleep和wait区别 难度系数&a…

TPlink DDNS 内网穿透?外网访问设置方法

有很多小伙伴都想知道&#xff1a;TPlink路由器怎么设置DDNS内网穿透&#xff1f;今天&#xff0c;小编就给大家分享一下TPlink DDNS 外网访问设置方法&#xff0c;下面是图文教程&#xff0c;帮助新手快速入门DDNS设置。 本文介绍的是云路由器TP-LINK DDNS的设置方法。TP-LIN…

Lua 数据类型 —— boolean

一、boolean 定义 lua 中只有 false 和 nil 表示假&#xff0c;其他都是表示真。 数字 0 和空字符串也表示真。 二、逻辑运算&#xff1a;and、or、not and&#xff1a;如果第一个操作数为 “false” &#xff0c; 则返回第一个操作数 or&#xff1a;如果第一个操作数不为…

使用$test$plusargs提高RTL验收速度

文章目录 0 前言1 语法介绍2 示例3 多种情况的testbench怎么写 0 前言 这段时间在整合一个小ip&#xff0c;因为要验证每个feature是否可行&#xff0c;需要用testbench C语言的方式进行仿真验证&#xff0c;由于每种feature不仅要在C语言中修改寄存器配置&#xff0c;还要再…

基于粒子群优化算法的配电网光伏储能双层优化配置模型[IEEE33节点](选址定容)(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码、数据、讲解 &#x1f4a5;1 概述 由于能源的日益匮乏&#xff0c;电力需求的不断增长等&#xff0c;配电网中分布式能源渗透率不断提高&#xff0c;且逐渐向主动配电网方…

Django实现音乐网站 ⑹

使用Python Django框架制作一个音乐网站&#xff0c; 本篇主要是在添加编辑过程中对后台歌手功能优化及表模型名称修改、模型继承内容。 目录 表模型名称修改 模型继承 创建抽象基类 其他模型继承 更新表结构 歌手新增、编辑优化 表字段名称修改 隐藏单曲数和专辑数 姓…