DRAGON (see also Version4) is a powerful tool for computing critical assemblies and nuclear reactor core cells. It's a quite complex system that features a lot of mathematical methods widely used in nuclear reactor cores computation and provides facilities to link them together so that one can describe a fair part of the computation process in terms of DRAGON commands. DRAGON uses modular structure, each module usually responsible for one part of the computation. Modules uses DRAGON-specific data containers to exchange data. At any point of the computation, user may dump data into a file for further inspection or other later usage. However, as it is common for binary files of uncommon format, they are not very convenient to work with outside of DRAGON. The package presented here provides easy access to data stored in DRAGON files from shell as well as other programs and scripts.

In general, DRAGON uses hash tables to store arrays of numbers representing the actual data. Hash tables keys are ordinary strings up to 12 characters long. Hash tables may form an hierarchy when one hash table is a value of a key from the other hash table. The overall result is very similar to file system with hash tables as directories and hash tables keys as file names. This has inspired the creation of dragfs program. It uses FUSE library to mount a DRAGON file making its contents available as a part of the filesystem used on the computer. User can change the contents of the DRAGON file by means of ordinary Unix tools such as cp, file editing, shell redirection, etc. Two programs, dragcat and dragput, are provided to help with text ↔ binary conversion.

For example, to merge two isotope libraries into one, the work usually performed by DRAGON NJOY module dragr, the following set of commands may be used:

# create mount points
mkdir /tmp/{1,2}

# mount files
mount.dragfs file1 /tmp/1
mount.dragfs file2 /tmp/2

# copy data
cp -r /tmp/2/* /tmp/1

# unmount files and save changes
fusermount -u /tmp/2
fusermount -u /tmp/1

For a more robust implementation, see this script.

There are a few unfortunate limitations which are not common to other file systems. Most unconvenient are that the file name cannot be more than 12 characters long and it is not possible to remove files (delete arrays) already present on the DRAGON file. See dragfs man page for a complete list.


The current version is accessible via the following link:


You may get the current development version from git with the following command:

git clone git://

To compile the program, just issue make in its directory. You will need the following libraries:

You may want to supply GANLIB parameter to make to specify where your GANLIB library is. See INSTALL for details.

I do not work with DRAGON anymore, so the development of this program is stopped. Patches, feature requests and bug reports are still welcome though.