diff --git a/matlab/TCV/gdat_tcv.m b/matlab/TCV/gdat_tcv.m
index 564eebba09b91327ede9d50930b34cf729cf8ae8..340777ac013df0f20eacee3769fda4510a5a13e5 100644
--- a/matlab/TCV/gdat_tcv.m
+++ b/matlab/TCV/gdat_tcv.m
@@ -355,7 +355,7 @@ end
 % should replace all above by just psitbx_str...
 liuqe_matlab = 1;
 switch liuqe_version
- case {-1}, liuqe_ext=''; psitbx_str='FBTE';
+ 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))];
@@ -869,66 +869,84 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    case {'bfields'}
      params_eff = gdat_data.gdat_params;
-
-     if params_eff.liuqe == 1
-       % load LIUQE data
-       [L,LY] = mds2meq(gdat_data.shot,'LIUQE.M',[],'ifield',true); % flag to allow field computation
-       LY = meqreprocess(L,LY); % compute fields etc, since not directly loaded from mds2meq
-
-       datapath = 'Outputs from [L,LY]=mds2meq(gdat_data.shot,''LIUQE.M'',[],''ifield'',true); LY = meqreprocess(L,LY);';
+     
+     try
+       if params_eff.liuqe == 1
+         % load LIUQE data
+         [L,LY] = mds2meq(gdat_data.shot,'LIUQE.M',[],'ifield',true); % flag to allow field computation
+         LY = meqreprocess(L,LY); % compute fields etc, since not directly loaded from mds2meq
+         datapath = 'Outputs from [L,LY]=mds2meq(gdat_data.shot,''LIUQE.M'',[],''ifield'',true); LY = meqreprocess(L,LY);';       
+         Br   = permute(LY.Brx,[2,1,3]); % permute for (Z,R)->(R,Z)
+         Bz   = permute(LY.Bzx,[2,1,3]);
+         Btor = permute(LY.Btx,[2,1,3]);
+         dim_in  = {L.rx,L.zx,LY.t};
+         time_in = LY.t;
+         x_in    = {L.rx,L.zx};
+       else % compute B-fields from psi
+         ip_gdat = gdat(gdat_data.shot,'ip');
+         [B,coord,time,psi,fsd] = tcv_mag_field (gdat_data.shot,ip_gdat.t,[],[],[],psitbx_str);
+         datapath ='Outputs from [B,coord,time,psi,fsd] = tcv_mag_field(shot,time,[],[],[],psitbx_str);';
+         Br     = B.R;
+         Bz     = B.z;
+         Btor   = B.phi;
+         dim_in   = {coord.R,coord.z,time};
+         time_in  = time; 
+         x_in     = {coord.R,coord.z};
+       end
+       
        gdat_data.data_fullpath = datapath;
 
        % radial magnetic field
-       gdat_data.Br.data = permute(LY.Brx,[2,1,3]); % permute for (Z,R)->(R,Z)
+       gdat_data.Br.data = Br;
        gdat_data.Br.units = 'T';
-       gdat_data.Br.dim = {L.rx,L.zx,LY.t};
+       gdat_data.Br.dim = dim_in;
        gdat_data.Br.dimunits = {'m','m','s'};
-       gdat_data.Br.t = LY.t;
-       gdat_data.Br.x = {L.rx,L.zx};
+       gdat_data.Br.t = time_in;
+       gdat_data.Br.x = x_in;
        gdat_data.Br.data_fullpath = datapath;
        gdat_data.Br.label = 'Radial magnetic field map in (R,Z)';
 
        % vertical magnetic field
-       gdat_data.Bz.data = permute(LY.Bzx,[2,1,3]);
+       gdat_data.Bz.data = Bz;
        gdat_data.Bz.units = 'T';
-       gdat_data.Bz.dim = {L.rx,L.zx,LY.t};
+       gdat_data.Bz.dim = dim_in;
        gdat_data.Bz.dimunits = {'m','m','s'};
-       gdat_data.Bz.t = LY.t;
-       gdat_data.Bz.x = {L.rx,L.zx};
+       gdat_data.Bz.t = time_in;
+       gdat_data.Bz.x = x_in;
        gdat_data.Bz.data_fullpath = datapath;
        gdat_data.Bz.label = 'Vertical magnetic field map in (R,Z)';
 
        % toroidal magnetic field
-       gdat_data.Btor.data = permute(LY.Btx,[2,1,3]);
+       gdat_data.Btor.data = Btor;
        gdat_data.Btor.units = 'T';
-       gdat_data.Btor.dim = {L.rx,L.zx,LY.t};
+       gdat_data.Btor.dim = dim_in;
        gdat_data.Btor.dimunits = {'m','m','s'};
-       gdat_data.Btor.t = LY.t;
-       gdat_data.Btor.x = {L.rx,L.zx};
+       gdat_data.Btor.t = time_in;
+       gdat_data.Btor.x = x_in;
        gdat_data.Btor.data_fullpath = datapath;
        gdat_data.Btor.label = 'Toroidal magnetic field map in (R,Z)';
        
        % total magnetic field
        gdat_data.Btot.data = sqrt(gdat_data.Btor.data.^2 + gdat_data.Bz.data.^2 + gdat_data.Br.data.^2);
        gdat_data.Btot.units = 'T';
-       gdat_data.Btot.dim = {L.rx,L.zx,LY.t};
+       gdat_data.Btot.dim = dim_in;
        gdat_data.Btot.dimunits = {'m','m','s'};
-       gdat_data.Btot.t = LY.t;
-       gdat_data.Btot.x = {L.rx,L.zx};
+       gdat_data.Btot.t = time_in;
+       gdat_data.Btot.x = x_in;
        gdat_data.Btot.data_fullpath = datapath;
        gdat_data.Btot.label = 'Total magnetic field map in (R,Z)';
        
        gdat_data.data = gdat_data.Btot.data;
        gdat_data.units = 'T';
-       gdat_data.dim = {L.rx,L.zx,LY.t};
+       gdat_data.dim = dim_in;
        gdat_data.dimunits = {'m','m','s'};
-       gdat_data.t = gdat_data.Btot.t;
-       gdat_data.x = {L.rx,L.zx};
+       gdat_data.t = time_in;
+       gdat_data.x = x_in;
        gdat_data.label = 'Total magnetic field map in (R,Z)';
 
-     else
+     catch
 
-       warning('Can only load 2d B-field maps from LIUQE.M so far')
+       warning('Problem obtaining B-fields, check if requested nodes are filled.')
        gdat_data.Btor = [];
        gdat_data.Br   = [];
        gdat_data.Bz   = [];