# Fortran to be featured at Exercism in July

**URL:** <https://fortran-lang.discourse.group/t/fortran-to-be-featured-at-exercism-in-july/5928>\
**Category:** Announcements\
**Created:** [June 6, 2023, 8:00pm UTC](https://fortran-lang.discourse.group/t/fortran-to-be-featured-at-exercism-in-july/5928 "2023-06-06T20:00:58Z")\
**Posts on this page:** 10\
**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:** [June 6, 2023, 8:00pm UTC](https://fortran-lang.discourse.group/t/fortran-to-be-featured-at-exercism-in-july/5928/1 "2023-06-06T20:00:58Z")

</div>

From comp.lang.fortran:

### [Fortran to be featured at Exercism in July, but …](https://groups.google.com/g/comp.lang.fortran/c/FRIFjYonlyI)

As many are aware, [Exercism.org](http://Exercism.org) is featuring various languages thematically this year as part of their 12in23 program (see [https://www.youtube.com/watch?v=2refhxXqePI](https://www.youtube.com/watch?v=2refhxXqePI) ).

Fortran is being featured in July under the heading “Jurassic July”. I have been contacted by Erik Schierboom of Exercism about the Fortran content. He has written as below, and if you’re interested in contributing, please contact him via the forum [https://forum.exercism.org/u/ErikSchierboom](https://forum.exercism.org/u/ErikSchierboom). (I do have an email address for him which, if you write to me directly, I’ll supply.)

‘Next month is Jurassic July, which will feature Fortran. I probably won’t have time to do an introduction video beforehand, but we will do the monthly introduction video. For that, I usually do write up a script for the actual introduction video and then use its contents. This time though, I’m severely limited in my time, so I was wondering if perhaps you could give me a starting point? Of course, you don’t need to write the actual contents and I can probably fairly quickly write up the “history” part of it, but the “Why it’s great” and “Standout features” sections are harder for me.’

---

<div class="post-metadata">

**Author:** ![wyphan](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/wyphan/32/632_2.png) [@wyphan](https://fortran-lang.discourse.group/u/wyphan)\
**Post date:** [June 7, 2023, 10:00pm UTC](https://fortran-lang.discourse.group/t/fortran-to-be-featured-at-exercism-in-july/5928/2 "2023-06-07T22:00:41Z")

</div>

For “Why it’s great”, I think the answer is

- availability of highly-optimizing compilers
- amount of critical legacy code (e.g. weather models and nuclear simulations)
- number crunching on supercomputers (for instance, you can quote the NERSC statistics mentioning the percentage of node-hours that ran Fortran code)

For “standout features”, I would mention:

- native support for N-dimensional arrays (Python needs NumPy, C++ only got `mdspan` in 2023 standard, etc.)
- the array indexing syntax (esp. slicing and striding)
- whole array operations, e.g. `A(:) = B(:) + C(:)`, `ANY()` intrinsic function, or `WHERE` construct
- the `COMPLEX` data type
- native parallelism with co-arrays (although this last one really needs some traction from both programmers and compiler devs).

Also, the fact that the language keeps evolving (such as object-oriented Fortran since the 2003 standard) might blow some people’s minds.

---

<div class="post-metadata">

**Author:** ![YoujunHu](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/youjunhu/32/312_2.png) [@YoujunHu](https://fortran-lang.discourse.group/u/YoujunHu)\
**Post date:** [June 8, 2023, 3:06am UTC](https://fortran-lang.discourse.group/t/fortran-to-be-featured-at-exercism-in-july/5928/3 "2023-06-08T03:06:23Z")

</div>

For “Why it’s great”: great support for mpi parallel computing.

(It seems that only C can compete with Fortran in this regard since MPI only supports C and Fortran).

As a result, Fortran programs are using most of the resources of the largest supercomputers in the world. I think MPI parallel computing will remain being the dominant parallel paradigm in the next decade for large-scale scientific simulations.

---

<div class="post-metadata">

**Author:** ![oscardssmith](https://avatars.discourse-cdn.com/v4/letter/o/b9e5f3/32.png) [@oscardssmith](https://fortran-lang.discourse.group/u/oscardssmith)\
**Post date:** [June 8, 2023, 4:15am UTC](https://fortran-lang.discourse.group/t/fortran-to-be-featured-at-exercism-in-july/5928/4 "2023-06-08T04:15:39Z")

</div>

this isn’t true. mpi works with Julia as well and has been used on some pretty big supcomputers (including fugaku, see [GitHub - giordano/julia-on-fugaku](https://github.com/giordano/julia-on-fugaku) for details)

---

<div class="post-metadata">

**Author:** ![VladimirF](https://avatars.discourse-cdn.com/v4/letter/v/e9a140/32.png) [@VladimirF](https://fortran-lang.discourse.group/u/VladimirF)\
**Post date:** [June 8, 2023, 9:53am UTC](https://fortran-lang.discourse.group/t/fortran-to-be-featured-at-exercism-in-july/5928/5 "2023-06-08T09:53:49Z")

</div>

MPI is just a library and a transport layer and is not specific to the programming language. There are bindings to many languages like Java or Python, and other can be created if needed.

---

<div class="post-metadata">

**Author:** ![YoujunHu](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/youjunhu/32/312_2.png) [@YoujunHu](https://fortran-lang.discourse.group/u/YoujunHu)\
**Post date:** [June 9, 2023, 4:37am UTC](https://fortran-lang.discourse.group/t/fortran-to-be-featured-at-exercism-in-july/5928/6 "2023-06-09T04:37:56Z")

</div>

Major MPI implimentations, OpenMPI, mpich and Intel MPI, only provide compiler wrappers for Fortran and C/C++.  
Others might be considered as being unofficial and hacks.

---

<div class="post-metadata">

**Author:** ![VladimirF](https://avatars.discourse-cdn.com/v4/letter/v/e9a140/32.png) [@VladimirF](https://fortran-lang.discourse.group/u/VladimirF)\
**Post date:** [June 9, 2023, 6:20am UTC](https://fortran-lang.discourse.group/t/fortran-to-be-featured-at-exercism-in-july/5928/7 "2023-06-09T06:20:42Z")

</div>

In that sense every Fortran call of a C library through C-Fortran interop would be a hack.

No, MPI is really just a library and a communication infrastructure behind, the compiler wrappers specifically are not necessary (there is just one sentence mentioning them in the MPI standard), just for convenience. The official language bindings are for C and Fortran (not C++ anymore) but the library is designed with portability in mind.

In fact many programmers, including me, will write their own wrappers to those official C and Fortran MPI procedures, to simplify the calls where the same arguments are often repeated or can be inferred. Thst is just what other language binding designers do when calling the MPI C functiins through the C interoperability layers of the respective languages.

---

<div class="post-metadata">

**Author:** ![wyphan](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/wyphan/32/632_2.png) [@wyphan](https://fortran-lang.discourse.group/u/wyphan)\
**Post date:** [July 6, 2023, 5:36pm UTC](https://fortran-lang.discourse.group/t/fortran-to-be-featured-at-exercism-in-july/5928/8 "2023-07-06T17:36:13Z")

</div>

@VladimirF is correct, the C++ bindings are officially deprecated.

---

<div class="post-metadata">

**Author:** ![wyphan](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/wyphan/32/632_2.png) [@wyphan](https://fortran-lang.discourse.group/u/wyphan)\
**Post date:** [July 6, 2023, 5:46pm UTC](https://fortran-lang.discourse.group/t/fortran-to-be-featured-at-exercism-in-july/5928/9 "2023-07-06T17:46:45Z")

</div>

If you dig deep enough, the Julia wrappers actually rely on the C interface. See the numerous `ccall` in this file, for instance:

> <https://github.com/JuliaParallel/MPI.jl/blob/master/src/api/generated_api.jl>

---

<div class="post-metadata">

**Author:** ![wyphan](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/wyphan/32/632_2.png) [@wyphan](https://fortran-lang.discourse.group/u/wyphan)\
**Post date:** [July 6, 2023, 6:23pm UTC](https://fortran-lang.discourse.group/t/fortran-to-be-featured-at-exercism-in-july/5928/10 "2023-07-06T18:23:08Z")

</div>

Anyway, back on the topic, you can see the completed post here at the Exercism website:

> **[It's Jurassic July!](https://exercism.org/blog/jurassic-july)**
>
> This month we're looking at some old skool languages - Cobol, Fortran, C, C++ and Visual Basic. Very different languages, but all fundamental parts of how the world of programming has evolved!
