Several months ago I had successfully developed a user subroutine in FORTRAN for a particular commercial finite element software (ABAQUS). I decided several days ago to extend this subroutine and the resulting subroutine is quite complex, big, and involves several big matrices/arrays (over 10 thousand lines) that are exchanged among subroutines with COMMON BLOCKS.
The thing is that the subroutine does not compile and I get the following error:
Abaqus Error: The executable standard.exe aborted with system error code 1073741819.
There is no other information in any other file. It is important to note that this kind of error could be due to many reasons and is different than the error that appears as a consequence of poor programming. However, I thought that maybe I had define wrongly some of the variables of the code: I thoroughly checked all the code and tried to locate the error. My surprise came when I saw that, reducing the number of lines of the big matrices/arrays mentioned before, the subroutine works. Those matrices/arrays are all of them initialized (the suppressed lines only contain 0s) and I have checked that its dimensions agree through all the code. Searching on the internet I see that some people with similar problems say that it could be due to memory problems. Could it be? What could I do to solve it?
I know that usually, in the 95% of the cases, when subroutines don't work this is due to poor programming. However, in this case there are several circumstances that make me think that it could be to other reasons. Among them, if I add to the subroutine the following statement WRITE, the above mentioned error appears again, independently of the variable (A or other).
WRITE(7,*) 'A equals:', A
(Note that in this statement the number 7 indicates that the message is written to a particular file of the FE software).
Searching on the internet I have also found this nice post by Steve Lionel:https://software.intel.com/en-us/articles/memory-limits-applications-win...
I wonder if it is my case and if I can do anything to solve the problem, since I use quite a lot of static code but unfortunately I am not able to reduce it due to the limitations of not having access to the main code.
Thank you very much for your help