The syntax of this substring is invalid.
数组赋值,报错以下为代码
program main
implicit none
CALL QW
c(1:N,1:N)=a(:,:)
c(1:N,N+1:2*N)=b(:,:)
c(N+1:2*N,1:N)=b(:,:)
c(N+1:2*N,N+1:2*N)=a(:,:)
write(*,*) c
end program main
SUBROUTINE QW
integer, parameter :: N=4
integer,dimension(N,N) :: a
integer,dimension(N,N) :: b
integer,dimension(2*N,2*N) :: c
integer :: i,j
do i=1,N
do j=1,N
a(i,j)=1
end do
end do
do i=1,N
do j=1,N
b(i,j)=2
end do
end do
END SUBROUTINE QW
以下为错误
1>D:\单相土三维\┐(T.T ) ( T.T) ノ\┐(T.T ) ( T.T) ノ\kk.f90(209): error #6911: The syntax of this substring is invalid.
主程序中未定义c 。 本帖最后由 kyra 于 2020-4-6 18:35 编辑
请理解,主程序和子程序的变量是独立的。需要共享时,可以通过实参虚参传递。
program main
implicit none
integer, parameter :: N=4
integer,dimension(N,N) :: a,b
integer,dimension(2*N,2*N) :: c
CALL QW(a,b)
c(1:N,1:N)=a(:,:)
c(1:N,N+1:2*N)=b(:,:)
c(N+1:2*N,1:N)=b(:,:)
c(N+1:2*N,N+1:2*N)=a(:,:)
write(*,*) c
contains
SUBROUTINE QW(a,b)
integer,dimension(:,:) :: a,b
a = 1
b = 2
END SUBROUTINE QW
end program main
谢谢大佬,现在已经理解
页:
[1]