Freude писал(а):
Что такое workspace array и зачем он нужен?... как его задавать?
work - это рабочий массив, используемый внутри подпрограмы. Такая техника типична для Фортрана и берет начало в глубокой древности, когда в Фортране еще не было динамического распределения памяти. Поэтому рабочие массивы обеспечивались именно вызывающей программой.
Если задать
lwork = -1, то подпрограмма НЕ вычисляет ничего, кроме требуемого размера
work:
Цитата:
If lwork = -1, then a workspace query is assumed; the routine only calculates the optimal size of the work array, returns this value as the first entry of the work array, and no error message related to lwork is issued by xerbla.
See Application Notes below for the suggested value of lwork
Получив требуемое
lwork в
work(1), нужно повторно обратиться к подпрограмме, задав рабочий массив и его длину (>0).
Посмотрите Application Notes в
http://www.intel.com/software/products/mkl/docs/WebHelp/lle/functn_getri.html.