10 integer, parameter :: n
= 10
11 integer, parameter :: m
= 5
13 integer, parameter :: b
= 3
14 integer, parameter :: t
= n
+b
-1
16 integer, parameter :: l
= 4
17 integer, parameter :: u
= 7
18 integer, parameter :: s
= 3
19 integer, parameter :: e
= (u
-l
)/s
+1
34 x
= reshape([(i
, i
=1,n
*n
)], [n
,n
])
36 call sub_s(x(:,m
), y
, n
)
37 call sub_s(y
, x(:,m
), n
)
46 x
= reshape([(i
, i
=1,n
*n
)], [n
,n
])
49 call sub_s(x(l
:u
:s
,m
), v
, e
)
50 call sub_s(v
, x(l
:u
:s
,m
), e
)
55 integer, target
:: x(n
,n
)
56 integer, pointer :: p(:)
60 x
= reshape([(i
, i
=1,n
*n
)], [n
,n
])
63 call sub_s(p(l
:u
:s
), v
, e
)
68 p(l
:l
+e
-1) => x(l
:u
:s
,m
)
72 call sub_s(p(l
:u
:s
), v
, e
)
87 p(l
:l
+e
-1) = x(l
:u
:s
,m
)
95 integer, allocatable
:: a(:)
99 x
= reshape([(i
, i
=1,n
*n
)], [n
,n
])
102 call sub_s(a(l
:u
:s
), v
, e
)
106 call sub_s(a(l
:u
:s
), v
, e
)
124 a(l
:l
+e
-1) = x(l
:u
:s
,m
)
128 end subroutine test_a
130 subroutine sub_s(a
, b
, n
)
131 class(*), intent(in
) :: a(:)
132 integer, intent(in
) :: b(:)
133 integer, intent(in
) :: n
137 if(lbound(a
, dim
=1)/=1) stop 1001
138 if(ubound(a
, dim
=1)/=n
) stop 1002
139 if(any(shape(a
)/=[n
])) stop 1003
140 if(size(a
, dim
=1)/=n
) stop 1004
141 if(size(a
)/=size(b
)) stop 1005
143 call vrfy(a(i
), b(i
))
148 subroutine vrfy(a
, b
)
149 class(*), intent(in
) :: a
150 integer, intent(in
) :: b