fortran文件操作

fortran文件操作
fortran文件操作

fortran文件操作

From: 《Fortran 95 程序设计》彭国伦

1.文件读取的概念:

读取:“顺序读取”和“直接读取”。

保存:“文本文件”和“二进制文件”。

二进制文件:读取快,因为保存格式和数据在内存中的保存方法一样,同时也节省空间。

----------------------------------

2. 文件的操作:

----------------------------------

open的使用:使用open命令打开文件之后,就可以对文件来做输入输出。

example:

program ex0901

impicit none

open(unit=10, file='hello.txt') ! 打开hello.txt文件, unit指定文件代码,file 指定文件名称。

write(10, *) "hello" !在代码为10的文件中写入hello

stop

end program ex0901

open中有很多参数可以使用,详细如下:

OPEN(UNIT=number, FILE='filename', FORM='...', STATUS='...', ACCESS='...', RECL=length, ERR=label, IOSTAT=iostat, BLANK='...', POSITION='...', ACTION=action, PAD='...', DELIM='...')

UNIT='number': number必须是一个正整数,它可以使用变量或是常量来赋值。number最好避开1,2,5,6。因为2,6是默认的输出位置,也就是屏幕。1,5则是默认的输入位置,键盘。

FILE='filename':指定要打开的文件名称,文件名要符合系统规定。windows下不区分大小写,unix下则会区分大小写,最好不要使用中文文件名。

FORM='FORMATTED' OR 'UNFORMATTED'

FORM字段只有两个值可以设置:

FORM='FORMATTED' “文本文件”格式来保存

FORM='UNFORMATTED' “二进制文件”格式保存

这一栏不给定时候的默认值是: FORM='FORMATTED'

STATUS='NEW' or 'OLD' or 'SCRATCH' or 'UNKNOWN' 用来说明打开一个新的文件或已经存在的旧文件。

STATUS='NEW' 打开一个原本不存在的新文件

STATUS='OLD' 打开一个原来已经存在的文件

STATUS='REPLACE' 若文件已经存在则重新创建一次,原来的内容消失;若不存在则会创建新文件。

STATUS='SCRATCH' 表示要打开一个暂存文盘,这个时候可以不需要指定文件名称,也就是FILE这个一栏可以忽略。因为程序本身会自动取一个文件名,至于文件名是啥也不重要,因为暂存盘会在程序结束后自动删除。

STATUS='UNKNOWN' 由各编译器自定义。通常会同REPLACE的效果。

!这一栏不给定时,默认为STATUS='UNKNOWN'。

ACCESS='SEQUENTIAL' or 'DIRECT' 设置读写文件的方法:

ACCESS='SEQUENTIAL' 读写文件的操作会以“顺序”的方法来做读写,“顺序读取文件”。ACCESS='DIRET' 读写文件的操作可以任意指定位置,“直接读取文件”。

!不赋值时候,默认为: ACCESS='SEQUENTIAL'。

RECL=length 在顺序读取文件中,RECL字段值用来设置一次可以读取多大容量的数据。

打开“直接读取文件”,RECL=length的length值是用来设置文件中每一个模块单元的分区长度。

length的单位在文本根式下为1个字符,也就是1 byte。在二进制格式下则由编译器自行决定,一般可能为1 byte (G77) 或 4 byte (Visual Fortran)。

ERR=LABEL 这个字段用来设置当文件打开发生错误时,程序会跳跃到LABEL所指定的行代码处来继续执行程序。

IOSTAT=var 这个字段会设置一个整数值给后面的整型变量,这是用来说明文件打开的状态,数值会有下面三种情况:

var>0 表示读取操作错误

var=0 表示读取操作正常

var<0 表示文件终了

BLANK='NULL' or 'ZERO' 用来设置输入数字时,当所设置的格式字段中有空格存在时所代表的意义。

BLANK='NULL'时,空格代表没有东西。BLANK='ZERO'时,空格部分会自动以0代入。

以下是Fortran 90添加的功能:

POSITION='ASIS' or 'REWIND' or 'APPEND' 设置文件打开时候的读写位置:POSITION='ASIS' 表示文件打开时的读取的位置不特别指定,通常就是在文件的开头。是默认值。

POSITION='REWIND' 表示文件打开时的读取位置移到文件的开头。

POSITION='APPEND' 表示文件打开时的读取位置移到文件的结尾。

ACTION='READ' or 'WRITE' or 'READWRITE' 设置打开文件的读写权限:

ACTION='READWRITE' 表示所打开的文件可以用来读取及写入,这是默认值。

ACTION='READ' 表示所打开的文件只能用来读取数据。

ACTION='WRITE' 表示所打开的文件只能用来写入数据。

PAD='YES' or 'NO'

PAD='YES' 在格式化输入时,最前面的不足字段会自动以空格填满,默认值是PAD='YES'。PAD='NO' 在格式化输入时,不足的字段不会自动以空格填满。

DELIM='APOSTEROPHE' or 'QUOTE' or 'NONE'

DELIM='NONE' 纯粹输出字符串内容

DELIM='QUOTE' 输出字符串内容会在前后加上双引号

DELIM='APOSTEROPHE' 输出字符串内容会在前后加上单引号

-----------------------------------------

WRITE & READ的使用(详细):

WRITE/READ(UNIT=number, FMT=format, NML=namelist, REC=record, IOSTAT=stat,

ERR=errlabel, END=endlabel, ADVANCE=advance, SIZE=size)

UNIT=number 指定read/write所使用的输入输出的位置。

FMT=format 指定输入输出格式的使用。

NML=namelist 指定读写某个NAMELIST的内容(后续介绍)。

REC=record 在直接读取文件中,设置所要读写的文件的模块位置。

IOSTAT=stat 会设置一个数值给在它后面的变量,用来说明文件的读写状态。

stat>0 表示读取操作发生错误。

stat=0 表示读取操作正常。

stat<0 表示文件终了。

ERR=errlabel 指定在读写过程中发生错误时,会转移到某个行代码来继续执行程序。END=endlabel 指定在读写到文件末尾时,要转移到某个行代码来继续执行程序。

以下是fortran 90添加功能:

ADVANCE='YES' or 'NO' 设置在文本格式下的顺序文件中,每一次的READ,WRITE命令完成后,

读写位置会不会自动想下移动一行。

ADVANCE='YES' 是默认的状态,每读写一次会向下移动一行。

ADVANCE='NO' 会暂停自动换行的操作。

!使用这个字段时候一定要设置输出入格式,在屏幕输出时可以使用这个设置来控制write命令是否会自动换行。

SIZE=count 在ADVANCE='NO'时,才可以使用这个字段。它会把这一次输出入的字符数目设置给后面的整型变量。

----------------------------------

查询文件的状态INQUIRE:

在使用open打开文件的前后,都可以通过inquire命令来查询文件目前的情况,inquire 命令中的各个字段和第一小节中open的字段很类似。

example: !检查某个程序是否存在

program ex0903

implicit none

character(len=20) :: filename = "ex0903.f90"

logical alive

inquire(file=filename, exist=alive)

if(alive) then

write (*, *) filename, " exist."

else

write (*, *) filename, "doesn't exist."

end if

stop

edn program ex0903

详细介绍inquire的使用方法:

INQUIRE(UNIT=number, FILE=filename, IOSTAT=stat, ERR=label, EXIST=exist, OPENED=opened, NUMBER=number, NAMED=named, ACCESS=access, SEQUENTIAL=sequential, DIRECT=direct, FORM=form, FORMATTED=formatted, UNFORMATTED=unformatted, RECL=recl)

UNIT=number 文件代号

FILE=filename 文件名

IOSTAT=stat 查询文件读取情况,会设置一个整数给后面的变量:

stat>0 文件读取操作错误

stat=0 文件读取操作正常

stat<0 文件终了

ERR=errlabel 发生错误时会转移到复制的代码行继续执行程序。

EXIST=exist 检查文件是否存在,返回布尔变量,真表示存在,假值表示不存在。OPEND=opened 检查文件是否用已经用open打开,返回布尔变量,真表示已经打开,假表示尚未打开。

NUMBER=number 用文件名来查询这个文件所给定的代码。

NAMED=named 查询文件是否取了名字,也就是检查文件是否为临时保存盘,返回值为逻辑数。

ACCESS=access 检查文件的读取格式,返回一个字符串,可以是:

'SEQUENTIAL' 代表文件使用顺序读取格式

'DIRECT' 代表文件使用直接读取格式

'UNDEFINED' 代表没有定义

SEQUENTIAL=sequential 查看文件是否使用顺序格式,会返回一个字符串,可以是:

'YES' 代表文件是顺序读取文件

'NO' 代表文件不是顺序读取文件

'UNKNOWN' 代表不知道

DIRECT=direct 查看文件是否使用直接格式,会返回一个字符串,可以是:

'YES' 文件是直接读取文件

'NO' 文件是非直接读取文件

'UNKNOWN' 代表不知道

FORM=form 查看文件的保存方法,返回字符串,可以是:

'FORMATTED' 打开的是文本文件

'UNFORMATTED' 打开的是二进制文件

'UNDEFINED' 没有定义

FORMATTED=fmt 查看文件是否是文本文件,返回字符串,可以是:

'YES' 本文件是文本文件

'NO' 本文件非文本文件

'UNDEFINED' 无法判断

UNFORMATTED=fmt 查看文件是否是二进制文件,返回字符串,可以是:

'YES' 本文件是二进制文件

'NO' 本文件非二进制文件

'UNKNOWN' 无法判断

RECL=length 返回open文件时recl栏的设置值。

NEXTREC=nr 返回下一次文件读写的位置。

BLANK=blank 返回值是字符串,用来查看open文件时的blank参数所给定的字符串值。以下是fortran 90的添加功能:

POSITION=position 返回打开文件时position字段所给定的字符串, 可能是'REWIND',

'APPEND', 'ASIS', 'UNDEFINED'

ACTION=action 返回打开文件时action 字段所赋值的字符串,可能是'READ', 'WRITE',

'READWRITE'。

READ=read 返回字符串,检查文件是否为只读文件:

'YES' 文件是只读的

'NO' 文件不是只读的

'UNKNOWN' 无法判断

WRITE=write 返回一个字符串,检查文件是否可写入:

'YES' 文件可以写入

'NO' 文件不可以写入

'UNKNOWN' 无法判定

READWRITE=readwrite 返回一个字符串,检查文件是否可以同时读及写:

'YES' 文件可以同时读写

'NO' 文件不可以同时读写

'UNKNOWN' 无法判定

DELIM=delim 返回打开文件时,DELIM字段所设置的字符串,返回值可以是:

'APOSTROPHE', 'QUOTE', 'NONE', 'UNDEFINED'

PAD=pad 返回打开文件时PAD字段所设置的字符串,返回值可以是:'YES', 'NO'。

其他文件运行命令:

BACKSPACE(UNIT=number, ERR=errlabel, IOSTAT=iostat) 把文件读写位置退回一步。ENDFILE(UNNIT=number, ERR=errlabel, IOSTAT=iostat)使用这个命令会把目前文件的读写位置变成文件的结尾。

REWIND(UNIT=number, ERR=errlabel, IOSTAT=iostat)把文件的读写位置倒回到文件开头。CLOSE(UNIT=number, STATUS=string, ERR=errlabel, IOSTAT=) 把文件关闭,不要进行读写操作。

STAT='KEEP' 会在文件关闭后,保留这个文件。是默认状态。

STAT='DELETE' 在文件关闭后,消除这个文件。

-------------------------------------------

!程序结束时候会自动关闭文件,不过最好要养成自己关闭文件的习惯。

!在读文件的时候要懂得略掉一些没有必要的数据,如文件中的注释行。

!自由格式的数据文件读取(可以先读入前面的判断字符,结合select case或其他方法判断读入的数据)

!在open,read,write时使用不同的unit值,就可以打开多个文件。最好不要同时打开很多个文件。

顺序文件(SEQUENTIAL):在读写时,不能任意赋值到文件的某个位置读写数据,只能从开头开始一步步向下进行。在改变文件读写位置时,只能一步步地退,或是直接移回到文件开头。

直接访问文件:把文件的空间,内容,事先分区成好几个同样大小的小模块,这些模块会自动安顺序编号。读写文件时,要先赋值文件读写位置在第几个模块,再进行读写的工作。直接访问文件可以任意到文件的任何一个地方来读写。在使用直接访问文件时,要小心使用endfile命令,使用这个命令会把目前所在的文件位置之后的数据都清除掉。

二进制文件的操作:使用二进制文件来做直接读取时,open命令中的recl字段所设置的整数n值所代表的大小会随编译器不同而改变。每个编译器应该都可以经过设置来改变recl 字段的单位大小。二进制文件没有必要在数据之间用区分符号来增加文件的可读性,因为二进制文件本身就没有可读性。二进制文件是直接把内存的二进制数据写入文件,就没有所谓的格式化输入/出存在。存放“精确”及“大量”的数据时,使用二进制文件是比较好的选择。二进制文件也可以使用顺序格式来操作,顺序格式下显示来的二进制文件,每个数据的前后都会被编译器补上一些额外的信息,所生成的文件不太容易被其他程序读取。

关于以上文件操作详细见《fortran 95程序设计》9-3~9-5。

Internal File(内部文件)

使用写入文件的方法,把数据写到一个字符串变量中。

example:

a=2

b=3

character (len=20) :: string

write (unit=string, fmt="(I2,'+',I2,'=',I2)") a, b, a+b !把字符串变量当作输出的目的。

write(*, *) string

结果: 2+ 3= 5

还可以经过read命令从字符串读入数据:

integer :: a

character (len=20) :: string="123"

read(string, *) a

write(*, *) a

在某些情况下需要使用内部文件来设置数据:

使用read命令从键盘输入数据时,如果用户输入错误的数据,会导致死机。如需要输入整数时却输入英文字母,就可能会死机。比较好的处理办法是,程序先暂时把数据当作字符串读入,检查字符串中是否含有不合理的字符,如果字符串中都是0~9的数字字符,就把字符串转成整数,不然就请用户在输入一次。

内部文件还可应用在动态改变输出格式,输出格式可以事先存放在字符串中,程序进行时,动态改变字符串内容就可以改变输出格式。(见书P263)

NAMELIST:

NAMELIST是很特殊的输入/输出方法,收录在f90标准当中,f90中有统一NAMELIST的格式。

NAMELIST可以把一组相关变量封装在一起,输入/出这一组变量时,只要在write/read中的NML字段赋值使用哪一个NAMELIST就行了。

example:

program ex0918

implicit none

integer :: a = 1, b = 2, c= 3

namelist /na/ a,b,c

write(*,nml=na)

stop

end program ex0918

&NA

A = 1,

B = 2,

C = 3,

/

程序中把a,b,c这三个变量放在名字叫做na的namelist中。namelist也算是声明的一部分,必须编写在程序执行命令前面。

NAMELIST的语法很类似COMMON,不过使用namelist时一定要取名字:

namelist /nl_name/ var1, var2, ... !后面的变量会放在nl_name这个namelist 中。

封装好namelist后,在write的NML字段中指名要输出哪一个namelist,就可以把namelist 中的变量全部输出。

write(*,nml=na) !输出na这个namelist

输出namelist时候不能赋值输出格式,f90标准中规定输出namelist时首先会输出符号&,后面紧接着这个namelist的名字。接着会根据顺序输出变量的名称,等号以及内容,变量之间用空格或逗号来做分隔,最后使用除号来作结束。

至于每个数值内容会使用何种格式输出由编译器自行决定。

NAMELIST也可以用来输入数据,不过通常都会用来读取文件,不会用在键盘输入。输入格式需要按照前面的格式。&na ....../ 不需要按照变量顺序输入,程序会自动按照变量名称来设置数值。变量甚至可以重复输入,不过变量会得到最后一次设置的数值。

namelist通常使用在文本文件的输入/输出中,使用read从文件中读取数据时,会自动从目前的位置向下寻找存放namelist的地方。

example:

program ex0920

implicit none

integer :: a(3)

namelist /na/ a

open(10, file="ex0920.txt")

read(10, nml=na)

write(*, "(3I2)") a

stop

end program

输入文件的内容如下:

happy birthday

&na a = 1,2,3/

程序打开时,读写位置在文件的开头,read命令会自动向下寻找na这个namelist的存放位置来读取数据,这边可以看到namelist处理数组的方法,它会在等号后面根据顺序显示

数组内容。

fortran常见问题解决

楼主为了减少重复回答问题,特编此帖,并不定期添加和更新内容。 错误难免,欢迎讨论,仅供参考。 很多人问哪里可以找到Fortran编译器,有不少热心学友提供网址,特汇集在这里。虽然俺检验过这些链接,但是它们不一定总有效。 Fortran编译器下载: CVF? FTN95(License:Freeforpersonaluse) 以下操作,如无特别说明,都是以为例。 1.如何加大Stacksize? 选Project=>Settings=>Link=>Category:Output=>? Stackallocations Reserve:这里填新值(默认为1M,若需要10M,则填) 2.如何用Fortran批量生成文件? 设要生成4000个文件,文件名为AA1-AA4000,如何写循环生成文件,而不用写4000次write 命令呢? 用内部文件: character(len=80)::filename,form integer::i doi=1,4000 selectcase(i) case(1:9) write(form,'(i1)')i case(10:99) write(form,'(i2)')i case(100:999) write(form,'(i3)')i case(1000:9999) write(form,'(i4)')i endselect write(filename,*)"AA",trim(form),".TXT" open(10,file=filename) write(10,*)i close(10)

enddo? stop end 3.如何用Fortran动态生成输出格式? 设有一个数组data(100),输出时,希望每行输出num个数,而num由用户输入,如何实现? 用内部文件: character(len=80)::form real::data(100) integer::i,num data=(/(i,i=1,100)/)/ read(*,*)num write(form,*)"(",num,"" write(*,form)data stop end 4.MS是不是很垃圾? 是垃圾,其中Bug太多,多到不可用的地步! 在这个主题里,换了CVF后问题就没了的人已有相当的数目。 如果你用,遇到莫名其妙的错误,建议换,这是一个比较成熟的编译器。 5.如何用F90/95生成随机数? 注意: 现在计算机产生的随机数都是伪随机数。 random_number(x)产生一个0到1之间的随机数(x可以是向量),但是每次总是那几个数。用了random_seed()后,系统根据日期和时间随机地提供种子,使得随机数更随机了。 programrandom implicitnone real::x callrandom_seed()!系统根据日期和时间随机地提供种子 callrandom_number(x)!每次的随机数就都不一样了 write(*,*)x stop endprogramrandom 6.函数/子程序超载的例子

fortran文件读取技巧

最近专业课海洋要素计算作业需要用fortran编程读取验潮站资料(如下,是txt,其中数据是有62行,限于篇幅,我只截取了前5行数据外加验潮站的4行头信息) !要注意的是最后一列数据后面没有空格 program ex1 !********************************************** !* written by 潘海东, 2015,3,20 !*一次性读取744个数据,放入一维数组中 !*(如果一次性读取太多的话可能会对系统造成某些影响) !********************************************** INTEGER :: b(62*12),i character(len=20) time,location,u1,u2 open(10, file = 'C:\Users\Administrator\Desktop\sjs_t_97aug_m(harmonic).txt', status = 'old') !********读取头信息 read(10,"(A3)") u1 read(10,"(A18)") time read(10,"(A13)") location read(10,"(A2)") u2 !********读取数据 read(10,100) b(:) 100 format(61(11(I4,1x),I4,/),11(I4,1x),I4) !在fortran的输入输出中'/'代表换行 close(10) end program ex2 !********************************************** !* written by 潘海东, 2015,3,20 !*读取第3列至第11列 !********************************************** INTEGER :: a(62,9),i character(len=20) time,location,u1,u2 open(10, file = 'C:\Users\Administrator\Desktop\sjs_t_97aug_m(harmonic).txt', status = 'old') !***读取头信息

一些 免费的fortran编译器

一些免费的fortran编译器 https://www.360docs.net/doc/4111793215.html,/node/8 Free Fortran Compilers 取自https://www.360docs.net/doc/4111793215.html,/compilers/fortran.shtml This page lists free Fortran compilers for various operating systems. Some of the compilers are compliant with the ANSI Fortran 77 specifications, others with Fortran 95, and so on. Some of them may also come complete with debuggers, editors and an integrated development environment (IDE). If you need a book on Fortran, you may want to check out the selection of books available at https://www.360docs.net/doc/4111793215.html,. Disclaimer The information provided on this page comes without any warranty whatsoever. Use it at your own risk. Just because a program, book or service is listed here or has a good review does not mean that I endorse or approve of the program or of any of its contents. All the other standard disclaimers also apply. Free Fortran Compilers and IDEs Sun Studio Compilers and Tools Sun Studio Compilers and Tools for Linux and Solaris OS on Sparc and x86/x64 platforms includes command line tools as well as a NetBeans-based IDE for developing, compiling and debugging C, C++ and Fortran programs. It also includes performance analysis tools. Intel Fortran Compiler for Linux

Fortran软件安装大全

为大家介绍fortran编译软件,和imsl库的使用,有些地址已失效,有些软件在群共享里VS破解用百度的序列号,ivf用crack文件里的许可文件(.lic)。 一.跟上时代的脚步:Visual studio2012+intel visual fortran2013, (兼容win7 64位32 位)目前是最新的组合,配合强大的vs2012编译器,全新的VS界面感触以及操作。仅这个可以跑在win8系统上。 https://www.360docs.net/doc/4111793215.html,/d/iMuvAwLMJAC8l1tR9cd 二.推荐使用IVF2011+MVS2008(兼容win7 64位32 位) 下载方案地址:https://www.360docs.net/doc/4111793215.html,/p/1536274172 mvs2008:https://www.360docs.net/doc/4111793215.html,/topics/2743184/ ivf2011:https://www.360docs.net/doc/4111793215.html,/topics/2901142/ 安装看页面评论, IVF版本自带MKL(Intel数学核心库) 三.通用版本:MVS2008+ivf11.0.061(兼容win7 64位32 位) mvs2008:https://www.360docs.net/doc/4111793215.html,/topics/2743184/ ivf11.0.061 :https://www.360docs.net/doc/4111793215.html,/topics/2746349/ 安装看页面评论, IVF版本自带MKL(Intel数学核心库) 四.IMSL6.0下载地址:https://www.360docs.net/doc/4111793215.html,/post-310268.html(下载32位的IMSL库)安装方法:https://www.360docs.net/doc/4111793215.html,/s/blog_6c7caddf0100n8up.html(仔细认真看) 安装参考:https://www.360docs.net/doc/4111793215.html,/html/kaifa/281/2011/09/024*********.htm 这个imsl6.0只支持第三个fortran版本组合。 五.大名鼎鼎的CVF了,自带IMSL库,在群共享里,跑在xp上,win7可能不兼容。

几种Fortran 编译器简介

几种Fortran 编译器 --------------------------------------------------------------------------------------- 1.CVF Compaq Visual Fortran (CVF), 当今PC平台上功能相当强大与完整的Fortran程序开发工具,还用于Abaqus的开发。 1997年,微软将Fortran PowerStation卖给DEC之后,微软就不再出版Fortran编译器了。后来DEC并入了Compaq,再后来Compaq又和HP合并了。现在最新的版本是HP出的Fortran for Windows v6.6,现在HP/Compaq已经不再开发Fortran了,CVF 6.6是最终的版本了,Compaq的Fortran开发小组已经投入Intel旗下,目前Intel已经有Intel Visual Fortran 11.0。Compaq Visual Fortran 6.6官方的单价也相当昂贵。 Compaq Visual Fortran 6.6 下载: https://www.360docs.net/doc/4111793215.html,/SoftDown.asp?ID=11937 Compaq Visual Fortran 6.6 绿色版下载: https://www.360docs.net/doc/4111793215.html,/down/10915.html Compaq Visual Fortran 6.5 下载: https://www.360docs.net/doc/4111793215.html,/soft/fortran6.5.rar ftp://2006:2006@https://www.360docs.net/doc/4111793215.html,/36/https://www.360docs.net/doc/4111793215.html,-002124.rar --------------------------------------------------------------------------------------- 2. IVF Intel Visual Fortran (IVF)将Compaq Visual Fortran* (CVF) 语言的丰富功能与英特尔代码生成及优化技术结合在一起。目前Intel已经有Intel Visual Fortran 11.0。 下载: Intel官方网站 ftp://166.111.26.159/software/science/ ftp://202.112.85.101/pub2/Windows/Scientific_Tools/Fortran/https://www.360docs.net/doc/4111793215.html,p iler/ 从https://www.360docs.net/doc/4111793215.html,/maths/下载。IVF10可以用IVF9的licence https://www.360docs.net/doc/4111793215.html,/irc_nas/730/w_cc_p_10.0.025_ia3 2.exe 集成VS2005的IVF10.1:w_fc_p_10.1.021.exe (302MB) Intel(R) Visual Fortran for IA-32 and Intel(R) 64 (with Microsoft Visual Studio 2005

fortran心得

Read 的规则: 按行读取,每次读一行,读完后光标自动跳到下一行的开头,空格和逗号代表结束(所以空格和逗号也是读取的一部分的话,需要使用“输入输出格式”) 如果想要将一行数据读入数组,代码为: Read(10,*) s(:,:,:) 不用规定输入输出格式,因为会根据s(:,:,:)确定需要读入的数字的个数,然后fortran会按部就班的读取,甚至文件中当前这一行的数字个数不足以填满s(:,:,:)的时候,read会自动跳到下一行继续搜索数字,直到填满s(:,:,:)为止。 但是需要注意给数组赋值的顺序:read会把它搜索到的第一个数字给s(1,1,1),第二个给s(2,1,1),第三个给s(3,1,1)… 程序9 1: 将read(unit=field,fmt="(A79)",iostat=status)buffer 中的A79改为A2,结果只输出每行的前两个字符,说明read是按整行整行读取的。 中间空了几行之后,空行之后的内容还是能被读取和输出,这说明,空行和空白是不一样的:空行也算是一种文本内容,因此不会终止读取,而空白意味着结束。 !读取文件 program main implicit none character(len=79)::filename="number.txt",buffer integer,parameter::field=10 integer::status=0 logical alive inquire(file=filename,exist=alive) if(alive)then open(unit=field,file=filename) do while(.true.) read(unit=field,fmt="(A79)",iostat=status)buffer if(status/=0)exit write(*,"(A79)")buffer end do else write(*,*)filename,"does't exist." end if pause stop end program main ============================================= 附number.txt =============================== 1234555666

Fortran编译器及下载地址

Fortran 编译器 --------------------------------------------------------------------------------------- 1. Fortran Powerstation 4.0 Fortran Powerstation 4.0是最老的版本 下载ftp://2006:2006@https://www.360docs.net/doc/4111793215.html,/36/https://www.360docs.net/doc/4111793215.html,-002123.ZIP --------------------------------------------------------------------------------------- 2.CVF Compaq Visual Fortran (CVF), 当今PC平台上功能相当强大与完整的Fortran程序开发工具,还用于Abaqus的开发。 1997年,微软将Fortran PowerStation卖给DEC之后,微软就不再出版Fortran编译器了。后来DEC并入了Compaq,再后来Compaq又和HP合并了。现在最新的版本是HP出的Fortran for Windows v6.6,现在HP/Compaq已经不再开发Fortran了,CVF 6.6是最终的版本了,Compaq的Fortran开发小组已经投入Intel旗下,目前Intel 已经有Intel Visual Fortran 11.0。Compaq Visual Fortran 6.6官方的单价也相当昂贵。 Compaq Visual Fortran 6.6 下载: https://www.360docs.net/doc/4111793215.html,/SoftDown.asp?ID=11937 Compaq Visual Fortran 6.6 绿色版下载: https://www.360docs.net/doc/4111793215.html,/down/10915.html Compaq Visual Fortran 6.5 下载: https://www.360docs.net/doc/4111793215.html,/soft/fortran6.5.rar ftp://2006:2006@https://www.360docs.net/doc/4111793215.html,/36/https://www.360docs.net/doc/4111793215.html,-002124.rar ---------------------------------------------------------------------------------------

Fortran进行批处理地方法

Fortran中批量处理文件的方法总结 —循环读取目录下的所有符合条件的文件===================== 一、简单的介绍 在一年之前,我写过一个程序,主要是对Micaps资料进行批量处理,将逐日资料处理为旬、月的数据,在那个程序中,始终有一个问题困扰我,就是如何自动生成该读取的下一个文件名,这使我真正开始关注fortran中的批处理,时隔一年,决定写下这些文字,将我用到的一些fortran批处理的方法和大家共享,交流。 对于那些只要会用程序,不求其中原理的朋友,请马上跳过这些文字,直接去下载附件吧!程序里有使用说明,但是,如果你不懂原理,估计现成的程序你使用起来也会碰壁哦! 这里所说的批处理是指对某一个目录下的指定后缀的文件的批量读取和处理。 我总结的批处理方法大概可以用下面这个示意图来说明: | | |将文件目录写入一个文本文件,供fortran循环读取 |————手动输入文件名 |————运行程序之前命令行工具导出文件名 |————程序运行后,未开始计算之前,生成文件名 | ————调用CMD命令生成 | ————GETFILEINFOQQ方法生成 | ————调用WIN32API生成 | |在程序运行时动态生成文件名 | | 对于第一种方法,我将主要介绍如何将目录写入文件,然后举出一个小的示例来验证。第二种方法主要是说明其思路。 二、方法的介绍 1、将文件目录写入一个文本文件,供fortran循环读取 1.1、手动输入文件名 这是最基本的方法啦,如果文件个数不多,而且文件名中包含了空格等特殊字符的话,建议使用这种方法,在这里就不多说啦,至于在fortran中的处理,等几个小方法介绍完之后会有一个例子来说明。

FORTRAN-90-程序编程规范

FORTRAN 90 程序编程规范 Fortran 90 编程规范,使程序代码高度组织化,更加易读、易懂、易于维护,程序更加高效。使编出的程序更易懂、易于维护。 1 语言选择 数值预报创新系统软件开发应避免使用Fortran77 的某些过时特征以Fortran 90不一致的特征。选择Fortran 90 作为开发语言,并采用Fortran 90 的新功能,如动态内存的分配(dynamic memory allocation)、递归(recursion ), 模块(modules)、POINTER 、长变量名、自由格式等。 Fortran 77其中某些只是一些冗余的功能,这些功能已经过时,另外,还有一些在Fortran90 中被证明是不好的用法,建议不要使用。 2 Fortran 90 的新特性 2.1.1 建议使用的Fortran 90 新特性 建议使用Fortran 90 提供的模块(module ),并用Use ONLY 指定module 中哪些变量或派生类型定义可用于调用程序。 尽量使用数组下标三元组,这样可优化并减少所需的代码行数。为提高可读性,要在括号内表明数组的维数,例如: 1dArrayA(:) = 1dArrayB(:) + 1dArrayC(:) 2dArray(: , :) = scalar * Another2dArray(: , :) 当访问数组的子集时,例如在有限差分等式中,可以通过使用下标三元组实现。例如:2dArray(: , 2:len2) = scalar *( & Another2dArray(:, 1:len2 -1) & - Another2dArray(:, 2:len2) & ) 对程序单元(program units )命名,并使用End program ,End subroutine ,End interface ,End module 等结构再次指定“program unit ”的名称。 在逻辑表达式中使用>、 >=、 ==、 <、 <=、 /=,它们分别代 替.gt.、.ge.、.eq.、.lt.、.le.、.ne. 。新的表示方法更接近标准的数学符号

fortran新建,添加外部文件和简要读写格式说明

1.建立新的运行空间 File>new>workspace>new>prject>console application>new>file>free-form 2.建立多个文件 可以把子程序文件和主程序文件放在同一个source文件下 3.建立外部文件用于读写数据 Open(1,file=’ exam.txt ‘)用于打开文件,其中1为设备号——用一整数表示,exam.txt为要打开的文件名,文件有文件名和文件类型构成,文件名可给出路径如file=’ D:\exam\exam.txt ‘Write(1,*)’学生的成绩为:’用于在写在前面打开的1文件里写数据,其中*和0、5、6是系统预定义的设备号由系统隐含规定。一个文件名只能和一个设备号建立联系,同样一个设备号也只能与一个文件建立联系,一个通过OPEN语句打开并指定了设备号的文件不能再次用OPEN语句打开 Read(1,*)表示从文件里面读取数据,一次读取一个数据,数据间用逗号隔开 每隔一个read语句或write语句默认的换一行读入或写入 Write(1,”(‘输入’)”)=write(1,*) ‘输入’ Write(1,”(‘I3,’输出’,I7)”) x,y结果是x以3个整型字符输出,输出,y以7个整型输出 Read(1,100)或write(1,100)I,j,k 100 format(I3,I7,F6)表示按照100语句的格式读入或输出顺序读写数据: Read(uint设备号,fmt格式说明,end结束语句转移,eor错误语句转移) 输入数据可以按规定的域宽输入,也可以用逗号强制间隔, 1.使用read语句读取数据时,read语句输入表中的数据类型和格式应该与当前指针位置 数据类型和格式一致。 2.使用read语句读取数据时,从当前文件指针开始读取,完成读取后文件指针自动后移一 个记录,使用OPEN和REWIND语句时,文件指针指向第一个记录,从第一个记录开始读取。 3.使用read语句读取时,如果输入表要求输入的数据少于当前记录的数据个数,则多余的 数据将被忽略,下一个read语句从下一个新的记录开始读取数据。相反则继续读取下条数据记录直到读完全部输入数据。 4.使用write语句时,从当前文件指针开始存写,完成存写后文件指针自动后移一个记录, 使用OPEN和REWIND语句时,文件指针指向第一个记录,从第一个记录开始读取。如果文件已存在,则原文件的数据将丢失。 5.使用write语句写入数据时,从当前的位置开始写入,可使用format语句中的格式说明 及括号和反斜杠/创建多条新纪录写入,完成操作后,文件指针自动后移一个记录。6.使用了read以后,立即使用write语句,将导致写入的数据为最后一个记录,其余的数 据将丢失。如果在文件末尾要写入新的记录可以通过下了语句实现: 100 read(1,*,end=200) Goto 100 200 write(1,*)’’ 7.使用了write语句立即使用read语句会遇到一个文件结束标志。如果写入后要立即进行 读取,需要用OPEN、rewind、backspace等对文件重新定位。 文件打开操作: Open(unit=设备号,file=文件名,access=存取方式,form=存取格式,recl=记录长度,err=错误转移,pad=补加空格,position=读取位置) 如err=100,表示跳到100号语句 Position 为文件位置包括三个格式,ASIS,已存在文件的上一次操作位置为文件的位置,缺

Fortran的主要版本及差别

、Fortran的主要版本及差别 按其发展历史,Fortran编译器的版本其实很多。现在在广泛使用的是Fortran 77和Fortr an90。 Fortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了77编程的版面格式, 所以编程 时推荐使用90。鉴于很多现成的程序只有77版本,有必要知道77的一些基本常识,至少保 证能够看 懂77程序。以下是77和90的一些格式上的区别。 Fortran 77:固定格式(fixed format),程序代码扩展名:.f或.for (1)若某行以C,c或*开头,则该行被当成注释; (2)每行前六个字符不能写程序代码,可空着,或者1~5字符以数字表明行代码(用作格 式化输入 输出等);7~72为程序代码编写区;73往后被忽略; (3)太长的话可以续行,所续行的第六个字符必须是"0"以外的任何字符。 Fortran 90:自由格式(free format),扩展名:.f90 (1)以"!"引导注释; (2)每行可132字符,行代码放在每行最前面; (3)以&续行,放在该行末或下行初。 以下都是讨论Fortran 90。 3、Fortran的一些特点,和C的一些不同 其实很多,在下面涉及具体方面时可以看到。这里只是大致提一些。 (1)不分大小写 (2)每句末尾不必要写分号 (3)程序代码命令间的空格没有意义 (4)不像C,Fortran不使用{ } (5)数据类型多出了复数和逻辑判断类型。比如复数类型 complex :: a !声明复数的方法。复数显然方便了科学计算,满足了工程方面

的需求 a=(1.0,2.0) ! a=1+i (6)多出了乘幂运算(**)。乘幂除了整数还可以是实数形式。如开方,开立方 a=4.0**0.5,a=8.0**(1.0/3.0)。 (7)数组有一些整体操作的功能;可以方便的对部分元素进行操作 (8)有些情况下可以声明大小待定的数组,很实用的功能 4、Fortran的基本程序结构 先看一看所谓的"Hello Fortran"程序。 program main !程序开始,main是program的名字,完全自定义write(*,*) "Hello" !主程序 stop !终止程序 end [program[main]] !end用于封装代码,表示代码编写完毕。 [ ]中的内容可省略,下同。 再看一段实用一些的程序,好有点感性认识。程序用于计算圆柱的表面积,要求输入底面 半径和 高。其中展示了Fortran的一些特色用法。程序摘自维基。其实是一个叫https://www.360docs.net/doc/4111793215.html, 的网上引 用的维基的网页。推荐去看看!能查到不少有意思的东西。 program cylinder !给主函数起个名字 ! Calculate the area of a cylinder. ! ! Declare variables and constants. ! constants=pi ! variables=radius squared and height implicit none ! Require all variables to be explicitly declared !这个一般都是要写上的。下面会进一步说明。

Fortran基本用法小结档

Fortran基本用法小结 目录: 一、说明 二、概述 三、数据类型及基本输入输出 四、流程控制 五、循环 六、数组 七、函数 八、文件 一、说明 本文多数内容是我读彭国伦《Fortran 95 程序设计》的笔记。只读到第九章,主要是3~9章,都是些最基本的用法(原书共16章)。这里主要摘录了我看书过程中总结的一些Fortran和C不同的地方,主要是语法方面。希望这份笔记能够给学过C但没有接触过Fortran的同学带去一些帮助。要想弄得更清楚些,推荐看一下原书,觉得作者真的写得很好,很清楚;如果有C语言的基础,看完前九章应该很快的,花一两天就行了。觉得如果耐心看完本文,基本功能应该也可以顺利用起来了。 另外,由于我之前没有用过Fortran,这次为了赶文档看书又看得很粗浅,大多数东西看过之后都没来得及仔细想,只是按着作者的意思去理解。所以这份笔记还处于纸上谈兵的层次。如果有不妥的地方,希望大家指正。谢谢! 文中蓝色的部分是程序代码,!后面的内容为注释。 二、概述 1、名词解释 Fortran=Formula Translator/Translation 一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。的确,从一开始,IBM设计它的时候就是为了方便数值计算和科学数据处理。设计强大的数组操作就是为了实现这一目标。Fortran奠定了高级语言发展的基础。现在Fortran在科研和机械方面应用很广。 2、Fortran的主要版本及差别 按其发展历史,Fortran编译器的版本其实很多。现在在广泛使用的是Fortran 77和Fortran90。Fortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了77编程的版面格式,所以编程时推荐使用90。鉴于很多现成的程序只有77版本,有必要知道77的一些基本常识,至少保证能够看懂77程序。以下是77和90的一些格式上的区别。

Fortran基本用法小结

【以下文字转载自D_Atmosphere 讨论区】 【原文由superjyq 所发表】 我的Fortran基本用法小结 高级语言和算法组heavensky 目录: 一、说明 二、概述 三、数据类型及基本输入输出 四、流程控制 五、循环 六、数组 七、函数 八、文件 一、说明 本文多数内容是我读彭国伦《Fortran 95 程序设计》的笔记。只读到第九章,主要是3~9章,都是些最基本的用法(原书共16章)。这里主要摘录了我看书过程中总结的一些Fortran和C不同的地方,主要是语法方面。希望这份笔记能够给学过C但没有接触过Fortran的同学带去一些帮助。要想弄得更清楚些,推荐看一下原书,觉得作者真的写得很好,很清楚;如果有C语言的基础,看完前九章应该很快的,花一两天就行了。觉得如果耐心看完本文,基本功能应该也可以顺利用起来了。 另外,由于我之前没有用过Fortran,这次为了赶文档看书又看得很粗浅,大多数东西看过之后都没来得及仔细想,只是按着作者的意思去理解。所以这份笔记还处于纸上谈兵的层次。如果有不妥的地方,希望大家指正。谢谢! 文中蓝色的部分是程序代码,!后面的内容为注释。 二、概述 1、名词解释 Fortran=Formula Translator/Translation 一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。的确,从一开始,IBM设计它的时候就是为了方便数值计算和科学数据处理。设计强大的数组操作就是为了实现这一目标。Fortran奠定了高级语言发展的基础。现在Fortran在科研和机械方面应用很广。 2、Fortran的主要版本及差别 按其发展历史,Fortran编译器的版本其实很多。现在在广泛使用的是Fortran 77和Fortran90。Fortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了77编程的版面格式,所

fortran文件操作

fortran文件操作 From: 《Fortran 95 程序设计》彭国伦 1.文件读取的概念: 读取:“顺序读取”和“直接读取”。 保存:“文本文件”和“二进制文件”。 二进制文件:读取快,因为保存格式和数据在内存中的保存方法一样,同时也节省空间。 ---------------------------------- 2. 文件的操作: ---------------------------------- open的使用:使用open命令打开文件之后,就可以对文件来做输入输出。 example: program ex0901 impicit none open(unit=10, file='hello.txt') ! 打开hello.txt文件, unit指定文件代码,file 指定文件名称。 write(10, *) "hello" !在代码为10的文件中写入hello stop end program ex0901 open中有很多参数可以使用,详细如下: OPEN(UNIT=number, FILE='filename', FORM='...', STATUS='...', ACCESS='...', RECL=length, ERR=label, IOSTAT=iostat, BLANK='...', POSITION='...', ACTION=action, PAD='...', DELIM='...') UNIT='number': number必须是一个正整数,它可以使用变量或是常量来赋值。number最好避开1,2,5,6。因为2,6是默认的输出位置,也就是屏幕。1,5则是默认的输入位置,键盘。 FILE='filename':指定要打开的文件名称,文件名要符合系统规定。windows下不区分大小写,unix下则会区分大小写,最好不要使用中文文件名。 FORM='FORMATTED' OR 'UNFORMATTED' FORM字段只有两个值可以设置: FORM='FORMATTED' “文本文件”格式来保存 FORM='UNFORMATTED' “二进制文件”格式保存 这一栏不给定时候的默认值是: FORM='FORMATTED' STATUS='NEW' or 'OLD' or 'SCRATCH' or 'UNKNOWN' 用来说明打开一个新的文件或已经存在的旧文件。 STATUS='NEW' 打开一个原本不存在的新文件 STATUS='OLD' 打开一个原来已经存在的文件 STATUS='REPLACE' 若文件已经存在则重新创建一次,原来的内容消失;若不存在则会创建新文件。 STATUS='SCRATCH' 表示要打开一个暂存文盘,这个时候可以不需要指定文件名称,也就是FILE这个一栏可以忽略。因为程序本身会自动取一个文件名,至于文件名是啥也不重要,因为暂存盘会在程序结束后自动删除。 STATUS='UNKNOWN' 由各编译器自定义。通常会同REPLACE的效果。 !这一栏不给定时,默认为STATUS='UNKNOWN'。 ACCESS='SEQUENTIAL' or 'DIRECT' 设置读写文件的方法:

fortran编译器操作

关于fortran语言的编译器使用问题 此文是一个简明教程,仅适合初学者来使用。老鸟们大牛们就不用在看了。本文档的目的是为了方便初学者快速的掌握基本的fortran编译器的使用。 一、关于cvf(compaq virtual fortran) CVF操作方便,限制不多。一般常用的有两种新建工程的方法: a)打开cvf,点击新建file----new,弹出选择对话框,简单的程序可以选择fortran console application。在左侧project name处填写工程名字,在location处填写(选择)工程保存路径。注意cvf中要求不允许出现汉语路径。操作顺序图如下 第一步: 第二步:

第三步: 第四步:运行

至此,所有步骤完成。 b)直接打开cvf,点击新建文档(new)然后单击保存,弹出保存对话框,选择保存路径及文件夹, 文件名改为“工程名.f90”格式此处注意如果是fortran自由格式,请保存为*.f90或*.f95格式,如果是固定格式请保存为*.for或*.f格式。因为编译器是根据后缀的不同调用不同的语言编译器,否则将出错。保存文件的路径和文件夹即为该工程所在的路径和文件夹。同样不能有汉语。示意图如下:第一步 第二步、

第三步、 至此,所有的工程完成。

二、关于CVF的调试(debug) 在相应代码编辑框左侧发灰色的竖线部分,鼠标变为反三角方向的形状时即可右键鼠标,选择insert/remove BreakPoint选项,在代码左侧可以看到一个红色的标示(代码行尽量不要设在代码最后。可以设置到自认为可能发生错误的地方。或者尽量靠前设置),此时就可以按F5进入调试状态。可以在watch窗口查看各个变量,数组的值与内容。按F11进行单步运行。查看错误出处。具体的更细致的调试,请参看相关文献或书籍。这类书籍不少。 具体操作如下:

FORTRAN新建,添加外部文件和简要读写格式说明

1.建立新的运行空间 File>new>workspace>new>prject>console application>new>file>free-form 2.建立多个文件 可以把子程序文件和主程序文件放在同一个source文件下 3.建立外部文件用于读写数据 Open(1,file=’ exam.txt ‘)用于打开文件,其中1为设备号——用一整数表示,exam.txt 为要打开的文件名,文件有文件名和文件类型构成,文件名可给出路径如file=’D:\exam\exam.txt ‘ Write(1,*)’学生的成绩为:’用于在写在前面打开的1文件里写数据,其中*和0、5、6是系统预定义的设备号由系统隐含规定。一个文件名只能和一个设备号建立联系,同样一个设备号也只能与一个文件建立联系,一个通过OPEN语句打开并指定了设备号的文件不能再次用OPEN语句打开 Read(1,*)表示从文件里面读取数据,一次读取一个数据,数据间用逗号隔开 每隔一个read语句或write语句默认的换一行读入或写入 Write(1,”(‘输入’)”)=write(1,*) ‘输入’ Write(1,”(‘I3,’输出’,I7)”) x,y结果是x以3个整型字符输出,输出,y以7个整型输出 Read(1,100)或write(1,100)I,j,k 100 format(I3,I7,F6)表示按照100语句的格式读入或输出顺序读写数据: Read(uint设备号,fmt格式说明,end结束语句转移,eor错误语句转移) 输入数据可以按规定的域宽输入,也可以用逗号强制间隔, 1. 使用read语句读取数据时,read语句输入表中的数据类型和格式应该与当前指针位置 数据类型和格式一致。 2. 使用read语句读取数据时,从当前文件指针开始读取,完成读取后文件指针自动后移一个记录,使用OPEN和REWIND语句时,文件指针指向第一个记录,从第一个记录开始读取。 3. 使用read语句读取时,如果输入表要求输入的数据少于当前记录的数据个数,则多余的数据将被忽略,下一个read语句从下一个新的记录开始读取数据。相反则继续读取下条数据记录直到读完全部输入数据。 4. 使用write语句时,从当前文件指针开始存写,完成存写后文件指针自动后移一个记录,使用OPEN和REWIND语句时,文件指针指向第一个记录,从第一个记录开始读取。如果文件已存在,则原文件的数据将丢失。 5. 使用write语句写入数据时,从当前的位置开始写入,可使用format语句中的格式说明及括号和反斜杠/创建多条新纪录写入,完成操作后,文件指针自动后移一个记录。 6. 使用了read以后,立即使用write语句,将导致写入的数据为最后一个记录,其余的数据将丢失。如果在文件末尾要写入新的记录可以通过下了语句实现: 100 read(1,*,end=200) Goto 100 200 write(1,*)’’ 7. 使用了write语句立即使用read语句会遇到一个文件结束标志。如果写入后要立即进行读取,需要用OPEN、rewind、backspace等对文件重新定位。 文件打开操作: Open(unit=设备号,file=文件名,access=存取方式,form=存取格式,recl=记录长度,err=错误转移,pad=补加空格,position=读取位置) 如err=100,表示跳到 100号语句

Fortran编译器常见错误提示及原因

附录:常见错误提示及原因 安装 1.关于Fortran编译器的安装和配置? 在安装FEPG之前一般要先安装好Powerstation Fortran 4.0编译器,并设置好Fortran编译器的path、lib和include路径。 如果你的Powerstation Fortran 4.0编译器安装在目录C:\MSDEV下,设置如下: ·在WIN 2000/XP下的设置: a.鼠标移到我的电脑图标,单击右键,然后点击属性; b.点击高级属性; c.点击环境变量,进行系统变量设置;系统变量如下图: d. 如果图上的include、lib、path几个变量没有,请点击新建;如有,点击编辑;按下面变量值进行修改: 变量:path值:c:\MSDEV\bin; %path% 变量:lib 值:c:\MSDEV\lib;%lib% 变量:include值:c:\MSDEV\include;%include% 注意:如果path、lib和include变量中有相应新增加的内容,可不增加。如果编译器装在其它目录,则把C:\MSDEV换为该目录名。实际上,在安装Powerstation Fortran 4.0时,会出现一个对话框,询问是否增加环境变量,如果选是,这些变量就已经配置好了。安装fepg,需要用户有管理员权限。 2.运行FEPG命令生成Fortran源程序时,出现fl32不是内部命令也不是外部命令的错误(或fl32 is not internal command)? 没配置好Fortran编译器的path路径。按照上面第1个问题中的解答配置好path路径。 3. 运行FEPG命令生成Fortran源程序时,有些fortran源程序没连接成可执行程序,出现不能发现fepg.lib库文件的错误? 安装FEPG之前,没安装和配置好Fortran编译器所致。在安装FEPG之后出现此情况,可先按照上面第1个问题中的解答配置好Fortran编译器,然后在dos窗口下,运行FEPG所在目录下nfe.r8目录下的gfepglib.bat程序,即可生成fepg.lib库文件。 4. 是否可用其他的Fortran编译器? 还可用Visual Fortran 6.5编译器,配置与Powerstation Fortran 4.0相同。对于IFEPG5.2(for g77)客户端,还可以用g77编译器了

相关文档
最新文档