- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, I'm doing some simulation using Abaqus UMAT (material user subroutine coded in Fortran).
The strange problem is that I sometimes got an error as below for the same simulation which is completed successfully.
Once I got this error, I restart Abaqus and submit the job again, then the job is completed successfully but not all the time.
Could anyone have some experience about this??
forrtl: severe (32): invalid logical unit number, unit -991156787, file unknown
Image PC Routine Line Source
libifcoremd.dll 00000000002227EF Unknown Unknown Unknown
libifcoremd.dll 000000000021C5A3 Unknown Unknown Unknown
libifcoremd.dll 00000000002059AF Unknown Unknown Unknown
libifcoremd.dll 00000000001683E8 Unknown Unknown Unknown
libifcoremd.dll 00000000001DF5A6 Unknown Unknown Unknown
standardU.dll 00007FFDE0EB19FD Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDF7499E4 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDF748393 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDE00EF9C3 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDF5A13C6 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDF087CE6 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDF084946 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDFD64FAD Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDEF7C252 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDFD32462 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDFD2E9E1 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDF127CE4 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDF121B85 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDE77F024 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDE074EEA1 Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDDF1142FA Unknown Unknown Unknown
ABQSMAStaCore.dll 00007FFDE00488B9 Unknown Unknown Unknown
standard.exe 00007FF770184161 Unknown Unknown Unknown
standard.exe 00007FF770181316 Unknown Unknown Unknown
standard.exe 00007FF770197193 Unknown Unknown Unknown
KERNEL32.DLL 00007FFE3B1C8364 Unknown Unknown Unknown
ntdll.dll 00007FFE3D0E70D1 Unknown Unknown Unknown
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Something in standardu.dll is doing I/O specifying an uninitialized value as the unit number. That it happens occasionally is a clue that it is an uninitialized memory location. You'll have to debug this on your own, or get help from Abaqus support.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve Lionel (Ret.) wrote:
Something in standardu.dll is doing I/O specifying an uninitialized value as the unit number. That it happens occasionally is a clue that it is an uninitialized memory location. You'll have to debug this on your own, or get help from Abaqus support.
Thank you for your quick reply!
Could the fact that I didn't declare some of the variables in my UMAT code cause this error?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In some other cases I might say it is possible, but I think it's unlikely here. Hard to know without seeing your code and how it is called. But it should be pretty easy to debug.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you do not declare a variable, it is given a type based on the implicit declaration rules. If the intended type does not match the implicit type for variables with the first character in its name, errors will probably occur. From the symptoms, however, I suspect that an uninitialized variable is being used somewhere, or array bounds are being overrun, causing memory corruption.
I suggest that you add the /traceback compiler option, rebuild and rerun. You should then obtain more useful information in the traceback.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here's the part of my UMAT code. But I omitted the main calculations part.
Originally I used the subroutine UMATYPP as UMAT itself. But I made it to the subroutine of UMAT because I need to solve something outside UMAT. So the number of variables are the same but the dimension of some arrays are different. This might be a reason for this error??
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am not an Abaqus user, so your code and comments have no meaning for me. You should send those questions to Abaqus support or ask them in an Abaqus user forum.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi mecej4, I'm not trying for you to debug my problem but I thought you could check some declared arrays. And the code I posted is just the structure not whole calculations.
How about you, Steve Lionel ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I don't see where variable IOW gets set.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve Lionel (Ret.) wrote:
I don't see where variable IOW gets set.
I just used the statement, write(IOW,*), to write some information to *.log file.
I don't remember where I got the expression especially "IOW" but it seems that uninitialized IOW can cause this error occasionally.
Anyway I'm going to use write(*,*) instead of write(IOW,*) and I'll let you know results.
Thank you so much anyway.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Abaqus has some predefined file unit numbers that you could also use, or at least avoid conflicting with. The Abaqus Analysis User's Guide, section 3.7.1 "Fortran unit numbers used by Abaqus" gives a helpful list of the file unit numbers and the associated file. For debugging a user subroutine I have had success using file unit 7 to write to the "message" file *.msg that Abaqus writes during the analysis. Then view the *.msg file with a text editor to find you debugging information.
Regards,
Greg
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
After I changed the statement from write(IOW,*) to write(*,*), I don't have any errors so far.
Thank you so much, mecej4, Greg. T and Steve Lionel !!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,J.K
I have encountered the same problem as you, how do you solve it?
Please help me
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How can you say, "I have encountered the same problem", when the code that Jaehyun K. talks about is no longer visible in this thread? If it actually is the same problem, the solution is to set IOW to a known integer, in which case you should open the appropriate file before writing to it, or replace IOW by '*', which will send output to the standard output.
For better responses, please provide a description of your problem.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
FWIW, Jaehyun K wrote me to say:
This is Barney Kim whom you help to solve Fortran problem in Intel Fortran Forum. With your accurate solution, I managed to publish two scientific papers using Abaqus UMAT. (link: https://doi.org/10.1016/j.ijmecsci.2018.10.018) doi.org/10.1016/j.ijme… (link: https://doi.org/10.1016/j.jmatprotec.2019.02.016) doi.org/10.1016/j.jmat… Thank you so much for your help.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Greg T. wrote:Abaqus has some predefined file unit numbers that you could also use, or at least avoid conflicting with. The Abaqus Analysis User's Guide, section 3.7.1 "Fortran unit numbers used by Abaqus" gives a helpful list of the file unit numbers and the associated file. For debugging a user subroutine I have had success using file unit 7 to write to the "message" file *.msg that Abaqus writes during the analysis. Then view the *.msg file with a text editor to find you debugging information.
Regards,
Greg
Hi,Greg
I really want to know more about your way to debug a user subroutine in abaqus, but I'm a fresh man,could you give me more information (a example will be better) about how to use this debug method?
Your reply will really help me a lot.
Regards,
Wenlong

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page