Fortran的点点滴滴——数组
数组(array)是一组类型完全相同、且用单个名字来引用的变量或常量,这组数组占用计算机内存中的连续若干位置,数组中的单个元素称为数组元素。Fortran中数组是一个非常有用的操作数据工具,本文将简略介绍数组的一些知识。
1、声明数组
数组使用之前,它包含的元素类型和个数必须用类型声明语句来向编译机声明。数组的声明大致有几种,下面以声明长度为10的实型一维数组vec为例:
REAL :: vec(10)
REAL,DIMENSION(10) :: vec
2、数组的使用
上面声明了数组vec,使用的时候为如下格式:
PROGRAM MAIN REAL,DIMENSION(10) :: VEC INTEGER :: I !对于整个数组进行操作 VEC = 0.0 !操作单个元素 VEC(1) = 1.0 !循环操作数组 DO I = 0,1 VEC(I) = REAL(I) END DO END PROGRAM
3、多维数组
多维数组定义和使用格式如下:
PROGRAM MAIN INTEGER :: MAX(2,3) MAX = 0 MAX(1,2) = 1.0 END PROGRAM
4、可分配数组
编制程序时候,可能会出现在声明数组的时候并不知道需要多大的长度,如果申请一个特别的数组尽管可以解决此类问题,但是未免太耗内存,而且申请一个特别大的自动数组会导致段错误,为止,Fortran提供了可分配数组,如下为其使用方法:
PROGRAM MAIN !声明数组 REAL,ALLOCATABLE :: VEC(:) INTEGER :: ISTATUS !申请数组大小 ALLOCATE( VEC(10) , STAT = ISTATUS) VEC(1:3) = 0.1 END PROGRAM
上面代码中,"STAT = 子句"是可选的,如果出现这一句,将返回一个整数状态值,分配成功状态为0。
语句"VEC(1:3) = 0.1"则是为第1-3个元素进行操作。
关于数组的使用内容还有很多,若大家有什么需要,可以给我留言,我后续将会补上。