bullet  EUMETSAT   bullet  SAFs   bullet   NWP SAF   bullet  Deliverables   bullet  RTTOV   bullet  RTTOV v11 resources

RTTOV v11 resources

RTTOV version 11 is available to licensed users free of charge. To become a licensed user of RTTOV v11, please send a request using the RTTOV v11 Request Form.

RTTOV v11.3:

The most recent version of RTTOV is v11.3, released in September 2015.

New users should obtain the full package via the Request Form. Instructions for compiling and running RTTOV v11.3 may be found in the user guide. The user guide also contains comprehensive details of the new features in RTTOV v11 and the changes from RTTOV v10.

Coefficients are available here and emissivity and BRDF atlas data files are below.

Please look at the list of known bugs below as the official release package does not contain any updates or fixes listed there.


Existing RTTOV v11.2 users should read this document which describes issues related to the choice of input gas units in v11.2 and earlier and also the bugs discovered in the coefficient generation code which has resulted in all v7/v8 predictor coefficient files being updated for v11.3.


A new Python package pyrttov has been created which provides an object-oriented Python interface to RTTOV. This is very similar to the C++ classes provided with RTTOV v11.3. The package is available here in this file: rttov_wrapper_pyrttov_20160127.tar.gz. This should be extracted in the top level of your RTTOV v11.3 installation. The wrapper documentation in docs/rttov-wrapper.pdf has been updated. The pyrttov package is in wrapper/pyrttov/ and an example Python script wrapper/pyrttov_example.py has been included. The update also includes a bug fix in the wrapper Fortran source code (see the list of known bugs below) so you should recompile RTTOV after extracting this update to implement the bug fix.


  • To compile RTTOV v11.3, create a new directory for the package. For example:

    $ mkdir ~user/rttov11
    $ cd ~user/rttov11

    Copy the file rttov113.tar.gz into this new top-level directory and extract the contents:

    $ tar zxf rttov113.tar.gz

    RTTOV can be compiled without any external dependencies. However to make use of all functionality you should edit the file build/Makefile.local before compiling with the location of your HDF5 installation. Alternatively you can specify the location of your netCDF installation which will at least enable the use of the land surface emissivity and BRDF atlases.

    RTTOV v11.3 can be compiled using an interactive script:

    $ cd src
    $ ../build/rttov_compile.sh

    Alternatively you can compile manually as for v11.2: see the user guide for details.


  • Existing RTTOV v11.2 users can upgrade to v11.3 by downloading the update package rttov113_update.tar.gz and following the instructions below. Information about v11.3 can be found in the readme.txt.

    Copy the update package into your existing RTTOV v11.2 directory, delete some files which are no longer necessary, and then unpack the tarball:

    $ cd ~user/rttov11 [your top-level RTTOV v11.2 directory]
    $ rm -f src/other/us76_to_hdf5.F90
    $ rm -f src/test/rttov_zutility_test.F90
    $ rm -f src/test/test_weighting_fn_dev.F90
    $ rm -fr rttov_test/*
    $ tar zxf rttov113_update.tar.gz

    RTTOV v11.3 can be compiled just as for v11.2. However a new interactive script is available which may make compilation easier (see above or see the user guide for full instructions).

    The update package contains updated test reference data so you can verify your build.


  • Existing RTTOV v11.1 users can upgrade to v11.3 by first updating to RTTOV v11.2 and then applying the update package described above. To update from v11.1 to v11.2, download rttov112_update.tar.gz and follow the instructions in the associated readme_v112.txt.


Important notes for v11.3

  • If you compile RTTOV v11.3 against the HDF5 library and you use the emissivity and/or BRDF atlases, then you must use the new HDF5 format BRDF and IR emissivity atlas files. In this case there is no need to specify a netCDF installation in build/Makefile.local (it would be ignored). However if you do not compile with HDF5 support you can still compile against the netCDF library and use the netCDF versions of the atlas files.
  • The BRDF atlas in v11.3 has improved treatment of snow reflectances. This has required the eigenvector data file to be updated. If you are compiling with HDF5 the new file is included with the new HDF5 format files. If you are compiling with netCDF you must download the new netCDF format BRDF eigenvector file.
  • If you build RTTOV with HDF5 support and you do not use the new compilation script to compile RTTOV (see above) then you must regenerate the Makefiles to include the RTTOV HDF5 code after the update before recompiling:

    $ cd src
    $ ../build/Makefile.PL RTTOV_HDF=1

  • The majority of coefficient files have been regenerated for RTTOV v11.3 as explained in this document. These updated coefficients include bug fixes in the coefficient generation and users are recommended to use the new files. The test reference data was created using these new coefficient files. The update package does not include any coefficient files.
  • Zeeman coefficients and AMSU-A shifted coefficients have not yet been updated and new versions are not available with the v11.3 release. New Zeeman coefficients will be generated; the AMSU-A shifted coefficients are under review.
  • The tests for hyperspectral sounders in the test suite all assume HDF5 format coefficient files. The only exceptions are the tests called by the test_coef_io.sh script which assume ASCII format coefficient files. Note that it is not necessary to run every test script to verify your installation: it is sufficient to run just test_rttov11.sh which runs tests only for ASCII (non-hi-res IR) coefficient files. See the user guide for more information about testing RTTOV.
  • The RTTOV libraries no longer have the minor version number in the filename: for example librttov11.2.0_main.a becomes librttov11_main.a.


RTTOV v11 documentation:

RTTOV v11 FAQs: please see the Frequently Asked Questions page.

As a follow-up to the survey carried out at the end of 2014, this document provides a summary of the responses and an overview of the current plans for RTTOV development in the short- medium- and long-term which were informed by the survey results.


RTTOV v11 coefficient files and atlas datasets:

RTTOV v11 coefficient file downloads

Coefficient files for most sensors are included with the source code distribution. Additional larger coefficient files are available on this page which provides a comprehensive list of RTTOV v11 coefficient files along with the features supported by each one. Use these tables to determine the best coefficient file(s) to use for your instrument(s) of interest.

Note that RTTOV v11 can read all RTTOV v10 coefficient files except for PC coefficient files: the PC coefficient file format has changed for v11. Most v11 coefficient files are compatible with RTTOV v10. The exceptions are: the v9 predictor solar coefficient files (except AIRS and IASI), aerosol coefficient files, and PC coefficient files.

Also note that the names and/or ID numbers of a small number of instruments have changed since RTTOV v10. These are detailed on the web page linked above.

Surface emissivity atlas data:

The following files should be unzipped/untarred in emis_data/:

Users of RTTOV v11.3 must use the HDF5 versions of the IR atlas files if they compile RTTOV with the HDF5 library. Otherwise the netCDF versions must be used. Users of RTTOV v11.1 and v11.2 must use the netCDF versions of the IR atlas.

NB The IR emissivity atlas angular correction and covariance files are optional and can be downloaded separately from the emissivity data itself.

Surface BRDF atlas data:

The following file should be unzipped/untarred in brdf_data/:

Users of RTTOV v11.3 must use the HDF5 versions of the BRDF atlas files if they compile RTTOV with the HDF5 library. Otherwise the netCDF versions must be used. Users of RTTOV v11.1 and v11.2 must use the netCDF versions of the BRDF atlas.

NB For RTTOV v11.3 the eigenvector file was updated and the new version (CMSsolarbrdf_labeigvects_V1.1.H5/nc) must be used.


RTTOV v11 known bugs and code updates:

Please report any bugs you find in RTTOV v11 using the NWP SAF Feedback Form. Note that the official release package for the latest version doesn't contain the bug fixes or updates listed here under the latest version so you should apply any fixes provided below. Bugs in earlier versions have been fixed in the latest version.

The following table lists known bugs in RTTOV v11.3.

Date Type/Status Description
02/02/2016 Bug - fixed

There is a bug which prevents the GUI running with matplotlib v1.5. This can be fixed by downloading this file and replacing the existing version in gui/rview/

21/01/2016 Bug - fixed

The Python/C++ wrapper will seg fault when initialising the BRDF atlas for use with multiple instruments. There is no problem if initialising the atlas for a specific instrument.

A code fix is available: download this file to the src/wrapper/ directory and recompile RTTOV.

30/09/2013 Bug - outstanding

There is a problem with the aggregate particle shape parameterisation (profile%ish = 2) when used with any of the four parameterisations for ice particle effective diameter (profile%idg = 1-4) or when the effective diameter is input explicitly in profile%icede. This results in erroneous simulations in the range 10-12 microns. This does not affect the hexagonal particle shape (profile%ish = 1) or the new Baran ice particle scheme. More details are available in this forum post which illustrates the impact on simulated BTs.

Users are recommended to use the Baran ice particle scheme for cloudy IR simulations. RTTOV v11.2 introduced an updated parameterisation which is selected by setting profile%ish = 4. It is planned to retire the older ice parameterisations based on effective diameter in RTTOV v12.


The following table lists known bugs in RTTOV v11.2 which have been fixed in RTTOV v11.3. Bugs listed above may also affect v11.2.

Date Type/Status Description
29/09/2015 Bug - fixed Some bugs were discovered in the coefficient generation code related to the treatment of gas units. In addition, inconsistencies were discovered in the treatment of input gas units between IR and MW instruments. These issues are described in more detail in this document which also gives an idea of the potential impact on simulated brightness temperatures. The bugs were fixed in RTTOV v11.3 and all v7/v8 predictor coefficient files were regenerated.
22/09/2015 Bug - fixed

There is a bug in the calculated surface emissivity AD and K output in simulations where the calcemis(:) input array contains both TRUE and FALSE values. In this case this emissivity AD and K will be incorrect for surface sensitive channels for which calcemis(:) was set to FALSE. There is no problem if every element of calcemis(:) is TRUE or every element is FALSE.

A code fix is available: download this tar file, extract in the src/main/ directory and recompile RTTOV.

22/09/2015 Bug - fixed

There is a bug in the land surface BRDF atlas which causes all BRDF values to be artificially capped at 1/pi.

A code fix is available: download mod_brdf_atlas.F90, replace the copy in the src/brdf_atlas/ directory and recompile RTTOV.

23/04/2015 Bug - fixed

There is a minor bug which can affect cases with profile interpolation when apply_reg_limits is TRUE and the surface lies above the bottom of the input profile: it is possible that the regression limits are not applied to the coefficient level(s) just below the surface. These levels can contribute to the interpolated optical depths, and this may impact the TOA radiance. Whether this bug has any effect on radiances depends on the relative positions of the coefficient and user levels with respect to the surface pressure. To have an effect the input profile must also fall outside the regression limits in the near-surface levels. For cases where this does have an impact on TOA radiances, the size of the impact depends on how far beyond the regression limits the input profile variables are. However, the impact on BT would typically not be more than a few hundredths of a Kelvin for surface-sensitive channels. The coefficient regression limits can be seen in these tables.

A code fix is available which also includes the bug fix dated 13/10/2014 below: download this gzipped tar file, extract in the src/main/ directory and recompile RTTOV.

15/04/2015 Bug - fixed

In the case when interpolation modes 4 or 5 are used and the top level of the input profile is low enough in the atmosphere that significant absorption occurs above this level for a given channel, the simulated radiance for this channel may exhibit very large errors (larger than for the other interpolation modes - see below for more details). If the input pressure profile fully spans the weighting functions of the channels being simulated this bug has no significant impact. A code fix is available: download this gzipped tar file, extract in the src/main/ directory and recompile RTTOV.

Note that even when the top pressure level is sufficiently high the updated code can result in small differences in simulated radiances and in the TL/AD/K output for some channels. The magnitude of the differences depends on the amount of absorption occurring above the top of the input profile, but where the amount of absorption above the top level is very small, the magnitudes are negligible compared to other errors. For example, if the top level is close to but not exactly 0.005hPa (the top level used in the optical depth regression) the differences in forward model radiances are of the order of 0.001% or less.

Some further explanation: in general the pressure levels of the input atmospheric profile should cover the full range of the atmosphere to which the channels being simulated are sensitive. In other words, the top of the input profile should lie above the channel weighting functions and the bottom of the profile should be at or below the surface pressure. If the top of the input profile is too low (so that there is significant absorption above the top level) then when opts%interpolation%spacetop is TRUE (the default) RTTOV will mitigate the resulting error by setting the optical depth of the top level to zero. This effectively stretches the top layer of the input profile to encompass the whole atmosphere between the second level and the space boundary, and both emission and absorption are taken into account for this layer in the integration of the RT equation (albeit without accurate information about the temperature of this layer). For input profiles with a sufficiently high top level this action of "spacetop" has a negligible impact on the simulations. If the spacetop option is FALSE (not generally recommended) then only absorption is accounted for above the top of the input profile (no emission). Naturally it is strongly recommended to supply an adequate input profile which fully spans the weighting functions of all simulated channels rather than to rely on the mitigating action of spacetop.

23/10/2014 Bug - fixed

There is a bug in the TL model due to an uninitialised array which may cause a run-time error in cases where opts%rt_ir%addclouds is TRUE and profiles(i)%cfrac(:) = 0. for any input profile i (i.e. running cloudy simulations with a clear profile). A code fix is available: download rttov_cldstr_tl.F90 to the src/main/ directory and recompile RTTOV.

13/10/2014 Bug - fixed

If opts%interpolation%reg_limit_extrap is TRUE and opts%config%do_checkinput is TRUE and the top-most interpolated value in one of the temperature or trace gas profiles lies below the minimum regression limit, it is possible that the internal rttov_checkinput subroutine will spuriously report a fatal error due to the extrapolated values. To avoid the possibility of this occurring you can set opts%config%do_checkinput to FALSE. This turns off RTTOV's internal checking for unphysical profile values and values outside the regression limits (NB by doing this the extrapolated values outside the regression limits will be reset to the limits: it will not result in unphysical extrapolated profile values being used). If you want to guard against unphysical profile values you can check your input profiles before calling RTTOV using the rttov_user_profile_checkinput subroutine (see user guide Annex N) which provides an alternative to the internal profile checking.

In addition there is a bug which results in errors in the top level of the temperature, water vapour and ozone profile and PC score Jacobians when running the PC-RTTOV K model with opts%interpolation%reg_limit_extrap set to TRUE.

A code fix is available which also includes the bug fix dated 23/04/2015 above: download this gzipped tar file, extract in the src/main/ directory and recompile RTTOV.


The following table lists known bugs in RTTOV v11.1 which have been fixed in later versions. Bugs listed above may also affect v11.1.

Date Type/Status Description
17/02/2014 Bug - fix available

There is a bug in the rttov_checkinput.F90 subroutine which means that RTTOV is not throwing fatal errors in the case where an element of an input temperature, water vapour or trace gas profiles exceeds the hard profile limits: the simulation instead proceeds with unphysical values and does not report the error. To fix the bug download this version of src/main/rttov_checkinput.F90 and recompile.

30/01/2014 Bug - fix available

When calling rttov_read_coefs to read HDF5-formatted coefficients the code may fail because the HDF5 library has not been initialised. This can occur in user-created software which calls RTTOV. To fix this download these files: src/main/rttov_hdf_mod.F90 (place in src/hdf/) and src/main/rttov_read_coefs.F90 (place in src/coef_io/) and recompile RTTOV.

16/01/2014 Bug - fix available

Fix rarely-occurring bug which can result in small errors in simulated radiances, reflectances and BTs (and also in TL/AD/K output) for solar-affected channels. Occurs under the following conditions:

  • calling RTTOV via parallel interface with multiple threads
  • passing multiple profiles into RTTOV in a single call
  • solar radiation enabled in simulations
  • profile dates contain a mixture of leap years and non-leap years.

Whether or not any errors occur depends on the order in which the threads are executed so the bug manifests intermittently. This is unlikely to affect users as it is rare for profiles pertaining to different years to be passed into RTTOV in a single call. To fix the bug download this version of src/main/rttov_calc_solar_spec_esd.F90 and recompile. This has no impact on the test reference data in the v11.1 package.

18/11/2013 Bug - fix available

For NLTE simulations the bias correction was applied to the rad%clear and rad%total direct model radiances. For consistency it should also have been applied to the rad%cloudy radiance which represents the 100% overcast cloudy radiance for the simple cloud scheme. This omission means that when the simple cloud scheme is being used (i.e. profiles%cfraction > 0), rad%cloudy, rad_tl%cloudy, rad_tl%total and rad_tl%bt are in error, as are the values of profiles_ad/k%cfraction. The size of the errors increase as profiles%cfraction increases. Note that the NLTE bias correction is applied independently of the cloud scheme and is added to the TOA radiances after the effects of cloud have been calculated. This bug is not expected to cause problems for users since cloud effects are unlikely to be considered in the high-peaking NLTE-affected channels, but it can be fixed by downloading this tarball rttov_nlte_bias_correction.tar.gz, extracting it in src/main/, and recompiling. This does not affect the test reference data contained in the official release.

15/11/2013 Bug - fix available

The TL radiances and surface emissivities and the AD/K 10m wind u and v components and wind fetch may be in error for PC calculations. This affects cases when either the wind u or v component is exactly zero in which case the AD/K component corresponding to the non-zero u/v component has the incorrect sign. To fix the bug download this tarball rttov_calcemis_ir.tar.gz, extract in src/main/, and recompile. This does not affect the test reference data contained in the official release.

15/11/2013 Bug - fix available

The TL radiances and surface reflectance and the AD/K 10m wind u and v components and wind fetch may be in error for solar simulations. This affects cases when either the wind u or v component is exactly zero (in which case the AD/K component corresponding to the non-zero u/v component has the incorrect sign) and cases where the sun zenith angle is large, the satellite zenith angle is small, the relative azimuth is small and the wind speed is large (exact specifications of "small" and "large" are difficult because multiple factors interact). To fix the bug download this tarball rttov_refsun.tar.gz, extract in src/main/, and recompile. This does not affect the test reference data contained in the official release.

28/10/2013 Bug - fix available

Solar simulations may be in error when the profile month is set to January. This bug affects the calculation of the Earth-sun distance which is used to modify the top-of-atmosphere solar irradiance according to the time of year. To fix the bug download this version of src/main/rttov_calc_solar_spec_esd.F90 and recompile. This fix is included in the optional update listed above.

For visible/near-IR channels (i.e. wavelengths less than 3 microns for which RTTOV ignores thermal emission) this bug has no impact on simulated reflectances (radiance%refl_clear, radiance%refl). VIS/NIR radiances for profiles where the date is set to January may be in error (larger or smaller) by at most a factor of 1.071 which is ratio of the squared maximum/minimum Earth-sun distances. For channels with both a thermal and solar contribution the simulated radiances, reflectances and BTs may all be in error. The size of the error in radiances will never exceed that for VIS/NIR channels and will decrease as wavelength increases and thermal emission dominates the solar contribution. By default RTTOV initialises the profile date to 1/1/1950: for this and any earlier date (and for an invalid date) the Earth-sun distance is taken as 1 AU and the bug has no impact. This has no impact on the test reference data in the v11.1 package.

28/10/2013 Bug - fix available

Division by zero is possible with solar simulations when 10m u wind speed is exactly zero and 10m v wind speed is negative. This fix is included in the optional update listed above and also in the bug fix listed above dated 15/11/2013.

17/10/2013 Bug - fix available

Array bounds errors can occur under certain conditions when reading PC coefficients. To fix the bug download these versions of src/coef_io/rttov_read_ascii_pccoef.F90 and src/coef_io/rttov_read_binary_pccoef.F90 and recompile. This fix is included in the optional update listed above.

03/10/2013 Bug - fix available

Running an NLTE simulation for IASI channel 7021, AIRS channel 2122 and CrIS channel 1245 (i.e. the channels immediately following the block of NLTE-affected channels for each instrument) causes an array bounds error. To fix the bug download this version of src/coef_io/rttov_init_coef.F90 and recompile. This fix is included in the optional update listed above.

03/10/2013 Bug - fix available

The Windsat coefficient file sensor ID was incorrectly set to "mw" instead of "po" resulting in erroneous values for simulated radiances. The MW coefficient file tarball available on the RTTOV v11 coefficients page contains the corrected file. The new file results in different output for the test_fwd.sh and test_rttov11.sh scripts: updated test reference data is available here which should be unzipped/untarred within the rttov_test/ directory.

This bug results in spurious radiances and BTs in Windsat channels 5, 6, 10, 11, 15 and 16 (i.e. those with polarisation ID 5 and 6 as defined in the coefficient file which correspond to the 3rd and 4th Stokes parameters).

04/06/2013 Typo

In user guide Annex A the optional logical switch arguments to rttov_conv_coef.exe for HDF5 coefficient conversion (i.e. --hdf5-reals32, --all-in-one and --compress) should be supplied on their own, rather than with the additional " = flag" as stated in the user guide. Also note that there should be no "=" between the option and the input argument. For example:

$ ./rttov_conv_coef.exe --coef-in rtcoef_noaa_18_avhrr.dat --format-out HDF5 --hdf5-reals32 --coef-out rtcoef_noaa_18_avhrr.h5