<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki-pnb.eri.ucsb.edu/index.php?action=history&amp;feed=atom&amp;title=Par_input.m</id>
	<title>Par input.m - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-pnb.eri.ucsb.edu/index.php?action=history&amp;feed=atom&amp;title=Par_input.m"/>
	<link rel="alternate" type="text/html" href="https://wiki-pnb.eri.ucsb.edu/index.php?title=Par_input.m&amp;action=history"/>
	<updated>2026-05-11T17:04:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://wiki-pnb.eri.ucsb.edu/index.php?title=Par_input.m&amp;diff=212&amp;oldid=prev</id>
		<title>128.111.101.185: Created page with '&lt;pre&gt; %PAR_INPUT.M %11/4/99 code pulled from goplot4.m %parfile,gp,dp %called by goac9_tiho Added by Erik S 6/6/2010  function [par,parnames]=par_input(varargin) %assign command …'</title>
		<link rel="alternate" type="text/html" href="https://wiki-pnb.eri.ucsb.edu/index.php?title=Par_input.m&amp;diff=212&amp;oldid=prev"/>
		<updated>2010-08-05T23:50:58Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&amp;lt;pre&amp;gt; %PAR_INPUT.M %11/4/99 code pulled from goplot4.m %parfile,gp,dp %called by goac9_tiho Added by Erik S 6/6/2010  function [par,parnames]=par_input(varargin) %assign command …&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
%PAR_INPUT.M&lt;br /&gt;
%11/4/99 code pulled from goplot4.m&lt;br /&gt;
%parfile,gp,dp&lt;br /&gt;
%called by goac9_tiho Added by Erik S 6/6/2010&lt;br /&gt;
&lt;br /&gt;
function [par,parnames]=par_input(varargin)&lt;br /&gt;
%assign command line parameters to local variables&lt;br /&gt;
disp('in par_input')&lt;br /&gt;
narg=length(varargin);&lt;br /&gt;
varargin;&lt;br /&gt;
nrow=narg/2;&lt;br /&gt;
if nrow==round(nrow),&lt;br /&gt;
    for iarg=1:2:length(varargin),&lt;br /&gt;
        eval([varargin{iarg} '= varargin{iarg+1};']);&lt;br /&gt;
    end&lt;br /&gt;
else&lt;br /&gt;
    display('par_input: command line pairs not correctly formed');&lt;br /&gt;
    return&lt;br /&gt;
end&lt;br /&gt;
%local parameters, if passed a parfile&lt;br /&gt;
%parfile&lt;br /&gt;
[lp,ll]=read_struc(parfile);&lt;br /&gt;
if isempty(lp),&lt;br /&gt;
    disp(['par_input: local par structure is empty, check ' parfile]);&lt;br /&gt;
end&lt;br /&gt;
%does the local file give a defaults file&lt;br /&gt;
if isfield(lp,'defaults'),&lt;br /&gt;
    &lt;br /&gt;
   switch lp.defaults&lt;br /&gt;
        case ''&lt;br /&gt;
            disp('par_input: default par structure is empty, use lp structure');&lt;br /&gt;
            dp=lp;&lt;br /&gt;
            dl=ll;&lt;br /&gt;
        case 'program'&lt;br /&gt;
            %don't look for a defaults file, the dp array is passed to this function.&lt;br /&gt;
            if ~exist(dp),&lt;br /&gt;
                disp('par_input: default par structure is empty, not passed to par_input');&lt;br /&gt;
                dp=[];&lt;br /&gt;
                dl=[];&lt;br /&gt;
            else&lt;br /&gt;
                dl=fieldnames(dp);&lt;br /&gt;
            end&lt;br /&gt;
        otherwise&lt;br /&gt;
            %load defaults file if specified, determine format by ext.&lt;br /&gt;
           dp=[];&lt;br /&gt;
            if findstr(lp.defaults,'.par'),%only look for .par&lt;br /&gt;
                %lpdefaultsis_beforereadstruc = lp.defaults&lt;br /&gt;
                [dp,dl]=read_struc(lp.defaults);&lt;br /&gt;
               &lt;br /&gt;
           % return&lt;br /&gt;
            elseif findstr(lp.defaults,'.mat'),  %only look for .mat&lt;br /&gt;
                load(lp.defaults);&lt;br /&gt;
            else                                 %update .mat if .par is newer&lt;br /&gt;
                m=dir([lp.defaults,'.mat']);&lt;br /&gt;
                if isempty(m),&lt;br /&gt;
                    m(1).date=0;&lt;br /&gt;
                end&lt;br /&gt;
                p=dir([lp.defaults,'.par']);&lt;br /&gt;
                if isempty(m) | datenum(p.date) &amp;gt; datenum(m.date),&lt;br /&gt;
                    [dp,dl]=read_struc([lp.defaults,'.par']);&lt;br /&gt;
                    save(lp.defaults,'dp');&lt;br /&gt;
                else&lt;br /&gt;
                    load(lp.defaults);&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            if isempty(dp),&lt;br /&gt;
                disp(['par_input: default par  structure is empty, ' lp.defaults , ...&lt;br /&gt;
                    ' not found']);&lt;br /&gt;
            end&lt;br /&gt;
   end&lt;br /&gt;
end&lt;br /&gt;
if ~exist('dp') | isempty(dp),&lt;br /&gt;
    if exist('def_file'),&lt;br /&gt;
        lp.defaults=def_file&lt;br /&gt;
        %load defaults file if specified, determine format by ext.&lt;br /&gt;
        dp=[];&lt;br /&gt;
        if findstr(lp.defaults,'.par'),      %only look for .par&lt;br /&gt;
            [dp,dl]=read_struc(lp.defaults);&lt;br /&gt;
        elseif findstr(lp.defaults,'.mat'),  %only look for .mat&lt;br /&gt;
            load(lp.defaults);&lt;br /&gt;
        else                                 %update .mat if .par is newer&lt;br /&gt;
            m=dir([lp.defaults,'.mat']);&lt;br /&gt;
            if isempty(m),&lt;br /&gt;
                m.date=0;&lt;br /&gt;
            end&lt;br /&gt;
            p=dir([lp.defaults,'.par']);&lt;br /&gt;
         &lt;br /&gt;
            if isempty(m) | datenum(p.date) &amp;gt; datenum(m.date),&lt;br /&gt;
                [dp,dl]=read_struc([lp.defaults,'.par']);&lt;br /&gt;
                save(lp.defaults,'dp');&lt;br /&gt;
            else&lt;br /&gt;
                load(lp.defaults);&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        if isempty(dp),&lt;br /&gt;
            disp(['par_input: default par structure is empty, ' lp.defaults , ...&lt;br /&gt;
                ' not found']);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if ~exist('dp') | isempty(dp),&lt;br /&gt;
    disp(['par_input: default par structure is empty, using local values']);&lt;br /&gt;
    dp=lp;&lt;br /&gt;
    dl=ll;&lt;br /&gt;
end&lt;br /&gt;
%allows local par file to override defalut file for use of local&lt;br /&gt;
%pars&lt;br /&gt;
%_ | '' | 'y' | 'n'&lt;br /&gt;
if isfield(lp,'local_pars'),&lt;br /&gt;
    if ~isempty(lp.local_pars),&lt;br /&gt;
        dp.local_pars=lp.local_pars;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
%default to use loacl pars if not specified in default par file&lt;br /&gt;
%_ | '' | 'y' | 'n'&lt;br /&gt;
if isfield(dp,'local_pars'),&lt;br /&gt;
    if isempty(dp.local_pars),&lt;br /&gt;
        dp.local_pars='y';&lt;br /&gt;
    end&lt;br /&gt;
else&lt;br /&gt;
    dp.local_pars='y';&lt;br /&gt;
end&lt;br /&gt;
if dp.local_pars=='y',&lt;br /&gt;
   % disp('here')&lt;br /&gt;
    %update dp.defaults with local values, y|n&lt;br /&gt;
    for iname=1:size(ll,1),&lt;br /&gt;
        eval(['dp.' parse(ll(iname,:),1) '=lp.' ll(iname,:) ';']);&lt;br /&gt;
    end&lt;br /&gt;
    dl=fieldnames(dp);&lt;br /&gt;
end&lt;br /&gt;
%global parameters: overwrite,add&lt;br /&gt;
if exist('gp'),&lt;br /&gt;
    gl=char(fieldnames(gp));&lt;br /&gt;
    for iname=1:size(gl,1),&lt;br /&gt;
        eval(['dp.' parse(gl(iname,:),1) '=gp.' gl(iname,:) ';']);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
if isempty(dp),&lt;br /&gt;
    disp('par_input: returning empty par structure');&lt;br /&gt;
    par=[]&lt;br /&gt;
    parnames=[];&lt;br /&gt;
else&lt;br /&gt;
    [par,parnames]=sortstruct(dp);&lt;br /&gt;
    parnames=char(parnames);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;[[par_input]]&amp;lt;big&amp;gt;&lt;/div&gt;</summary>
		<author><name>128.111.101.185</name></author>
		
	</entry>
</feed>