function printcr(name,outport,bond_number,cr,args,RHS_cause,eqnfile)
% printcr - prints cr and arguments
% Assumes that the (multiport) component is unicausal.
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%%%% Model Transformation Tools %%%%%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Matlab function printcr
% printcr(name,outport,bond_number,cr,args,RHS_cause,eqnfile
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %% Version control history
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %% $Id$
% %% $Log$
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if nargin<7
eqnfile = 'stdout';
end;
% Find the number of ports
ports = length(RHS_cause);
% Print the CR
if length(cr) == 0 % No CR given - use unity CR
fprintf(eqnfile, '%s;\n', varname(name,bond_number(outport), RHS_cause(outport)));
else % CR exists
fprintf(eqnfile, '%s(', cr); % The CR name
if ports>1 % Multi ports - port no. is first arg of CR
fprintf(eqnfile, '%1.0f,', outport);
end;
fprintf(eqnfile, '%s', args); % Print the arguments
for port = 1:ports % Print the input causalities and values
fprintf(eqnfile, '\n\t\t,%s,%s', cause2name(RHS_cause(port)), ...
varname(name,bond_number(port), RHS_cause(port)));
end;
fprintf(eqnfile, '\n\t\t);\n');
end;