# Tutorials on object-oriented programming in Fortran

**URL:** <https://fortran-lang.discourse.group/t/tutorials-on-object-oriented-programming-in-fortran/3052>\
**Category:** Tutorials\
**Created:** [March 27, 2022, 4:27pm UTC](https://fortran-lang.discourse.group/t/tutorials-on-object-oriented-programming-in-fortran/3052 "2022-03-27T16:27:29Z")\
**Posts on this page:** 2\
**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 27, 2022, 4:27pm UTC](https://fortran-lang.discourse.group/t/tutorials-on-object-oriented-programming-in-fortran/3052/1 "2022-03-27T16:27:29Z")

</div>

Eventually FortranTip will cover OOP in Fortran. I will first suggest free resources such as the following. Further suggestions are welcome. There are also Fortran 2003+ textbooks.

[Object-Oriented Features in Fortran 2003](http://www.elch.chem.msu.ru/tch/group/FortranBooks/Fortran_Object_Oriented.pdf) by Reinhold Bader

[Object-Oriented Programming in Fortran 2003](https://www.pgroup.com/blogs/posts/f03-oop-part1.htm), by Mark Leair. Parts [2](https://www.pgroup.com/blogs/posts/f03-oop-part2.htm) [3](https://www.pgroup.com/blogs/posts/f03-oop-part3.htm) and [4](https://www.pgroup.com/blogs/posts/f03-oop-part4.htm). Also [here](https://gist.github.com/n-s-k/522f2669979ed6d0582b8e80cf6c95fd) with some discussion.

[Scientific Programming in Fortran 2003: A tutorial Including Object-Oriented Programming](https://wiki.uiowa.edu/download/attachments/109785161/fortran-novella-Holcomb.pdf) by Katherine Holcomb (chapter 11)

[Introduction to Advanced Fortran](https://materials.prace-ri.eu/400/1/advFortranIntro.pdf) from PRACE (pp22-39 of pdf)

[Modern Fortran in Science and Technology](https://modern-fortran-in-science-and-technology.readthedocs.io/en/latest/chapter_fortran.html#object-oriented-programming) by Jonas Lindemann and Ola Dahlblom

[Not My TYPE](https://stevelionel.com/drfortran/2020/06/30/doctor-fortran-in-not-my-type/) by Steve Lionel discusses type extension and polymorphism

The following compiler manuals have sections on OOP:

[Intel](https://www.intel.com/content/www/us/en/develop/documentation/fortran-compiler-oneapi-dev-guide-and-reference/top/language-reference/data-types-constants-and-variables/derived-data-types/type-bound-procedures.html)  
[IBM](https://www.ibm.com/docs/en/xcafbg/9.0.0?topic=SS3KZ4_9.0.0/com.ibm.xlf111.bg.doc/xlflr/typeboundprocedures.htm)  
[NAG](https://www.nag.com/nagware/np/r62_doc/manual/compiler_9_2.html)

Edited 2022-03-29 to add:

At FortranCon 2020 @Arjen conducted a workshop on OOP, with videos [here](https://www.youtube.com/playlist?list=PLeKbr7eYHjt77h90hDVC-vGzrWmvDhCAf), slides [here](https://github.com/fortrancon/workshop2020/blob/master/doc/objects_intro.pdf) and [here](https://github.com/fortrancon/workshop2020/blob/master/doc/objects_advanced.pdf). Codes from his book “Modern Fortran in Practice” are [here](http://flibs.sourceforge.net/examples_modern_fortran.html) – chapter 11 is on OOP.

At the same conference, Tiziano Müller gave a presentation [OOP Fortran: About constructors and practical applications of patterns](https://github.com/fortrancon/workshop2020/blob/master/doc/tmu_constructors-and-patterns.pdf), video [here](https://www.youtube.com/watch?v=DsVMlFVD-Tk&list=PLeKbr7eYHjt77h90hDVC-vGzrWmvDhCAf&index=31).

---

<div class="post-metadata">

**Author:** ![fortran4r](https://avatars.discourse-cdn.com/v4/letter/f/9de0a6/32.png) [@fortran4r](https://fortran-lang.discourse.group/u/fortran4r)\
**Post date:** [March 27, 2022, 7:07pm UTC](https://fortran-lang.discourse.group/t/tutorials-on-object-oriented-programming-in-fortran/3052/2 "2022-03-27T19:07:15Z")

</div>

These are really good stuff and feel modern.
