Skip to content

sourceryinstitute/dag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

DAG is a Fortran 2018 library for creating and manipulating directed acyclic graphs (DAGs). DAG is based on a fork of daglib by Jacob Williams, refactored to add

  • A build system and test harness automated by fpm,
  • Unit testing written with Vegetables,
  • Continuous-integration testing and documentation deployment via GitHub Actions,
  • Documentation generated by FORD,
  • Runtime assertion-checking using Sourcery, and
  • JSON file input/output using jsonff.

DAG includes a topological sort feature, and it generates files in the GraphViz "dot" format.

Prerequisites

DAG was developed with the following prerequisite package versions:

  1. gfortran 10.2.0
  2. OpenCoarrays 2.9.2
  3. fpm 0.1.3
  4. graphviz 2.44.1

Earlier versions might work also.

Building and testing

After installing fpm, clone, build, and test, execute the following in a bash-like shell:

git clone git@github.com:sourceryinstitute/dag
fpm test --compiler caf --runner "cafrun -n 1"

replacing 1 in the last line with the desired number of images to execute in parallel for each test. Please report any test failures by submitting an [issue] on the DAG repository.

Example

The jacob-example test provides a short example of the use of dag, including checks for the expected results. That test also writes the following image to a .pdf file:

License

This library is released under a BSD-3 license.

About

Directed Acyclic Graphs With Modern Fortran

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Fortran 100.0%