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

Intel Compiler show error while compiling my Fortran code

Bless__Max
Beginner
445 Views

Hello there !

I am trying to run a simulation in Abaqus which involves linking Abaqus with user subroutine such as DFLUX  (written in Fortran language). When I tried to run the simulation via Abaqus command window I receive the following error : 

C:\donut\dynamic>abaqus job=plate_heat_movement user=subroutine_file interactive

Abaqus JOB plate_heat_movement
Abaqus 6.13-1
Abaqus License Manager checked out the following licenses:
Abaqus/Standard checked out 5 tokens.
<1019 out of 1024 licenses remain available>.
Begin Compiling Abaqus/Standard User Subroutines
7/17/2019 6:54:39 AM
Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Inte
l(R) 64, Version 13.1.0.149 Build 20130118
Copyright (C) 1985-2013 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
subroutine_file.obj : error LNK2019: unresolved external symbol subroutineheat r
eferenced in function dflux
standardU.dll : fatal error LNK1120: 1 unresolved externals
Abaqus Error: Problem during linking - Abaqus/Standard User Subroutines.
  This error may be due to a mismatch in the Abaqus user subroutine arguments.
  These arguments sometimes change from release to release, so user subroutines
  used with a previous release of Abaqus may need to be adjusted.
Abaqus/Analysis exited with errors

I don't understand the error it shows. Moreover I am not able to figure out if the error is from the code I have written or is it from the compiler itself. I will attach the code that I have written below. I hope someone helps me to get around this problem TIA

Code : 

*USER SUBROUTINE
      SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS,
  
     1 JLTYP,TEMP,PRESS,SNAME)
      include 'ABA_PARAM.INC'
      DIMENSION  FLUX(2),TIME(2),COORDS(3)
      CHARACTER*80 SNAME

*code 
       INTEGER :: KSTEP,NOEL,NPT 
       INTEGER,PARAMETER :: total_vals = 6272
       INTEGER :: row, col, max_rows = 50, max_cols = 100
       INTEGER :: a = 12, b = 1, t = 1
       REAL, DIMENSION(total_vals) :: hfl
       REAL, DIMENSION(total_vals) :: temp
       INTEGER, DIMENSION(50,100) :: elem_array
	   	  
       open(unit=10,file='C:\donut\dynamic\output_hfl.csv')
       read(10,*)hfl
       close(10)

       open(unit=11,file='C:\donut\dynamic\output_temp.csv')
       read(11,*)temp
       close(11)	

       open(unit=12,file='C:\donut\dynamic\output_file.csv')
	  
       do row = 1, max_rows 
           read(12,*)(elem_array(row,col), col = 1, max_cols)
       end do
	  
       close(12)
	  
       if(KSTEP.EQ.1)then 
           call subroutine heat(a,b,t)
       end if
	  
       contains
	  
            recursive subroutine heat(r,c,s)	  
            INTEGER, INTENT(IN) :: r,c,s
            INTEGER :: m,n
            INTEGER :: k = 1, l = 0
            if(TIME(2).gt.s)then                
                do m = r+27,r,-1
                    do n = c,c+27
                        if(NOEL.eq.elem_array(m,n))then
                            do p = 1,8
                                if(npt.eq.p)then
                                    Flux(1) = hfl(k+8*l)*temp(k+8*l)
                                end if
                                k=k+1
                            end do 
                        end if
                        k = 1
                        l = l+1
                    end do
                end do				   
            end if
            if(s.gt.100)then 
                stop
            else
                call subroutine heat(r,c+1,s+1)
            end if 
            return			
            end subroutine heat	  
      end	  

 

0 Kudos
1 Solution
Lorri_M_Intel
Employee
445 Views

This line:
                call subroutine heat(r,c+1,s+1)

should simply be

                call heat(r,c+1,s+1)

 

View solution in original post

0 Kudos
1 Reply
Lorri_M_Intel
Employee
446 Views

This line:
                call subroutine heat(r,c+1,s+1)

should simply be

                call heat(r,c+1,s+1)

 

0 Kudos
Reply