# Programs that can call Fortran procedures

**URL:** <https://fortran-lang.discourse.group/t/programs-that-can-call-fortran-procedures/5386>\
**Category:** Uncategorized\
**Created:** [March 15, 2023, 12:54pm UTC](https://fortran-lang.discourse.group/t/programs-that-can-call-fortran-procedures/5386 "2023-03-15T12:54:36Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://fortran-lang.discourse.group/u/Beliavsky)\
**Post date:** [March 15, 2023, 12:54pm UTC](https://fortran-lang.discourse.group/t/programs-that-can-call-fortran-procedures/5386/1 "2023-03-15T12:54:36Z")

</div>

A reason to learn Fortran besides the ability to write stand-alone programs is the ability to extend other languages or programs with a function or subroutine. This is often done to extend general-purpose languages such as Python, R, and Matlab. At GitHub I see a number of projects that extend specialized codes such as [Abaqus](https://www.3ds.com/products-services/simulia/products/abaqus/) and [LS-Dyna](https://www.ansys.com/products/structures/ansys-ls-dyna). What are some others? A web page at Fortran-lang could list such programs and explain that even a modest proficiency in Fortran can enable you to attack difficult problems.

ETA: someone mentioned [Ansys](https://www.ansys.com/training-center/course-catalog/structures/ansys-mechanical-apdl-user-programmable-features-upfs) and [COMSOL](https://www.comsol.fr/blogs/accessing-external-material-models-for-structural-mechanics) to me.

---

<div class="post-metadata">

**Author:** ![hkvzjal](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/hkvzjal/32/3055_2.png) [@hkvzjal](https://fortran-lang.discourse.group/u/hkvzjal)\
**Post date:** [March 15, 2023, 3:16pm UTC](https://fortran-lang.discourse.group/t/programs-that-can-call-fortran-procedures/5386/2 "2023-03-15T15:16:37Z")

</div>

[FORGE](https://www.transvalor.com/en/forge) is a FEM software for material forming simulations. Users can extend its functionalities with Fortran user-routines \>\> [Generate its own user routines in FORGE®](https://www.transvalor.com/en/blog/generate-own-user-routines-forge)

---

<div class="post-metadata">

**Author:** ![aledinola](https://avatars.discourse-cdn.com/v4/letter/a/3ec8ea/32.png) [@aledinola](https://fortran-lang.discourse.group/u/aledinola)\
**Post date:** [March 25, 2023, 12:35pm UTC](https://fortran-lang.discourse.group/t/programs-that-can-call-fortran-procedures/5386/3 "2023-03-25T12:35:31Z")

</div>

Some time ago I wrote several examples of how to call fortran from Matlab using MEX.  
A example is using interpolation. Interpolation (even linear interpolation) is typically a bottleneck in Matlab codes, so it is efficient to write a subroutine in Fortran, compile it with mex and then call it from within your matlab program

---

<div class="post-metadata">

**Author:** ![aledinola](https://avatars.discourse-cdn.com/v4/letter/a/3ec8ea/32.png) [@aledinola](https://fortran-lang.discourse.group/u/aledinola)\
**Post date:** [March 25, 2023, 12:46pm UTC](https://fortran-lang.discourse.group/t/programs-that-can-call-fortran-procedures/5386/4 "2023-03-25T12:46:51Z")

</div>

Here is the link: [GitHub - aledinola/MEX: Matlab - Fortran using MEX](https://github.com/aledinola/MEX)

Comments and suggestions are welcome!
