Linux+Fortran搭建整套科学计算和绘图环境

来源:互联网 发布:vba实时抓取网页数据 编辑:程序博客网 时间:2024/04/30 08:55
Linux是一个非常简洁、高效的操作系统,其命令行工作方式更是十分强大,相比Windows和Mac这种“娱乐型”操作系统,Linux非常适合科学计算。
Fortran作为历史上最先出现的高级编程语言,最初就是为科学计算量身定做的。它天生拥有高效的向量/矩阵操作,能够优化为非常高效的代码,一般而言,其运行速度为1.2倍C语言的速度。
下面记述Linux下用Fortran进行科学计算的各个方面。所选用的软件除Intel编译器外均为开源软件,闭源软件,特别是商业软件不予采用。大多数软件都支持Linux/Windows/Mac等平台。

1. 编译器
GNU Fortran
GNU项目的Fortran编译器,属于GNU编译器集合(GCC)之一。目前支持大部分Fortran2008标准,并几乎完整支持Fortran2003. 包含在各大发行版的软件仓库中。

Intel Fortran
Intel久负盛名的Fortran编译器ifort,内涵Intel数学核心库(MKL)。其编译后的代码运行效率之高为业界之最。虽为闭源软件,但用于非商业目的则可免费使用。在下面地址
http://software.intel.com/en-us/articles/non-commercial-software-download/
下载Intel Fortran Composer XE for Linux,授权文件将通过email获得。安装只需以root身份运行install文件,并在指定的步骤提供授权文件即可。

2. 编辑器
Vim Emacs
Linux中超强大的两个文本编辑器,二者强大程度不相上下,一起被看作是高手的标志。操作起来与一般文本编辑器的直观方式不同,起初显得难以上手,但一旦熟悉就会极大地提高工作效率。包含在软件仓库中。

3. 调试器
GDB
GNU的调试器,命令行操作方式,功能强大又方便。包含在软件仓库中。
IDB
Intel的调试器,包含在其编译器中一起下载安装。提供了图形界面的调试工具。

4. 开发环境
Code::Blocks
一个很好的C++/Fortran开发环境。包含在软件仓库中。
Eclipse Photran
Eclipse是一个基于Java的多语言集成开发环境,使用非常广泛,包含在软件仓库中。Photran是它的Fortran插件,需单独下载,并在eclipse中通过安装插件的方式安装。

5. 数据读写
CDI
一个由德国马克思-普朗克气象研究所开发的科学数据读写库,为NetCDF、GRIB、HDF、EXT等多种数据格式提供了统一的编程接口,有C和Fortran版。还提供了一个名为libs4cdo的程序包,用于提供上面几种格式底层库及其他依赖环境的安装。著名的气象数据运算子(CDO)软件就是基于它编写的。安装方式与CDO相同(见本博客)。

6. 数值计算/算法
LAPACK
久负盛名、久经考验的线性代数运算库,已经成为许多数值计算软件的基础。包含在软件仓库中。
GSL FGSL
GSL是GNU的科学计算函数库,用C语言编写,也兼容C++。提供了非常多的数学计算函数,涵盖了科学计算的各个方面,如随机数、微分方程、矩阵分析、特殊函数、统计等等。包含在软件仓库中。FGSL是它的Fortran接口,需单独下载安装。在某些编译器上可能存在问题。
Muesli
一个用Fortran95写成的矩阵运算库和绘图库。提供了一个矩阵类,以及类似于Matlab的矩阵操作。并同时有一个类似于Matlab的绘图库。

7. 科学绘图
PLplot
非常强大的科学绘图库,提供了C/C++、Fortran、Python、Octave、Java等多种语言接口,能够在X系统、Tcl/TK、wxWidgets窗口上显示,并能输出为多种位图(如GIF、JPEG、PNG)和矢量图(如EPS、SVG、PDF)格式。包含在软件仓库中。
Muesli
如上
MathGL
非常强大的多语言科学绘图库,其绘图能力甚至超过PLplot,绘制的图形非常精美。
DISLIN
德国马克思-普朗克太阳系研究所开发的科学绘图库,提供了Perl、Java、Python、C/C++、Fortran接口。图形质量一般。

8. 图形界面
GTK-Fortran
在Fortran下进行GUI开发一直是一个大问题。因为Fortran专注于科学计算,更加看重程序的可靠性和计算效率,而不侧重于图形界面。只有Windows中的Compaq Visual Fortran在微软基础类库(MFC)的基础上提供了初级的图形界面能力。Fortran2003标准发布以来,由于Fortran与C之间的绑定交互成为可能,Fortran也就具有了利用C/C++的图形界面类库进行GUI编程的潜力。GTK-Fortran就是利用了C语言的GTK+图形界面类库。目前该项目已经基本完成并经过大量测试可用。

9. 论文写作
LaTeX
计算机排版的事实标准。采用类似宏编程的方式进行文档写作和排版,虽不如LibreOffice、Microsoft Word等所见即所得的Office工具来的直观,却具有这类软件无法比拟的高水平的排版效果。
原创粉丝点击