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

not able to compile abaqus user subroutine

pankaj_p_
Novice
1,835 Views

hello all

I am trying to compile one subroutine having a simple constitutive model (solid mechanics). Every time i submit the job in abaqus, it gets aborted. It gives the error #5149 in log file

>>>>>>

AFEM.for(1): error #5149: Illegal character in statement label field  [ï]

>>>>>>

User subroutine are always in .for format.

help me out

:)

11 Replies
Arjen_Markus
Honored Contributor I
1,835 Views

I am not familiar with ABAQUS, but given that you stress that the user routine should be in .for format - most probably you mean "fixed form" and the message you posted, I would say that your source file is not in proper fixed form. Such files have the first six columns reserved. See the documentation on the fixed form for more details.

0 Kudos
mecej4
Honored Contributor III
1,835 Views

The compiler is complaining about the presence of an accented character (ï)in the label field. Examine your source file AFEM.for to locate that character, or attach the file to your response (pasting the source code in-line will probably not suffice).

0 Kudos
pankaj_p_
Novice
1,835 Views

thanks for the reply @Arjen Markus

But the subroutine has been written correctly. There is some problem in environmental variable settings. Previously it was working fine before re-installation, but I have messed up with settings. There are particular steps to be followed that i am unable to find online.

Thanks again 

0 Kudos
pankaj_p_
Novice
1,835 Views
C================================================================

      SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
     1 RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,
     2 TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,MATERL,NDI,NSHR,NTENS,
     3 NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,CELENT,
     4 DFGRD0,DFGRD1,NOEL,NPT,KSLAY,KSPT,KSTEP,KINC)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 MATERL
      DIMENSION STRESS(NTENS),STATEV(NSTATV),
     1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
     2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
     3 PROPS(NPROPS),COORDS(3),DROT(3,3),
     4 DFGRD0(3,3),DFGRD1(3,3)
C
      DIMENSION EELAS(6),EPLAS(6),FLOW(6)
      PARAMETER (ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,SIX=6.0D0)
      DATA NEWTON,TOLER/10,1.D-6/
C
C ============================================================================
C ============================================================================
C     Note :- This UMAT can only be used by 1D elements
C
C     Number of material properties, nprops = 1
C     props(1)         Young's modulus in x direction
C ---------------------------------------------------------------------
C
	 ! --- local variables
      DOUBLE PRECISION E
      DOUBLE PRECISION C(ntens, ntens)
!***********************************************************************
 
! *** Get Elastic properties
      E = props(1)
	  
! *** Elastic stiffness Cijkl *** !
      C(1,1) = E

! *** calculate the stress *** !
      stress(1) = C(1,1)*(stran(1) + dstran(1))
      
!     Updating Jacobian matrix
      ddsdde(1,1) = C(1,1)	  
      return
      end 
	 

This is the standard ABAQUS subroutine (with my code at the end ................ after "

Note :- This UMAT can only be used by 1D elements

"). 

0 Kudos
Arjen_Markus
Honored Contributor I
1,835 Views

Ian spotted the umlaut on the i - i umlaut is not part of the character set supported by Fortran in the source text.

Either examine the file carefully and remove such characters or attach it to this topic, as Ian suggested, so that we can have a look.

0 Kudos
Arjen_Markus
Honored Contributor I
1,835 Views

Okay, your code came in later. That does not contain a i umlaut though and if I comment out the include statement, it compiles fine. The problem could be in the file "aba_param.inc" then

0 Kudos
pankaj_p_
Novice
1,835 Views

thanks @mecej4 and @Arjen Markus for your comments

I think the problem will get solved when i would be able to correctly link  ABAQUS with Fortran. 

 

0 Kudos
Carlygao
New Contributor I
1,308 Views

Hi, may I know how you solved it? I have the same issue. The user subroutines worked before. It gave me the same error as yours after I reinstalled everything. Thanks.

 

rxfem_usub.f(1): error #5149: Illegal character in statement label field  [i]
include 'rxfem_core.f'

0 Kudos
Arjen_Markus
Honored Contributor I
1,298 Views

It seems that you are using fixed-form source files. For such files the first six columns are reserved. Unless the leading spaces have been dropped, it looks as if the "include" statement starts in column 1. Shift the statement to start in column 7 or later.

0 Kudos
mecej4
Honored Contributor III
1,835 Views

The compiler gave 1 as the line-number in the file where there was a problem. What probably happened was that the file is an UTF-8 file, and the accented character was the BOM marker at the start of the file. However, since you copied and pasted the source code into a code window in this forum by using the {...} button, the code got sanitized, which is why we do not see any odd characters in the displayed code. In case such as this, attaching the file is a good way to preserve the bugs so that they can be detected and fixed.

As you can read in https://en.wikipedia.org/wiki/Byte_order_mark, ;

The UTF-8 representation of the BOM is the byte sequence 0xEF,0xBB,0xBF. A text editor or web browser misinterpreting the text as ISO-8859-1 or CP1252 will display the characters  for this.

To fix the problem, open the file in, say, Notepad, and save the file as a plain text (ASCII) file. To avoid the problem, especially after you import source code from e-mail, a word-processor document, a PDF file or the Web, be sure to save the file as ASCII text.

0 Kudos
Greg_T_
Valued Contributor I
1,835 Views

Hi Pankaj,

Have you tried compiling the UMAT subroutine by itself, separate from an Abaqus run?  Does the compiler error persist?  I find it useful to create a console program project in Visual Studio with a main program that can call the UMAT subroutine (pass in some values to test).  That allows compiling and linking the subroutine outside of Abaqus, which I feel helps test and confirm the subroutine works as expected.  If that works and the compiler error persists when running from Abaqus, you have at least narrowed down the problem.

I have had success running user subroutines with Abaqus by opening the Intel Fortran console (CMD) first so that the Intel Fortran environment is initialized, and then running Abaqus from that console.  On Windows 10 I open the console from: Start/Intel Parallel Studio XE 2017/Compiler 17.0 Update 1 for Intel 64 Visual Studio 2015 environment

Regards,

Greg T.

0 Kudos
Reply