{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,4]],"date-time":"2026-03-04T00:13:20Z","timestamp":1772583200209,"version":"3.50.1"},"reference-count":12,"publisher":"MDPI AG","issue":"4","license":[{"start":{"date-parts":[[2024,11,30]],"date-time":"2024-11-30T00:00:00Z","timestamp":1732924800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Software"],"abstract":"<jats:p>Mathematics of Arrays (MoA) concerns the formal description of algorithms working on arrays of data and their efficient and effective implementation in software and hardware. Since (multidimensional) arrays are one of the most important data structures in Fortran, as witnessed by their native support in its language and the numerous operations and functions that take arrays as inputs and outputs, it is natural to examine how Fortran can be used as an implementation language for MoA. This article presents the first results, both in terms of code and of performance, regarding this union. It may serve as a basis for further research, both with respect to the formal theory of MoA and to improving the practical implementation of array-based algorithms.<\/jats:p>","DOI":"10.3390\/software3040026","type":"journal-article","created":{"date-parts":[[2024,12,4]],"date-time":"2024-12-04T11:03:08Z","timestamp":1733310188000},"page":"534-548","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Implementing Mathematics of Arrays in Modern Fortran: Efficiency and Efficacy"],"prefix":"10.3390","volume":"3","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-2842-6746","authenticated-orcid":false,"given":"Arjen","family":"Markus","sequence":"first","affiliation":[{"name":"Deltares Research Institute, 2629 HV Delft, The Netherlands"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3339-6393","authenticated-orcid":false,"given":"Lenore","family":"Mullin","sequence":"additional","affiliation":[{"name":"College of Nanotechnology, Science and Engineering, University at Albany, SUNY, Albany, NY 12222, USA"}]}],"member":"1968","published-online":{"date-parts":[[2024,11,30]]},"reference":[{"key":"ref_1","unstructured":"Berkling, K. (1990). Arrays and the Lambda Calculus, Syracuse University. Technical Report 93, Electrical Engineering and Computer Science Technical Reports."},{"key":"ref_2","doi-asserted-by":"crossref","first-page":"eaam9744","DOI":"10.1126\/science.aam9744","article-title":"There\u2019s Plenty of Room at the Top: What will drive computer performance after Moore\u2019s Law?","volume":"368","author":"Leiserson","year":"2020","journal-title":"Science"},{"key":"ref_3","doi-asserted-by":"crossref","first-page":"613","DOI":"10.1145\/359576.359579","article-title":"Can Programming Be Liberated From the von Neumann Style? A Functional Style and its Algebra of Programs","volume":"21","author":"Backus","year":"1978","journal-title":"Commun. ACM"},{"key":"ref_4","unstructured":"Abrams, P.S. (1970). An APL Machine, Stanford Linear Accelerator Center. Technical Report TR SLAC-114 UC-32(MISC)."},{"key":"ref_5","doi-asserted-by":"crossref","first-page":"45","DOI":"10.1147\/rd.161.0045","article-title":"Efficient Evaluation of Array Subscripts of Arrays","volume":"16","author":"Hassitt","year":"1972","journal-title":"IBM J. Res. Dev."},{"key":"ref_6","unstructured":"Mullin, L.M.R. (1988). A Mathematics of Arrays. [Ph.D. Thesis, Syracuse University]."},{"key":"ref_7","doi-asserted-by":"crossref","unstructured":"Mullin, L.R. (1991). Psi, the Indexing Function: A Basis for FFP with Arrays. Arrays, Functional Languages, and Parallel Systems, Kluwer Academic Publishers.","DOI":"10.1007\/978-1-4615-4002-1_12"},{"key":"ref_8","doi-asserted-by":"crossref","unstructured":"Grout, I.A., and Mullin, L. (2022). Realizing Mathematics of Arrays Operations as Custom Architecture Hardware-Software Co-Design Solutions. Information, 13.","DOI":"10.3390\/info13110528"},{"key":"ref_9","unstructured":"Mullin, L.R., and Raynolds, J.E. (2008). Conformal Computing: Algebraically connecting the hardware\/software boundary using a uniform approach to high-performance computation for software and hardware applications. arXiv."},{"key":"ref_10","unstructured":"(2023). Information Technology\u2014Programming Languages\u2014Fortran\u2014Part 1: Base Language (Standard No. ISO\/IEC 1539-1:2023). Available online: https:\/\/www.iso.org\/standard\/82170.html."},{"key":"ref_11","doi-asserted-by":"crossref","first-page":"5","DOI":"10.1145\/3206214.3206215","article-title":"The new features of Fortran 2018","volume":"37","author":"Reid","year":"2018","journal-title":"ACM SIGPLAN Fortran Forum"},{"key":"ref_12","unstructured":"\u010certik, O. (2024, November 25). LFortran Compiler. Available online: https:\/\/lfortran.org\/."}],"container-title":["Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/2674-113X\/3\/4\/26\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,10]],"date-time":"2025-10-10T16:43:24Z","timestamp":1760114604000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/2674-113X\/3\/4\/26"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,11,30]]},"references-count":12,"journal-issue":{"issue":"4","published-online":{"date-parts":[[2024,12]]}},"alternative-id":["software3040026"],"URL":"https:\/\/doi.org\/10.3390\/software3040026","relation":{},"ISSN":["2674-113X"],"issn-type":[{"value":"2674-113X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,11,30]]}}}