function rotate_data,data,rotmatrix,name=name
case size(/type,data) of
7: begin
names = tnames(data,nn)
for i=0,nn-1 do begin
get_data,names[i],data=tempstr,alimit=limits
if size(/type,tempstr) ne 8 then return,'NULLDATA'
newstr = rotate_data(tempstr,rotmatrix,name=name)
newname = names[i]+'_'+name
store_data,newname,data=newstr,limit=limits
endfor
return,newname
end
8: begin
temp = data
if size(/type,rotmatrix) eq 7 then begin
rvec = data_cut(rotmatrix,temp.x)
for i = 0l,n_elements(temp.x)-1 do begin
rmat = rot_mat(reform(rvec[i,*]))
temp.y[i,*] = data.y[i,*] # rmat
endfor
if not keyword_set(name) then name = 'R('+rotmatrix+')'
return,temp
endif
newval = rotate_data(data.y,rotmatrix)
temp.y = newval
if not keyword_set(name) then name = 'rot'
return,temp
end
else: begin
return, data # rotmatrix
end
endcase
end