Visual studio 2013 Fortran语言中的和函数

Visual studio 2013 Fortran语言中的和函数,visual-studio-2013,sum,fortran,gfortran,fortran90,Visual Studio 2013,Sum,Fortran,Gfortran,Fortran90,我正在处理一段Fortran90代码,结果被求和函数卡住了。代码此时无法正常工作 相关代码如下所示: subroutine barfilter(xp,neighbbar,nelem,pe) integer*4, intent(in), dimension(:,:) :: neighbbar real*8, intent(in) :: pe real*8, intent(inout), dimension(:) :: xp integer*4

我正在处理一段Fortran90代码,结果被求和函数卡住了。代码此时无法正常工作

相关代码如下所示:

subroutine barfilter(xp,neighbbar,nelem,pe)
integer*4, intent(in), dimension(:,:)  :: neighbbar
real*8, intent(in)                     :: pe
real*8, intent(inout), dimension(:)    :: xp
integer*4                              :: nbar, bar
real*8                                 :: total

nbar = size(neighbbar,1)
do bar = 1,nbar
    total = sum(xp(neighbbar(bar,:))**pe,1,neighbbar(bar,:)>0))
end do
end subroutine
我不理解和函数的构造。然而,该公式

xp(neighbbar(bar,:))

我不明白。当在MicrosoftVisualStudio2013中添加dubugging并键入时,结果只会显示“{…}”。这是什么意思?

这是数组
xp
的矢量订阅,如图所示或中所示。您确定在MS Visual Studio中有gfortran吗?如果它真的起作用,我会非常惊讶。您正在使用
neighbor
数组来屏蔽
xp
数组。也许掩码应该是
xp(neighbar(bar,:)>0