Opened 16 years ago
Closed 15 years ago
#168 closed task (fixed)
UDUNITS2
Reported by: | Huw Lewis | Owned by: | Huw Lewis |
---|---|---|---|
Priority: | normal | Milestone: | 4.0 |
Component: | ropp_io | Version: | 3.0 |
Keywords: | udunits | Cc: |
Description
Udunits has been updated to UDUNITS-2. The 'originl' bversion (1.12.9) currently used with ROPP is described as deprecated on the Unidata website (although a download is still available).
The new package has an 'improved API, support for logarithmic units, support for multiple character sets, and XML database and a conversion utility'. These additional functionality are not required by ROPP.
Need to investigate the changes in udunits API - how compatibly are these with existing ROPP (CM) udunits wrappers? Aim to support ROPP use with both UDUNITS1 and UDUNITS2?
Change history (2)
comment:1 by , 15 years ago
comment:2 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Removed dependency on UDUNITS (1 or 2). See [2236], [2237], [2238].
Original Marquardt library udunits modified to use basic ROPP-specific unit conversion routine ropp_unit_conversion.f90 in ropp_utils module. This is part of the new unitconvert module used within the ncdf library and in ROPP_FM.
The new solution removes another third-party dependency, although does not have the full functionality available with udunits of course.
Documentation for ROPP-4 will be updated to reflect the reduced dependencies.
Ticket closed as fixed.
At present, UDUNITS2 does not have a Fortran API, only C. We do not require the full functionality of udunits (1 or 2) in ROPP, only very basic unit conversion options for a few specific variables (as defined in the RO data structure).
Given the lack of available Fortran interface for UDUNITS-2, the deprecated nature of udunits-1, and the current need to continually support updates to this third-party library, we will opt to drop usage of udunits entirely from ROPP. Rather, we will perform unit conversion functionality with a ROPP-specific unit conversion routine, called from Chris' unit conversion library. The generic units library should sit in ropp_utils. This change should enhance the module independence (e.g. between ropp_fm and ropp_io, in ropp_fm_set_units).