Fortran newsletter: July 2021#

Welcome to the July 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:

  • #276: Add LATTE tight-binding molecular dynamics code to package index

  • #275: Add crest program to package index

  • #255: Quickstart edits

  • #273: Add the SNaC package to package index

  • #272: Add QUICK to package index

Ongoing work:

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

  • #274 (WIP): Add convert_FORTRAN_case formatter to package index

  • #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:

  • #313: Legendre polynomials and gaussian quadrature

  • #432: Outer product

  • #439: Reduce time spent on sorting tests

  • #440: Make maximum rank an option

  • #433: Implemented low level find function for string matching

  • #414: Implemented intelligent slice functionality

  • #428: Fix issue with stdlib_sorting

  • #419: Allow modification of install directory for module files

  • #430: Remove support for GCC 7 and 8

  • #424: Add separate logical kind parameters

Work in progress:

  • #445 (WIP): Add disp function to display your data

  • #444 (WIP): Add format_string to format other type to string

  • #441 (WIP): Implement pad function

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

  • #436 (WIP): Implement low-level replace_all function

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

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

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

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

  • #333 (WIP): Provide abstract base class for a string object

  • #311 (WIP): String list new

  • #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#

Alpha release update: Last month saw the release of v0.3.0 for fpm which includes a number of new features and bug fixes.

Here is what is new in fpm:

  • #504: install.sh, README.md: Update version number, single source file extension

  • #501: Bump version for new release

  • #491: Catch execute_command_line errors and print useful messages

  • #500: Allow reading version number from file

  • #497: correct for equal sign in flag options to fix #495

  • #449: Response files with ar on Windows

  • #490: Minor fix to module parsing

  • #489: Redirect output when searching for archiver

  • #484: Add support for invoking simple plugins

  • #483: Allow fpm to change the working directory

Work in progress:

  • First beta release (WIP): First feature-complete release of the Fortran implementation.

  • #505 (WIP): quiet mode for #502

  • #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#

  • 49 Merge Requests merged

  • Highlights

    • Improvements to array support in the LLVM backend and at the ASR level: array sections, allocatable arrays, and other improvements

    • Many parser fixes (lfortran fmt works on more projects): block data, common block, equivalence, custom operator declaration, flush, critical and event statements

    • More runtime functions: minval, maxval, real, sum, abs

    • Optional human readable mod files

Events#

  • We had our 13th Fortran Monthly call on June 15. You can watch the recording below:

  • Joint J3/WG5 (Fortran Standards Committees) meeting was held virtually from June 21-30 (Mondays and Wednesdays only). You can find all the papers that were discussed here. Highlights from the meeting:

    • Conditional expressions syntax for Fortran 202X (paper).

    • Protected components specifications and syntax for Fortran 202X (paper).

    • The generics feature planned for Fortran 202Y was discussed at depth (paper).

    • Jeff Hammond (NVidia Corporation) is the new J3 member as a voting alternate to Bryce Adelstein-Lelbach.

    • Target year for Fortran 202X is 2023, subject to change.

  • FortranCon 2021 will be held virtually from September 23-24, 2021. For more information, visit the FortranCon website.

  • Work has started for our Google Summer of Code program. You 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: