function [bonds,status] = cicause(bonds,default);
% cicause - Sets causality for C & I components
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%%%% Model Transformation Tools %%%%%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Matlab function cicause
% [bonds,status] = cicause(bonds,default)
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %% Version control history
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %% $Id$
% %% $Log$
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Copyright (c) P.J. Gawthrop, 1996.
if (norm(bonds)>1)
if (bonds(1)==-bonds(2)) % Over causal
status = 1;
else % Causal
status = 0;
end;
elseif norm(bonds)==0 % Acausal
% bonds = default*[1 1]; %Set integral causality
% status = 0;
status = -1;
else % Set causality
% Effort
if bonds(1)==0
status = 0;
bonds(1) = bonds(2);
end;
% Flow
if bonds(2)==0
status = 0;
bonds(2) = bonds(1);
end;
end;