ISO_Fortran_binding_m v0.1.0

RESOURCE

Abstract

The Fortran programming language standard defines a broad feature set supporting the interoperability of Fortran programs with program written according to the C programming language standard. Among Fortran's C-interoperability features is a a C header file "ISO_Fortran_binding.h" This header file defines the interface to various C data structures and functions that C programs may use to access Fortran data entities. The ISO_Fortran_binding_m software defines a native Fortran module that presents an interface to these same data structures and functions. ISO_Fortran_bind_m thus enables Fortran programs to access and manipulate Fortran entities in ways that precisely mirror what C programs can do using ISO_Fortran_binding.h. ISO_Fortran_binding_m facilitates writing portable standard-conforming Fortran programs that emulate non-interoperable features, e.g., dynamic polymorphism, in a standard-conforming interoperable way similar but broader than what is demonstrated in Berkeley Lab's Caffeine software [1]. ISO_Fortran_binding_m also enables a Fortran programmer to extend Fortran's capabilities to emulate certain C functionality such as memory address arithmetic or computing C's "sizeof" function. [1] https://github.com/BerkeleyLab/caffeine/blob/213e3df1c319f0663306354414f352acda42a24f/src/caffeine/collective_subroutines/co_reduce_s.f90#L88 [2] https://github.com/BerkeleyLab/ISO_Fortran_binding_m/blob/0c585362bb4f2c72cf9049c800a7115b529ec533/src/iso_fortran_binding_m.F90#L196
Developers:
Rouson, Damian [1] Rasmussen, Katherine [1]
  1. Lawrence Berkeley National Laboratory (LBNL), Berkeley, CA (United States)
Release Date:
2024-07-22
Project Type:
Open Source, Publicly Available Repository
Software Type:
Scientific
Licenses:
BSD 3-clause "New" or "Revised" License
Sponsoring Org.:
Code ID:
139199
Site Accession Number:
2024-140
Research Org.:
Lawrence Berkeley National Laboratory (LBNL), Berkeley, CA (United States)
Country of Origin:
United States

RESOURCE

Citation Formats

Rouson, Damian, and Rasmussen, Katherine. ISO_Fortran_binding_m v0.1.0. Computer Software. https://github.com/BerkeleyLab/ISO_Fortran_binding_m. USDOE. 22 Jul. 2024. Web. doi:10.11578/dc.20240806.1.
Rouson, Damian, & Rasmussen, Katherine. (2024, July 22). ISO_Fortran_binding_m v0.1.0. [Computer software]. https://github.com/BerkeleyLab/ISO_Fortran_binding_m. https://doi.org/10.11578/dc.20240806.1.
Rouson, Damian, and Rasmussen, Katherine. "ISO_Fortran_binding_m v0.1.0." Computer software. July 22, 2024. https://github.com/BerkeleyLab/ISO_Fortran_binding_m. https://doi.org/10.11578/dc.20240806.1.
@misc{ doecode_139199,
title = {ISO_Fortran_binding_m v0.1.0},
author = {Rouson, Damian and Rasmussen, Katherine},
abstractNote = {The Fortran programming language standard defines a broad feature set supporting the interoperability of Fortran programs with program written according to the C programming language standard. Among Fortran's C-interoperability features is a a C header file "ISO_Fortran_binding.h" This header file defines the interface to various C data structures and functions that C programs may use to access Fortran data entities. The ISO_Fortran_binding_m software defines a native Fortran module that presents an interface to these same data structures and functions. ISO_Fortran_bind_m thus enables Fortran programs to access and manipulate Fortran entities in ways that precisely mirror what C programs can do using ISO_Fortran_binding.h. ISO_Fortran_binding_m facilitates writing portable standard-conforming Fortran programs that emulate non-interoperable features, e.g., dynamic polymorphism, in a standard-conforming interoperable way similar but broader than what is demonstrated in Berkeley Lab's Caffeine software [1]. ISO_Fortran_binding_m also enables a Fortran programmer to extend Fortran's capabilities to emulate certain C functionality such as memory address arithmetic or computing C's "sizeof" function. [1] https://github.com/BerkeleyLab/caffeine/blob/213e3df1c319f0663306354414f352acda42a24f/src/caffeine/collective_subroutines/co_reduce_s.f90#L88 [2] https://github.com/BerkeleyLab/ISO_Fortran_binding_m/blob/0c585362bb4f2c72cf9049c800a7115b529ec533/src/iso_fortran_binding_m.F90#L196},
doi = {10.11578/dc.20240806.1},
url = {https://doi.org/10.11578/dc.20240806.1},
howpublished = {[Computer Software] \url{https://doi.org/10.11578/dc.20240806.1}},
year = {2024},
month = {jul}
}