Opened 13 years ago

Closed 13 years ago

#247 closed defect (fixed)

Covariance matrix check

Reported by: Ian Culverwell Owned by: Ian Culverwell
Priority: normal Milestone: 6.0
Component: ropp_1dvar Version: 4.1
Keywords: Covariance matrix Cc:

Description (last modified by Ian Culverwell)

At present there is no check that an ingested covariance matrix has the right size for the problem in hand. Because of the way covariance matrices are stored in ROPP (in a "triangular" format), a matrix appropriate to a bigger problem can be read in OK, without crashing and with 1s in the right place (think about it). So it would be subtly wrong - the worst kind of error.

At least one user has fallen over with this. So we should put a check in to stop it happening.

Attachments (1)

Problem_Report_60.doc (47.0 KB ) - added by Ian Culverwell 13 years ago.

Download all attachments as: .zip

Change history (5)

comment:1 by Ian Culverwell, 13 years ago

Owner: set to Ian Culverwell
Status: newassigned

comment:2 by Ian Culverwell, 13 years ago

Description: modified (diff)

by Ian Culverwell, 13 years ago

Attachment: Problem_Report_60.doc added

comment:3 by Ian Culverwell, 13 years ago

The early part of the attached report discusses the situation.

The following solution has been applied to the ROPP5.1 base code.

For observations

WARNING if no. obs < no of elements in the corr file

ERROR if no. obs > no of elements in the corr file

(It is just about conceivable that a user would want to exploit the ability to use bigger obs covs files than are strictly appropriate for the obs vector. We do in test_1dvar_MO.sh, for example. But at least users now get a warning if they do.)

For background

ERROR if no. obs .NE. no of elements in the corr file

(Because the state vector is the concatenation of T, q and p*, it's really not sensible to use a corr file bigger than the background vector. In other words, we can't play the sort of games that we can for obs, as described above and in the report.)

This passes the make tests in ropp_1dvar, and has therefore been committed to the ROPP5.1 base code.

comment:4 by Ian Culverwell, 13 years ago

Milestone: 5.16.0
Resolution: fixed
Status: assignedclosed

Seems OK, and useful at least once. Closing.

Note: See TracTickets for help on using tickets.