Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 如何将SHAPE()的输出放入两个变量中?_Fortran - Fatal编程技术网

Fortran 如何将SHAPE()的输出放入两个变量中?

Fortran 如何将SHAPE()的输出放入两个变量中?,fortran,Fortran,如何将SHAPE()的输出放入两个变量中 考虑这样的情况,我生成了如下数组: REAL :: r(1,10) CALL RANDOM_NUMBER(r) 如何将维度1和10放入两个变量l1和l2?经过一些实验,我自己找到了答案 必须定义一个数组 integer,dimension(0:1)::s1 而刚才使用的s1=shape(r)经过一些实验,我自己找到了答案 必须定义一个数组 integer,dimension(0:1)::s1 而刚才使用的s1=shape(r)来自 16.9

如何将
SHAPE()
的输出放入两个变量中

考虑这样的情况,我生成了如下数组:

  REAL :: r(1,10)
  CALL RANDOM_NUMBER(r)

如何将维度
1
10
放入两个变量
l1
l2

经过一些实验,我自己找到了答案

必须定义一个数组

integer,dimension(0:1)::s1

而刚才使用的
s1=shape(r)

经过一些实验,我自己找到了答案

必须定义一个数组

integer,dimension(0:1)::s1
而刚才使用的
s1=shape(r)
来自

16.9.179
大小(数组[,尺寸,种类])

一,。描述:数组或一个数据块的大小。
5.结果值:如果存在
DIM
,则结果的值等于
ARRAY
的维度
DIM
的范围,但如果
ARRAY
为假定秩并与假定大小数组关联,且DIM的值等于
ARRAY
的秩,则该值为−1.如果不存在
DIM
,并且假定
ARRAY
为秩,则结果的值等于
乘积(形状(数组,种类))
。否则,结果的值等于
数组
的元素总数

因此,我会:

l1 = size(array,dim=1)
l2 = size(array,dim=2)

另一种方法是使用
SHAPE

16.9.172
形状(来源[种类])

一,。描述:数组或标量的形状。
5.结果值:结果有一个值,其第i个元素等于
SOURCE
的维度
i
的范围,但如果
SOURCE
为假定秩,并与假定大小数组关联,则最后一个元素等于
−1

16.9.179
大小(数组[,尺寸,种类])

一,。描述:数组或一个数据块的大小。
5.结果值:如果存在
DIM
,则结果的值等于
ARRAY
的维度
DIM
的范围,但如果
ARRAY
为假定秩并与假定大小数组关联,且DIM的值等于
ARRAY
的秩,则该值为−1.如果不存在
DIM
,并且假定
ARRAY
为秩,则结果的值等于
乘积(形状(数组,种类))
。否则,结果的值等于
数组
的元素总数

因此,我会:

l1 = size(array,dim=1)
l2 = size(array,dim=2)

另一种方法是使用
SHAPE

16.9.172
形状(来源[种类])

一,。描述:数组或标量的形状。
5.结果值:结果有一个值,其第i个元素等于
SOURCE
的维度
i
的范围,但如果
SOURCE
为假定秩,并与假定大小数组关联,则最后一个元素等于
−1


你指的是数组大小吗?如果是这样的话
l1=size(r,DIM=1)
l2=size(r,DIM=2)
。您指的是数组大小吗?如果是这样的话,
l1=尺寸(r,DIM=1)
l2=尺寸(r,DIM=2)
。你的意思是
尺寸(0:1)
而不是
尺寸(0,1)
?第一个是正确的(如果不一定是最好的主意)。@francescalus谢谢,这是一个打字错误。谢谢你指出这一点。最好的主意是什么?@mattiav27从1开始是很常见的。。。维度(2)表示s1(1:2)您是指
维度(0:1)
而不是
维度(0,1)
?第一个是正确的(如果不一定是最好的主意)。@francescalus谢谢,这是一个打字错误。谢谢你指出这一点。最好的主意是什么?@mattiav27从1开始是很常见的。。。尺寸(2)表示s1(1:2)