equiv_init_1.f90

来自「用于进行gcc测试」· F90 代码 · 共 95 行

F90
95
字号
! Program to test initialization of equivalence blocks.  PR13742.! Some forms are not yet implemented.  These are indicated by !!$subroutine test0s  character*10 :: x = "abcdefghij"   character*10 :: y  equivalence (x,y)  character*10 :: xs(10)   character*10 :: ys(10)  equivalence (xs,ys)  data xs /10*"abcdefghij"/  if (y.ne."abcdefghij") call abort  if (ys(1).ne."abcdefghij") call abort  if (ys(10).ne."abcdefghij") call abortend  subroutine test0  integer :: x = 123  integer :: y  equivalence (x,y)  if (y.ne.123) call abortendsubroutine test1  integer :: a(3)  integer :: x = 1  integer :: y  integer :: z = 3  equivalence (a(1), x)  equivalence (a(3), z)  if (x.ne.1) call abort  if (z.ne.3) call abort  if (a(1).ne.1) call abort  if (a(3).ne.3) call abortendsubroutine test2  integer :: x  integer :: z  integer :: a(3) = 123  equivalence (a(1), x)  equivalence (a(3), z)  if (x.ne.123) call abort  if (z.ne.123) call abortendsubroutine test3  integer :: x!!$  integer :: y = 2  integer :: z  integer :: a(3)  equivalence (a(1),x), (a(2),y), (a(3),z)  data a(1) /1/, a(3) /3/  if (x.ne.1) call abort!!$  if (y.ne.2) call abort  if (z.ne.3) call abortendsubroutine test4  integer a(2)  integer b(2)  integer c  equivalence (a(2),b(1)), (b(2),c)  data a/1,2/  data c/3/  if (b(1).ne.2) call abort  if (b(2).ne.3) call abortend!!$subroutine test5!!$  integer a(2)!!$  integer b(2)!!$  integer c!!$  equivalence (a(2),b(1)), (b(2),c)!!$  data a(1)/1/!!$  data b(1)/2/!!$  data c/3/!!$  if (a(2).ne.2) call abort!!$  if (b(2).ne.3) call abort!!$  print *, "Passed test5"!!$end  program main  call test0s  call test0  call test1  call test2  call test3  call test4!!$  call test5end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?