Bitwise Considerations

DART project logo

Jump to DART Documentation Main Index
version information for this file:
$Id: bitwise_considerations.html 11427 2017-03-31 21:24:30Z $

By bitwise we mean bit for bit identical results in the output obs_sequence file and the restarts (netcdf-to-netcdf or DART format-to-dart format) when comparing one version of the code to another. For testing the code to be bitwise with Lanai there are several things to change/set in Manhattan and your mkmf:
  1. assim_tools_mod.f90:
    lanai_bitwise = .true. This is hard coded to false because it is very slow to be bitwise with Lanai. lanai_bitwise = .true. causes the vertical conversion of observations to be done in get_close_obs inside the sequential obs do loop. See vertical conversion for details about this change.
  2. filter_nml:
    output_forward_op_errors = .true. This will cause the forward operator code to calculate all forward operators, even if some ensemble members fail.
  3. mkmf:
    ifort fp-model precise
    In general use the debugging FLAGS in the mkmfs provided with DART.
  4. sampling_error_correction:
    Use the from the assimilation_code/programs/system_simulation/work directory. These values are identical to the Lanai release.
  5. posterior inflation:
    Try to avoid testing cases which use posterior inflation. The posterior inflation has additional code in the Manhattan version compared to Lanai. If you need to test a case that has posterior, copy assim_tools/assim_tools_mod.f90 from the 'classic' release to your Lanai build, and run your test against that version.


The CAM and bgrid_solo model_mods have been altered so the state is in a different order inside filter. Thus DART format restarts will not be bitwise with Lanai DART format restarts, but netcdf files will be (after running dart_to_cam).


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

Contact: DART core group
Revision: $Revision: 11427 $
Source: $URL: $
Change Date: $Date: 2017-03-31 15:24:30 -0600 (Fri, 31 Mar 2017) $
Change history:  try "svn log" or "svn diff"