1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
| subroutine foo(a, n, m, b)
| implicit none
|
| real, intent(in) :: a(n, m)
| integer, intent(in) :: n, m
| real, intent(out) :: b(size(a, 1))
|
| integer :: i
|
| do i = 1, size(b)
| b(i) = sum(a(i,:))
| enddo
| end subroutine
|
| subroutine trans(x,y)
| implicit none
| real, intent(in), dimension(:,:) :: x
| real, intent(out), dimension( size(x,2), size(x,1) ) :: y
| integer :: N, M, i, j
| N = size(x,1)
| M = size(x,2)
| DO i=1,N
| do j=1,M
| y(j,i) = x(i,j)
| END DO
| END DO
| end subroutine trans
|
| subroutine flatten(x,y)
| implicit none
| real, intent(in), dimension(:,:) :: x
| real, intent(out), dimension( size(x) ) :: y
| integer :: N, M, i, j, k
| N = size(x,1)
| M = size(x,2)
| k = 1
| DO i=1,N
| do j=1,M
| y(k) = x(i,j)
| k = k + 1
| END DO
| END DO
| end subroutine flatten
|
|