Commit 7d5742d0967ca171e216bb703a892c54e459e804

Authored by Elena.Budnik
1 parent 655e355f

cdf attribute info

php/src/Makefile
... ... @@ -5,7 +5,7 @@ CC = gcc
5 5  
6 6 EXE = nctimestring2double nctimeinfo getncvars ncvarinfo \
7 7 ncinfo_remote \
8   - cdfinfo cdfvarinfo cdfstartstopfromdata cdfsamplingfromdata \
  8 + cdfinfo cdfvarinfo cdfstartstopfromdata cdfsamplingfromdata cdfvar_attr \
9 9 AddVI
10 10  
11 11 lib: ${EXE}
... ... @@ -48,7 +48,10 @@ cdfinfo: cdfinfo.c
48 48  
49 49 cdfvarinfo: cdfvarinfo.c
50 50 ${CC} ${CFLAGS} -o cdfvarinfo cdfvarinfo.c ${INC} ${LIB} -lcdf
51   -
  51 +
  52 +cdfvar_attr: cdfvar_attr.c
  53 + ${CC} ${CFLAGS} -o cdfvar_attr cdfvar_attr.c ${INC} ${LIB} -lcdf
  54 +
52 55 cdfstartstopfromdata: cdfstartstopfromdata.c
53 56 ${CC} ${CFLAGS} -o cdfstartstopfromdata cdfstartstopfromdata.c ${INC} ${LIB} -lcdf
54 57  
... ...
php/src/cdfvar_attr.c 0 → 100644
... ... @@ -0,0 +1,292 @@
  1 +/**
  2 +* @file cdfvarinfo.c
  3 +* @version $Id: cdfvarinfo.c,v 1.1 2010/08/31 10:32:55 budnik Exp $
  4 +* @brief
  5 +*/
  6 +
  7 +
  8 +#include <stdio.h>
  9 +#include <stdlib.h>
  10 +#include <cdf.h>
  11 +#include <string.h>
  12 +
  13 +#define MAX_FILE_NAME_LEN 120
  14 +
  15 +void cdf_status_handler (CDFstatus, char *);
  16 +char * cdf_str_datatype (long);
  17 +
  18 +typedef struct cdfvar { /* CDF variable structure */
  19 + char name[CDF_VAR_NAME_LEN+1];
  20 + long datatype;
  21 + long numElements; /* string length for CDF_CHAR, 1 otherwise */
  22 + long dimensionality; /* variable dimensionality */
  23 + long dimSizes[CDF_MAX_DIMS]; /* variable dimension sizes */
  24 + long recVariance; /* record variance */
  25 + long numRecs; /* # of records this variable contains */
  26 +} CDFvar;
  27 +
  28 +int main(int argc, char *argv[])
  29 +{
  30 +
  31 + CDFvar var;
  32 + CDFid id; /* CDF file ID */
  33 + CDFstatus status; /* CDF status code */
  34 +
  35 + long nZvars, nAttrs, attrId, attrScope, varId, datatype, numElements;
  36 + char attrName[CDF_ATTR_NAME_LEN+1];
  37 + char fileName[MAX_FILE_NAME_LEN], varName[CDF_VAR_NAME_LEN+1], attName[CDF_ATTR_NAME_LEN+1];
  38 + char msg[100];
  39 + int dummy, i;
  40 + char *cPtr;
  41 + signed char *scPtr;
  42 + short *sPtr;
  43 + int *iPtr;
  44 + float *fPtr;
  45 + double *dPtr;
  46 +
  47 +
  48 + if (argc <= 3)
  49 + exit(0); /* CDF input file name not specified */
  50 + else {
  51 + strcpy(fileName, argv[1]); /* Get the input file name */
  52 + strcpy(varName, argv[2]);
  53 + strcpy(attName, argv[3]);
  54 + }
  55 +
  56 + status = CDFlib (OPEN_, CDF_, fileName, &id, NULL_);
  57 +
  58 + if (status != CDF_OK) {
  59 + strcpy(msg, "OPEN_, CDF_, ");
  60 + strcat(msg, fileName);
  61 + cdf_status_handler (status, msg);
  62 + }
  63 +
  64 + /*---------------------------------------------------------------------------
  65 + * This routine retrievs the following information:
  66 + *
  67 + * nAttr - number of attributes (including global and variable)
  68 + * nZvars - number of zVariables
  69 + *
  70 + * CDF file can have both rVariables (old style) and zVariables (new style)
  71 + * simultaneously. zVariable is a superset of rVariable, and it is a lot
  72 + * more efficient and offers all the functionality a rVariable offers and
  73 + * more. Treat all CDF variables as zVariables.
  74 + *--------------------------------------------------------------------------*/
  75 +
  76 + status = CDFlib (SELECT_, CDF_zMODE_, zMODEon2,
  77 + GET_, CDF_NUMATTRS_, &nAttrs,
  78 + CDF_NUMzVARS_, &nZvars,
  79 + NULL_);
  80 + if (status != CDF_OK) cdf_status_handler(status, "GET_, CDF_FILEINFO_");
  81 +
  82 + // printf(" nAttrs %d Zvars %d\n",nAttrs, nZvars);
  83 + // printf ("Attributes:\n");
  84 +
  85 + for (attrId = 0; attrId < nAttrs; attrId++) {
  86 + status = CDFlib (SELECT_, ATTR_, attrId,
  87 + GET_, ATTR_NAME_, attrName, ATTR_SCOPE_, &attrScope,
  88 + NULL_);
  89 +
  90 + if (status != CDF_OK) cdf_status_handler (status, "SELECT_, ATTR_");
  91 + // printf("Attr %d %s %d\n", attrId, attrName, attrScope);
  92 + }
  93 +
  94 + // printf ("Variables:\n");
  95 + for (varId=0; varId < nZvars; varId++)
  96 + {
  97 + status = CDFlib (SELECT_,zVAR_, varId,
  98 + GET_, zVAR_NAME_, var.name,
  99 + zVAR_DATATYPE_, &var.datatype,
  100 + zVAR_NUMELEMS_, &var.numElements,
  101 + zVAR_NUMDIMS_, &var.dimensionality,
  102 + zVAR_DIMSIZES_, var.dimSizes,
  103 + zVAR_NUMRECS_, &var.numRecs,
  104 + zVAR_RECVARY_, &var.recVariance,
  105 + NULL_);
  106 + if (status != CDF_OK) cdf_status_handler (status, "GET_, zVARS_");
  107 +
  108 + if (strcmp(var.name, varName) == 0)
  109 + {
  110 + for (attrId = 0; attrId < nAttrs; attrId++) {
  111 + status = CDFlib (SELECT_, ATTR_, attrId,
  112 + GET_, ATTR_NAME_, attrName, ATTR_SCOPE_, &attrScope,
  113 + NULL_);
  114 +
  115 + if (status != CDF_OK) cdf_status_handler (status, "SELECT_, ATTR_");
  116 + if (attrScope == GLOBAL_SCOPE) continue;
  117 + if (strcasecmp(attrName, attName) != 0) continue;
  118 +
  119 + // printf("%d %s ", attrId, attrName);
  120 +
  121 + status = CDFlib (SELECT_, zENTRY_, varId,
  122 + GET_, zENTRY_DATATYPE_, &datatype,
  123 + zENTRY_NUMELEMS_, &numElements,
  124 + NULL_);
  125 + //printf("%d %s", numElements,cdf_str_datatype(datatype));
  126 + if (status == NO_SUCH_ENTRY) continue;
  127 +
  128 + if (status != CDF_OK) cdf_status_handler (status,"GET_ATTR_INFO_");
  129 +
  130 + switch (datatype)
  131 + {
  132 + case CDF_CHAR:
  133 + cPtr = (char *) malloc(numElements * sizeof(char) + 1);
  134 +
  135 + status = CDFlib (GET_, zENTRY_DATA_, cPtr, NULL_);
  136 + if (status != CDF_OK) cdf_status_handler (status, msg);
  137 + strcpy(&cPtr[numElements],"\0");
  138 + printf("%s\n", cPtr);
  139 + free(cPtr);
  140 + break;
  141 +
  142 + case CDF_BYTE:
  143 + case CDF_INT1:
  144 + scPtr = (signed char *) malloc (sizeof(signed char) * numElements);
  145 + status = CDFlib (GET_, zENTRY_DATA_, scPtr, NULL_);
  146 + if (status != CDF_OK) cdf_status_handler (status, msg);
  147 + free (scPtr);
  148 + break;
  149 +
  150 + case CDF_INT2:
  151 + case CDF_UCHAR:
  152 + case CDF_UINT1:
  153 + sPtr = (short *) malloc (sizeof(short) * numElements);
  154 + status = CDFlib (GET_, zENTRY_DATA_, sPtr, NULL_);
  155 + if (status != CDF_OK) cdf_status_handler (status, msg);
  156 + free (sPtr);
  157 + break;
  158 +
  159 + case CDF_INT4:
  160 + case CDF_UINT2:
  161 + iPtr = (int *) malloc (sizeof(int) * numElements);
  162 + status = CDFlib (GET_, zENTRY_DATA_, iPtr, NULL_);
  163 + if (status != CDF_OK) cdf_status_handler (status, msg);
  164 + printf("%d\n", *iPtr);
  165 + free (iPtr);
  166 + break;
  167 +
  168 + case CDF_FLOAT:
  169 + case CDF_REAL4:
  170 + fPtr = (float *) malloc (sizeof(float) * numElements);
  171 + status = CDFlib (GET_, zENTRY_DATA_, fPtr, NULL_);
  172 + if (status != CDF_OK) cdf_status_handler (status, msg);
  173 + printf("%8.1e\n", *fPtr);
  174 + free (fPtr);
  175 + break;
  176 +
  177 + case CDF_DOUBLE:
  178 + case CDF_REAL8:
  179 + case CDF_UINT4:
  180 + dPtr = (double *) malloc (sizeof(double) * numElements);
  181 +
  182 + status = CDFlib (GET_, zENTRY_DATA_, dPtr, NULL_);
  183 + if (status != CDF_OK) cdf_status_handler (status, msg);
  184 + printf("%8.1e\n", *dPtr);
  185 + free (dPtr);
  186 + break;
  187 +
  188 + case CDF_EPOCH: /* 8-byte real number */
  189 + dPtr = (double *) malloc (sizeof(double) * numElements);
  190 +
  191 + status = CDFlib (GET_, zENTRY_DATA_, dPtr, NULL_);
  192 + if (status != CDF_OK) cdf_status_handler (status, msg);
  193 +
  194 + free (dPtr);
  195 + break;
  196 +
  197 + case CDF_EPOCH16: /* 16-byte real number */
  198 + dPtr = (double *) malloc (sizeof(double) * numElements * 2);
  199 + status = CDFlib (GET_, zENTRY_DATA_, dPtr, NULL_);
  200 + if (status != CDF_OK) cdf_status_handler (status, msg);
  201 + free (dPtr);
  202 + break;
  203 +
  204 + default:
  205 + printf ("** Error in get_cdf_attribute: bad data type");
  206 + }
  207 + }
  208 + break;
  209 + }
  210 + }
  211 +
  212 + /* Close the CDF file */
  213 + status = CDFlib (CLOSE_, CDF_, NULL_);
  214 +
  215 +}
  216 +
  217 +
  218 +void cdf_status_handler (CDFstatus status, char *source)
  219 +{
  220 + char message[CDF_STATUSTEXT_LEN+1];
  221 +
  222 + CDFerror (status, message); /* Get the appropriate message */
  223 +
  224 + if (status < CDF_WARN) {
  225 + printf ("An error has occurred, halting...\n");
  226 + printf ("%s\n", message);
  227 + printf ("** Error source: %s\n", source);
  228 + exit (status);
  229 + }
  230 + else if (status < CDF_OK) {
  231 + printf ("Warning, function may not have compeleted as expected...\n");
  232 + printf ("%s\n", message);
  233 + }
  234 + else if (status > CDF_OK) {
  235 + printf ("Function compeleted successfully, but be advised that...\n");
  236 + printf ("%s\n", message);
  237 + }
  238 +}
  239 +
  240 +/*--------------------------------------------------------------------------
  241 + * This routine returns the string representation of the given CDF
  242 + * datatype.
  243 + *--------------------------------------------------------------------------*/
  244 +char * cdf_str_datatype (long type)
  245 +{
  246 + switch (type) {
  247 + case CDF_BYTE:
  248 + return "CDF_BYTE";
  249 +
  250 + case CDF_INT1:
  251 + return "CDF_INT1";
  252 +
  253 + case CDF_CHAR:
  254 + return "CDF_CHAR";
  255 +
  256 + case CDF_INT2:
  257 + return "CDF_INT2";
  258 +
  259 + case CDF_UCHAR:
  260 + return "CDF_UCHAR";
  261 +
  262 + case CDF_UINT1:
  263 + return "CDF_UINT1";
  264 +
  265 + case CDF_INT4:
  266 + return "CDF_INT4";
  267 +
  268 + case CDF_UINT2:
  269 + return "CDF_UINT2";
  270 +
  271 + case CDF_FLOAT:
  272 + return "CDF_FLOAT";
  273 +
  274 + case CDF_REAL4:
  275 + return "CDF_REAL4";
  276 +
  277 + case CDF_DOUBLE:
  278 + return "CDF_DOUBLE";
  279 +
  280 + case CDF_REAL8:
  281 + return "CDF_REAL8";
  282 +
  283 + case CDF_UINT4:
  284 + return "CDF_UINT4";
  285 +
  286 + case CDF_EPOCH:
  287 + return "CDF_EPOCH";
  288 +
  289 + case CDF_EPOCH16:
  290 + return "CDF_EPOCH16";
  291 + }
  292 +}
... ...
php/src/cdfvarinfo.c
... ... @@ -16,49 +16,42 @@ void cdf_status_handler (CDFstatus, char *);
16 16 char * cdf_str_datatype (long);
17 17  
18 18 typedef struct cdfvar { /* CDF variable structure */
19   - char name[CDF_VAR_NAME_LEN+1];
20   - long datatype;
21   - long numElements; /* string length for CDF_CHAR, 1 otherwise */
22   - long dimensionality; /* variable dimensionality */
23   - long dimSizes[CDF_MAX_DIMS]; /* variable dimension sizes */
24   - long recVariance; /* record variance */
25   - long numRecs; /* # of records this variable contains */
  19 + char name[CDF_VAR_NAME_LEN+1];
  20 + long datatype;
  21 + long numElements; /* string length for CDF_CHAR, 1 otherwise */
  22 + long dimensionality; /* variable dimensionality */
  23 + long dimSizes[CDF_MAX_DIMS]; /* variable dimension sizes */
  24 + long recVariance; /* record variance */
  25 + long numRecs; /* # of records this variable contains */
26 26 } CDFvar;
27 27  
28 28 int main(int argc, char *argv[])
29   -{
30   -
31   - CDFvar var;
32   - CDFid id; /* CDF file ID */
33   - CDFstatus status; /* CDF status code */
34   -
35   - long nZvars, nAttrs, attrId, attrScope, varId, datatype, numElements;
36   - char attrName[CDF_ATTR_NAME_LEN+1];
37   - char fileName[MAX_FILE_NAME_LEN], varName[CDF_VAR_NAME_LEN+1];
38   - char msg[100];
39   - int dummy, i;
40   - char *cPtr;
41   - signed char *scPtr;
42   - short *sPtr;
43   - int *iPtr;
44   - float *fPtr;
45   - double *dPtr;
  29 +{
  30 + CDFvar var;
  31 + CDFid id; /* CDF file ID */
  32 + CDFstatus status; /* CDF status code */
  33 +
  34 + long nZvars, nAttrs, attrId, attrScope, varId, datatype, numElements;
  35 + char attrName[CDF_ATTR_NAME_LEN+1];
  36 + char fileName[MAX_FILE_NAME_LEN], varName[CDF_VAR_NAME_LEN+1];
  37 + char msg[100];
  38 + int dummy, i;
46 39  
47 40  
48   - if (argc <= 2)
49   - exit(0); /* CDF input file name not specified */
50   - else {
51   - strcpy(fileName, argv[1]); /* Get the input file name */
52   - strcpy(varName, argv[2]);
53   - }
  41 + if (argc <= 2)
  42 + exit(0); /* CDF input file name not specified */
  43 + else {
  44 + strcpy(fileName, argv[1]); /* Get the input file name */
  45 + strcpy(varName, argv[2]);
  46 + }
54 47  
55   - status = CDFlib (OPEN_, CDF_, fileName, &id, NULL_);
  48 + status = CDFlib (OPEN_, CDF_, fileName, &id, NULL_);
56 49  
57   - if (status != CDF_OK) {
58   - strcpy(msg, "OPEN_, CDF_, ");
59   - strcat(msg, fileName);
60   - cdf_status_handler (status, msg);
61   - }
  50 + if (status != CDF_OK) {
  51 + strcpy(msg, "OPEN_, CDF_, ");
  52 + strcat(msg, fileName);
  53 + cdf_status_handler (status, msg);
  54 + }
62 55  
63 56 /*---------------------------------------------------------------------------
64 57 * This routine retrievs the following information:
... ... @@ -72,225 +65,114 @@ int main(int argc, char *argv[])
72 65 * more. Treat all CDF variables as zVariables.
73 66 *--------------------------------------------------------------------------*/
74 67  
75   - status = CDFlib (SELECT_, CDF_zMODE_, zMODEon2,
76   - GET_, CDF_NUMATTRS_, &nAttrs,
77   - CDF_NUMzVARS_, &nZvars,
78   - NULL_);
79   - if (status != CDF_OK) cdf_status_handler(status, "GET_, CDF_FILEINFO_");
80   -
81   - // printf(" nAttrs %d Zvars %d\n",nAttrs, nZvars);
82   -
83   -// printf ("Attributes:\n");
84   -
85   - for (attrId = 0; attrId < nAttrs; attrId++) {
86   - status = CDFlib (SELECT_, ATTR_, attrId,
87   - GET_, ATTR_NAME_, attrName, ATTR_SCOPE_, &attrScope,
88   - NULL_);
89   - if (status != CDF_OK) cdf_status_handler (status, "SELECT_, ATTR_");
90   -
91   -
92   - // printf("Attr %d %s %d\n", attrId, attrName, attrScope);
93   - }
94   -
95   - // printf ("Variables:\n");
96   - for (varId=0; varId < nZvars; varId++) {
97   -
98   - status = CDFlib (SELECT_,zVAR_, varId,
99   - GET_, zVAR_NAME_, var.name,
100   - zVAR_DATATYPE_, &var.datatype,
101   - zVAR_NUMELEMS_, &var.numElements,
102   - zVAR_NUMDIMS_, &var.dimensionality,
103   - zVAR_DIMSIZES_, var.dimSizes,
104   - zVAR_NUMRECS_, &var.numRecs,
105   - zVAR_RECVARY_, &var.recVariance,
106   - NULL_);
107   - if (status != CDF_OK) cdf_status_handler (status, "GET_, zVARS_");
  68 + status = CDFlib (SELECT_, CDF_zMODE_, zMODEon2,
  69 + GET_, CDF_NUMATTRS_, &nAttrs,
  70 + CDF_NUMzVARS_, &nZvars,
  71 + NULL_);
  72 +
  73 + if (status != CDF_OK) cdf_status_handler(status, "GET_, CDF_FILEINFO_");
  74 +
  75 + for (varId=0; varId < nZvars; varId++)
  76 + {
  77 + status = CDFlib (SELECT_,zVAR_, varId,
  78 + GET_, zVAR_NAME_, var.name,
  79 + zVAR_DATATYPE_, &var.datatype,
  80 + zVAR_NUMELEMS_, &var.numElements,
  81 + zVAR_NUMDIMS_, &var.dimensionality,
  82 + zVAR_DIMSIZES_, var.dimSizes,
  83 + zVAR_NUMRECS_, &var.numRecs,
  84 + zVAR_RECVARY_, &var.recVariance,
  85 + NULL_);
  86 +
  87 + if (status != CDF_OK) cdf_status_handler (status, "GET_, zVARS_");
108 88  
109   - if (strcmp(var.name, varName) == 0) {
110   -
111   - printf("%s %d %d ", cdf_str_datatype(var.datatype), var.dimensionality, var.numRecs);
112   - for (i = 0; i < var.dimensionality; i++) printf("%d ",var.dimSizes[i]);
113   - printf("\n");
114   -
115   - for (attrId = 0; attrId < nAttrs; attrId++) {
116   - status = CDFlib (SELECT_, ATTR_, attrId,
117   - GET_, ATTR_NAME_, attrName,
118   - ATTR_SCOPE_, &attrScope,
119   - NULL_);
120   -
121   - if (status != CDF_OK) cdf_status_handler (status, "SELECT_, ATTR_");
122   - if (attrScope == GLOBAL_SCOPE) continue;
123   -//printf("\n%d %s ", attrId, attrName);
124   - status = CDFlib (SELECT_, zENTRY_, varId,
125   - GET_, zENTRY_DATATYPE_, &datatype,
126   - zENTRY_NUMELEMS_, &numElements,
127   - NULL_);
128   -//printf("%d %s", numElements,cdf_str_datatype(datatype));
129   - if (status == NO_SUCH_ENTRY) continue;
130   -
131   - if (status != CDF_OK) cdf_status_handler (status,"GET_ATTR_INFO_");
132   -
133   - switch (datatype) {
134   - case CDF_CHAR:
135   - cPtr = (char *) malloc(numElements * sizeof(char) + 1);
136   - status = CDFlib (GET_, zENTRY_DATA_, cPtr, NULL_);
137   - if (status != CDF_OK) cdf_status_handler (status, msg);
138   -// printf(" %s", cPtr);
139   - free(cPtr);
140   - break;
141   -
142   - case CDF_BYTE:
143   - case CDF_INT1:
144   - scPtr = (signed char *) malloc (sizeof(signed char) * numElements);
145   - status = CDFlib (GET_, zENTRY_DATA_, scPtr, NULL_);
146   - if (status != CDF_OK) cdf_status_handler (status, msg);
147   - free (scPtr);
148   - break;
149   -
150   - case CDF_INT2:
151   - case CDF_UCHAR:
152   - case CDF_UINT1:
153   - sPtr = (short *) malloc (sizeof(short) * numElements);
154   - status = CDFlib (GET_, zENTRY_DATA_, sPtr, NULL_);
155   - if (status != CDF_OK) cdf_status_handler (status, msg);
156   - free (sPtr);
157   - break;
158   -
159   - case CDF_INT4:
160   - case CDF_UINT2:
161   - iPtr = (int *) malloc (sizeof(int) * numElements);
162   - status = CDFlib (GET_, zENTRY_DATA_, iPtr, NULL_);
163   - if (status != CDF_OK) cdf_status_handler (status, msg);
164   - free (iPtr);
165   - break;
166   -
167   - case CDF_FLOAT:
168   - case CDF_REAL4:
169   - fPtr = (float *) malloc (sizeof(float) * numElements);
170   - status = CDFlib (GET_, zENTRY_DATA_, fPtr, NULL_);
171   - if (status != CDF_OK) cdf_status_handler (status, msg);
172   - free (fPtr);
173   - break;
174   -
175   - case CDF_DOUBLE:
176   - case CDF_REAL8:
177   - case CDF_UINT4:
178   - dPtr = (double *) malloc (sizeof(double) * numElements);
179   -
180   - status = CDFlib (GET_, zENTRY_DATA_, dPtr, NULL_);
181   - if (status != CDF_OK) cdf_status_handler (status, msg);
182   -
183   - free (dPtr);
184   - break;
185   -
186   - case CDF_EPOCH: /* 8-byte real number */
187   - dPtr = (double *) malloc (sizeof(double) * numElements);
188   -
189   - status = CDFlib (GET_, zENTRY_DATA_, dPtr, NULL_);
190   - if (status != CDF_OK) cdf_status_handler (status, msg);
191   -
192   - free (dPtr);
193   - break;
194   -
195   - case CDF_EPOCH16: /* 16-byte real number */
196   - dPtr = (double *) malloc (sizeof(double) * numElements * 2);
197   - status = CDFlib (GET_, zENTRY_DATA_, dPtr, NULL_);
198   - if (status != CDF_OK) cdf_status_handler (status, msg);
199   - free (dPtr);
200   - break;
201   -
202   - default:
203   - printf ("** Error in get_cdf_attribute: bad data type");
204   - }
205   -
206   - }
207   - break;
  89 + if (strcmp(var.name, varName) == 0)
  90 + {
  91 + printf("%s %d %d ", cdf_str_datatype(var.datatype), var.dimensionality, var.numRecs);
  92 + for (i = 0; i < var.dimensionality; i++) printf("%d ",var.dimSizes[i]);
  93 +
  94 + printf("\n");
  95 + break;
  96 + }
208 97 }
209   - }
210   -
211   -
212   -
213   - /* Close the CDF file */
214   - status = CDFlib (CLOSE_, CDF_, NULL_);
215   -
  98 +
  99 + /* Close the CDF file */
  100 + status = CDFlib (CLOSE_, CDF_, NULL_);
216 101 }
217 102  
218 103  
219   -
220   -
221 104 void cdf_status_handler (CDFstatus status, char *source)
222 105 {
223   - char message[CDF_STATUSTEXT_LEN+1];
  106 + char message[CDF_STATUSTEXT_LEN+1];
224 107  
225   - CDFerror (status, message); /* Get the appropriate message */
  108 + CDFerror (status, message); /* Get the appropriate message */
226 109  
227   - if (status < CDF_WARN) {
228   - printf ("An error has occurred, halting...\n");
229   - printf ("%s\n", message);
230   - printf ("** Error source: %s\n", source);
231   - exit (status);
232   - }
233   - else if (status < CDF_OK) {
234   - printf ("Warning, function may not have compeleted as expected...\n");
235   - printf ("%s\n", message);
236   - }
237   - else if (status > CDF_OK) {
238   - printf ("Function compeleted successfully, but be advised that...\n");
239   - printf ("%s\n", message);
240   - }
241   -
242   -
  110 + if (status < CDF_WARN) {
  111 + printf ("An error has occurred, halting...\n");
  112 + printf ("%s\n", message);
  113 + printf ("** Error source: %s\n", source);
  114 + exit (status);
  115 + }
  116 + else if (status < CDF_OK) {
  117 + printf ("Warning, function may not have compeleted as expected...\n");
  118 + printf ("%s\n", message);
  119 + }
  120 + else if (status > CDF_OK) {
  121 + printf ("Function compeleted successfully, but be advised that...\n");
  122 + printf ("%s\n", message);
  123 + }
243 124 }
  125 +
244 126 /*--------------------------------------------------------------------------
245 127 * This routine returns the string representation of the given CDF
246 128 * datatype.
247 129 *--------------------------------------------------------------------------*/
248 130 char * cdf_str_datatype (long type)
249 131 {
250   - switch (type) {
251   - case CDF_BYTE:
252   - return "CDF_BYTE";
  132 + switch (type) {
  133 + case CDF_BYTE:
  134 + return "CDF_BYTE";
253 135  
254   - case CDF_INT1:
255   - return "CDF_INT1";
  136 + case CDF_INT1:
  137 + return "CDF_INT1";
256 138  
257   - case CDF_CHAR:
258   - return "CDF_CHAR";
  139 + case CDF_CHAR:
  140 + return "CDF_CHAR";
259 141  
260   - case CDF_INT2:
261   - return "CDF_INT2";
  142 + case CDF_INT2:
  143 + return "CDF_INT2";
262 144  
263   - case CDF_UCHAR:
264   - return "CDF_UCHAR";
  145 + case CDF_UCHAR:
  146 + return "CDF_UCHAR";
265 147  
266   - case CDF_UINT1:
267   - return "CDF_UINT1";
  148 + case CDF_UINT1:
  149 + return "CDF_UINT1";
268 150  
269   - case CDF_INT4:
270   - return "CDF_INT4";
  151 + case CDF_INT4:
  152 + return "CDF_INT4";
271 153  
272   - case CDF_UINT2:
273   - return "CDF_UINT2";
  154 + case CDF_UINT2:
  155 + return "CDF_UINT2";
274 156  
275   - case CDF_FLOAT:
276   - return "CDF_FLOAT";
  157 + case CDF_FLOAT:
  158 + return "CDF_FLOAT";
277 159  
278   - case CDF_REAL4:
279   - return "CDF_REAL4";
  160 + case CDF_REAL4:
  161 + return "CDF_REAL4";
280 162  
281   - case CDF_DOUBLE:
282   - return "CDF_DOUBLE";
  163 + case CDF_DOUBLE:
  164 + return "CDF_DOUBLE";
283 165  
284   - case CDF_REAL8:
285   - return "CDF_REAL8";
  166 + case CDF_REAL8:
  167 + return "CDF_REAL8";
286 168  
287   - case CDF_UINT4:
288   - return "CDF_UINT4";
  169 + case CDF_UINT4:
  170 + return "CDF_UINT4";
289 171  
290   - case CDF_EPOCH:
291   - return "CDF_EPOCH";
  172 + case CDF_EPOCH:
  173 + return "CDF_EPOCH";
292 174  
293   - case CDF_EPOCH16:
294   - return "CDF_EPOCH16";
295   - }
296   -}
  175 + case CDF_EPOCH16:
  176 + return "CDF_EPOCH16";
  177 + }
  178 +}
297 179 \ No newline at end of file
... ...