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
Fortran 错误:‘;fmedian&x2019;at(1)不是一个变量_Fortran - Fatal编程技术网

Fortran 错误:‘;fmedian&x2019;at(1)不是一个变量

Fortran 错误:‘;fmedian&x2019;at(1)不是一个变量,fortran,Fortran,我想看看这个函数是如何工作的。我试着写一些小的f77代码 program pic implicit none integer c,a integer b(5) external fmedian c=5 b=(/9,2,7,1,6/) fmedian(a,b,c) end real function fmedian(xmed,x,n) double pre

我想看看这个函数是如何工作的。我试着写一些小的f77代码

      program pic

      implicit none
      integer c,a
      integer b(5)
      external fmedian
      c=5
      b=(/9,2,7,1,6/)  
      fmedian(a,b,c)

      end


      real function fmedian(xmed,x,n)
      double precision sum
      integer i,n,xmed
      dimension x(n)
      sum=0.d0
      do 10 i=1,n
        sum=sum+(x(i)-xmed)/abs(x(i)-xmed)
  10    continue
      fmedian=sum
      return
      end
我应该在pic代码中更改什么

当我试图编译Alexander的代码时,我得到了

       print *, fmedian(a,b,c)
                         1
Warning: Type mismatch in argument ‘x’ at (1); passed INTEGER(4) to REAL(4)

fmedian
是一个函数,即它返回一些东西。但是,您不会在任何位置指定返回值

例如,您可以将
fmedian
的结果打印到屏幕上:

      print *, fmedian(a,b,c)
此外,您需要声明
fmedian

      real fmedian

然后,您的程序将如下所示:

      program pic

      implicit none
      integer c,a
      integer b(5)
      real fmedian
      external fmedian
      c=5
      b=(/9,2,7,1,6/)  
      print *, fmedian(a,b,c)

      end


      real function fmedian(xmed,x,n)
      double precision sum
      integer i,n,xmed
      dimension x(n)
      sum=0.d0
      do 10 i=1,n
        sum=sum+(x(i)-xmed)/abs(x(i)-xmed)
  10    continue
      fmedian=sum
      return
      end

调用者整数数组和被调用者隐式实数之间仍然存在不匹配。将x声明为整数数组将修复它