Long180Exclusion - ACCESS-NRI/accessdev-Trac-archive GitHub Wiki
In OPS/src/code/MetDB_Bufr_Retrieval/lib/source/wantobs.f90
The area is checked for observations using
IF (AREA(3) <= AREA(5)) THEN
! Ob too far W Ob too far E
IF (OBLON < AREA(3) .OR. OBLON > AREA(5)) THEN
WANTOB(IOB) = .FALSE.
END IF
ELSE
! User's box crosses 180W
! Ob too far W Ob too far E
IF (OBLON < AREA(3) .AND. OBLON > AREA(5)) THEN
WANTOB(IOB) = .FALSE.
END IF
END IF
In the case where AREA(5) = 180.0, in the first part of the IF clause, some observations are rejected.
In the ops, the area limit AREA(5) has a floating-point value of
180.0000000000000000000
Which in binary is represented as 0100000001100110100000000000000000000000000000000000000000000000
We are looking at JMAWINDS bufr files, which have many observations around ±180°. BUFR stores observations with 32-bit precision. The OPS works with REAL values of 64-bit precision. The JMAWINDS 2015061506 bufr file contains 32 values with Longitude=180°. They are stored as following:
Accept/Reject | 32-bit precision | Binary representation in OPS |
---|---|---|
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110011111111111111111111111111111111111111111111110 |
Acc | 180.00000 | 0100000001100110011111111111111111111111111111111111111111111110 |
Acc | 180.00000 | 0100000001100110011111111111111111111111111111111111111111111110 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
Rej | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000010 |
Rej | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000010 |
Rej | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000010 |
Rej | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000010 |
Rej | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000010 |
Rej | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000010 |
Rej | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000010 |
Rej | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000010 |
Rej | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000010 |
Rej | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000010 |
Acc | 180.00000 | 0100000001100110100000000000000000000000000000000000000000000000 |
AREA(5) | for ref. | 0100000001100110100000000000000000000000000000000000000000000000 |
The 64-bit precision floating point representation of the rejected values is 180.0000000000000568434.