小编use*_*506的帖子

错误:数组引用中的排名不匹配(1)(2/1)

我会请求你对这段代码的帮助:我在(1)(2/1)的数组引用中继续得到Error:Rank mismatch.和我的目标是要经过各点在一个立方体(P = I +(J-1)*N +(K-1)*N*N)并计算沿每个轴的电位的梯度(gradphi_x,gradphi_y,gradphi_z ).

PROGRAM sub_rho_phi
    integer, parameter:: N=3
    real, dimension(N):: gradphi_x, gradphi_y, gradphi_z
    call output(gradphi_x, gradphi_y, gradphi_z)
    open(unit=1,file="grad_phi.dat")

    l = 0
    do
        l=l+1
        write(1,*) gradphi_x(l),gradphi_y(l),gradphi_z(l)
        if ( l == N**3) then
            exit
        end if
    end do
END


SUBROUTINE output( gradphi_x, gradphi_y, gradphi_z )
    real, parameter:: h=0.7,G=6.67,M=1.98892*(10**3)!!in(10**15) kg

    integer, parameter:: N=3
    real, dimension(N):: r, gradphi_x,gradphi_y,gradphi_z
    integer, dimension(N**3):: x,y,z
    integer:: p
    real:: a
    a=500/h !in kpc

    do i=0, N
        do j=0, N
            do k=0, N
                p = i+(j-1)*N …
Run Code Online (Sandbox Code Playgroud)

fortran

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

fortran ×1