#include <config.h>#include <string.h>#include <stdlib.h>#include "netcdfcpp.h"Include dependency graph for netcdf.cpp:

Go to the source code of this file.
Defines | |
| #define | TRUE 1 |
| #define | FALSE 0 |
| #define | NcFile_add_scalar_att(TYPE) |
| #define | NcFile_add_vector_att(TYPE) |
| #define | Nc_as(TYPE) name2(as_,TYPE) |
| #define | NcTypedComponent_as(TYPE) |
| #define | NcVar_put_rec(TYPE) |
| #define | NcVar_get_index(TYPE) |
| #define | NcVar_put_array(TYPE) |
| #define | NcVar_put_nd_array(TYPE) |
| #define | NcVar_get_array(TYPE) |
| #define | NcVar_get_nd_array(TYPE) |
| #define | NcVar_add_scalar_att(TYPE) |
| #define | NcVar_add_vector_att(TYPE) |
Functions | |
| NcFile_add_scalar_att (char) NcFile_add_scalar_att(ncbyte) NcFile_add_scalar_att(short) NcFile_add_scalar_att(int) NcFile_add_scalar_att(long) NcFile_add_scalar_att(float) NcFile_add_scalar_att(double) NcFile_add_scalar_att(const char *) NcFile_add_vector_att(char) NcFile_add_vector_att(ncbyte) NcFile_add_vector_att(short) NcFile_add_vector_att(int) NcFile_add_vector_att(long) NcFile_add_vector_att(float) NcFile_add_vector_att(double) NcBool NcFile | |
| NcTypedComponent_as (ncbyte) NcTypedComponent_as(char) NcTypedComponent_as(short) NcTypedComponent_as(int) NcTypedComponent_as(nclong) NcTypedComponent_as(long) NcTypedComponent_as(float) NcTypedComponent_as(double) char *NcTypedComponent | |
| NcVar_put_rec (ncbyte) NcVar_put_rec(char) NcVar_put_rec(short) NcVar_put_rec(int) NcVar_put_rec(long) NcVar_put_rec(float) NcVar_put_rec(double) long NcVar | |
| NcVar_get_index (ncbyte) NcVar_get_index(char) NcVar_get_index(short) NcVar_get_index(nclong) NcVar_get_index(long) NcVar_get_index(float) NcVar_get_index(double) NcVar_put_array(ncbyte) NcVar_put_array(char) NcVar_put_array(short) NcVar_put_array(int) NcVar_put_array(long) NcVar_put_array(float) NcVar_put_array(double) NcVar_put_nd_array(ncbyte) NcVar_put_nd_array(char) NcVar_put_nd_array(short) NcVar_put_nd_array(int) NcVar_put_nd_array(long) NcVar_put_nd_array(float) NcVar_put_nd_array(double) NcVar_get_array(ncbyte) NcVar_get_array(char) NcVar_get_array(short) NcVar_get_array(int) NcVar_get_array(long) NcVar_get_array(float) NcVar_get_array(double) NcVar_get_nd_array(ncbyte) NcVar_get_nd_array(char) NcVar_get_nd_array(short) NcVar_get_nd_array(int) NcVar_get_nd_array(long) NcVar_get_nd_array(float) NcVar_get_nd_array(double) NcBool NcVar | |
| NcVar_add_scalar_att (char) NcVar_add_scalar_att(ncbyte) NcVar_add_scalar_att(short) NcVar_add_scalar_att(int) NcVar_add_scalar_att(long) NcVar_add_scalar_att(double) NcBool NcVar | |
| NcVar_add_vector_att (char) NcVar_add_vector_att(ncbyte) NcVar_add_vector_att(short) NcVar_add_vector_att(int) NcVar_add_vector_att(long) NcVar_add_vector_att(float) NcVar_add_vector_att(double) NcBool NcVar | |
Variables | |
| static const int | ncGlobal = NC_GLOBAL |
| static const int | ncBad = -1 |
|
|
Definition at line 17 of file netcdf.cpp. Referenced by NcVar::add_att(), NcFile::data_mode(), NcFile::define_mode(), NcDim::is_unlimited(), NcVar_add_scalar_att(), NcVar_add_vector_att(), NcVar_get_index(), NcAtt::remove(), NcAtt::rename(), NcDim::rename(), NcVar::set_cur(), NcVar::sync(), and NcDim::sync(). |
|
|
Definition at line 475 of file netcdf.cpp. |
|
|
Value: NcBool NcFile::add_att(NcToken aname, TYPE val) \ { \ return globalv->add_att(aname, val); \ } Definition at line 179 of file netcdf.cpp. |
|
|
Value: NcBool NcFile::add_att(NcToken aname, int n, const TYPE* val) \ { \ return globalv->add_att(aname, n, val); \ } |
|
|
Value: TYPE NcTypedComponent::Nc_as(TYPE)( long n ) const \ { \ NcValues* tmp = values(); \ TYPE rval = tmp->Nc_as(TYPE)(n); \ delete tmp; \ return rval; \ } Definition at line 476 of file netcdf.cpp. |
|
|
Value: NcBool NcVar::add_att(NcToken aname, TYPE val) \ { \ if (! the_file->define_mode()) \ return FALSE; \ if (ncattput(the_file->id(), the_id, aname, (nc_type) NcTypeEnum(TYPE), \ 1, &val) == ncBad) \ return FALSE; \ return TRUE; \ } \ Definition at line 968 of file netcdf.cpp. |
|
|
Value: NcBool NcVar::add_att(NcToken aname, int len, const TYPE* vals) \ { \ if (! the_file->define_mode()) \ return FALSE; \ if (ncattput(the_file->id(), the_id, aname, (nc_type) NcTypeEnum(TYPE), \ len, vals) == ncBad) \ return FALSE; \ return TRUE; \ } Definition at line 1007 of file netcdf.cpp. |
|
|
Value: NcBool NcVar::get( TYPE* vals, \ long edge0, \ long edge1, \ long edge2, \ long edge3, \ long edge4) const \ { \ if (type() != NcTypeEnum(TYPE)) \ return FALSE; \ if (! the_file->data_mode()) \ return FALSE; \ long count[5]; \ count[0] = edge0; \ count[1] = edge1; \ count[2] = edge2; \ count[3] = edge3; \ count[4] = edge4; \ for (int i = 0; i < 5; i++) { \ if (count[i]) { \ if (num_dims() < i) \ return FALSE; \ } else \ break; \ } \ static long start[5] = {0, 0, 0, 0, 0}; \ for (int j = 0; j < 5; j++) { \ start[j] = the_cur[j]; \ } \ return ncvarget(the_file->id(), the_id, start, count, vals) != ncBad; \ } |
|
|
Value: long NcVar::get_index(const TYPE* key) \ { \ return get_index(get_dim(0), key); \ } \ \ long NcVar::get_index(NcDim *rdim, const TYPE* key) \ { \ if (type() != NcTypeEnum(TYPE)) \ return -1; \ if (! the_file->data_mode()) \ return -1; \ int idx = dim_to_index(rdim); \ long maxrec = get_dim(idx)->size(); \ long maxvals = rec_size(rdim); \ NcValues* val; \ int validx; \ for (long j=0; j<maxrec; j++) { \ val = get_rec(rdim,j); \ if (val == NULL) return -1; \ for (validx = 0; validx < maxvals; validx++) { \ if (key[validx] != val->as_ ## TYPE(validx)) break; \ } \ delete val; \ if (validx == maxvals) return j; \ } \ return -1; \ } Definition at line 768 of file netcdf.cpp. |
|
|
Value: NcBool NcVar::get( TYPE* vals, const long* count ) const \ { \ if (type() != NcTypeEnum(TYPE)) \ return FALSE; \ if (! the_file->data_mode()) \ return FALSE; \ long start[MAX_NC_DIMS]; \ for (int i = 0; i < num_dims(); i++) \ start[i] = the_cur[i]; \ return ncvarget(the_file->id(), the_id, start, count, vals) != ncBad; \ } |
|
|
Value: NcBool NcVar::put( const TYPE* vals, \ long edge0, \ long edge1, \ long edge2, \ long edge3, \ long edge4) \ { \ if (type() != NcTypeEnum(TYPE)) \ return FALSE; \ if (! the_file->data_mode()) \ return FALSE; \ long count[5]; \ count[0] = edge0; \ count[1] = edge1; \ count[2] = edge2; \ count[3] = edge3; \ count[4] = edge4; \ for (int i = 0; i < 5; i++) { \ if (count[i]) { \ if (num_dims() < i) \ return FALSE; \ } else \ break; \ } \ long start[5]; \ for (int j = 0; j < 5; j++) { \ start[j] = the_cur[j]; \ } \ return ncvarput(the_file->id(), the_id, start, count, vals) != ncBad; \ } |
|
|
Value: NcBool NcVar::put( const TYPE* vals, const long* count ) \ { \ if (type() != NcTypeEnum(TYPE)) \ return FALSE; \ if (! the_file->data_mode()) \ return FALSE; \ long start[MAX_NC_DIMS]; \ for (int i = 0; i < num_dims(); i++) \ start[i] = the_cur[i]; \ return ncvarput(the_file->id(), the_id, start, count, vals) != ncBad; \ } |
|
|
Definition at line 705 of file netcdf.cpp. |
|
|
Definition at line 16 of file netcdf.cpp. Referenced by NcVar::add_att(), NcFile::data_mode(), NcFile::define_mode(), NcVar_add_scalar_att(), NcVar::set_cur(), NcVar::sync(), and NcDim::sync(). |
|
|
Definition at line 185 of file netcdf.cpp. 00196 { \ 00197 return globalv->add_att(aname, n, val); \ 00198 } 00199 00200 NcFile_add_vector_att(char) 00201 NcFile_add_vector_att(ncbyte) 00202 NcFile_add_vector_att(short) 00203 NcFile_add_vector_att(int) 00204 NcFile_add_vector_att(long) 00205 NcFile_add_vector_att(float) 00206 NcFile_add_vector_att(double) 00207 00208 NcBool NcFile::set_fill( FillMode a_mode ) 00209 { 00210 if (ncsetfill(the_id, a_mode) != ncBad) { 00211 the_fill_mode = a_mode; 00212 return TRUE; 00213 } 00214 return FALSE; 00215 }
|
|
|
Definition at line 484 of file netcdf.cpp. References NcValues::as_string(). 00494 { 00495 NcValues* tmp = values(); 00496 char* rval = tmp->as_string(n); 00497 delete tmp; 00498 return rval; 00499 }
|
|
|
Definition at line 979 of file netcdf.cpp. References FALSE, ncattput(), ncBad, ncFloat, and TRUE. 00987 { 00988 if (! the_file->define_mode()) 00989 return FALSE; 00990 float fval = (float) val; // workaround for bug, val passed as double?? 00991 if (ncattput(the_file->id(), the_id, aname, (nc_type) ncFloat, 00992 1, &fval) == ncBad) 00993 return FALSE; 00994 return TRUE; 00995 }
|
|
|
Definition at line 1017 of file netcdf.cpp. References FALSE, ncBad, and ncvarrename(). 01026 { 01027 if (strlen(newname) > strlen(the_name)) { 01028 if (! the_file->define_mode()) 01029 return FALSE; 01030 } 01031 NcBool ret = ncvarrename(the_file->id(), the_id, newname) != ncBad; 01032 if (ret) { 01033 delete [] the_name; 01034 the_name = new char [1 + strlen(newname)]; 01035 strcpy(the_name, newname); 01036 } 01037 return ret; 01038 }
|
|
|
Definition at line 798 of file netcdf.cpp. References FALSE, ncBad, NcTypeEnum, ncvarput(), num_dims, and type. 00814 { \ 00815 if (type() != NcTypeEnum(TYPE)) \ 00816 return FALSE; \ 00817 if (! the_file->data_mode()) \ 00818 return FALSE; \ 00819 long count[5]; \ 00820 count[0] = edge0; \ 00821 count[1] = edge1; \ 00822 count[2] = edge2; \ 00823 count[3] = edge3; \ 00824 count[4] = edge4; \ 00825 for (int i = 0; i < 5; i++) { \ 00826 if (count[i]) { \ 00827 if (num_dims() < i) \ 00828 return FALSE; \ 00829 } else \ 00830 break; \ 00831 } \ 00832 long start[5]; \ 00833 for (int j = 0; j < 5; j++) { \ 00834 start[j] = the_cur[j]; \ 00835 } \ 00836 return ncvarput(the_file->id(), the_id, start, count, vals) != ncBad; \ 00837 } 00838 00839 NcVar_put_array(ncbyte) 00840 NcVar_put_array(char) 00841 NcVar_put_array(short) 00842 NcVar_put_array(int) 00843 NcVar_put_array(long) 00844 NcVar_put_array(float) 00845 NcVar_put_array(double) 00846 00847 #define NcVar_put_nd_array(TYPE) \ 00848 NcBool NcVar::put( const TYPE* vals, const long* count ) \ 00849 { \ 00850 if (type() != NcTypeEnum(TYPE)) \ 00851 return FALSE; \ 00852 if (! the_file->data_mode()) \ 00853 return FALSE; \ 00854 long start[MAX_NC_DIMS]; \ 00855 for (int i = 0; i < num_dims(); i++) \ 00856 start[i] = the_cur[i]; \ 00857 return ncvarput(the_file->id(), the_id, start, count, vals) != ncBad; \ 00858 } 00859 00860 NcVar_put_nd_array(ncbyte) 00861 NcVar_put_nd_array(char) 00862 NcVar_put_nd_array(short) 00863 NcVar_put_nd_array(int) 00864 NcVar_put_nd_array(long) 00865 NcVar_put_nd_array(float) 00866 NcVar_put_nd_array(double) 00867 00868 #define NcVar_get_array(TYPE) \ 00869 NcBool NcVar::get( TYPE* vals, \ 00870 long edge0, \ 00871 long edge1, \ 00872 long edge2, \ 00873 long edge3, \ 00874 long edge4) const \ 00875 { \ 00876 if (type() != NcTypeEnum(TYPE)) \ 00877 return FALSE; \ 00878 if (! the_file->data_mode()) \ 00879 return FALSE; \ 00880 long count[5]; \ 00881 count[0] = edge0; \ 00882 count[1] = edge1; \ 00883 count[2] = edge2; \ 00884 count[3] = edge3; \ 00885 count[4] = edge4; \ 00886 for (int i = 0; i < 5; i++) { \ 00887 if (count[i]) { \ 00888 if (num_dims() < i) \ 00889 return FALSE; \ 00890 } else \ 00891 break; \ 00892 } \ 00893 static long start[5] = {0, 0, 0, 0, 0}; \ 00894 for (int j = 0; j < 5; j++) { \ 00895 start[j] = the_cur[j]; \ 00896 } \ 00897 return ncvarget(the_file->id(), the_id, start, count, vals) != ncBad; \ 00898 } 00899 00900 NcVar_get_array(ncbyte) 00901 NcVar_get_array(char) 00902 NcVar_get_array(short) 00903 NcVar_get_array(int) 00904 NcVar_get_array(long) 00905 NcVar_get_array(float) 00906 NcVar_get_array(double) 00907 00908 #define NcVar_get_nd_array(TYPE) \ 00909 NcBool NcVar::get( TYPE* vals, const long* count ) const \ 00910 { \ 00911 if (type() != NcTypeEnum(TYPE)) \ 00912 return FALSE; \ 00913 if (! the_file->data_mode()) \ 00914 return FALSE; \ 00915 long start[MAX_NC_DIMS]; \ 00916 for (int i = 0; i < num_dims(); i++) \ 00917 start[i] = the_cur[i]; \ 00918 return ncvarget(the_file->id(), the_id, start, count, vals) != ncBad; \ 00919 } 00920 00921 NcVar_get_nd_array(ncbyte) 00922 NcVar_get_nd_array(char) 00923 NcVar_get_nd_array(short) 00924 NcVar_get_nd_array(int) 00925 NcVar_get_nd_array(long) 00926 NcVar_get_nd_array(float) 00927 NcVar_get_nd_array(double) 00928 00929 // If no args, set cursor to all zeros. Else set initial elements of cursor 00930 // to args provided, rest to zeros. 00931 NcBool NcVar::set_cur(long c0, long c1, long c2, long c3, long c4) 00932 { 00933 long t[6]; 00934 t[0] = c0; 00935 t[1] = c1; 00936 t[2] = c2; 00937 t[3] = c3; 00938 t[4] = c4; 00939 t[5] = -1; 00940 for(int j = 0; j < 6; j++) { // find how many parameters were used 00941 int i; 00942 if (t[j] == -1) { 00943 if (num_dims() < j) 00944 return FALSE; // too many for variable's dimensionality 00945 for (i = 0; i < j; i++) { 00946 if (t[i] >= get_dim(i)->size() && ! get_dim(i)->is_unlimited()) 00947 return FALSE; // too big for dimension 00948 the_cur[i] = t[i]; 00949 } 00950 for(i = j; i < num_dims(); i++) 00951 the_cur[i] = 0; 00952 return TRUE; 00953 } 00954 } 00955 return TRUE; 00956 }
|
|
|
Definition at line 743 of file netcdf.cpp.
|
|
|
|
Definition at line 20 of file netcdf.cpp. Referenced by NcFile::NcFile(), and NcVar::num_atts(). |
1.4.4