Index: /issm/trunk/src/m/utils/Array/array_numel.m
===================================================================
--- /issm/trunk/src/m/utils/Array/array_numel.m	(revision 3569)
+++ /issm/trunk/src/m/utils/Array/array_numel.m	(revision 3569)
@@ -0,0 +1,35 @@
+%
+%  function to find a number of elements from a list of arrays.
+%  
+%  [asize]=array_numel(varargin)
+%
+%  see array_size to check the number and shape of elements, if
+%  multiple indices will be used.
+%
+function [anum]=array_numel(varargin)
+
+anum=1;
+
+for iarg=1:nargin
+    if ischar(varargin{iarg})
+        inum=numel(cellstr(varargin{iarg}));
+    else
+        inum=numel(varargin{iarg});
+    end
+    
+    if ~isequal(inum,1)
+        if isequal(anum,1)
+            anum=inum;
+        else
+            if ~isequal(inum,anum)
+                if ~isempty(inputname(iarg))
+                    error('Array ''%s'' has inconsistent number of elements.',inputname(iarg));
+                else
+                    error('Array %d has inconsistent number of elements.',iarg);
+                end
+            end
+        end
+    end
+end
+
+end
Index: /issm/trunk/src/m/utils/Array/array_size.m
===================================================================
--- /issm/trunk/src/m/utils/Array/array_size.m	(revision 3569)
+++ /issm/trunk/src/m/utils/Array/array_size.m	(revision 3569)
@@ -0,0 +1,35 @@
+%
+%  function to find an array size from a list of arrays.
+%  
+%  [asize]=array_size(varargin)
+%
+%  see array_numel to check only the number of elements, if
+%  single indices will be used.
+%
+function [asize]=array_size(varargin)
+
+asize=[1 1];
+
+for iarg=1:nargin
+    if ischar(varargin{iarg})
+        isize=size(cellstr(varargin{iarg}));
+    else
+        isize=size(varargin{iarg});
+    end
+    
+    if ~isequal(isize,[1 1])
+        if isequal(asize,[1 1])
+            asize=isize;
+        else
+            if ~isequal(isize,asize)
+                if ~isempty(inputname(iarg))
+                    error('Array ''%s'' has inconsistent size.',inputname(iarg));
+                else
+                    error('Array %d has inconsistent size.',iarg);
+                end
+            end
+        end
+    end
+end
+
+end
Index: /issm/trunk/src/m/utils/Array/item2str.m
===================================================================
--- /issm/trunk/src/m/utils/Array/item2str.m	(revision 3568)
+++ /issm/trunk/src/m/utils/Array/item2str.m	(revision 3569)
@@ -17,7 +17,13 @@
     svec=num2str(a);
 else
-    warning('item2str:item_unrecog',...
-        'Item ''%s'' is of unrecognized type ''%s''.',...
-        inputname(1),class(a));
+    if ~isempty(inputname(1))
+        warning('item2str:item_unrecog',...
+            'Item ''%s'' is of unrecognized type ''%s''.',...
+            inputname(1),class(a));
+    else
+        warning('item2str:item_unrecog',...
+            'Item %d is of unrecognized type ''%s''.',...
+            1,class(a));
+    end
     return
 end
Index: /issm/trunk/src/m/utils/Array/string_dim.m
===================================================================
--- /issm/trunk/src/m/utils/Array/string_dim.m	(revision 3568)
+++ /issm/trunk/src/m/utils/Array/string_dim.m	(revision 3569)
@@ -16,6 +16,11 @@
 end
 if (idim > numel(a))
-    error('Index %d exceeds number of elements in ''%s''.',...
-        idim,inputname(1));
+    if ~isempty(inputname(1))
+        error('Index %d exceeds number of elements in array ''%s''.',...
+            idim,inputname(1));
+    else
+        error('Index %d exceeds number of elements in array %d.',...
+            idim,1);
+    end
 end
 
Index: /issm/trunk/src/m/utils/Array/struc_desc.m
===================================================================
--- /issm/trunk/src/m/utils/Array/struc_desc.m	(revision 3568)
+++ /issm/trunk/src/m/utils/Array/struc_desc.m	(revision 3569)
@@ -7,5 +7,9 @@
 
 if ~isfield(sarray,'descriptor')
-    error(['Field ''descriptor'' not found in array ''' inputname(1) '''.']);
+    if ~isempty(inputname(1))
+        error('Field ''descriptor'' not found in array ''%s''.',inputname(1));
+    else
+        error('Field ''descriptor'' not found in array %d.',1);
+    end
 end
 
