Skip to content

About FUNDAL

FUNDAL (Fortran UNified Device Acceleration Library) is a pure Fortran library that provides a unified API for managing accelerated device memory using either OpenACC or OpenMP offloading.

OpenACC and OpenMP both offer runtime routines for device memory management (allocation, copy, free), but they expose different C-pointer-based interfaces. FUNDAL wraps these routines behind a single Fortran API, eliminating the need for conditional compilation macros in user code and making it straightforward to write programs that are portable across GPU vendors and compiler toolchains.

Design goals

  • KISS — Keep It Simple and Stupid: minimal API surface, no unnecessary abstractions
  • Unified — one set of calls works for both OpenACC and OpenMP backends
  • Seamless — OpenACC and OpenMP pragmas can coexist in the same source; unrecognised directives are safely ignored by the compiler
  • Pure Fortran — no C code in the library itself; C interoperability is used internally for runtime calls only

Authors

Copyrights

FUNDAL is distributed under a multi-licensing system:

Use caseLicense
FOSS projectsGPL v3
Closed source / commercialBSD 2-Clause
Closed source / commercialBSD 3-Clause
Closed source / commercialMIT

Anyone interested in using, developing, or contributing to FUNDAL is welcome — pick the license that best fits your needs.