NCEPLIBS-bufr
12.0.1
irev.F
Go to the documentation of this file.
1
C> @file
2
C> @brief Return a copy of an input integer word with
3
C> the bytes reversed.
4
C>
5
C> @author Woollen @date 1994-01-06
6
7
C> This function will, when the local machine is "little-endian" (i.e.,
8
C> when it uses a right to left scheme for numbering the bytes
9
C> within a machine word), return a copy of an input integer word with
10
C> the bytes reversed. Although, by definition (within WMO Manual
11
C> 306), a BUFR message is a stream of individual octets (i.e., bytes)
12
C> that is independent of any particular machine representation, the
13
C> BUFR archive library software often needs to interpret all or parts
14
C> of two or more adjacent bytes in order to construct an integer
15
C> word. By default, the software uses the "big-endian" (left to
16
C> right) scheme for numbering bytes. By reversing the bytes, irev()
17
C> allows the integer word to be properly read or written (depending
18
C> on whether input or output operations, respectively, are being
19
C> performed) on "little-endian" machines. If the local machine is
20
C> "big-endian", irev() simply returns a copy of the same integer that was
21
C> input.
22
C>
23
C> @param[in] N - integer: integer word with bytes ordered according
24
C> to the "big-endian" numbering scheme
25
C>
26
C> @return - integer: integer word with bytes ordered according to
27
C> the numbering scheme of the local machine (either
28
C> "big-endian" or "little-endian"; if "big-endian" then
29
C> this is just a direct copy of N).
30
C>
31
C> @author Woollen @date 1994-01-06
32
FUNCTION
irev
(N)
33
34
COMMON
/hrdwrd/ nbytw,nbitw,iord(8)
35
36
CHARACTER*8
cint,dint
37
equivalence(cint,int)
38
equivalence(dint,jnt)
39
40
C----------------------------------------------------------------------
41
C----------------------------------------------------------------------
42
43
#ifdef BIG_ENDIAN
44
irev
= n
45
#else
46
int = n
47
DO
i=1,nbytw
48
dint(i:i) = cint(iord(i):iord(i))
49
ENDDO
50
irev
= jnt
51
#endif
52
53
RETURN
54
END
irev
function irev(N)
This function will, when the local machine is "little-endian" (i.e., when it uses a right to left sch...
Definition:
irev.F:33
src
irev.F
Generated by
1.9.1