From 3e4a65288df00fd1ea400e6db20eab3e4d631c36 Mon Sep 17 00:00:00 2001
From: Olivier Sauter <olivier.sauter@epfl.ch>
Date: Tue, 29 Jan 2019 09:12:12 +0000
Subject: [PATCH] correct b0 to have iphi or liuqe source available and add r0

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

diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m
index b7240c8f..adfb5aa4 100644
--- a/crpptbx/TCV/gdat_tcv.m
+++ b/crpptbx/TCV/gdat_tcv.m
@@ -55,6 +55,7 @@ function [gdat_data,gdat_params,error_status,varargout] = gdat_tcv(shot,data_req
 %    a4=gdat('opt1',123,'opt2',[1 2 3],'shot',48832,'data_request','Ip','opt3','aAdB'); % all in pairs
 %    a5=gdat(48836,'ip'); % standard call
 %    a6=gdat(48836,'ip','Opt1',123,'Doplot',1,'opt2','Abc'); % standard call with a few options (note all lowercase in output)
+%    a7 = gdat(48836,'static("r_m")[$1]'',''001'); % note first and last quote of tdi argument added by gdat
 
 %
 % Comments for local developer:
@@ -677,7 +678,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
     % compute average minor or major radius (on z=zaxis normally)
     %
     if liuqe_matlab==0
-      nodenameeff=['tcv_eq(''z_contour'',''LIUQE.M' substr_liuqe_tcv_eq ''')'];
+      nodenameeff=['tcv_eq(''z_contour'',''LIUQE' substr_liuqe_tcv_eq ''')'];
     else
       if isempty(substr_liuqe); substr_liuqe = '_1'; end
       nodenameeff=['tcv_eq(''z_edge'',''LIUQE.M' substr_liuqe_tcv_eq ''')'];
@@ -705,15 +706,32 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    case {'b0'}
     % B0 at R0=0.88
-    R0EXP=0.88;
+    r0exp=0.88;
+    if isfield(gdat_data.gdat_params,'source') && ~isempty(gdat_data.gdat_params.source) ...
+          && length(gdat_data.gdat_params.source)>=5 && strcmp(lower(gdat_data.gdat_params.source(1:5)),'liuqe')
+      % expect liuqe or liuqe.m to have liuqe time-base, otherwise give full time base
+    else
+      gdat_data.gdat_params.source = 'iphi';
+    end      
     if liuqe_version_eff==-1
       nodenameeff = 'tcv_eq("BZERO","FBTE")';
       tracetdi=tdi(nodenameeff);
       gdat_data.data = tracetdi.data;
     else
-      nodenameeff=['\magnetics::iphi'];
-      tracetdi=tdi(nodenameeff);
-      gdat_data.data=192.E-07 * 0.996 *tracetdi.data/R0EXP;
+      if strcmp(lower(gdat_data.gdat_params.source),'iphi')
+        nodenameeff=['\magnetics::iphi'];
+        tracetdi=tdi(nodenameeff);
+        gdat_data.data=192.E-07 * 0.996 *tracetdi.data/r0exp;
+      else
+        if liuqe_matlab==0
+          nodenameeff = ['tcv_eq(''BZERO'',''LIUQE' substr_liuqe_tcv_eq ''')'];
+        else
+          if isempty(substr_liuqe); substr_liuqe = '_1'; end
+          nodenameeff=['tcv_eq(''BZERO'',''LIUQE.M' substr_liuqe_tcv_eq ''')'];
+        end
+        tracetdi=tdi(nodenameeff);
+        gdat_data.data = tracetdi.data;
+      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
@@ -726,7 +744,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
       gdat_data.units = tracetdi.units;
     end
     gdat_data.dimunits = tracetdi.dimunits;
-    gdat_data.request_description = ['vacuum magnetic field at R0=' num2str(R0EXP) 'm; COCOS=17'];
+    gdat_data.request_description = ['vacuum magnetic field at R0=' num2str(r0exp) 'm; COCOS=17'];
+    gdat_data.r0 = r0exp;
     
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    case {'betan'}
-- 
GitLab