- 积分
- 205
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-8-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 wheelar 于 2015-2-28 11:11 编辑
要用IntelVisualFortran,必须安装visual studio,至少要装C++,但是VS实在太大了...
IVF由于本身没有IDE,就得集成到VS中,可是遗憾的是,对于Fortran代码的编辑,除了少数的比如语法高亮之外,辅助编辑功能几乎少的可怜。VB,C#等程序,动辄成百上千行,可是很大部分都是IDE辅助编辑的,但是Fortran,却几乎全部是手工敲进去的。
在网上找了很长时间,终于找到了这样的一款IDE,Code::Blocks, 对于编辑Fortran支持的很好,费了些力气终于安装成功,可是后来才发现“气象家园”里早有仁兄“平流层的萝卜”介绍过这样的好东西http://bbs.06climate.com/forum.php?mod=viewthread&tid=15464。具体的安装就参照上面的连接,这里就不多说了。
由于Code::Blocks纯粹是代码编辑器,支持多种语言,(C/C++,FORTRAN,java,etc),但是它本身没有编译器,编译器选择著名的GNU的gcc里gfortran的Windows版本。编辑器Code::Blocks和编译器gcc加起来都不到200M,gcc里面带有调试器gdb.exe,可以实现断点调试。
这里不对gfortran和IntelFortran的编译功能(比如哪个代码执行效率更高)作比较,我只是单纯的介绍Code::Blocks的编辑功能。
1.Intellisense功能:在程序开头定义了某个变量,如果输入这个变量的前几个字符,系统就会自动提示,按下enter键(不是空格键)就会自动补全,这对于习惯写长变量名的人来说绝对是大大的方便。
2.自动提示系统函数
IVF则不会自动提示
3.自动提示自定义函数,subroutine,以及参数的内容
4.代码折叠,if do function等关键字都可以折叠
5.代码段,按下ctrl+j,就会出现选项,比如选择dw
就会出现
do while ()
end do
代码段可以自己定义添加
等等,编辑功能确实比IVF要强大得多
但是调试功能则不如IVF,由于IVF是集成到VS中的,调试功能和VB,C#等相似,只要鼠标放在变量哪里,就自动出现变量的值,
可是Code::Blocks则是compaq visual Fortran那样的调试模式,而且gdb在Windows平台下,有时不太稳定
另外,关于“平流层的萝卜”里介绍的gfortran可以处理360*181*1464这样的大数组,
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这样的数组,会占用360*181*1464*4/1024/1024=363M的内存,虽然现在电脑的内存都很大,但也不是这样的用法。如果一个程序中有几个这样的巨型数组,估计PC内存就要哭了。
|
|