As far as I have found, copying multidimensional arrays is not directly supported by the CL standard. It can be accomplished by a sort of "dimension casting" and COPY-SEQ:
(defun copy-array (array)
(make-array (array-dimensions array)
:element-type (array-element-type array)
:displaced-to (copy-seq (make-array (reduce #'* (array-dimensions array))
:element-type (array-element-type array)
:displaced-to array))))
Is there a better or more efficient way?"Just throw more hardware at it" is the root of all evil.
Svante
Svante