0

I have a Fortran UEL subroutine that I use in a calculation with just one step but several increments. The model I am calculating is not heavy (2D with about 2000 elements). However, after some increments my calculation stops with the error "forrtl: severe (41): insufficient virtual memory".

By checking the Task Manager it is noticeable that in each step the amount of memory used by the Abaqus solver (SMAStandard) increases, as it is accumulating virtual memory space every time it runs the UEL subroutine.

My question is: I don't see why should Abaqus keep anything in virtual memory after each iteration, because the matrices needed for the calculation are built in every iteration. Is there something I am doing wrong?

Francisco Cruz
  • 314
  • 3
  • 13
  • It's huge :/ Anyway, I am focused in understanding if Abaqus is supposed to accumulate so much data between iterations – Francisco Cruz Jul 05 '16 at 20:24
  • @VladimirF doest it help if I say that I am declaring using the 77 style "REAL*8 MATX(NVAR,NVAR)"? – Francisco Cruz Jul 05 '16 at 20:41
  • You should use DIMENSION instead of REAL*8. Abaqus uses implicit types based on the abaparam.inc file. – will Jul 06 '16 at 18:33
  • *You should use DIMENSION instead of REAL\*8* ? Why ? `*8` is a non-standard (but very widely used) convention for specifying 8-bytre reals, whereas `dimension` is used to specify the shape of an array. – High Performance Mark Jul 08 '16 at 09:26
  • @HighPerformanceMark Abaqus has an include statement that will define the type for all variables to be used in the analysis. This is changed based on other settings in the main program and may even change as part of the analysis. Abaqus will often compile a single precision and a double precision version of the subroutine for use in a single analysis. – will Jul 11 '16 at 09:54

0 Answers0