diff --git a/crpptbx/AUG/aug_requests_mapping.m b/crpptbx/AUG/aug_requests_mapping.m
index 393c495fddb1f35f2c667632f7109eafc353b233..b88aed29837c52f38afc1d4882873a1554b01eea 100644
--- a/crpptbx/AUG/aug_requests_mapping.m
+++ b/crpptbx/AUG/aug_requests_mapping.m
@@ -144,6 +144,12 @@ switch lower(data_request)
 		    'params_eff.data_request={''MOD'',''EvenN''};' ...
 		    'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.data(:,2)=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ...
 		    'gdat_tmp.n_even.data = gdat_tmp2.data;gdat_tmp.n_even.data_request=params_eff.data_request;gdat_tmp.label={''n\_odd'',''n\_even''};' ...
+		    'params_eff.data_request={''MOD'',''OddNAmp''};' ...
+		    'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.n_odd.amp=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ...
+		    'gdat_tmp.n_odd.amp_t=gdat_tmp2.t;' ...
+		    'params_eff.data_request={''MOD'',''EvenNAmp''};' ...
+		    'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.n_even.amp=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ...
+		    'gdat_tmp.n_even.amp_t=gdat_tmp2.t;' ...
 		    'gdat_tmp.full_path=''MOD/Odd in data and .n_odd; .n_even'';' ...
 		    'gdat_tmp.gdat_request=''mhd'';gdat_tmp.gdat_params.data_request=gdat_tmp.gdat_request;'];
  case 'ne'
@@ -174,6 +180,10 @@ switch lower(data_request)
   mapping.method = 'switchcase';
  case 'ni'
   mapping.method = 'switchcase'; % especially since might have option fit, etc
+ case 'pgyro'
+  mapping.timedim = 1;
+  mapping.label = 'EC gyros';
+  mapping.method = 'switchcase';
  case 'powers'
   mapping.timedim = 1;
   mapping.label = 'various powers';
diff --git a/crpptbx/AUG/gdat_aug.m b/crpptbx/AUG/gdat_aug.m
index c382962a2211740cbad671b35acbf43907bab467..9eccee661f086ab68724e2115480ad9433ff5117 100644
--- a/crpptbx/AUG/gdat_aug.m
+++ b/crpptbx/AUG/gdat_aug.m
@@ -1066,6 +1066,159 @@ elseif strcmp(mapping_for_aug.method,'switchcase')
       gdat_data.label = 'pe';
     end
     
+    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+   case {'pgyro'}
+    %  LOAD MULTI CHANNEL DATA ECS
+    %  powers, frequencies, etc 
+    params_eff = gdat_data.gdat_params;
+    params_eff.data_request={'ECS','PECRH'};
+    % pgyro tot in index=9
+    try
+      gdat_data=gdat_aug(shot,params_eff);
+    catch
+      if gdat_params.nverbose>=3; disp(['problems with ' params_eff.data_request]); end
+      return
+    end
+    nb_timepoints = length(gdat_data.t);
+    pgyro = NaN*ones(nb_timepoints,9);
+    pgyro(:,9) = reshape(gdat_data.data,nb_timepoints,1);
+    gdat_data.data = pgyro;
+    labels{9} = 'ECtot';
+    for i=1:4
+      % "old" ECRH1 gyrotrons: gyro 1 to 4 in pgyro
+      params_eff.data_request={'ECS',['PG' num2str(i)]};
+      gdat_data_i=gdat_aug(shot,params_eff);
+      if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim)
+      else
+	gdat_data.ec{i} = gdat_data_i;
+	gdat_data.data(:,i) = reshape(gdat_data_i.data,nb_timepoints,1);
+	gdat_data.dim = [{gdat_data_i.t} {[1:9]}];
+	if max(gdat_data_i.data) > 0.
+	  labels{i} = ['EC_' num2str(i)];
+	end
+      end
+      try
+	a = sf2par('ECS',shot,'gyr_freq',['P_sy1_g' num2str(i)]);
+      catch
+	% gyr_freq not present (old shots for example)
+	a=[];
+      end
+      if isempty(a)
+      else
+	gdat_data.ec{i}.freq = a;
+	gdat_data.freq_ec(i) = a.value;
+      end
+      try
+	a = sf2par('ECS',shot,'GPolPos',['P_sy1_g' num2str(i)]);
+      catch
+	% GPolPos not present
+	a=[];
+      end
+      if isempty(a)
+      else
+	gdat_data.ec{i}.polpos = a.value;
+	gdat_data.polpos_ec(i) = a.value;
+      end
+      try
+	a = sf2par('ECS',shot,'GTorPos',['P_sy1_g' num2str(i)]);
+      catch
+	a=[];
+      end
+      if isempty(a)
+      else
+	gdat_data.ec{i}.torpos = a.value;
+	gdat_data.torpos_ec(i) = a.value;
+      end
+      % "new" ECRH2 gyrotrons: gyro 5 to 8 in pgyro
+      params_eff.data_request={'ECS',['PG' num2str(i) 'N']};
+      gdat_data_i=gdat_aug(shot,params_eff);
+      if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim)
+      else
+	gdat_data.ec{i+4} = gdat_data_i;
+	gdat_data.data(:,i+4) = reshape(gdat_data_i.data,nb_timepoints,1);
+	gdat_data.dim = [{gdat_data_i.t} {[1:9]}];
+	if max(gdat_data_i.data) > 0.
+	  labels{i+4} = ['EC_' num2str(i+4)];
+	end
+      end
+      try
+	a = sf2par('ECS',shot,'gyr_freq',['P_sy2_g' num2str(i)]);
+      catch
+	a=[];
+      end
+      if isempty(a)
+      else
+	gdat_data.ec{i+4}.freq = a;
+	gdat_data.freq_ec(i+4) = a.value;
+      end
+      try
+	a = sf2par('ECS',shot,'GPolPos',['P_sy2_g' num2str(i)]);
+      catch
+	a=[];
+      end
+      if isempty(a)
+      else
+	gdat_data.ec{i+4}.polpos = a.value;
+	gdat_data.polpos_ec(i+4) = a.value;
+      end
+      try
+	a = sf2par('ECS',shot,'GTorPos',['P_sy2_g' num2str(i)]);
+      catch
+	a=[];
+      end
+      if isempty(a)
+      else
+	gdat_data.ec{i+4}.torpos = a.value;
+	gdat_data.torpos_ec(i+4) = a.value;
+      end
+      params_eff.data_request={'ECN',['G' num2str(i) 'POL']};
+      gdat_data_i=gdat_aug(shot,params_eff);
+      if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim)
+      else
+	gdat_data.ec{i+4}.gpol_ec = gdat_data_i;
+      end
+      params_eff.data_request={'ECN',['G' num2str(i) 'TOR']};
+      gdat_data_i=gdat_aug(shot,params_eff);
+      if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim)
+      else
+	gdat_data.ec{i+4}.gtor_ec = gdat_data_i;
+      end
+      params_eff.data_request={'ECN',['G' num2str(i) 'PO4']};
+      gdat_data_i=gdat_aug(shot,params_eff);
+      if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim)
+      else
+	gdat_data.ec{i+4}.gpo4_ec = gdat_data_i;
+      end
+      params_eff.data_request={'ECN',['G' num2str(i) 'PO8']};
+      gdat_data_i=gdat_aug(shot,params_eff);
+      if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim)
+      else
+	gdat_data.ec{i+4}.gpo8_ec = gdat_data_i;
+      end
+    end
+    if ~isempty(gdat_data.dim)
+      gdat_data.t = gdat_data.dim{1};
+      gdat_data.x = gdat_data.dim{2};
+      gdat_data.dimunits=[{'time [s]'} {'ECRH1(1:4) ECRH2(1:4) ECtot'}];
+      gdat_data.units='W';
+      gdat_data.freq_ech_units = 'GHz';
+      gdat_data.data_fullpath=['ECS/' 'PGi and PGiN, etc'];
+      icount=0;
+      for i=1:length(labels)
+	if ~isempty(labels{i})
+	  icount=icount+1;
+	  gdat_data.label{icount} = labels{i};
+	end
+      end
+    else
+      gdat_data.freq_ech_units =[]';
+      gdat_data.ec = [];
+      gdat_data.freq_ec = [];
+      gdat_data.polpos_ec = [];
+      gdat_data.torpos_ec = [];
+    end
+
+
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    case {'powers'}
     % case total only
diff --git a/crpptbx/AUG/run_torbeam_fullshot.m b/crpptbx/AUG/run_torbeam_fullshot.m
index 6bdaa684fbe5a8687339ec3ad7aba50e4d4a1def..eb206fb043ed56a96fdbc8d8c3020796547a9ff6 100644
--- a/crpptbx/AUG/run_torbeam_fullshot.m
+++ b/crpptbx/AUG/run_torbeam_fullshot.m
@@ -45,7 +45,7 @@ if nargin>=3 && mod(length(varargin),2)==0
 end
 
 if shot>0
-  pgyro=gdat(shot,'pgyro',1);
+  powers=gdat(shot,'powers');
 
   hhDCR = sfread('DCR', shot);
   dousedcr = '';
diff --git a/crpptbx/gdat_plot.m b/crpptbx/gdat_plot.m
index 147f1c46f4852e0c14bc41121c86336ca74b1c14..8282386d656dc89f63b979a101ea4fcf1f2eb2df 100644
--- a/crpptbx/gdat_plot.m
+++ b/crpptbx/gdat_plot.m
@@ -67,12 +67,15 @@ if prod(isfield(gdat_data,{'data','t'})) && ~isempty(gdat_data.data) && ~isempty
       xlabel(['time']);
     end
     ylabel_eff = gdat_data.label;
-    if iscell(gdat_data.label) && length(gdat_data.label)>=2; ylabel_eff = gdat_data.label{2}; end
+    if iscell(gdat_data.label) && length(gdat_data.label)>=2; ylabel_eff = gdat_data.label{end}; end
     if ~isempty(gdat_data.units)
       hylabel=ylabel([ylabel_eff '[' gdat_data.units ']']);
     else
       hylabel=ylabel(ylabel_eff);
     end
+    if iscell(gdat_data.label) && length(gdat_data.label)>=2;
+      legend(gdat_data.label)
+    end
     zoom on;
   end
   if strcmp(gdat_data.gdat_request,'mhd')