我是fortran的新手,我一直在努力解决这个问题:我想在fortran中创建并使用用户定义的大小和形状进行排列。
例如,在python中,我只是询问用户数组的上限和下限,然后使用这些参数声明一个数组。但是在fortran中,我必须首先声明所有变量,包括数组。在声明数组时,我需要定义大小/形状。
我的第一个猜测是做这样的事情(我将省略开始/结束部分):
INTEGER, parameter :: lower, upper
INTEGER, dimension(lower:upper) :: list
READ(*,*) lower, upper
WRITE(*,*) list
但这不起作用,因为声明的顺序是错误的。该程序要我先用它的大小声明数组。我确实尝试过使用SHAPE / RESHAPE方法,但没有设法使用它们。有什么想法吗?
答案 0 :(得分:1)
简单,使用可分配的数组:
integer :: lower, upper
integer, allocatable, dimension(:) :: list
read(*,*) lower, upper
allocate(list(lower:upper))
list = ... something ...
write(*,*) list