Gfortran使用说明.docx_第1页
Gfortran使用说明.docx_第2页
Gfortran使用说明.docx_第3页
Gfortran使用说明.docx_第4页
Gfortran使用说明.docx_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、source中未使用外部库链接的,直接执行:gfortran foo.f/f90 -o foo./foo如没有-o选项,生成a.out文件,这显然不是我想要的。:D2、gFortran分两部分:compiler and library。如果gFortran不是标准安装的,编译source后执行,可能找不到lib,这时可以加入-static选项:gfortran -static foo.f/f90 -o foogFortran会将库建在所生成程序内部。3、FortranSource有77和90两种书写格式,gFortran默认根据后缀进行compile。如果想自定义,例如foo.f是用90格式写的,可执行:gfortran -ffree-form foo.f -o foo大写的后缀名,gFortran会预执行该程序。4、多source文件时,先compile不含PROGRAM语句段的source文件,各自生成foo1.o,foo2.o等。再一起编译。例如:gfortran -c foo1.f/f90gfortran -c foo2.f/f90gfortran main.f/f90 foo1.o foo2.o -o main5、foo.f95的,加选项-std=f95,.f2003的,目前支持尚不完整。顺便说,gFortran unstable版4.3.x将支持pointer。下面还有一些可能常用到的options。-fbounds-check:检查列表序列脚标是否超出-ffree/ffix-line-length-n:设置最大columns。77默认:72;90默认:132。n若设为0或none,则不限有效行数-fimplicit-none:等同于在f90每段sub中声明IMPLICIT NONE,且source中implicit语句优先-fmax-error-n:意义如词义-fsyntax-only:不编译,只检查语法-fexternal-blas:使用BLAS库函数,替代gFortran默认的函数主题:关于Fortran编译器的选择 作者:jason388 发表时间:2007-12-30 10:51:00 楼主 在几个Fortran论坛中都看到有很多人在求助编译器的问题,在此发表一下我的看法。1.开发商业软件者,建议购买正版的Fortan编译器,比如Intel、IBM或其他公司的产品,因为无论在运行速度还是对新标准的支持上,这些大公司的产品都走在了前面。如IBM的产品,基本上做到了对2003标准的完全支持。2.对于非商业软件开发,建议采用开源软件,如GFortran,G95。这些软件目前已经完全支持Fortran95,且部分支持Fortran2003。由于两者都属于GCC系列,因此与其他语言混合编程也非常方便。除此之外,GFortran通过GCC对OpenMP的支持,也支持并行编程。当然由于他们都是跨平台的,因此具有很好的可移植性,也方便对已有资源的利用。3.如果采用GFortran或G95这样的命令行编译器,建议采用SciTE或CodeBlocks作为编辑器,这两款编辑器即开源,同时也都内建了对Fortran的支持,且通过简单的设置即可直接调用GFortran或G95。4.当然对于个人用户,Ftn95也是一个很好的选择。 作者:f2003 发表时间:2007-12-30 13:06:00 第1楼 有时需要在速度与兼容性(跨操作系统兼容性与库的兼容性)之间取舍。intel等商业编译器只能针对glibc的某些版本,有的也调用gcc的库,如intel fortran就调用了libstdc+。从而有兼容问题。gfortran就没有这些问题了,因为是调用你的系统的库定制编译的。兼容性好的速度就慢,gcc要照顾几十种cpu和OS,intel fortran只满足x86/ia64两种cpu和win/linux/macOS三种操作系统,术业有专攻,集中了精力,从而提供了更好的性能。很多时候,intel fortran编译的程序的速度都能达到gfortran两倍。 作者:jason388 发表时间:2007-12-31 8:23:00 第2楼 关于GFortran运行速度可以参考 /wiki/GFortranResults。确实在选择编译器时应该在速度和可移植性方面进行取舍。如果偶尔使用Fortran,没必要考虑太多,只要好用就可以了。如果长时间(比如若干年)使用Fortran,那仔细考虑编译器的选择就很必要了。因为操作系统的更换,机器的升级,新的算法或资源的获得等等都有可能造成已开发程序的改写或重新编译,在这种情况下,如果原来用的编译器无法使用就很麻烦了。比如Windows Vista就不支持以前的很多编译器;VS 的MFC框架在VS Express版本中不支持;Unix下的很多资源向Windows环境的移植等等。程序运行的速度,除了编译器的原因外,编译器命令行参数的选择是非常重要的。当然最重要的还在于数据结构和算法。 作者:jason388 发表时间:2007-12-31 9:03:00 第3楼 GCC是开源社群普遍使用的编译器集合,GFortran是其中的一员。对于科学研究及工程计算来说,网上有大量的免费资源值得我们学习和借鉴。所以我推荐个人用户采用GFortran。对于Fortran编程爱好者来说,与其花很多时间去找破解的商用编译器,为什么不去下载一个小巧又各项功能都不错的开源软件呢?作者:f2003 发表时间:2007-12-31 12:29:00 第4楼 gfortran的一个较大的劣势是优化水平落后,当然gfortran只是个前端,应该说是gcc优化水平落后.只说对处理器优化这一项.现在的x86处理器都带有simd指令,比如sse.苹果使用intel处理器的原因就是它,intel处理器带上sse后打得传统的risc工作站没有还手之力.sse指令对数值计算也非常有用,intel/pgi/absoft都在这里精雕细琢.而gcc基本上没有这能力,还是老掉牙的x87浮点处理器,虽然也能使用sse提高点速度,但基本上只能是标量sse,完全没有发挥出simd的威力.从2005年开始,无数人在gcc的邮件列表上呼吁提供基于simd指令的intrinsics,可考虑到abi兼容性等等,至今都没有达到.用sin函数为例,libm的sin函数就是gcc的内联汇编达到的,使用x87浮点指令fsin,而intel的libimf.so提供了sin函数的基于sse的软件模拟. 结果是intel的速度快了3倍多.当然,gfortran也有优点, 尤其是开源,bug少.intel fortran比较buggy. 作者:sjohn 发表时间:2007-12-31 12:46:00 第5楼 楼上两位Fortran爱好者的水平好高的说占个位子来学习一下,呵呵 作者:maxperson 发表时间:2007-12-31 14:12:00 第6楼 刚刚装gfortran ,我的系统是XP的!达人推荐一个好用的编辑器,用命令行编译有点不适应,vf6.6中的调试程序方便啊,可是用gfortran命令行就给的信息太少,不方便调试!作者:jason388 发表时间:2007-12-31 17:00:00 第7楼 本人认为SciTE和CodeBlocks都不错。CodeBlocks下载地址:/index.php/topic,7515.0.htmlCodeBlocks采用GFortran作为编译器时的设置方法见:/index.php?title=Installing_Fortran_CompilerSciTE下载地址:/SciTE.html作者:maxperson 发表时间:2007-12-31 18:27:00 第8楼 去试试看有问题多向你请教 作者:齐东野人 发表时间:2008-1-1 5:42:00 第9楼 楼主忽略了Sun Studio(IDE加一套C/Cpp/Fortran/Java编译器),以前的商业软件,卖3000美元,现在开源了。 作者:jason388 发表时间:2008-1-1 8:29:00 第10楼 谢谢F2003!有时间去试一试。 作者:jason388 发表时间:2008-1-1 8:42:00 第11楼 感谢9楼。找时间去试一试Sun Studio。我推荐GFortran,SciTE及CodeBlocks还有一个原因是他们都很小巧。对于编程爱好者来说,熟悉命令行工作方式也很重要喔。 作者:fangp2007 发表时间:2008-1-1 9:00:00 第12楼 很好啊,又了解了一些东西谢谢了 作者:谁是谁的谁 发表时间:2008-1-2 15:57:00 第13楼 jason388 f2003都好强的说 作者:f2003 发表时间:2008-1-2 16:36:00 第14楼 引用: 感谢9楼。找时间去试一试Sun Studio。我推荐GFortran,SciTE及CodeBlocks还有一个原因是他们都很小巧。对于编程爱好者来说,熟悉命令行工作方式也很重要喔。我下载安装了scite,真的很不错。codeblocks好像只有win版本?我也很喜欢gfortran,但是他目前至少有两点不足:1) gcc不支持simd单指令多数据优化。这一点真的很要命。举个例子,下面的程序请用ifort -O3 -xN编译,gfortran的优化选项随便你指定,速度都要相差4倍以上。是否支持sse就决定了这一点。program test_sse!use omp_libimplicit noneinteger : i,j,kinteger,parameter : N=1000real(4) : v=0.0,ve=0.0!$omp parallel do schedule(static,2) private(j,k,v) reduction(+:ve)do i=1,8do j=1,Ndo k=1,Nv=tan(real(i)*sin(real(j)*cos(real(k)*tan(real(k)*sin(real(i)*cos(real(j)ve=ve+venddoenddoenddo!$omp end parallel doprint *,ve!print *,omp_get_num_procs()end program test_sse2)对fortran 2003/8的支持落在后面。gfortran的新年献词已经出来了,仅说了句2008年将实现函数指针,其他都没有承诺。/ml/fortran/2008-01/msg00005.html如能解决这两条,那么正如楼主说的,基本上可以送ifort等等商业编译器归西了。 作者:fcInter 发表时间:2008-1-7 1:14:00 第15楼 GCC的SSE的三角函数支持早就已经有了,在X86_64下默认打开,X86下可用-mfpmath=sse打开 作者:fcInter 发表时间:2008-1-7 1:19:00 第16楼 gfortran有自动向量化,不过没有ifort那么强,-O3 -msse2 -ftree-vectorize. -ftree-vectorizer-verbose=9 -mfpmath=sse 作者:f2003 发表时间:2008-1-7 2:03:00 第17楼 欢迎楼上的来讨论。x86_64的浮点就是使用sse,因为寄存器方式更好。但是32位的gcc还没有simd intrinsics。gfortran使用-ftree-vectorize基本上是聊胜于无。反汇编没几个PD,PS后缀的矢量sse指令。后来我想到了一个办法。由于intel的sse2 intrinsics是在libimf.so库中,我使用-O3 -march=pentium4 -mfpmath=sse -ftree-vectorize -limf为优化选项编译我的fortran程序,用libimf取代libm。效果绝对惊人,计算结果也正确。大家自己试试就知我所言非虚。我对simd指令情有独钟。后来我用上述带-limf的选项编译了差不多整个linux,包括xorg,gtk+,mpfr,gmp,gcc,glibc,binutils,firefox以及kde,不知道是不是我的心理作用,fortran编程当然不在画下,即使上ZOL之类的网页好像也是快了点。有人呼吁fortran2008之后的标准中在也引入内联汇编,我绝对要支持! 作者:fcInter 发表时间:2008-1-7 7:43:00 第18楼 呵呵,谢谢.其实早些年某人搞过个libgccm,就是为了SSE的函数优化,不过其中用了AMD捐赠的代码,不符合RMS的政策,因此被毙了.但是该高手不死心,搞了个变通的方法,GCC本身不提供库,让用户自己下载然后链接.GCC can now utilize the ACML library for vectorizing calls to a set of C99 functions on x86_64 if -mveclibabi=acml is specified and you link to an ACML ABI compatible library.其实不只是能链接acml,自己做个adapter,照样可以用mkl里面的libsvml另外,现在邮件列表中有人讨论为fortran加入SIMD的instrisnic,我认为这个才是fortran的正确方向.最好能提供下其它的优化,不用显式使用SIMD,这样可移植性更高,另一方面,加入汇编关键字之后,fortran可能就和C/C+没区别了,这就是舍本逐末.作者:f2003 发表时间:2008-1-7 11:10:00 第19楼 内联汇编跟舰炮和是一个道理,现在早就不是战列舰万炮对轰的时代了,作战都依靠导弹,但军舰还是要装大炮:最后的依靠。对处理器优化并不容易,对gcc是个不小的技术障碍。浏览ifort所编译的程序的汇编代码,里面仍然有少许x87浮点指令,不少sse指令使用到x87寄存器,FISTTP这个sse指令更象是一个x87指令,我觉得intel未必想用sse取代x87,而是以sse为主的互相补充。如果是这样,优化的时候就更要小心了,弄得不好大量时间浪费在反复在sse与x87的寄存器之间转移数据。我觉得intel应该把代码捐赠出来,一方面做点贡献,另一方面也让大家帮助继续优化+找bug。 作者:jason388 发表时间:2008-1-9 3:40:00 第20楼 感谢楼上两位关于GFortran性能的讨论。大部分的开源软件,在性能方面,都或多或少存在与商业软件的差距,即使由商业软件改为开源的也不例外,如OpenOffice。但开源软件的优点也并不是商业软件都具备的,对此想必对开源软件感兴趣的同人都有很多的认识。Intel的Fortran编译器在Linux下可以免费使用,什么时候在Windows也。正如本人在前面强调的,对于商品化软件开发当然要选择大公司的产品:有性能完善的IDE、良好的支持、优秀的性能等等。但对编程爱好者而言,特别是使用某种编程语言较多的人来说,在选择上个人认为还是GFortran这样的开源软件略好:能满足绝大部分编程的需要、对标准的支持尚可、体积小巧(没有太多花哨的东西)、跨平台、容易得到,当然如果你是编程高手又对某些方面的性能有极端需求的话,你自己也可以对其改进(G95的开发者据说就是这样的原因)等等。总之,还是那句话,适用的就是好的。论坛上有对Fortran语言排名的讨论,我相信不论排名多少,再过20年只要有人需要,Fortran还会存在,因为Fortran更适合科学计算,这是其他语言无法比拟的。对编程爱好者来说,编译器只是工具,算法及数据结构才是关注的重点啊!Compiling Fortran出自Ubuntu中文目录隐藏 1 写在前面 2 Fortran 编程中相关文件后缀 3 单个源文件生成可执行程序 4 多个源文件生成可执行程序 5 生成汇编代码 6 编译预处理 7 理解gfortran是gcc的前端 8 其他参考编辑 写在前面 注意:本文是关于 gfortran 的文章。如果你不清楚 gfortran,g77,g95 等等的概念的话,不妨看看GCC 的 Fortran 语言编译器介绍;如果你要用 g77 的话,这是一篇g77入门。编辑 Fortran 编程中相关文件后缀 .a静态库 (archive).f, .for, .FOR.ftn*, .f90*, .f95*, .f03*Fortran源代码(不需编译预处理).F, .fpp, .FPP.FTN*, .F90*, .F95*, .F03*Fortran源代码(需要编译预处理).rFortran源代码(需要RatFor编译预处理).o对象文件.s汇编语言代码.so动态库其中,标 * 的后缀名是gfortran的文件后缀,g77不能识别。编辑 单个源文件生成可执行程序 传统的 Fortran 程序(也就是以 Fortran 77 为代表的)只能用大写字符书写,而且每行前六个字符为特定用途所保留。第一列为字符 C 或 * 所保留,用来表征整行都是注释。第二列到第六列是为标号预留的。代码从第七列开始,到72列结束(73列及以后将被直接忽略,可作注释)。下面是示例程序采用的是传统的 Fortran 格式:C helloworld.fC PROGRAM HELLOWORLD WRITE(*,10) 10 FORMAT(hello, world) END PROGRAM HELLOWORLD编译器 gfortran 并不要求所有代码都大写程序中任何关键词都可以用小写字母。下面的命令将该程序编译成可执行文件:$ gfortran helloworld.f -o helloworld注意到:gfortran 默认会将 .f, .for, .fpp, .ftn, .F, .FOR, .FPP 和 .FTN 结尾的文件作为固定格式处理,而将.f90, .f95, .f03, .F90, .F95 和 .F03 结尾的文件作为自由格式来处理。如果我们将上面程序文件重命名为 helloworld.f90,那么我们必须手动指定其为固定格式:$ mv helloworld.f helloworld.f90$ gfortran helloworld.f90 -ffixed-form -o helloworldFortran 90及以后的标准允许并鼓励用自由的格式书写 Fortran 代码。注释以感叹号(!)开始直到行尾。先前的程序采用自由格式重写如下,其中语句、标号都可从任一列开始:! helloworldff.f90!Program Helloworldwrite(*,10)10 format(hello, world) end Program Helloworld后缀名为 .f90,故 gfortran 将其作为自由格式处理$ gfortran helloworldff.f90 -o helloworldff同样,如果将程序重命名为传统后缀名,那么要通过在命令行中加入选项 -ffree-form 进行编译,如下:$ mv helloworldff.f90 helloworldff.for$ gfortran -ffree-form helloworldff.for -o helloworldff由于两种格式的具有很大的区别,程序书写是只能选择其中的一种格式进行书写。注意:遵守后缀约定是很重要的。编辑 多个源文件生成可执行程序命令 gfortran 可将多个 fortran 源码文件编译链接成为一个单一的可执行程序。下面列出了一个保存在文件 caller.f 中的简单程序的主体部分,它调用一个函数并显示出结果:C caller.fC PROGRAM CALLER I = Iaverageof(10,20,83) WRITE(*,10) Average=, I 10 FORMAT(A,I5) END PROGRAM CALLER名为 Iaverage 函数定义在另一个独立的源文件中,如下:C called.fC INTEGER FUNCTION Iaverageof(i,j,k) Iaverageof = (i + j + k) / 3 RETURN END FUNCTION Iaverageof通过下面的语句这两个源码文件可被编译链接成一个名为 caller 的可执行程序:$ gfortran caller.f called.f -o caller同样的结果可由下面的命令序列得到先将每一个源码文件编译成对象文件,而后将对象文件链接为可执行程序:$ gfortran -c caller.f -o caller.o$ gfortran -c called.f -o called.o$ gfortran caller.o called.o -o caller编辑 生成汇编代码选项 -S 指示编译器 gfortran 生成汇编语言代码然后结束。要得到我们本文先前的 helloworld.f 例子的汇编代码,只需输入以下命令:$ gfortran -S helloworld.f生成的汇编语言文件名为 helloworld.s。汇编语言的具体形式依赖于编译器的目标平台。编辑 编译预处理 编译以 .F, .fpp, .FPP, .FTN, .F90, .F95 和 .F03 结尾的文件时,在它真正编译之前需要预处理。预处理器原本是为协助 C 语言工作所设计的。下面的例子是一个自由格式的 Fortran 程序,它通过预处理器将一个函数包含进主程序:! evenup.F90!#define ROUNDUP#include iruefunc.h!program evenupdo 300 i=11,22 j = irue(i) write(*,10) i,j300 continue 10 format(I5,I5)end program evenup函数 irue() 的源代码保存在文件 iruefunc.h 中,根据宏 ROUNDUP 所定义的值的不同将产生不同的编译结果。该函数将任何一个奇数近似为一个偶数。默认情况下,它向下取近似,但是当 ROUNDUP 被定义时,该函数将向上取近似而得到一个偶数。ireu() 的函数体如下:integer function irue(i)k = i / 2k = k * 2if (i .EQ. k) then irue = ielse#ifdef ROUNDUP irue = i + 1#else irue = i - 1 #endifend ifend function irue下面的命令将该程序编译成可执行文件:$ gfortran evenup.F90 -o evenup采用自由格式写程序以利用预处理器不是必须的。固定格式程序也可进行编译预处理,下面的程序也是有效的:C adder.FC#define SEVEN 7#define NINE 9C program adder isum = SEVEN + NINE write(*,10) isum 10 format(I5) end program adder下面的命令将该程序编译成可执行文件:$ gfortran adder.F -o adder编辑 理解gfortran是gcc的前端像 g+ 一样,gfortran 也只是设置过 Fortran 程序所需基本环境的 gcc 的一个前端。本文一开始的例子我们可以通过下面 gcc 的命令来编译:$ gcc helloworld.f -o helloworld -lgfortran -lgfortranbegin库文件 libgfortranbegin.a (通过命令行选项 -lgfortranbegin 被调用) 包含运行和终止一个 Fortran 程序所必须的开始和退出代码。库文件 libgfortran.a 包含 Fortran 底层的输入输出等所需要的运行函数。当运行 gfortran 时,会自动链接这两个库。这和下面的命令是等价的:$ gfortran helloworld.f -o helloworld当我们运行 gfortran 时,实际上运行并不是这个编译器,而是编译器驱动器。该驱动器解析命令行中所给出的选项,然后才调用真正的编译器,汇编器和链接器。默认情况下,编译器驱动器根据命令行中给定的文件的后缀决定它自己下一步的动作:一个名为 foo.c 将传递给 C 编译器,而名为 foo.f95 的文件将传递给 Fortran 95 的编译器,等等。理解了这一点,我们就可以知道 gcc helloworld.f 将自动调用 fortran 的编译器。只不过我们要为链接器指定必要的库。 理解了这一点,我们可以知道 gfortran helloworld.c 可以编译一个 c 程序,gfortran helloworld.cpp -lstdc+ 编译的是一个 C+ 程序。随笔- 204 文章- 0 评论- 10 如何在Windows下使用LAPACK和ARPACK 转我最近打算开始学写Fortran程序和使用LAPACK和ARPACK。在学校的Linux上,一个make就搞定了。但是我自己的电脑是 Windows 7系统,什么cmake, nmake的我都试过了,没有一个能够make出来的。网上也有很多Windows下怎么用LAPACK的资料,有的直接给我一个编好的 LAPACK.lib,结果发现不能在gfortran上连接;有的要改Makefile什么的,我觉得都是写给高手看的。所以从前天开始我自己在家里捣 鼓了一个周末,终于弄通了,写个总结在这里做个备忘。希望有情况跟我类似的人会得到帮助。一、Fortran 的安装我需要一个可以在Window下使用的Fortran编译器。我不喜欢Compaq Fortran 的原因是它调试通过的程序,经常不能在学校的gfortran上面通过;而且它 的编辑器没有 code folding 非常不爽;还有就是太贵买不起。我比较推荐 Simply Fortran编辑器,小巧简单,并自带一个gfortran的编译器(Simply Fortran的安装程序:simplyfortran-1.9-setup.exe), 注册费是25美元。Simply Fortran安装起来以后,在安装目录下的 mingwbin 这里面就有GNU的编译器 gcc 和 gfortran以及其它一堆有用的工具,这些东西下面会用到。当然如果只想要编译器的话可以直接安装 gfortran (安装程序:gfortran-windows-20110214.exe),安装好了以后编译器在gfortranbin里面。二、LAPACK库的编译接下来,我要把LAPACK弄起来。于是我到netlib上下载了最新版本(lapack-3.3.0.tgz),然后解压缩出来。由于我没有BLAS库,所以我想把BLAS和LAPACK一起编译成一个库以后就可以一起用了。具体做法如下:1. 打开解压缩文件夹,把lapack-3.3.0BLASSRC里面的所有*.f文件 以及 lapack-3.3.0INSTALL里面的dlamch.f和slamch.f两个文件 都复制到 lapack-3.3.0SRC 文件夹里面。复制的时候提示有两个文件是重复的,我选择了不要覆盖。这样BLAS和LAPACK两个库的源文件都在一起了。2. 然后cmd进入DOS,先检查path里面有没有 mingwbin (或者gfortranbin)。E:lapack-3.3.0pathPATH=D:Program FilesSimply Fortranfwinmingwbin;.如果Simply Fortran安装正确的话,应该会自动添加mingwbin到搜索路径的。如果没有的话就手动添加一下E:lapack-3.3.0path=D:Program FilesSimply Fortranfwinmingwbin; %path%Simply Fortran的安装目录根据自己情况要修改一下。3. DOS进入lapack-3.3.0SRC目录,用gfortran 开始编译E:lapack-3.3.0cd SRCE:lapack-3.3.0SRCgfortran -fimplicit-none -g -c *.f -O2(等待十几分钟,可以在Windows下看到SRC文件夹里面源源不断地冒出.o文件)然后以下文件需要无优化地重新编译E:lapack-3.3.0SRCgfortran -fimplicit-none -g -c slaruv.f -O0E:lapack-3.3.0SRCgfortran -fimplicit-none -g -c dlaruv.f -O0E:lapack-3.3.0SRCgfortran -fimplicit-none -g -c sla_wwaddw.f -O0E:lapack-3.3.0SRCgfortran -fimplicit-none -g -c dla_wwaddw.f -O0E:lapack-3.3.0SRCgfortran -fimplicit-none -g -c cla_wwaddw.f -O0E:lapack-3.3.0SRCgfortran -fimplicit-none -g -c zla_wwaddw.f -O0我是一行一行执行的4. 用ar 连接成一个库E:lapack-3.3.0SRCar rcs liblapack.a *.o这样就在SRC文件夹里得到LAPACK库文件 liblapack.a。三、ARPACK库的编译先到ARPACK的官方网站去下载程序包,我选择下载了 arpack96.tar.gz 和补丁 patch.tar.gz。1. 把两个压缩文件分别解压以后,第一步是先打上补丁。复制patch下的ARPACK 粘贴到 arpack96 里面去覆盖同名文件, 在Win7上会提示合并文件夹,选择是,然后会提示复制和替换文件,选择全部替换就行了。2. 把 arpack96ARPACKBLAS,arpack96ARPACKLAPACK 和 arpack96ARPACKUTIL 中的 *.f 文件都复制到 arpack96ARPACKSRC 里面去。然后有三个源文件需要改动。首先,找到second.f 打开,把里面的内容改成:SUBROUTINE SECOND( T )REAL TCALL CPU_TIME(T)RETURNEND保 存。因为原来的程序要调用ETIME来返回时间,但是连接的时候会出错提示找不到ETIME。我看了一下gfortran 里好像是用 CPU_TIME 来计时的,所以就改过来。还有就是 dnrm2.f 和 snrm2.f 使用了ASSIGN statement, 这个语句在Fortran 95 的标准里面已经被删除了,所以gfortran 不能编译这两个文件。因此,需要到netlib上下载它们的更新版本: dnrm2.f 和 snrm2.f 并替换旧版文件。3. 接下来编译ARPACK和LAPACK基本原理是类似的。用DOS进入 arpack96ARPACKSRC 目录,用gfortran 开始编译:E:arpack96ARPACKSRCgfortran -fimplicit-none -g -c *.f -O24. 用ar 连接成一个库E:arpack96ARPACKSRCar rcs libarpack.a *.o这样就在SRC文件夹里得到ARPACK库文件 libarpack.a。四、LAPACK的使用如果用gfortran直接编译的话,有两种选择。第一种方法,先把liblapack.a和libarpack.a复制到程序源文件的目录下,然后一起编译gfortran foo.f90 liblapack.a libarpack.a第二种方法是把liblapack.a和libarpack.a复制到 gfortran 所在目录下的 lib 里面,然后以后编译的时候只要加上 -llapack 或 -larpack的flag就可以了gfortran foo.f90 -llapack -larpack这个就和Linux下是一样的了。在Simply Fortran里面用的话,先确保 liblapack.a和libarpack.a 已经复制到 mingwlib 里面,然后从Options菜单打开Project Options,在Project Flags的Linkers里面添加 -llapack 或 -larpack 就行了,不过每个project都要设定project flags。注意要用1.11以上版本的Simply Fortran,旧版的Project Flags放置的位置有 bug。转 /note/132392388/Simply fortran 下载地址点击下载:Fortran集成开发环境.Approximatrix.Simply.Fortran.v1.9.467.Cracked-DJiNN.zip 迅雷会员下载软件类型:编程开发-集成开发软件性质:免费破解软件操作系统:Windows应用平台:winll问题反馈:/about/contact网站链接:/软件介绍:Simply Fortran是一种新的,完整的微软视窗操作系统兼容的Fortran和解决方案。为从设计之初GNU Fortran的互操作性,提供了一个简单的Fortran可靠的一切必要的生产工具,专业人士预计Windows平台上的Fortran编译器。Simply Fortran语言包包括一个配置GNU的Fortran编译器的安装,集成开发环境,图形化调试器,以及其他发展必需品的集合。 Simply Fortran是一种廉价的方式,任何人高效开发利用的Fortran语言。Approximatrix, LLC, is happy to announce the availability of Simply Fortran Version 1.9. The latest release of the Simply Fortran suite incorporates a number of enhancements to the integrated development environment. Additional hotkey functionality has been added to allow rapid searching of a single file, all project files, or the project element index based on highlighted text within the editor. The build process has been accelerated slightly with some additional behind-the-scenes code changes. Minor issues related to cut, copy, and paste hotkeys outside the editor have been resolved. The latest version is available from the Downloads page. Please consider registering Simply Fortran to help support the ongoing development of this suite.特点:Designed for GFortranSimply Fortran has been designed from the start with GFortran integration as the primary goal. The Simply Fortran development environment has been tested using the powerful, open-source Fortran compiler and its related GNU tools. The widely used open-source compiler and toolset have been packaged for Microsoft Windows and compatible operating systems, and the Simply Fortran IDE provides a comfortable tool for Windows developers, mathematicians, and scientists.Insight DebuggerSimply Fortran ships and integrates with the Insight Debugger, a graphical front end to the GNU Debugger, GDB. Insight provides a graphical user interface for debugging Fortran programs and projects, and it is available immediately from the Simply Fortran menus or toolbar. Features within Insight are extensive, including a range of breakpoints, stack tracing, thread monitoring, and watch expressions. Code compiled with GFortran using the debug flag is understood by Insight, and Fortran types can be inspected seamlessly within the debugger. The Insight Debugger is a powerful tool for professional Fortran developers.Advanced EditingThe Simply Fortran environment integrates the Scintilla editing component, which provides advanced features for editing Fortran source code. Simply Fortrans implementation includes the following features:Syntax Higlighting - for easily identifying keywords, comments, etc. in multiple languagesFortran Intrinsics Call Tips - providing real-time assistance when entering a procedure or function intrinsic to the Fortran standardSource Code Outline - allowing rapid navigation of large files via a structured outline of the source codeFolding - to expand and contract loops, conditionals, subroutines, functions, and modulesAutomated

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论