File: passing_array_05.f90

package info (click to toggle)
lfortran 0.59.0-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 56,736 kB
  • sloc: cpp: 168,052; f90: 74,272; python: 17,537; ansic: 7,705; yacc: 2,345; sh: 1,334; fortran: 895; makefile: 37; javascript: 15
file content (20 lines) | stat: -rw-r--r-- 566 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program test_arrays
    implicit none
    real :: a(10, 20, 30)
    call pass_array(a)
    print *, "Test passed"
contains
    subroutine pass_array(arr)
        real :: arr(10, 20, *)
        call recv_array(arr(1:10, 1:20, 1))
    end subroutine pass_array
    
    subroutine recv_array(x)
        real :: x(:, :)
        integer :: ub1, ub2
        ub1 = ubound(x, 1)
        ub2 = ubound(x, 2)
        if (ub1 /= size(x,1)) stop "ubound dim 1 failed"
        if (ub2 /= size(x,2)) stop "ubound dim 2 failed"
    end subroutine recv_array
end program test_arrays