Arrays 使用和内函数时出错

Arrays 使用和内函数时出错,arrays,fortran,sum,fortran95,Arrays,Fortran,Sum,Fortran95,使用g95编译器,我得到一个错误,上面写着: ERROR: Procedure attribute conflicts with INTENT attribute in 'quantityarray' 我试着取数组的总和。以下是出现此错误的子程序: SUBROUTINE findTotals(pricearray,quantityarray,totalprice, totalquantity) INTEGER, INTENT(IN)::quantityarray REAL, INTENT(I

使用g95编译器,我得到一个错误,上面写着:

ERROR: Procedure attribute conflicts with INTENT attribute in 'quantityarray'
我试着取数组的总和。以下是出现此错误的子程序:

SUBROUTINE findTotals(pricearray,quantityarray,totalprice, totalquantity)

INTEGER, INTENT(IN)::quantityarray
REAL, INTENT(IN):: pricearray
INTEGER, INTENT(OUT)::totalquantity
REAL, INTENT(OUT)::totalprice


totalquantity = SUM(quantityarray)
totalprice = SUM(pricearray)


END SUBROUTINE
非常感谢你抽出时间

program SummingAnArray
implicit none
integer, dimension(10) :: array=(/ (i, i=1,10) /)
integer :: i, Total

call VectorSum(array,Total)
print *,Total
read(*,*)



contains
    !===================================================
    subroutine VectorSum(Vector,Total)
    implicit none
    integer, intent(in), dimension(:) :: Vector
    integer, intent(out) :: Total

    Total = SUM(Vector)
    end subroutine VectorSum
    !===================================================
end program SummingAnArray

这可能是您希望实现的吗?

SUM需要一个数组。quantityarray不应该是一个数组吗?是的,它应该是一个数组,我让它是SUM(quantityarray(size))。传入'size'并输入intent,但我仍然收到一个错误,它说:“(1)处的函数'SUM'没有隐式类型”,这没有意义b/c SUM应该是一个内在函数。编写
SUM(quantityarray(size))
并不能神奇地使quantityarray成为数组;您必须在其声明中指定(可能您也做了此更改)。另外,
quantityarray(size)
仅选择数组的最后一个元素,而不是整个数组。