File: scaltest.f90.in

package info (click to toggle)
cmake 4.2.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 152,456 kB
  • sloc: ansic: 403,896; cpp: 303,920; sh: 4,105; python: 3,583; yacc: 3,106; lex: 1,279; f90: 538; asm: 471; lisp: 375; cs: 270; java: 266; fortran: 239; objc: 215; perl: 213; xml: 198; makefile: 111; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (21 lines) | stat: -rw-r--r-- 663 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program scaltest
    use iso_c_binding
    implicit none
    interface
        subroutine scalprod(n, x_p, y_p, res) bind(c)
            use iso_c_binding
            integer(c_int), value :: n
            type(c_ptr), value :: x_p, y_p
            real(c_double) :: res
        end subroutine scalprod
    end interface
    type(c_ptr) :: x_pt, y_pt
    real(c_double), dimension(5), target :: a = (/ 1, 2, 3, 4, 5 /)
    real(c_double), dimension(5), target :: b = (/ 2, 3, 4, 5, 6 /)
    integer(c_int) :: n = size(a)
    real(c_double) :: res
    x_pt = c_loc(a)
    y_pt = c_loc(b)
    call scalprod(n, x_pt, y_pt, res)
    print *, res
end program scaltest