add_struct.m
author A.M. Thurnherr <athurnherr@yahoo.com>
Tue, 29 Jun 2021 09:14:43 -0400
changeset 23 e83393696a24
parent 18 6e7c8d592f7f
permissions -rw-r--r--
IX_14 Release Version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     1
% function [] = add_struct(ncf,snm,a)
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     2
%
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     3
% function to add mat structures to attributes field of NetCDF file 
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     4
% called from ladcp2cdf LDEO software to Process LADCP
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     5
%
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     6
% input  :	ncf		- output filename
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     7
%			snm	- slash indicates a global variable
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     8
%			a - arbitrary metadata structures
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     9
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    10
function [] = add_struct(ncf,snm,a)
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    11
   fnames = fieldnames(a);
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    12
   if isstruct(a)
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    13
        for n = 1:size(fnames,1)
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    14
            dummy = getfield(a,fnames{n});
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    15
                if size(dummy,1)==1
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    16
                    if isstr(dummy)
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    17
                        ncwriteatt(ncf,snm,fnames{n},dummy);
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    18
                    elseif islogical(dummy)
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    19
                        if dummy, dummy='true';
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    20
                        else, 	  dummy='false';
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    21
                        end
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    22
                        ncwriteatt(ncf,snm,fnames{n},dummy);
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    23
                    else
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    24
                        ncwriteatt(ncf,snm,fnames{n},dummy(:));
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    25
                    end    
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    26
                end
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    27
        end % for n
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    28
   else % if issstruct(a)
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    29
      disp(' not structure')
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    30
   end
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    31
end % function
6e7c8d592f7f Version IX_11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    32