wrfout  0.0-0.dev0.dirty.el6
 All Data Structures Files Functions Variables Typedefs Enumerations Groups
wrfout_ingest.h
Go to the documentation of this file.
1 /******************************************************************************
2 *
3 * Author:
4 * name: Brian Ermold
5 * phone: 509-375-2277
6 * email: brian.ermold@pnnl.gov
7 *
8 ******************************************************************************/
9 
10 /** @file wrfout_ingest.h
11  * WRFOUT Ingest Header File.
12  */
13 
14 #ifndef _WRFOUT_INGEST_H_
15 #define _WRFOUT_INGEST_H_
16 
17 #include "dsproc3.h"
18 
19 /**
20  * @defgroup WRFOUT_INGEST WRFOUT Ingest
21  */
22 /*@{*/
23 
24 /**
25  * UserData structure passed to all user defined hook functions.
26  */
27 typedef struct
28 {
29  const char *proc_name; /**< process name */
30  const char *site; /**< process site */
31  const char *fac; /**< process facility */
32 
33  const char *input_dir; /**< input datastream directory */
34  const char *file_name; /**< input file name */
35  time_t file_time; /**< time from the raw file name */
36 
37  time_t begin_time; /**< first sample time in the current file */
38  time_t end_time; /**< last sample time in the current file */
39 
40  int in_dsid; /**< input datastream ID */
41  int raw_dsid; /**< output raw datastream ID */
42  int out_dsid; /**< output datastream ID */
43 
44  CDSGroup *out_ds; /**< pointer to the output dataset */
45 
46 } UserData;
47 
48 /* Main Ingest Functions */
49 
50 void *wrfout_init_process(void);
51 void wrfout_finish_process(void *user_data);
53  void *user_data,
54  const char *input_dir,
55  const char *file_name);
56 
57 int main(int argc, char *argv[]);
58 
59 /*@}*/
60 
61 /**
62  * @defgroup WRFOUT_FILE_NAME_TIME WRFOUT File Name Time
63  */
64 /*@{*/
65 
67  int npatterns,
68  const char *patterns[]);
69 
70 time_t wrfout_file_name_time(const char *file_name, int log_error);
71 int wrfout_file_name_time_compare(const void *str1, const void *str2);
73 
74 /*@}*/
75 
76 /**
77  * @defgroup WRFOUT_READ_DATA WRFOUT Read Data
78  */
79 /*@{*/
80 
81 int wrfout_read_data(UserData *data);
82 
83 /*@}*/
84 
85 /**
86  * @defgroup WRFOUT_STORE_DATA WRFOUT Store Data
87  */
88 /*@{*/
89 
90 int wrfout_store_data(UserData *data);
91 
92 /*@}*/
93 
94 #endif /* _WRFOUT_INGEST_H_ */