Fortran90几个重要的实验报告

Fortran90几个重要的实验报告
Fortran90几个重要的实验报告

Fortran90语言程序设计

上机实验报告

河南科技大学

规划与建筑工程学院

班级:工力112

姓名:

学号:111409070210

成绩:

2013年5月19 日

实验一(1)熟悉FORTRAN90软件开发环境

一.实验目的

1.了解FORTRAN90与软件开发环境的关系。

2.掌握FORTRAN90上机实验基本操作过程。

3.掌握FORTRAN90软件开发环境启动方法。

4.理解有关工作区、项目、文件的基本概念。

5.掌握工作区、项目、文件创建方法。

6.熟悉Compaq Visual Fortran软件开发环境图形用户界面。

7.掌握程序的输入、编辑、编译、构建、运行方法。

8.了解软件开发环境常用菜单、工具按钮、环境窗口基本功能。

9.掌握文件、文件夹的移动、复制、删除等操作方法。

二.课堂实验内容

1.问题描述

现有长1500米,宽1000米的地块要拍卖建造住宅小区,地块中央有一半径为100米的圆形公共绿地不属于拍卖范围,每平方米地价为5000元。编写程序计算该地块拍卖总价,并输出。要求地块长宽和绿地半径数据从键盘输入。

2.算法设计

通过对该问题的分析研究,设计求解算法,并绘制流程图如图1-1所示

开始

输入月销售罐数:number

计算油罐容积:cubage

计算月销售数量:volumes

计算月销售额:sale

输出月销售额:sale

结束

图1-1 计算地块总价程序流程图

3. 程序编写

根据算法和流程图,设计和编写程序如下:

!班级:工力112

!姓名:

!时间:201304

!计算加油站月销售额

PROGRAM main

PARAMETER (pi=3.1415)

INTEGER :: number

REAL :: cubage,volumes,sale

REAL :: radius=5.0,heigh=3.0,unitprice=500.0

PRINT*,’请输入月销售油罐数量:’

READ*,number

cubage=pi*radius*radius*heigh

volumes=cubage*number

sale=volumes*unitprice

PRINT*, ‘加油站月销售额:’,sale,’元。’

END

4.运行结果

请输入月销售油罐数量:

4

加油站月销售额: 471225.0 元。

Press any key to continue

三.课外练习

1.问题描述.

1.有一半径为5,高为20的圆柱型物体,求圆柱体积,并输出。编写程序实现之。

2.有一半径为5,高为20的圆锥型物体,求圆锥体积,并输出。编写程序实现之。

2. 算法设计

3. 程序编写

根据流程图,分别编写求解上述两问题的程序:程序1、程序2。 程序1:

!班级:工力112 !姓名: !时间:201304 !计算圆柱体积 PROGRAM main PARAMETER (pi=3.1415) REAL :: r,h,V

PRINT*,’请输入圆柱底半径和高:’ READ*,r,h V=pi*r*r*h

PRINT*, ‘圆柱体积:’,V

END

4. 运行结果

输入半径和高:r,h

计算圆柱体积:V

输出圆柱体积:V

开始

结束

输入半径和高:r,h

计算圆锥体积:V

输出圆锥体积:V

开始

结束

程序2:

!班级:工力112 !姓名: !时间:2101304 !计算圆锥体积 PROGRAM main PARAMETER (pi=3.1415) REAL :: r,h,V

PRINT*,’请输入圆锥底半径和高:’ READ*,r,h V=pi*r*r*h/3

PRINT*, ‘圆锥体积:’,V

END

请输入圆柱底半径和高: 5,20

圆柱体积: 1570.750 Press any key to continue

请输入圆锥底半径和高: 5,20

圆锥体积: 523.5833 Press any key to continue

实验一(2) 掌握FORTRAN90基础知识

一. 实验目的

1. 了解FORTRAN90字符集。

2. 掌握FORTRAN90实体名称的语法描述规则和具体使用要求。 3. 了解FORTRAN90关键字意义,以及与名称的区别。 4. 掌握FORTRAN90程序组织结构和语句排列次序的基本原则。 5. 掌握FORTRAN90自由书写格式及三个标志符的主要作用。 6. 理解数据、数据表示、数据类型概念,熟悉FORTRAN90数据类型。 7. 进一步熟

二. 课堂实验内容

1. 问题描述

有一呈等腰梯形的鱼塘,上底边长为150米,下底边长为210米,高为40米,在鱼塘周围建起了围墙,如图2-1所示。每平方米鱼塘产鱼4公斤,每公斤鱼的价格为10元。编写程序计算该鱼塘的产量和产值,以及围墙的长度。要求梯形的上底边长、下底边长、高从键盘输入。

图2-1 鱼塘示意图

2. 算法设计

a:150

b:210

h:40

c

开始

输入梯形的上底和下底以及高:a,b,h

计算梯形面积:area

计算产量和产值:yield,sales

计算梯形斜高:c

计算鱼塘的围墙长度:perimeter

结束

3. 程序编写

!班级:工力112

!姓名:

!时间:201304

!计算鱼塘产量和产值

PROGRAM main

INTEGER ::p=4,q=10

REAL :: a,b,c,h

REAL :: area,perimeter,yield,sales

PRINT*,’请输入梯形鱼塘的上底、下底和高值:’

READ*,a,b,h

area=(a+b)*h/2

yield=area*p

sales=yield*q

c=SQRT(((b-a)/2)*((b-a)/2)+h*h)

perimeter=a+b+2*c

PRINT*,‘鱼塘产量:’,yield,’公斤。’

PRINT*,‘鱼塘产值:’,sales,‘元。’

PRINT*,‘围墙长度:’,perimeter,‘米。’

END

4.运行结果

请输入梯形鱼塘的上底、下底和高值:

150,210,40

鱼塘产量:28800.00 公斤。

鱼塘产值:288000.0 元。

围墙长度:460.0000 米。

Press any key to continue

三. 课外练习

1.问题描述:有一长5米、宽3米的长方形铁皮,在四个角对称挖了四个半径为0.2米的圆洞,根据需要对这块铁皮镀一层铜,镀铜的价格是每平方米50元。计算镀铜费用。

2.算法设计

开始

输入矩形边长及圆洞半径:length、width、radius

计算铁皮的面积:area

计算镀铜费用:rate

输出

3.程序编写

程序3-1:

!班级:工力112

!姓名:

!时间:201304

!计算镀铜费用

PROGRAM main

INTEGER :: p=50

REAL :: length,width,radius

REAL :: area,rate

PRINT*,’请输入铁皮长宽和圆洞半径:’

READ*,length,width,radius

area=length*width-4*3.1415*radius**2 rate=p*area

PRINT*, ‘镀铜费用:’,rate

END

4. 运行结果

请输入铁皮长宽和圆洞半径:

5,3,0.2

镀铜费用: 724.8680

Press any key to continue

实验二(1)内部数据类型与简单顺序程序设计一.实验目的

1.了解内部数据类型及其KIND值参数概念。

2.掌握常量、变量、表达式、赋值语句的语法规则和基本功能。

3.掌握常用标准函数的基本功能和使用要求。

4.掌握表控输入输出的基本功能和使用要求。

5.掌握顺序结构概念和顺序结构程序设计方法。

进一步熟悉软件开发环境和掌握程序的输入、编辑、编译、构建和运行方法。

二.课堂实验内容

1.问题描述

已知两复数:3.5+4.8i、7.5-3.2i。计算其和、差、积、商,并输出计算结果。编写程序实现之。要求两复数从键盘输入。

2.算法设计

开始

输入两个复数:c1,c2

计算两数之和并赋值于a

计算两复数之差并赋值于b

计算复数之积赋值给c

计算复数之商赋值给d

输出a,b,c,d

结束

3. 程序编写

根据算法和程序流程图,设计和编写程序如下。

!班级:工力112 !姓名: !时间:201304

!计算两复数的和、差、积、商 PROGRAM main COMPLEX :: c1,c2 complex :: a,b,c,d PRINT*,’请输入两个复数:’ READ*,c1,c2 a=c1+c2;b=c1-c2 c=c1*c2;d=c1/c2 PRINT*, ‘复数之和:’,a PRINT*, ‘复数之差:’,b PRINT*, ‘复数之积:’,c PRINT*, ‘复数之商:’,d

END

!复数变量占有8字节

4. 运行结果

三. 课外练习

1. 问题描述

某炮兵阵地,某次使用大炮向敌人阵地猛烈发射炮弹。炮弹的运行轨迹满足方程:f(x)=-0.0000125x 2

+0.07x-50,计算炮弹能打击的最大高度和最远距离。编写程序实现之。

问题分析:(提示)

设:y=f(x)=ax 2+bx+c ,轨迹线为一抛物线,如图3-5所示。

请输入两个复数: 3.5004.8007.500-3.2

复数之和: (11.00000,1.600000) 复数之差: (-4.000000,8.000000) 复数之积: (41.61000,24.80000) 复数之商: (0.1637840,0.7098812) Press any key to continue

y max

Y

X

O

x2

x1

图3-5 一元二次方程轨迹曲线一元二次方程求根公式为:

假定方程只有两个不同实数根。2.算法设计

3.程序编写

a

2

ac

4

b

b

2,1

x

2

-

±

-

=

开始

请输入a,b,c

计算两根x1,x2

计算射程length和最大高度

输出射程和最大高度:length、h

结束

!班级:工程力学112

!姓名:

!时间:20130426晚上

!计算计算大炮的最大打击高度和最远距离,并输出

PROGRAM main

REAL::a,b,c ,d,x1,x2,x

REAL::length ,h

PRINT*,'请输入方程参数a,b,c'

READ*,a,b,c

d=b*b-4*a*c

x1=(-b+SQRT(d))/(2*a)

x2=(-b-sqrt(d))/(2*a)

x=0.5*(x1+x2)

h=a*x*x+b*x+c

length=x2-x1

PRINT*,'最大高度是:','h=',h

PRINT*,'最远射程是:','length=',length

END

4. 运行结果

请输入方程参数a,b,c

-0.0000127,0.07,-50

最大高度是:h= 46.45669

最远射程是:length= 3825.183

Press any key to continue

实验二(2)数据有格式输入输出

一.实验目的

1.了解数据有格式输入输出的主要作用、基本方法和使用规则。

2.掌握数据有格式输入输出语句(READ、PRINT、WRITE)的基本功能和语法规则。

3.掌握格式说明语句(FORMAT)的基本功能和语法规则。

4.掌握I、F、E、A、L、X、/、\等若干常用格式编辑符的格式要求和基本功能。

5.掌握数据有格式输入输出的数据组织和格式说明方法。

6.进一步掌握顺序结构程序设计方法。

7.进一步熟悉软件开发环境。

二.课堂实验内容

1.问题描述

通常需要计算(a+b)n的展开式系数,展开式系数满足杨辉三角关系。计算并输出n=1,

2,3,4,5时的展开式系数及系数之和,即下面的杨辉三角。编写程序实现之。字母“a”、

字母“b”、二项式阶数n从键盘输入。

1 1

n=1 1 1 2

n=2 1 2 1 4

n=3 1 3 3 1 8

n=4 1 4 6 4 1 16

n=5 1 5 10 10 5 1 32

要求输入输出数据以规范、整洁、直观形式给出。程序中应采用有格式输入输出。二项式阶数n为2位整数,项符号为长度等于1的字符,系数为3位整数,系数和4位整数。

2.算法设计

开始

根据提示输入二项式第一、二项字母和阶数:x、y、n

计算n=1时二项式系数c11,c12及系数和s1

计算n=2时二项式系数c21,c22,c23及系数和s2

计算n=3时二项式系数c31,c32,c33,c34及系数和s3

计算n=4时二项式系数c41,c42,c43,c44,c45及系数和s4。

3. 程序编写

!班级:工力112 !姓名:

!时间:20105

!计算并输出二项式系数(杨辉三角) PROGRAM yanghui_triangle INTEGER(1) :: n INTEGER:: x,y

INTEGER :: c11=1,c12=1,s1 INTEGER :: c21=1,c22,c23=1,s2 INTEGER :: c31=1,c32,c33,c34=1,s3 INTEGER:: c41=1,c42,c43,c44,c45=1,s4 INTEGER :: c51=1,c52,c53,c54,c55,c56=1,s5

WRITE(*,"(1X,'请输入二项式第一项字母(1个字母):',\)") READ(*,"(A)") x

WRITE(*,"(1X,'请输入二项式第二项字母(2个字母):',\)") READ(*,"(A)") y

WRITE(*,"(1X,'请输入二项式阶数(2位整数):',\)") READ(*,"(I2)") n s1=c11+c12

c22=c11+c12; s2=c21+c22+c23

c32=c21+c22; c33=c22+c23; s3=c31+c32+c33+c34

c42=c31+c32;c43=c32+c33;c44=c33+c34; s4=c41+c42+c43+c44+c45

c52=c41+c42; c53=c42+c43; c54=c43+c44; c55=c44+c45; s5=c51+c52+c53+c54+c55+c56 WRITE(*,"(1X,'下面给出(',A1,'+',A1,')1到',I2, '次方的展开式系数及系数之和。')") x,y,n WRITE(*,"(1X,'阶数',9X,'杨辉三角',7X,'系数之和')") WRITE(*,"(1X,15X,I3)") 1

WRITE(*,"(1X,'n=',I2,8X,2(1X,I3),9X,I4)") 1,c11,c12,s1 WRITE(*,"(1X,'n=',I2,6X,3(1X,I3),7X,I4)") 2,c21,c22,c23,s2 WRITE(*,"(1X,'n=',I2,4X,4(1X,I3),5X,I4)") 3,c31,c32,c33,c34,s3 WRITE(*,"(1X,'n=',I2,2X,5(1X,I3),3X,I4)") 4,c41,c42,c43,c44,c45,s4 WRITE(*,"(1X,'n=',I2, 6(1X,I3),1X,I4)") 5,c51,c52,c53,c54,c55,c56,s5 END

4. 运行结果

计算n=5时二项式系数c51,c52,c53,c54,c55,c56及系数和s5。

按输出格式要求输出数据。

结束

请输入二项式第一项字母(1个字母):1 请输入二项式第二项字母(2个字母):1,1 请输入二项式阶数(2位整数):5

下面给出(1+1)1到 5次方的展开式系数及系数之和。 阶数 杨辉三角 系数之和 1

n= 1 1 1 2 n= 2 1 2 1 4 n= 3 1 3 3 1 8 n= 4 1 4 6 4 1 16 n= 5 1 5 10 10 5 1 32 Press any key to continue

三. 课外练习

1.问题描述

使用数据有格式输入输出功能,输出由4个字符abcd组成的图形。编写程序实现之。

a

b b

c c

ddddddddddddd

c c

b b

a

问题分析:(提示)

a、b、c、d四个字符可以是任意可显示字符,这四个字符从键盘输入得到。若输入的四个字符为*、#、&、$,则输出结果为:

*

# #

& &

$$$$$$$$$$$$$

& &

# #

*

由相同字符组成的字符串,可用标准函数REPEAT(str,I)得到。如REPEAT(‘$’,3)=‘$$$’。

2.算法设计

开始

结束3. 程序编写

4. 运行结果

实验三(1) 选择结构序程序设计

一. 实验目的

1. 熟悉关系表达式和逻辑表达式。

2. 掌握逻辑IF 、块IF 、多支块IF 、SELECT 语句的语法规则和使用要求。 3. 掌握嵌套选择结构和嵌套选择语句的使用要求和实现方法。 4. 掌握选择结构概念和选择结构程序设计方法。

二. 课堂实验内容

1. 问题描述

计算下面分段函数的值,编写程序实现之。

2. 算法设计

5. 程序编写

x<0 ?????

???

?++=2

x 2x

1x

2

x sin e y x=0 x>0 图5-2 程序框

结束 输出y 的值

用公式三计算y

开始 x < 0

用公式一计算y

x = 0

用公式二计算y

输入x 的值

4. 运行结果

三. 课外练习

1. 问题描述

某商店对购货额为1000元以上(含1000元,下同),八折优惠;500元以上1000元以下,九折优惠;200元以上500元以下,九五折优惠;100元以上200元以下,九七折优惠;100元以下,不优惠。输入购货额,计算优惠货款,并输出。

2. 算法设计

!班级:工力112 !姓名: !时间:201305 !计算分段函数的值 PROGRAM example REAL(4) :: x,y PRINT*,'请输入x 的值:' READ*,x IF (x<0) THEN

y=exp(2*abs(x))+sin(x*3.14159/180) ELSEIF ( x==0) THEN y=2 ELSE

y=x/sqrt(1+x*x) END IF

PRINT *, 'y=', y END

请输入x 的值:

-5.8

y= 109097.7

Press any key to continue

请输入x 的值: 0

y= 2.000000

Press any key to continue

请输入x 的值: 5.8

y= 0.9854601

Press any key to continue

3. 程序编写

开始

输入购物额x

x>1000

y=0.8*x

x>500

真假

x>200

y=0.97*x 真

x>0

y=x

y=0.95*x

输出y

结束

!班级:工程力学112

!姓名:

!时间:201305

!程序用途:计算超市购物优惠金额

PROGRAM main

real(4):: x,y

PRINT*,'请输入购货金额'

read*,x

IF (x>=1000) THEN

y=0.8*x

ELSE IF(X>=500) THEN

y=0.9*x

ELSE IF(X>=200) then

y=0.95*x

else IF(X>=100) THEN

y=0.97*x

else

y=x

END IF

PRINT*,'优惠金额为:',y

END

4. 运行结果

请输入购货金额

1200

优惠金额为:960.0000

Press any key to continue

请输入购货金额

600

优惠金额为:540.0000

Press any key to continue

请输入购货金额

250

优惠金额为:237.5000

Press any key to continue

请输入购货金额

150

优惠金额为:145.5000

Press any key to continue

请输入购货金额

50

优惠金额为:50.00000

Press any key to continue

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 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. 。新的表示方法更接近标准的数学符号 在变量定义中始终使用“::”;始终用“DIMENSION ”定义数组形状;始终用(len=)的语法格式声明字符变量的长度。

fortran常见错误

FAQ之常见错误 2014-02-02 13:45:35 来源:Fcode研讨团队评论:2点击:4419 本文从编译错误,链接错误,运行时错误,计算结果错误等四个方面介绍了常见的错误及解决思路。适合初学者阅读。 首先应该明确:错误有哪几种?我们当前遇到的是何种错误? 阐述这些问题前,我们先讨论一下常规的应用程序开发的过程: 1>>编写代码,使用一个或多个源代码文件。 2>>对第一步的每一个源代码文件执行编译操作。得到一个或若干个目标代码。 3>>将目标代码,运行时库(Run-time Library)和其他使用到的函数库链接起来。得到一个可执行文件(EXE 或其他) 4>>编写程序的说明书,必要的(输入)数据文件 5>>将上述得到的结果发布给用户。(发布的方式可以是刻录成光盘,销售,放在网站上供别人下载,或者其他) 6>>用户得到程序后,运行,输入数据,得到计算结果。 对于很多 Fortran 程序员来说,可能用户就是自己,也可能仅仅是自己教研室的同事同学。所以第4,5,6步骤很多时候不明显。而如果使用集成开发环境(IDE)进行开发,第1,2,3步骤又可以一键完成。因此,很多初学者就认为,写程序就是:输入代码,运行,得到结果。这样的理解太狭义。 不管我们面对什么使用者来写代码,程序开发应该是上述的过程。我们的编译器,编译环境,也是为这个过程而设计的。 于是,我们将错误分为四种: 一. 编译错误(发生在第2步) 编译错误,一般是源代码书写格式不正确,不符合语法要求。 二. 链接错误(发生在第3步) 链接错误,一般是源代码结构不完整,运行时库或函数库使用不合理。 三. 运行时错误(发生在第6步) 运行时错误,一般是执行代码时,遇到了事先未料及的错误。比如内存不足了,磁盘空间不够了,输入文件格式不对了,输出文件写入失败了等等。 四. 计算结果不符合预期(程序代码不规范,或不符合你的设想) 计算结果不符合预期,可能性就很多了。语法与你的想法不一致,超出函数库的适用范围,执行流程控制不当等等。 这四种错误,其排查难度依次增大。也就是,编译错误最容易排查和修改,而计算结果不正确,最让人头疼。

Fortran常见错误

fortran运行常用错误(转) (2006-11-1010:18:44) 转载▼ 分类:分子动力学 41Insufficient virtual memory虚拟内存不足 70Integer overflow整数溢出错误 71Integer divide by zero整数除0错误 72Floating overflow浮点数溢出错误 73Floating divide by zero浮点数除0错误 74Floating underflow浮点数下溢错误 75Floating point exception浮点数异常错误 77Subscript out of range数组定义超出边界 95Floating-point conversion failed浮点数格式转换失败 146Null pointer error空指针错误 147Stack overflow堆栈溢出 148String length error字符串长度超出允许范围 149Substring error数组下标超出允许范围 150Range error整数值超出允许范围 151Allocatable array is already allocated数组重复定义 161Program Exception-array bounds exceeded引用数组下标超出允许范围162Program Exception-denormal floating-point operand非法浮点数操作符163Program Exception-floating stack check浮点数堆栈检查 164Program Exception-integer divide by zero整数除0错误 165Program Exception-integer overflow整数溢出 166Program Exception-privileged instruction非法执行特权指令 168Program Exception-illegal instruction非法指令 170Program Exception-stack overflow堆栈溢出

Fortran 运行中给出的系统错误及解决方法

. Fortran 运行中给出的系统错误及解决方法 以下均为linker tools errors and warnings Linker Tools Error LNK1000 unknown error; consult documentation for technical support options Note the circumstances of the error, try to isolate the problem and create a reproducible test case, then contact technical support. Linker Tools Error LNK1101 incorrect MSPDBxx.DLL version; recheck installation of this product The version of MSPDBxx.DLL available on your system does not match the version required by this tool. Linker Tools Error LNK1102 out of memory There was not enough memory for the tool to run. Probably the paging file exceeded available disk space. If a shortage of disk space is not the cause, note the circumstances of the error, try to isolate the problem and create a reproducible test case, then request technical support. Linker Tools Error LNK1103 debugging information corrupt; recompile module Probably the compilation was terminated before a valid object file was created.Recompile the given object file. If recompiling does not correct the problem,note the circumstances of the error, try to isolate the problem and create a reproducible test case, then consult technical support. Linker Tools Error LNK1104 cannot open file "filename" The tool could not open the given file. One of the following may be a cause: l There was not enough disk space. l The file does not exist. l The filename or its path was incorrectly specified. l The specified drive is invalid. l The file does not have the appropriate permissions. l The path for filename expands to more than 260 characters. l If the given file is named LNKn, which is a filename generated by the linker for a temporary file, then the directory specified in the TMP environment variable may not exist, or more than one directory is specified for the TMP environment variable. (Only one directory path should be specified for the TMP environment variable.) l If the error occurs on the executable filename, an earlier version of the executable may still be running. You will need to terminate the executable before linking it. In Windows NT (including Windows 2000) or Windows 95,you can use the utility PVIEW to look for and kill instances of the application. l If the error message occurs for a library name, and you recently ported the .MAK file from a previous Microsoft Visual C++ development

Visual Fortran常见错误内容

Visual Fortran 常见运行错误信息 41 Insufficient virtual memory 虚拟内存不足 70 Integer overflow 整数溢出错误 71 Integer divide by zero 整数除0错误 72 Floating overflow 浮点数溢出错误 73 Floating divide by zero 浮点数除0错误 74 Floating underflow 浮点数下溢错误 75 Floating point exception 浮点数异常错误 77 Subscript out of range 数组定义超出边界 95 Floating-point conversion failed 浮点数格式转换失败 146 Null pointer error 空指针错误 147 Stack overflow 堆栈溢出 148 String length error 字符串长度超出允许范围 149 Substring error 数组下标超出允许范围 150 Range error 整数值超出允许范围 151 Allocatable array is already allocated 数组重复定义 161 Program Exception - array bounds exceeded 引用数组下标超出允许范围 162 Program Exception - denormal floating-point operand 非法浮点数操作符 163 Program Exception - floating stack check 浮点数堆栈检查 164 Program Exception - integer divide by zero 整数除0错误 165 Program Exception - integer overflow 整数溢出 166 Program Exception - privileged instruction 非法执行特权指令 168 Program Exception - illegal instruction 非法指令 170 Program Exception - stack overflow 堆栈溢出 540 Array or substring subscript expression out of range 数组下标低下数组定义 下界或高于数组定义上界 541 CHARACTER substring expression out of range 字符串非法表示 542 Label not found in assigned GOTO list 不属于GOTO语句引用的标号 543 INTEGER arithmetic overflow 整数运算结果出现溢出 544 INTEGER overflow on input 输入的整数值超出允许范围 545 Invalid INTEGER 非法整数值 546 REAL indefinite (uninitialized or previous error) 产生非法实数 547 Invalid REAL 非法实数 548 REAL math overflow 实数值溢出 549 No matching CASE found for SELECT CASE select case语句中缺少case项 550 INTEGER assignment overflow 整数定义超出允许范围 556 A edit descriptor expected for CHARACTER 字符型数据的格式化输入和输出需要A编辑符 557 E, F, D, or G edit descriptor expected for REAL 实数型数据的格式化输入和输 出需要E,F,D,G编辑符 558 I edit descriptor expected for INTEGER 整数型数据的格式化输入和输出需要I编辑符 559 L edit descriptor expected for LOGICAL 逻辑型数据的格式化输入和输出需要L编辑符 568 Multiple radix specifiers 输入或输出语句重复说明 582 Array already allocated 数组已分配 583 Array size zero or negative 数组大小为0或负数

FORTRAN常见错误

FORTRAN常见错误 41 Insufficient virtual memory 虚拟内存不足 70 Integer overflow 整数溢出错误 71 Integer divide by zero 整数除0错误 72 Floating overflow 浮点数溢出错误 73 Floating divide by zero 浮点数除0错误 74 Floating underflow 浮点数下溢错误 75 Floating point exception 浮点数异常错误 77 Subscript out of range 数组定义超出边界 95 Floating-point conversion failed 浮点数格式转换失败 146 Null pointer error 空指针错误 147 Stack overflow 堆栈溢出 148 String length error 字符串长度超出允许范围 149 Substring error 数组下标超出允许范围 150 Range error 整数值超出允许范围 151 Allocatable array is already allocated 数组重复定义 161 Program Exception - array bounds exceeded 引用数组下标超出允许范围 162 Program Exception - denormal floating-point operand 非法浮点数操作符 163 Program Exception - floating stack check 浮点数堆栈检查 164 Program Exception - integer divide by zero 整数除0错误 165 Program Exception - integer overflow 整数溢出 166 Program Exception - privileged instruction 非法执行特权指令 168 Program Exception - illegal instruction 非法指令 170 Program Exception - stack overflow 堆栈溢出 540 Array or substring subscript expression out of range 数组下标低下数组定义 下界或高于数组定义上界 541 CHARACTER substring expression out of range 字符串非法表示 542 Label not found in assigned GOTO list 不属于GOTO语句引用的标号 543 INTEGER arithmetic overflow 整数运算结果出现溢出 544 INTEGER overflow on input 输入的整数值超出允许范围 545 Invalid INTEGER 非法整数值 546 REAL indefinite (uninitialized or previous error) 产生非法实数 547 Invalid REAL 非法实数 548 REAL math overflow 实数值溢出 549 No matching CASE found for SELECT CASE select case语句中缺少case项550 INTEGER assignment overflow 整数定义超出允许范围 556 A edit descriptor expected for CHARACTER 字符型数据的格式化输入和输出需要A编辑符 557 E, F, D, or G edit descriptor expected for REAL 实数型数据的格式化输入和输 出需要E,F,D,G编辑符 558 I edit descriptor expected for INTEGER 整数型数据的格式化输入和输出需要I编

fortran 排除错误

安装好VISUAL FORTRAN后 1、运行Developer studio即可开始编译FORTRAN程序 2、选择File菜单中的New选项 3、在弹出的对话框选择projects标签,其他标签不用管,projects格式选用Fortran console application;在project name里命名(最好英文名),点击“ok ” 4、接下来画面中,选择“an empty project”,点击“finish” 5、接下来画面点击“ok” 6、再选择一次File菜单中的new 7、对话框选用files标签,选择Fortran free format source file ,并在file里命名 8、点击“ok” Source Files 放源文件(.c、.cpp)程序的实现代码全放在这里 Header Files 放头文件(.h)声明放在这里 Resource Files 资源文件(.rc)放图标、图片、菜单、文字之类的,主要用来做界面的东东一般都放这里 External Dependencies 除上三种以外的,程序编译时用到的文件全放这里 fortran内部函数出错信息解释 内部函数出错信息解释 [sourcefile(line)]run-time error M62××MATH 错误号函数级数学错误信息 M6201 functionnames:DOMAIN error 函数的自变量超出了约定的取值域,例如sqrt(-1) M6202 functionname:SING error 无意义的变量。例如log10(0) M6203 functionname:OVERFLOW error 函数的结果值或其中一个既时计算值太大以致不能表示,例如EXP(250000.0) M6204 functionname:UNDERFLOW error 函数的结果值或其中一个既时计算值太小以致不能表示。 M6205 functionname:TLOSS error 完全丢失精度,例如COS(1E30) M6206 functionname:PLOSS error fortran debug模式设置和技巧 CVF中有两种编译(连接、执行)模式:release模式和debug模式。调试程序时,宜用debug 模式;调好后再用release模式,得到高效的执行程序。设定debug模式:点击菜单 Build/Set Active Project Configuration,选*- Win32 Debug,OK,即设定为debug模式。以debug模式执行:点击“Go (F5)”按钮,或直接按F5键,则执行程序,并在第 一个出错语句处停止,在该语句前有一个小黄色箭头。若程序没错,则一直执行完毕,自动关闭dos窗口。此时,宜用“!”按钮或“Ctrl+F5”键,执行完成后,dos窗口等

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编译器了

fortran常见问题解决

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

case (100:999) write(form,'(i3)') i case (1000:9999) write(form,'(i4)') i end select write(filename,*) "AA",trim(form),".TXT" open(10,file=filename) write(10,*) i close(10) end do 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后问题就没了的人已有相当的数目。 如果你用,遇到莫名其妙的错误,建议换,这是一个比较成熟的编译器。

fortran常见错误及其原因

常见fortran错误 1.Incrementally linked image--PC correlation disabled. !编译终止 2. forrtl: severe (157): Program Exception - access violation bounds and /warn: argument_checking options set, to see if theproblem is an out-of-bounds memory reference or a argument mismatch that causes data to be treated as anaddress. Other causes of this error include: severe (64): input conversion error, unit 2, file D: \FORTRAN2\testi !文件testi正在读写,直到读写到2时错误。举例: 程序想读写整数,却碰到变量故终止。 4 error LNKZOOI : unresolved external symbol _ SN @ 4 fatal error LNKllZO : 1 unresolved externals!出现了未指定的外部函数符号Sn。这是因为在函数子程序中错把函数名Sn写成了ns。根据错误信息中的提示,用户在编辑窗口寻

找有错位置进行修改。连接错误往往出现在有函数调用或子程序调用的程序中,常见的错误性质有: 未定的函数符号、找不到主程序或子程序、实参与虚参的个数不一致等。注意: 连接错误只给出错误代号和错误性质,不给出具体语句的行号。 5 : : error FOR229O : implicit type for 1 detected between 1 and = C : \ abc.: error FOR33Og : undefined label 10 编译系统提示用户: 在程序的第5行,变量i未经类型说明;在程序的第H行,标号10未定义。 为了便于将output窗口中的错误信息与程序中的有错语句对照起来检查,可以双击错误列表中的某一行,此时该行被高亮显示,同时有一个小指针在编辑窗口内指向程序中对应该行错误的语句行.6C : \ abc.f90( 5 ) : error FOR229O : implicit type forx 即编译系统通告用户: 在程序“ C: 、abc . fgo ”中的第5行发现了错误,错误代号为“ error FoR229o",错误性质是“ implicit type forx "(变量x未经类型说明)。

FORTRAN 90安装指导

声明: 1.欢迎使用本指导方案,本指导方案仅供参考,若因为本指导而导致的安装错误以及其他损失,本人概不负责。 2.FORTRAN90仅能支持32位电脑。 3,若有其他安装使用技术问题,请与本人联系。 编辑:张智超 联系方式:373134347 安装顺序: 1.打开FORTRAN编译器,点开SETUP.EXE 2.选择三个选项的第一个。 3.之后会弹出一个框图,点击否。这个是介绍本软件的。 4.然后点击next 5.对于这个,名字随便你自己,序列号为33206,0500,0010743,00007,输完之后点击next

6.点击yes 7. 继续点击next,切记按照如图所示,不要改动其他东西。

8.继续点击next 9.等待几十秒后, 点击允许本次操作。

10.点击是或者否都无所谓,这个是供你更新用的。 11.之后连续点击两个否, 点击finish即可。 12.安装之后你回发现招不到文件夹所在,不要着急。提供两个方法! 第一,点击电脑左下角的这个,然后点击所有程序,找到这个文件夹:Compaq Visual Fortran 6,点开,找到Developer Studio,点开即可。

第二,按照这个去找你电脑里的原始启动程序。 之后找到这个,点击DFDEV,.com。然后会有360等防火墙组织,点击允许此操作。 下面开始讲解操作过程: 1点击file。 2 点击file里面的new。 3点击确定 4 点击第一个FILES 5 选择第四个,fortran fixed format source file

6 点击ok 之后就可以开始编写程序了,其他应用技术就不多讲解了。后记,祝同学们学习进步,编写愉快!

FORTRAN常见错误

41 Insufficient virtual memory 虚拟内存不足 70 Integer overflow 整数溢出错误 71 Integer divide by zero 整数除0错误 72 Floating overflow 浮点数溢出错误 73 Floating divide by zero 浮点数除0错误 74 Floating underflow 浮点数下溢错误 75 Floating point exception 浮点数异常错误 77 Subscript out of range 数组定义超出边界 95 Floating-point conversion failed 浮点数格式转换失败 146 Null pointer error 空指针错误 147 Stack overflow 堆栈溢出 148 String length error 字符串长度超出允许范围 149 Substring error 数组下标超出允许范围 150 Range error 整数值超出允许范围 151 Allocatable array is already allocated 数组重复定义 161 Program Exception - array bounds exceeded 引用数组下标超出允许范围 162 Program Exception - denormal floating-point operand 非法浮点数操作符 163 Program Exception - floating stack check 浮点数堆栈检查 164 Program Exception - integer divide by zero 整数除0错误 165 Program Exception - integer overflow 整数溢出 166 Program Exception - privileged instruction 非法执行特权指令 168 Program Exception - illegal instruction 非法指令 170 Program Exception - stack overflow 堆栈溢出 540 Array or substring subscript expression out of range 数组下标低下数组定义 下界或高于数组定义上界 541 CHARACTER substring expression out of range 字符串非法表示 542 Label not found in assigned GOTO list 不属于GOTO语句引用的标号 543 INTEGER arithmetic overflow 整数运算结果出现溢出 544 INTEGER overflow on input 输入的整数值超出允许范围 545 Invalid INTEGER 非法整数值 546 REAL indefinite (uninitialized or previous error) 产生非法实数 547 Invalid REAL 非法实数 548 REAL math overflow 实数值溢出 549 No matching CASE found for SELECT CASE select case语句中缺少case项 550 INTEGER assignment overflow 整数定义超出允许范围 556 A edit descriptor expected for CHARACTER 字符型数据的格式化输入和输出需要A编辑符 557 E, F, D, or G edit descriptor expected for REAL 实数型数据的格式化输入和输 出需要E,F,D,G编辑符 558 I edi t descriptor expected for INTEGER 整数型数据的格式化输入和输出需要I编辑符 559 L edit descriptor expected for LOGICAL 逻辑型数据的格式化输入和输出需要L编辑符

fortran常见错误及其原因

常见fortran错误 1. Incrementally linked image--PC correlation disabled. !编译终止 2. forrtl: severe (157): Program Exception - access violation !The program tried to read from or write to a virtual address for which it does not have the appropriate access. Try recompiling with the /check:bounds and /warn:argument_checking options set, to see if the problem is an out-of-bounds memory reference or a argument mismatch that causes data to be treated as an address. Other causes of this error include: Mismatches in C vs. STDCALL calling mechanisms, causing the stack to become corrupted References to unallocated pointers Attempting to access a protected (for example, read-only) address 3 "forrtl: severe (64): input conversion error, unit 2, file D:\FORTRAN2\testi !文件testi正在读写,直到读写到2时错误。举例:程序想读写整数,却碰到变量故终止。 4 error LNKZOOI : unresolved external symbol _ SN @ 4 fatal error LNKllZO : 1 unresolved externals ! 出现了未指定的外部函数符号Sn 。这是因为在函数子程序中错把函数名Sn 写成了ns 。根据错误信息中的提示,用户在编辑窗口寻找有错位置进行修改。连接错误往往出现在有函数调用或子程序调用的程序中,常见的错误性质有:未定的函数符号、找不到主程序或子程序、实参与虚参的个数不一致等。注意:连接错误只给出错误代号和错误性质,不给出具体语句的行号。 5 :: error FOR229O : implicit type for 1 detected between 1 and = C : \ abc . : error FOR33Og : undefined label 10 编译系统提示用户:在程序的第 5 行,变量i 未经类型说明;在程序的第H 行,标号10 未定义。为了便于将output 窗口中的错误信息与程序中的有错语句对照起来检查,可以双击错误列表中的某一行,此时该行被高亮显示,同时有一个小指针在编辑窗口内指向程序中对应该行错误的语句行. 6 C : \ abc .f90( 5 ) : error FOR229O : implicit type forx 即编译系统通告用户:在程序“ C :、abc . fgo ”中的第 5 行发现了错误,错误代号为“ error FoR229o " ,错误性质是“ implicit type forx " (变量x 未经类型说明)。 7 run 一time error M6201 : MATH 一sqrt : DOMAIN error 该错误为内部函数sqrt 的定义域错误,即函数sqrt 的参数不能为负数。 8 边界点的值往区域内部移动 边界变量定义的维数小于实际维数 9 FortranPGM\EULER invisicid flow\TWODEULER.F90(737) : Warning: In the call to CUCVCUV, there is no actual argument corresponding to the dummy argument TTT. CALL CUCVCUV(MP1,NP1,M,N,DELX,DELY,U,V,CU,CV,CUS,CVS,&------^ !调用子程序中,存在一个不存在的哑元变量TTT,建议对其修改。

相关主题
相关文档
最新文档