Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations MintJulep on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

ABAQUS Subroutine Question - Problem during compilation - DLOAD.for

Status
Not open for further replies.

Dave1231

Civil/Environmental
Mar 2, 2011
9
I'm relatively new to ABAQUS and currently trying to model a wheel's movement over a beam element. I have succeeded in building a model using the AMPLITUDE function, now however, I want to build one using a FORTRAN subroutine. I have designed a DLOAD subroutine - enclosed below. I have attached the subroutine to ABAQUS and the job returns with ABAQUS error - Problem during compilation - C:\DLOAD.for. Does anyone have any suggestions?

I use ABAQUS 6.10-1 and Microsoft Visual Studio 2010 - Intel Visual Fortran.

I've modelled a simple 50m long beam element with a rectangular profile - height=0.153m and width=0.078m. The subroutine is attempting to model a 0N load over the beam element except from 2 uniform moving loads spaced at 1.8m apart. The moving loads are each the circumference of a wheel=2.388m. I have tried numerous alterations to my subroutine, all of which return the same error. Any help would be much appreciated. A step-by-step guide would be a treat. Regards.

SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
1 COORDS,JLTYP,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TIME(2), COORDS (3)
CHARACTER*80 SNAME
C
C----------------------ROAD LENGTH
RDL=50.
C
C----------------------WHEEL LOADING Vehicle : 1 or 2. F - front R - Rear
WLD1F=52345.
WLD1R=52345.
C
C----------------------FRONT-REAR WHEEL SPACING
WLSP1=1.8
C
IROAD=1
C
IF(IROAD.EQ.1) THEN
ST1R=0.+TIME(1)*(RDL-2.388)
FI1R=2.388.+TIME(1)*(RDL-2.388)
C
ST1F=ST1R+WLSP1
FI1F=FI1R+WLSP1
ENDIF
C
F=0.
C
C--------------- VEHICLE 1 REAR wheel load
IF(COORDS(1).GE.ST1R.AND.COORDS(1).LE.FI1R)THEN
F=WLD1R
ST=ST1R
FI=FI1R
C
C---------------- VEHICLE 1 FRONT wheel load
ELSE IF(COORDS(1).GE.ST1F.AND.COORDS(1).LE.FI1F) THEN
C
C-------------FOR UNIFORM LOADING over the loaded region
F=WLD1F
ST=ST1F
FI=FI1F
C
ENDIF
C
RETURN
END
 
Replies continue below

Recommended for you

Tara, thanks for the input. However I'm unsure about what you mean. Whereabouts do you think I'm missing the "ENDIF"? I've got two of them, do I need more?
 
check INCLUDE, should not be in pharenthesis! You can add the content from the file "ABA_PARAM.INC" by editing
/Stig
 
@Danstro - The error I get is "Error in job FORTRAN: Problem during compilation - C:\Documents and Settings\My Documents\Visual Studio 2010\Projects\FORTRAN LOADING 3\FORTRAN LOADING 3\FORTRAN LOADING 3.for
Job FORTRAN aborted due to errors." Any suggestions?

@portliner - I'm basing my subroutine on the ABAQUS manual DLOAD subroutine: The manual doesn't have INCLUDE in parenthesis and has it written the same way as my script. You mention I can add the content of the file "ABA_PARAM.INC" to my subroutine. How do I do that? I searched my files and folders for the file but could not locate it. Will it help? I assumed ABAQUS would include the file for me.

Any further help would be great. Thanks.
 
Before the last ENDIF try putting in an extra ENDIF.

Tara
 
@ corus - Tara.
I included the extra ENDIF but it resulted in the same error. It now looks like:
F=WLD1F
ST=ST1F
FI=FI1F
ENDIF
C
ENDIF
C
RETURN
END

Any other suggestions? Regards.

 
Although, I believe the ABAQUS error is due to an error in the subroutine; below, is my ABAQUS input file. Enclosed to see if anyone sees a problem with it. Regards.

*Heading
** Job name: FORTRAN Model name: Model-4
** Generated by: Abaqus/CAE 6.10-1
*Preprint, echo=NO, model=NO, history=NO, contact=NO
**
** PARTS
**
*Part, name=Part-1
*Node
1, 0., 0.
2, 5., 0.
3, 10., 0.
4, 15., 0.
5, 20., 0.
6, 25., 0.
7, 30., 0.
8, 35., 0.
9, 40., 0.
10, 45., 0.
11, 50., 0.
*Element, type=B21
1, 1, 2
2, 2, 3
3, 3, 4
4, 4, 5
5, 5, 6
6, 6, 7
7, 7, 8
8, 8, 9
9, 9, 10
10, 10, 11
*End Part
**
**
** ASSEMBLY
**
*Assembly, name=Assembly
**
*Instance, name=Part-1-1, part=Part-1
*End Instance
**
*Nset, nset=_PickedSet4, internal, instance=Part-1-1
1, 11
*Elset, elset=__PickedSurf5_SPOS, internal, instance=Part-1-1, generate
1, 10, 1
*Surface, type=ELEMENT, name=_PickedSurf5, internal
__PickedSurf5_SPOS, SPOS
*End Assembly
**
** MATERIALS
**
*Material, name=Rail
*Density
7842.,
*Elastic
2.1e+11, 0.3
** ----------------------------------------------------------------
**
** STEP: march
**
*Step, name=march
*Static, direct
0.6, 0.6,
**
** BOUNDARY CONDITIONS
**
** Name: BC-1 Type: Symmetry/Antisymmetry/Encastre
*Boundary
_PickedSet4, XSYMM
**
** LOADS
**
** Name: Load-1 Type: Pressure
*Dsload
_PickedSurf5, PNU, 0.
**
** OUTPUT REQUESTS
**
*Restart, write, frequency=0
**
** FIELD OUTPUT: F-Output-1
**
*Output, field, variable=PRESELECT
**
** HISTORY OUTPUT: H-Output-1
**
*Output, history, variable=PRESELECT
*End Step
 
Shouldn't this line _PickedSurf5, PNU, 0. be _PickedSurf5, PNU, 1., for magnitude of 1?

For the subroutine problem, I'm sure that the line where the error exists is displayed somewhere. Try the log file.


Tara
 
You have an extra '.' on this line:

FI1R=2.388.+TIME(1)*(RDL-2.388)

Looking at the log file would have told you this...
 
Thanks for your help. Having fixed the subroutine I ran ABAQUS again only for this error to occur -

"FORTRAN LOADING 3.2.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
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"

Does anyone have any suggestions?

I attempted to follow the guide on but I couldn't locate the "Linker > Command Line property page" on Microsoft Visual 2010. Can anyone help?

Regards.
 
When I get an error like this the log file is the best place to go. Every time, not that I use them a lot, it has been an error in the code. And the log file will tell you what line that error is on.
 
This could be one of a few things. Most likely you're running on a 64 bit computer but haven't installed the extra x64 compilers and tools as part of your visual studio installation. Otherwise one of your ENV file linker settings is incorrect.
 
Thanks for the help. I have a 32 bit computer but was running a 64 bit compiler. Having altered that, I reran my ABAQUS job. Another, different error appeared. The log file states:

"standardU.dll.manifest : general error c1010070: Failed to load and parse the manifest. The system cannot find the file specified.

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"

Has anyone seen this before or know of how to solve it?
 
Hello,
I'm getting similar error messages which may be related:

Abaqus Error: Problem during linking - Single Precision Abaqus/Explicit 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 version of Abaqus may need to be adjusted.
Abaqus/Analysis exited with errors

I'm using Abaqus 6.8-1, Fortran 10.1 and Visual Studio 2005, on a 32bit xp machine. I'm trying to run the rigmultimech_exp_sensor.inp example from the help using the using the vuamp_rigmultimech.for subroutine.
I've seen this subroutine work on unix machine running 6.8-1 but I can't get it to work on my desktop.
Any ideas where to start?
Many thanks
George

I've seen this subroutine work on version 6.8-1 running on a

 
Dave1231...

I am also getting the same error when compiling subroutines..
Have you managed to solve it?
See below..



C:\temp>abaqus make library=uniFiber.for
Abaqus JOB uniFiber.for
Begin Compiling Single Precision Abaqus/Explicit User Subroutines
3/20/2011 9:20:11 PM
End Compiling Single Precision Abaqus/Explicit User Subroutines
3/20/2011 9:20:12 PM
Begin Linking Single Precision Abaqus/Explicit User Subroutines
3/20/2011 9:20:12 PM
Creating library explicitU.lib and object explicitU.exp
Microsoft (R) Manifest Tool version 5.2.3790.2076
Copyright (c) Microsoft Corporation 2005.
All rights reserved.

explicitU.dll.manifest : general error c1010070: Failed to load and parse the ma
nifest. The system cannot find the file specified.
Abaqus Error: Problem during linking - Single Precision Abaqus/Explicit User Sub
routines.
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.
The Abaqus Make execution procedure exited with errors

Luke
 
No, I'm afraid I did not manage to resolve my issue. Good luck finding a solution!
 
An error in the line:
FI1R=2.388.+TIME(1)*(RDL-2.388)
change 2.388. to 2.388 !!!!!!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor