diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m index d5dc66e7d1768802fd59810826d746d4029ccdfc..ee7f6b09916d45b14b6e77d4b91e3b5f35e48240 100644 --- a/crpptbx/TCV/gdat_tcv.m +++ b/crpptbx/TCV/gdat_tcv.m @@ -241,7 +241,7 @@ end % special treatment for model shot=-1 or preparation shot >=100'000 begstr = ''; -if shot==-1 || shot>=100000 +if shot==-1 || shot>=100000 || liuqe_version==-1 % requires FBTE liuqe_version = -1; begstr = 'tcv_eq( "'; @@ -307,9 +307,31 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi') gdat_data.data = aatmp.data; gdat_data.dim = aatmp.dim; nbdims = length(gdat_data.dim); + if mapping_for_tcv.timedim==-1; - mapping_for_tcv.timedim = nbdims; - if (size(gdat_data.data,nbdims)==1 && nbdims>1); mapping_for_tcv.timedim = nbdims-1; end + % try to find time dim from units + idim_non1 = []; len_dim = []; + for i=1:length(aatmp.dimunits) + if strcmp(aatmp.dimunits{i},'s'); mapping_for_tcv.timedim = i; end + if length(aatmp.dim{i})>1 + idim_non1(end+1) = i; + len_dim(end+1) = length(aatmp.dim{i}); + end + end + if length(idim_non1)==1 + % only one dim non 1, assume it is time + mapping_for_tcv.timedim = idim_non1(1); + else + [aamax,iaamax]=max(len_dim); + if aamax./min(len_dim)>100 + mapping_for_tcv.timedim = idim_non1(iaamax); + end + end + if mapping_for_tcv.timedim==-1 + % assume last one except if of length 1 + mapping_for_tcv.timedim = nbdims; + if (size(gdat_data.data,nbdims)==1 && nbdims>1); mapping_for_tcv.timedim = nbdims-1; end + end end dim_nontim = setdiff([1:nbdims],mapping_for_tcv.timedim); if ~isempty(dim_nontim)