我在配置IVF之後,然後用visual studio 2017查看 fortran代碼,確實很麻煩。
首先,沒有函數跳轉,其次,沒有自動補全,自動對齊。。
而且,編譯器的選項也很麻煩。
所以我決定自己搭建 sublime text 3 環境。
這個博文,我參考了很多人的文章,以及官方文檔,等等。
1.Intel visual fortran 2019
首先, 你需要安裝好 Intel visual fortran 2019。
上官網,註冊,發郵件,拿到註冊碼,下載,安裝,完成了。
(具體的網上這方面很多,我就不重複了)
一個簡單的教程鏈接
2.觀察 IVF默認的環境變量
選中下面的Compiler, 應該有一個32位,一個64位。我不知道有啥區別,說實話。
右鍵點擊-》打開文件位置,會跳出來一個文件夾,然後你會看到一個快捷方式。
然後你再右鍵點擊剛剛的文件-》屬性,然後就會出現下面的界面
其中,目標一欄中的內容是
C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""E:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.245\windows\bin\ipsxe-comp-vars.bat" ia32 vs2017"
其中,有用的部分是分別是 compiler的目錄
E:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.245\windows\bin\
還有命令
ipsxe-comp-vars.bat ia32 vs2017
主要是一般ipsxe-comp-vars.bat這個文件。。。
這個應該主要是設置各種環境變量,鏈接之類用的。
一般都藏在犄角旮旯裏,誰知道咋用。。
另外它的的目錄比較難找,所以要使用上面的方法。
3. sublime text 3 的配置
然後就是sublime text 3的配置
首先你需要安裝package Control, 網上教程很多,我就不多說了。
然後,你需要安裝PackageResourceViewer,這是用來觀察sublime text 3內置的編譯器選項用的。
然後,你還可以安裝一個minifortran啥的,記不清名字了。
然後 ctrl+shift+p,
會出來一個panel,輸入PackageResourceViewer:open resource,然後回車如下所示。
然後會出現一個新的panel,輸入fortran,回車,然後輸入build,會有如下的內容,也有可能是一個build/文件夾,點擊去就會有這個文件。
然後打開那個.sublime-build文件。
{
"shell_cmd": "gfortran \"${file}\" -o \"${file_path}/${file_base_name}\"",
"file_regex": "^(?xi:( ^[/] [^:]* ) : (\\d+) : (\\d+) :)",
"working_dir": "${file_path}",
"selector": "source.modern-fortran, source.fixedform-fortran",
"syntax": "GFortranBuild.sublime-syntax",
"variants":
[
{
"name": "Run",
"shell_cmd": " start cmd /c \" gfortran \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\" & pause\""
}
]
}
我的是如下內容,我其實已經做了一些修改。
這裏有用的東西是
"selector": "source.modern-fortran, source.fixedform-fortran",
這個步驟是爲了什麼呢?
主要是爲了適應不同的代碼主題,sublime就是根據這行代碼選擇調用某個.sublime-build文件的。
如下所示,下面是我的f90文件的風格,即 Fortran (Modern)。
然後就是我們的主題了。
我們需要在sublime最上面的工具欄中
選擇Preferences (從右往左第二個選項)->
瀏覽程序包(第一個選項)->
在出來的package 目錄中打開User ->
在此新建一個文件”IntelFortran.sublime-build“
然後打開它
輸入如下代碼:
{
"shell_cmd": "start cmd /c \" ipsxe-comp-vars intel64 vs2017 && echo ******************************************** && ifort \"${file}\" & pause\"",
"working_dir":"${file_path}",
"selector":"source.f ,source.for ,source.ftn ,source.f90 ,source.fpp ,source.i ,source.i90,source.modern-fortran, source.fixedform-fortran",
"encoding":"cp936",
"path":"E:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.4.245\\windows\\bin;${path};",
"variants":
[
{
"name": "Compile and Run",
"shell_cmd": "start cmd /c \" ipsxe-comp-vars intel64 vs2017 && echo ******************************************** && ifort \"${file}\" && echo ******************************************** && \"${file_base_name}\" & pause\"",
},
{
"name": "Compile with mkl and Run",
"shell_cmd": "start cmd /c \" ipsxe-comp-vars intel64 vs2017 && echo ******************************************** && ifort /Qmkl \"${file}\" && echo ******************************************** && \"${file_base_name}\" & pause\"",
}
]
}
其中,start cmd命令是爲了打開一個命令行,不然的話sublime就會在這個裏面彈出來所有的輸出信息,有點擠。
另外,一共有三個命令,一個是採用默認編譯,一個是"Compile and Run", 一個是"Compile with mkl and Run",。
mkl是一個數學庫,有各種數學操作,隨機數,fourier變換,矩陣操作,好像還可以求特徵值,總之很厲害。
另外,你需要把第二步得到的目錄與path中前面的目錄替換。
然後把第二步得到的命令 放在編譯命令之前。就和我寫的差不多。
然後還要把我的selector換成你的selector。
然後,保存之後,你甚至不用重啓sublimetext,編譯選項就已經生效了。
然後打開一個.f90文件。按ctrl+shift+b,選擇你需要的編譯器即可
下面是運算效果圖,你可以看到,一共有四行星號,前兩行是ifort初始化用的,後兩行星號把整個界面分割成了ifort初始化部分,編譯部分,執行部分。
嘖,完美。