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]
- 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.:
-
USDOEPrimary Award/Contract Number:AC02-05CH11231
- Code ID:
- 139199
- Site Accession Number:
- 2024-140
- Research Org.:
- Lawrence Berkeley National Laboratory (LBNL), Berkeley, CA (United States)
- Country of Origin:
- United States
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}
}