RadSim v2 Code Updates and Known Issues

RadSim v2 Code Updates

Updates and bug fixes to the Radiance Simulator v2 will be published here.

Known bugs and issues

Please report any bugs you find in RadSim using the NWP SAF Feedback Form. The official release package doesn’t contain the bug fixes or updates listed here so you should apply any fixes provided below. Bugs in earlier versions have been fixed in later versions.

DateType/StatusDescription
29/01/2020Bug - fixedAffects: interpolation when running RadSim using model data with a rotated pole and an observation datafile when the model longitudes include negative values. Affects all RadSim v2.x versions.

Issue: the interpolation does not account for negative longitudes in the model grid with rotated poles with the result that RTTOV is run with incorrect profile data and typically reports run-time failures.

This bug has been fixed: download this updated source file to src/code/main/ and recompile RadSim. Note this update fixes the bug below dated 03/01/2020.
03/01/2020Bug - fixedAffects: nearest neighbour interpolation used when ingesting DWD ICON fields with an observation datafile (v2.2 only).

Issue: for observations with longitudes close to 0/360 degrees, the interpolation may not always yield the closest grid point to the observation location due to the code not checking the minimal longitudinal distance between points.

This bug has been fixed: download the update for the bug above dated 29/01/2020.

DateType/StatusDescription
01/08/2018Bug - fixedAffects: nprofs_per_call configuration namelist variable (v2.1 only).

Issue: this variable is not recognised in the configuration namelist so cannot be modified.

This bug has been fixed: download this updated source file to src/code/main/ and recompile RadSim.

DateType/StatusDescription
31/05/2018Bugs - fixedAffects:
a) IR cloud simulations using ECMWF GRIB data or NWP SAF profile datasets.
b) IR cloud simulations using UM data.
c) all simulations where the first profile being simulated lies outside the domain of the model data.

Issue:
a) The ECMWF cloud liquid and ice concentrations are grid box average values. For IR cloud simulations RTTOV requires the cloud concentration of the cloud fraction of the layer. This means the model concentrations should be divided by the cloud fraction before being passed to RTTOV. This was not being done meaning that cloud concentrations were usually too small.

b) The UM cloud concentrations are also grid box average values, and the UM provides individual cloud fractions for liquid and ice cloud in addition to the total (area) cloud fraction. Previously RadSim would divide the liquid and ice concentrations by the liquid and ice cloud fractions respectively if present, otherwise it would pass the cloud concentrations directly to RTTOV (which is similar to the situation above for ECMWF data). RTTOV only allows for a single cloud fraction per layer and all cloud present in the layer is assumed to be well-mixed within this fraction. Therefore it is expected that in practice the liquid and ice cloud concentrations should both be divided by the area cloud fraction instead of the individual cloud fractions. This affects only profiles with mixed phase cloud layers, and it can have a substantial impact on simulated radiances. The updated code replicates the current behaviour by using the separate liquid and ice cloud fractions if they are present, but if they are absent the area cloud fraction is used instead. It is recommended not to include separate liquid and ice cloud fraction fields in UM data when running RadSim.

c) If the first profile being simulated lies outside the domain of the model data, all simulated output may be wrong.

Fix: these bugs and all bugs listed below can be fixed by downloading this tar ball, extracting it in src/code/main/ and recompiling RadSim.
11/05/2018All bug fixes to dateYou can apply all bug fixes/updates listed below by downloading this tar ball, extracting it in src/code/main/ and recompiling RadSim.
11/05/2018Bug - fixedAffects: ingest of UM fieldsfiles

Issue: array bounds violation related to 10m wind fields.

This bug has been fixed: download this updated source file to src/code/main/ and recompile RadSim.
06/11/2017Bug - fixedAffects: all simulations using an observation data file with very small negative longitudes (magnitude of order 1E-5, or equivalently longitudes just less than 360 degrees).

Issue: the code which interpolates the longitude incorrectly generates an out-of-bounds array index for longitudes very slightly less than 0 (or 360) degrees due to single precision rounding which results in no simulated data being produced for those profiles.

This bug has been fixed: download this updated source file to src/code/main/ and recompile RadSim.
30/08/2017Bug - fixedAffects: MW scattering simulations (run_scatt true) with UM PP files

Issue: the rain field is omitted from simulations if the use_totalice option is true.

This bug has been fixed: download this updated source file to src/code/main/ and recompile RadSim.
24/08/2017Bug - fixedAffects: potentially all simulations

Issue: some model data can include negative values for gas concentrations, typically in the top-most level, which cause failures if passed into RTTOV. These are now clipped to a suitable small positive value which avoids such failures and has negligible impact on simulated radiances.

These bugs have been fixed: download this updated source file to src/code/main/ and recompile RadSim. NB This update includes the fix below dated 08/08/2017 affecting the same source file (radsim_model_to_rttov.f90).
11/08/2017Bug - fixedAffects: Jacobian calculations which are processed with multiple calls to rttov_k (i.e. in multiple batches)

Issue: The RTTOV Jacobian variables are not initialised within the batch loop which means that Jacobians for subsequent batches are accumulated together in the output.

This bug has been fixed: download this updated source file to src/code/main/ and recompile RadSim.

NB This update also modifies the behaviour related to the emissivity atlases: previously if the emissivity atlas did not return valid emissivities for a given profile, that profile was omitted from the simulations. Now those profiles are processed and the fixed emissivities are used as in the case where use_emiss_atlas is set to false.
09/08/2017Bug - fixedAffects: MW scattering simulations (run_scatt true)

Issue: An array bounds error which causes run-time failures with some compilers. Does not affect output if RadSim runs without failure.

This bug has been fixed: download this updated source file to src/code/main/ and recompile RadSim.
08/08/2017Bugs - fixedAffects:
1. IR scattering simulations (ir_addclouds true)
2. All MW simulations

Issues:
1 (a) The units for cloud liquid and ice water concentration are wrong for IR scattering simulations (values are converted to g/m^3 for input to RTTOV, but RTTOV is configured to expect units of kg/kg). Profiles are now passed to RTTOV in kg/kg.
1 (b) When RadSim calls RTTOV multiple times (i.e. multiple batches) for IR scattering simulations the cloud liquid water data from previous profiles is left in the profiles structure due to a missing re-initialisation.

2. The RTTOV surface salinity profile variable is set to 0%o. This has been updated to a fixed value of 35%o which is more representative for ocean water. This affects the sea surface emissivity calculated by RTTOV for MW simulations.

These bugs have been fixed: download this updated source file to src/code/main/ and recompile RadSim. NB This update includes the fix above dated 24/08/2017.
08/08/2017Bug - fixedAffects: MW scattering simulations (run_scatt true)

Issue: The RTTOV options which are applicable to RTTOV-SCATT are not set and so always take their default values in RTTOV-SCATT simulations. This includes the user configurable options fastem_version (6 by default) and verbose (true by default, the setting in RadSim depends on the output_mode variable), and the RadSim hard-coded option apply_reg_limits (false by default, set to true in RadSim).

This bug has been fixed: download this updated source file to src/code/main/ and recompile RadSim.
08/08/2017Bugs - fixedAffects:
1. All scattering simulations using ECMWF GRIB data
2. All simulations using ECMWF GRIB data where profiles are interpolated to observation locations

Issues:
1. Some cloud model fields (cloud fraction, rain and snow) are not ingested correctly causing scattering simulations to fail.
2. The sea-ice missing data values are not handled correctly in the profile interpolation causing some profiles to be given the incorrect surface type.

These bugs have been fixed: download the following source files to src/code/main/ and recompile RadSim:
radsim_read_grib.f90
radsim_grib_paramid_name.f90
radsim_interp.f90
NB This update also enables the optional inclusion of ozone profile data (param ID 203) with ECMWF GRIB files for IR simulations.
07/08/2017Bug - fixedAffects: NWP SAF 60L dataset

Issue: The dataset contains some zero water vapour values which cause failures in RTTOV if they are not reset to a suitable minimum. The reduced 80 profile set contains "missing data" values for latitude, longitude, elevation, sea-ice and the land/sea mask for the min/max/mean profiles (profiles 78-80) which should be reset to nominal values.

This bug has been fixed: download this updated source file to src/code/main/ and recompile RadSim.
NB This update also enables the optional inclusion of ozone profile data with this dataset.