File: arrays_57.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 (30 lines) | stat: -rw-r--r-- 574 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
27
28
29
30
program arrays_57

real :: A(2,2) = reshape([1.0,2.0,3.0,4.0], [2,2])
call trans(A)
print *, A
if ( any(abs( A - 12.91 ) > 1e-6) ) error stop 
call trans_2(A)
print *, A
if ( any(abs( A - 12.91 ) > 1e-6) ) error stop  

contains

subroutine trans(A)
real, intent(inout) :: A(2, 2)
A = matprod(transpose(A))
end subroutine

subroutine trans_2(A)
real, intent(inout) :: A(2, 2)
integer, parameter :: x = 2
A = matprod(abs(A(1:x,:)))
end subroutine

function matprod(x) result(k)
real,intent(in) :: x(:,:)
real :: k(size(x, 1), size(x, 2))
k = 12.91
end function

end program