Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

seg fault for Abaqus 2020

Carlygao
New Contributor I
5,203 Views

Hi,

 

I have a umat file for Abaqus 2017 and visual studio 2015, and it worked well. Recently, I changed to Visual Studio 2019 and Abaqus 2020. When I compiled my UMAT, it gave me the following error. Does anybody have the same issue, and give me some suggestions on how to fix it? Thanks.

 

Old job files exist. Overwrite? (y/n): y
Analysis initiated from SIMULIA established products
Abaqus JOB 9element_test
Abaqus 2020
Abaqus License Manager checked out the following licenses:
Abaqus/Standard checked out 5 tokens from Flexnet server abaquswapp01.
<105 out of 140 licenses remain available>.
Begin Compiling Abaqus/Standard User Subroutines
9/28/2022 2:54:52 PM
Intel(R) Fortran Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.6.0 Build 20220226_000000
Copyright (C) 1985-2022 Intel Corporation. All rights reserved.

End Compiling Abaqus/Standard User Subroutines
Begin Linking Abaqus/Standard User Subroutines
Creating library standardU.lib and object standardU.exp
End Linking Abaqus/Standard User Subroutines
9/28/2022 2:55:09 PM
Begin Analysis Input File Processor
9/28/2022 2:55:09 PM
Run pre.exe
9/28/2022 2:55:12 PM
End Analysis Input File Processor
Begin Abaqus/Standard Analysis
9/28/2022 2:55:12 PM
Run standard.exe
*** ABAQUS/standard rank 0 encountered a SEGMENTATION FAULT

*** ERROR CATEGORY: ELEMENT LOOP

9/28/2022 2:55:20 PM
Abaqus Error: Abaqus/Standard Analysis exited with an error - Please see the
message file for possible error messages if the file exists.
Begin SIM Wrap-up
9/28/2022 2:55:21 PM
Run SMASimUtility.exe
9/28/2022 2:55:21 PM
End SIM Wrap-up
Abaqus/Analysis exited with errors

0 Kudos
6 Replies
Steve_Lionel
Black Belt
5,184 Views

Segmentation fault means that your program tried to access an invalid memory address. The possible reasons for this are infinite - the only recourse is to build the code independently with debugging enabled and run it under a debugger to help identify the cause. 

Given that you are running in the ABAQUS environment, the first thing I'd recommend is to verify that all of your Fortran routine arguments are the correct type and in the correct order.  There is little further advice we can offer here, not seeing your code nor having ABAQUS.

0 Kudos
Carlygao
New Contributor I
5,097 Views

Hi Steve,

 

Thanks for your suggestions. I found UMAT in Abaqus 2020 use JSTEP (array), rather than KSTEP (scalar) in its previous version. This caused the segmentation fault.

 

After I fixed this error, I run my code, and got the following error. It seems Abaqus can't find ifort compiler. 

 

Analysis initiated from SIMULIA established products
Abaqus JOB 9element_test
Abaqus 3DEXPERIENCE R2019x
Abaqus License Manager checked out the following licenses:
Abaqus/Standard checked out 5 tokens from Flexnet server abaquswapp01.uta.edu.
<130 out of 140 licenses remain available>.
Begin Compiling Abaqus/Standard User Subroutines
10/6/2022 2:39:35 PM
'ifort' is not recognized as an internal or external command,
operable program or batch file.
Abaqus Error: Problem during compilation - ..\..\source\rxfem_usub.f
Begin Convert MFS to SFS
10/6/2022 2:39:37 PM
Run SMASimUtility.exe
10/6/2022 2:39:37 PM
End Convert MFS to SFS
Abaqus/Analysis exited with errors

However, I passed the verification before. So I run "Abaqus2020 verify user_std" again. I failed to pass it at this time. The error message in std_user.for is below.

 

Analysis initiated from SIMULIA established products
Abaqus JOB std_user
Abaqus 2020
Abaqus License Manager checked out the following licenses:
Abaqus/Standard checked out 5 tokens from Flexnet server abaquswapp01.uta.edu.
<135 out of 140 licenses remain available>.
Begin Compiling Abaqus/Standard User Subroutines
10/6/2022 3:12:10 PM
Intel(R) Fortran Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.6.0 Build 20220226_000000
Copyright (C) 1985-2022 Intel Corporation. All rights reserved.

std_user.for(2): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: ( : % [ . = =>
C
-^
std_user.for(4): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: ( : % [ . = =>
C
-^
std_user.for(6): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: ( : % [ . = =>
C
-^
std_user.for(7): error #5082: Syntax error, found IDENTIFIER 'THE' when expecting one of: ( : % [ . = =>
C THE PRIMARY FUNCTION IS F(T)=1.5 SIN(OMEGA T) + .5 COS(OMEGA T)
--^
std_user.for(8): error #5082: Syntax error, found IDENTIFIER 'WHERE' when expecting one of: ( : % [ . = =>
C WHERE OMEGA IS .1 PI AND T THE CURRENT TIME.
--^
std_user.for(9): error #5082: Syntax error, found IDENTIFIER 'THE' when expecting one of: ( : % [ . = =>
C THE APPROPRIATE INTEGRALS AND DERIVATIVES ARE COMPUTED ACCORDINGLY.
--^
std_user.for(10): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: ( : % [ . = =>
C
-^
std_user.for(18): error #5082: Syntax error, found IDENTIFIER 'THE' when expecting one of: ( : % [ . = =>
C THE FUNCTION IS DISPLACEMENT FOR NODE 2
---------^
std_user.for(19): error #5082: Syntax error, found IDENTIFIER 'FOR' when expecting one of: :: ) ( , : * <END-OF-STATEMENT> ; . % (/ + - [ ] /) . ** / // ...
C (DIFFERENTIATE FOR VEL AND ACC)
------------------------^
std_user.for(24): error #5082: Syntax error, found IDENTIFIER 'THE' when expecting one of: ( : % [ . = =>
C THE FUNCTION IS VELOCITY FOR NODE 3 (INTEGRATE FOR DISP,
---------^
std_user.for(25): error #5276: Unbalanced parentheses
C DIFFERENTIATE FOR ACCELERATION)
---------------------------------------^
std_user.for(25): error #5082: Syntax error, found IDENTIFIER 'DIFFERENTIATE' when expecting one of: ( : % [ . = =>
C DIFFERENTIATE FOR ACCELERATION)
---------^
std_user.for(30): error #5082: Syntax error, found IDENTIFIER 'THE' when expecting one of: ( : % [ . = =>
C THE FUNCTION IS ACCELERATION FOR NODE 4
---------^
std_user.for(31): error #5082: Syntax error, found IDENTIFIER 'FOR' when expecting one of: :: ) ( , : * <END-OF-STATEMENT> ; . % (/ + - [ ] /) . ** / // ...
C (INTEGRATE FOR DISP AND VELOCITY)
--------------------^
std_user.for(2): error #6218: This statement is positioned incorrectly and/or has syntax errors.
C
^
std_user.for(4): error #6218: This statement is positioned incorrectly and/or has syntax errors.
C
^
std_user.for(10): error #6218: This statement is positioned incorrectly and/or has syntax errors.
C
^
compilation aborted for std_user.for (code 1)
Abaqus Error: Problem during compilation - std_user.for
Abaqus/Analysis exited with errors

 

I am quite confused. It didn't complain missing ifort compiler, but gave many errors in std_user.for. The errors seems to complain the format. std_user.for should be from Abaqus, not from me. Why does Abaqus complain their own script?

 

Thanks.

 

Carly

0 Kudos
jimdempseyatthecove
Black Belt
5,092 Views

This potentially can occur if your Fortran command line options include /free (-free).

Your file type (.for) indicates fixed format (using 1st character as C for comment), however, /free would force free format file interpretation that uses ! character as comment indicator.

Note, the compile time error messages would occur if 1st character of C were .NOT. considered a comment line.

 

Jim Dempsey

 

0 Kudos
Carlygao
New Contributor I
5,089 Views

Hi Jim,

 

Yes, I used /free for the Fortran command line. Just checked all my subroutines. I used ! character as the comment indicator in all my codes. For std_user.for from Abaqus, it uses "C". The errors lines are in exactly where "c" shows up as the first letter. However, I can't change it to "!", because it will be automatically overwritten. Is there anyway to solve this problem?

 

Thanks.

 

Carly

0 Kudos
jimdempseyatthecove
Black Belt
5,088 Views

RTFM (Read The Fortran manual)

 

...


  /fixed specify source files are in fixed format. Same as /FI and /4Nf
  /nofixed indicates free format

  /free specify source files are in free format. Same as /FR and /4Yf
  /nofree indicates fixed format

...

Jim Dempsey

 

0 Kudos
Steve_Lionel
Black Belt
5,086 Views

In other words, don't use /free for this source.

0 Kudos
Reply