Arrays 使用和内函数时出错
使用g95编译器,我得到一个错误,上面写着: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
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)
仅选择数组的最后一个元素,而不是整个数组。