回 帖 发 新 帖 刷新版面

主题:关于数组传递

********try1*********
program try1
    implicit none
    real::a1(2,2)
    interface
        subroutine sub1(a2)
            real::a2(:,:)
        end subroutine
    end interface
    a1(1:2,1:2)=0.0
    call sub1(a1)
    stop
end program

subroutine sub1(a2)
    implicit none
    real::a2(:,:)
    return
end subroutine  
  
*********try2************
program try2
    implicit none
    real::a1(2,2),b1(2,2)
    interface
        subroutine sub1(a2,b2)
            real::a2(:,:),b2(:,:)
        end subroutine
    end interface
    a1(1:2,1:2)=0.0
    b1(1:2,1:2)=0.0
    call sub1(a1,b1)
    stop
end program

subroutine sub1(a2,b2)
    implicit none
    real::a2(:,:),b2(:,:)
    return
end subroutine    

请教try2就多传了一个数组为什么就错了呢?

回复列表 (共2个回复)

沙发

我的编译器没有报错,都能得到正确结果
lz清理一下project试试看

板凳

谢了,是我编译器的问题,我是在try1基础上改的try2,编译时提示call sub1()当地接口块和外部接口块冲突。貌似重新编译的时候相同的部分不会再次编译(编译器太偷懒了)。

我来回复

您尚未登录,请登录后再回复。点此登录或注册