Windows上安裝lapack函數(shù)庫與gfortran調(diào)用實(shí)例

科普簡介

Intel核心數(shù)學(xué)庫(Math Kernel Library, MKL)是一種數(shù)值函數(shù)庫蝶缀,其中就包括基本線性代數(shù)子系統(tǒng)庫(BLAS, level 1, 2, 3)和線性代數(shù)庫(LAPACK)等台颠,這里直接安裝lapack函數(shù)庫。

直接使用ifort來編譯運(yùn)行的可以參考中科大的中文教程http://scc.ustc.edu.cn/zlsc/user_doc/html/intel-mkl/intel-mkl.html#id11

-----------------------------------------------2024年1月5日更新------------------------------建議采用openblas-------------------------

下載openblas,解壓,把文件夾拷貝到mingw的安裝目錄,注意不是mingw64贬循,編譯選項(xiàng)更加簡單-lopenblas


----------------------------------------------以下是2019年寫的內(nèi)容------------------------------------------------------

-----------------以下內(nèi)容在2024年已經(jīng)無法成功實(shí)現(xiàn)了,原因未知桃序。MinGw, Mingw64,cmake, 全都試驗(yàn)了-----------------------------

在網(wǎng)上找了幾個(gè)有用的鏈接杖虾,最近發(fā)現(xiàn)有用的都轉(zhuǎn)為私密看不了了。其他的都沒有真正有用的葡缰,以下方案通過兩臺(tái)windows系統(tǒng)的電腦的測(cè)試,能成功運(yùn)行g(shù)fortran+lapack忱反。

第一步:下載MinGW并安裝Gfortran和MSYS相關(guān)環(huán)境泛释。

需要勾選:Basic Setup下面的mingw-developer-toolkit, mingw32-base, mingw32-gcc-fortran, msys-base(注意,mingw32-base關(guān)系到是否有mingw32-make.exe文件温算,而勾選了第一個(gè)怜校,最后一個(gè)也自動(dòng)勾選了)

將C:/MInGW/bin路徑添加進(jìn)系統(tǒng)PATH環(huán)境,C:/MInGW/lib路徑添加進(jìn)系統(tǒng)Lib環(huán)境(親測(cè)只添加bin進(jìn)PATH也不影響)注竿。這里可以測(cè)試以下gfortran是否成功安裝茄茁。

第二步:下載lapack.tar.gz壓縮文件,解壓巩割。

第三步:在解壓的lapack文件夾下裙顽,修改make.inc.example文件名為make.inc。接著修改Makefile文件:

找到以下代碼

lib: lapacklib tmglib?

#lib: blaslib variants lapacklib tmglib

把上面一行用#注釋掉宣谈,下面一行取消注釋愈犹。

第四步:在Makefile的所在文件夾,按住shift鍵闻丑,同時(shí)鼠標(biāo)右鍵漩怎,打開powershell或者是cmd或者命令提示符,輸入mingw32-make.exe嗦嗡,按下回車鍵勋锤,執(zhí)行。

我這邊執(zhí)行完會(huì)報(bào)兩個(gè)錯(cuò)誤侥祭,但是目前來看并不影響使用lapack叁执,有大神懂這個(gè)的話茄厘,可以指點(diǎn)一下,謝謝徒恋。

第五步:把生成的三個(gè)lib*.a文件拷貝到MinGW/lib下



第六步:代碼的測(cè)試與運(yùn)行蚕断。(容易忘記,備注)

當(dāng)庫文件都放到了指定目錄(比如MinGW/lib)入挣,而且這個(gè)目錄的地址也是系統(tǒng)環(huán)境變量的默認(rèn)庫文件鏈接時(shí)亿乳,lapack的編譯鏈接命令只需要在常規(guī)fortran代碼的執(zhí)行命令基礎(chǔ)上加上-llapack -lrefblas即可。比如:

gfortran test.f90 -o test -llapack -lrefblas

如果對(duì)于linux下的編譯鏈接需要加上鏈接地址径筏,比如:

gfortran -o test test.f90 -L/opt/local/lib -llapack -lrefblas

在源代碼中不需要使用任何use之類的函數(shù)葛假,直接調(diào)用所需函數(shù)即可。

以下給一個(gè)測(cè)試test.f90例子

program main

implicit none

real :: a(3,3),b(3)

integer :: v(3),iflag

a=reshape([2.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,4.0],[3,3])

b=[998.0,999.0,1000.0]

print *,'a=',a

print *,'b=',b

call sgesv(3,1,a,3,v,b,3,iflag)

print *,'solve=',b

end program main

第八步:矩陣求逆實(shí)例

使用module和interface可以把函數(shù)封裝起來滋恬,可以像sin()等內(nèi)置函數(shù)一樣聊训,十分簡潔地調(diào)用函數(shù)。并且可以把許多所需的函數(shù)都放進(jìn)去恢氯,從而構(gòu)成一個(gè)函數(shù)倉庫


比如以下示例

module?func_module

implicit?none

interface?func

module?procedure?func

end?interface

contains

function?func(m1)?result(m2)

real*8,?intent?(in)?::?m1(:,:)?!?input

real*8??????????????::?m2(size(m1,1),size(m1,2))?!?output

m2?=?m1+1

end?function

end?module?func_module

Program?main

use?func_module

real*8,parameter::??A(0:1,0:1)=reshape((/1,2,3,4/),(/2,2/))

print*,?A

print*,?func(A)

End?Program

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末带斑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子勋拟,更是在濱河造成了極大的恐慌勋磕,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敢靡,死亡現(xiàn)場(chǎng)離奇詭異挂滓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)啸胧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門赶站,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纺念,你說我怎么就攤上這事贝椿。” “怎么了陷谱?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵团秽,是天一觀的道長。 經(jīng)常有香客問我叭首,道長习勤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任焙格,我火速辦了婚禮图毕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘眷唉。我一直安慰自己予颤,他們只是感情好囤官,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛤虐,像睡著了一般党饮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驳庭,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天刑顺,我揣著相機(jī)與錄音,去河邊找鬼饲常。 笑死蹲堂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贝淤。 我是一名探鬼主播柒竞,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼播聪!你這毒婦竟也來了朽基?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤离陶,失蹤者是張志新(化名)和其女友劉穎稼虎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體枕磁,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渡蜻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年术吝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了计济。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡排苍,死狀恐怖沦寂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情淘衙,我是刑警寧澤传藏,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站彤守,受9級(jí)特大地震影響毯侦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜具垫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一侈离、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧筝蚕,春花似錦卦碾、人聲如沸铺坞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽济榨。三九已至,卻和暖如春绿映,著一層夾襖步出監(jiān)牢的瞬間擒滑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工绘梦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留橘忱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓卸奉,卻偏偏與公主長得像钝诚,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子榄棵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容