fortran程序,subroutine solvereal::i,x,y,mreal::h(i),d(i),a(i),

学习 时间:2026-04-02 17:47:06 阅读:3531
fortran程序,subroutine solvereal::i,x,y,mreal::h(i),d(i),a(i),dy(i)h(i)=(1+2*(x-a(i))/(a(i+1)-a(i)))*(((x-a(i+1))/(a(i)-a(i+1)))**2)d(i)=(((x-a(i+1))/(a(i)-a(i+1)))**2)*(x-a(i))m=y(i)*h(i)+dy(i)*d(i)end subroutine solveprogram mainreal::i,sreal::a(i),y(i),dy(i)s=0open(10,file='data.txt',status='old')read(10,'(a20)') do i=1,5 read(10,*) a(i),y(i),dy(i)call solves=s+mend doclose(10)end结果如下:--------------------Configuration:hermite2 - Win32 Debug--------------------Compiling Fortran...F:\fortran wenjian\hermite2\hermite2.f90F:\fortran wenjian\hermite2\hermite2.f90(2) :Error:A specification expression object must be a dummy argument,a COMMON block object,or an object accessible through host or use association [I]real::i,x,y,m------^F:\fortran wenjian\hermite2\hermite2.f90(12) :Error:A specification expression object must be a dummy argument,a COMMON block object,or an object accessible through host or use association [I]real::i,s------^F:\fortran wenjian\hermite2\hermite2.f90(13) :Error:An automatic object is invalid in a main program.[A]real::a(i),y(i),dy(i)------^F:\fortran wenjian\hermite2\hermite2.f90(13) :Error:An automatic object is invalid in a main program.[Y]real::a(i),y(i),dy(i)-----------^F:\fortran wenjian\hermite2\hermite2.f90(13) :Error:An automatic object is invalid in a main program.[DY]real::a(i),y(i),dy(i)----------------^Error executing df.exe.hermite2.obj - 5 error(s),0 warning(s)

最佳回答

虚心的西牛

土豪的月亮

2026-04-02 17:47:06

一般来说,Fortran 的数组在定义时需要指定其大小。
如果你要用 real :: h(i)
那么 i 必须是确定的值,例如常数,虚参,COMMON 中的变量。
如果定义时尚不能确定大小,你需要使用可变的数组。
这需要书写 allocatable 属性和 allocate 语句。

最新回答共有2条回答

  • 淡定的手机
    回复
    2026-04-02 17:47:06

    一般来说,Fortran 的数组在定义时需要指定其大小。如果你要用 real :: h(i)那么 i 必须是确定的值,例如常数,虚参,COMMON 中的变量。如果定义时尚不能确定大小,你需要使用可变的数组。这需要书写 allocatable 属性和 allocate 语句。

上一篇 中国古代各族人民除了以龙为图腾外,还有以什么为图腾

下一篇 松木家具好不好