-
Notifications
You must be signed in to change notification settings - Fork 13
/
Developement.doc
42 lines (28 loc) · 1.16 KB
/
Developement.doc
1
2
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
Development notes for Wgrib2 1/2004
Every option for wgrib is now a function call. (Eventually some
options will be macros; for example, -s = -var -d etc.) I went
to this approach for
(1) ease of development
(2) ease of extendability
(3) more versatile
People kept making mods for wgrib, so I wanted a system where you
just drop in the code and compile.
Steps to add a new option/function:
(1) decide on the type of function
currently inv (inventory) - writes to stdout, no access to decoded data
output - writes to stdout, dump-file, access to decoded data
setup - no access to decoded data
(2) write function
functions are called several times
a) first with mode == -1 (initialization stop)
b) for each data field (mode = 0 or mode = 1 verbose)
c) finishing with mode = -2 (finializing step)
(3) write header in the source code
format is
* HEADER:sort_order:name:type:number_args:description
ex * HEADER:100:d:inv:0:date YYYYMMDDHH
For the name of the function and calling args, see
documentation in wgrib2
To compile
./function.sh updates the option table
./compile compiles the code