bullet  EUMETSAT   bullet  SAFs   bullet   NWP SAF   bullet  Deliverables   bullet  RTTOV  bullet  RTTOV v8   bullet Bugs

RTTOV v8 bugs

There are several known bugs in the version rttov_8_7 of the code which are listed below. Corrections to these will be provided via the RTTOV v8 web page as they become available. They are:

  1. The code is only partially optimised for vector machines. More work is underway by a group of developers on NEC, IBM, Cray and Fujitsu platforms to optimise the performance for all machines.
  2. There can be problems in the compilation of RTTOV_SCATT due to use of the intrinsic routines in lapack.f . If you have problems try the following:
    make clean
    make scat (and it may fail)
    ifc -c lapack.f
    ifc rttovscatt_test.o lapack.o *.o
    mv a.out ../scripts/rttov_scatt.out
  3. For users with the Portland Fortran compiler (pgF90) there is a problem with the # symols in the code. Removing these allows compilation.
  4. If you are compiling RTTOV v8 with g95 the routines rttov_calcemis_mw.F90 and rttov_intext_prof.F90 need _jpim adding to some integers. The updated routines are linked to the names above.
  5. Some lines were not commented out in rttov_integrate_k.F90 causing the routine to run much slower than it should have. There is no change to the output with this change. The corrected routine is linked to its name above.
  6. The profile interpolation routine (only used in RTTOV_SCATT and RTTOV_CLD) rttov_intext_prof.F90 was found to have some deficiencies. A new version of this routine is now available here. The updated corresponding interface routine is available here.
  7. Several minor bug fixes have been identified which are corrected in the gzipped file here (43K). They relate to:
    1. Minor bugs in RTTOV_SCATT routines:

      rttov_iniscatt_k.F90
      rttov_scatt_test.F90
      rttov_iniscatt_tl.F90
      rttov_iniscatt_ad.F90

    2. Fixed bug in if loop to generate K of u and v over sea in rttov_calcemis_mw_k.F90
    3. Changed rttov_setpredictors_8_XX.F90 to remove redundant test on CO2 profile logical prof % co2_Data
    4. Corrected bug in pol_id in rttov_profout_k.F90 and rttov_profout_cld_k.F90
  8. A bug in the TL/AD routines of rttov_emiscld has been discovered. Note this only affects users who use the TL/AD RTTOV_CLD models AND invoke the Boudala ice crystal radius method. The corrected routines are here.
  9. A bug in the routines rttov_calcemis_xx.F90 selecting the FASTEM-2/3 coefficients has been corrected with updated files here. This only affects micorwave sensors.

The list below only refers to the RTTOV v8_5 original code distributed from Nov 2004. These have been fixed for RTTOV v8_7 distributed after 20 Nov 2005.

There are several known bugs in the original version rttov_8_5 of the code which are listed below.

  1. In RTTOV_SCATT only the RTTOV v7 microwave coefficient files work (i.e. 7 channels for SSM/I not 4) at present so the potential time saving in using the RTTOV v8 coefficients is not yet available.

  2. In RTTOV_SCATT the MSU/AMSU-A/AMSU-B adjoint and K code is not working correctly.

  3. Changes to RTTOV v8 for Windsat
    The azimuth variation of emissivity and full polarimetric treatment of surface emission in RTTOV v8 was developed without real data to test. Unsurprisingly initial comparison with real data from Windsat exposed a few errors and inconsistencies. These have been resolved in a set of improvements to the code which will be made available as an incremental bug fix release on top of RTTOV v8. It is not recommended that RTTOV v8/Fastem-3 be used for Windsat without these improvements. There are also small changes to the Fastem-3 emissivity computed in the window channels of AMSU, SSM/I, SSMI(S), AMSR, TMI for nadir angles greater than zero.
    5.1. Azimuth angles
    When RTTOV v8 simulations were first compared with Windsat data it was noticed that there was an offset between the observed and measured azimuth angles. This was due to a mistake in the consistency in definition of angle.
    The relative azimuth angle was defined as P = C – D, where C = instrument azimuth angle (clockwise, relative to zero at north), D = wind direction, P = relative azimuth angle. It was found that the correct relative azimuth angle to use in the code is ? - P. This removed the problem of the inconsistency in definition of azimuth angle between code and data. To be absolutely clear therefore the inputs to RTTOV v8 are:
    - azimuth angle defined clockwise with respect to zero at north
    - u and v wind components where westerly and southerly winds are positive and easterly and northerly winds are negative. This is the conventional meteorological definition.
    5.2. Non-specular reflection
    Fastem-2 takes account of non-specular reflection using the approach described by Deblonde and English (2000). This modifies the reflection to be greater than one minus the emissivity allowing for non-specular reflection. Debonde and English showed that this is identical to allowing for reflection from a non-specular path under an assumption of an isothermal atmosphere, which was already effectively being made in the manner of the specular construction in RTTOV. However for the 3rd and 4th elements of the Stokes vector non-specular reflection was ignored. This is now allowed for, giving more realistic simulations of the 3rd and 4th elements of the Stokes vector. In the revised code non-specular reflection is handled identically for all 4 elements.
    5.3. Improved coefficient files for azimuth variation.
    A bug was identified that the V and H coefficients for the azimuth variation were reversed in the coefficients for RTTOV v8 (Fastem-3) so new coefficient files are being made available with the coefficients reversed for V and H. It was also found that the Liu and Weng model overestimates the sensitivity and new coefficients have been derived from the model of Coppo et al (1996) which appear to follow the observed Windsat sensitivity very well. The corrected routines are here and coefficient files with corrected fastem-3 coefficients are here. An SSMIS file for FASTEM-3 is in preparation.

  4. There is an error in the indexing of emissivity arrays in the optional set up routine rttov_setupindex.F90. The corrected routine is here.

  5. There is a coding error in rttov_profout_k.F90 so users of the K code will potentially have a small error. The corrected routine is here.

  6. A bug in the FASTEM-3 code exists. This has already been fixed in the Windsat update available under item 5.3 above and so if you download the code from the link above in 5.3 you will fix this.

  7. The definition of twr for the new RTTOV v8 optical depth predictors is in error. The corrected routines are available here.

  8. For those running RTTOV on a vector machine we have improved the performance significantly by modifying the code. Updated modules are available here.

  9. The profile limit checking for water vapour and ozone is commented out in rttov_8_5. Some users prefer this but we have decided the default code should check the input profile limits for all variables. The updated modules to enable this are provided here.

  10. The computation of the predictors from the profile variables did not have the 'K' modules in the version delivered to users. The adjoint routines were used instead which is less efficient for users wishing to use the 'K' code. The K routines are now available for download here.

  11. A bug in rttov_setup related to setting max channel numbers has been fixed. Download the modified version of rttov_setup.F90 here.