7 CHARACTER(10) :: str =
"Hello"
9 data val / 1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0 /
10 handle = fvhcall_install(
'./libvhcall.so')
12 sym = fvhcall_find(handle,
'VH_SBR1')
13 ca = fvhcall_args_alloc()
16 WRITE(*,*)
"VH subroutine INPUT(1) > ",str
17 ir = fvhcall_invoke_with_args(sym, ca)
19 WRITE(*,*)
"Fail to invoke subroutine"
22 WRITE(*,*)
"VH subroutine OUTPUT(1) > ",str
24 sym = fvhcall_find(handle,
'VH_SBR2')
25 ca2 = fvhcall_args_alloc_num(4)
31 WRITE(*,*)
"VH subroutine INPUT(2) > ",val
32 ir = fvhcall_invoke_with_args(sym, ca2)
34 WRITE(*,*)
"Fail to invoke subroutine"
37 WRITE(*,*)
"VH subroutine OUTPUT(2) > ",val
38 CALL fvhcall_args_free(ca2)
40 sym = fvhcall_find(handle,
'VH_MOD::VH_FUNC')
41 CALL fvhcall_args_clear(ca)
42 ir = fvhcall_invoke_with_args(sym, ca, retval)
44 WRITE(*,*)
"Fail to invoke function"
47 WRITE(*,*)
"VH function return ",retval
48 CALL fvhcall_args_free(ca)
49 ir = fvhcall_uninstall(handle)