Fortran Coder

楼主: lm_lxt
打印 上一主题 下一主题

[绘图界面库] Fortran适合科学计算,界面交给Tcl/TK、PureBasic!

  [复制链接]

69

帖子

7

主题

0

精华

专家

F 币
320 元
贡献
224 点
71#
发表于 2014-3-9 21:34:26 | 只看该作者
fcode 发表于 2014-3-7 18:47
这两者还是各有优缺点吧。

GTK 在跨平台和代码重复使用方面会好一些,如果暂时不考虑上手难度的问题,统 ...

在windows8下用mingw编译并运行了gtk-fortran自带的例子gtkhello2,感觉用起来并不复杂。当然因为无论是编译还是界面代码都要自己生成,若习惯IDE编程初期会觉得有点麻烦。

98

帖子

5

主题

3

精华

专家

F 币
426 元
贡献
275 点

管理勋章新人勋章

72#
 楼主| 发表于 2014-3-10 15:27:28 | 只看该作者
jason388 发表于 2014-3-9 21:34
在windows8下用mingw编译并运行了gtk-fortran自带的例子gtkhello2,感觉用起来并不复杂。当然因为无论是 ...

You will need:
•Fortran compiler (recommended is gfortran 4.6 or higher: included in MinGW http://sourceforge.net/projects/mingw)
•CMake http://www.cmake.org/cmake/resources/software.html
•GTK+ ◦official version: GTK+ 2.24 http://www.gtk.org/download/win32.php (for testwin32gtk2 branch)
◦GTK+ 3.6.1 http://www.tarnyko.net/dl/ (for testwin32gtk3 branch)

•sed http://sourceforge.net/projects/gnuwin32
•PLplot http://sourceforge.net/projects/plplot (optionally)

这需要的也太多了,楼上的大侠举个“hello world!”的例子。

98

帖子

5

主题

3

精华

专家

F 币
426 元
贡献
275 点

管理勋章新人勋章

73#
 楼主| 发表于 2014-3-10 15:32:02 | 只看该作者
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/ ... -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工具来的直观,却具有这类软件无法比拟的高水平的排版效果。

————http://blog.sina.com.cn/s/blog_6cbfce850100xecm.html

有的地方有待商榷,总体值得一读。

69

帖子

7

主题

0

精华

专家

F 币
320 元
贡献
224 点
74#
发表于 2014-3-10 16:48:38 | 只看该作者
本帖最后由 jason388 于 2014-3-11 08:45 编辑
lm_lxt 发表于 2014-3-10 15:27
You will need:
•Fortran compiler (recommended is gfortran 4.6 or higher: included in MinGW http:/ ...

实际上不需要那么复杂。我是按下述方式处理的:
1. MinGW编译环境,其安装目前有图形界面,当然要确保勾选了gfortran选项。缺省安装到c:\mingw,并设置访问路径到c:\mingw\bin; 如果已有可运行gcc较新版本,这一步可跳过;
2. gtk-fortran,我下载的是gtk3包,解压到任意目录,比如d:\work\gtk-fortran; 把src目录下的*.f90文件均编译为目标文件(当然与unix或linux相关的可以不编),如果愿意可以生成库文件;
3. 下载gtk+3.6.4 all-in-one bundle包并解压到c:\gtk,把c:\gtk\bin加到访问路径中,按readme中给出的测试方法确认gtk3-demo可以运行。这里要注意的是安装的路径中目录名不要有空格,其实所有从linux移植到windows的程序安装时最好都这样做;
4. 到gtk-fortran安装目录的examples目录下按上一级目录的readme编译gtkhello2.f90. 这里要注意的是如果gfortran找不到gtk库,说明pkg-config未起到作用,可以单独运行pkg-config --cflages --libs gtk+-3.0并把其显示内容人为加到gfortran的命令行上即可。
5. 编译后的gtkhello2.exe运行需要相应的dll,把c:\gtk\bin下的dll拷贝到可执行文件目录下就行了。

其他例子应该都可以类似处理,运行后的平面截图gtk-fortran的目录下或其网站下有。

cmake等可以不安装。

69

帖子

7

主题

0

精华

专家

F 币
320 元
贡献
224 点
75#
发表于 2014-3-10 17:07:10 | 只看该作者
本帖最后由 jason388 于 2014-3-10 17:19 编辑
lm_lxt 发表于 2014-3-10 15:32
Linux是一个非常简洁、高效的操作系统,其命令行工作方式更是十分强大,相比Windows和Mac这种“娱乐型”操 ...

这些东西仁者见仁,智者见智。总的原则是适合自己就好,别人的经验参考一下就行了。比如LaTeX可以生成ps或pdf,非常适合科学排版(写论文比word好用),但学起来有一定难度且国内很多高校和出版社不支持latex文档;linux下写程序,相当多的人用make编译工程并用emacs或vi作为编辑环境,并强调命令行的优势而少用ide,等等。

linux与windows比较起来,占用系统资源少,free或开源的软件资源多,所以还是值得学习的。

69

帖子

7

主题

0

精华

专家

F 币
320 元
贡献
224 点
76#
发表于 2014-3-11 13:16:45 | 只看该作者
jason388 发表于 2014-3-10 16:48
实际上不需要那么复杂。我是按下述方式处理的:
1. MinGW编译环境,其安装目前有图形界面,当然要确保勾选 ...

第4步可以改为:
4. 把附件test.bat复制到gtk-fortran-gtk3的src目录,并运行即会生成例子中的可执行文件;

test.zip

799 Bytes, 下载次数: 2

98

帖子

5

主题

3

精华

专家

F 币
426 元
贡献
275 点

管理勋章新人勋章

77#
 楼主| 发表于 2014-3-11 16:40:28 | 只看该作者
linux下面不熟悉,总体感觉在linux下面的配置都会复杂一些。

98

帖子

5

主题

3

精华

专家

F 币
426 元
贡献
275 点

管理勋章新人勋章

78#
 楼主| 发表于 2014-3-22 14:55:41 | 只看该作者
浮起来慢慢下沉。

27

帖子

7

主题

0

精华

熟手

F 币
136 元
贡献
103 点
79#
发表于 2014-4-4 09:35:08 来自移动端 | 只看该作者
请问,比如用c做可视化界面的时候,Fortran中的程序和c可以相衔接吗?

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1642 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

80#
发表于 2014-4-4 09:57:00 | 只看该作者
我是刚子仔 发表于 2014-4-4 09:35
请问,比如用c做可视化界面的时候,Fortran中的程序和c可以相衔接吗?

与C 连接还是很容易的,与C++就难了
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-26 22:17

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表