Fortran newsletter: June 2021#

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

  • #269: Grammar and typo fixes in main page and quickstart minibook

  • #261: Script for summarizing PRs

  • #259: MapTran3D, RPNcalc, Gemini3D and Blocktran were added to the package index

  • #253: Fixed grammar in Easy to learn section

Ongoing work:

  • #255 (WIP): Quickstart edits

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

  • #201 (WIP): 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-Standardbibliothek#

Here’s what’s new in stdlib:

  • #417: Add GCC-11 to workflow

  • #415: Corrected Ubuntu version

  • #407: Changed to_title to to_sentence and implemented correct to_title

  • #359: Add general contributing guidelines to stdlib

  • #355: Implement clip function

Work in progress:

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

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

  • #418 (WIP): Improved support for NAG

  • #414 (WIP): Implemented intelligent slice functionality

  • #408 (WIP): Addition of the stdlib_sorting module

  • #363 (WIP): Add sort to stdlib_string_type module

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

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

  • #313 (WIP): Legendre polynomials and Gaussian quadrature

  • #311 (WIP): Implementation of a module for handling lists of strings

  • #272 (WIP), #273 (WIP), #276 (WIP), #278 (WIP): Implementation of the stdlib_stats_distribution modules. It provides probability distribution and statistical functions.

  • #189 (WIP): Initial implementation of sparse matrices.

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-Paketmanager (fpm)#

Here is what is new in fpm:

  • #450: Remove coarray flag from intel debug settings

  • #423: Use default instead of master to reference the repository HEAD

Work in progress:

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

  • #483 (WIP): Allow fpm to change the working directory

  • #451 (WIP): Refactor: use objects to represent compilers and archiver

  • #449 (WIP): Response files with ar on Windows

  • #444 (WIP): Allow to find include files / modules in CPATH environment variable

  • #364 (WIP): Plugin alpha version

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.

  • Durchsuche fpm Pakete auf der 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#

  • 39 Merge Requests merged

  • Features that can now be compiled (in the LLVM backend):

    • More nested functions and callbacks (the context is properly propagated)

    • Runtime: size, lbound, ubound

    • Return statement

    • More array operations and declarations

    • Array initializer expressions

  • Features in ASR only (semantics):

    • Runtime intrinsics: min, max, allocated

  • Features in AST only (syntax):

    • Co-arrays

    • Methods

    • Enumerations

    • Attributes in use

    • BOZ constants

    • Forall

    • More interfaces

    • Import

    • Implicit statements

    • Select type

The following people contributed code in May 2021:

Events#

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

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: