Fortran Coder

标题: The syntax of this substring is invalid. [打印本页]

作者: Botton    时间: 2020-4-6 15:17
标题: The syntax of this substring is invalid.
数组赋值,报错
以下为代码
[Fortran] 纯文本查看 复制代码
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]




作者: li913    时间: 2020-4-6 18:15
主程序中未定义c 。
作者: kyra    时间: 2020-4-6 18:34
本帖最后由 kyra 于 2020-4-6 18:35 编辑

请理解,主程序和子程序的变量是独立的。需要共享时,可以通过实参虚参传递。
[Fortran] 纯文本查看 复制代码
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


作者: Botton    时间: 2020-4-6 21:51
谢谢大佬,现在已经理解




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2