FORTRAN语言

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(4)定义函数语句:f(a1,a2,…an)=e (5)子程序语句: ① 函数子程序 function f(a1,a2,…an) ② 子例程子程序 subroutine s(a1,a2,…an)
函数子程序 function举例:
n! 例5:编程求 P 的值。 ( n r )!
integer fac,p,r write(*,*)'n=,r=?' read(*,*)n,r p=fac(n)/fac(n-r) write(*,*)n,r,p end integer function fac(n) fac=1 if(n.le.1) goto 77 do 10 k=2,n fac=fac*k return end
②维数语句: dimension r(i)或r(i, j, k) real*8 a(i), complex*16 r(i) ③公用语句: common w1, w2 主程序与子程序w1,w2同变量 ④参数语句: parameter v1=c, v2=c
(2)format语句 (3)data语句(数据初值语句) • data v1/d1/,v2/d2/,…vn/dn/ • 或 data v1,v2,…,vn/d1,d2,…,dn/
2. 语句书写的格式

第1列有字符C时(注释行),不参加编译和运行。 FORTRAN90普遍用!放在语句后,但该句参与 本行在它后面的所有均被定义为注释。 运行。 当第6列上有非零和非空格的字符时,表明此行 为上行的继续行。例如:&

语句在7~72列中;语句标号1~5列。
FORTRAN77扩展名为: *.f或*.for FORTRAN90无严格限制(以.f90为后缀)
要求:x 为键盘输入。
算数条件语句的计算编程
cha1-1.f: read(*,40) X format(F8.2) if(x)10,20,30 2 ( x 0) Y=-1.57079 Y 0 ( x 0) goto 100 2 ( x 0) Y=0 goto 100 Y=1.57079 goto 100 write(*,50)x,Y format(1X,2HX=,F10.6,4H, Y=F10.6) end
40
10 20 30 100 50
来自百度文库
③逻辑条件语句
0.5 X 0.95 例2: Y 0.7 X 0.53 x 2.1 x 2.1
if(X.le.2.1)Y=0.5*X+0.95 Y=0.7*X+0.53 write(*,*)X,Y
关系运算符号:
错误表示!
FORTRAN 77: .gt.
关于变量的说明:

定义注意I-N法则 名称长度不超过6个字符长(字母开头)
大小写等价 implicit语句: implicit real*8 (a, c), (t-v) implicit integer (d, e)

在FORTRAN 77中有字符型变量,字符型常数
只能存储在字符型变量中。


实型(real)32bit;
双精度实型(double precision)real*8; 8bytes 64bits 复型(complex)a+bi 两个浮点数;也分单双精度 双精度复型(D-P-C)complex*16; 逻辑型(logical) True, False 分别以1,0代表; 文字型(character) (字符型)
5
10
三、源程序语句排列顺序
(1)说明语句(类型语句、维数语句等) (2)数据语句(数据初值语句,定义函数语句) (3)可执行语句 (4)结束语句(格式语句可放在任意处) (5)子程序语句(函数子程序,子例程子程序)
Format 格式
Aw BN BZ Dw.d EW.d[Ee] 以w个字符宽度输出字符串 定义文本框中的空位为没有东西,在输入时才需要使用 定义文本框中的空位代表0,在输入时才需要使用 以w个字符宽来输出指数类型的浮点数,小数部分占d个字符宽 以w个字符宽来输出指数类型的浮点数,小数部分占d个字符宽, 指数部分占e个字符
通用名
sin(x), dsin(x), csin(x) cos(x), dcos(x), ccos(x) tan(x), dtan(x), ctan(x) asin(x), dasin(x) acos(x), dcos(x)
含义
sin(x) cos(x) tg(x) sin-1(x) cos-1(x)
do n i=m1,m2,m3 或 do n i=m1,m2
即: do 标号 循环变量=表达式1,表达式2 [,表达式3]
例如: do 10 i=1,100,2 do 100 j=1, 8 do 60 x=1.2, 3.6, 0.2
使用do语句循环时,可省略标号 do i=m1,m2,m3 do i=1,100 例: 循环程序 i=i+1 end do end do
§1.1 FORTRAN语言简介
Formula Translator(公式翻译器,数学语言翻译为机器语言)
一、FORTRAN语言的三点说明 1. 常数与变量的说明 2. 语句书写格式 3. 与C语言的不同
1. 常数与变量的说明
FORTRAN中常数与变量分为7类

整数型(integer)长整型32bit,短整型16bit;

⑤继续语句 continue ⑥call s(d1,d2,…,dn)
return (在end前)
(3) 输入、输出语句
read(u1,n1), write(u2,n2)
u1: 输入设备通道号:(1~7)
u2: 输出设备通道号:(1~7) 若u1,u2为“*”,则分别表示按键盘格式输入、屏幕表 列 输出。 n表示格式说明:
例3:有三个数x,y,z,要求打印出其中最大的数。 cha1-3.f: read(*,20)x,y,z 20 format(3F10.4) big=x if(y.gt.big)big=y if(z.gt.big)big=z write(*,*)’big=’,big end
④ 循环do语句
循环变量的初值 循环的终止值 循环增量值(省略则默认为1)
若n=n1,则表示输入、输出按n1语句标号规定格式执行。
若n为“*”,则表示按自由格式输入或输出。
2. 非执行语句
(1)说明语句: ①类型说明语句 、 隐含说明语句Implicit
例如 implicit integer(A,B,C) A,B,C开头的变量都是为整型 implicit none 关闭默认类型功能,所有变量都要事先声名
FORTRAN 90 : >
.ge.
>=
.lt.
<
.le.
<=
.eq.
==
.ne.
/=
逻辑运算符号:
.and. .or. .not.(逻辑非) .euv.(逻辑等) .neqv.(逻辑不等)
0.5 X 0.95 Y 0.7 X 0.53
x 2.1 x 2.1
正确表示: if(X.le.2.1) Y=0.5*X+0.95 if(X.gt.2.1) Y=0.7*X+0.53 write(*,*)X,Y 或者 if(X.le.2.1) then Y=0.5*X+0.95 else Y=0.7*X+0.53 end if write(*,*)X,Y
④循环do语句
例4:编程求解0.0, 0.1, 0.2, 0.3的平方根 • do 10 i=0, 0.3, 0.1 (错误) 或者用以下程序: x=0.0 do 10 x=0.0,0.3,0.1 do 10 i=1,4 y=sqrt(x) y=sqrt(x) 10 write(*,20)i,x,y write(*,20)i,x,y 20 format(1X, I5, 2F10.4) 10 x=x+0.1 end 20 format(1X,I5,2F10.4) end
ENW.d[Ee] 以指数类型来输出浮点数 ESW.d[Ee] 以指数类型来输出浮点数 Fw.d Gw.d[Ee] Iw.[.m] Lw nX 以w个字符宽来输出浮点数,小数部分占d个字符宽 以w个字符宽来输出任何种类的数据 以w个字符宽来输出整数,最少输出m个数字 以w个字符宽来输出T或F的真假值 把输出的位置向右跳过n个位置
把整数转换成八进制来输出,输出会占w个字符宽,固定输出 m个数字, M值可以不给定 把整数转换成十六进制来输出,输出会占w个字符宽,固定输 出m个数字,M值可以不给定
Ow[.m]
Zw[.m]
四、FORTRAN常用内部函数(库函数)
功能 通用名 含义 功能
正弦 余弦 a+ib x1/2 |x| 正切 反正弦 反余弦
10 77
子例程子程序 subroutine举例:
n! 例5:编程求 P 的值。 ( n r )!
integer p,r write(*,*)'n=,r=?' read(*,*)n,r call fac(n,m) m1=m call fac(n-r,m) m2=m p=m1/m2 write(*,*)n,r,p end
10 77
subroutine fac(i,m) m=1 if(i.le.1) goto 77 do 10 k=2,i m=m*k return end
关于: ! N 若不采用循环,还可以采用以下计算程序:
open(1,file=’N!.dat’) write(*,*)’input N=?’ read(*,*)N M=1 I=2 M=M*I I=I+1 if(I.gt.N) goto 10 goto 5 write(1,*) M end
二、FORTRAN基本语句
1、可执行语句
(1) 赋值语句 V(变量)=e(表达式) (2) 流程控制语句 (3) 输入、输出语句 read(u,*), write(u,*)
(2)流程控制语句

①无条件 goto语句 goto k ②算术条件语句 if(e) k1, k2, k3 (数轴记忆法) (e<0) (e=0) (e>0) ③逻辑条件语句 if(e) s
3. 与C语言的不同

不分大小写。 每句末尾不必要写分号。
程序代码命令间的空格没有意义。
与C不同,FORTRAN不使用{ }。
数据类型多出了复数、乘幂运算和逻辑判断类型。 a=cmplx(1.0, 2.0) a=(1.0, 2.0) ! 1+2i b=3.0**(1./5.)
31/ 5 !
• • • • •

错误 a(-b) a*-b (ab)3 a*b**3 sin6t sin6t aex a*e**x 6.8log26.5 6.8*log26.5
alog(x), dlog(x) ,clog(x) alog10(x), dlog(x) max(a1,a2,a3)
ex
lnx log10x
反正切
求共轭 求余 最小值
atan(x), dtan(x)
conjg(x) mod(a1,a2) min(a1,a2,a3)
tg-1(x)
a1/a2余数
关系运算符号: +,-,*,/,** 表达式写法正误比对举例:
/
: kP
代表换行
在没有更多数据时结束输出 K值控制输入输出的Scale
Tn
TLn TRn SP SS
输出的位置移动到本行第n列
输出的位置向左相对移动n列 输出的位置向右相对移动n列 在数值为正时加上“正号” 取消SP
Bw[.m]
把整数转换成二进制来输出,输出会占w个字符宽,固定输出 m个数字, M值可以不给定
算术表达式

逻辑表达式 ④循环do语句 do n i=m1,m2,m3 do n i=m1,m2

⑤继续语句 continue ⑥call s(d1,d2,…,dn) return (在end前)
②算数条件语句: if(e) k1, k2, k3 (e<0) (e=0) (e>0)
2 例1:编程给出 Y 0 2 ( x 0) ( x 0) 的值。 ( x 0)
转 换 到 整 int(x) 型 转换到实 型 转换到复 型 平方根 取绝对值 float(x) cmplx(a,b) sqrt(x), dsqrt(x), cqrt(x) abs(x), dabs(x), cabs(x)
指数
自然对数 常用对数 最大值
exp(x), dexp(x), cexp(x)
相关文档
最新文档