fortran安装、调试、运行过程中的【可能错误及其原因】-中英对照
楼主鲍炜炜 2011-04-18 14:37
(欢迎加入气象QQ讨论群:149280902,点击即可加入)
安装
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编译器了
5.是否与其他软件有兼容性问题?
FEPG 与其他软件没有兼容性问题。但Powerstation Fortran 4.0和Visual C++ 6.0如果在安装时,都选了设置环境变量,在用Fortran编译器编译连接FEPG产生的Fortran源程序时,会出问题。可在安装Visual C++时,出现是否设置环境变量对话框时,选择否,即可解决此问题,此时,用Visual C++编译窗口可编译VC程序,只是在dos窗口中不行,一般影响不大。
IFEPG客户端系统的前处理FEPG.GID与MATLAB有兼容性问题,用户安装了IFEPG客户端和MATLAB后,FEPG.GID可能启动不了。可以将操作系统PATH环境变量中关于MATLAB的路径删除,这样FEPG.GID就可以启动了。
6.是不是一定要先装fortran,再装FEPG,如果先装FEPG,再装fortran,有什么解决办法?
不一定先装fortran,再装FEPG。如果先装FEPG,那么装完fortran再运行ifepg安装目录下nfe下的gfepglib.bat。
7.请问如果要装VC怎么办啊?
在安装Visual C++时,出现是否设置环境变量对话框时,选择否,即可解决此问题。
就是不要设关于VC++的环境变量,应该就可以了。这样VC应该用VC的界面能用。
8.打开Ifepg后,连接服务器时,出现了can't create file是怎么回事啊?
这一般是IFEPG服务器端的问题。如出现尽快联系我们。
9.出现cannot open file"dfor.lib"?
这可能是换fortran编译器造成的,比如Visual FROTRAN 6.1变成powerstation 4.0。因为各个编译器编译出来的obj代码不同,连接的库不同。如果你用powerstation 4.0提供的fl32命令,将一些Visual FROTRAN 6.1产生的obj文件,连接成可执行程序可能就会出现这个问题。解决办法是使用powerstation 4.0提供的fl32将那些文件重新编译一下。
10.Error: Couldn't initialize GID. Check DISPLAY and xhost,Check for more info to files in directory:
C:\DOCUME~1\xxc1\LOCALS~1\Temp\gid3
安装fepg时,需要使用administrator用户安装,第一次运行gid时,
也需要使用administrator用户运行,第二次运行gid就应该不用了。
11.安装后,运行gid建模型,模型显示异常是怎么回事?
gid 对某些型号的显卡支持的不好,你可以将显卡的硬件加速调成无试试。在Windows 2000下操作如下,用鼠标右键点击桌面的空处,点击出现的“属性”菜单项,点击出现的“设置”页,点击出现的“高级”按钮,点击出现的“疑难解答”页,将“硬件加速”的拉条调到“无”。
程序生成
1.前处理划分网格的单元类型和计算时的单元类型对不上。
如前处理划分的网格是三角形,而生成计算程序时的单元类型是四边形。2.mate行在生成单元子程序的for文件时,是一些赋值语句。
在fortran77的语法中,变量定义要放在语句之前。所以PDE中的变量定义要放在mate行之前。
3.time、dt、imate、ielem和nelem等全局变量要在mate’行之后使用,之前这些变量还没有赋值。
4.defi信息段中的coef(耦合变量名)和coor(坐标变量名)在defi段中只是一个名字,还没有赋值,当我们添加fortran程序要用到这些变量时,要在stif或func信息段来添加那些fortran程序,这时,这些变量才有值
5.{un/x}前要用$cv,不能用$c6
6.E:\IFEPG.g77\1>g77 -c aeq4g2.for
'g77' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Fortran安装不正确或fortran环境变量没有设置。
检查环境变量设置:
变量:path值:c:\MSDEV\bin; %path%
变量:lib 值:c:\MSDEV\lib;%lib%
变量:include值:c:\MSDEV\include;%include%
7.Error, cannot find shape function d2c8 in SHAP Library
shap段写错了,在库中找不到所写的单元类型。
8.les.gio file expected!
需要上传FEPG原始文件,如GCN、GIO、PDE等。
9.FEPG翻译时无相应。
PDE中参数可能写错,将%1写成1%等。
10.编译找不到相应的文件
用文本编辑器保存,文件后缀可能会保存成.txt。
11.Link fotal error link1104:can not open file “dfor.lib”
如果是单机版,到fepg目录下nfe.r8下运行gfepglib.bat
如果是网络版,到ifepg目录下nfe下运行gfepglib.bat
再运行命令应该就行了。
12.error FOR2979: expected 2 subscripts but found 1 for array EU1用NFE文件时,在EQUATION段的声明语句出错。
13.生成NFE时出错
可能pde中材料参数太多。
14.Error:the shapes of the array expressions do not conform
可能用户定义变量与系统变量重复造成冲突。
15.Warning link4084:total image size warning exceed max
image may not run
这个没有关系的。不用管它。这是fortran编译器的问题。对生成程序和计算没有影响。
16.Error:list element in braces followed by "a:link" instead of space
文件写得可能有问题。
17.error wrong number after directory name ...lea ....line number = 9
Error, element name ......... 1 is not expected
Line number = 9
PDE文件有错。
18.LINK : fatal error LNK1181: cannot open input file "aec8.obj" PDE文件书写不正确,没有正常翻译。
19.application error:
error: list element in braces followed by \"a:link\" instead of space
可能文件名命名长度超过了8个字符。
20.error canot find refc or coor name...
icoor,irefc,i=101
可能在PDE中没有写coor行信息。
21.error, can not find DISP or FUNC name......exx
line number (239)
error, can not find DISP or FUNC name (x)
line number (240)
可能在PDE中没有写disp行、func行信息。
22.elesb.obj : error LNK2001: unresolved external symbol _BET3@32
temp.exe : fatal error LNK1120: 1 unresolved externals
没有bet3.for,或者没编译成obj。
23.start is not a internal command
可能操作系统不符合
24.“0x00404281"指令引用的"0xeb88f404"内存。该内存不能为
“ read”.
要中止程序,请单击“确定”。
要调试程序,请单击“取消”。
这种错误比较难查。它预示着计算全乱了。检查办法是
做一个简单的网格,来看问题是出在网格还是程序。如果是程序的问题。就在程序里用$debug来追踪是哪行程序的问题。
这种错误往往会来自一个小小的字母错误。但查起来比较麻烦。
25.aeq4g2.obj:error LINK2001:Unresolved external symbol _ecu@8 enpa.exe:fatal error LINK1120:1 unresolved externals
pde文件中ecu的定义或使用有问题
26.用公式库生成有限元程序时总是提示‘fem.bat’不是内部或外部命令,也不是可运行的程序或批处理文件
路径可能与vc有冲突,你看看软件安装版
27.
安装powerstation 4.0后应该去fepg\nfe.r8\运行gfepglib.bat重新生成fepg.lib
28.用公式库生成有限元程序时总是提示‘test.bat’不是内部或外部命令,也不是可运行的程序或批处理文件
你将于VC有关的PATH,INCLUDE和LIb的东东删除
计算:
1.如果e单元计算程序,出现除零或数组超阶错误,有可能有几个原因:a.前处理划分网格的单元类型和计算时的单元类型对不上。如前处理划分的网格是三角形,而生成计算程序时的单元类型是四边形。
b.pde 文件中,添加的fortran程序中会出现除零的情况。fepg生成的fortran77的源程序,对变量名有一些默认的规定,如实形数是首字母a- h,o-z,而整形数是i-n,如ai如果不规定它的数据类型,是实形数,而ia是整形数。那么在添加fortran程序时,不要把实形数取成整形数的名字,这样很容易出现除零错误的
2.Array or substring subscript expression out of range
数组越界,将相应数组开大。
3.End of file encountered
读文件错误,读的东西多,文件数据少,检查要读文件是否正确。
4.File already exist
是文件读写时候出错,例如本来文件已经存在,但是打开文件的时候status=new这种问题,status可以改成replace
5.结果不能输出1000步以后的结果。
目前系统设计的结果文件名后缀最多是3个字符,超过3个需要修改bft 文件。
6.死循环
不收敛,或者dos窗口显示错误了但是没有看清。
7.run-time error F6416 open(elem0)
- file not found
前处理没有生成数据文件。
8.Overflow
数据溢出,可能是有exp等运算,导致数据溢出错误。
9.run-time error F6508:read(unod
too many bytes read from unformatted record
要读取的文件记录数大于文件现有的记录,修改unod的输出。
10.不是内部或外部命令,也不是可运行的程序或批处理文件。
程序没有生成,说明书写的文件有错。
11.file name missing or blank
BAT中EXE文件后面缺少相应的参数文件名。
12.run-time error M6103: MATH
- floating-point error: divide by zero
可能是pde文件写的有问题,看看其中的除法运算,有没有除零的情况,改改。或者,前处理的数据,和计算时的数据不一致,如前处理化的网格是三角形,而计算时的单元类型是四边形。
13.Call post.bat
copy .1
系统找不到指定的文件。
没有正确填写.pos文件。
14.ulesa disp0 time sys bfd nv u displace end
forrtl: severe (602): file not found
说明ulesa这个程序后面所跟的某个文件没有生成,应该是前面的计算就
出错了。
elesa或者solv,一般是elesa出错
15.NUMEL,NEQ = 26276 26352 26353
forrtl: severe (157): Program Exception - access violation Image PC Routine Line Source
网络版程序,生成的程序数组开的较小,开大试试。主要是maxt的值
16.run-time error M6104: math
-floating-point error: overflow
浮点溢出,可能是数值太大或者太小,超出了表达范围,你查查有没有求指数之类的运算。
17.ir,a_diag = 2499 -1.265978220909237E+011
Stop - Program terminated.
主对角元为负是不能继续求解的
主对角元出现负值的原因比较多,我以前计算也是常碰到的
可能跟求解器有关系,换个求解器试试
可能跟网格形状有关系,形状过差的单元会出这个问题
可能跟材料参数有关系,不合理的材料参数也可能导致
我以前遇到过这三种情况,其它我就不知道了(还没有碰到)。
求解器:
1.Solv.exe不是有效的win32应用程序
solv中内存开的太大,超过了2G,win32的程序的单进程程序的内存数组是有限制的,应该是不能超过2G的。
2.Solver memory required 0
在设置边界条件时,可能是单元没有选,请检查!
3.Run-time error M6101:Math
-floating-point error:invalid
可能刚度矩阵奇异了,出现了除零错误。
4.solv.obj : error LNK2001 : unresolved external symbol _REDU@32 solv.obj : fatal error LNK1120 :1 unresolved externals
直接法求解换成迭代法求解,要重新生成程序,只是getsolv是不行的
5.Matrix a exceed core memory …….
Required core memory …….
Return code 0
修改ia,ib,ic数组,maxt也需要改。
common /aa/ ia(80000000)
common /bb/ ib(40000000)
common /cc/ ic(40000000)
一般,ia是你机器内存的大小,ib,ic是ia的一半。
6.
出错原因很多。可能是数据,也可能是程序。
前处理:
1.在建完模型,划分网格结束后,保存时出现问题,说bfd(k,r)没定义?参数不匹配?
原因:前处理操作不正确,生成的fgidpre.for文件没有把前处理得到的gidbfd合并进去。
2.Condition中只有a场,没有其它场。
在pre文件中matedata段的材料前不要编号。
3.error running progress.Check additional info in other windows. info window
Error in base file d:\ifepg\gid\fepg.gid\fepg.bas at line number 25: Unknown Condition name: Surface-aet6
可能程序采用的单元类型与前处理单元类型不一致,或者坐标系统不一致。4.Calculte时候:
Error in base file c:\ifepg\gid\fepg.gid\fepg.bas at line number 32: GlobalNodes can't be used in this context. There is no NumFace。
模型有误。
5.couldn't open "c:/ifepg/gid/Scripts/units.gid": no such file or directory
要使用操作系统win2000吗,安装时用超级用户吗,使用时是超级用户,系统安装在c:\ifepg下面。
6.Gid保存文件要与gcn文件名同名。
7.界面不刷新
去掉硬件显卡加速,GID不支持。
8.Gid突然不保存关闭。
Gid漏洞
9.使用中菜单突然不能用。
用快捷方式激活,然后又可以使用。
10.Error: Cannot open C:/DOCUME~1/à??ü/LOCALS~1/Temp/gid11/
tmp-gidErrMesh: couldn't open "C:/DOCUME~1/à??ü/LOCALS~1/Temp/
gid11/tmp-gidErrMesh": no such file or directory
使用超级用户
11.
可能在做造型后又修改了pre文件,重新fepg一下,加条件。
12.this version of gid only allows to generate 700 surface elements and there were 2868
使用的是试用版
后处理:
1.计算结果显示有些点的结果与指定的边界条件不相符合。
在边界交叉点上,点是共用的,所以在剖分网格的时候,点的约束既可能取其中一边的边界条件,也可能取成另一边的边界条件,所以做法是:在点上单独加边界条件,它的边界要优先于线上定义的边界条件。
2.在后处理中看不到图形
设置透视方式(culling style)和显示类型(display style)
3.File already connected to a different unit
读某个unod文件时候出错,可能文件损坏。
4.Error,wrong d.o.f. no. =4 for 2D
对于二维问题,pos文件中,显示的自由度每行不能是四个。
5.gidpost0.for(47) : run-time error F6416: OPEN(gidpost)
- file not found
计算过程可能有错。
6.D:\IFEPG.g77\ljl>if not exist coor1
d:\ifepg.g77\nfe\gidpost0.exe coor0 gidpos
dof gidpost ds.gid\ds.flavia.res ds.gid\ds.flavia.msh coor0 elem0 open: No such file or directory
apparent state: unit 2 named coor0
lately writing direct unformatted external IO
网格没有数据文件。
7.
网格数据flavia.msh不对。删掉改文件试试。
8. gidpost0.for(45) : run-time error F6416: OPEN(gidpost.dof) - file not found
前处理可能不对。
9.进入后处理时,系统提示couldn't open file s.gid\s.flavia.res 需要先登录并上传pre、pos文件
其它
1.faltal error C1007
安装路径有误
2.Fepg文件有病毒
可能fepg文件书写不规范,误认为病毒,不要删除。
3.在login时出现以下错误:
Error: couldn't execute "D:\Program":invalid argument
机子没有真实ip
4.在login时:
Proxy authorization required
Username authentication is required for using this proxy. Either your browser does not perform proxy authorization, or your authorization has failed.
代理上网,代理要密码,换个代理
更多fortran相关教程尽在气象资料站
财务指标参考标准值 财务指标分析参考标准值 一、变现能力比率 1、流动比率=流动资产合计/流动负债合计 标准值:2.0。 意义:体现企业的偿还短期债务的能力。流动资产越多,短期债务越少,则流动比率越大,企业的短期偿债能力越强。 分析提示:低于正常值,企业的短期偿债风险较大。一般情况下,营业周期、流动资产中的应收账款数额和存货的周转速度是影响流动比率的主要因素。 2、速动比率=(流动资产合计-存货)/流动负债合计 保守速动比率=(货币资金+短期投资+应收票据+应收账款净额)/流动负债 标准值:1/0.8 意义:比流动比率更能体现企业的偿还短期债务的能力。因为流动资产中,尚包括变现速度较慢且可能已贬值的存货,因此将流动资产扣除存货再与流动负债对比,以衡量企业的短期偿债能力。 分析提示:低于1的速动比率通常被认为是短期偿债能力偏低。影响速动比率的可信性的重要因素是应收账款的变现能力,账面上的应收账款不一定都能变现,也不一定非常可靠。 [编辑] 二、资产管理比率 1、存货周转率=产品销售成本/ [(期初存货+期末存货)/2] 标准值:3。 意义:存货的周转率是存货周转速度的主要指标。提高存货周转率,缩短营业周期,可以提高企业的变现能力。
分析提示:存货周转速度反映存货管理水平,存货周转率越高,存货的占用水平越低,流动性越强,存货转换为现金或应收账款的速度越快。它不仅影响企业的短期偿债能力,也是整个企业管理的重要内容。 2、存货周转天数=360/存货周转率=[360*(期初存货+期末存货)/2]/产品销售成本 1 标准值:120。 意义:企业购入存货、投入生产到销售出去所需要的天数。提高存货周转率,缩短营业周期,可以提高企业的变现能力。 分析提示:存货周转速度反映存货管理水平,存货周转速度越快,存货的占用水平越低,流动性越强,存货转换为现金或应收账款的速度越快。它不仅影响企业的短期偿债能力,也是整个企业管理的重要内容。 3、应收账款周转率=销售收入/[(期初应收账款+期末应收账款)/2] 标准值:3。 意义:应收账款周转率越高,说明其收回越快。反之,说明营运资金过多呆滞在应收账款上,影响正常资金周转及偿债能力。 分析提示:应收账款周转率,要与企业的经营方式结合考虑。以下几种情况使用该指标不能反映实际情况:第一,季节性经营的企业;第二,大量使用分期收款结算方式;第三,大量使用现金结算的销售;第四,年末大量销售或年末销售大幅度下降。 4、应收账款周转天数=360 /应收账款周转率=(期初应收账款+期末应收账 款)/2] /产品销售收入 标准值:100。
FORTRAN程序设计复习题 一、选择题 B (1)下列各FORTRAN表达式中合法的是 A) S+T*2P >= B) .NOT. (A*B+C) C) A2+B2/(C+D) <= D) (A+B).NOT.A*B.GT.(.NOT.只跟一个表达式) C (2)数学式(3/5)ex+y的FORTRAN表达式是 A) 3*EXP(X+Y)/5 B) 3*E* *(X+Y)/ C) (3/5)*EXP(X+Y)D) EXP(X+Y) D (3)下列FORTRAN77表达式中不合法的是 A) A.GT.B.EQV.C.GT.D B) A.AND.B.AND.C.AND.D C) .NOT.(X.LE.D) A.LT.B.LT.C.LT.D D(4)下列叙述中不正确的是 A) FORTRAN子程序可以单独编译 B) 对一个FORTRAN源程序进行编译和连接无误后可生成可执行文件 C) 即使编译和连接都正确无误,FORTRAN程序运行时仍可能出错 D) FORTRAN连接的主要任务是把函数库中的函数翻译成机器指令(正确描述:主要任务为连接目标文件) B (5)在下列FORTRAN77运算符中,优先级最高的是 A) .AND. B) .NOT. C) .OR. D) .EQ. B (6)FORTRAN表达式"6/5+9/2**3/2"的值为 A) 33 B) 1 C) 5 D) 3 A (7)下列FORTRAN77表达式中,合法的是: A) .AND.. B) 10.0 C) D) 提示:A)相当于 .AND.(.NOT.()) D (8)关于编译一个FORTRAN源程序文件,下列说法中错误的是 A) 允许编译只有一个主程序而没有子程序的源文件 B) 允许编译有多个子程序的源文件 C) 允许编译只有一个子程序而没有主程序的源文件 D) 允许编译有多个主程序的源文件 C (9)在FORTRAN77源程序中,续行标志符必须放在 A) 第1列 B) 第1-6列C) 第6列D) 第5列 D (10)下列关于"SUBROUTIN E MAP(X,Y)"语句行的叙述中,不正确的是 A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名 C) 变量X是子程序的形参D) 子程序执行后,MAP将返回整型数据 提示:子程序无返回值,自定义函数才有) A (11)FORTRAN表达式"2/4+"的值是 A) B) 1 C) D) 0 提示:2/4默认等于整型,=》 D (12)FORTRAN表达式"MOD,"的值是 A) B)0.0 C) D) A (13下列FORTRAN运算符中,优先级最低的是 A)逻辑运算符.AND. B)算术运算符*
楼主为了减少重复回答问题,特编此帖,并不定期添加和更新内容。 错误难免,欢迎讨论,仅供参考。 很多人问哪里可以找到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笔记 2014.10.07 目录 第七讲_FORTRAN的基本知识.ppt (2) FORTRAN语言程序设计初步 (2) FORTRAN源程序的书写格式(以77为例) (2) 变量 (2) 变量类型 (2) 算术运算符和运算优先级 (3) 赋值语句 (3) 参数语句(PARAMETER语句) (3) END语句 (3) PAUSE语句 (3) 逻辑运算和选择结构 (4) 关系表达式 (4) FORTRAN中数组的定义及使用 (4) 其他 (5) 1. fortran语言定义CHARACTER*6 TTL(14,3),CNAM(400)是什么意思? (5) 2. fortran里character*10 是什么意思 (5) 3. Fortran中kind是什么函数? (5)
第七讲_FORTRAN的基本知识.ppt FORTRAN语言程序设计初步 FORTRAN是Formula Translation的缩写,意为“公式翻译”,它是为科学、工程问题或企事业管理中的那些能够用 数学公式表达的问题而设计的,其数值计算的功能较强。 常用的是FORTRAN77和FORTRAN90两种标准。 1、一个程序由若干个程序单位组成。主程序和每一个子程序分别是一个独立的程序单位。 2、每一个程序单位都是以“END”结束的。 3、一个程序单位包括若干行。 1)语句行。由一个FORTRAN语句组成。 2)非语句行,即注释行。 4、FORTRAN程序中的语句可以没有标号,也可以有标号,根据需要而定。标号的作用是标志一个语句以便被其 他语句引用。 5、一个程序单位中各类语句的位置是有一定规定的。 6、FORTRAN源程序必须按一定的格式书写。 FORTRAN源程序的书写格式(以77为例) 每一行有80列,分别如下: 1、第1-5列为标号区。一行中第一列为“C”或“*”,该行即被认为是注释行。 2、第6列为“续行标志区”,如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行。 3、第7-72列为语句区。 4、第73-80列,注释区。 变量 变量名:一个变量需要用一个名字(变量名)来识别。在同一个程序单位中不能用同一个变量名代表两个不同的变 量。 FORTRAN的变量名按以下规则选定: 1)第一个字符必须是字母,即变量名必须以字母开头; 2)在一个字母后面可以跟1-5为数字或字母。 如果选定的变量名超过6个字符,则只有前面6个字符有效。 注:在变量名中大写与小写字母是等价的。 变量类型 整型变量Integer、实型变量Real、双精度变量Double Precision、复型变量Complex、逻辑型变量Logical和字符型变量Character。 1、隐含约定(I-N规则) FORTRAN规定:在程序中的变量名,凡以字母I,J,K,L,M,N六个字母开头的,即认为该变量为整型变量。 在程序中,凡是变量名以字母I,J,K,L,M,N,i,j,k,l,m,n开头的变量被默认为整型变量,以其他字母开头的变量被 默认为实型变量。 2、用类型说明语句确定变量类型 1)INTEGER语句(整型说明语句) 2)REAL语句(实型说明语句) 3)DOUBLE PRECISION语句(双精度说明语句) 4)COMPLEX语句(复型说明语句) 5)LOGICAL语句(逻辑型说明语句)
几种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.sodocs.net/doc/bb14028533.html,/SoftDown.asp?ID=11937 Compaq Visual Fortran 6.6 绿色版下载: https://www.sodocs.net/doc/bb14028533.html,/down/10915.html Compaq Visual Fortran 6.5 下载: https://www.sodocs.net/doc/bb14028533.html,/soft/fortran6.5.rar ftp://2006:2006@https://www.sodocs.net/doc/bb14028533.html,/36/https://www.sodocs.net/doc/bb14028533.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.sodocs.net/doc/bb14028533.html,p iler/ 从https://www.sodocs.net/doc/bb14028533.html,/maths/下载。IVF10可以用IVF9的licence https://www.sodocs.net/doc/bb14028533.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 95 语法速查 ----------白云、李学哲、陈国新、贾波编著《FORTRAN95程序设计》读书笔记 目录:一、应用程序的创建与运行/FORTRAN 95所用的字符/ 变量类型及其声明,常量声明/表达式与运算符 二、输入与输出:表控、有格式 三、选择语句与结构:IF语句、CASE结构 四、DO循环结构 五、数组:数组的声明,数组的引用,数组的算术运算,数组的输入、输出,给数组赋初值, 动态数组,WHERE、FORALL语句 六、子程序:语句函数,内部子程序,调用子程序时的虚实结合:形参为数组、非定界数组、子 程序名、星号,递归子程序,外部子程序,纯子程序,逐元子程序 七、派生数据类型与结构体 八、指针与动态链表 九、文件:存取方式,基本操作语句,各类文件的读写操作 十、接口、模块 十一、公用区、存储关联、数据块子程序 十二、绘图:坐标系、设置图形颜色、创建图形程序/ 常用过程:设置线型、绘一像素点、设置当前位置、绘直线、绘弧线、绘矩形、绘多边形、绘制扇形(圆、椭圆)/ 文字信息的显示 附/录:标准函数与标准子例行程序 一、基础部份 1-1 FORTRAN 95 应用程序的创建与运行 创建或运行FORTRAN 95程序必须在Microsoft Developer Studio平台上进行。尽管程序文本及相关文件的编辑可以在任一文本编辑器上进行,然后再拷到Studio的文档窗口中。但最好还是一开始就进入Studio环境。创建FORTRAN 95 程序的步骤大致如下: 1)启动Microsoft Developer Studio 可以通过不同方式运行dfdev.exe程序以启动Microsoft Developer Studio [开始] \ Compaq Visual Fortran 6 \ Developer Studio \ dfdev.exe:或 ……\CVF66 \https://www.sodocs.net/doc/bb14028533.html,\MSDEV98\dfdev.exe Microsoft Developer Studio的界面如下图所示: 文档窗口 工作空间窗口 输出窗口
计算机程序设计语言(FORTRAN语言) (总分:36.00,做题时间:90分钟) 一、 (总题数:36,分数:36.00) 1.编译程序能将高级语言编写的源程序转换成( )。 A.解释程序 B.汇编程序 C.映象程序 D.目标程序 (分数:1.00) A. B. C. D. √ 解析: 2.一个完整的FORTRAN源程序( )。 A.至少包括一个主程序 B.至少包括一个主程序和一个子程序 C.由一个主程序与一个以上的子程序组成 D.由一个主程序与一个子程序组成 (分数:1.00) A. √ B. C. D. 解析: 3.语句函数定义语句在程序内合法的位置是( )。 A.在程序块开头语句之后,END语句之前 B.在程序块开头语句之后,可执行语句之前 C.在说明语句之后,END语句之前 D.在说明语句之后,可执行语句之前 (分数:1.00) A. B. C. D. √ 解析: 4.下列关于函数子程序虚实参数的错误说法是( )。 A.可以没有形参数 B.虚实结合的数组长度可以不同 C.实参表与虚参表类型可以不同 D.函数名可以作为虚参
(分数:1.00) A. B. C. √ D. 解析: 5.下列叙述中正确的是( )。 A.FORTRAN程序块中,无名公用语句只能有一个B.FORTRAN子程序中,至少应有一个RETURN语句C.FORTRAN程序块中,最后一行必须是END语句D.FORTRAN程序块中,必须有变量说明语句 (分数:1.00) A. B. C. √ D. 解析: 6.运行下面的程序时得不到所需的结果,其主要原因是( )。INTEGER X(11) DATA X/9,8,7,6,5,4,3,2,1,0,-1/ DO 10 1=1,X(1) ,-1 WRITE(*,*)1.0/SQRT(25.0-REAL(X(1) )* * 2) 10 CONTINUE END A.没有给X(11) 赋初值 B.发生除以零的情况 C.发生负数开平方的情况 D.循环参数设置错误 (分数:1.00) A. B. C. D. √ 解析: 7.下列数据中,不符合FORTRAN常量表示法的是( )。 A.-25.6 B.2.758D3 C.'FOOT"=' D.TRUE (分数:1.00) A. B. C. D. √ 解析:
Fortran 编译器 --------------------------------------------------------------------------------------- 1. Fortran Powerstation 4.0 Fortran Powerstation 4.0是最老的版本 下载ftp://2006:2006@https://www.sodocs.net/doc/bb14028533.html,/36/https://www.sodocs.net/doc/bb14028533.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.sodocs.net/doc/bb14028533.html,/SoftDown.asp?ID=11937 Compaq Visual Fortran 6.6 绿色版下载: https://www.sodocs.net/doc/bb14028533.html,/down/10915.html Compaq Visual Fortran 6.5 下载: https://www.sodocs.net/doc/bb14028533.html,/soft/fortran6.5.rar ftp://2006:2006@https://www.sodocs.net/doc/bb14028533.html,/36/https://www.sodocs.net/doc/bb14028533.html,-002124.rar ---------------------------------------------------------------------------------------
FORTRAN是世界上最早出现的高级编程语言,是工程界最常用的编程语言,它在科学计算中(如航空航天、地质勘探、天气预报和建筑工程等领域)发挥着极其重要的作用。经过40多年的发展,伴随着FORTRAN语言多次版本的更新及相应开发系统的出现,其功能不断完善,最新版本的开发系统几乎具备了VC、VB的所有特点,如图形界面编程、数据库等。目前,工科院校开设的计算机编程语言课首选仍然是FORTRAN :< 说实话,从科技发展的趋势来说这不是好事。您可以设想一下,如果需要用鹅毛笔抄写大量的古籍是什么感受! 强烈建议阅读《发掘C#特性赋予科学计算项目以威力》 1 FORTRAN77四则运算符 + - * / ** (其中**表示乘方) 在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→() 2 FORTRAN77变量类型 隐含约定:I-N规则 凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。 用类型说明语句确定变量类型:可以改变I-N规则
用IMPLICIT语句将某一字母开头的全部变量指定为所需类型 如IMPLICIT REAL (I,J) 三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。 数组的说明与使用 使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3)
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. 。新的表示方法更接近标准的数学符号
1F O R T R A N77四则运算符+ - */ ** (其中**表示乘方) 在表达式中按优先级次序由低到高为:+或-→*或/→**→函数→() 2 FORTRAN77变量类型 隐含约定:I-N规则 凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。 如IMPLICIT REAL (I,J) 三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。 数组的说明与使用 使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3) REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如 WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2) 10FORMAT(1X,5(A2,I2,1X,A2,I4)) 使用DATA语句给数组赋初值 变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如 DATA A,B,C/,, DATA A/,B/,C/ DATA A,B,C/3*CHARACTER*6 CHN(10) DATA CHN/10*''/INTEGER NUM(1000) DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/ 3 FORTRAN77程序书写规则
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的一些格式上的区别。
1 FORTRAN77四则运算符 + - * / ** (其中**表示乘方) 在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→() 2 FORTRAN77变量类型 2.1 隐含约定:I-N规则 凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。 如 IMPLICIT REAL (I,J) 三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。 2.4 数组的说明与使用 使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例: DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3) REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如 WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2) 10FORMAT(1X,5(A2,I2,1X,A2,I4)) 2.5 使用DATA语句给数组赋初值 变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如 DATA A,B,C/-1.0,-1.0,-1.0/ DATA A/-1.0/,B/-1.0/,C/-1.0/ DATA A,B,C/3*-1.0/CHARACTER*6 CHN(10)
DATA CHN/10*' '/INTEGER NUM(1000) DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/ 3 FORTRAN77程序书写规则 程序中的变量名,不分大小写; 变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效; 一行只能写一个语句; 程序的第一个语句固定为PROGRAM 程序名称字符串 某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容; 某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容; 某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行; 某行的第7至72字符位为语句区,语句区内可以任加空格以求美观; 某行的第73至80字符位为注释区,80字符位以后不能有内容。 4 FORTRAN77关系运算符 .GT. 大于 .GE. 天于或等于 .LT. 小于 .LE. 小于或等于 .EQ. 等于 .NE. 不等于 .AND. 逻辑与 .OR. 逻辑或 .NOT. 逻辑非 .EQV. 逻辑等 .NEQV. 逻辑不等 运算符优先级由高到低顺序为:()→**→*或/→+或-→.GT.或.GE.或.LT.或.LE.或.EQ.或.NE.→.NOT.→.AND.→.OR.→.EQV.或.NEQV 5 FORTRAN77语句
【以下文字转载自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文件操作 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编译器的使用。 一、关于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进行单步运行。查看错误出处。具体的更细致的调试,请参看相关文献或书籍。这类书籍不少。 具体操作如下:
简单说明一次编译程序的过程: 1.建立一个新的Project(File-new-选择Project选项卡-Utility Project,给定project的名称), 确定生成Project。 2.生成一个新的程序文件(File-new-选择Files选项卡-Fortran Free Format Source File,给 定文件名),或是插入一个已有的程序文件(选项Project/Add to Project/Files). 3.用Build菜单中的Excute选项来编译并运行程序,或是只单击Build选项来只做编译, 不运行程序。 4.要写新的程序可以另外建立一个新的Project,或是直接跟换Project中的文件。千万不要 把两个独立的程序文件放入同一个Project中,否则导致编译过程出现错误。 5.下次修改程序时,可以直接使用File/Open Workspace来打开*.dsw的Project工程文件。 一、安装 Fortran6.5安装包中包括以下文件(夹) 本人电脑-x86 64位-win7 进入X86文件夹,运行,中间需要输入序列号,记事本打开 获取,进过中间一些文件位置的选择,到百分之九十多的时候,需要选择是否安装运行环境,选是,最后安装完成。 二、运行 开始---Compaq Visual Fortran 6---Developer Studio
如果提示打开失败,则选中Developer Studio,右键----管理员获得所有权---就可以了 三、打开 出现如下对话框: 熟悉一些tips: 第一条: If your program hangs应用程序瘫痪while running outside the debugger在调试器外运行程序, attach贴上、附加the debugger调试器to your program程序by choosing Start Debug调试、除错form the Build menu, and then choosing Attach to Process. 如果你的程序在调试器外运行,导致应用程序瘫痪,通过选择Build---Start Dubug---attach to program,讲调试器连接到你的程序。 第二条: Visual可视化Fortran【公式翻译程式语言(formula translator)】uses the file extension文件扩展名. F90 to indicate表示Free Form source code自由形式的源代码, and the extensions .FOR or .F to indicate Fixed Form source code. Visual Fortran采用拓展名为.F90的文件来表示自由形式的源代码,扩展名为.FOR或.F 的文件来表示固定形式的源代码。 第三条:
财务指标分析参考标准值 一、变现能力比率 1 、流动比率= 流动资产合计/ 流动负债合计 标准值:2.0 。 意义:体现企业的偿还短期债务的能力。流动资产越多,短期债务越少,则流动比率越大,企业的 短期偿债能力越强。 分析提示:低于正常值,企业的短期偿债风险较大。一般情况下,营业周期、流动资产中的应收账款数额和存货的周转速度是影响流动比率的主要因素。 2 、速动比率=(流动资产合计-存货)/ 流动负债合计 保守速动比率=(货币资金+短期投资+应收票据+应收账款净额)/ 流动负债 标准值:1/0.8 意义:比流动比率更能体现企业的偿还短期债务的能力。因为流动资产中,尚包括变现速度较慢且可能已贬值的存货,因此将流动资产扣除存货再与流动负债对比,以衡量企业的短期偿债能力。 分析提示:低于1 的速动比率通常被认为是短期偿债能力偏低。影响速动比率的可信性的重要因素是应收账款的变现能力,账面上的应收账款不一定都能变现,也不一定非常可靠。 [ 编辑] 二、资产管理比率 1 、存货周转率=产品销售成本/ [(期初存货+ 期末存货)/2] 标准值:3 。 意义:存货的周转率是存货周转速度的主要指标。提高存货周转率,缩短营业周期,可以提高企业的变现能力。 分析提示:存货周转速度反映存货管理水平,存货周转率越高,存货的占用水平越低,流动性越强,存货转换为现金或应收账款的速度越快。它不仅影响企业的短期偿债能力,也是整个企业管理的重要内容。 2 、存货周转天数=360/ 存货周转率=[360*(期初存货+ 期末存货)/2]/ 产品销售成本 标准值:120 。
意义:企业购入存货、投入生产到销售出去所需要的天数。提高存货周转率,缩短营业周期,可以提高企业的变现能力。 分析提示:存货周转速度反映存货管理水平,存货周转速度越快,存货的占用水平越低,流动性越强,存货转换为现金或应收账款的速度越快。它不仅影响企业的短期偿债能力,也是整个企业管理的重要内容。 3 、应收账款周转率= 销售收入/[(期初应收账款+期末应收账款)/2] 标准值:3 。 意义:应收账款周转率越高,说明其收回越快。反之,说明营运资金过多呆滞在应收账款上,影响正常资金周转及偿债能力。 分析提示:应收账款周转率,要与企业的经营方式结合考虑。以下几种情况使用该指标不能反映实际情况:第一,季节性经营的企业;第二,大量使用分期收款结算方式;第三,大量使用现金结算的销售;第四,年末大量销售或年末销售大幅度下降。 4 、应收账款周转天数=360 / 应收账款周转率=(期初应收账款+期末应收账款)/2] / 产品销售收入 标准值:100 。 意义:应收账款周转率越高,说明其收回越快。反之,说明营运资金过多呆滞在应收账款上,影响正常资金周转及偿债能力。 分析提示:应收账款周转天数,要与企业的经营方式结合考虑。以下几种情况使用该指标不能反映实际情况:第一,季节性经营的企业;第二,大量使用分期收款结算方式;第三,大量使用现金结算的销售;第四,年末大量销售或年末销售大幅度下降。 5 、营业周期=存货周转天数+应收账款周转天数={[(期初存货+期末存货)/2]* 360}/ 产品销售成本+{[(期初应收账款+期末应收账款)/2]* 360}/ 产品销售收入 标准值:200 。 意义:营业周期是从取得存货开始到销售存货并收回现金为止的时间。一般情况下,营业周期短,说明资金周转速度快;营业周期长,说明资金周转速度慢。 分析提示:营业周期,一般应结合存货周转情况和应收账款周转情况一并分析。营业周期的长短,不仅体现企业的资产管理水平,还会影响企业的偿债能力和盈利能力。 6 、流动资产周转率= 销售收入/[(期初流动资产+期末流动资产)/2] 标准值:1 意义:流动资产周转率反映流动资产的周转速度,周转速度越快,会相对节约流动资产,相当于扩大资产的投入,增强企业的盈利能力;而延缓周转速度,需补充流动资产叁加周转,形成资产的浪费,降低