1、数组片段
Fortran中引用数组有三种方法:
数组名 代表数组中的所有元素
数组元素 代表数组中的某个元素
数组片段 代表数组中的若干元素,可以是连续的,也可以是分离的
1.1连续片段方法
数组名(下标偶对),下标偶对表示下标的起始和终止位置。
例如A(3:6)= 0;
print * ,A(3:6)
1.2 下标三元法,可以把不连续的元素组成数组片段。
格式:数组名(e1:e2:e3) ,其中e1表示起始下标,e2表示终止下标, e3表示间隔(步长).
e1省略时表示从下界开始,e2省略时表示到上界结束, e3省略时表示间隔为1。
例如: A (10:30:2),A(:20:4),A(8::10)
2、数组构成器及用途
数组构成器是左右两端有 "(/" 和 "/)" 定界的同类型数据的集合。
用途:可以代替DO循环的繁琐形式给数组赋初值,一般性赋值。
例如:有数组A(1:4),A = (/1.1,2.2,3.3,4.4/), 则
A(1)=1.1 , A(2)= 2.2 , A(3)=3.3 ,A(4)=4.4
常见形式有
(1)隐含DO法
A = (/ (sqrt(I),I=1,4) /)
(2)数组元素
A = (/ v(3),v(5),v(6) /)
(3)数组片段
A = (/ V(3:9:3) /)
3、数组的形式
(1)常数组
普通的数组
(2)可调数组
形式:
可以在维界表达式中出现整型变量
例如real,dimension(N:M)::C ,这里M,N是变量
用处:只可以在子程序中作虚数组用,并且维界变量必须列入程序的虚元中。
例如 subroutine sub(C,M,N)
real , dimension(N:M)::C
(3)假定形状数组
形式:说明时不出现维界,只有冒号,例如:real, dimension(:)::C,(一维)或者real,dimension(:,:)::D,(二维)
用处:只可以在子程序中作虚数组用,用于和实数组结合,结合后自动具有实数组的结构。
(4)动态数组
维界可以在程序执行过程中改变。
使用步骤:
a、说明:real,dimension(:),allocatable::AL1,AL2
b、分配内存:allocate(AL1(M),AL2(6:N)).则AL1为AL1(1:M),AL2为AL2(6:N)
c、用deallocate语句释放内存:deallocate(AL1,AL2)