1 |
|
|
2 |
|
API Discussions: |
3 |
|
================ |
4 |
|
|
5 |
As discussed in our group meeting of 2003-12-17 (AJA, CNH, JMC, AM, |
As discussed in our group meeting of 2003-12-17 (AJA, CNH, JMC, AM, |
6 |
PH, EH3), the NetCDF interface should resemble the following FORTRAN |
PH, EH3), the NetCDF interface should resemble the following FORTRAN |
7 |
subroutines: |
subroutines: |
37 |
|
|
38 |
MNC_INIT( myThid ) |
MNC_INIT( myThid ) |
39 |
|
|
40 |
|
MNC_FILE_CREATE( myThid, fname ) |
41 |
MNC_FILE_OPEN( myThid, fname, itype ) |
MNC_FILE_OPEN( myThid, fname, itype ) |
42 |
MNC_FILE_ADD_ATTR_STR( myThid, fname, atname, sval ) |
MNC_FILE_ADD_ATTR_STR( myThid, fname, atname, sval ) |
43 |
MNC_FILE_ADD_ATTR_INT( myThid, fname, atname, ival ) |
MNC_FILE_ADD_ATTR_INT( myThid, fname, atname, ival ) |
46 |
MNC_FILE_READ_HEADER( myThid, fname ) |
MNC_FILE_READ_HEADER( myThid, fname ) |
47 |
|
|
48 |
MNC_DIM_INIT( myThid, dname, dunits, dlen ) |
MNC_DIM_INIT( myThid, dname, dunits, dlen ) |
49 |
|
MNC_DIM_REMOVE( myThid, dname ) |
50 |
|
|
51 |
MNC_GRID_INIT( myThid, fname, gname, ndim, dnames ) |
MNC_GRID_INIT( myThid, fname, gname, ndim, dnames ) |
52 |
MNC_GRID_SET_XY_1DLL( myThid, fname, gname, lats, lons ) |
MNC_GRID_SET_LL( myThid, fname, gname, type, lats, lons ) |
|
MNC_GRID_SET_XY_2DLL( myThid, fname, gname, lats, lons ) |
|
53 |
|
|
54 |
MNC_VAR_INIT_DBL( myThid, fname, gname, vname, fillval ) |
MNC_VAR_INIT_DBL( myThid, fname, gname, vname, units, fillval ) |
55 |
MNC_VAR_INIT_REAL( myThid, fname, gname, vname, fillval ) |
MNC_VAR_INIT_REAL( myThid, fname, gname, vname, units, fillval ) |
56 |
MNC_VAR_INIT_INT( myThid, fname, gname, vname, fillval ) |
MNC_VAR_INIT_INT( myThid, fname, gname, vname, units, fillval ) |
57 |
MNC_VAR_ADD_ATTR_STR( myThid, vname, name, sval ) |
MNC_VAR_ADD_ATTR_STR( myThid, fname, vname, atname, sval ) |
58 |
MNC_VAR_ADD_ATTR_INT( myThid, vname, name, ival ) |
MNC_VAR_ADD_ATTR_INT( myThid, fname, vname, atname, ival ) |
59 |
MNC_VAR_ADD_ATTR_DBL( myThid, vname, name, dval ) |
MNC_VAR_ADD_ATTR_DBL( myThid, fname, vname, atname, dval ) |
60 |
MNC_VAR_WRITE( myThid, vname, var ) |
MNC_VAR_WRITE_DBL( myThid, fname, vname, var ) |
61 |
|
MNC_VAR_WRITE_REAL( myThid, fname, vname, var ) |
62 |
|
MNC_VAR_WRITE_INT( myThid, fname, vname, var ) |
63 |
... |
... |
64 |
MNC_VAR_READ( myThid, vname, var ) |
MNC_VAR_READ( myThid, fname, vname, var ) |
65 |
|
|
66 |
MNC_FILE_CLOSE( myThid, fname ) |
MNC_FILE_CLOSE( myThid, fname ) |
67 |
|
|
68 |
The above interface is powerful yet easy to use (easier than the |
The above interface is powerful yet easy to use (easier than the |
69 |
entire NetCDF interface) since it helps the user keep track of the |
entire NetCDF interface) since it helps the user keep track of the |
70 |
associations between files, "grids", variables, and dimensions. |
associations between files, "grids", variables, and dimensions. |
71 |
|
|
72 |
|
|
73 |
|
To-Do: |
74 |
|
====== |
75 |
|
|
76 |
|
1) CNH pointed out that grid interpolation needs to be handled |
77 |
|
"on-the-fly" since pre-processing would result in overly large |
78 |
|
input files. We need an interpolation API... |