Re: Crash of dlincg



Thanks to all those who contributed to this - I could get it working bu
allocating explicitly the work areas. On my machine, it takes ~2
minutes to find the inverse.

However, to my surprise, following the inverse, a dmcrcr
(multiplication routine for complex matrices) is taking over an hour,
for the same size of the matrix. At this rate, I will be buried by the
time my thesis will get completed :(

dpb wrote:
basu wrote:
This is frustrating - but, even after I allocate a memory for the
inverted matrix (and there is no allocation error returned by
ALLOCATE), the IMSL subroutine dlincg still fails. The exact error
message it generates is -
"TERMINAL ERROR 2 FROM DLINCG. The required storage cannot be
allocated.
The workspace is based on N, where N = 2725.
...

The error (while not explicitly stated, that comes from time w/ IMSL :)
) is not allocation for the return inverse but the working space inside
the routine itself so allocating that memory a priori isn't going to
help as you've already observed.

I see somebody else already mentioned the fix which is to allocate
memory for the work arrays outside the routine and pass it by using the
alternate routine DL2NCG.

This thread was sufficient motivation to look on this new machine and
discover all that was missing in the installation was a link to the
help files so I'll just add an additional comment--the work space for
DLINCG is documented to be 5N + 2N(N-1) which for your N works out to
something over 14 MB. I'm not sure how the internal routines are
written, but assuming there is sufficient memory available in the
application to be able to allocate this work space, it would seem there
is an overly conservative estimation of the memory available so it
bails out. I agree w/ the other poster that using the explicitly
supplied work arrays will likely succeed where the automatic allocation
doesn't.

.



Relevant Pages

  • Re: Who uses clapack?
    ... >>not clear that dynamic allocation is the best solution. ... if the routine is called a large number of times ... > workspace conserves memory but large workspace gives better convergence. ... is done may not be identical between languages. ...
    (sci.math.num-analysis)
  • Re: Who uses clapack?
    ... > which do not support dynamic memory allocation? ... not clear that dynamic allocation is the best solution. ... if the routine is called a large number of times ... www cs utk edu tilde lastname ...
    (comp.lang.fortran)
  • Re: Who uses clapack?
    ... > which do not support dynamic memory allocation? ... not clear that dynamic allocation is the best solution. ... if the routine is called a large number of times ... www cs utk edu tilde lastname ...
    (sci.math.num-analysis)
  • Re: Who uses clapack?
    ... > not clear that dynamic allocation is the best solution. ... if the routine is called a large number of times ... in form of an allocatable array*, and the called routined checked whether it ... it would allocate at that proper size. ...
    (sci.math.num-analysis)
  • Re: Who uses clapack?
    ... > not clear that dynamic allocation is the best solution. ... if the routine is called a large number of times ... in form of an allocatable array*, and the called routined checked whether it ... it would allocate at that proper size. ...
    (comp.lang.fortran)