In the past this did not always work, with issues related to uppercase and lowercase letters. The user subroutine(s) could then not be found. If the .log file shows that the compiler is linked, and the .msg file mentions that the user subroutine is missing, then try this workaround (mentioned by Raul Munoz on our previous blog):
The following line can be added at the end of your environment file:
compile_fortran += ['/names:lowercase',]
AUGH! DO NOT DO THIS!!!!!! It will make things increasingly difficult for you. If you do have this issue, I'd suggest BIND(C) for your routine, or maybe !DEC$ ATTRIBUTES ALIAS. Lots of things won't work if you make everything lowercase.
Steve is suggesting using !DEC$ ATTRIBUTES ALIAS.
As an example, let's say you have a subroutine "AbbyNormal" that you want to call and you want the subroutine name in all lower case, "abbynormal". The code would look like this, roughly
!DEC$ ATTRIBUTES ALIAS:'abbynormal' :: AbbyNormal subroutine AbbyNormal( x, n ) real :: x(n) !do stuff end subroutine AbbyNormal
I do not know Abaqus. I was assuming somewhere in your Abaqus code/script you want to call your Fortran subroutine AbbyNormal with this example. I was just showing how to use ATTRIBUTES ALIAS to force the symbol for AbbyNormal to be all lower case.