Function fortran语言中的函数
我对用fortran编程完全是新手。。。。。我试着做一个函数,这个函数在另一个程序中调用 我有我的主程序,叫做Spectrum.f:Function fortran语言中的函数,function,fortran,gfortran,Function,Fortran,Gfortran,我对用fortran编程完全是新手。。。。。我试着做一个函数,这个函数在另一个程序中调用 我有我的主程序,叫做Spectrum.f: program Spectrum external I_Analytic double precision I_Analytic write(*,*) I_Analytic(5.D0) end 函数I_analysis在第二个文档(称为analysis.f)中定义: DOUBL
program Spectrum
external I_Analytic
double precision I_Analytic
write(*,*) I_Analytic(5.D0)
end
函数I_analysis在第二个文档(称为analysis.f)中定义:
DOUBLE PRECISION function I_Analytic(w1)
I_Analytic = w1**2
end function I_Analytic
在用
gfortran-o频谱分析.f频谱.f
我只得到0.0000000000而不是25…我的程序怎么了?您的函数没有声明
w1
的类型,因此根据隐式键入规则,它是实数
,而不是双精度
。正如我在评论中所建议的,始终使用隐式无
,如果接口不一致,最好也使用模块来获取错误。在此阶段不要学习外部
。直接学习模块。这是我在课堂上使用的正确方法。此外,请使用免费源代码表单。在所有独立单元中使用IMPLICIT NONE
(非常重要!),并学习种类,而不是double-precision
@KobeGote我认为你不应该删除你的答案,它是正确的,两个答案也没有坏处。你甚至比我快一点。但很有可能,我们会找到一个重复的答案,我也可能会删除我的答案。