function [data_request_names] = get_data_request_names_from_gdat_xxx(machine_in); % % get list of presently available data_request names grouped and with description % % at this stage using first 3 columns of file gdat_data_request_names.xlsx % data_request_names = []; expected_machines = [{'aug'}, {'jet'}, {'tcv'}]; % substrutures created for these at this stage (all means all of these) for j=1:length(expected_machines) data_request_names.(expected_machines{j}) = []; end ij=strmatch(lower(machine_in),expected_machines); if isempty(ij) disp(['machine ' machine_in ' not expected in get_data_request_names_from_gdat_xxx']) return end machine_in = lower(machine_in); % Avoid running this function over and over % This is another bottleneck in the gdat execution. persistent last_machine last_answer if ~isempty(last_machine) && strcmpi(last_machine,machine_in) data_request_names = last_answer; return; end fid=fopen([machine_in '_requests_mapping.m'],'r'); nextline=fgetl(fid); keywds = []; while isempty(nextline) || ~isnumeric(nextline) || nextline~=-1 %length(nextline)>2 || ~strcmp(nextline,'-1') if length(nextline)>7 && strcmp(nextline(1:6),' case ') ij=find(nextline==['''']); if ~isempty(ij) for i=1:2:length(ij)-1 keywds_next = nextline(ij(i)+1:ij(i+1)-1); i_backslash = find(keywds_next=='\'); i_column = find(keywds_next==':'); if isempty(i_backslash) && isempty(i_column) keywds{end+1} = keywds_next; data_request_names.(machine_in).(keywds{end}) = keywds{end}; end end end end nextline=fgetl(fid); end fclose(fid); data_request_names.all = []; last_machine = machine_in; last_answer = data_request_names;