The Data Assimilation Research Testbed (DART) is a public-domain, community facility for doing research on and applying ensemble data assimilation techniques over a variety of models and observation types. It includes many example models and support for common observation types and for different filter types. It also includes material for teaching and learning the basic principles of data assimilation.
DART strives to implement general solutions which work over a range of models and observation types, and to develop theory-based algorithms that solve the many real problems encountered when doing ensemble data assimilation. The algorithms in DART are tested on both simple one-dimensional models (e.g. the Lorenz series of models) as well as full-up 3D NWP (Numerical Weather Prediction) models and GCMs (Global Climate Models). The basic Kalman filter code can be written in a few lines. In practice, however, there are a variety of difficulties resulting from sampling error, model bias, observation error, lack of model divergence, variations in observation density in space and time, etc. There are tools built into the DART framework to address many of these problems.
This release of DART includes many new features. DART will now read directly from NetCDF files. If your model uses NetCDF file format the model_to_dart and dart_to_model steps are no longer needed. Given that many jobs spend a large percentage of time doing file I/O, this can be a significant speedup in the overall assimilation cycle. DART now distributes the ensemble of model states across the MPI tasks, removing the hard memory limit that a single ensemble member's data fit into the memory of a single task. This removes the memory limit for models at high resolution or with nested grids. DART can assimilate forward operators computed outside of the filter process. Users can provide a table of observations and state vector items along with a factor that can easily prevent one class of observations from impacting another class of state vector data, and vice versa. The DART directory structure has been revamped to help users more easily find the various utilities, tools, supported models, and observation types that come with the DART distribution. The Matlab diagnostic routines have been rewritten to no longer require the external MEXNC toolbox. They now use the intrinsic Matlab NetCDF functions.
To get started, look here:
The best way to get to know the DART software is to follow along while reading the tutorial documents in the DART_LAB and then the DART/tutorial directory.
The latest official release is named "Manhattan". See the extensive release notes Manhattan_release which include installation help, a walk-through of building and running a model, and then examples of how to use the diagnostics to evaluate the success of the assimilation. See Manhattan_diffs_from_Lanai for a brief summary of changes since Lanai, including new functionality, new models and tools, and any non-backwards-compatible changes since the Lanai release.
Future releases of DART are expected to have substantial changes and will be less backwards compatible than has been historically true with DART releases. New development will continue on a separate subversion branch.
Every source file in the DART system has a corresponding .html file that contains specifics for public interfaces in each of the DART modules, for the executable programs which come with DART, and for how to interface new models into the DART system.
The remainder of this page contains links to all the documentation for this DART release.
Here are the notable updates since the Manhattan release.
|Commit Date||SVN Revision||Description|
|24 Mar 2017||11400||Updates to web pages and online documentation. Much better, but not done yet.|
|15 Mar 2017||11355||Manhattan release date and version.|
Start here if you are looking for DART User-level HTML documentation. DART comes with an extensive set of documentation including release notes for each version, a walk-through on-line tutorial, and a full set of pdf and framemaker tutorial materials.
The Manhattan release notes include installation hints, a walk-through of building and running a model, and an overview of the diagnostics. It also includes a list of new or changed models, observation support, diagnostics, and non-backwards compatible changes.
For a shorter summary document of only the changes since the last release see Manhattan_diffs_from_Lanai. This may be more helpful for current DART users who are looking for pointers to differences when they update.
Three tutorials, in PDF format, are available. The first is more introductory and interactive with PDF documents and Hands-On Matlab exercises. The full-fledged DART Tutorial is more of a workshop format, with multiple sections covering various parts of DART with suggested exercises at the end of most sections.
All sections below this one are detailed information on the programming interfaces of all the DART modules, the namelist details, the executable programs which are part of DART. For introductory materials, see the links above.
DART contains many library functions and separate executable programs. The main DART executable is the filter program. Other programs generate data or format the diagnostic information.
The executable programs that come with DART include:
The diagnostic programs that process observations after being assimilated by DART include:
The executable programs that convert observations into DART format include:
DART comes with several models which can be used to learn about data assimilation, to do actual experiments with real observations, or to use as a template for adding additional models to DART.
All models in the DART project have individual documentation pages, which can be found here (if an html document is not available, the link is to the .f90 source):
Currently Manhattan has support for many of our larger models such as WRF, POP, CAM, CICE, CLM, ROMS, MPAS_ATM, ... and all lower models such as lorenz_96. Models previously available on Lanai can still be used with DART classic.
Generally read from the file input.nml. We adhere to the F90 standard of starting a namelist with an ampersand '&' and terminating with a slash '/'.
Namelists for Programs:
Namelists for Observation Conversion Programs:
Namelists for Modules:
Namelists for Models:
All modules in the DART project have individual documentation pages, which can be found here:Assimilation Modules
|NOTE: 'work', 'matlab', and 'shell_scripts' directory names have been removed from this list.|
|--assimilation_code | |--location | | |--annulus | | |--channel | | |--column | | |--oned | | |--threed | | |--threed_cartesian | | |--threed_sphere | | |--twod | | |--twod_annulus | | |--twod_sphere | |--modules | | |--assimilation | | |--io | | |--observations | | |--utilities | |--programs | | |--advance_time | | |--closest_member_tool | | |--compare_states | | | |--work | | |--compute_error | | |--create_fixed_network_seq | | |--create_obs_sequence | | |--fill_inflation_restart | | |--filter | | |--gen_sampling_err_table | | | |--work | | |--integrate_model | | |--model_mod_check | | |--obs_common_subset | | |--obs_diag | | | |--oned | | | |--threed_cartesian | | | |--threed_sphere | | |--obs_impact_tool | | |--obs_loop | | |--obs_selection | | |--obs_seq_coverage | | |--obs_seq_to_netcdf | | |--obs_sequence_tool | | |--obs_seq_verify | | |--perfect_model_obs | | |--preprocess | | |--system_simulation | | | |--final_full_precomputed_tables | | | |--work | | |--wakeup_filter | |--scripts |--build_templates |--developer_tests | |--forward_operators | |--harnesses | | |--filename_harness | | |--read_transpose_write | |--io | | |--work | |--location | | |--annulus | | | |--test | | |--channel | | | |--test | | |--column | | | |--test | | |--oned | | | |--test | | |--threed | | | |--test | | |--threed_cartesian | | | |--test | | |--threed_sphere | | | |--test | | |--twod | | | |--test | | |--twod_annulus | | | |--test | | |--twod_sphere | | |--test | |--mpi_utilities | | |--tests | |--obs_sequence | | |--data | | |--work | |--random_seq | | |--test | |--reg_factor | |--time_manager | |--utilities | |--work |--diagnostics | |--matlab | |--deprecated | |--private |--documentation | |--DART_LAB | | |--matlab | | | |--private | | |--presentation | |--doxygen | |--Graphs | |--html | | |--boilerplate | | |--design | | |--history | |--images | |--tutorial |--observations |--forward_operators | |--test |--obs_converters |--AIRS | |--data | |--output |--Ameriflux |--AURA | |--data |--AVISO |--CHAMP |--cice | |--data |--CNOFS |--COSMOS | |--data |--DWL | |--data |--even_sphere |--gnd_gps_vtec |--gps | |--cosmic | | |--20071001 | |--matlab |--GPSPW | |--data |--GTSPP | |--data | |--matlab |--MADIS | |--data |--MIDAS | |--data |--MODIS | |--data |--NCEP | |--ascii_to_obs | |--prep_bufr | |--blk_ublk | |--convert_bufr | |--data | | |--201012 | |--docs | | |--Reason_codes | |--exe | |--lib | |--src |--obs_error |--ok_mesonet | |--data |--quikscat | |--data |--radar | |--examples |--ROMS | |--data |--SABER | |--data | |--progs |--snow | |--data |--SSEC | |--data |--SSUSI | |--data |--text | |--data |--text_GITM |--tpw | |--data | |--doc |--tropical_cyclone | |--data |--utilities | |--oned | |--threed_sphere |--var | |--3DVAR_OBSPROC | |--data |--WOD |--data
|--models |--9var |--am2 |--bgrid_solo | |--fms_src | | |--atmos_bgrid | | | |--driver | | | | |--solo | | | |--model | | | |--tools | | |--atmos_param | | | |--hs_forcing | | |--atmos_shared | | | |--tracer_driver | | | |--vert_advection | | |--atmos_solo | | |--shared | | |--axis_utils | | |--constants | | |--diag_manager | | |--fft | | |--field_manager | | |--fms | | |--horiz_interp | | |--mpp | | |--platform | | |--sat_vapor_pres | | |--time_manager | | |--topography | | |--tracer_manager | | |--udunits | | |--utilities | |--test |--cam-fv | |--deprecated | |--doc | |--shell_scripts | |--cesm1_5 | |--cesm2_0 |--cam-old | |--deprecated | |--doc | |--full_experiment | |--perfect_model |--CESM | |--doc | |--CESM_DART_assim_modes |--cice |--clm | |--datm | |--docs |--cm1 |--coamps | |--doc | |--externals | | |--obs_def | |--templates |--coamps_nest | |--doc | |--externals | | |--obs_def | |--shell_scripts | | |--COAMPS_RESTART_SCRIPTS | | |--TEMPLATES | |--templates | | |--EXPERIMENT_EXAMPLE |--dynamo | |--data |--ECHAM |--forced_barot | |--obs |--forced_lorenz_96 |--gitm | |--GITM2 | | |--src | |--python | |--testdata1 |--ikeda |--LMDZ |--lorenz_04 |--lorenz_63 |--lorenz_84 |--lorenz_96 | |--tests |--lorenz_96_2scale |--MITgcm_annulus |--MITgcm_ocean | |--inputs |--model_mod_tools |--mpas_atm | |--data |--mpas_ocn | |--data |--NAAPS |--NCOMMAS | |--docs |--noah | |--ensemble_source | |--forcing | |--templates |--null_model |--PBL_1d |--pe2lyr |--POP |--ROMS | |--data | |--doc |--rose |--simple_advection |--sqg |--template |--tiegcm |--wrf |--experiments | |--Radar | |--IC | | |--sounding_perturbation | |--obs |--namelist |--PERTURB | |--3DVAR-COVAR |--regression | |--CONUS-V2 | |--CONUS-V3 | |--Global-V3 | |--Radar | |--WRF |--WRF_BC |--WRF_DART_utilities
Additional documentation which didn't fit neatly into the other categories.
The kitchen sink - quick links to all existing html docs plus all model_mod source files in the DART distribution tree:
|Contact:||DART core group|
|Revision:||$Revision: 12138 $|
|Source:||$URL: https://svn-dares-dart.cgd.ucar.edu/DART/releases/Manhattan/documentation/index.html $|
|Change Date:||$Date: 2017-11-21 09:56:43 -0700 (Tue, 21 Nov 2017) $|
|Change history:||try "svn log" or "svn diff"|