diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m
index b7240c8fb5637b7c6a4f3553baf043febd16aabf..adfb5aa4911b60565684051d9cc13884a0a41858 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'}