function cosineC(a,b,c)BIND(C,NAME='cosineC_C')
use, intrinsic :: iso_c_binding
implicit none
real(C_DOUBLE), value :: a,b,c
real(C_DOUBLE) :: cosineC
real*8 val
val = ((a*a+b*b-c*c)/(2*a*b))
cosineC = acos(val)
end function cosineC