From 86fad3528cffb3955e4c70ed8960550f09f69a79 Mon Sep 17 00:00:00 2001
From: Olivier Sauter <olivier.sauter@epfl.ch>
Date: Mon, 28 Sep 2015 20:51:38 +0000
Subject: [PATCH] fix search for timedim

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@5064 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx/TCV/gdat_tcv.m | 28 +++++++++++++++++++++++++---
 1 file changed, 25 insertions(+), 3 deletions(-)

diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m
index d5dc66e7..ee7f6b09 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)
-- 
GitLab