Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:fortran中的不可分类语句_Fortran - Fatal编程技术网

错误:fortran中的不可分类语句

错误:fortran中的不可分类语句,fortran,Fortran,当我运行下面的简单程序时 program test ! integer m,n,r,i double precision x(2),y(3),z(4) x=(/2.0,1.0/) y=(/1.0,2.0,1.0/) call polymul(x,2,y,3,z,4) print *,z end subroutine polymul(x,m,y,n,z,r) ! polynominal multipy integer i,j,k do i=1,r z(i)=0.0 end do do i=1,

当我运行下面的简单程序时

program test
! integer m,n,r,i
double precision x(2),y(3),z(4)
x=(/2.0,1.0/)
y=(/1.0,2.0,1.0/)
call polymul(x,2,y,3,z,4)
print *,z
 end

subroutine polymul(x,m,y,n,z,r)
! polynominal multipy
integer i,j,k
do i=1,r
z(i)=0.0
end do
do i=1,m
  do j=1,n
    k=i+j-1
    z(k)=z(k)+x(i)*y(j)
  end do
end do
end
它表明

错误:不可分类语句


您尚未声明子例程中的
x
y
z
是什么。Fortran不知道这些变量是函数(尚未定义)还是数组。修复方法很简单:在子例程中显式声明数组:

    subroutine polymul(x, m, y, n, z, r)
       implicit none
       integer m, n, r
       double precision x(m), y(n), z(r)
       integer i, j, k
       do i=1,r
          z(i)=0.0
       enddo
       do i=1,m
          do j=1,n
             k=i+j-1
             z(k)=z(k)+x(i)*y(j)
          enddo
       enddo
    end subroutine

正如ifort提示的那样(变量z),此名称尚未声明为数组或函数。您需要在子程序polymul中将变量x、y、z声明为数组