主题:如题,当数组维数是变量的时候,COMMON如何使用?
如题,当数组维数是变量的时候,COMMON如何使用?比如:
程序1,
program main
implicit double precision (A-H)
integer i
i=3
call bbb(i)
end
subroutine bbb(i)
implicit double precision (A-H)
common bb(i)
end
程序2
program main
implicit none
integer i
i = 3
call bbb(i)
end
subroutine bbb(i)
integer i,bb
dimension bb(i)
end
2个程序对比,第一个编译不通过,第二个可以通过,总之我想实现的功能就是子程序里的全局变量bb(i)的维数是由主程序里的i决定的。
有没有什么好的方法解决这个问题呢?第二个程序(dimesion)说明用函数参数传递是可以实现,但是程序改动比较大,因为我还是希望保留全局变量,所以不倾向于第二种写法,为什么用了common就会报错呢?
所以请教各位有没有什么好的方法既能保留common全局变量的功能又能实现我想要的功能(维数随着主程序的i变化)?
程序1,
program main
implicit double precision (A-H)
integer i
i=3
call bbb(i)
end
subroutine bbb(i)
implicit double precision (A-H)
common bb(i)
end
程序2
program main
implicit none
integer i
i = 3
call bbb(i)
end
subroutine bbb(i)
integer i,bb
dimension bb(i)
end
2个程序对比,第一个编译不通过,第二个可以通过,总之我想实现的功能就是子程序里的全局变量bb(i)的维数是由主程序里的i决定的。
有没有什么好的方法解决这个问题呢?第二个程序(dimesion)说明用函数参数传递是可以实现,但是程序改动比较大,因为我还是希望保留全局变量,所以不倾向于第二种写法,为什么用了common就会报错呢?
所以请教各位有没有什么好的方法既能保留common全局变量的功能又能实现我想要的功能(维数随着主程序的i变化)?