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)