diff --git a/crpptbx/AUG/aug_requests_mapping.m b/crpptbx/AUG/aug_requests_mapping.m
index 6a7237085c82279790e799b9587e7143a575d723..f1a553416511dc0cdcb5f52b43fe0511f3356df0 100644
--- a/crpptbx/AUG/aug_requests_mapping.m
+++ b/crpptbx/AUG/aug_requests_mapping.m
@@ -71,6 +71,20 @@ switch lower(data_request)
   mapping.label = '\beta_N';
   mapping.method = 'signal';
   mapping.expression = [{'TOT'},{'beta_N'}];
+  % in many cases, in particular just after an experiment, betaN is not present in TOT, thus compute it from 2/3Wmhd/V /(B0^2/2mu0)
+  mapping.method = 'expression';
+  mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''TOT''},{''beta_2N''},{''AUGD''}];' ...
+                    'gdat_tmp=gdat_aug(shot,params_eff); if isempty(gdat_tmp.data);' ...
+		    'params_eff.data_request=''ip'';gdat_ip=gdat_aug(shot,params_eff);' ...
+		    'params_eff.data_request=''b0'';gdat_b0=gdat_aug(shot,params_eff);' ...
+		    'params_eff.data_request=''a_minor'';gdat_aminor=gdat_aug(shot,params_eff);' ...
+		    'params_eff.data_request=''wmhd'';gdat_tmp=gdat_aug(shot,params_eff);' ...
+		    'params_eff.data_request=''volume'';gdat_vol=gdat_aug(shot,params_eff);' ...
+		    'tmp_data_ip=interp1(gdat_ip.t,gdat_ip.data,gdat_tmp.t,[],NaN);' ...
+		    'tmp_data_b0=interp1(gdat_b0.t,gdat_b0.data,gdat_tmp.t,[],NaN);' ...
+		    'tmp_data_a=interp1(gdat_aminor.t,gdat_aminor.data,gdat_tmp.t,[],NaN);' ...
+		    'tmp_data_vol=interp1(gdat_vol.t,gdat_vol.data,gdat_tmp.t,[],NaN);' ...
+		    'gdat_tmp.data = 100.*abs(2./3.*gdat_tmp.data./tmp_data_vol.*8e-7.*pi./tmp_data_b0.^2./tmp_data_ip.*1e6.*tmp_data_a.*tmp_data_b0);end;'];
  case 'betap'
   mapping.timedim = 1;
   mapping.label = '\beta_p';
@@ -115,6 +129,16 @@ switch lower(data_request)
   mapping.label = 'Halpha';
   mapping.method = 'signal';
   mapping.expression = [{'POT'},{'ELMa-Han'}];
+ case 'h_scalings'
+  mapping.label = 'H_{scal}';
+  mapping.timedim = 1;
+  mapping.method = 'signal';
+  mapping.expression = [{'TTH'},{'H/L-facs'},{'AUGD'}];
+  mapping.method = 'expression';
+  mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''TTH''},{''Wmhd''},{''AUGD''}];' ...
+		   'gdat_tmp=gdat_aug(shot,params_eff);ij=find(~isnan(gdat_tmp.data)); gdat_tmp.data_raw=gdat_tmp.data;' ...
+		    'tmp_data=interpos(gdat_tmp.t(ij),gdat_tmp.data(ij),gdat_tmp.t,-1e5);' ...
+		    'gdat_tmp.data = max(tmp_data,0.);'];
  case 'ioh'
   mapping.timedim = 1;
   mapping.label = 'I ohmic transformer';
@@ -130,6 +154,21 @@ switch lower(data_request)
   mapping.label = '\kappa';
   mapping.method = 'signal';
   mapping.expression = [{'FPG'},{'k'}];
+ case 'kappa_top'
+  mapping.timedim = 1;
+  mapping.label = '\kappa^{top}';
+  mapping.method = 'signal';
+  mapping.expression = [{'FPG'},{'koben'}];
+ case 'kappa_bottom'
+  mapping.timedim = 1;
+  mapping.label = '\kappa_{bottom}';
+  mapping.method = 'signal';
+  mapping.expression = [{'FPG'},{'kuntn'}];
+ case 'li'
+  mapping.timedim = 1;
+  mapping.label = 'l_i';
+  mapping.method = 'signal';
+  mapping.expression = [{'FPG'},{'li'}];
  case 'mhd'
   mapping.timedim = 1;
   mapping.label = 'Odd and Even n';
@@ -260,6 +299,11 @@ switch lower(data_request)
   mapping.timedim = 1;
   mapping.gdat_timedim = 2;
   mapping.method = 'switchcase';
+ case 'tau_tot'
+  mapping.label = '\tau_{tot}';
+  mapping.timedim = 1;
+  mapping.method = 'signal';
+  mapping.expression = [{'TOT'},{'tau_tot'},{'AUGD'}];
  case 'te'
   mapping.timedim = 2;
   mapping.label = 'Te';
@@ -290,6 +334,16 @@ switch lower(data_request)
   mapping.timedim = 2;
   mapping.label = 'volume\_norm';
   mapping.method = 'switchcase';
+ case 'wmhd'
+  mapping.label = 'Wmhd';
+  mapping.timedim = 1;
+  mapping.method = 'signal';
+  mapping.expression = [{'FPG'},{'Wmhd'},{'AUGD'}];
+  mapping.method = 'expression';
+  mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''FPG''},{''Wmhd''},{''AUGD''}];' ...
+		   'gdat_tmp=gdat_aug(shot,params_eff);ij=find(~isnan(gdat_tmp.data)); gdat_tmp.data_raw=gdat_tmp.data;' ...
+		    'tmp_data=interpos(gdat_tmp.t(ij),gdat_tmp.data(ij),gdat_tmp.t,-1e5);' ...
+		    'gdat_tmp.data = max(tmp_data,0.);'];
  case 'zeff'
   mapping.label = 'zeff from cxrs';
   mapping.timedim = 1;
diff --git a/crpptbx/AUG/gdat_aug.m b/crpptbx/AUG/gdat_aug.m
index 84c95934de357e1581152fcf0e028391b51b94a8..82d7afbdd3ebead8fde03bdfbe173ccece7bc7c0 100644
--- a/crpptbx/AUG/gdat_aug.m
+++ b/crpptbx/AUG/gdat_aug.m
@@ -82,7 +82,7 @@ if ~isempty(data_request_names.aug)
     data_request_names.all.(aug_names{i}) = data_request_names.aug.(aug_names{i});
   end
 end
-data_request_names_all = fieldnames(data_request_names.all);
+data_request_names_all = sort(fieldnames(data_request_names.all));
 
 % construct default output structure
 gdat_data.data = [];
@@ -346,7 +346,9 @@ elseif strcmp(mapping_for_aug.method,'expression')
   fields_to_copy = {'gdat_params', 'gdat_request', 'label', 'data_fullpath', 'request_description', 'mapping_for'};
   eval([mapping_for_aug.expression ';']);
   for i=1:length(fields_to_copy)
-    gdat_tmp.(fields_to_copy{i}) = gdata_data_orig.(fields_to_copy{i});
+    if isfield(gdata_data_orig,fields_to_copy{i})
+      gdat_tmp.(fields_to_copy{i}) = gdata_data_orig.(fields_to_copy{i});
+    end
   end
   if isempty(gdat_tmp) || (~isstruct(gdat_tmp) & ~isobject(gdat_tmp))
     if (gdat_params.nverbose>=1); warning(['expression does not create a gdat_tmp structure: ' mapping_for_aug.expression]); end
diff --git a/crpptbx/JET/gdat_jet.m b/crpptbx/JET/gdat_jet.m
index f289ddce0a9665767556e28f241350b8901c9255..19f65b7c984f11e92cad70f446b0242170d28af6 100644
--- a/crpptbx/JET/gdat_jet.m
+++ b/crpptbx/JET/gdat_jet.m
@@ -82,7 +82,7 @@ if ~isempty(data_request_names.jet)
     data_request_names.all.(jet_names{i}) = data_request_names.jet.(jet_names{i});
   end
 end
-data_request_names_all = fieldnames(data_request_names.all);
+data_request_names_all = sort(fieldnames(data_request_names.all));
 
 % construct default output structure
 gdat_data.data = [];
diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m
index 5eb934dddea25e51228ca2568a523b6f1ceae50b..40fd682a700b66cc1293b2574903a6bc9a2f7aa4 100644
--- a/crpptbx/TCV/gdat_tcv.m
+++ b/crpptbx/TCV/gdat_tcv.m
@@ -81,7 +81,7 @@ if ~isempty(data_request_names.tcv)
     data_request_names.all.(tcv_names{i}) = data_request_names.tcv.(tcv_names{i});
   end
 end
-data_request_names_all = fieldnames(data_request_names.all);
+data_request_names_all = sort(fieldnames(data_request_names.all));
 
 % construct default output structure
 gdat_data.data = [];