mirror of
https://github.com/CoolProp/CoolProp.git
synced 2026-04-23 03:00:17 -04:00
46 lines
1.6 KiB
Scilab
46 lines
1.6 KiB
Scilab
[v, o] = getversion();
|
|
|
|
// Idiotically, scilab can only handle functions in shared libraries that take
|
|
// all arguments by reference. Why? Who knows. I've filed an issue about this
|
|
// and there was no reply.
|
|
//
|
|
// Conveniently, FORTRAN77 also requires that all functions take all arguments by
|
|
// reference, and we added FORTRAN77-compatible versions of HAPropsSI and PropsSI
|
|
// (but no other functions). So these reference-only functions will work with
|
|
// scilab's crippled shared library interface.
|
|
//
|
|
// Below we have made small Scilab wrapper functions around these FORTRAN77-compatible
|
|
// functions for convenience.
|
|
if (getos() == "Windows") then
|
|
if o(2) == "x64" then
|
|
link('CoolProp_x64.dll', ['propssi_','hapropssi_'], 'c');
|
|
else
|
|
link('CoolProp.dll', ['propssi_','hapropssi_'], 'c');
|
|
end
|
|
elseif (getos() == "Darwin") then
|
|
link('libCoolProp.dylib', ['propssi_','hapropssi_'], 'c');
|
|
else // Linux
|
|
link('libCoolProp.so', ['propssi_','hapropssi_'], 'c');
|
|
end
|
|
|
|
// Uncomment the following line to see what functions were found in the shared library
|
|
link('show');
|
|
|
|
funcprot(0)
|
|
|
|
function [out]=PropsSI(Output,Input1,Value1,Input2,Value2,Name);
|
|
out = call("propssi_",Output,1,"c",Input1,2,"c",Value1,3,"d",Input2,4,"c",Value2,5,"d",Name,6,"c","out",[1,1],7,"d");
|
|
endfunction;
|
|
|
|
function [out]=HAPropsSI(Output,Input1,Value1,Input2,Value2,Input3,Value3);
|
|
out = call("hapropssi_",Output,1,"c",Input1,2,"c",Value1,3,"d",Input2,4,"c",Value2,5,"d",Input3,6,"c",Value3,7,"d","out",[1,1],8,"d");
|
|
endfunction;
|
|
|
|
[rho] = PropsSI("D","T",298.15,"P",101325.0,"Air");
|
|
disp(rho)
|
|
|
|
[h] = HAPropsSI("H","T",298.15,"P",101325.0,"W",0.003);
|
|
disp(h)
|
|
|
|
//ulink();
|