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个元素进行操作。

关于数组的使用内容还有很多,若大家有什么需要,可以给我留言,我后续将会补上。

posted @ 2010-08-21 19:44  浪子禾月  阅读(2777)  评论(0编辑  收藏  举报