纯函数错误,但使用向量

时间:2017-03-29 12:37:01

标签: fortran

我继承了一个相当大(但仍然可以管理)的fortran(F90)代码库,并且作为一个全新的fortran新手,我试图编译它。第一个错误很容易纠正,但这个错误超出了我的理解。

% make    
[  1%] Building Fortran object CMakeFiles/Core.dir/vars.f90.o
/Users/sensei/Documents/Projects/vars.f90:127:32:

             real*8, dimension(0:links(kg)), intent(out) :: feq_vect
                                1
Error: Specification function 'links' at (1) must be PURE

现在,当我匆匆通过代码时,我找到了link声明:

integer, allocatable, dimension(:) :: links

我看到这是一个向量,而不是一个函数,为什么gfortran抱怨这是一个函数?下面是一个独立的例子。

如何更正此错误?

mph.f90

program mph

    use vars 
    !
    implicit none

endprogram mph 

vars.f90

module vars

    implicit none  

    integer, allocatable, dimension(:) :: links

    abstract interface
        subroutine linkstest(kg,feq_vect)
            real*8, dimension(0:links(kg)), intent(out) :: feq_vect
        endsubroutine        
    end interface

end module vars

解决方案

虽然错误与this question完全不同,但解决方案似乎是相同的:将import添加到子例程中。

0 个答案:

没有答案