#87 closed defect (duplicate)
ROPP test IT_1dvar_01 failure
Reported by: | Dave Offiler | Owned by: | marq |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | ropp_1dvar | Version: | 0.8 |
Keywords: | 1Dvar test | Cc: | michael.rennie@…, dave.offiler@… |
Description
Program ropp_1dvar_refrac_ec runs but the IDL test of output vs input fails as exceeding the allowed mean difference thresholds: temp : 0.0% - ok humidity : 99.9% pressure : 9999100.0%
Change history (6)
comment:1 by , 18 years ago
Status: | new → assigned |
---|
comment:2 by , 18 years ago
1) Humidity issue corrected by adding:
call ropp_fm_set_units(res_data)
after the equivalent calls for obs_data and bg_data in ropp_1dvar_refrac_ec.f90.
This ensures that the internal units for all variables in the ROdata structure (and not just humidity) are consistent. This has been tested in the IDL and corrects the initial problem with the humidity test.
This change was swept up in changeset [963].
2) The pressure issue is a red-herring for ECMWF model levels as the 1dvar should not be updating the state vector for pressure, should be fixed (implcitly, gepot height changes with the solution temperature/humidity). The IDL test ought to have been for height, not pressure. In practice, the test would still fail, as the res_data structure is not being populated with heights either. Mike is developing a suitable routine to be called after the 1dvar state vector is copied to res_data. The b/g pressures also just need copying into the results structure (for the EC version only).
comment:3 by , 18 years ago
Cc: | added |
---|---|
Owner: | changed from | to
Status: | assigned → new |
The original changeset 963 has been removed as it has Copyright issues.
Apart from that:
- the fix is not correct; as I pointed out recently (when I was in Exeter - I believe, at least), the underlying problem is that unit information is copied by the deep copy method responsible for the initial assignment of the background state vector.
- The pressure is not a red herring as the result data file should contain both pressure and geopotential heights. They are currently not calculated (which is why some comments in the source code say this needs to be done). there is no need to develop new routines, as all of them are already available.
I'll be working on a proper fix ASAP.
comment:4 by , 18 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
comment:5 by , 18 years ago
Version: | → 0.8 |
---|
1) Problem with humidity traced to output netCDF file containing humidity values scaled exactly by 1000 wrt humidity values in input netCDF file. Since input file is (correctly) in units g/kg, it appears that the output is in kg/kg. The 1dvar code works internally in kg/kg, so the conversion to g/kg is not occuring on writing the output file.
Carlo had a quick look, and suggested altering the units specified in ropp_fm/common/ropp_fm_roprof2state.f90 from kg/kg to g/kg. However, this would cause humidity to be in g/kg after input of the b/g. Possibly the companion routine ropp_fm_state2prof() is a better bet.
2) Pressure values in the output file are -999999, ie missing data values. GpHt values (not tested in the IDL routine) are also missing. This is not surprising as it turns out that routine ropp_1dvar_diagnostics() has a block (section 2.1) stating that the pressure & geopotht are to be calculated there, but as yet there is no code in place to do so. Do suitable routines already exist within ROPP to do these calculations?