File: intrinsics_327.f90

package info (click to toggle)
lfortran 0.45.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 46,332 kB
  • sloc: cpp: 137,068; f90: 51,260; python: 6,444; ansic: 4,277; yacc: 2,285; fortran: 806; sh: 524; makefile: 30; javascript: 15
file content (26 lines) | stat: -rw-r--r-- 699 bytes parent folder | download
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
program intrinsics_327
    real :: A(2,3) = reshape([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], [2, 3])
    real, allocatable :: B(:, :)
    allocate(B(3, 2))
    call wrapper_transpose(A, B)
    print *, B(1, 1)
    if (B(1, 1) /= 1.0) error stop
    print *, B(1, 2)
    if (B(1, 2) /= 2.0) error stop
    print *, B(2, 1)
    if (B(2, 1) /= 3.0) error stop
    print *, B(2, 2)
    if (B(2, 2) /= 4.0) error stop
    print *, B(3, 1)
    if (B(3, 1) /= 5.0) error stop
    print *, B(3, 2)
    if (B(3, 2) /= 6.0) error stop

    contains

    subroutine wrapper_transpose(M, N)
        real, intent(in) :: M(:, :)
        real, intent(out) :: N(:, :)
        N = transpose(M)
    end subroutine
end program