function macon(varargin)
persistent dd ke ;
if isempty(dd), dd=0; end;
global ml5mco_3; if isempty(ml5mco_3), ml5mco_3=0; end;
global ml5mco_6; if isempty(ml5mco_6), ml5mco_6=0; end;
global ml5mco_4; if isempty(ml5mco_4), ml5mco_4=0; end;
global ml5mco_2; if isempty(ml5mco_2), ml5mco_2=0; end;
global ml5mco_5; if isempty(ml5mco_5), ml5mco_5=0; end;
global ml5mco_1; if isempty(ml5mco_1), ml5mco_1=0; end;
if isempty(ke), ke=0; end;
global ml5mco_7; if isempty(ml5mco_7), ml5mco_7=0; end;
%***BEGIN PROLOGUE MACON
%***SUBSIDIARY
%***PURPOSE Subsidiary to BVSUP
%***LIBRARY SLATEC
%***TYPE SINGLE PRECISION (MACON-S, DMACON-D)
%***AUTHOR (UNKNOWN)
%***DESCRIPTION
%
% Sets up machine constants using R1MACH
%
%***SEE ALSO BVSUP
%***ROUTINES CALLED R1MACH
%***COMMON BLOCKS ML5MCO
%***REVISION HISTORY (YYMMDD)
% 750601 DATE WRITTEN
% 890531 Changed all specific intrinsics to generic. (WRB)
% 890921 Realigned order of variables in certain COMMON blocks.
% (WRB)
% 891214 Prologue converted to Version 4.0 format. (BAB)
% 900328 Added TYPE section. (WRB)
%***end PROLOGUE MACON
% common :: ;
%% common /ml5mco/ uro , sru , eps , sqovfl , twou , fouru , lpar;
%% common /ml5mco/ ml5mco_1 , ml5mco_2 , ml5mco_3 , ml5mco_4 , ml5mco_5 , ml5mco_6 , ml5mco_7;
%***FIRST EXECUTABLE STATEMENT MACON
[ml5mco_1 ]=r1mach(4);
ml5mco_2 = sqrt(ml5mco_1);
dd = -log10(ml5mco_1);
ml5mco_7 = fix(0.5.*dd);
ke = fix(0.5 + 0.75.*dd);
ml5mco_3 = 10..^(-2.*ke);
ml5mco_4 = sqrt(r1mach(2));
ml5mco_5 = 2.0.*ml5mco_1;
ml5mco_6 = 4.0.*ml5mco_1;
end
%DECK MC20AD