| 1 | #include <stdio.h> |
|---|
| 2 | #include <stdlib.h> |
|---|
| 3 | #include "grib1_routines.h" |
|---|
| 4 | |
|---|
| 5 | #define LATLON 0 |
|---|
| 6 | #define LAMBERT 1 |
|---|
| 7 | #define POLAR_STEREO 2 |
|---|
| 8 | #define MERCATOR 3 |
|---|
| 9 | |
|---|
| 10 | main() |
|---|
| 11 | { |
|---|
| 12 | int level; |
|---|
| 13 | int projection; |
|---|
| 14 | int xdim; |
|---|
| 15 | int ydim; |
|---|
| 16 | int grid_id; |
|---|
| 17 | float center_lat, center_lon; |
|---|
| 18 | float proj_central_lon; |
|---|
| 19 | float dx, dy; |
|---|
| 20 | int south; |
|---|
| 21 | float latin1, latin2; |
|---|
| 22 | float *data; |
|---|
| 23 | int filefd; |
|---|
| 24 | int error; |
|---|
| 25 | char datestr[200]; |
|---|
| 26 | int i,j; |
|---|
| 27 | float fcst_secs; |
|---|
| 28 | int accum_period; |
|---|
| 29 | int leveltype; |
|---|
| 30 | int level2; |
|---|
| 31 | Grib1_Tables grib1_tables; |
|---|
| 32 | int ret; |
|---|
| 33 | int status; |
|---|
| 34 | Grid_Info gridinfo; |
|---|
| 35 | |
|---|
| 36 | level = 9950; |
|---|
| 37 | projection = LAMBERT; |
|---|
| 38 | xdim = 422; |
|---|
| 39 | ydim = 271; |
|---|
| 40 | center_lat = 0.0; |
|---|
| 41 | center_lon = 0.0; |
|---|
| 42 | proj_central_lon = -100.0; |
|---|
| 43 | dx = 12.0; |
|---|
| 44 | dy = 12.0; |
|---|
| 45 | south = 0; |
|---|
| 46 | latin1 = 30.0; |
|---|
| 47 | latin2 = 60.0; |
|---|
| 48 | data = (float *)calloc(xdim*ydim,sizeof(float)); |
|---|
| 49 | fcst_secs = 360; |
|---|
| 50 | accum_period = 0; |
|---|
| 51 | leveltype = 119; |
|---|
| 52 | level2 = 0; |
|---|
| 53 | grid_id = 255; |
|---|
| 54 | |
|---|
| 55 | read_gribmap_("gribmap.txt",&grib1_tables,&ret); |
|---|
| 56 | |
|---|
| 57 | open_file_("test2.grb","w",&filefd,&error,9,1); |
|---|
| 58 | strcpy(datestr,"2005-01-01_00:00:00"); |
|---|
| 59 | for (i=0; i< 1; i++) { |
|---|
| 60 | for (j=0; j<xdim*ydim; j++) { |
|---|
| 61 | /* |
|---|
| 62 | data[j] = rand()/RAND_MAX; |
|---|
| 63 | */ |
|---|
| 64 | data[j] = j/(float)ydim; |
|---|
| 65 | } |
|---|
| 66 | fprintf(stderr,"Writing grib record %d\n",i); |
|---|
| 67 | status = LOAD_GRID_INFO("TSK", datestr, &leveltype, &level, |
|---|
| 68 | &level2, &fcst_secs, &accum_period, &grid_id, &projection, |
|---|
| 69 | &xdim, &ydim, ¢er_lat, ¢er_lon, &dx, &dy, |
|---|
| 70 | &proj_central_lon, &south, &latin1, &latin2, |
|---|
| 71 | &grib1_tables, &gridinfo, strlen("TSK"), strlen(datestr)); |
|---|
| 72 | |
|---|
| 73 | WRITE_GRIB(&gridinfo, &filefd, data); |
|---|
| 74 | /* |
|---|
| 75 | status = WRITE_GRIB("ABC",&level,&level2,&leveltype, |
|---|
| 76 | datestr,&fcst_secs,&accum_period, |
|---|
| 77 | &projection,&grid_id,&xdim,&ydim,¢er_lat, |
|---|
| 78 | ¢er_lon,&proj_central_lon,&dx,&dy,&south,&latin1, |
|---|
| 79 | &latin2,data,&grib_table_info,&filefd,8); |
|---|
| 80 | */ |
|---|
| 81 | fprintf(stderr,"status: %d\n",status); |
|---|
| 82 | |
|---|
| 83 | } |
|---|
| 84 | |
|---|
| 85 | FREE_GRIBMAP(&grib1_tables); |
|---|
| 86 | } |
|---|
| 87 | |
|---|