计算化学公社
标题:
fortran中的do循环得到的一个有很多值的数,在do之外应该怎么用
[打印本页]
作者Author:
wulalalana
时间:
2020-12-30 17:11
标题:
fortran中的do循环得到的一个有很多值的数,在do之外应该怎么用
我在程序中调用evbas得到 v 值,然后让 vev= vapang+ v ,代码如下
call evbas(r,v)
vev= vapang+ v
但是,evbas子程序中v 是通过下面代码来计算的,所以v应该是有227个值,但是我do循环结束后只有一个v值输出,如果我需要让每一个 v 值都与vapang相加得到多个vev值,这个应该怎么办呢?
do k=1,227
v= c(k)*b(k)
enddo
作者Author:
St_Maxwell
时间:
2020-12-31 12:20
本帖最后由 St_Maxwell 于 2020-12-31 12:23 编辑
要计算多个v,那么显然v应该是数组啊。所以你要把v和vev定义为数组,并且向子程序传递数组。(传数组的方法见
http://fcode.cn/guide-103-1.html
)
subroutine evbas(r, v)
sometype :: r
real, dimension(:) :: v
do k=1,227
v(k) = c(k)*b(k)
enddo
! or v = c * k
end subroutine evbas
复制代码
调用evbas的地方也不需要太大改动
call evbas(r, v)
vev = vapang + v ! vev 和 v 都是大小为227的数组
复制代码
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3