版块导航
正在加载中...
客户端APP下载
论文辅导
调剂小程序
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(860)
>
考研
(135)
>
导师招生
(105)
>
基金申请
(15)
>
考博
(14)
>
虫友互识
(10)
>
硕博家园
(8)
>
博后之家
(5)
>
休闲灌水
(5)
>
招聘信息布告栏
(4)
>
论文道贺祈福
(4)
>
教师之家
(2)
>
找工作
(2)
>
专业外语
(1)
>
资源求助
(1)
>
材料工程
(1)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
程序语言
»
Fortran
»
Fortran90数组学习
2
1/1
返回列表
查看: 686 | 回复: 1
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
jerkwin
专家顾问
(正式写手)
专家经验: +14
应助: 454
(硕士)
金币: 20699.1
散金: 148
红花: 81
帖子: 813
在线: 2648.3小时
虫号: 1023452
注册: 2010-05-19
专业: 理论和计算化学
管辖:
分子模拟
[交流]
Fortran90数组学习
已有1人参与
最近学习了一下Fortran90的数组,主要是参考中科大的教程
http://micro.ustc.edu.cn/Fortran/ZJDing/
。下面是我的一点总结,希望对大家熟悉Fortran的数组有所帮助。
CODE:
[font=Courier New]
数组的定义与引用
两种变量:标量+数组。标量维数为0,数组维数>=1。
1. 数组的定义
类型相同的一组标量数据的有序集合
数组元素类型必须相同,这些元素按某种确定方式排列
与数学上的联系
一维数组:向量(列向量或行向量)
二维数组:矩阵
数组的参数
o 数组的维数(dimension):最小为1,最大为7
o 数组的维长(extent):某一维中元素的个数,可以为0
维长由 维下界:维上界 指定,等于维上界-维下界+1
维下界省略时为默认值1
维上界必须大于维下界的值
维界值可以是正、负、零或任何整型表达式
o 数组的大小(size):所有元素的个数,等于各维长的乘积,可以为0
o 数组的形状(shape):取决于维数与每一维的维长,可由函数shape得到
例:
数组A(10,3,2)的维数为3,维长分别为10、3、2,大小为10×3×2=60,形状为10乘3乘2,或表示成(10,3,2),shape(A)的结果是一维数组,其元素为10,3,2。
数组B(2,2,0)的第三维维长为0,因而大小为0,不能用于存储任何数据。
数组C(2, 0:9, -3:-1, int(-sqrt(45./3.)):int(5/2))为4维数组,大小为2×10×3×6。
数组声明:
o real A(10,2,3) ! 类型说明
o dimension A(10,2,3) ! dimension语句
o allocatable B(:,:) ! allocatable语句
o pointer C(:,:,:) ! pointer语句
o real, dimension(2,5):: D ! 类型说明中的dimension属性
o real, allocatable:: E(:,:,:) ! 类型说明中的allocatable属性
o real, pointer:: F(:,:) ! 类型说明中的pointer属性
声明时数组的维数必须指定的,大小和形状是否需要指定视数组的形式而定
2. 数组的引用
o 数组名 :数组中所有元素,无下标
o 数组元素:数组中某个元素,指定所有下标
o 数组片段:数组中若干元素,不需连续或遵循某个规则,指定部分下标列表,本身也是数组
引用时数组的下标必须用逗号隔开
引用下标的个数要和声明的数组的维数一致
下标是整型表达式,可正、可负、也可为0,但必须在引用的数组的维界之内
例: real A(3,3),B(3,3),C(89),R
B(2,2)=4.5; R=7.O; C(int(R)*2+1)=2.O !给元素B(2,2)和C(15)赋值
A(1,2)=B(int(C(15)),int(sqrt(R))) !元素A(1,2)和元素B(2,2)的值相同
real A(2,3,4),则A(1,2,3)是数组元素,而A(1:2,2,2),A(1,1,4:2:-1),A(1,2:3,(/2,4/))都是数组片段
数组的下标列表有两种:三元下标和向量下标。
o 三元下标[下界]:[上界][:步长]:用三个值分别代表数组片段的下界,上界和步长,以上升或下降的顺序指定数组元素。
若省略下(上)界,缺省值为数组相应维的下(上)维界
若上下界全省略,缺省片段为这个维的全长
三元下标的值可以不在数组的边界以内
三元下标只能算一个下标
对多维数组的数组片段,每一维都可以用三元下标来声明
在语句或过程中引用数组片段时,引用下标的个数必须与声明时的相同
若省略步长,缺省值为1。
步长不能是0。当步长为负值时,数组子片段从上界开始递减至下界
例:real A(10)
A(1:5:2)=3.0 !把元素A(1),A(3),A(5)置为3.0
A(:5:2)=3.O !把元素A(1),A(3),A(5)置为3.0,因为缺省下界为1
A(2::3)=3.O !把元素A(2),A(5),A(8)置为3.0,因为上界缺省值为10
A(7:9)=3.0 !把元素A(7),A(8),A(9)置为3.0,因为缺省步长为1
A(:)=3.0 !和A=3.0相同,将A的所有元素置为3.0
real B(10)
数组片段B(9:2:-2)是由元素B(9),B(7),B(5)和B(3)组成的数组。
数组片段B(3:15:6)是由B(3)和B(9)组成的数组。 REAL A(5,9)则A(1:4:3,6:8:2)=3.0
等价于
A(1,6) A(1,8)
A(4,6) A(4,8)
o 向量下标:利用一个一维整数数组(即向量)来指定数组元素
向量下标的值应该在定义的边界之内
向量下标可以有多个重复的值,此时数组片段称为多对一数组片段
例: real A(10),B(5,5)
integer I(4),J(3)
I=(/5,3,8,2/) !定义向量I
J=(/3,1,5/) !定义向量J
A(I)=3.O !设置元素A(5),A(3),A(8),A(2)的值
B(2,J)=3.O !设置元素B(2,3),B(2,1)和B(2,5)的值
integer :: a(4)=(/0,1,2,3/),b(3)=(/1,4,3/),则a(b)与a同类型,与b同形状,取值为(/0,3,2/)
a(b)可以不是数组片段,而是更大的数组。如上面b为(/2,3,2,3,2,3/)时,a(b)为(/1,2,1,2,1,2/)
character(1) :: symbol(0:1)=(/'F','M'/)
integer :: bit(100)
若bit的元素列为0001101100111...,则symbol(bit)是用{F,M}字符构成的100字节的字符型数组FFFMMFMMFFMMM...。
real A(3,3),B(4)
integer K(4)
K=(/3,1,1,2/) !K矢量有重复值
A=5.0 !设置A的所有元素
B=A(3,K) !数组片段B由下列元素组成:A(3,3),A(3,1),A(3,1),A(3,2)
因为在B(4)或A(3,K)中有重复的元素A(3,1),所以它是多对一数组片段。一个多对一数组片段不能出现在赋值语句的左端[/font]
[
Last edited by jerkwin on 2012-7-27 at 08:39
]
回复此楼
» 猜你喜欢
299求调剂
已经有6人回复
083200学硕321分一志愿暨南大学求调剂
已经有3人回复
初始318分求调剂(有工作经验)
已经有3人回复
二本跨考郑大材料306英一数二
已经有3人回复
化学求调剂
已经有5人回复
一志愿中国石油大学(华东) 本科齐鲁工业大学
已经有3人回复
332求调剂
已经有4人回复
265求调剂
已经有9人回复
328求调剂,英语六级551,有科研经历
已经有8人回复
求调剂
已经有3人回复
高级回复
» 本主题相关价值贴推荐,对您同样有帮助:
菜鸟求助fortran数组声明及子程序的一些问题啊
已经有4人回复
C/C++数组读取
已经有3人回复
FORTRAN90标准函数及IMSL标准函数库
已经有166人回复
fortran 权威指南 英文版 以及fortran的教学ppt
已经有235人回复
编一个fortran程序
已经有17人回复
fortran里一个子程序不运行是怎么回事
已经有13人回复
Fortran程序库
已经有9人回复
fortran数组输出,行与列请教
已经有7人回复
Fortran中数组的使用
已经有4人回复
大家帮我看一个fortran的程序,我总是计算不出正确的结果
已经有20人回复
请教Fortran下如何给二维或三维数组赋初值,谢谢
已经有3人回复
求助Fortran编程
已经有8人回复
Fortran中关于数组的变化
已经有5人回复
【求助】如何写FORTRAN程序实现求平均最近邻距离
已经有34人回复
【求助】求Fortran90编译器?
已经有11人回复
【转帖】intel Fortran编译器的一个“危险”优化
已经有9人回复
【求助】求指点,在Fortran里面,怎样实现“数组维度可调”的数组?
已经有5人回复
【求助】关于matlab的高维数组
已经有6人回复
1楼
2012-07-27 08:33:27
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
slttgb
高级回复
2楼
2012-07-29 22:44:04
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
相关版块跳转
第一性原理
量子化学
计算模拟
分子模拟
仿真模拟
程序语言
我要订阅楼主
jerkwin
的主题更新
2
1/1
返回列表
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
最具人气热帖推荐
[查看全部]
作者
回/看
最后发表
[
考研
]
265求调剂
+9
梁梁校校
2026-03-17
9/450
2026-03-21 02:17
by
JourneyLucky
[
考研
]
一志愿华南师大 070300(化学)304分求调剂
+3
0703武芊慧雪304
2026-03-18
3/150
2026-03-21 00:48
by
JourneyLucky
[
考研
]
299求调剂
+4
shxchem
2026-03-20
5/250
2026-03-21 00:24
by
星空星月
[
考研
]
311求调剂
+5
冬十三
2026-03-18
5/250
2026-03-21 00:16
by
JourneyLucky
[
考研
]
330求调剂
+4
小材化本科
2026-03-18
4/200
2026-03-20 23:13
by
JourneyLucky
[
考研
]
324求调剂
+5
lucky呀呀呀鸭
2026-03-20
5/250
2026-03-20 22:30
by
促天成
[
考研
]
287求调剂
+7
晨昏线与星海
2026-03-19
8/400
2026-03-20 22:19
by
JourneyLucky
[
考研
]
求调剂,一志愿:南京航空航天大学大学 ,080500材料科学与工程学硕,总分289分
+4
@taotao
2026-03-19
4/200
2026-03-20 22:14
by
JourneyLucky
[
考研
]
材料与化工 322求调剂
+4
然11
2026-03-19
4/200
2026-03-20 22:12
by
luoyongfeng
[
考研
]
药学383 求调剂
+3
药学chy
2026-03-15
5/250
2026-03-20 22:11
by
云游重阳
[
考研
]
一志愿西安交通大学 学硕 354求调剂
+3
我想要读研究生
2026-03-20
3/150
2026-03-20 20:13
by
JourneyLucky
[
考研
]
一志愿985,本科211,0817化学工程与技术319求调剂
+10
Liwangman
2026-03-15
10/500
2026-03-19 10:25
by
无际的草原
[
考研
]
0817调剂
+3
没有答案_
2026-03-14
3/150
2026-03-19 09:51
by
Xu de nuo
[
考研
]
0854可跨调剂,一作一项核心论文五项专利,省、国级证书40+数一英一287
+8
小李0854
2026-03-16
8/400
2026-03-18 14:35
by
搏击518
[
考研
]
268求调剂
+8
一定有学上-
2026-03-14
9/450
2026-03-17 17:47
by
laoshidan
[
考研
]
一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项
+6
大火山小火山
2026-03-16
8/400
2026-03-17 15:05
by
无懈可击111
[
论文投稿
]
有没有大佬发小论文能带我个二作
+3
增锐漏人
2026-03-17
4/200
2026-03-17 09:26
by
xs74101122
[
考研
]
0854控制工程 359求调剂 可跨专业
+3
626776879
2026-03-14
9/450
2026-03-16 17:42
by
626776879
[
考研
]
304求调剂
+3
曼殊2266
2026-03-14
3/150
2026-03-16 16:39
by
houyaoxu
[
考研
]
288求调剂
+4
奇点0314
2026-03-14
4/200
2026-03-14 23:04
by
JourneyLucky
信息提示
关闭
请填处理意见
关闭
确定