如何从用户输入初始化fortran中的数组?

时间:2015-09-17 12:21:26

标签: arrays fortran

我是fortran的新手,我一直在努力解决这个问题:我想在fortran中创建并使用用户定义的大小和形状进行排列。

例如,在python中,我只是询问用户数组的上限和下限,然后使用这些参数声明一个数组。但是在fortran中,我必须首先声明所有变量,包括数组。在声明数组时,我需要定义大小/形状。

我的第一个猜测是做这样的事情(我将省略开始/结束部分):

INTEGER, parameter :: lower, upper
INTEGER, dimension(lower:upper) :: list
READ(*,*) lower, upper
WRITE(*,*) list

但这不起作用,因为声明的顺序是错误的。该程序要我先用它的大小声明数组。我确实尝试过使用SHAPE / RESHAPE方法,但没有设法使用它们。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

简单,使用可分配的数组:

integer :: lower, upper
integer, allocatable, dimension(:) :: list

read(*,*) lower, upper
allocate(list(lower:upper))
list = ... something ...
write(*,*) list