Installation
PIC supports two build systems: CMake (primary) and FPM (Fortran Package Manager).
Requirements
- A Fortran compiler:
GNU Fortran (gfortran) 10+
Intel Fortran (ifx/ifort) 2024+
NVIDIA HPC SDK (nvfortran) 25.1+
LFortran (latest)
Cray Fortran (crayftn)
Classic Flang
- Build tools:
CMake 3.31+ (for CMake builds)
FPM 0.12.0+ (for FPM builds)
An internet connection (to fetch the
test-drivedependency)
Building with CMake
Basic build:
cmake -B build -G Ninja
cmake --build build
Build with testing enabled:
cmake -B build -G Ninja -DPIC_ENABLE_TESTING=ON
cmake --build build
ctest --test-dir build -V
Install to a custom location:
export PIC_ROOT=$HOME/install/pic
cmake -B build -G Ninja -DCMAKE_INSTALL_PREFIX=$PIC_ROOT
cmake --build build --target install
CMake Options
Option |
Default |
Description |
|---|---|---|
|
OFF |
Use 64-bit default integers |
|
OFF |
Enable OpenMP parallelization |
|
OFF |
Enable BLAS-backed operations |
|
OFF |
Enable MPI support |
|
ON |
Build the test suite |
Building with FPM
Basic build:
fpm build --profile release
Build and run tests:
fpm test --profile release
Install:
fpm install --prefix $HOME/install/pic --profile release
Using PIC in Your Project
With CMake
After installing PIC, use find_package in your CMakeLists.txt:
cmake_minimum_required(VERSION 3.14)
project(my_app LANGUAGES Fortran)
# Set pic_ROOT to your PIC installation path
find_package(pic REQUIRED)
add_executable(my_app main.f90)
target_link_libraries(my_app PRIVATE pic::pic)
Note
CMake uses pic_ROOT or pic_DIR to locate PIC. Set the environment variable:
export pic_ROOT=/path/to/pic/install
With FPM
Add PIC as a dependency in your fpm.toml:
[dependencies]
pic = { git = "https://github.com/JorgeG94/pic.git", branch = "main" }
Then use it in your code:
program my_app
use pic
implicit none
call pic_print_banner()
end program my_app
Platform Notes
Linux
PIC builds out of the box on most Linux distributions. Tested on x86_64 and ARM64.
macOS
Use Homebrew to install compilers:
brew install gcc
Warning
Using conda-installed compilers on macOS may introduce issues. Homebrew is recommended.
Windows
PIC has been successfully built using Windows Subsystem for Linux (WSL).