Last modified 14 years ago Last modified on 11/17/08 09:48:01

Obtaining the FLASH code

Some of the FLASH code base to be used for this activity is not part of the standard distribution. To ensure that everyone in PERI with access to the code understands that it cannot be redistributed, anyone desiring access to the repository will need to e-mail Paul Hovland, agreeing not to redistribute the code. This is in addition to the standard FLASH license agreement (one responsible party per institution).

After obtaining access to the repository by contacting Paul Hovland, you can download the PERI branch of the FLASH development repository by using the following command (a Subversion client is required):

svn co https://[email protected]/repos/FLASH-PERI

where username is your MCS account username.


  • RTflame problem (limited refinement)
  • White dwarf problem

NOTE: These configurations require code that is not part of the current public FLASH distribution.

FLASH userguide

The FLASH userguide is available at:

The important sections are:

  1. Quick Start,

3.6 The runtime parameter file (flash.par),

  1. The FLASH configuration script (setup),
  2. Timer and Profiler Units

FLASH setup information

FLASH uses PARAMESH to manage the oct-tree AMR grid. An important parameter in this distributed data structure is MAXBLOCKS which indicates the maximum number of blocks per processor. It is particularly relevant in limited memory environments because this static memory allocation can be very large. Its value can be adjusted by passing the -maxblocks option to the setup script, e.g.


Using TAU with FLASH

FLASH has setup support for instrumenting each subroutine using the TAU toolkit. Simply pass the full-path of a TAU makefile in the -tau option of the setup script, e.g.


This instructs setup to replace the compilers in Makefile.h with the TAU wrapper compiler scripts, and also to copy the TAU instrumentation file at tools/tau/select.tau into the object directory. The select.tau file excludes certain subroutines from TAU instrumentation. Please note, some of the subroutines may be excluded unnecessarily as the list was constructed using an older version of FLASH with older versions of the TAU software stack.

FLASH timers

FLASH has in-built timers giving timing information for labelled code sections. These are switched on by default, but they can be switched off by replacing them with a stub implementation at setup time. This is done by passing the following line to the setup script:


As an alternative, a custom timer implementation has been written. This times the labelled code sections in FLASH using TAU timers and not the in-built FLASH timers. Timing data for any labelled code section therefore appears alongside routine level data in the TAU profile. FLASH labelled sections are currently marked using the "* custom:" prefix in the TAU profile.

This can be included in a FLASH simulation by passing the following line to the setup script:


(Please note, the timer implementation is not in the tar ball we sent you, but it will be available when we create the PERI svn branch).