formats.tex 5.91 KB
Newer Older
1
2
Every input and output file is a collection of 2D or 3D variables
over an unlimited number of time steps.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
3

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
\section{GRIB edition 1}

\htmlref{GRIB}{GRIB} (GRIdded Binary) is a standard format designed by the
World Meteorological Organization (WMO) to support the efficient 
transmission and storage of gridded meteorological data.

A GRIB record consists of a series of header sections, followed by
a bitstream of packed data representing one horizontal grid of data
values. The header sections are intended to fully describe the data
included in the bitstream, specifying information such as the
parameter, units, and precision of the data, the grid system and
level type on which the data is provided, and the date and time
for which the data are valid.

Non-numeric descriptors are enumerated in tables, such that a 1-byte
code in a header section refers to a unique description.
The WMO provides a standard set of enumerated parameter names and
level types, but the standard also allows for the definition
of locally used parameters and geometries. Any activity
that generates and distributes GRIB records must also make
their locally defined GRIB tables available to users.

\CDI does not support the full GRIB standard. The following
data representation and level types are implemented:

\begin{itemize}
\item Latitude/Longitude  Grid
\item Gaussian Latitude/Longitude Grid
\item Spherical Harmonic Coefficients
\item Icosahedral-hexagonal GME Grid
\end{itemize}

\begin{itemize}
\item Surface level
\item Isobaric level
\item Height above ground
\item Hybrid level     
%\item Layer between two hybrid levels  
\item Depth below land surface     
%\item Layer between two depths below land surface     
\item Depth below sea level   
\end{itemize}
     
%0  	Latitude/Longitude  Grid
%4 	Gaussian Latitude/Longitude Grid
%50 	Spherical Harmonic Coefficients
%192    Icosahedral-hexagonal GME Grid
%
%1       Surface level
%100     Isobaric level
%103     fixed height level
%105     Height above ground
%109     Hybrid level     
%110     Layer between two hybrid levels  
%111     Depth below land surface     
%112     Layer between two depths below land surface     
%160     Depth below sea level        
Uwe Schulzweida's avatar
Uwe Schulzweida committed
61

62

Uwe Schulzweida's avatar
Uwe Schulzweida committed
63
\section{NetCDF}
Uwe Schulzweida's avatar
Uwe Schulzweida committed
64

Uwe Schulzweida's avatar
Uwe Schulzweida committed
65
\htmlref{NetCDF}{NetCDF} (Network Common Data Form) is an interface for array-oriented data
66
67
68
69
access and a library that provides an implementation of the interface.
The netCDF library also defines a machine-independent format for 
representing scientific data. Together, the interface, library, and 
format support the creation, access, and sharing of scientific data.
70

71
\CDI supports only 2D, 3D and 4D arrays and the attributes should follow the
72
73
\href{http://ftp.unidata.ucar.edu/software/netcdf/docs/conventions.html}
     {GDT, COARDS or CF Conventions}.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
74
75
76
NetCDF is an external library and not part of \CDI. To use netCDF with
\CDI the netCDF library must be installed before the configuration
of the \CDI library (see \htmlref{Build}{build}).
77

78
%\subsection{ncdap}
79
80


Uwe Schulzweida's avatar
Uwe Schulzweida committed
81
82
\section{SERVICE}

83
84
85
86
87
88
89
90
SERVICE is the binary exchange format of the atmospheric general
circulation model \htmlref{ECHAM}{ECHAM}.
It has a header section with 8 integer values followed by the data section.
The header and the data section have the standard Fortran blocking
for binary data records.
A SERVICE record can have an accuracy of 4 or 8 bytes and 
the byteorder can be little or big endian.
The following Fortran code example can be used to read a 
Uwe Schulzweida's avatar
Uwe Schulzweida committed
91
SERVICE record with an accuracy of 4 bytes:
92
93

\begin{lstlisting}[backgroundcolor=\color{zebg}, basicstyle=\footnotesize]
94
   INTEGER*4 icode,ilevel,idate,itime,nlon,nlat,idispo1,idispo2
95
   REAL*4 field(mlon,mlat)
96
97
      ...
   READ(unit) icode,ilevel,idate,itime,nlon,nlat,idispo1,idispo2
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
   READ(unit) ((field(ilon,ilat), ilon=1,nlon), ilat=1,nlat)
\end{lstlisting}

The constants {\tt mlon} and {\tt mlat} must be greater or equal than {\tt nlon} and {\tt nlat}.
The meaning of the variables are:

\vspace*{3mm}
\hspace*{8mm}\begin{minipage}{10cm}
\begin{deflist}{{\tt idispo2 \ \ }}
\item[{\tt icode}]    The code number
\item[{\tt ilevel}]   The level
\item[{\tt idate}]    The date as YYYYMMDD
\item[{\tt itime}]    The time as HHMM
\item[{\tt nlon}]     The number of longitudes
\item[{\tt nlat}]     The number of latitides
Uwe Schulzweida's avatar
Uwe Schulzweida committed
113
114
\item[{\tt idispo1}]  For the users disposal (Not used in \CDI)
\item[{\tt idispo2}]  For the users disposal (Not used in \CDI)
115
116
117
118
\end{deflist}
\end{minipage}


Uwe Schulzweida's avatar
Uwe Schulzweida committed
119
120
\section{EXTRA}

121
122
123
124
125
126
127
EXTRA is the standard binary output format of the ocean model \htmlref{MPIOM}{MPIOM}.
It has a header section with 4 integer values followed by the data section.
The header and the data section have the standard Fortran blocking
for binary data records.
An EXTRA record can have an accuracy of 4 or 8 bytes and 
the byteorder can be little or big endian.
The following Fortran code example can be used to read an
Uwe Schulzweida's avatar
Uwe Schulzweida committed
128
EXTRA record with an accuracy of 4 bytes:
129
130

\begin{lstlisting}[backgroundcolor=\color{zebg}, basicstyle=\footnotesize]
131
   INTEGER*4 idate,icode,ilevel,nsize
132
   REAL*4 field(msize)
133
134
      ...
   READ(unit) idate,icode,ilevel,nsize
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
   READ(unit) (field(isize),isize=1,nsize)
\end{lstlisting}

The constant {\tt msize} must be greater or equal than {\tt nsize}.
The meaning of the variables are:

\vspace*{3mm}
\hspace*{8mm}\begin{minipage}{10cm}
\begin{deflist}{{\tt idispo2 \ \ }}
\item[{\tt idate}]    The date as YYYYMMDD
\item[{\tt icode}]    The code number
\item[{\tt ilevel}]   The level
\item[{\tt nsize}]    The size of the field
\end{deflist}
\end{minipage}


Uwe Schulzweida's avatar
Uwe Schulzweida committed
152
\section{IEG}
153

154
IEG is the standard binary output format of the regional model \htmlref{REMO}{REMO}.
155
It is simple an unpacked GRIB format. The product and grid
156
157
description section are coded with 4 byte integer values and the
data section can have 4 or 8 byte IEEE floating point values.
158
159
The header and the data section have the standard Fortran blocking
for binary data records.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
160
161
162
163
164
165
\CDI supports only data on an rotated grid for the IEG format.

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: