以文本方式查看主题

-  Fortran中文网  (http://fortran.cn/bbs/index.asp)
--  Fortran语言使用经验交流  (http://fortran.cn/bbs/list.asp?boardid=2)
----  介绍几个免费的Fortran编译器,以免受找不到商业软件之苦  (http://fortran.cn/bbs/dispbbs.asp?boardid=2&id=158)

--  作者:home007
--  发布时间:2006/5/8 22:43:14

--  介绍几个免费的Fortran编译器,以免受找不到商业软件之苦
文章的篇幅较长,而且现在时间较紧,先发已经写好的第一部分

     如今都是图形界面的年代了,对于原始的命令行工作的编译器, 其局限性很明显。首先介绍几个有良好集成开发环境的编译器。

1. Salford FTN95 Fortran 95 Compiler ,个人版(FTN95 Personal Edition )是免费的,它具有强大的功能和集成开发环境(Full implimentation of Fortran 95 for native Windows and .net )。与已经发行多年并且停止开发的Compaq Visual Fortran相比,集成开发环境一点也不差,而且还能开发.net的应用程序(Compaq Visual Fortran只能生成win32应用程序)。另外该软件还提供了显示科学计算所需的2D和3D绘图工具,能节省不少开发的工作量。

唯一不足的是生成的应用程序会显示该产品的标志,以限制开发用于商业用途的程序。当然如果付费购买专业版的话就没有此限制。不过我想对于学习和日常的计算这个不是问题。

FTN95 compiles all Fortran 77, Fortran 90, Fortran 95 standard code and has some features from the Fortran 2003 standard.

网址: http://www.silverfrost.com/32/ftn95/ftn95_personal_edition.asp

下载地址:

http://www.download.com/Silverfrost-FTN95/3000-2069-10491439.html?part=dl-Silverfro&subj=uo&tag=button

2. Open Source Watcom / OpenWatcom Fortran Compiler

在和微软及Borland的C++开发工具竞争失败后, Watcom 改变了发展策略,致力于开发开放源代码的免费开发工具。虽然现在已经被收购,但其开发的C++和Fortran 编译器仍旧很好用,不过不能支持最新的.net应用程序开发是个遗憾,并且对 Fortran 的支持也只是限于 Fortran 77 。但是我想对于科学计算来说, Fortran 77 在大多数情况下也够用了。除windows版本外,该编译器还有OS/2的版本,并且还提供完整的手册可供下载。

下载地址:http://www.openwatcom.org/index.php/Download

3. Lcc-Win32

和Salford FTN95一样,该编译器不是 freeware ,不过对非商业用途该软件是免费的。看到不少网站说Lcc-Win32除可编译C和C++外,外加一些附件 (with some common extensions) 还可支持Fortran 77 的编译。可惜一直没有找到所说的 common extensions 。

[此贴子已经被作者于2006-5-8 22:45:37编辑过]


--  作者:齐东野人
--  发布时间:2006/5/8 23:01:02

--  

Linux+(Emacs/VIM/Eclipse/Sun Studio/KDevelop)+GCC

谢谢楼主发贴,不过国内的人让盗版惯坏了,这里的新手问的最多竟然是CVF安装不上:).

我说这些首先就没有一个是收费的。

你说的都是Win平台的,而Win首先就是花钱的。不过国内的Linux风气,不提也罢。

所谓IDE其实没有太大好处,Win平台下,(UltraEdit/Editplus)+MinGW也能自己DIY出免费的IDE编辑调试环境。只是国内大家习惯了用Pirate版本,没有人考虑GNU。

谢谢楼主发贴,楼主一看就是经验丰富,以后常来,交个朋友。


--  作者:987654wsmxyz
--  发布时间:2006/5/10 22:55:00

--  
谢谢楼主了,正在下。
--  作者:vqimwr
--  发布时间:2006/5/14 8:44:31

--  

to 冷:

UE怎么才能+MinGW呢?稍微具体一点行吗?

我只知道在UE的wordfile.txt里加上如下代码可以识别的词语集

/L20"Fortran 90" FORTRAN_LANG Line Comment = ! $  Nocase String Chars = "\' FORTRAN_LANG File Extensions = F90 F77 FOR FTN F
/Delimiters = ~!@%^&*()-+=|\\/{}[]:;"\'<> ,
/Function String = "%[ ^t]+^{PROGRAM^}^{SUBROUTINE^}*$"
/Function String 1 = "%[ ^ta-zA-Z0-9]++FUNCTION[ ^t]++[a-zA-Z_0-9]+[(]+*"
/Indent Strings = "THEN" "ELSE" "DO" "FORALL" "ENDIF" "ENDDO" "END IF" "END DO"
/C1"Statements"
ADMIT ALLOCATABLE ALLOCATE ASSIGN ASSIGNMENT AT
BACKSPACE BLOCK
CALL CASE CHARACTER CLOSE COMMON COMPLEX CONTAINS CONTINUE CYCLE
DATA DEALLOCATE DEFAULT DIMENSION DO DOUBLE
ELSE ELSEIF ELSEWHERE END ENDDO ENDFILE ENDIF ENDWHILE ENTRY EQUIVALENCE EXECUTE EXIT EXTERNAL
FORALL FORMAT FUNCTION
GO GOTO GUESS
IF IMPLICIT IN INOUT INQUIRE INTEGER INTENT INTERFACE INTRINSIC
KIND
LOGICAL LOOP
MAP MODULE
NAMELIST NONE NULLIFY
ONLY OPEN OPERATOR OPTIONAL OTHERWISE OUT
PARAMETER POINTER PRIVATE PROCEDURE PROGRAM PUBLIC
QUIT
READ REAL RECORD RECURSIVE REMOTE RESULT RETURN REWIND
SAVE SELECT SEQUENCE STOP STRUCTURE SUBROUTINE
TARGET THEN TO TYPE
UNION UNTIL USE
WHERE WHILE WRITE
/C2"Intrinsic Operators"
.AND. .EQ. .EQV. .GE. .GT. .LE. .LT. .NE. .NEQV. .NOT. .OR.
/C3"Functions"
ABS ACHAR ACOS ADJUSTL ADJUSTR AIMAG AINT ALL ALLOCATED ANINT ANY ASIN ASSOCIATED ATAN ATAN2
BIT_SIZE BREAK BTEST
CARG CEILING CHAR CMPLX CONJG COS COSH COUNT CSHIFT
DATE_AND_TIME DBLE DIGITS DIM DOT_PRODUCT DPROD DVCHK
EOSHIFT EPSILON ERROR EXP EXPONENT
FLOOR FLUSH FRACTION
GETCL
HUGE
IACHAR IAND IBCLR IBITS IBSET ICHAR IEOR INDEX INT INTRUP INVALOP IOR IOSTAT_MSG ISHFT ISHFTC
LBOUND LEN LEN_TRIM LGE LGT LLE LLT LOG LOG10
MATMUL MAX MAXEXPONENT MAXLOC MAXVAL MERGE MIN MINEXPONENT MINLOC MINVAL MOD MODULO MVBITS
NBREAK NDPERR NDPEXC NEAREST NINT NOT
OFFSET OVEFL
PACK PRECFILL PRECISION PRESENT PRODUCT PROMPT
RADIX RANDOM_NUMBER RANDOM_SEED RANGE REPEAT RESHAPE RRSPACING
SCALE SCAN SEGMENT SELECTED_INT_KIND SELECTED_REAL_KIND SET_EXPONENT SHAPE SIGN SIN SINH SIZE SPACING SPREAD SQRT SUM SYSTEM SYSTEM_CLOCK
TAN TANH TIMER TINY TRANSFER TRANSPOSE TRIM
UBOUND UNDFL UNPACK
VAL VERIFY
/C4"I/O statements"
ASSIGN
BACKSPACE
CLOSE
ENDFILE
OPEN
PAUSE PRINT
READ REWIND
WRITE
/C5"File Status"
ACCESS ACTION
BLANK BLOCKSIZE
CARRIAGECONTROL
DIRECT
ERR EXIST
FILE FMT FORM FORMATTED FROM
IOSTAT
LOCATION
NAME NAMED NEXTREC NUMBER
OPENED
POSITION
RECL RECORDTYPE
SEQUENTIAL STAT STATUS
UNFORMATTED UNIT
/C6"Preprocessor"
INCLUDE
/C7"Operators"
==
=
<
>
+
*
^
-
// /
!
&

怎么让它编译就不知道了。请提一下,谢了。


--  作者:vqimwr
--  发布时间:2006/5/14 9:03:55

--  

下了“alford FTN95 Fortran 95 Compiler ,个人版(FTN95 Personal Edition )”,好像只支持for95,不支持77及低版本语法。

比如warning 279 - The \'H\' edit descriptor is an obsolescent feature

说H编辑符已经废弃了。

这样就不爽了。还是cvf好。


--  作者:齐东野人
--  发布时间:2006/5/30 0:48:33

--  

UE怎么才能+MinGW呢?

MinGW本身带了一gcc的编译器。UltraEdit的命令行可以配置。

高级-工具栏配置。

把g77编译器 工具栏上面。

另外除了MinGW,PDGPP,Cygwin都有gcc编译器,他们作用都是win下使用linux命令。window平台下面如果用GVIM也挺好用,自动支持语法高亮。


--  作者:wy112301
--  发布时间:2006/6/19 17:00:22

--  
谢谢楼主
--  作者:supoingo
--  发布时间:2006/6/22 21:04:13

--  

难道就把g95就忘了吗?

高版的g77啊


--  作者:nova
--  发布时间:2006/9/11 23:41:47

--  
以下是引用齐东野人在2006-5-8 23:01:02的发言:

Linux+(Emacs/VIM/Eclipse/Sun Studio/KDevelop)+GCC

谢谢楼主发贴,不过国内的人让盗版惯坏了,这里的新手问的最多竟然是CVF安装不上:).

我说这些首先就没有一个是收费的。

你说的都是Win平台的,而Win首先就是花钱的。不过国内的Linux风气,不提也罢。

所谓IDE其实没有太大好处,Win平台下,(UltraEdit/Editplus)+MinGW也能自己DIY出免费的IDE编辑调试环境。只是国内大家习惯了用Pirate版本,没有人考虑GNU。

谢谢楼主发贴,楼主一看就是经验丰富,以后常来,交个朋友。

都没有用过,eclipse以为只是开发java呢。呵呵。请介绍eclipse和sun studio开发fortran有什么优势么?


--  作者:齐东野人
--  发布时间:2006/9/12 2:09:47

--  
eclipse 只是个平台,挂一个编译器什么都可以开发。

最大的优势是免费,随便下载安装。
京ICP备05056801号