Frequently Asked Questions
- 1 Do I need to bother to upgrade my version of RTTOV v11.3 to RTTOV v12?
- 2 Can I compile the code in single precision to save space?
- 3 I don’t have an O3 or CO2, CO, N2O, CH4 or SO2 profile to include in the state vector. What can I do?
- 4 My profile top is below the top level required by RTTOV (usually 0.005hPa), how do I best extrapolate it?
- 5 Why does compilation with the HDF5 library fail?
- 6 Why do some of the tests fail when I compile with certain compilers (e.g. ifort)?
Do I need to bother to upgrade my version of RTTOV v11.3 to RTTOV v12?
If you want any of the following the answer is yes (if you have an earlier version of RTTOV there are more reasons):
- New Discrete Ordinates Method multiple-scattering simulations for visible/IR sensors
- Updated ice cloud particle optical properties for visible/IR scattering simulations
- Option to supply cloud and aerosol profiles in units of kg/kg for visible/IR scattering simulations
- Capability to perform simulations with variable SO2 profiles
- Improved non-local thermodynamic equilibrium (NLTE) correction
- Capability to perform Principal Components calculations which include the NLTE correction
- New MW sea-surface emissivity model TESSEM2 intended for use with MetopSG ICI
- New physically-based IR sea-surface emissivity model
- Updated MW land surface emissivity atlases (TELSEM2 atlas and interpolator and the CNRM MW atlas)
- New CAMEL IR land surface emissivity atlas
- Improved interface to land surface emissivity atlases (simultaneously use data from any/all atlases for all months and instruments)
- Python/C++ wrapper now provides the capability to run direct and K model simulations for all RTTOV clear-sky and scattering options (visible/IR/MW)
Can I compile the code in single precision to save space?
The RTTOV real, integer and logical “kind” values are defined in the src/main/parkind1.F90 module. However editing this module is not recommended (and hence not supported) and in particular running the AD/K models in single precision can result in significant errors in the output.
I don’t have an O3 or CO2, CO, N2O, CH4 or SO2 profile to include in the state vector. What can I do?
You can use a coefficient file which includes the relevant gas or gases in the mixed gases. If you use a a coefficient file which allows the relevant gases to vary you do not have to provide profiles of these trace gases: if omitted RTTOV will use the reference (background) profile from the coefficient file. You must take care to set the logical flags for example opts%rt_ir%co_data etc to false if you don’t have a CO profile, otherwise RTTOV assumes you are providing a valid profile and will fail if you do not.
My profile top is below the top level required by RTTOV (usually 0.005hPa), how do I best extrapolate it?
The easiest way is to use RTTOV’s internal interpolator which interpolates the input profile onto the coefficient levels for the optical depth calculation. By default profiles are extrapolated with constant value at the top of the atmosphere (the extrapolated values are clipped to the min/max regression limits so that extrapolated values never exceed the limits). Alternatively you can set the opts%interpolation%reg_limit_extrap option to extrapolate profiles at the top of the atmosphere by maintaining the relative position between the relevant training profile limits to the top coefficient level. See the user guide for more details on this.
If you don’t want to use the internal interpolation and instead supply a profile on the coefficient levels then for gas concentrations you can use the reference profiles for levels above the top input level. The reference profiles are available on the coefficients download page. You can also access them via the coef structure e.g. for water vapour coefs%coef%ref_prfl_mr(:,coefs%coef%fmv_gas_pos(gas_id_watervapour)) where gas_id_watervapour is available from the rttov_const module. For temperature you can extrapolate from the top level of the input profile using a representative lapse rate from standard atmospheres.
Why does compilation with the HDF5 library fail?
You must first edit the file build/Makefile.local to point to the location of your HDF5 installation and to include the relevant compiler and linker flags. You must also regenerate the RTTOV Makefiles to include the HDF5 code: this is done automatically when you run the rttov_compile.sh script.
Why do some of the tests fail when I compile with certain compilers (e.g. ifort)?
You should increase the stack size before running the test scripts, for example by executing:
$ ulimit -s unlimited
For PC-RTTOV tests running the K model with NTHREADS > 1, you may need to increase the OpenMP stack size as well:
$ export OMP_STACKSIZE=1000M