fortran的allocate的用法

fortran的allocate的用法
这段代码怎么有点不对
function igl(lxyz,ig,l)
implicit none
integer,parameter::integ=4
integer igl,lxyz(3),ig(3),l,i
integer,allocatable::rex(*),rey(*),rez(*),ref(*)
allocate(rex(l))
allocate(rey(l))
allocate(rez(l))
allocate(ref(3*l))
do i=1,3*l
ref(i)=0 initialize it to zero
enddo
.
还有后续的代码,提示是带allocate的所有行都有问题,我大概知道function里面好像根本不用声明allocate,直接声明integer rex(l)就可以.是不是这样啊.
斩人拔刀齐 1年前 已收到1个回答 举报

真实的谎言_然 幼苗

共回答了14个问题采纳率:78.6% 举报

integer,allocatable::rex(*),rey(*),rez(*),ref(*)
改为
integer,allocatable::rex(:),rey(:),rez(:),ref(:)
如果数组的大小出现在虚参中,可以不用 allocatable,直接 integer rex(I),前提是 I 是虚参.

1年前 追问

2

斩人拔刀齐 举报

改了确实可以了。那问什么声明字符串的时候可以character *(*) aaa这么声明啊。

举报 真实的谎言_然

aaa是虚参可以这样。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.038 s. - webmaster@yulucn.com