# Fortran is missing in The Algorithms

**URL:** https://fortran-lang.discourse.group/t/fortran-is-missing-in-the-algorithms/2650
**Category:** Uncategorized
**Created:** [January 25, 2022, 7:54am UTC](https://fortran-lang.discourse.group/t/fortran-is-missing-in-the-algorithms/2650 "2022-01-25T07:54:35Z")
**Posts on this page:** 8
**Page:** 1

<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: [January 25, 2022, 7:54am UTC](https://fortran-lang.discourse.group/t/fortran-is-missing-in-the-algorithms/2650/1 "2022-01-25T07:54:35Z")

</div>

> **[The Algorithms](https://github.com/TheAlgorithms)**
>
> Open Source resource for learning Data Structures & Algorithms and their implementation in any Programming Language - The Algorithms

---

<div class="post-metadata">

### Author: ![Ashok](https://avatars.discourse-cdn.com/v4/letter/a/ed655f/32.png) [@Ashok](https://fortran-lang.discourse.group/u/Ashok)
#### Post date: [January 27, 2022, 3:40am UTC](https://fortran-lang.discourse.group/t/fortran-is-missing-in-the-algorithms/2650/2 "2022-01-27T03:40:34Z")

</div>

Actually there is book named:  
“Algorithms and data structures in F and Fortran”  
by Robin.A.Vowels.  
It has  
Sorting  
Recursion  
Linked Lists and Trees  
Directed graphs  
Text processing  
Graphics  
Searching

All written in Fortran 90/95.

---

<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: [January 27, 2022, 5:10am UTC](https://fortran-lang.discourse.group/t/fortran-is-missing-in-the-algorithms/2650/3 "2022-01-27T05:10:08Z")

</div>

> [@Ashok](#):
>
> Algorithms and data structures in F and Fortran

What is F?

---

<div class="post-metadata">

### Author: ![Ashok](https://avatars.discourse-cdn.com/v4/letter/a/ed655f/32.png) [@Ashok](https://fortran-lang.discourse.group/u/Ashok)
#### Post date: [January 27, 2022, 5:53am UTC](https://fortran-lang.discourse.group/t/fortran-is-missing-in-the-algorithms/2650/4 "2022-01-27T05:53:27Z")

</div>

According to the book:

> F is a subset of Fortran that supports the modern features of Fortran 90/95, but which omits the old, error prone features of the earlier versions. Thus the programs in this book will run with an F compiler (from Imagine1), as well as compiler supporting the entire Fortran 90/95 language.

---

<div class="post-metadata">

### Author: ![certik](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/certik/32/4_2.png) [@certik](https://fortran-lang.discourse.group/u/certik)
#### Post date: [January 28, 2022, 1:11am UTC](https://fortran-lang.discourse.group/t/fortran-is-missing-in-the-algorithms/2650/5 "2022-01-28T01:11:33Z")

</div>

I found this page about F: [F in Fortran Wiki](https://fortranwiki.org/fortran/show/F)

---

<div class="post-metadata">

### Author: ![zaikunzhang](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/zaikunzhang/32/785_2.png) [@zaikunzhang](https://fortran-lang.discourse.group/u/zaikunzhang)
#### Post date: [January 28, 2022, 6:53am UTC](https://fortran-lang.discourse.group/t/fortran-is-missing-in-the-algorithms/2650/6 "2022-01-28T06:53:55Z")

</div>

Is F still evolving following the recent standards of Fortran? I find the idea of F very interesting, but `g95` seems to be the only compiler that supports it with an option of `std=F`, and `g95` is not maintained anymore.

---

<div class="post-metadata">

### Author: ![certik](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/certik/32/4_2.png) [@certik](https://fortran-lang.discourse.group/u/certik)
#### Post date: [January 28, 2022, 4:12pm UTC](https://fortran-lang.discourse.group/t/fortran-is-missing-in-the-algorithms/2650/7 "2022-01-28T16:12:18Z")

</div>

> [@zaikunzhang](#):
>
> Is F still evolving following the recent standards of Fortran?

I don’t think it caught on.

The idea itself I think is a good one, however I think it has to be implemented in a modern compiler that understands all of Fortran (both modern and legacy), but in addition it can optionally restrict your code to a subset with errors or warnings. That way if you happen to not use a subset, you can still compile your code. I assume that was the idea even with F, if it was part of the g95 compiler. For LFortran, we are planning to have such a mode: [Create pedantic/strict mode (#450) · Issues · lfortran / lfortran · GitLab](https://gitlab.com/lfortran/lfortran/-/issues/450)

---

<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: [January 28, 2022, 5:00pm UTC](https://fortran-lang.discourse.group/t/fortran-is-missing-in-the-algorithms/2650/8 "2022-01-28T17:00:07Z")

</div>

> [@zaikunzhang](#):
>
> Is F still evolving following the recent standards of Fortran? I find the idea of F very interesting, but `g95` seems to be the only compiler that supports it with an option of `std=F`, and `g95` is not maintained anymore.

No. The primary person behind F, Walt Brainerd ([author](https://www.amazon.com/Guide-Fortran-Programming-Walter-Brainerd/dp/1447167589), standards committee member, and creator of [Fortran.com](http://Fortran.com)) [passed away](https://stevelionel.com/drfortran/2020/06/13/doctor-fortran-in-farewell-to-walt/). Some people, including me, did use F and [ELF90](http://www.lahey.com/elfpage.htm) to transition from FORTRAN to (what was then) modern Fortran. There were some discussions in comp.lang.fortran of why the Fortran subsets did not catch on. The problem is that while everyone would agree that Fortran 95 or Fortran 2018 is bigger than it would be if it were designed today, you cannot get a consensus of what should be allowed. For example, although I liked the idea of F, I think you had to use the DIMENSION statement and provide all specifier names, so that what I prefer,

```auto
real :: x(n1), y(n1,n2)
write (*,*) x

```

must be written in F as

```auto
real, dimension(n1) :: x
real, dimension(n1,n2) :: y
write (unit=*,fmt=*) x

```

There has been discussion here of creating a subset through FPM defaults.
