【发布时间】:2019-07-09 16:32:15
【问题描述】:
我正在编写一个链接到外部主程序的 Fortran 模块。我只能更改子程序。我必须详细说明很多数据,但总是一样的。每次调用子例程都需要花费太多时间。如何仅在第一次调用时初始化数据? 目前,这是子程序:
subroutine sdvini(statev,coords,nstatv,ncrds,noel,npt,layer,kspt)
implicit none
integer imdat(100,100,50)
imdat(1,1,1:33)=(/1,8,13,24,48,72,111,148,156,165,182&
&,189,194,207,210,216,236,247,254,270,311,319,339,343,367,376&
&,393,397,421,438,447,473,492/)
.
. lots of data
.
do something
return
end
【问题讨论】:
-
这么多数据属于外部文件,可能在第一次调用子程序时读取并保存以供后续调用。您是否需要帮助来编写代码来实现这种方法?我现在没有时间给你写,但是看看一些关于 Fortran 的
save过程变量属性主题的 Qs 和 As hereabouts。 -
对 save 属性的提示就足够了,这确实是。我会检查
标签: fortran large-data subroutine