diff --git a/matlab/TCV/gdat_tcv.m b/matlab/TCV/gdat_tcv.m index d420874e2ec971f3de90f8a3371f3098bee6c7c7..ffee0fb61de5677c523f3273c632772b7480f578 100644 --- a/matlab/TCV/gdat_tcv.m +++ b/matlab/TCV/gdat_tcv.m @@ -321,7 +321,7 @@ else end gdat_data.gdat_params.liuqe = liuqe_version; liuqe_matlab = 1; % now default should be matlab liuqe nodes -if liuqe_version<0 || (liuqe_version > 10 && liuqe_version < 20) +if (liuqe_version > 10 && liuqe_version < 20) liuqe_matlab = 0; end liuqe_version_eff = mod(liuqe_version,10); @@ -354,7 +354,7 @@ end % should replace all above by just psitbx_str... liuqe_matlab = 1; switch liuqe_version - case {-1}, liuqe_ext=''; psitbx_str='FBTE'; liuqe_matlab = 0; + case {-1}, liuqe_ext=''; psitbx_str='FBTE'; case {1,21}, liuqe_ext=''; psitbx_str='LIUQE.M'; case {11}, liuqe_ext=''; psitbx_str='LIUQE';liuqe_matlab = 0; case {2, 3, 22, 23}, liuqe_ext=['_' num2str(mod(liuqe_version,10))]; psitbx_str=['LIUQE.M' num2str(mod(liuqe_version,10))]; @@ -2764,6 +2764,16 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') nodenameeff=[begstr 'q_psi' substr_liuqe]; end tracetdi=tdi(nodenameeff); + 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 + nodenameeff_rho = strrep(nodenameeff,'q_psi','rho'); + rho_eff = mdsvalue(nodenameeff_rho); + if numel(tracetdi.dim{1}) == numel(rho_eff) + tracetdi.dim{1}(:) = rho_eff; + end + end + end if isempty(tracetdi.data) || isempty(tracetdi.dim) % || 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 @@ -3207,10 +3217,6 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') else nodenameeff=['tcv_eq("vol","' psitbx_str '")']; end - if liuqe_version_eff==-1 - data_request_eff = 'volume'; % only LCFS - nodenameeff=[begstr 'volume' substr_liuqe]; - end tracetdi=tdi(nodenameeff); if (isempty(tracetdi.data) || isempty(tracetdi.dim)) && liuqe_matlab==0 % try to run psitbxput @@ -3218,6 +3224,15 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') psitbxput(psitbxput_version,shot); ishot = mdsopen(shot); tracetdi=tdi(nodenameeff); + elseif liuqe_matlab==1 && liuqe_version_eff==-1 + % may have problems with dim{1} being indices instead of rhopol + if max(tracetdi.dim{1}) > 2 + nodenameeff_rho = 'tcv_eq("rho","FBTE")'; + rho_eff = mdsvalue(nodenameeff_rho); + if numel(tracetdi.dim{1}) == numel(rho_eff) + tracetdi.dim{1}(:) = rho_eff; + end + end end if isempty(tracetdi.data) || isempty(tracetdi.dim) || ischar(tracetdi.data) return