Skip to content
Snippets Groups Projects
Commit 430bd0bd authored by Aidan Chalk's avatar Aidan Chalk
Browse files

Working version of FORTRAN QuickSched bindings, however the fortran examples...

Working version of FORTRAN QuickSched bindings, however the fortran examples do not seem to be built by automake
parent 25dcdef6
No related branches found
No related tags found
1 merge request!8[WIP] Fortran bindings
...@@ -19,4 +19,4 @@ ...@@ -19,4 +19,4 @@
ACLOCAL_AMFLAGS = -I m4 ACLOCAL_AMFLAGS = -I m4
# Show the way... # Show the way...
SUBDIRS = src examples doc SUBDIRS = src examples fortran_examples doc
...@@ -34,6 +34,7 @@ AM_CONFIG_HEADER(config.h) ...@@ -34,6 +34,7 @@ AM_CONFIG_HEADER(config.h)
AX_CHECK_ENABLE_DEBUG AX_CHECK_ENABLE_DEBUG
AC_PROG_CC AC_PROG_CC
AM_PROG_CC_C_O AM_PROG_CC_C_O
AC_PROG_FC
# Enable POSIX and platform extension preprocessor macros. # Enable POSIX and platform extension preprocessor macros.
AC_USE_SYSTEM_EXTENSIONS AC_USE_SYSTEM_EXTENSIONS
......
# Add the source directory and debug to CFLAGS
AM_FFLAGS = -I../src -DCPU_TPS=2.67e9 -DTIMERS
# Set-up the library
bin_PROGRAMS = test
# Sources for test
test_SOURCES = test.F90
test_FFLAGS = $(AM_FFLAGS)
test_LDADD = ../src/.libs/libquicksched.a
#!/bin/bash
gfortran test.F90 ../src/.libs/libquicksched.a -I../src/ -fopenmp
GFORTRAN module version '10' created from test.F90
MD5:fa9f6d31a9b7402e8af180ad7d74e632 -- If you edit this, you'll get what you deserve.
(() () () () () () () () () () () () () () () () () () () () () () () ()
() () ())
()
(('c_funptr' '__iso_c_binding' 2) ('c_ptr' '__iso_c_binding' 3))
()
()
()
(2 'C_funptr' '__iso_c_binding' '' 1 ((DERIVED UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_BIND_C IS_C_INTEROP IS_ISO_C) (
DERIVED 2 0 1 1 UNKNOWN ()) 0 0 () () 0 ((4 '__c_funptr_c_address' (
INTEGER 8 0 1 0 INTEGER ()) () (UNKNOWN-FL UNKNOWN-INTENT UNKNOWN-PROC
UNKNOWN UNKNOWN 0 0) UNKNOWN-ACCESS ())) UNKNOWN-ACCESS () () 2 44 0)
3 'C_ptr' '__iso_c_binding' '' 1 ((DERIVED UNKNOWN-INTENT UNKNOWN-PROC
UNKNOWN UNKNOWN 0 0 IS_BIND_C IS_C_INTEROP IS_ISO_C) (DERIVED 3 0 1 1
UNKNOWN ()) 0 0 () () 0 ((5 '__c_ptr_c_address' (INTEGER 8 0 1 0 INTEGER
()) () (UNKNOWN-FL UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0)
UNKNOWN-ACCESS ())) UNKNOWN-ACCESS () () 2 42 0)
6 '__iso_c_binding' '__iso_c_binding' '' 1 ((MODULE UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 INTRINSIC) (UNKNOWN 0 0 0 0 UNKNOWN ())
0 0 () () 0 () () () 2 0)
7 'c_alert' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (CHARACTER 1 0 1
1 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 0 () (
CONSTANT (CHARACTER 1 0 1 1 UNKNOWN (())) 0 1 '\U00000007') () 0 () () ()
2 35)
8 'c_associated' '__iso_c_binding' '__iso_c_binding_c_associated' 1 ((
PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL UNKNOWN 0 0 FUNCTION
ALWAYS_EXPLICIT IS_ISO_C) (LOGICAL 4 0 0 0 LOGICAL ()) 9 0 (10 11) () 8
() () () 2 47)
12 'c_backspace' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (CHARACTER 1 0 1
1 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 0 () (
CONSTANT (CHARACTER 1 0 1 1 UNKNOWN (())) 0 1 '\U00000008') () 0 () () ()
2 36)
13 'c_bool' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
LOGICAL ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '1') () 0 ()
() () 2 32)
14 'c_carriage_return' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (CHARACTER 1 0 1
1 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 0 () (
CONSTANT (CHARACTER 1 0 1 1 UNKNOWN (())) 0 1 '\U0000000d') () 0 () () ()
2 39)
15 'c_char' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
CHARACTER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '1') () 0
() () () 2 33)
16 'c_double' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
REAL ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 () ()
() 2 25)
17 'c_double_complex' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
COMPLEX ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 ()
() () 2 29)
18 'c_f_pointer' '__iso_c_binding' '__iso_c_binding_c_f_pointer' 1 ((
PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE
ALWAYS_EXPLICIT IS_ISO_C) (UNKNOWN 0 0 0 0 UNKNOWN ()) 19 0 (20 21 22) ()
0 () () () 2 46)
23 'c_f_procpointer' '__iso_c_binding' '__iso_c_binding_c_f_procpointer'
1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE
IS_ISO_C) (UNKNOWN 0 0 0 0 UNKNOWN ()) 24 0 (25 26) () 0 () () () 2 50)
27 'c_float' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
REAL ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '4') () 0 () ()
() 2 24)
28 'c_float128' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
REAL ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '16') () 0 () ()
() 2 27)
29 'c_float128_complex' '__iso_c_binding' '' 1 ((PARAMETER
UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (
INTEGER 4 0 1 1 COMPLEX ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ())
0 '16') () 0 () () () 2 31)
30 'c_float_complex' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
COMPLEX ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '4') () 0 ()
() () 2 28)
31 'c_form_feed' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (CHARACTER 1 0 1
1 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 0 () (
CONSTANT (CHARACTER 1 0 1 1 UNKNOWN (())) 0 1 '\U0000000c') () 0 () () ()
2 37)
32 'c_funloc' '__iso_c_binding' '__iso_c_binding_c_funloc' 1 ((
PROCEDURE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 EXTERNAL
FUNCTION PURE IS_ISO_C) (DERIVED 2 0 0 0 DERIVED ()) 0 0 () () 32 () ()
() 2 49)
33 'c_funptr' '__iso_c_binding' '' 1 ((PROCEDURE UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 FUNCTION GENERIC) (UNKNOWN 0 0 0 0
UNKNOWN ()) 0 0 () () 0 () () () 2 44)
34 'c_horizontal_tab' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (CHARACTER 1 0 1
1 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 0 () (
CONSTANT (CHARACTER 1 0 1 1 UNKNOWN (())) 0 1 '\U00000009') () 0 () () ()
2 40)
35 'c_int' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '4') () 0 ()
() () 2 0)
36 'c_int128_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '16') () 0 ()
() () 2 13)
37 'c_int16_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '2') () 0 ()
() () 2 10)
38 'c_int32_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '4') () 0 ()
() () 2 11)
39 'c_int64_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 ()
() () 2 12)
40 'c_int8_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '1') () 0 ()
() () 2 9)
41 'c_int_fast128_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '16') () 0 ()
() () 2 23)
42 'c_int_fast16_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 ()
() () 2 20)
43 'c_int_fast32_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 ()
() () 2 21)
44 'c_int_fast64_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 ()
() () 2 22)
45 'c_int_fast8_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '1') () 0 ()
() () 2 19)
46 'c_int_least128_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '16') () 0 ()
() () 2 18)
47 'c_int_least16_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '2') () 0 ()
() () 2 15)
48 'c_int_least32_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '4') () 0 ()
() () 2 16)
49 'c_int_least64_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 ()
() () 2 17)
50 'c_int_least8_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '1') () 0 ()
() () 2 14)
51 'c_intmax_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 ()
() () 2 4)
52 'c_intptr_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 ()
() () 2 5)
53 'c_loc' '__iso_c_binding' '__iso_c_binding_c_loc' 1 ((PROCEDURE
UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 EXTERNAL FUNCTION PURE
IS_ISO_C) (DERIVED 3 0 0 0 DERIVED ()) 0 0 () () 53 () () () 2 48)
54 'c_long' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 ()
() () 2 2)
55 'c_long_double' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
REAL ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '10') () 0 () ()
() 2 26)
56 'c_long_double_complex' '__iso_c_binding' '' 1 ((PARAMETER
UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (
INTEGER 4 0 1 1 COMPLEX ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ())
0 '10') () 0 () () () 2 30)
57 'c_long_long' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 ()
() () 2 3)
58 'c_new_line' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (CHARACTER 1 0 1
1 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 0 () (
CONSTANT (CHARACTER 1 0 1 1 UNKNOWN (())) 0 1 '\U0000000a') () 0 () () ()
2 38)
59 'c_null_char' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (CHARACTER 1 0 1
1 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 0 () (
CONSTANT (CHARACTER 1 0 1 1 UNKNOWN (())) 0 1 '\U00000000') () 0 () () ()
2 34)
60 'c_null_funptr' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_BIND_C IS_C_INTEROP IS_ISO_C) (
DERIVED 2 0 1 1 UNKNOWN ()) 0 0 () (STRUCTURE (DERIVED 2 0 0 0 DERIVED ())
0 (((NULL (UNKNOWN 0 0 0 1 UNKNOWN ()) 0) ())) ()) () 0 () () () 2 45)
61 'c_null_ptr' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_BIND_C IS_C_INTEROP IS_ISO_C) (
DERIVED 3 0 1 1 UNKNOWN ()) 0 0 () (STRUCTURE (DERIVED 3 0 0 0 DERIVED ())
0 (((NULL (UNKNOWN 0 0 0 1 UNKNOWN ()) 0) ())) ()) () 0 () () () 2 43)
62 'c_ptr' '__iso_c_binding' '' 1 ((PROCEDURE UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 FUNCTION GENERIC) (UNKNOWN 0 0 0 0
UNKNOWN ()) 0 0 () () 0 () () () 2 42)
63 'c_ptrdiff_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 ()
() () 2 6)
64 'c_short' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '2') () 0 ()
() () 2 1)
65 'c_signed_char' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '1') () 0 ()
() () 2 8)
66 'c_size_t' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1
INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 ()
() () 2 7)
67 'c_sizeof' '__iso_c_binding' '' 1 ((PROCEDURE UNKNOWN-INTENT
UNKNOWN-PROC DECL UNKNOWN 0 0 INTRINSIC FUNCTION) (INTEGER 8 0 0 0
INTEGER ()) 68 0 (69) () 0 () () () 2 48)
70 'c_vertical_tab' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (CHARACTER 1 0 1
1 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 0 () (
CONSTANT (CHARACTER 1 0 1 1 UNKNOWN (())) 0 1 '\U0000000b') () 0 () () ()
2 41)
71 'hello' 'matrix' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL
UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 72 0 (73) () 0 () ()
() 0 0)
74 'matrix' 'matrix' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN
UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0)
75 'runner' 'matrix' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL
UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 76 0 (77 78) () 0 ()
() () 0 0)
10 'C_ptr_1' '__iso_c_binding' '' 9 ((DERIVED IN UNKNOWN-PROC UNKNOWN
UNKNOWN 0 0 VALUE DUMMY) (DERIVED 3 0 0 0 DERIVED ()) 0 0 () () 0 () ()
() 0 0 0)
11 'C_ptr_2' '__iso_c_binding' '' 9 ((DERIVED IN UNKNOWN-PROC UNKNOWN
UNKNOWN 0 0 OPTIONAL VALUE DUMMY) (DERIVED 3 0 0 0 DERIVED ()) 0 0 () ()
0 () () () 0 0 0)
20 'Cptr' '__iso_c_binding' '' 19 ((DERIVED IN UNKNOWN-PROC UNKNOWN
UNKNOWN 0 0 VALUE DUMMY) (DERIVED 3 0 0 0 DERIVED ()) 0 0 () () 0 () ()
() 0 0 0)
21 'fptr' '__iso_c_binding' '' 19 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC
UNKNOWN UNKNOWN 0 0 POINTER DUMMY) (VOID 0 0 0 0 VOID ()) 0 0 () () 0 ()
() () 0 0)
22 'shape' '__iso_c_binding' '' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN
UNKNOWN 0 0 DIMENSION OPTIONAL DUMMY) (VOID 4 0 0 0 VOID ()) 0 0 () (1 0
ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () ()
() 0 0)
25 'Cptr' '__iso_c_binding' '' 24 ((DERIVED IN UNKNOWN-PROC UNKNOWN
UNKNOWN 0 0 VALUE DUMMY) (DERIVED 2 0 0 0 DERIVED ()) 0 0 () () 0 () ()
() 0 0 0)
26 'fptr' '__iso_c_binding' '' 24 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC
UNKNOWN UNKNOWN 0 0 DUMMY PROC_POINTER) (VOID 0 0 0 0 VOID ()) 0 0 () ()
0 () () () 0 0)
69 'x' '' '' 68 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) (
UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0)
73 'task_num' '' '' 72 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
77 'typ' '' '' 76 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN
0 0 VALUE DUMMY) (INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
78 'data' '' '' 76 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN
UNKNOWN 0 0 VALUE DUMMY) (DERIVED 3 0 0 0 DERIVED ()) 0 0 () () 0 () ()
() 0 0)
)
('C_funptr' 0 2 'C_ptr' 0 3 '__iso_c_binding' 0 6 'c_alert' 0 7
'c_associated' 0 8 'c_backspace' 0 12 'c_bool' 0 13 'c_carriage_return'
0 14 'c_char' 0 15 'c_double' 0 16 'c_double_complex' 0 17 'c_f_pointer'
0 18 'c_f_procpointer' 0 23 'c_float' 0 27 'c_float128' 0 28
'c_float128_complex' 0 29 'c_float_complex' 0 30 'c_form_feed' 0 31
'c_funloc' 0 32 'c_funptr' 0 33 'c_horizontal_tab' 0 34 'c_int' 0 35
'c_int128_t' 0 36 'c_int16_t' 0 37 'c_int32_t' 0 38 'c_int64_t' 0 39
'c_int8_t' 0 40 'c_int_fast128_t' 0 41 'c_int_fast16_t' 0 42
'c_int_fast32_t' 0 43 'c_int_fast64_t' 0 44 'c_int_fast8_t' 0 45
'c_int_least128_t' 0 46 'c_int_least16_t' 0 47 'c_int_least32_t' 0 48
'c_int_least64_t' 0 49 'c_int_least8_t' 0 50 'c_intmax_t' 0 51
'c_intptr_t' 0 52 'c_loc' 0 53 'c_long' 0 54 'c_long_double' 0 55
'c_long_double_complex' 0 56 'c_long_long' 0 57 'c_new_line' 0 58
'c_null_char' 0 59 'c_null_funptr' 0 60 'c_null_ptr' 0 61 'c_ptr' 0 62
'c_ptrdiff_t' 0 63 'c_short' 0 64 'c_signed_char' 0 65 'c_size_t' 0 66
'c_sizeof' 0 67 'c_vertical_tab' 0 70 'hello' 0 71 'matrix' 0 74 'runner'
0 75)
Module matrix
Use, Intrinsic :: ISO_C_BINDING
Implicit None
Contains
Subroutine hello(task_num)
Integer, Intent(In) :: task_num
print *, task_num
End Subroutine
Subroutine runner(typ, data)
Integer(Kind=C_INT), VALUE :: typ
Type(C_PTR), VALUE :: data
Integer, Pointer :: c(:)
call c_f_pointer(data, c, [1])
if(typ == 1) then
call hello(Int(c(1)) )
else
print *, "Unknown task type"
end if
End Subroutine
End Module matrix
Program task_universe
Use, Intrinsic :: ISO_C_BINDING
Use :: quicksched
Use :: matrix
Implicit None
Type(C_PTR) :: sched
Integer :: i,j
Integer(Kind=C_INT), Dimension(10), Target :: datas
Type(C_FUNPTR) :: fun
Integer(Kind=C_INT), Parameter :: nr_threads=2
fun = C_FUNLOC(runner)
sched = f_qsched_create()
call qsched_init(sched, nr_threads, 0)
do i = 1, 100
datas(1) = Int(i, C_INT)
j = qsched_addtask(sched, 1, 0, C_LOC(datas(1)), INT(sizeof(j)*1, C_INT), 1)
if(j >= 2 .and. mod(j,2) == 0) call qsched_addunlock(sched, INT(j, C_INT), INT(j-2, C_INT))
end do
Call qsched_run(sched, nr_threads, fun)
call f_qsched_destroy(sched)
End Program
...@@ -26,7 +26,7 @@ GIT_CMD = @GIT_CMD@ ...@@ -26,7 +26,7 @@ GIT_CMD = @GIT_CMD@
# Build the libquicksched library # Build the libquicksched library
lib_LTLIBRARIES = libquicksched.la lib_LTLIBRARIES = libquicksched.la
libquicksched_la_SOURCES = qsched.c queue.c libquicksched_la_SOURCES = qsched.c queue.c fqsched.F90
# List required headers # List required headers
include_HEADERS = atomic.h lock.h queue.h qsched.h task.h res.h error.h include_HEADERS = atomic.h lock.h queue.h qsched.h task.h res.h error.h
......
...@@ -6,12 +6,25 @@ Module quicksched ...@@ -6,12 +6,25 @@ Module quicksched
!!TODO May need a qsched_get_qsched to get a pointer? !!TODO May need a qsched_get_qsched to get a pointer?
Type(C_PTR) Function f_qsched_create() BIND(C)
Use, Intrinsic :: ISO_C_BINDING
Implicit None
End Function
Subroutine f_qsched_destroy(s) BIND(C)
Use, Intrinsic :: ISO_C_BINDING
Implicit None
Type(C_PTR), VALUE :: s
End Subroutine
Subroutine qsched_init(s, nr_queues, flags) BIND(C) Subroutine qsched_init(s, nr_queues, flags) BIND(C)
Use, Intrinsic :: ISO_C_BINDING Use, Intrinsic :: ISO_C_BINDING
Implicit None Implicit None
Type(C_PTR), Intent(InOut), VALUE :: s Type(C_PTR), VALUE :: s
Integer(Kind=C_INT), Intent(In), VALUE :: nr_queues Integer(Kind=C_INT), Intent(In), VALUE :: nr_queues
Integer(Kind=C_INT), Intent(In), VALUE :: flags Integer(Kind=C_INT), Intent(In), VALUE :: flags
End Subroutine End Subroutine
...@@ -20,7 +33,7 @@ Module quicksched ...@@ -20,7 +33,7 @@ Module quicksched
Use, Intrinsic :: ISO_C_BINDING Use, Intrinsic :: ISO_C_BINDING
Implicit None Implicit None
Type(C_PTR), Intent(InOut), VALUE :: s Type(C_PTR), VALUE :: s
Integer(Kind=C_INT), Intent(In), VALUE :: owner Integer(Kind=C_INT), Intent(In), VALUE :: owner
Integer(Kind=C_INT), Intent(In), VALUE :: parent Integer(Kind=C_INT), Intent(In), VALUE :: parent
End Function End Function
...@@ -29,7 +42,7 @@ Module quicksched ...@@ -29,7 +42,7 @@ Module quicksched
Use, Intrinsic :: ISO_C_BINDING Use, Intrinsic :: ISO_C_BINDING
Implicit None Implicit None
Type(C_PTR), Intent(InOut), VALUE :: s Type(C_PTR), VALUE :: s
Integer(Kind=C_INT), Intent(In), VALUE :: t Integer(Kind=C_INT), Intent(In), VALUE :: t
Integer(Kind=C_INT), Intent(In), VALUE :: res Integer(Kind=C_INT), Intent(In), VALUE :: res
End Subroutine End Subroutine
...@@ -38,7 +51,7 @@ Module quicksched ...@@ -38,7 +51,7 @@ Module quicksched
Use, Intrinsic :: ISO_C_BINDING Use, Intrinsic :: ISO_C_BINDING
Implicit None Implicit None
Type(C_PTR), Intent(InOut), VALUE :: s Type(C_PTR), VALUE :: s
Integer(Kind=C_INT), Intent(In), VALUE :: ta Integer(Kind=C_INT), Intent(In), VALUE :: ta
Integer(Kind=C_INT), Intent(In), VALUE :: tb Integer(Kind=C_INT), Intent(In), VALUE :: tb
...@@ -48,10 +61,10 @@ Module quicksched ...@@ -48,10 +61,10 @@ Module quicksched
Use, Intrinsic :: ISO_C_BINDING Use, Intrinsic :: ISO_C_BINDING
Implicit None Implicit None
Type(C_PTR), Intent(InOut), VALUE :: s Type(C_PTR), VALUE :: s
Integer(Kind=C_INT), Intent(In), VALUE :: types Integer(Kind=C_INT), Intent(In), VALUE :: types
Integer(Kind=C_INT), Intent(In), VALUE :: flags !TODO Careful with unsigned Integer(Kind=C_INT), Intent(In), VALUE :: flags !TODO Careful with unsigned
Type(C_PTR), Intent(In), VALUE :: data Type(C_PTR), VALUE :: data
Integer(Kind=C_INT), Intent(In), VALUE :: data_size Integer(Kind=C_INT), Intent(In), VALUE :: data_size
IntegeR(Kind=C_INT), Intent(In), VALUE :: cost IntegeR(Kind=C_INT), Intent(In), VALUE :: cost
...@@ -61,7 +74,7 @@ Module quicksched ...@@ -61,7 +74,7 @@ Module quicksched
Use, Intrinsic :: ISO_C_BINDING Use, Intrinsic :: ISO_C_BINDING
Implicit None Implicit None
Type(C_PTR), Intent(InOut), VALUE :: s Type(C_PTR), VALUE :: s
Integer(Kind=C_INT), Intent(In), VALUE :: t Integer(Kind=C_INT), Intent(In), VALUE :: t
Integer(Kind=C_INT), Intent(In), VALUE :: res Integer(Kind=C_INT), Intent(In), VALUE :: res
End Subroutine End Subroutine
...@@ -70,7 +83,7 @@ Module quicksched ...@@ -70,7 +83,7 @@ Module quicksched
Use, Intrinsic :: ISO_C_BINDING Use, Intrinsic :: ISO_C_BINDING
Implicit None Implicit None
Type(C_PTR), Intent(InOut), VALUE :: s Type(C_PTR), VALUE :: s
End Subroutine End Subroutine
...@@ -78,7 +91,7 @@ Module quicksched ...@@ -78,7 +91,7 @@ Module quicksched
Use, Intrinsic :: ISO_C_BINDING Use, Intrinsic :: ISO_C_BINDING
Implicit None Implicit None
Type(C_PTR), Intent(InOut), VALUE :: s Type(C_PTR), VALUE :: s
Integer(Kind=C_INT), Intent(In), VALUE :: nr_threads Integer(Kind=C_INT), Intent(In), VALUE :: nr_threads
Type(C_FUNPTR), INTENT(In), VALUE :: fun Type(C_FUNPTR), INTENT(In), VALUE :: fun
End Subroutine End Subroutine
...@@ -87,7 +100,7 @@ Module quicksched ...@@ -87,7 +100,7 @@ Module quicksched
Use, Intrinsic :: ISO_C_BINDING Use, Intrinsic :: ISO_C_BINDING
Implicit None Implicit None
Type(C_PTR), Intent(InOut), VALUE :: s Type(C_PTR), VALUE :: s
End Subroutine End Subroutine
...@@ -97,7 +110,7 @@ Module quicksched ...@@ -97,7 +110,7 @@ Module quicksched
Use, Intrinsic:: ISO_C_BINDING Use, Intrinsic:: ISO_C_BINDING
Implicit None Implicit None
Type(C_PTR), Intent(InOut), VALUE :: s Type(C_PTR), VALUE :: s
Integer(Kind=C_INT), Intent(In), VALUE :: nr_tasks Integer(Kind=C_INT), Intent(In), VALUE :: nr_tasks
Integer(Kind=C_INT), Intent(In), VALUE :: nr_res Integer(Kind=C_INT), Intent(In), VALUE :: nr_res
Integer(Kind=C_INT), Intent(In), VALUE :: nr_deps Integer(Kind=C_INT), Intent(In), VALUE :: nr_deps
...@@ -111,7 +124,7 @@ Module quicksched ...@@ -111,7 +124,7 @@ Module quicksched
Use, Intrinsic:: ISO_C_BINDING Use, Intrinsic:: ISO_C_BINDING
Implicit None Implicit None
Type(C_PTR), Intent(InOut), VALUE :: s Type(C_PTR), VALUE :: s
Integer(Kind=C_INT), Intent(In), VALUE :: res Integer(Kind=C_INT), Intent(In), VALUE :: res
Integer(Kind=C_INT), Intent(In), VALUE :: owner Integer(Kind=C_INT), Intent(In), VALUE :: owner
......
...@@ -1646,3 +1646,16 @@ void qsched_init ( struct qsched *s , int nr_queues , int flags ) { ...@@ -1646,3 +1646,16 @@ void qsched_init ( struct qsched *s , int nr_queues , int flags ) {
lock_init( &s->lock ); lock_init( &s->lock );
} }
struct qsched * f_qsched_create()
{
struct qsched *s;
s = (struct qsched *) malloc(sizeof(struct qsched));
return s;
}
void f_qsched_destroy( struct qsched *s)
{
free(s);
}
...@@ -211,3 +211,6 @@ void qsched_reset ( struct qsched *s ); ...@@ -211,3 +211,6 @@ void qsched_reset ( struct qsched *s );
void qsched_addtask_dynamic ( struct qsched *s , int type , unsigned int flags , void *data , int data_size , int cost , qsched_res_t *locks , int nr_locks , qsched_res_t *uses , int nr_uses ); void qsched_addtask_dynamic ( struct qsched *s , int type , unsigned int flags , void *data , int data_size , int cost , qsched_res_t *locks , int nr_locks , qsched_res_t *uses , int nr_uses );
void qsched_ensure ( struct qsched *s , int nr_tasks , int nr_res , int nr_deps , int nr_locks , int nr_uses , int size_data ); void qsched_ensure ( struct qsched *s , int nr_tasks , int nr_res , int nr_deps , int nr_locks , int nr_uses , int size_data );
void qsched_res_own ( struct qsched *s , qsched_res_t res , int owner ); void qsched_res_own ( struct qsched *s , qsched_res_t res , int owner );
struct qsched * f_qsched_create();
void f_qsched_destroy( struct qsched *s);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment