我有一个fortran代码,除其他外,我放了一些像温度这样的值并调用子程序。
这个子程序给了我一个辐射解决方案,然后用于新的迭代。
问题是这个子程序需要花费很多时间来处理,所以我希望每次只调用一次,比方说,二十次迭代,并保留程序其余部分的最后一个解决方案。
有可行的方法吗?
答案 0 :(得分:1)
只需做
n_iterations = 100000
nth = 20
do i = 1, n_iterations
if (mod(i, nth)==0) call my_subroutine
end do
仅当mod(i, nth)==0
可以除以i
且余数为零时,表达式nth
才为真。
答案 1 :(得分:0)
另一种方法是使用嵌套循环:
do i = 1,bignum
do j = i,20
code to be repeated many times
end do
call subroutine_to_be_called_ocasionally()
end do