当前位置:文档之家› (完整版)fortran函数总结,推荐文档

(完整版)fortran函数总结,推荐文档

(完整版)fortran函数总结,推荐文档
(完整版)fortran函数总结,推荐文档

附录C SCILAB 部分函数指令表

(c)LIAMA. All rights reserved.

(注解:本指令表只收集了部分常用指令, 有关全部指令请参照文档文件) + 加

- 减

* 矩阵乘

数组乘 *.

1. 通用指令

^ 矩阵乘方

数组乘方 ^.

\ 反斜杠或左除

help 在线帮助

/ 斜杠或右除

apropos 文档中关键词搜寻

或.\ 数组除/.

ans 缺省变量名以及最新表达式的运

算结果

== 等号

~= 不等号

clear 从内存中清除变量和函数

< 小于

exit 关闭SCILAB

> 大于

quit 退出SCILAB

<= 小于或等于

save 把内存变量存入磁盘

>= 大于或等于

exec 运行脚本文件

&,and 逻辑与

mode 文件运行中的显示格式

|,or 逻辑或

getversion 显示SCILAB 版本

~,not 逻辑非

ieee 浮点运算溢出显示模式选择

: 冒号

who 列出工作内存中的变量名

( ) 园括号

edit 文件编辑器

[ ] 方括号

type 变量类型

{ } 花括号

what 列出SCILAB 基本命令

小数点 .

format 设置数据输出格式

, 逗号

chdir 改变当前工作目录

; 分号

getenv 给出环境值

// 注释号

mkdir 创建目录

= 赋值符号

pwd 显示当前工作目录

' 引号

evstr 执行表达式

' 复数转置号

转置号 '.

ans 最新表达式的运算结果

2.运算符和特殊算符%eps 浮点误差容限, =2 -52

2.22×10

-16

%i 虚数单位= √(-1)

%inf 正无穷大

%pi 圆周率,

π=3.1415926535897....

3. 编程语言结构

abort 中止计算或循环

break 终止最内循环

case 同select 一起使用

continue 将控制转交给外层的for或

while循环

else 同if一起使用

elseif 同if一起使用

end 结束for,while,if 语句

for 按规定次数重复执行语句

if 条件执行语句

otherwise 可同switch 一起使用

pause 暂停模式

return 返回

select 多个条件分支

then 同if一起使用

while 不确定次数重复执行语句

eval 特定值计算

feval 函数特定值计算或多变量计算

function 函数文件头

global 定义全局变量

isglobal 检测变量是否为全局变量error 显示错误信息

lasterror 显示最近的错误信息

sprintf 按格式把数字转换为串warning 显示警告信息

4.基本数学函数

acos 反余弦

acosh 反双曲余弦

acot 反余切

acoth 反双曲余切

acsc 反余割

acsch 反双曲余割

asin 反正弦

asinh 反双曲正弦

atan 反正切

atanh 反双曲正切

cos 余弦

cosh 双曲余弦

cotg 余切

coth 双曲余切

sin 正弦

sinh 双曲正弦

tan 正切

tanh 双曲正切

exp 指数

log 自然对数

log10 常用对数

log2 以2为底的对数

sqrt 平方根

abs 绝对值

conj 复数共轭

imag 复数虚部

real 复数实部

ceil 向上(正无穷大方向)取整

fix 向零方向取整

floor 向下(负无穷大方向)取整

round 四舍五入取整

sign 符号函数

gsort 降次排序

erf 误差函数

erfc 补误差函数

gamma gamma 函数

interp 插值函数

interpln 线性插值函数

intsplin 样条插值函数

smooth 样条平滑函数spline 样条函数quarewave 方波函数

sign 符号函数

double 将整数转换为双精度浮点数5.基本矩阵函数和操作

eye 单位阵

zeros 全零矩阵

ones 全1 矩阵

rand 均匀分布随机阵

genmarkov 生成随机Markov 矩阵linspace 线性等分向量

logspace 对数等分向量

logm 矩阵对数运算

cumprod 矩阵元素累计乘

cumsum 矩阵元素累计和

toeplitz Toeplitz 矩阵

disp 显示矩阵和文字内容

length 确定向量的长度

size 确定矩阵的维数

diag 创建对角阵或抽取对角向量

find 找出非零元素1的下标

matrix 矩阵变维

rot90 矩阵逆时针旋转90度

sub2ind 据全下标换算出单下标

tril 抽取下三角阵

triu 抽取上三角阵

conj 共轭矩阵

companion 伴随矩阵

det 行列式的值

norm 矩阵或向量范数

nnz 矩阵中非零元素个数

null 清空向量或矩阵中的某个元素orth 正交基

rank 矩阵秩

trace 矩阵迹

cond 矩阵条件数

rcond 逆矩阵条件数

inv 矩阵的逆

lu LU分解或高斯消元法

pinv 伪逆

qr QR分解

givens Givens 变换

linsolve 求解线性方程

lyap Lyapunov 方程

hess Hessenberg 矩阵

poly 特征多项式

schur Schur 分解

expm 矩阵指数

expm1 矩阵指数的Pade逼近

expm2 用泰勒级数求矩阵指数

expm3 通过特征值和特征向量求矩阵

指数

funm 计算一般矩阵函数

logm 矩阵对数

sqrtm 矩阵平方根

6. 特性值与奇异值

spec 矩阵特征值

gspec 矩阵束特征值

bdiag 块矩阵, 广义特征向量eigenmarkov 正则化Markov 特征向量pbig 特征空间投影

svd 奇异值分解

sva 奇异值分解近似

7. 矩阵元素运算

cumprod 元素累计积

cumsum 元素累计和

hist 统计频数直方图

max 最大值

mean 平均值median 中值

min 最小值

prod 元素积

sort 由大到小排序

std 标准差

sum 元素和

trapz 梯形数值积分

corr 求相关系数或方差

8. 稀疏矩阵运算

sparse 稀疏矩阵(只存储非零元素)

adj2sp 邻接矩阵转换为稀疏矩阵

full 稀疏矩阵转换为全矩阵

mtlb_sparse 将SCILAB 稀疏矩阵转换为MATLAB稀疏矩阵格式

sp2adj 稀疏矩阵转换为邻接矩阵speye 稀疏矩阵方式单位阵

sprand 稀疏矩阵方式随机矩阵spzeros 稀疏矩阵方式全零阵

lufact 稀疏矩阵LU分解

lusolve 稀疏矩阵方程求解

spchol 稀疏矩阵Cholesky分解

9. 输入输出函数

diary 生成屏幕文本记录

disp 变量显示

file 文件管理

input 用户键盘输入

load 读已存的变量

mclose 关闭文件

mget 读二进制文件

mgetl 按行读ASCII码文件

mgetstr 读字符串中单个字

mopen 打开文件

mput 写二进制文件

mfscanf 读ASCII 码文件

print 将变量记录为文件

read 读矩阵变量

save 存变量为二进制文件

strartup 启动文件

write 按格式存文件

xgetfile 对话方式获取文件路径

x_dialog 建立Xwindow参数输入对话框

Tk_Getvar 得到Tk文件变量

Tk_EvalFile 执行Tk 文件

10. 函数与函数库操作

deff 在线定义函数

edit 函数编辑器

function 打开函数定义

functions SCILAB 函数或对象

genlib 在给定目录下建立所有文件的

函数库

get_function_path 读函数库的文件存储目录路径

getd 读函数库中的全部文件

getf 在文件中定义一个函数

lib 函数库定义

macro SCILAB函数或对象

macrovar 输入变量个数

newfun 输出变量个数

11. 字符串操作

code2str 将SCILAB数码转换为字符串convstr 字母大小转换

emptystr 清空字符串

grep 搜寻相同字符串

part 字符提取

str2code 将字符串转换为SCILAB数码

string 字符串转换strings SCILAB 对象, 字符串strcat 连接字符

strindex 字符串的字符位置搜寻

strsubst 字符串中的字符替换

12. 日期与时间

date 日期

getdate 读日期与时间

timer CPU时间计时

13. 二维图形函数

plot2d 直角坐标下线性刻度曲线

champ 2 维向量场

champ1 由颜色箭头表示的2维向量场contour2d 等高线图

errbar 曲线上增加误差范围框线条

grayplot 应用颜色表示的表面

xgrid 画坐标网格线

histplot 统计频数直方图

Matplot 散点图阵列

14. 三维图形函数

plot3d 三维表面

plot3d1 用颜色或灰度表示的三维表面param3d 三维中单曲线

param3d1 三维中多曲线

contour 三维表面上的等高线图

hist3d 三维表示的统计频数直方图

geom3d 三维向二维上的投影

15. 线条类图形

xpoly 单线条或单多边形

xpolys 多线条或多各多边形

xrpoly 正多边形

xsegs 非连接线段

xfpoly 单个多边形内填充

xfpolys 多个多边形内填充

xrect 矩形

xfrect 单个矩形内填充

xrects 多个矩形内填充

xarc 单个弧线段或弧园

xarcs 多个弧线段或弧园

xfarc 单个弧线段或弧园填充

xfarcs 多个弧线段或弧园填充

xarrows 多箭头

16. 图形注释, 变换

xstring 图形中字符

xstringb 框内字符

xtitle 图形标题

xaxis 轴名标注

plotframe 图形加框并画坐标网格线

isoview 等尺寸比例显示(原图形窗口不

改变)

square 等尺寸比例显示(原图形窗口改

变)

xsetech 设置小窗口

xchange 转换实数为图形象素坐标值

subplot 设置多个子窗口

17. 图形颜色及图形文字

colormap 应用颜色图

getcolor 交互式选择颜色图

addcolor 增加新色于颜色图graycolormap 线性灰度图hotcolormap 热色(红到黄色)颜色图

xset 图形显示方式设定

xget 读当前图形显示方式设定

getsymbol 交互式选择符号和尺寸

18. 图形文件及图形文字

xsave 将图形存储为文件

xload 从磁盘中读出图形文件

xbasimp 将图形按PS文件打印或存储为

文件

xs2fig 将图形生成Xfig 格式文件

xbasc 取消图形窗及其相关内容

xclear 清空图形窗

driver 选择图形驱动器

xinit 图形驱动器初始化

xend 关闭图形

xbasr 图形刷新

replot 更改显示范围后的图形刷新

xdel 关闭图形

xname 改变当前图形窗名称

19. 控制分析用图形

bode 伯德图坐标

gainplot 幅值图坐标(伯德图中的幅值图)

nyquist 奈奎斯特图

m_circle M-圆图

chart 尼库拉斯图

black Black-图

evans 根轨迹图

sgrid s 平面图

plzr 零-极点图

zgrid z 平面图

20. 图形应用中的其它指令

graphics 图形库指令表

xclick 等待鼠标在图形上的点击输入

locate 由鼠标点击读入图形中的多点

位置坐标

xgetmouse 由鼠标点击读入图形中的当前点

位置坐标

21. 系统与控制

abcd 状态空间矩阵

cont_mat 可控矩阵

csim 线性系统时域响应

dsimul 状态空间的离散时域响应

feedback 反馈操作符

flts 时域响应(离散、采样系统〕

frep2tf 基于传递函数的频域响应

freq 频域响应

g_margin 幅值裕量

imrep2ss 基于状态空间的脉冲响应

lin 线性化操作

lqe Kalman 滤波器

lqg LQG补偿器

lqr LQ补偿器

ltitr 基于状态空间的离散时域响应

obscont 基于观测器的控制器

observer 观测器

obsv_mat 观测矩阵

p_margin 相位裕量

phasemag 相位与幅值计算

ppol 极点配置

repfreq 频域响应

ricc Riccati 方程

rtitr 基于传递函数的离散时域响应

sm2ss 系统矩阵到状态空间变换

ss2ss 反馈连接的状态空间到状态空

间变换

ss2tf 状态空间到传递函数变换

stabil 稳定性计算

tf2ss 传递函数到状态空间变换time_id SISO系统最小方差辨识22. 鲁棒控制

augment 被控对象增广操作

bstap Hankel 矩阵近似

ccontrg H∞控制器

dhnorm 离散H∞范数

h2norm H2 范数

h_cl 闭环矩阵

h_inf H∞控制器

h_norm H∞范数

hankelsv Hankel 矩阵奇异值

leqr H∞控制器的LQ增益

linf 无穷范数

riccati Riccati 矩阵

sensi 敏感函数

23. 动态系统

arma ARMA 模型

arma2p 基于AR模型中获得多项式矩阵armac ARMAX 辨识

arsimul ARMAX系统仿真

noisegen 噪声信号发生器

odedi 常微分方程仿真检测

prbs_a 伪随机二进制序列发生器reglin 线性拟合

24. 系统与控制实例

artest Arnold 动态系统

bifish 鱼群人口发展的离散时域模型boucle 具有观测器的动态系统相位图chaintest 生物链模型

gpech 渔业模型

fusee 登陆火箭问题

lotest Lorennz 吸引子

mine 采矿问题

obscontl 可控可观系统

portr3d 三维相位图

portrait 二维相位图

recur 双线性回归方程

systems 动态系统

tangent 动态系统的线性化

tadinit 动态系统的交互初始化

25. 非线性工具(优化与仿

真〕

bvode 边界值问题的常微分方程

dasrt 隐式微分方程过零解

dassl 代数微分方程

datafit 基于测量数据的参数辨识derivative 导数计算

fsolve 非线性函数过零解

impl 线性微分方程

int2d 二维定积分

int3d 三维定积分

intg 不定积分

leastsq 非线性最小二乘法

linpro 线性规划

lmisolver 线性不等矩阵

ode 常微分方程

ode_discrete 离散常微分方程ode_root 常微分方程根解odedc 连续/离散常微分方程optim 非线性优化

quapro 线性二次型规划semidef 半正定规划

26. 多项式计算coeff 多项式系数coffg 多项式矩阵逆

degree 多项式阶数

denom 分母项

derivat 有理矩阵求导

determ 矩阵行列式值

factors 因式分解

hermit Hermit 型

horner 多项式计算

invr 有理矩阵逆

lcm 最小公倍数

ldiv 多项式矩阵长除

numer 分子项

pdiv 多项式矩阵除

pol2des 多项式矩阵到表达式变换pol2str 多项式到字符串变换polfact 最小因式

residu 余量

roots 多项式根

simp 多项式化简

systmat 系统矩阵

27. 信号处理

%asn 椭圆积分

%k Jacobi 完全椭圆积分

%sn Jacobi 椭圆函数

analpf 模拟量低通滤波器buttmag Butterworth 滤波器响应cepstrum 倒谱计算

cheb1mag Chebyshev 一型响应cheb2mag Chebyshev 二型响应

chepol Chebyshev 多项式

convol 卷积

corr 相关, 协方差

cspect 谱估计(应用相关法)

dft 离散富立叶变换

fft 快速富立叶变换

filter 滤波器建模

fsfirlin FIR滤波器设计

hank 协方差矩阵到Hankel矩阵变换

hilb Hilbert 变换

iir IIR数字滤波器

intdec 信号采样率更改

kalm Kalman 滤波器更新

mese 最大熵谱估计

mfft 多维快速富立叶变换

mrfit 频率响应拟合

phc Markov 过程

srkf Kalman 滤波器平方根

sskf 稳态Kalman 滤波器

system 观测更新

wfir 线性相位FIR滤波器

weiener Weiener(维纳)滤波器

window 对称窗函数

yulewalk 最小二乘滤波器

zpbutt Buthererworth 模拟滤波器

zpch1 Chebyshev 模拟滤波器

28. 音频信号

analyze 音频信号频域图

auread 读*.au 音频文件

auwrite 写*.au 音频文件

lin2mu 将线性信号转换为μ率码信号loadwave 取*.wav 音频文件

mapsound 音频信号图示

mu2lin 将μ率码信号转换为线性信号

playsnd 音频信号播放

savewave 存*.wav 音频文件

wavread 读*.wav 音频文件

wavwrite 写*.wav 音频文件

29. 语言与数据转换工具ascii 字符串的ASCII码excel2sci 读ASCII 格式的Excel 文件

fun2string 将SCILAB 函数生成ASCII 码

mfile2sci 将MATLAB 的M 格式文件转换为

SCI格式文件

mtlb_load 取MATLAB第4版本文件中变量

matlb_save 按MATLAB 第4 版本文件格式存变量

pol2tex 将多项式转换为TeX格式

sci2for 将SCILAB 函数转换为FORTRAN

格式文件

texprint 按TeX 格式输出SCILAB 对象translatepaths 将子目录下的所有MATLAB文件转换为SCI文件格式

fortran语法手册

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语句

FORTRAN内部函数库

FORTRAN内部函数 用FORTRAN解题往往要用到一些专门运算,如求三角函数sinx, cosx,对数lnx,指数ex,求一组数中最大数和最小数等。 FORTRAN提供了一些系统函数(称为内部函数)来完成这些运算。程序设计者不必自己设计进行这些运算的语句组(即程序段或子程序),只需写出一个函数的名字以及给出一个或若干个自变量,就可以得到所需的值,例如: SQRT(4.0)求出4.0的平方根, SIN(2.0)求出2(弧度)的正弦值, EXP(3.5)求出e3.5, LOG(3.0)求出3, 常用的函数如下表,FORTRAN77提供的全部函数明细见FORTRAN77内部函数。 函数名含义应用例子相当于数学上的运算 ABS 求绝对值ABS(A) |a| EXP 指数运算EXP(A) e^a SIN 正弦值SIN(X) sin x COS 余弦值COS(X) cos x ASIN 反正弦ASIN(X) sin^(-1)a ACOS 反余弦ACOS(X) cos-1a TAN 正切TAN(X) tan x ATAN 反正切ATAN(A) tan^(-1)a LOG 自然对数LOG(A) lna,或loge(a) LOG10 常用对数LOG10(A) log10a INT 取整INT(A) int(a),取a的整数部分 MOD 求余MOD(A1,A2) a - int(a1/a2)*a2 SIGN 求符号SIGN(A1,A2) |a1|(若a2>0) -|a1|(若a2<0) REAL 转换为实型REAL(I) MAX 求最大值MAX(A1,A2,A3) max(a1,a2,a3) MIN 求最小值 MIN(A1,A2,A3) min(a1,a2,a3) 说明: (1)FORTRAN77将这些系统函数分别编成一个个子程序,组成函数库,存贮于外部介质(如磁盘)上。在完成源程序的编译之后,用LINK命令实现连接,即将已翻译成二进制指令的目标程序与函数库连接。也就是将程序中出现函数名的地方用函数库中相应的一组指令代入之,组成一个统一的“可执行目标块”。例如,程序中出现一个SIN函数,在连接时就将一组二进制指令(它们是实现求正弦值的运算的)直接插入到程序中出现SIN的地方。由于是插入到程序内部的,所以称为“内部函数”。 (2)一个内部函数要求一个或多个自变量。例如,SQRT函数只能有一个自变量SQRT(4.6),MOD函数要求两个自变量MOD(8,3),MAX和MIN函数要求两个以上自变量MAX(6,-8,10),MIN(-6,8,0)。当自变量个数规定为2个时,自变量的顺序不应任意颠倒,MOD(8,3)表示8被3除的余数,其值为2,而MOD(3,8)则表示3被8除的余数,其值为3。当自变量个数>2时,自变量的顺序无关,MAX(6,8,10)和MAX(8,10,6)结果是一样的。

(完整)Fortran经典编程语言笔记(你值得拥有)

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基本函数

FORTRAN 90标准函数(一) (2012-07-03 17:14:57) 转载▼ 分类:学习 标签: fortran 函数 教育 符号约定: ●I代表整型;R代表实型;C代表复型;CH代表字符型;S代表字符串;L代表逻辑型;A代表数组;P代表指针;T代表派生类型;AT为任意类型。 ●s:P表示s类型为P类型(任意kind值)。s:P(k)表示s类型为P类型(kind值=k)。 ●[…]表示可选参数。 ●*表示常用函数。

注:三角函数名前有C、D的函数为复数、双精度型函数。 注:指数函数名、平方根函数名、对数函数名前有C、D的函数为复数、双精度型函数。 表4 参数查询函数

atan2函数的值域是多少?我从网上找到一个fortran函数的日志,说此值域是-π~π,但正常反正切函数的值域应该是-π/2~π/2。对atan2函数不够了解,所以不知道你的答案对不对,我个人认为不对。我是用正常的反正切函数atan(v/u)来算的: FORTRAN: if (u>0..and.v>0.) dir=270-atan(v/u)*180/pi if (u<0..and.v>0.) dir=90-atan(v/u)*180/pi if (u<0..and.v<0.) dir=90-atan(v/u)*180/pi if (u>0..and.v<0.) dir=270-atan(v/u)*180/pi if (u==0..and.v>0.) dir=180 if (u==0..and.v<0.) dir=0 if (u>0..and.v==0.) dir=270 if (u<0..and.v==0.) dir=90 if (u==0..and.v==0.) dir=999 其中uv等于零的五种情况要单独挑出来,不然程序会有瑕疵。atan函数换成atand函数的话直接是度数,不用*180/pi 我四个象限和轴都试了,应该没错。 最需要注意的问题,一个是函数值域,另一个是uv矢量方向和风向是反着的,并且风向角度数是从正Y轴开始顺时针算,和三角函数里度数从正X轴开始逆时针算不一样。

Fortran常用函数

1、RANDOM_NUMBER Syntax ['sint?ks] n. 语法 CALL RANDOM_NUMBER (harvest结果) Intrinsic Subroutine(固有子程序):Returns a pseudorandom number greater than or equal to zero and less than one from the uniform distribution. 返回大于或等于0且小于1,服从均匀分布的随机数 2、RNNOA/ DRNNOA (Single/Double precision) Generate pseudorandom numbers from a standard normal distribution using an acceptance/rejection method. 产生服从标准正态分布的随机数 Usage(用法) CALL RNNOA (NR, R) Arguments(参数) NR— Number of random numbers to generate. (Input) 要产生随机数的个数 R— Vector of length NR containing the random standard normal deviates. (Output) 输出长度为NR,随机正态分布的向量 Comments(注解) The routine RNSET can be used to initialize the seed of the random number generator. The routine RNOPT can be used to select the form of the generator. 程序RNSET可以用来初始化随机数发生器的种子 Example In this example, RNNOA is used to generate five pseudorandom deviates from a standard normal distribution. INTEGER ISEED, NOUT, NR REAL R(5) EXTERNAL RNNOA, RNSET, UMACH C CALL UMACH (2, NOUT) NR = 5 ISEED = 123457 CALL RNSET (ISEED) CALL RNNOA (NR, R) WRITE (NOUT,99999) R 99999 FORMAT (' Standard normal random deviates: ', 5F8.4) END Output Standard normal random deviates: 2.0516 1.0833 0.0826 1.2777 -1.2260

FORTRAN知识点总结

F O R T R A N 第2章FORTRAN90基础知识: 程序单元的概念: fortran90程序是一种分块形式的程序,整个程序由若干程序单元块组成。每个程序只有一个主程序单元。各单元体的程序体形式上相同。 程序单元可以是主程序、子程序(外部过程或内部过程)、模块MODULE (供其他程序单元引用即把该程序单元内的全部语句复制到程序单元中)或块数据程序单元BLOCK 。 语言元素:指在程序设计中用到的基本成分,如字符集、常量、变量、记号(标号、关键字、名字、常数、运算符和定界符)以及其他的基本结构等。 字符集:英文字母、阿拉伯数字、下划线、21个特殊字符($和?没有规定用法)。 数据结构: 整型INTEGER (34-2下划线后面是种别参数),n 位字长的计算机的数据表示范围一般为12~211-+---n n ,种别参数由内在询问函数KIND 送回,种别值提供的最小范围由内在函数SELECTED-INT-KIND 送回,表示十进制幂的范围由内在函数RANGE 送回; 实型REAL ,小数形式和指数形式;复型COMPLEX (种别类

型参数值取实部与虚部中较大者); 字符型CHARACTER,由一对单撇号或双撇号之间的字符序列组成; 逻辑型LOGICAL。 派生数据类型TYPE; 数组INTEGER,DIMENSION(1,50)::A,可直接对数组元素进行运算如3*A,SQRT(A); 字符子串,在字符串CHARACTER(LEN=80)::ROW中,ROW(1:3)就表示字符串ROW中第1到第3个元素组成的子串。 变量名的命名规则:不能超过31个字符;组成成分是字母、数字、下划线;第一个字符必须是字母。 第3章基本语句: 类型说明语句:类型说明(种别说明),属性说明::变量名表 尽量避免把两个实数作相等或不相等的比较。淘汰隐式说明IMPLICIT NONE 种别说明:种别参数即对可移植数据精度和范围进行选择的机制 KIND(X) 返回变元X的种别参数值 SELECTED-REAL-KIND(n,m) 产生一个种别值,它表示某一精度和范围。N指十进制有效位数,m指明值范围内以10为底的幂次。

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库参考

第3 章FORTRAN 77 和VMS 内函数 本章列出了FORTRAN 77 f95 接受的一系列内函数,旨在帮助将传统的FORTRAN 77 程序迁移至Fortran 95。 在f95 中,本章列出的所有FORTRAN 77 和VMS 函数以及前一章列出的所有Fortran 95 函数都识别为内函数。为了帮助从传统的FORTRAN 77 程序迁移至f95,使用-f77=intrinsics 进行编译会让编译器只将FORTRAN 77 和VMS 函数识别为内函数,但Fortran 95 函数不会识别为内函数。 属于Sun 扩展的ANSI FORTRAN 77 标准的内函数标有¤ 符号。使用非标准内函数和库函数的程序可能无法移植到其他平台。 内函数在接受多种数据类型的参数时,有通用名称和专用名称。通常,通用名称返回与参数具有相同数据类型的值。但也有一些例外,如类型转换函数(表3–2)和查询函数(表3–7)。这些函数也可以通过函数的某个专用名称进行调用,以便处理专用参数数据类型。 对于处理多个数据项的函数(例如sign(a1,a2)),所有数据参数的类型必须相同。 下表按以下几方面列出FORTRAN 77 内函数: 内函数-描述函数的作用 定义-数学定义 参数数量-函数接受的参数的数量 通用名称-函数的通用名称 专用名称-函数的专用名称 参数类型-与每个专用名称关联的数据类型 函数类型-针对专用参数数据类型返回的数据类型 注– 编译器选项-xtypemap 会更改变量的缺省大小,并且对内在引用产生影响。请参见3.4 备注以及《Fortran 用户指南》中有关缺省大小和对齐方式的介绍。 3.1 算术和数学函数 本节详细介绍算术函数、类型转换函数、三角函数以及其他函数。“a”代表函数的单个参数,“a1”和“a2”代表两个参数函数的第一个参数和第二个参数,“ar”和“ai”代表函数的复数参数的实部和虚部。 3.1.1 算术函数

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=)的语法格式声明字符变量的长度。

常用基本函数

R语言基本函数 一、数据管理 vector:向量 numeric:数值型向量 logical:逻辑型向量 character;字符型向量 list:列表 data.frame:数据框 c:连接为向量或列表 length:求长度 subset:求子集 seq,from:to,sequence:等差序列 rep:重复 NA:缺失值 NULL:空对象 sort,order,unique,rev:排序 unlist:展平列表 attr,attributes:对象属性 mode,typeof:对象存储模式与类型 names:对象的名字属性 二、字符串处理 character:字符型向量 nchar:字符数 substr:取子串 format,formatC:把对象用格式转换为字符串paste,strsplit:连接或拆分 charmatch,pmatch:字符串匹配 grep,sub,gsub:模式匹配与替换 三、复数 complex,Re,Im,Mod,Arg,Conj:复数函数 四、因子 factor:因子 codes:因子的编码 levels:因子的各水平的名字 nlevels:因子的水平个数 cut:把数值型对象分区间转换为因子 table:交叉频数表 split:按因子分组 aggregate:计算各数据子集的概括统计量 tapply:对“不规则”数组应用函数 数学 一、计算 +, -, *, /, ^, %%, %/%:四则运算 ceiling,floor,round,signif,trunc,zapsmall:舍入 max,min,pmax,pmin:最大最小值 range:最大值和最小值 sum,prod:向量元素和,积 cumsum,cumprod,cummax,cummin:累加、累乘 sort:排序 approx和approx fun:插值 diff:差分 sign:符号函数 二、数学函数 abs,sqrt:绝对值,平方根 log, exp, log10, log2:对数与指数函数 sin,cos,tan,asin,acos,atan,atan2:三角函数 sinh,cosh,tanh,asinh,acosh,atanh:双曲函数 beta,lbeta,gamma,lgamma,digamma,trigamma,tetragamma,pentagamma,choose ,lchoose:与贝塔函数、伽玛函数、组合数有关的特殊函数 fft,mvfft,convolve:富利叶变换及卷积 polyroot:多项式求根 poly:正交多项式 spline,splinefun:样条差值 besselI,besselK,besselJ,besselY,gammaCody:Bessel函数 deriv:简单表达式的符号微分或算法微分

fortran语法手册

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是世界上最早出现的高级编程语言,是工程界最常用的编程语言,它在科学计算中(如航空航天、地质勘探、天气预报和建筑工程等领域)发挥着极其重要的作用。经过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中批处理实现

********************************************* fortran中批处理命令的实现函数: 利用systemqq命令(需要调用DFLIB 数据库) ********************************************* 例1: USE DFLIB character*100 CMD LOGICAL(4) res CMD="dir/a-d/b/s "//trim(fPath)//" >"//trim(outPut) res=SYSTEMQQ(CMD) 例2: USE DFLIB LOGICAL(4) result result = SYSTEMQQ('copy e:\dir.txt e:\test\dir.txt') !将e:\dir.txt 复制到e:\test\dir.txt文件中。!****************实例3:复制文件************************* 例3: programmain_pro USE DFLIB implicit none integer,parameter::sta_num=123 character(5),dimension(sta_num)::sta_ID character(500)::filein,fileout character(5000)::cmd logical(4)::judge

integer::status,is open(1,file='山东.txt',status='old',action='read',iostat=status) read(1,*) do is=1,sta_num read(1,*) sta_ID(is) filein='Z:\data\降水逐小时数据-戴至修\precip_data\'//sta_ID(is)//'_precip.txt' open(2,file= filein,status='old',action='read',iostat=status) if(status/=0) goto 1000 fileout='Z:\data\降水逐小时数据-戴至修\山东省-降水数据\'//sta_ID(is)//'_precip.txt' cmd='copy '//filein//' '//fileout judge=SYSTEMQQ( cmd) 1000 continue enddo end program

fortran90-知识点整理

Fortran90关于变量说明的新功能: 1.在变量说明的同时,可以给变量赋初值。 INTEGER::I=5,J=126 REAL::X=7.2,Z,W=774.2 2.在说明变量的同时也可说明其种别 REAL(KIND=4)::X,Y 或REAL(4)::X,Y 3.在说明变量的同时,还可说明变量的属性 INTEGER,PARAMETER::I=5,J=123 Ps :PARAMETER 属性 (1)功能:用一个符号代表一个常量,称为符号常量(常数) (2)写法: Real,Parameter ::G=9.8 &&说明类型时赋值 (3)位置:位于可执行语句之前 REAL,DIMENSION(1:10)::A 2.3.6 派生数据类型 根据需要而由基本数据类型定义新的数据类型。在一个派生类型中可包含多个基本类型。 如:TYPE STUDENT (定义开始) CHARACTER(LEN=20)::DEPARTMENT CHARACTER(LEN=10)::CLASS CHARACTER(LEN=15)::NAME INTEGER::NUMBER (成员定义) END TYPE STUDENT (定义结束)

派生类型变量的定义: TYPE(STUDENT)::PERSON 变量的赋值: PERSON=(”COMPUTER”,”92_2”,”LI LIN”,21) 成员的表示: PERSON%CLASS=“92_2” PERSON%NAME=“LI LIN” 主程序其他限制 主程序的可执行部分不能包含有RETURN语句或者ENTRY语句。 程序名对可执行程序是全局的,而且不得于该可执行程序中的任何其它程序单元名、外部过程名或公用块名相同,也不得于主程序内的任何局部名相同。 在主程序的作用范围内的说明不得包含OPTIONAL语句、INTENT语句、PUBLIC语句或它们的等价属性,在主程序内SAVE语句不起作用。 主程序内的任何内部过程的定义必须跟在CONTAINS语句之后。 2.3.2 子程序 子程序是可以完成某一独立算法或功能的程序单元,但它功能的具体体现要通过主程序(或子程序)的调用来实现。 按子程序与主程序的位置关系分为内部过程和外部过程。 2.4.3 模块 模块也是一种在程序单元之外独立编写的程序单元。它有独特的形式,即模块程序单元内没有可执行语句,除了说明语句外,最多包含内部过程。模块的主要作用是供其它程序单元引用。 程序单元引用模块,实际是将模块内的全部语句复制到本程序单元。因此模块起共享及复制的作用。 模块的引用采用语句: USE 模块1,模块2,…

fortran用法总结

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

fortran语言内部函数

附录 FORTRAN 90标准函数 符号约定: ●I代表整型;R代表实型;C代表复型;CH代表字符型;S代表字符串;L代表逻辑型;A代表数组;P代表指针;T代表派生类型;AT为任意类型。 ●s:P表示s类型为P类型(任意kind值)。s:P(k)表示s类型为P类型(kind值=k)。 ●[…]表示可选参数。 ●*表示常用函数。 表1 数值和类型转换函数 函数名说明 ABS(x)*求x的绝对值∣x∣。x:I、R,结果类型同x; x:C,结果:R AIMAG(x)求x的实部。x:C,结果:R AINT(x[,kind])*对x取整,并转换为实数(kind)。x:R, kind:I,结果:R(kind) AMAX0(x1,x2,x3,…)*求x1,x2,x3,…中最大值。x I:I,结果:R AMIN0(x1,x2,x3,…)*求x1,x2,x3,…中最小值。x I:I,结果:R ANINT(x[,kind])*对x四舍五入取整,并转换为实数(kind)。x:R, kind:I,结果:R(kind) CEILING(x)*求大于等于x的最小整数。x:R,结果:I CMPLX(x[,y][,kind]))将参数转换为x、(x,0.0)或(x,y)。x:I、R、C, y:I、R,kind:I,结果:C(kind) CONJG(x)求x的共轭复数。x:C,结果:C DBLE(x)*将x转换为双精度实数。x:I、R、C,结果:R(8) DCMPLX(x[,y])将参数转换为x、(x,0.0)或(x,y)。x:I、R、C, y:I、R,结果:C(8) DFLOAT(x)将x转换为双精度实数。x:I,结果:R(8) DIM(x,y)*求x-y和0中最大值,即MAX(x-y,0)。x:I、R, y的类型同x,结果类型同x DPROD(x,y)求x和y的乘积,并转换为双精度实数。x:R, y:R,结果:R(8)

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学习中的一些小心得

FORTRAN 心得 第一部分:一些小心得 1 Fortran不区分大小写 2 Fortran有5种基本数据类型,integer,real, character, logical, complex 3 fortran fixed format格式中的变量赋初值一般用DATA,因为它不能用:: 4 real(kind=8) a这种格式只使用于Fortran90,Fortran77中要使用real*8或real(8) 5 FORTRAN中FREE与FIXED两种格式do循环的区别: Fortran 95使用end do来结束循环。 : Fortran 77使用DO循环要麻烦一点,它不使用END DO来结束循环,而是使用行号来结束循环,程序代码要在DO的后面写清楚这个循环到哪一行程序代码结束。 Fortran 77中,经常会使用CONTINUE这个命令来结束循环。因为CONTINUE这个命令没有实际的用途,刚好可以拿来做封装使用。 6 循环的流程控制: 循环中的cycle命令相当于c++里的continue命令,用于结束一次循环 循环中的exit命令好比c里面的break,用于结束循环 7 不使用do循环,单纯用GOTO语句也能设计循环程序,但不推荐使用GOTO语句 7 fortran有等价声明:即用equivalence(a,b),这样使得a,b使用同一块内存,这样可以节省内存,有时可精简代码。 、 8 fortran77中只能用单引号。(还有疑问,因为fixed format能用双引号) 9 逻辑运算符 == /= > >= < <= !Fortran90用法 .EQ. .NE. .GT. GE. .LT. .LE. !Fortran77用法 9 PAUSE,CONTINUE,STOP pause 暂停程序执行,按enter可继续执行 continue 貌似没什么用处,可用作封装程序的标志 % STOP 命令用来结束程序,要谨慎使用 10 数组元素之间要用逗号分隔,而不能像matlab一样既可以用逗号也可以用空格,fortran 的数组元素之间不能用空格。 11 数组的声明: Fortran 77中数组的声明,必须使用DIMENSION命令 Integer a; !先声明a是整型 Dimension a(10) !再声明a是大小为10的数组 Fortran 95中可以用简单的方法: `

相关主题
文本预览
相关文档 最新文档