Files
CoolProp/wrappers/Fortran/detailed_example/cpinterface.f90

67 lines
2.6 KiB
Fortran

MODULE CPINTERFACE
INTERFACE
FUNCTION PropsSI (output, name1, prop1, name2, prop2, fluidname) BIND(C, NAME='PropsSI')
use iso_c_binding
real(C_DOUBLE) :: PropsSI
character(KIND=c_char) :: output(*)
character(c_char) :: name1(*)
real(C_DOUBLE), VALUE :: prop1
character(c_char) :: name2(*)
real(C_DOUBLE), VALUE :: prop2
character(kind=c_char) :: fluidname(*)
END FUNCTION PropsSI
FUNCTION get_input_pair_index(input) BIND(C, NAME='get_input_pair_index')
use iso_c_binding
integer(C_long) :: get_input_pair_index
character(KIND=c_char) :: input(*)
END FUNCTION get_input_pair_index
FUNCTION get_param_index(input) BIND(C, NAME='get_param_index')
use iso_c_binding
integer(C_long) :: get_param_index
character(KIND=c_char) :: input(*)
END FUNCTION get_param_index
FUNCTION AbstractState_factory(backend, fluidname, errcode, buffer, buffersize) BIND(C, NAME='AbstractState_factory')
use iso_c_binding
integer(C_long) :: AbstractState_factory
character(kind=c_char):: backend(*)
character(kind=c_char) :: fluidname(*)
integer(C_long) :: errcode
character(kind=c_char) :: buffer(*)
integer(C_long), VALUE :: buffersize
END FUNCTION AbstractState_factory
SUBROUTINE AbstractState_update(handle, input, prop1, prop2, errcode, &
buffer, buffersize) BIND(C, NAME='AbstractState_update')
use iso_c_binding
integer(C_long), VALUE :: handle
integer(C_long), VALUE :: input
real(C_DOUBLE), VALUE :: prop1
real(C_DOUBLE), VALUE :: prop2
integer(C_long) :: errcode
character(kind=c_char) :: buffer(*)
integer(C_long), VALUE :: buffersize
END SUBROUTINE AbstractState_update
FUNCTION AbstractState_keyed_output(handle, output, errcode, &
buffer, buffersize) BIND(C, NAME='AbstractState_keyed_output')
use iso_c_binding
real(C_DOUBLE) :: AbstractState_keyed_output
integer(C_long),VALUE :: handle
integer(C_long),VALUE :: output
integer(C_long) :: errcode
character(kind=c_char) :: buffer(*)
integer(C_long), VALUE :: buffersize
END FUNCTION AbstractState_keyed_output
END INTERFACE
END MODULE CPINTERFACE