From 55cb570e7c001f5accdd3fc64ca5e0c8e62b0708 Mon Sep 17 00:00:00 2001
From: Antonia Frank <antonia.frank@epfl.ch>
Date: Mon, 14 Oct 2024 09:47:36 +0200
Subject: [PATCH] Add warning when loading B-fields from other source than
 LIUQE.M

---
 matlab/TCV_IMAS/tcv_get_ids_equilibrium.m | 24 ++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/matlab/TCV_IMAS/tcv_get_ids_equilibrium.m b/matlab/TCV_IMAS/tcv_get_ids_equilibrium.m
index 362b186d..102ff032 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_equilibrium.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_equilibrium.m
@@ -5,7 +5,7 @@ function [ids_equilibrium,ids_equilibrium_description,varargout] = ...
 %     tcv_get_ids_equilibrium(shot,ids_equil_empty,gdat_params,varargin);
 %
 %
-% gdat_params: gdat_data.gdat_params to get all params passed from original call, 
+% gdat_params: gdat_data.gdat_params to get all params passed from original call,
 % in particular error_bar and cocos_out options
 %
 
@@ -529,15 +529,19 @@ profiles_2d.z.data = repmat(repmat(profiles_2d.psi.dim{2}',numel(profiles_2d.psi
 profiles_2d_desc.z = 'from dim{2} of ''psi'' repeated';
 params_eff.data_request = 'bfields';
 bfields_gdat = gdat(params_equilibrium.shot,params_eff);
-profiles_2d.b_field_r = bfields_gdat.Br;
-profiles_2d_desc.b_field_r = bfields_gdat.Br.label;
-profiles_2d.b_field_z= bfields_gdat.Bz;
-profiles_2d_desc.b_field_z = bfields_gdat.Bz.label;
-profiles_2d.b_field_tor= bfields_gdat.Btor;
-profiles_2d_desc.b_field_tor = bfields_gdat.Btor.label;
+if ~isempty(bfields_gdat.Br)
+  profiles_2d.b_field_r = bfields_gdat.Br;
+  profiles_2d_desc.b_field_r = bfields_gdat.Br.label;
+  profiles_2d.b_field_z= bfields_gdat.Bz;
+  profiles_2d_desc.b_field_z = bfields_gdat.Bz.label;
+  profiles_2d.b_field_tor= bfields_gdat.Btor;
+  profiles_2d_desc.b_field_tor = bfields_gdat.Btor.label;
+else
+  warning('B-fields could not be load from gdat(shot,''bfields''). B-fields only available for LIUQE.M, trial 1.')
+end
 
 % theta = gdat(params_equilibrium.shot,'theta','machine',gdat_params.machine);
-tic
+
 profiles_2d_fieldnames = fieldnames(profiles_2d);
 special_fields = {'grid', 'grid_type'}; % fields needing non-automatic treatments
 for it=1:ntime
@@ -576,7 +580,7 @@ for it=1:numel(ids_equilibrium.time_slice)
   ids_equilibrium.time_slice{it}.boundary_separatrix.x_point = {};
   ids_equilibrium.time_slice{it}.boundary_separatrix.strike_point = {};
 end
-toc
+
 % special test matrix cocos transform
 % $$$ ldim1=129;
 % $$$ ldim2=257;
@@ -603,11 +607,9 @@ toc
 % $$$   ids_equilibrium.time_slice{it}.profiles_2d{2}.psi_error_upper(:,:) = 12.*ones(ldim1,ldim2);
 % $$$   ids_equilibrium.time_slice{it}.profiles_2d{2}.psi_error_lower(:,:) = 10.*ones(ldim1,ldim2);
 % $$$ end
-tic
 % cocos automatic transform
 if ~isempty(which('ids_generic_cocos_nodes_transformation_symbolic'))
   [ids_equilibrium,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_equilibrium,'equilibrium',gdat_params.cocos_in, ...
           gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in, ...
           gdat_params.error_bar,gdat_params.nverbose);
 end
-toc
-- 
GitLab