Skip to content

A compiler-portable, unit-testing and string-handling framework for modern Fortran, including accelerated coarray Fortran software

License

Notifications You must be signed in to change notification settings

BerkeleyLab/julienne

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Julienne

Spun off from Sourcery and inspired by Veggies, Julienne is a modern-Fortran unit-testing framework and utility for manipulating strings, including command lines and input/output format strings. This repository's name derives from the term for vegetables sliced into thin strings: julienned vegetables. This software repository captures the authors' most frequently used thin slice of the Veggies and Sourcery repositories while avoiding certain compiler limitations of the other two repositories. Julienne achieves portability across compilers through minimalism and isolation. Thus Julienne has no external dependencies and offers limited but widely useful capabilities. The string-handling and command-line parsing capabilities are included primarily because they support Julienne's unit-testing code.

Examples

For examples of how to use Julienne, please see the example subdirectory.

Building and Testing

GNU (gfortran) 13 or higher required

fpm test

Intel (ifx) 2025.4 Build 20241205 tested

fpm test --compiler ifx --flag "-fpp -O3" --profile release

NAG (nagfor)

fpm test --compiler nagfor --flag -fpp

LLVM Flang

LLVM 20 or later:

export FPM_FC=flang-new
fpm test

LLVM 19:

Add the following command before the fpm command recommended above for LLVM 20 or later:

export FPM_FFLAGS="-mmlir -allow-assumed-rank"

where this FPM_FFLAGS setting turns on the support for Fortran's assumed-rank dummy arguments.

If you do not have access to LLVM 19 or 20, we recommend building the main branch of llvm-project from source. A script that might be helpful for doing so is in the handy-dandy repository.

Documentation

See our online documentation or build the documentation locally by installing FORD and executing

ford ford.md

About

A compiler-portable, unit-testing and string-handling framework for modern Fortran, including accelerated coarray Fortran software

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Fortran 100.0%