If you’re trying to apply complex or sinusoidal loads in Abaqus, you’re probably wondering: Is this going to require hours of coding?
Well, it turns out the Abaqus DLOAD subroutine isn’t just capable—it’s surprisingly easy.
In this post (and video), I walk you through two simple load examples—one linear and one sinusoidal—and show you exactly how to implement them using both DLOAD and analytical field methods. I also compare the results with analytical expressions, and they match almost perfectly. Whether you’re a student or a professional engineer, this will change the way you think about custom loads in Abaqus.
🎥 Watch the full step-by-step video here:
What Is the Abaqus DLOAD Subroutine?
The DLOAD subroutine in Abaqus allows you to apply user-defined distributed loads, like pressure or body forces, that vary with spatial coordinates or time. It’s ideal when you want to apply:
- Non-uniform pressure loads
- Spatially varying surface forces
- Sinusoidal, parabolic, or even custom mathematical functions
Let’s go through the entire process of setting it up—from scratch.
Step 1: Create the Abaqus Model
We start by creating a simple 3D deformable solid using a rectangular sketch (5 mm × 50 mm × 40 mm). After assigning a basic elastic material (E = 210 GPa, ν = 0.3), we define a solid homogeneous section and assign it to the part.

The part is assembled, translated, and a Static General step is created. One face is encastered (fully fixed), and we’re ready to apply the loads.

Step 2: Applying the Load Using DLOAD
We apply a surface pressure on the opposite face and choose “User-defined” as the load type, setting the magnitude to 1 (we’ll override it with the subroutine).
Then we generate the mesh, refine edge seedings where needed, and create the job.

Step 3: Writing the DLOAD Subroutine
Using Intel Fortran + Visual Studio, we create a .for
file. The base template is taken from Abaqus documentation (no guessing here), and we modify it with the desired logic:
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
X=COORDS (1)
Y=COORDS (2)
Z=COORDS (3)
F=5*X+2*Y
RETURN
END
We save this file as dload1.for
, link it in the job settings, and run the simulation.
Step 4: Comparing With Analytical Field
Instead of writing a subroutine, we can also define the same spatial load using Abaqus’s analytical field. We input:
(5 * X) + 2 * Y


as the formula, assign it as the load, and run a second job.
🟢 Result: Both the DLOAD and analytical field give the exact same results—same contours, same numbers.

Step 5: Sinusoidal Load Example
We repeat the same process, but this time using a sinusoidal load:
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
X=COORDS (1)
Y=COORDS (2)
Z=COORDS (3)
F=100*SIN(3.14*X/50)
RETURN
END
We name it dload2.for
, create a new job, and run it. Again, we replicate this load with an analytical field and validate that both simulations match visually and numerically.
Summary of Results
By comparing both methods side-by-side, we see that:
✅ The Abaqus DLOAD subroutine is perfect for when you need custom behavior that analytical fields can’t handle (like time dependence or complex logic).
✅ The analytical field is ideal for simple spatial variations and is much faster to set up—no coding required.
Both tools are extremely useful, and knowing when to use each can save you time and headaches.

Want to Learn More?
🎯 Prefer welding simulations with moving heat sources?
Check out my full tutorial on the Abaqus DFLUX subroutine here
📦 Need example files?
Download them from here
Conclusion
The DLOAD subroutine in Abaqus doesn’t have to be intimidating. With just a few lines of code and proper setup, you can simulate complex load distributions with full control over their spatial and temporal behavior.
So whether you’re modeling wave loads, custom pressure profiles, or mechanical test conditions—Abaqus DLOAD subroutine gives you the flexibility you need.
📺 Watch the full video tutorial
👉 DLOAD Subroutine for Beginners – What I Wish I Knew Sooner!
🔔 Subscribe to FEA Master on YouTube for more tutorials like this!