Fortran newsletter: August 2021#

Welcome to the August 2021 edition of the monthly Fortran newsletter. The newsletter comes out at the beginning of every month and details Fortran news from the previous month.

fortran-lang.org#

This month we’ve had several updates to the website:

  • #281: July newsletter

  • #274: Add convert_FORTRAN_case formatter to package index

  • #277: Add projects for Fortran-lua interfacing to package index

  • #284: PRs script updates

  • #286: Installation process for GFortran on OpenBSD

  • #288: Add Flatiron institute multipole libraries to the package index

  • #289: Small fix in packages index

  • #291: Bump addressable from 2.7.0 to 2.8.0

  • #293: add Apogee and Edinburgh compilers

  • #290: Add arrayfire-fortran to package index

  • #294: compilers: use more objective tone

  • #296: my software with at least 5 stars

  • #297: Fix insecure workflow.

Ongoing work:

  • #246 (WIP): Transferring fortran90.org “Fortran Best Practices” into a mini-book

  • #201 (WIP): Draft: Internationalization for fortran-lang

Let us know if you have any suggestions for the website and its content. We welcome any new contributors to the website and the tutorials page in particular - see the contributor guide for how to get started.

Fortran Standard Library#

Here’s what’s new in stdlib:

  • #436: implemented low-level replace_all function

  • #454: added stdlib_math to specs/index.md

  • #453: implemented count function

  • #441: implemented pad function

  • #456: slice function’s documentation made user friendly

  • #459: Fix CMake variable usage

  • #420: First implementation of real-valued linspace.

  • #468: Update CI

  • #469: CMake: corrections and updates

  • #426: Addition of a subroutine to compute the median of array elements

  • #474: Bug fix: Allocatable argument ‘x’ is not allocated #472

Work in progress:

  • #481 (WIP): [stdlib_linalg] Update eye function.

  • #480 (WIP): [stdlib_math] Add seq function.

  • #478 (WIP): [stdlib_linalg] Add zeros, ones, ex function.

  • #477 (WIP): [stdlib_linalg] Add empty function.

  • #475 (WIP): Generating sorting subroutines specific to character type with fypp

  • #473 (WIP): Error stop improvements

  • #470 (WIP): Revival string list

  • #467 (WIP): implemented move_alloc for string_type

  • #455 (WIP): stdlib_hash: waterhash algorithm

  • #452 (WIP): Implementation of a map data type

  • #445 (WIP): [feature] disp(display your data) & format_string(format other type to string, see #444)

  • #444 (WIP): Add format_string routine to format other types to strings

  • #437 (WIP): [FPM] add fpm support

  • #363 (WIP): Sorting string’s characters according to their ASCII values

  • #353 (WIP): Initial checkin for a module for tolerant comparison of reals

  • #286 (WIP): Probability Distribution and Statistical Functions – Beta Distribution Module

  • #278 (WIP): Probability Distribution and Statistical Functions – Gamma Distribution Module

  • #276 (WIP): Probability Distribution and Statistical Functions – Exponential Distribution Module

  • #273 (WIP): Probability Distribution and Statistical Functions – Normal Distribution Module

  • #272 (WIP): Probability Distribution and Statistical Functions – Uniform Distribution Module

  • #189 (WIP): Initial implementation of COO / CSR sparse format

  • #157 (WIP): Update CMAKE files

Please help improve stdlib by testing and reviewing pull requests!

The candidate for file system operations to be included in stdlib is being developed by @MarDiehl and @arjenmarkus in this repository. Please try it out and let us know how it works, if there are any issues, or if the API can be improved.

Fortran Package Manager#

Here’s what’s new in fpm:

  • #507: optimize file listing

  • #511: check name used for package, executable, test, or example

  • #516: initialize allocatable strings before using in a comparison

  • #517: Fix run

  • #522: remove warnings and fix truncated help text

  • #523: Fix compilation error in ifort

Work in progress:

  • #525 (WIP): proposal to close #525 by generating build/.gitignore

  • #527 (WIP): Add objects for handling compiler and archiver

  • #521 (WIP): expand tabs

  • #506 (WIP): Draft: initial implementation of implicit_none

  • #498 (WIP): Draft - Compiler flags profiles

fpm is still in early development and we need as much help as we can get. Here’s how you can help today:

  • Use it and let us know what you think! Read the fpm packaging guide to learn how to build your package with fpm, and the manifest reference to learn what are all the things that you can specify in the fpm.toml file.

  • Browse existing fpm packages on the fortran-lang website

  • Browse the open issues and see if you can help implement any fixes or features.

  • Adapt your Fortran package for fpm and submit it to the Registry.

  • Improve the documentation.

The short-term goal of fpm is to make development and installation of Fortran packages with dependencies easier. Its long term goal is to build a rich and decentralized ecosystem of Fortran packages and create a healthy environment in which new open source Fortran projects are created and published with ease.

Compilers#

LFortran#

Updates for July 2021:

  • 90 merged MRs, this month we have crossed 1000 total merged MRs, 12 total contributors

  • Parser: we asked the community to test it, several people have reported about 15 bugs, we have fixed all of them (AST)

  • Initial fixed form parser (AST)

  • Classes and class procedures (ASR, LLVM)

  • Many common array usage now works, including allocatable (ASR, LLVM)

  • Associate construct (ASR, LLVM)

  • Compile time evaluation of constant expressions (ASR)

  • 7 people contributed code:

    • Ondřej Čertík

    • Thirumalai Shaktivel

    • Gagandeep Singh

    • Rohit Goswami

    • Dominic Poerio

    • Andrew Best

    • Sebastian Ehlert

We are looking for new contributors, so if you are interested, please get in touch with us!

Events#

  • We had our 14th Fortran Monthly call on July 20. You can watch the recording below:

  • FortranCon 2021 will be held virtually from September 23-24, 2021. Registration is free of charge and is due by September 15. The first call for abstracts is due August 1, and the second is due September 1. For more information, visit the FortranCon website.

  • Work is well under way started for our Google Summer of Code program. Read about our students and their progress so far on Discourse: https://fortran-lang.discourse.group/c/gsoc-2021/11

As usual, subscribe to the mailing list and/or join the Discourse to stay tuned with the future meetings.

Contributors#

We thank everybody who contributed to fortran-lang in the past month by commenting in any of these repositories: