diff --git a/wrappers/Julia/CoolProp.jl b/wrappers/Julia/CoolProp.jl index 7a7c2360..0671a418 100644 --- a/wrappers/Julia/CoolProp.jl +++ b/wrappers/Julia/CoolProp.jl @@ -2,6 +2,16 @@ module CoolProp export F2K, K2F, HAPropsSI, PropsSI, PhaseSI, get_global_param_string, get_param_index, get_input_pair_index, AbstractState_factory, AbstractState_free, AbstractState_update, AbstractState_keyed_output +# Check the current Julia version to make this Julia 0.4 code compatible with older version +if VERSION <= VersionNumber(0,4) + typealias UInt8 Uint8 + typealias Ref Ptr + typealias RefValue Array + errcode = Array(Clong, 1) +else + errcode = Ref{Clong}(0) +end + const buffer_length = 255 message_buffer = Array(UInt8, buffer_length) @@ -72,14 +82,12 @@ end # Low-level access # --------------------------------- -errcode = Ref{Clong}(0) - # Generate an AbstractState instance, return an integer handle to the state class generated to be used in the other low-level accessor functions # param backend The backend you will use, "HEOS", "REFPROP", etc. # param fluids '&' delimited list of fluids # return A handle to the state class generated function AbstractState_factory(backend::String, fluids::String) - AbstractState = ccall( (:AbstractState_factory, "CoolProp"), Clong, (Ptr{UInt8},Ptr{UInt8},Ref{Clong},Ptr{UInt8},Clong), backend,fluids,errcode::Base.RefValue{Clong},message_buffer::Array{Uint8,1},buffer_length) + AbstractState = ccall( (:AbstractState_factory, "CoolProp"), Clong, (Ptr{UInt8},Ptr{UInt8},Ref{Clong},Ptr{UInt8},Clong), backend,fluids,errcode::RefValue{Clong,1},message_buffer::Array{Uint8,1},buffer_length) if errcode[] != 0 if errcode[] == 1 error("CoolProp: ", bytestring(convert(Ptr{UInt8}, pointer(message_buffer)))) @@ -95,7 +103,7 @@ end # Release a state class generated by the low-level interface wrapper # param handle The integer handle for the state class stored in memory function AbstractState_free(handle::Clong) - ccall( (:AbstractState_free, "CoolProp"), Void, (Clong,Ref{Clong},Ptr{UInt8},Clong), handle,errcode::Base.RefValue{Clong},message_buffer::Array{Uint8,1},buffer_length) + ccall( (:AbstractState_free, "CoolProp"), Void, (Clong,Ref{Clong},Ptr{UInt8},Clong), handle,errcode::RefValue{Clong,1},message_buffer::Array{Uint8,1},buffer_length) if errcode[] != 0 if errcode[] == 1 error("CoolProp: ", bytestring(convert(Ptr{UInt8}, pointer(message_buffer)))) @@ -112,7 +120,7 @@ end # param handle The integer handle for the state class stored in memory # param fractions The array of fractions function AbstractState_set_fractions(handle::Clong,fractions::Array) - ccall( (:AbstractState_set_fractions, "CoolProp"), Void, (Clong,Ptr{Cdouble},Clong,Ref{Clong},Ptr{UInt8},Clong), handle,fractions,length(fractions),errcode::Base.RefValue{Clong},message_buffer::Array{Uint8,1},buffer_length) + ccall( (:AbstractState_set_fractions, "CoolProp"), Void, (Clong,Ptr{Cdouble},Clong,Ref{Clong},Ptr{UInt8},Clong), handle,fractions,length(fractions),errcode::RefValue{Clong,1},message_buffer::Array{Uint8,1},buffer_length) if errcode[] != 0 if errcode[] == 1 error("CoolProp: ", bytestring(convert(Ptr{UInt8}, pointer(message_buffer)))) @@ -131,7 +139,7 @@ end # param value1 The first input value # param value2 The second input value function AbstractState_update(handle::Clong,input_pair::Clong,value1::Number,value2::Number) - ccall( (:AbstractState_update, "CoolProp"), Void, (Clong,Clong,Cdouble,Cdouble,Ref{Clong},Ptr{UInt8},Clong), handle,input_pair,value1,value2,errcode::Base.RefValue{Clong},message_buffer::Array{Uint8,1},buffer_length) + ccall( (:AbstractState_update, "CoolProp"), Void, (Clong,Clong,Cdouble,Cdouble,Ref{Clong},Ptr{UInt8},Clong), handle,input_pair,value1,value2,errcode::RefValue{Clong,1},message_buffer::Array{Uint8,1},buffer_length) if errcode[] != 0 if errcode[] == 1 error("CoolProp: ", bytestring(convert(Ptr{UInt8}, pointer(message_buffer)))) @@ -148,7 +156,7 @@ end # param handle The integer handle for the state class stored in memory # param param The integer value for the parameter you want function AbstractState_keyed_output(handle::Clong, param::Clong) - output = ccall( (:AbstractState_keyed_output, "CoolProp"), Cdouble, (Clong,Clong,Ref{Clong},Ptr{UInt8},Clong), handle,param,errcode::Base.RefValue{Clong},message_buffer::Array{Uint8,1},buffer_length) + output = ccall( (:AbstractState_keyed_output, "CoolProp"), Cdouble, (Clong,Clong,Ref{Clong},Ptr{UInt8},Clong), handle,param,errcode::RefValue{Clong,1},message_buffer::Array{Uint8,1},buffer_length) if errcode[] != 0 if errcode[] == 1 error("CoolProp: ", bytestring(convert(Ptr{UInt8}, pointer(message_buffer))))