[an error occurred while processing this directive]
[an error occurred while processing this directive]  

The Data Assimilation Research Testbed -- DART

cool spaghetti plot of North America demonstrating the uncertainty among the
        ensemble members
The 500hPa geopotential height from 20 ensemble members of an 80 member experiment with a T85 resolution of CAM (00Z 01 Feb 2003). The contour sets are from 5320 to 5800 by 80.

Welcome to the home page for the Data Assimilation Research Testbed (DART).

Quick Guide Topics

Getting Started

The DART software provides a flexible, extensible framework for conducting data assimilation research on a wide variety of models and observations. In order to facilitate the incorporation of new models, which in the Geoscience community are frequently written in Fortran 90, the DART software is written primarily in Fortran 90. Control scripts are primarily in C Shell, and the distribution includes Matlab® diagnostic scripts.

The DART system comes with many models -- ranging from 1-dimensional Lorenz systems to full global atmospheric and ocean models. DART also has extensive tutorial materials that explain typical DART experiments and explores many aspects of ensemble data assimilation. Download the DART source code and see the release notes for instructions on how to build an executable, run the "workshop" experiments, and look at the results. The DART_LAB directory contains presentation slides and interactive MATLAB demonstrations which illustrate and explain the fundamentals of the ensemble data assimilation algorithms. The tutorial directory contains a series of PDF files which go into more mathematical detail on various ensemble data assimilation topics, and specifics on the DART implementation.

DART requirements

DART is intended to be highly portable but has a strong Unix/Linux preference. DART has been run successfully on Windows machines under the cygwin environment. Those instructions are under development - if you would like to be a friendly beta-tester please send me (Tim Hoar) an email and I'll send you the instructions, as long as you promise to provide feedback (good or bad!) so I can improve them. My email is   thoar @ ucar . edu - minus the spaces, naturally.

Minimally, you will need a Fortran90 compiler and the netCDF libraries built with the F90 interface. History has shown that it is a very good idea to make sure your run-time environment has the following:

limit stacksize unlimited
limit datasize unlimited

If you want to run your own model, all you need is an executable and some scripts to interface with DART - we have templates and examples. If your model can be called as a subroutine, life is good, and the hardest part is usually a routine to parse the model state vector into one whopping array - and back. Again - we have templates, examples, and a document describing the required interfaces. That document exists in the DART code - DART/models/model_mod.html - as does all the most current documentation. Almost every DART program/module has a matching piece of documentation.

Starting with the Jamaica release there is an option to compile with the MPI (Message Passing Interface) libraries in order to run the assimilation step in parallel on hardware with multiple CPUs. Note that this is optional; MPI is not required to run DART. If you do want to run in parallel then we also require a working MPI library and appropriate cluster or SMP hardware. See the MPI intro for more information on running with the MPI option.

One of the beauties of ensemble data assimilation is that even if (particularly if) your model is single-threaded, you can still run efficiently on parallel machines by dealing out each ensemble member (an unique instance of the model) to a separate processor. If your model cannot run single-threaded, fear not, DART can do that too.

DART platforms/compilers/batch systems

We work to keep the DART code highly portable. We avoid compiler-specific constructs, require no system-specific functions, and try as much as possible to be easy to build on new platforms.

DART has been compiled and run on Apple laptops and workstations, Linux clusters small and large, SGI Altix systems, IBM Power systems, IBM Intel systems, Cray systems.

DART has been compiled with compilers from Intel, PGI, Cray, GNU, IBM, Pathscale.

MPI versions of DART have run under batch systems including LSF, PBS, Moab/Torque, and Sun Grid Engine.

We have run successfully on a Windows machine under the cygwin environment. If you are interested in this, please contact us.

DART code distributions

The DART code is distributed via a Subversion (SVN) repository. Anonymous access is allowed, and the repository code is read-only for everyone except the DART development team. DART is distributed as source code, so you must be prepared to build the parts of the system you need before you can run it.

Using subversion makes it easy to update and compare your checked-out version of the code with the latest repository version of the code. If you are not familiar with the svn command (the client application of subversion), you should take a stroll through Tim's svn primer. Or there are several GUI programs that help you manage, check out, and merge subversion distributions. If you cannot use svn (e.g. because you are behind a firewall that does not permit subversion access), please email the DART team and we may be able to send you a tar file as a last resort.

The DART development team keeps released versions of the code which are stable (don't change) except for bug fixes. Generally we recommend users check out one of these versions. The DART development team makes frequent updates to the trunk version of the code as new features are developed. Those users who want to use recently added features are welcome to check out the trunk, but they should be prepared to work around possible non-backwards compatible changes and more lightly tested code than the released versions.

DART continues to evolve. We request that you register using this web page and afterwards you will be redirected to instructions on how to download a version of the DART code. Registration helps us track how many people are using our code, and allows us to contact current users in case of bugs or major updates. The DART mailing list is a very low-traffic list -- perhaps 4 emails per year -- so PLEASE use a real email address when signing up. We solemnly swear to protect your email address like it is our own! Even local NCAR users or users who have registered in the past are encouraged to reregister when downloading new versions. Thank you for your understanding.

version date                 instructions most noteable change(s)
lanai 13 Dec 2013 [doc] Support for the CESM climate components under the CESM framework; the MPAS models, the NOAH land model, the GITM ionosphere model, the NOGAPS atmosphere model, the NAAPS aerosol model, and the SQG surface quasi-geostrophic model. Support for many new chemistry and aerosol observation types, support for many new observations sources, many new diagnostic routines, and new utilities.
change log
trunk today included in distrib. varies, use svn log --revision ####:HEAD to see log messages about changes since revision ####.
kodiak 30 Jun 2011 [doc] Damped Inflation, Sampling Error Correction, Boxcar Kernel Filter option, support for new models, new observation types, new diagnostics, new utilities.
change log
jamaica 12 Apr 2007 [doc] vertical localization, extensive testing of MPI implementation, full documentation for new algorithms, new tutorial sections
change log
pre_j 02 Oct 2006 [doc] contains an updated scalable filter algorithm
post_iceland 20 Jun 2006 [doc] observation-space adaptive inflation, bug fixes,
obs_sequence_tool support ...
change log
iceland 23 Nov 2005 [doc] huge expansion of real observation capability
better namelist processing, PBL_1d available.
change log
pre_iceland 20 Oct 2005 for developers only huge expansion of real observation capability
DA workshop 2005 13 Jun 2005 docs included in distrib. tutorial directory in distribution, observation preprocessing
hawaii 28 Feb 2005 [doc] new filtering algorithms
pre-hawaii 20 Dec 2004 [doc] new filtering algorithms
guam 12 Aug 2004 [doc] new observation modules, removing autopromotion
fiji 29 Apr 2004 [doc] enhanced portability, CAM, WRF
easter 8 March 2004 [doc] initial release

DART Tutorial Materials and Presentations

The DART system comes with an extensive set of tutorial materials, working models with several different levels of complexity, and data to be assimilated. It has been used in several multi-day workshops and can be used as the basis to teach a section on Data Assimilation. Download the DART software distribution and look in the DART_LAB subdirectory for pdf and powerpoint presentations, and MATLAB GUI point-and-click examples and hands-on demonstrations. Also look in the tutorial subdirectory for pdf files for each of the 22 tutorial sections.

Browsing the DART_LAB and tutorial directories in the distribution is worth the effort. Doing the tutorials is even better!

Presentations about DART

The full list of presentations (as well as some of the presentations themselves) and publications is available on our Publications page.

Related Links

DART Contact list

We're a small group, so the contact list is pretty short. Our central email contact is dart@ucar.edu. Or if you want to contact us individually, here is our information:

lead scientist and manager general / diagnostics general / platforms / mpi large processor count systems CAM WRF
Jeff Anderson Tim Hoar Nancy Collins Helen Kershaw Kevin Raeder Glen Romine
jla @ ucar . edu  thoar @ ucar . edu  nancy @ ucar . edu  hkershaw @ ucar . edu  raeder @ ucar . edu  romine @ ucar . edu 

Terms of Use

DART software - Copyright UCAR. This open source software is provided by UCAR, "as is", without charge, subject to all terms of use at http://www.image.ucar.edu/DAReS/DART/DART_download

Contact: DART core group
Revision: $Revision: 10979 $
Source: $URL: https://svn-dares-dart.cgd.ucar.edu/DART/releases/Manhattan/documentation/html/index.shtml $
Change Date: $Date: 2017-02-01 13:07:34 -0700 (Wed, 01 Feb 2017) $
Change history:  try "svn log" or "svn diff"