[Dart-users] repository updates, wrf_dart_obs_preprocess bug, mailing list

Nancy Collins nancy at ucar.edu
Thu Mar 24 13:59:43 MDT 2011


hello dart-users,

if you just got a new subscription message to this list
this morning, it's because you were on the wrfdart-users
mail list but not on the main dart-users list.   this is a
very light traffic list; mostly it is used to announce code
updates and bug fixes.

here is a summary of updates to the dart subversion repository
since my last note in late february.

wrf/dart users should take an especially good look at
the last item on this list; two significant bugs in the
wrf_dart_obs_preprocess program have been fixed.


- assim_tools/assim_tools_mod.f90
         committed a fix to a bug introduced on 22 feb 2010
when the option for 'cutoff-by-types' code was added.
trying to assimilate identity obs with this version would
give an out-of-bounds array reference (or would just pick up
a bad localization distance, if bounds errors were not detected
at run time).  this fixes the localization cutoff distance for
identity obs, and also fixes a minor formatting error in one of
the informational log messages.

- observations/NCEP/prep_bufr/src/prepbufr.f, prepbufr_03Z.f
         the recently added code to optionally generate Relative
Humidity observations was missing a divide by 1000.0 for
surface observations.
         land surface obs come in from prepbufr files with large
errors so they are not assimilated (or have no impact) in NCEP use.
we have overrides to allow usual error values to be set so the
obs can be used; the land moisture override was not taking
effect.  this has been broken since nov 2007.

- filter/filter.f90
         added a new option 'output_restart_mean' to the
&filter_nml namelist.  if .true. filter will write 1 additional restart
file at the end which contains the ensemble mean in dart restart
file format.   the name will be 'filter_restart.mean' (or whatever you
have the output restart base name set to, plus '.mean')

- mpi_utilities/mpi_utilities_mod.f90
         added more debugging options to help with problems
when trying to advance the model in async 2 or 4 mode.  there is
also some preliminary code to allow synchronizing the script
and model advance in async 4 mode when the script and execution
nodes are disjoint.   this version uses a file instead of pipes to
handshake.  (if you're interested in this code, please talk to me
about how to use it.   there is an example job script in the
lorenz_96/shell_scripts directory.  see the README in that dir.)

- utilities/model_mod_check.f90
         a test program to help with debugging the process of
creating a working model_mod.f90 file for a new model.

- models/lorenz_04/model_mod.f90
         the Lorenz 2004/2005 model_mod had an extra divide
by 2 in the code that advanced the model.  this resulted in
different behavior of the model compared to the literature.

- obs_sequence/obs_sequence_tool.f90
         added an option so the obs_sequence_tool can add either
new copies or new QCs with a constant initial value.  could be
used to add a missing data QC, for example.   see the html
page for examples of how to use this.

- utilities/closest_member_tool.f90
         if you have filter output the ensemble mean in restart file
format (see the notes about filter.f90 above), then this utility
examines the ensemble of restart files and returns the ensemble
number of the member which is 'closest' to the mean.  there are
multiple choices for how 'close' is computed.  see the html page
for more details.

- adaptive_inflate/fill_inflation_restart.f90
         a utility that reads the initial inflation mean and standard
deviation values from the console and writes them into an
inflation restart file so the first job step of a long assimilation
can use the same input.nml file as continuation steps.   often
the only difference between job step 1 and steps 2-N is whether
the initial inflation is read from the namelist or from a restart file.
creating this file ahead of time allows all steps to start from a
restart file so a single input.nml can be used.

and last but certainly not least --

- models/wrf/WRF_DART_utilities/wrf_dart_obs_preprocess.f90
         in the source code the default for the horizontal box size
for aircraft superobs was incorrectly set to 36,000 KM, instead
of 36 KM.   the suggested default namelist had the correct value
of 36, so if you had 'aircraft_horiz_int' set in your namelist you're ok.
otherwise the code would try to superob all aircraft obs in a 36,000 KM
region and give you back only a handful of values.
         if you compile wrf/dart with r8 redefined as r4 and if you use
the wrf_dart_obs_preprocess program it is possible the program
has been setting the observation errors to large or garbage values
because of a mismatch between an r8 and r4 value being passed to
a subroutine.  this update fixes the problem, but if you have existing
obs_seq files which were produced with previous versions of this
program examine the observation errors to be sure they are what
you are expecting.  this is definitely a problem if you're using the
xlf compiler on bluefire; some other platforms and compilers
seemed to handle the type mismatch correctly.


thanks if you read this far,
nancy




More information about the Dart-users mailing list