diff --git a/matlab/TCV/gdat_tcv.m b/matlab/TCV/gdat_tcv.m index d254b260610274e2e95fdf735b21ed2ced5ea9a8..e3767928b2bd2b60357658fb8f6abd25359d3f0d 100644 --- a/matlab/TCV/gdat_tcv.m +++ b/matlab/TCV/gdat_tcv.m @@ -80,7 +80,7 @@ function [gdat_data,gdat_params,error_status,varargout] = gdat_tcv(shot,data_req % Prepare some variables, etc varargout{1}=cell(1,1); -error_status=1; +error_status=-1; % construct main default parameters structure % parameters and defaults related to a specific request should be defined in the relevant switch case section @@ -119,6 +119,7 @@ gdat_data.gdat_params = gdat_params; gdat_data.data_fullpath = []; gdat_data.help = ''; gdat_data.status_mds = 2; +gdat_data.status = error_status; % Treat inputs: @@ -181,6 +182,7 @@ if nargin>=1 else if gdat_params.nverbose>=1; warning('type of 1st argument unexpected, should be numeric or char'); end error_status=2; + gdat_data.status = error_status; return end if nargin==1 @@ -198,6 +200,7 @@ if nargin>=2 && ivarargin_first_char~=1 if ~isfield(data_request,'data_request') if gdat_params.nverbose>=1; warning('expects field data_request in input parameters structure'); end error_status=3; + gdat_data.status = error_status; return end data_request_eff = data_request.data_request; @@ -250,12 +253,14 @@ if (nargin>=ivarargin_first_char) else if gdat_params.nverbose>=1; warning(['input argument nb: ' num2str(i) ' is incorrect, expects a character string']); end error_status=401; + gdat_data.status = error_status; return end end else if gdat_params.nverbose>=1; warning('number of input arguments incorrect, cannot make pairs of parameters'); end error_status=402; + gdat_data.status = error_status; return end end @@ -285,6 +290,7 @@ end if ~isfield(gdat_params,'data_request') || isempty(gdat_params.data_request) % warning('input for ''data_request'' missing from input arguments') % might be correct, asking for list of requests error_status=5; + gdat_data.status = error_status; return end gdat_data.gdat_params = gdat_params; % This means that before here it is gdat_params which should be updated @@ -293,6 +299,7 @@ gdat_data.gdat_params = gdat_params; % This means that before here it is gdat_pa shot = gdat_data.shot; data_request_eff = gdat_data.gdat_params.data_request; error_status = 6; % at least reached this level +gdat_data.status = error_status; mapping_for_tcv = tcv_requests_mapping(data_request_eff,shot); gdat_data.label = mapping_for_tcv.label; @@ -442,6 +449,7 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi') else % empty or wrong expression error_status=701; + gdat_data.status = error_status; return end else @@ -512,9 +520,13 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi') end gdat_data.help = aatmp.help; gdat_data.status_mds = aatmp.status; + error_status = 0; + gdat_data.status = error_status; if mod(gdat_data.status_mds,2) == 0 if (gdat_params.nverbose>=1); warning(['problems loading data for ' eval_expr ' for data_request= ' data_request_eff]); end if (gdat_params.nverbose>=3); disp('check .gdat_request list'); end + error_status = 7; + gdat_data.status = error_status; return end gdat_data.data = aatmp.data; @@ -614,6 +626,7 @@ elseif strcmp(mapping_for_tcv.method,'expression') if isempty(gdat_tmp) || (~isstruct(gdat_tmp) & ~isobject(gdat_tmp)) if (gdat_params.nverbose>=1); warning(['expression does not create a gdat_tmp structure: ' mapping_for_tcv.expression]); end error_status=801; + gdat_data.status = error_status; return end tmp_fieldnames = setdiff(fieldnames(gdat_tmp),{'gdat_request','label'}); % could/should also remove label in any case @@ -678,9 +691,13 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') rmaxpsi=tdi(nodenameeff); gdat_data.help = rmaxpsi.help; gdat_data.status_mds = rmaxpsi.status; + error_status = 0; + gdat_data.status = error_status; if mod(gdat_data.status_mds,2) == 0 if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end if (gdat_params.nverbose>=3); disp(['rerun LIUQE?']); end + error_status = 90; + gdat_data.status = error_status; return end nodenameeff2=['tcv_eq("r_min_psi","' psitbx_str '")']; @@ -690,6 +707,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if mod(gdat_data.status_mds,2) == 0 if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff2 ' for data_request= ' data_request_eff]); end if (gdat_params.nverbose>=3); disp(['rerun LIUQE?']); end + error_status = 91; + gdat_data.status = error_status; return end ij=find(rmaxpsi.data<0.5 | rmaxpsi.data>1.2); % points outside TCV vessel @@ -710,6 +729,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.data_fullpath=[nodenameeff ' + ' nodenameeff2 ' /2']; else if (gdat_params.nverbose>=1); warning(['should not be in this case with data_request_eff = ' data_request_eff]); end + error_status = 92; + gdat_data.status = error_status; return end if strcmp(data_request_eff(end-3:end),'_rho') @@ -748,8 +769,18 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') aatmp = tdi(nodenameeff); gdat_data.help = aatmp.help; gdat_data.status_mds = aatmp.status; + error_status = 0; + gdat_data.status = error_status; + if mod(gdat_data.status_mds,2) == 0 + error_status = 101; + gdat_data.status = error_status; + end if strcmp(data_request_eff(end-3:end),'_rho') aatmp2 = tdi(nodenameeff2); + if mod(aatmp2.status_mds,2) == 0 + error_status = 102; + gdat_data.status = error_status; + end if strcmp(data_request_eff,'a_minor_rho') gdat_data.data = 0.5.*(aatmp.data-aatmp2.data); elseif strcmp(data_request_eff,'rgeom_rho') @@ -791,9 +822,13 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') zcontour=tdi(nodenameeff); gdat_data.help = zcontour.help; gdat_data.status_mds = zcontour.status; + error_status = 0; + gdat_data.status = error_status; if mod(gdat_data.status_mds,2) == 0 if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end if (gdat_params.nverbose>=3); disp(['rerun LIUQE?']); end + error_status = 111; + gdat_data.status = error_status; return end if strcmp(data_request_eff,'zgeom') @@ -803,6 +838,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.dimunits{1} = zcontour.dimunits{2}; else if (gdat_params.nverbose>=1); warning(['should not be in this case with data_request_eff = ' data_request_eff]); end + error_status = 112; + gdat_data.status = error_status; return end gdat_data.t = gdat_data.dim{mapping_for_tcv.gdat_timedim}; @@ -853,8 +890,12 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') end gdat_data.help = tracetdi.help; gdat_data.status_mds = tracetdi.status; + error_status = 0; + gdat_data.status = error_status; if mod(gdat_data.status_mds,2) == 0 if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end + error_status =121; + gdat_data.status = error_status; return end gdat_data.data_fullpath=[added_correction_str nodenameeff]; @@ -952,6 +993,9 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.t = time_in; gdat_data.x = x_in; gdat_data.label = 'Total magnetic field map in (R,Z)'; + gdat_data.status_mds = 1; + error_status = 0; + gdat_data.status = error_status; catch @@ -960,6 +1004,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.Br = []; gdat_data.Bz = []; gdat_data.Btot = []; + error_status = 151; + gdat_data.status = error_status; end @@ -980,13 +1026,18 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') % use beta as time base if isempty(b0.data) || isempty(b0.dim) || isempty(ip.data) || isempty(ip.dim) || isempty(a_minor.data) || isempty(a_minor.dim) || isempty(beta.data) || isempty(beta.dim) if (gdat_params.nverbose>=1); warning(['problems loading data for data_request= ' data_request_eff]); end + gdat_data.status_mds = 2; + error_status = 161; + gdat_data.status = error_status; return end gdat_data.dim = beta.dim; gdat_data.t = beta.dim{1}; gdat_data.data = beta.data; gdat_data.help = beta.help; - gdat_data.status_mds = beta.status_mds; + gdat_data.status_mds = 1; + error_status = 0; + gdat_data.status = error_status; if isfield(gdat_data.gdat_params,'time_out') && ~isempty(gdat_data.gdat_params.time_out) % should already have all data at times time_out since called gdat_tcv above end @@ -998,6 +1049,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') ip_t = ip.data(ij); else warning('no valid data for ip, cannot fit') + error_status = 162; + gdat_data.status = error_status; return end ij=find(isfinite(b0.data)); @@ -1007,6 +1060,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') b0_t = b0.data(ij); else warning('no valid data for b0, cannot fit') + error_status = 163; + gdat_data.status = error_status; return end ij=find(isfinite(a_minor.data)); @@ -1016,6 +1071,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') a_minor_t = a_minor.data(ij); else warning('no valid data for a_minor, cannot fit') + error_status = 164; + gdat_data.status = error_status; return end gdat_data.data = 100.*beta.data ./ abs(ip_t).*1.e6 .* abs(b0_t) .* a_minor_t; @@ -1098,6 +1155,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.cxrs_params = cxrs_profiles.param; if isempty(cxrs_profiles.Times) || ~isfield(cxrs_profiles,'proffit') gdat_data.status_mds = 2; + error_status = 171; + gdat_data.status = error_status; gdat_data.help = ['problems loading data with CXRS_get_profiles for data_request= ' data_request_eff]; if (gdat_params.nverbose>=1); warning(gdat_data.help); end for i=1:length(sub_nodes) @@ -1172,6 +1231,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.dimunits{2} = 's'; gdat_data.help = ''; gdat_data.status_mds = 1; + error_status = 0; + gdat_data.status = error_status; % add grids_1d to have rhotor, etc if cxrs_rho was asked for if strcmp(data_request_eff,'cxrs_rho') gdat_data = get_grids_1d(gdat_data,2,1,gdat_params.nverbose); @@ -1213,6 +1274,10 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'eqdsk'} % + gdat_data.help = ''; + gdat_data.status_mds = 2; + error_status = 181; + gdat_data.status = error_status; if isfield(gdat_data.gdat_params,'time_out') && ~isempty(gdat_data.gdat_params.time_out) if isfield(gdat_data.gdat_params,'time') && ~isempty(gdat_data.gdat_params.time) disp('time_out parameter not used for eqdsk, uses time') @@ -1222,8 +1287,6 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') return; end end - gdat_data.help = ''; - gdat_data.status_mds = 2; time=1.; % default time if isfield(gdat_data.gdat_params,'time') && ~isempty(gdat_data.gdat_params.time) time = gdat_data.gdat_params.time; @@ -1290,6 +1353,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if gdat_params.nverbose>=1; warning(['could not create eqdsk file from read_results_for_chease with data_request= ' data_request_eff]); end + error_status = 182; + gdat_data.status = error_status; return end ii = regexpi(fnames_readresults{4},'eqdsksigns'); @@ -1297,6 +1362,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') eqdskval=read_eqdsk(fnames_readresults{4},cocos_read_results_for_chease,0,[],[],1); % read_results now has relevant cocos LIUQE= 17 else disp('wrong name check order of eqdsk outputs') + error_status = 183; + gdat_data.status = error_status; return end for i=1:length(fnames_readresults) @@ -1382,6 +1449,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.request_description = ['data=psi, x=(R,Z), eqdsk contains eqdsk structure with which ' ... 'plot_eqdsk, write_eqdsk, read_eqdsk can be used']; gdat_data.status_mds = 1; + error_status = 0; + gdat_data.status = error_status; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'gas', 'gas_flux', 'gas_request', 'gas_feedforward','gas_valve', 'gas_fluxes'} @@ -1395,6 +1464,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.gas_flux = gasflux; gdat_data.help = gasflux.help; gdat_data.status_mds = gasflux.status_mds; + error_status = 0; % since many options below, mark error if problem below + gdat_data.status = error_status; params_eff.data_request = '\hybrid::mat_m_signals:output_019'; gasrequest = gdat_tcv(gdat_data.shot,params_eff); gdat_data.gas_request_volt = gasrequest; @@ -1468,6 +1539,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') case {'gas_fluxes'} gdat_data.help = 'cell array'; gdat_data.status_mds = 2; + error_status = 191; + gdat_data.status = error_status; try if shot > 82186 for i=1:20 @@ -1502,7 +1575,10 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') catch end otherwise - error('gas option not defined') + gdat_data.status_mds = 2; + error_status = 192; + gdat_data.status = error_status; + error('gas option not defined') end if ~strcmp(data_request_eff,'gas_valve') gdat_data.dim{1} = gdat_data.t; @@ -1513,7 +1589,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') elseif ~isfield(gdat_data.gdat_params,'time_out') gdat_data.gdat_params.time_out = []; end - gdat_data.status_mds = 1; + error_status = 0; + gdat_data.status = error_status; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'halphas'} @@ -1540,6 +1617,12 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') disp(halphas.help); end end + if mod(gdat_data.status_mds,2) == 0 + error_status = 211; + else + error_status = 0; + end + gdat_data.status = error_status; gdat_data.label = ['\base::pd:pd_' num2str(min(channels),'%.3d') ' to ' num2str(max(channels),'%.3d')]; gdat_data.x = channels; gdat_data.dim{1} = gdat_data.x; @@ -1560,6 +1643,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') params_eff = gdat_data.gdat_params; gdat_data.help = ''; gdat_data.status_mds = 2; + error_status = 221; + gdat_data.status = error_status; if isfield(params_eff,'source') && ~isempty(params_eff.source) ids_top_name = params_eff.source; else @@ -1650,6 +1735,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') rethrow(ME_tcv_get_ids) end gdat_data.status_mds = 1; + error_status = 0; + gdat_data.status = error_status; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'ec_data', 'aux', 'h_cd', 'nbi_data', 'ic_data', 'lh_data','ohm_data', 'bs_data'} @@ -1672,6 +1759,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') end gdat_data.help = ''; gdat_data.status_mds = 2; + error_status = 1; + gdat_data.status = error_status; % specific parameters check and default settings if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) switch data_request_eff @@ -1691,12 +1780,16 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if (gdat_params.nverbose>=1) warning(['source= ' gdat_data.gdat_params.source ' is not part of the available sources: ' sprintf('''%s'' ',sources_avail{:})]); end + error_status = 231; + gdat_data.status = error_status; return else gdat_data.gdat_params.source = {gdat_data.gdat_params.source}; end else if (gdat_params.nverbose>=1); warning([' source parameter not compatible with: ' sprintf('''%s'' ',sources_avail{:})]); end + error_status = 232; + gdat_data.status = error_status; return end else @@ -1946,11 +2039,15 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if isempty(ec_data.cd_tot.data) || isempty(ec_data.cd_tot.t) || ischar(ec_data.cd_tot.data) if (gdat_params.nverbose>=1) gdat_data.status_mds = 2; + error_status = 233; + gdat_data.status = error_status; warning(['problems loading data for ' source_icd.ec ... ' for data_request= ' data_request_eff]); end else gdat_data.status_mds = 1; + error_status = 0; + gdat_data.status = error_status; % now default is icdtot, will depend on request and data_out param of some kind data_fullpath = ['from toray nodes using astra_tcv_EC_exp(shot), all results in .ec_data, subfield=' field_for_main_data ... 'in ec.data, .x, .t, .dim, .dimunits, .label, .units']; @@ -1999,6 +2096,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') ec_data.cd_dens_doublewidth_label = []; ec_data.rho_tor_norm = []; gdat_data.ec.ec_data = ec_data; + error_status = 234; + gdat_data.status = error_status; return end @@ -2179,6 +2278,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') elseif ~isfield(gdat_data.gdat_params,'time_out') gdat_data.gdat_params.time_out = []; end + error_status = 0; + gdat_data.status = error_status; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'mhd'} @@ -2194,6 +2295,9 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') % load n=1, 2 and 3 Bdot from magnetic measurements n3.data = []; mhd_source_list = {'0', '0full', '23', '23full', '-23', 'ltcc', 'ltcc-dbpol', 'ltcc-dbrad', 'ltcc-dbtor'}; + gdat_data.status_mds = 2; + error_status = 1; + gdat_data.status = error_status; if shot< 50926 n1=tdi('abs(mhdmode("LFS",1,1))'); n2=tdi('abs(mhdmode("LFS",2,1))'); @@ -2207,6 +2311,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') t2=sprintf('''%s'', ',mhd_source_list{1:end-1}); t3=sprintf('or ''%s''',mhd_source_list{end}); fprintf('%s %s %s\n',t1,t2,t3); + error_status = 241; + gdat_data.status = error_status; return end else @@ -2304,6 +2410,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') n3.data = []; else disp('should not be here in ''mhd'', ask O. Sauter') + error_status = 242; + gdat_data.status = error_status; return end end @@ -2329,6 +2437,12 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.help = n1.help; gdat_data.status_mds = n1.status; end + if mod(gdat_data.status_mds,2) == 0 + error_status = 243; + else + error_status = 0; + end + gdat_data.status = error_status; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'ne','te'} @@ -2338,6 +2452,12 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.gdat_params.systems = {'all'}; end [gdat_data] = get_thomson_raw_data(shot,data_request_eff,gdat_data,gdat_data.gdat_params.systems,gdat_params.nverbose,0); + if mod(gdat_data.status_mds,2) == 0 + error_status = 1; + else + error_status = 0; + end + gdat_data.status = error_status; if isfield(gdat_data.gdat_params,'time_out') && ~isempty(gdat_data.gdat_params.time_out) [gdat_data] = gdat2time_out(gdat_data,1,{'error_bar'}); elseif ~isfield(gdat_data.gdat_params,'time_out') @@ -2376,6 +2496,13 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') ab_r = gdat_tcv(gdat_data.shot,'\diagz::fir_array:radii'); gdat_data.r_center_chord = ab_r.data(ab_index.data+1); end + if mod(gdat_data.status_mds,2) == 0 + error_status = 1; + else + error_status = 0; + end + gdat_data.status = error_status; + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'ne_rho', 'te_rho', 'nete_rho'} % if nete_rho, do first ne, then Te later (so fir stuff already done) @@ -2519,6 +2646,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') disp('should not be in switch gdat_data.gdat_params.fit_type') disp('ask olivier.sauter@epfl.ch') end + error_status = 251; + gdat_data.status = error_status; return end if strcmp(gdat_data.gdat_params.fit_type,'conf') @@ -2558,6 +2687,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') else gdat_data.fit.data_fullpath = [nodenameeff ' is empty']; end + error_status = 252; + gdat_data.status = error_status; return end else @@ -2568,6 +2699,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') disp([nodenameeff ' with trialindx=' num2str(trialindx) ' is empty, thus no fits, check hldsi(shot) and may need to run anaprofs?']) end gdat_data.fit.data_fullpath = [nodenameeff ' with trialindx=' num2str(trialindx) ' is empty']; + error_status = 253; + gdat_data.status = error_status; return end end @@ -2621,6 +2754,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if ~isempty(tracetdi.data) && size(tracetdi.data,3)>=trialindx+1 gdat_data.fit.te.data = tracetdi.data(:,:,trialindx+1); else + error_status = 254; + gdat_data.status = error_status; return end end @@ -2677,6 +2812,12 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') elseif ~isfield(gdat_data.gdat_params,'time_out') gdat_data.gdat_params.time_out = []; end + if mod(gdat_data.status_mds,2) == 0 + error_status = 255; + else + error_status = 0; + end + gdat_data.status = error_status; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'powers'} @@ -2684,6 +2825,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') % At this stage fill just ech, later add nbi gdat_data.help = ''; gdat_data.status_mds = 2; + error_status = 1; + gdat_data.status = error_status; sources_avail = {'ohm','ec','nbi1','nbi2','dnbi','rad'}; % note should allow ech, nbh, ohmic in parameter sources % create empty structures for all, so in return one always have same substructres for i=1:length(sources_avail) @@ -2705,12 +2848,16 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if (gdat_params.nverbose>=1) warning(['source= ' gdat_data.gdat_params.source ' is not part of the available sources: ' sprintf('''%s'' ',sources_avail{:})]); end + error_status = 261; + gdat_data.status = error_status; return else gdat_data.gdat_params.source = {gdat_data.gdat_params.source}; end else if (gdat_params.nverbose>=1); warning([' source parameter not compatible with: ' sprintf('''%s'' ',sources_avail{:})]); end + error_status = 262; + gdat_data.status = error_status; return end else @@ -2730,6 +2877,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') ptot_ohm = tdi('\results::conf:ptot_ohm'); gdat_data.ohm.help = ptot_ohm.help; gdat_data.ohm.status_mds = ptot_ohm.status; + gdat_data.ohm.status = 1 - mod(gdat_data.ohm.status_mds,2); if mod(gdat_data.ohm.status_mds,2) == 1 gdat_data.ohm.data = ptot_ohm.data; gdat_data.ohm.t = ptot_ohm.dim{1}; @@ -2774,6 +2922,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') tracetdi=tdi(nodenameeff); gdat_data.ec.help = tracetdi.help; gdat_data.ec.status_mds = tracetdi.status; + gdat_data.ec.status = 1 - mod(gdat_data.ec.status_mds,2); if mod(gdat_data.ec.status_mds,2) == 0 if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end else @@ -2802,6 +2951,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') nbh_data_tdi = tdi(nodenameeff); gdat_data.nbi1.help = nbh_data_tdi.help; gdat_data.nbi1.status_mds = nbh_data_tdi.status; + gdat_data.nbi1.status = 1 - mod(gdat_data.nbi1.status_mds,2); if mod(gdat_data.nbi1.status_mds,2) == 1 nbi_neutral_power_tot = nbh_data_tdi.data.*1e6; % in W ij = nbi_neutral_power_tot<100; @@ -2849,6 +2999,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') tracetdi=tdi(nodenameeff); gdat_data.rad.help = tracetdi.help; gdat_data.rad.status_mds = tracetdi.status; + gdat_data.rad.status = 1 - mod(gdat_data.rad.status_mds,2); if mod(gdat_data.rad.status_mds,2) == 0 if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end else @@ -2874,6 +3025,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') nb2_data_tdi = tdi(nodenameeff); gdat_data.nbi2.help = nb2_data_tdi.help; gdat_data.nbi2.status_mds = nb2_data_tdi.status; + gdat_data.nbi2.status = 1 - mod(gdat_data.nbi2.status_mds,2); if mod(gdat_data.nbi2.status_mds,2) == 1 nbi_neutral_power_tot = nb2_data_tdi.data.*1e6; % in W ij = nbi_neutral_power_tot<100; @@ -2916,6 +3068,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') nb2_data_tdi = tdi(nodenameeff); gdat_data.dnbi.help = nb2_data_tdi.help; gdat_data.dnbi.status_mds = nb2_data_tdi.status; + gdat_data.dnbi.status = 1 - mod(gdat_data.dnbi.status_mds,2); if mod(gdat_data.dnbi.status_mds,2) == 1 nbi_neutral_power_tot = nb2_data_tdi.data.*1e6; % in W ij = nbi_neutral_power_tot<100; @@ -2963,6 +3116,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.gdat_params.time_out = []; end gdat_data.status_mds = 1; + error_status = 0; + gdat_data.status = error_status; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'q_rho'} @@ -2978,6 +3133,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') tracetdi=tdi(nodenameeff); gdat_data.help = tracetdi.help; gdat_data.status_mds = tracetdi.status; + gdat_data.status = 1 - mod(gdat_data.status_mds,2); if liuqe_matlab==1 && liuqe_version_eff==-1 % may have problems with dim{1} being indices instead of rhopol if max(tracetdi.dim{1}) > 2 @@ -2991,6 +3147,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if mod(gdat_data.status_mds,2) == 0 if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end if (gdat_params.nverbose>=3); disp(['rerun LIUQE?']); end + error_status = 271; + gdat_data.status = error_status; return end gdat_data.data = tracetdi.data; @@ -3020,20 +3178,28 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') % R*Bphi(rho,t) from F from FFprime if liuqe_matlab==0 fprintf('\n***** not yet implemented for liuqe fortran ******\n'); + error_status = 281; + gdat_data.status = error_status; return else nodenameeff=['tcv_eq("rbtor_rho","' psitbx_str '")']; end if liuqe_version_eff==-1 disp('not yet implemented for fbte') + error_status = 282; + gdat_data.status = error_status; return end tracetdi=tdi(nodenameeff); gdat_data.help = tracetdi.help; gdat_data.status_mds = tracetdi.status; + error_status = 0; + gdat_data.status = error_status; if mod(gdat_data.status_mds,2) == 0 if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end if (gdat_params.nverbose>=3); disp(['rerun LIUQE?']); end + error_status = 283; + gdat_data.status = error_status; return end gdat_data.data = tracetdi.data; @@ -3058,6 +3224,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') elseif ~isfield(gdat_data.gdat_params,'time_out') gdat_data.gdat_params.time_out = []; end + case {'phi_tor', 'phitor', 'toroidal_flux'} % Phi(LCFS) = int(Bphi dSphi), can use Eq.(11) of "Tokamak coordinate conventions: COCOS" paper: % O. Sauter, S.Yu. Medvedev, Comput. Phys. Commun. 184 (2013) 293???302 @@ -3065,6 +3232,9 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') % q = -dPhi/dpsi => Phi = - int(q*dpsi) which should always have the sign of B0 % need to get q_rho but to avoid loop for rhotor in grids_1d, get q_rho explicitely here params_eff = gdat_data.gdat_params; + gdat_data.status_mds = 2; + error_status = 1; + gdat_data.status = error_status; if liuqe_matlab==1 nodenameeff = ['tcv_eq("tor_flux_tot","' psitbx_str '")']; phi_tor = tdi(nodenameeff); @@ -3114,11 +3284,15 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') % assume same dimensions, check. Note data dims can be different from dim{} when there is a problem with liuqe run if numel(phi_tor.data) ~= numel(q_rho.data) || numel(psi_axis.data) ~= numel(phi_tor.dim{2}) warning(['problems in gdat_tcv with ' data_request_eff ' with unexpected dimensions']) + error_status =291; + gdat_data.status = error_status; return; end % check time sizes since can happen problems with old liuqe runs if size(q_rho.data,2) ~= size(phi_tor.data,2) warning(['time sizes between q_rho and phi_tor do not match: ' num2str(size(q_rho.data,2)) ' and ' num2str(size(phi_tor.data,2))]); + error_status =292; + gdat_data.status = error_status; return end if size(q_rho.data,2) ~= length(psi_axis.data) @@ -3131,10 +3305,14 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') num2str(length(psi_axis.data))]); disp('WARNING: should have been caught, so probably q_rho.dim not the same as data(:,:) dims') disp('should run: >> liuqe_default_run_sequence(shot)') + error_status =293; + gdat_data.status = error_status; return end if size(q_rho.data,1) ~= size(phi_tor.data,1) warning(['radial sizes between q_rho and phi_tor do not match: ' num2str(size(q_rho.data,1)) ' and ' num2str(size(phi_tor.data,1))]); + error_status = 294; + gdat_data.status = error_status; return end for it=1:size(q_rho.data,2) @@ -3158,6 +3336,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.units = phi_tor.units; gdat_data.help = phi_tor.help; gdat_data.status_mds = phi_tor.status; + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; if (length(gdat_data.dim)>=mapping_for_tcv.gdat_timedim); gdat_data.t = gdat_data.dim{mapping_for_tcv.gdat_timedim}; end if (length(gdat_data.dim)>0); gdat_data.x = gdat_data.dim{1}; end if isfield(gdat_data.gdat_params,'time_out') && ~isempty(gdat_data.gdat_params.time_out) @@ -3197,6 +3377,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') elseif ~isfield(gdat_data.gdat_params,'time_out') gdat_data.gdat_params.time_out = []; end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'pressure', 'pressure_rho', 'p_rho'} if liuqe_matlab==0 nodenameeff = ['tcv_eq("' liuqefortran2liuqematlab('p_rho',1,0) '","' psitbx_str '")']; @@ -3221,6 +3403,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.request_description = 'pressure'; gdat_data.help = tracetdi.help; gdat_data.status_mds = tracetdi.status; + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; if isfield(gdat_data.gdat_params,'time_out') && ~isempty(gdat_data.gdat_params.time_out) [gdat_data] = gdat2time_out(gdat_data,1); elseif ~isfield(gdat_data.gdat_params,'time_out') @@ -3232,37 +3416,10 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') % psi at edge, 0 by construction in Liuqe, thus not given % add surface_psi from surface_flux and d(surface_flux)/dt = vloop warning('now psi_edge expression in tcv_requests_mapping, so should not come here') - keyboard - nodenameeff=['\results::psi_axis' substr_liuqe]; - if liuqe_version_eff==-1 - nodenameeff=[begstr 'q_psi' substr_liuqe]; - end - tracetdi=tdi(nodenameeff); - if isempty(tracetdi.data) || isempty(tracetdi.dim) || ~any(isfinite(tracetdi.data)) % || ischar(tracetdi.data) (to add?) - if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end - if (gdat_params.nverbose>=3); disp(['rerun LIUQE?']); end - return - end - gdat_data.data = tracetdi.data.*0; - gdat_data.dim = tracetdi.dim; - gdat_data.t = gdat_data.dim{1}; - gdat_data.data_fullpath=[' zero ']; - gdat_data.dimunits = tracetdi.dimunits; - gdat_data.units = tracetdi.units; - gdat_data.request_description = '0 since LIUQE construct psi to be zero at LCFS'; - % - params_eff.data_request='\results::surface_flux'; - surface_psi=gdat_tcv([],params_eff); - ij=[isfinite(surface_psi.data)]; - [aa,vsurf] = interpos(63,surface_psi.t(ij),surface_psi.data(ij),-3); - gdat_data.surface_psi = surface_psi.data; - gdat_data.vsurf = vsurf; - gdat_data.vsurf_description = ['time derivative from surface_psi, obtained from \results::surface_flux']; - if isfield(gdat_data.gdat_params,'time_out') && ~isempty(gdat_data.gdat_params.time_out) - [gdat_data] = gdat2time_out(gdat_data,1); - elseif ~isfield(gdat_data.gdat_params,'time_out') - gdat_data.gdat_params.time_out = []; - end + gdat_data.status_mds = 2; + gdat_data.status = -1; + error_status = gdat_data.status; + return %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'r_contour_edge', 'z_contour_edge'} @@ -3284,6 +3441,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.units = tracetdi.units; gdat_data.help = tracetdi.help; gdat_data.status_mds = tracetdi.status; + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; if isfield(gdat_data.gdat_params,'time_out') && ~isempty(gdat_data.gdat_params.time_out) [gdat_data] = gdat2time_out(gdat_data,1); elseif ~isfield(gdat_data.gdat_params,'time_out') @@ -3298,6 +3457,9 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') % q = -dPhi/dpsi => Phi = - int(q*dpsi) which should always have the sign of B0 % need to get q_rho but to avoid loop for rhotor in grids_1d, get q_rho explicitely here params_eff = gdat_data.gdat_params; + gdat_data.status_mds = 2; + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; if liuqe_matlab==0 nodenameeff=['tcv_eq("q_psi","' psitbx_str '")']; if liuqe_version_eff==-1 @@ -3307,6 +3469,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if isempty(q_rho.data) || isempty(q_rho.dim) % || ischar(q_rho.data) (to add?) if (gdat_params.nverbose>=1); warning(['problems loading data for q_rho for data_request= ' data_request_eff]); end if (gdat_params.nverbose>=3); disp(['rerun LIUQE?']); end + error_status = 301; + gdat_data.status = error_status; return end rhopol_eff = ones(size(q_rho.dim{1})); @@ -3319,6 +3483,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') b0tpsi = interpos_nan(21,b0.t,b0.data,psi_axis.t); %q_rho on same time base as psi_axis if isempty(psi_axis.data) || isempty(psi_axis.dim) || isempty(q_rho.data) || isempty(q_rho.dim) if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end + error_status = 302; + gdat_data.status = error_status; return end rhoequal = linspace(0,1,length(q_rho.dim{1})); @@ -3360,6 +3526,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.psi_axis = reshape(psi_axis.data,length(psi_axis.data),1); if length(gdat_data.psi_axis) ~= length(gdat_data.t) disp('problems of time between qrho and psi_axis?') + error_status = 303; + gdat_data.status = error_status; return end gdat_data.b0 = b0tpsi; @@ -3380,6 +3548,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.data(:,it) = dataeff; else disp(['problem in gdat_tcv rhotor with unknown data_request_eff = ' data_request_eff]); + error_status = 304; + gdat_data.status = error_status; return end end @@ -3421,6 +3591,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.data_fullpath=['rhotor=sqrt(Phi/pi/B0) from phi_tor']; else disp(['data_request_eff = ' data_request_eff ' not defined within rhotor block in gdat_tcv.m']); + error_status = 305; + gdat_data.status = error_status; return end else @@ -3428,6 +3600,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.rhotor_edge = []; end end + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; if isfield(gdat_data.gdat_params,'time_out') && ~isempty(gdat_data.gdat_params.time_out) % nothing to do since above uses gdat call getting reduced time already end @@ -3440,7 +3614,9 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if liuqe_matlab==0 nodenameeff=['\results::psitbx:vol']; if liuqe_version_eff > 1 - disp('needs to construct volume'); + disp('needs liuqe_version_eff > 1 to construct volume'); + error_status = 311; + gdat_data.status = error_status; return end else @@ -3466,6 +3642,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.help = tracetdi.help; gdat_data.status_mds = tracetdi.status; if mod(gdat_data.status_mds,2) == 0 + error_status = 312; + gdat_data.status = error_status; return end gdat_data.units = tracetdi.units; @@ -3502,10 +3680,14 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if (gdat_params.nverbose>=1) disp(['should not be here in vol cases with data_request = ' data_request_eff]); end + error_status = 313; + gdat_data.status = error_status; return end end gdat_data.t = gdat_data.dim{mapping_for_tcv.gdat_timedim}; + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; if isfield(gdat_data.gdat_params,'time_out') && ~isempty(gdat_data.gdat_params.time_out) [gdat_data] = gdat2time_out(gdat_data,1,{'volume_edge'}); elseif ~isfield(gdat_data.gdat_params,'time_out') @@ -3548,6 +3730,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') catch % to make sure close and disconnect even if error, since connects to scd end + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; mdsclose; mdsdisconnect; % because connected to rtc/scd @@ -3571,6 +3755,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if gdat_data.gdat_params.nverbose>=1 warning(['source = ' gdat_data.gdat_params.source ' not expected with data_request= ' data_request_eff]) end + error_status = 321; + gdat_data.status = error_status; return end % time_out: times at which to provide output data, if 2 values provided, return all values within that time interval @@ -3743,6 +3929,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.gdat_params.camera{i},numel(gdat_data.(gdat_data.gdat_params.camera{i}).x)); end gdat_data.status_mds = 1; + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; case {'mpx', 'dmpx'} gdat_data.help = ''; @@ -3757,6 +3945,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if gdat_data.gdat_params.nverbose>=3 disp(['liuqe_version = ' liuqe_version ' not supported for data_request= ' data_request_eff]); end + error_status = 331; + gdat_data.status = error_status; return end t_int = [0 10]; % starts from 0 otherwise mpxdata gives data from t<0 @@ -3774,6 +3964,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if gdat_data.gdat_params.nverbose>=1 warning('problem with mpxdata') end + error_status = 332; + gdat_data.status = error_status; return end gdat_data.units = {'au'}; % not known at this stage @@ -3809,6 +4001,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.x = gdat_data.dim{1}; end gdat_data.status_mds = 1; + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; case 'xtomo' gdat_data.help = ''; @@ -3849,6 +4043,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if gdat_data.gdat_params.nverbose>=1 warning('problem with XTOMOGetData, no data') end + error_status = 341; + gdat_data.status = error_status; return end gdat_data.t = t; @@ -3869,12 +4065,17 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.dimunits = {'chords where floor(dim{1}/10) gives camera nb and mod(dim{1},10) chord nb'; 's'}; end gdat_data.dim = {gdat_data.x; gdat_data.t}; + gdat_data.status_mds = 1; + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; otherwise if gdat_data.gdat_params.nverbose>=1 warning(['camera = ' gdat_data.gdat_params.camera ' not expected with data_request= ' data_request_eff]) end - gdat_data.status_mds = 1; + gdat_data.status_mds = 2; + error_status = 351; + gdat_data.status = error_status; return end @@ -3911,6 +4112,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.data_fullpath = ['.transp structure obtained from cdf2mat(gdat_data.gdat_params.source)']; gdat_data.help='Can use transp_gui(gdat_data.transp) to browse and plot'; gdat_data.status_mds = 1; + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'ttprime', 'ttprime_rho'} @@ -3942,6 +4145,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') elseif ~isfield(gdat_data.gdat_params,'time_out') gdat_data.gdat_params.time_out = []; end + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'profnerho','profterho'} @@ -4002,16 +4207,20 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') end gdat_data.help = tracetdi.help; gdat_data.status_mds = tracetdi.status; + gdat_data.status = 1 - mod(gdat_data.status_mds,2); + error_status = gdat_data.status; otherwise if (gdat_params.nverbose>=1); warning(['switchcase= ' data_request_eff ' not known in gdat_tcv']); end - error_status=901; + error_status = 901; + gdat_data.status = error_status; return end else if (gdat_params.nverbose>=1); warning(['TCV method=' mapping_for_tcv.method ' not known yet, contact Olivier.Sauter@epfl.ch']); end error_status=602; + gdat_data.status = error_status; return end @@ -4021,6 +4230,7 @@ gdat_data.gdat_params.help = tcv_help_parameters(fieldnames(gdat_data.gdat_param gdat_data.mapping_for.tcv = mapping_for_tcv; gdat_params = gdat_data.gdat_params; error_status=0; +gdat_data.status = error_status; return @@ -4104,6 +4314,8 @@ try catch gdat_data.error_bar = []; gdat_data.status_mds = 2; + error_status = 1001; + gdat_data.status = error_status; if strcmp(data_request_eff(1:2),'ne') tracefirrat_data = []; gdat_data.firrat=tracefirrat_data; @@ -4122,6 +4334,8 @@ if isempty(time) || ischar(time) warning('!!!!!!!!!!!!!!!!!!!!!!!!!\results::thomson:times is empty? Check') disp(['!!!!!!!!!!!!!!!!!!!!!!!!! cannot continue with ' data_request_eff]) end + error_status = 1002; + gdat_data.status = error_status; return end @@ -4144,6 +4358,8 @@ for is = 1:nsys otherwise warning('Unrecognised thomson scattering system name: %s',systems{is}); disp(['!!!!!!!!!!!!!!!!!!!!!!!!! cannot continue with ' data_request_eff]) + error_status = 1003; + gdat_data.status = error_status; return end @@ -4212,6 +4428,8 @@ if strcmp(data_request_eff(1:2),'ne') disp('***********************************************************************') end end +gdat_data.status = 1 - mod(gdat_data.status_mds,2); +error_status = gdat_data.status; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [psiscatvol,psi_max] = get_thomson_psiscatvol(shot,systems,substr_liuqe,nverbose) diff --git a/matlab/tests/test_tcv_get_ids.m b/matlab/tests/test_tcv_get_ids.m index e0f9cac149cde9ff74d0d0ee2e6116a72e2fd54c..a187d5f8ee377294765eef927af42fd8ad94a197 100644 --- a/matlab/tests/test_tcv_get_ids.m +++ b/matlab/tests/test_tcv_get_ids.m @@ -13,7 +13,7 @@ classdef (TestTags={'tcv_imas'},SharedTestFixtures={... methods(Test) function test_get_ids_list(testCase,shot) gg = gdat(shot,'ids'); - testCase.assertTrue(mod(gg.status_mds,2)==0); + testCase.assertTrue(gg.status~=0); testCase.assertTrue(iscell(gg.gdat_params.sources_available)); end