<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    hello all,<br>
    <br>
    we have just committed an update to the DART Manhattan release.<br>
    <br>
    if you are already using Manhattan but have not made any changes<br>
    to the code, do an 'svn update' and carry on.<br>
    <br>
    if you are already using Manhattan and have edited model_mod.f90<br>
    source code (or any other code), you may want to check out the<br>
    updated manhattan release in another location.  depending on what<br>
    you have changed, it may be a shorter path to diff your changes<br>
    against what you checked out ('svn diff bob.f90') and then insert<br>
    those same changes in the newly released code.<br>
    <br>
    the major change for this update is that we have heavily revamped<br>
    the model_mod.f90 interfaces.  we have removed some interfaces<br>
    no longer needed and split some interfaces to give you additional<br>
    functionality.   the detailed list of changes is at the end of the<br>
    CHANGELOG file in the top level directory, but i'll include it at
    the <br>
    end of this note as well.  we have updated all the RMA supported <br>
    model_mod.f90 files in the repository to match the new interfaces.<br>
    <br>
    this should be the last major non-backwards compatible change to<br>
    the Manhattan release.  we expect a few additional minor changes<br>
    and of course any bug fixes, but this should be a stable release and<br>
    you should feel confident using it.<br>
    <br>
    thanks, and as always contact us at '<a class="moz-txt-link-abbreviated" href="mailto:dart@ucar.edu">dart@ucar.edu</a>' for questions,<br>
    concerns, bug reports, etc.<br>
    <br>
    nancy<br>
    <br>
    --------------------------<br>
    Details of the latest commit:<br>
    <br>
    A long-awaited overhaul of the model_mod interfaces. All models
    which are<br>
    in our subversion repository and are supported in the Manhattan
    release<br>
    have been updated to match the new interfaces.  If you have
    model_mods with<br>
    extensive changes, our recommendation is to diff your changes with
    the version<br>
    you checked out and insert those changes into the new version.  The
    changes for<br>
    this update are unfortunately extensive.<br>
    <br>
    The detailed list of changes:<br>
    <br>
    model_mod::get_state_meta_data() is no longer passed an
    ensemble_handle as the<br>
    first argument.  it should not do vertical coordinate conversion. 
    that will be<br>
    done as a separate step by convert_vertical_state()<br>
    <br>
    model_mod::vert_convert is replaced by convert_vertical_state() and
    convert_vertical_obs()<br>
    Any vertical conversion code that was in get_state_meta_data should
    be moved<br>
    to convert_vertical_state() which has access to the state vector
    index, so the<br>
    code should move easily.<br>
    <br>
    model_mod::query_vert_localization_coord is no longer a required
    interface<br>
    model_mod::get_close_maxdist_init is not longer a required interface<br>
    model_mod::get_close_obs_init is not longer a required interface<br>
    <br>
    model_mod::get_close_obs has a different calling convention and is
    split into<br>
    get_close_obs() and get_close_state().  the close obs routine is
    passed both the<br>
    obs types and quantities, and the close state routine is passed both
    the<br>
    state quantities and the state index, for ease in vertical
    conversion if needed.<br>
    <br>
    model_mod::nc_write_model_vars() is deprecated for now; it may
    return in a<br>
    slightly different form in the future.<br>
    <br>
    model_mod::nc_write_model_atts() is now a subroutine with different
    arguments.<br>
    it should now only write any global attributes wanted, and possibly
    some grid<br>
    information.  it should NOT write any of the state variables; those
    will be<br>
    written by DART routines.<br>
    <br>
    model_mod::get_model_size() needs to return an i8 for the size.<br>
    <br>
    A new module "default_model_mod" supplies default routines for any
    required<br>
    interfaces that don't need to be specialized for this model.<br>
    <br>
    A new module "netcdf_utilities_mod" can do some simple netcdf
    functions for<br>
    you and we plan to add many more over the next couple months.<br>
    <br>
    model_mod::get_model_time_step has been replaced by
    shortest_time_between_assimilations()<br>
    since in fact it has always controlled the minimum time filter would
    request a model advance<br>
    and never had anything to do with the internal time step of the
    dynamics of the model.<br>
    <br>
    We have removed 'output_state_vector' from the namelist of all
    model_mods since<br>
    we no longer output a single 1d vector.  all i/o is now in netcdf
    format.<br>
    <br>
    Models now have more control over when vertical conversion happens -
    on demand<br>
    as needed, or all up front before assimilation.<br>
    <br>
    Models that were doing vertical conversion in get_state_meta_data
    should set:<br>
    &amp;assim_tools_nml<br>
       convert_all_state_verticals_first = .true.<br>
       convert_all_obs_verticals_first = .true.<br>
    <br>
    Models which were not should set:<br>
       convert_all_state_verticals_first = .false.<br>
       convert_all_obs_verticals_first = .true.<br>
    <br>
    The location_mod::vert_is_xxx() routines have become a single
    is_vertical(loc, "string") where<br>
    string is one of: "PRESSURE", "HEIGHT", "SURFACE", "LEVEL",
    "UNDEFINED", "SCALE_HEIGHT"<br>
    <br>
    Models doing vertical localization should add a call to
    set_vertical_localization_coord()<br>
    in their static_init_model() routine to tell dart what vertical
    coordinate system they<br>
    are expecting to convert to for vert localization<br>
    <br>
    Most path_names_xxx files have been updated to add additional
    modules.  compare against<br>
    what is checked out to see the differences.<br>
    <br>
    Some of the internal changes include pulling common code from the
    locations<br>
    modules into a location_io_mod which contains common functions for
    creating<br>
    and writing 'location' variables for any location type.<br>
    <br>
    QTY_RAW_STATE_VARIABLE is redundant and was shortened to
    QTY_STATE_VARIABLE<br>
    <br>
    Many utility programs use the template/model_mod.f90 because they
    don't<br>
    depend on any model-specific functions.  this file was also updated
    to<br>
    match the new interfaces.<br>
    <br>
    The obs_impact facility is enabled in the assim_tools namelist. you
    can<br>
    use the obs_impact_tool to construct a table which prevents one
    class of<br>
    observations from impacting another class of state.<br>
    <br>
    Sampling Error Correction now reads the values it needs from a
    single<br>
    netcdf file found in
    assimilation_code/programs/gen_sampling_err_table/work.<br>
    copy it to the same directory as where filter is running.  all
    ensemble<br>
    sizes which were previously in final_full.XX files are included, and
    there<br>
    is a tool to generate and append to the file any other ensemble size
    required.<br>
    <br>
    <br>
  </body>
</html>