- 积分
- 22715
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-7-23
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 平流层的萝卜 于 2013-7-3 11:41 编辑
Codeblocks软件是大学用过,同学给的一软件,可以写c语言,用于准备计算机考试。后来听说可以加载gfortran编译器,同样可以写fortran代码,这两天在网上按照安装教程安装了一下,并运行了一些程序,证明是其功能基本和visual fortran无二致。对于想换换口味的童鞋们,Codeblocks+gfortran是不错的选择。
先上一张效果图:
相对visual fortran来说,codeblocks+gfortran(简称CBGF吧)编译界面比较新颖,语法高亮更美观,且可以读大数组文件(后面会提到360*181*1464这样的x*y*t三维数组VF会嫌太大,压根读不了,而CBGF可以读,只不过时间会稍长一些)。
下面,主要分享一下我的安装过程:
1、首先到codeblock网站http://darmar.vgtu.lt/downloads下载fortran版的codeblock安装文件:
之后解压即可,我将其解压在了d:\fortran\下(下边的文件都会放在此文件夹中)。
2、其次下载windows的GNU fortran编译器:http://gcc.gnu.org/wiki/GFortranBinaries/
点选红框内的下载选项即可。下载的是一个可执行文件,双击运行,将安装路径设在d:\fortran 。这样,在d:\fortran下就会有如下的文件。文件准备就齐全了。准备的安装文件还是很小巧的,加一起80多兆的样子,比VF小。
3、配置路径。就是把gfortran编译器安装到codeblock这个编译平台上,有点像安装了一个lingoes翻译软件,但是得下载扩充词库并把词库安装到词典里,才能调用这个词库查词,两者比较类似。
打开codeblock,一路ok,然后在顶部工具栏点setting,在selected compiler里选择GNU fortran compiler,然后在下边一栏里选择 toolchain executable,
选择路径d:\fortran(或者点击auto-detect,下边的会自动配置好),下边的program files一栏里,需要改前三行,手动改成gfortran.exe。在最后一栏make program里,改为make.exe。ok退出。
4、这样就可以编写fortran脚本了,测试一下脚本程序:
随便创建一个txt,把后缀名改成f90,用codeblocks打开(如果一开始运行codeblocks的时候设置了文件关联,默认的f90打开方式就为codeblocks,或者在codeblock里边打开,点击new---->project--->Fortran application,类似visual fortran的创建方式。)输入代码并点击左上角的build---->run,或直接点build and run选项。
运行正常,搞定了。
5、关于CBGF和VF的二进制文件(如grd)读写问题:
VF和CBGF在读写二进制文件的时候有所差异,可能是gfortran编译器区别于ifortran的缘故,在@loftydongshi童鞋的提醒和kongfeng0824http://bbs.06climate.com/forum.php?mod=viewthread&tid=12412&page=1#pid176954的给力启发下,发现是recl的问题。gfortran在这一点上,没有VF简洁。
这里给出我写的一个典型的二进制grd文件的CBVF典型读法,以此类推,可用此读其他一切grd了。
parameter(nx=360,ny=181,nt=1464)
real:: u(nx,ny,nt)
integer :: i,j,recl1
recl1=nx*ny*nt*4
open(11,file='2007_2012_Jun_Jul_u.grd',form='unformatted',access='direct',status='old',recl=recl1)
!open(12,file='text.txt',form='formatted')
read(11,rec=1) (((u(i,j,k),i=1,nx),j=1,ny),k=1,nt)
open(12,file='u11.txt')
do k=1,2
do j=1,ny
write(12,100) (u(i,j,k),i=1,nx)
enddo
enddo
close(11)
100 format(360f8.2)
end program
程序用来全部读取一个360*181*1464大小的u风场grd文件,并按格式输出前2个时次的风场到txt中,需要用记录recl方法直接读取。recl用法参见kongfeng0824的帖子。此处CBGF读取如此庞大的grd并输出用了21.904s时间,而VF根本无法读取,这应该是CBGF的优点之一。输出文件为下图,格式内容均正常。
CBGF还是不错的~~,欢迎交流和指正!
PS:我的电脑是xp系统,win7的不知是否运行顺利,欢迎交流。这是网上的简英文安装教程:https://docs.google.com/file/d/1n5a91xiRR-LDm1xFC0MgCWn3QJ8sYHX0bz1GZ7cZo_BuYOxNYESpQfoIz8N9/edit?pli=1
英文好的同学可以直接看原版。
|
评分
-
查看全部评分
|