1 #if HAVE_CONFIG_H
2 #include "config.h"
3 #endif
4 
5 #include <stdio.h>
6 #include <minc.h>
7 
8 #define TRUE 1
9 #define FALSE 0
10 
main(int argc,char ** argv)11 int main(int argc, char **argv)
12 {
13    int icv, cdfid, img, max, min, dimvar;
14    static int dim[MAX_VAR_DIMS];
15    static struct { long len; char *name;} diminfo[] = {
16       { 3, MIzspace },
17       { 4, MIyspace },
18       { 5, MIxspace }
19    };
20    static int numdims=sizeof(diminfo)/sizeof(diminfo[0]);
21    static long coord[]={0,0,0};
22    static long count[]={3,4,5};
23    double dvalue;
24    short int ivalue[]={
25       111, 113, 115, 117, 119,
26       121, 123, 125, 127, 129,
27       131, 133, 135, 137, 139,
28       141, 143, 145, 147, 149,
29       211, 213, 215, 217, 219,
30       221, 223, 225, 227, 229,
31       231, 233, 235, 237, 239,
32       241, 243, 245, 247, 249,
33       311, 313, 315, 317, 319,
34       321, 323, 325, 327, 329,
35       331, 333, 335, 337, 339,
36       341, 343, 345, 347, 349
37    };
38    int i, j, k;
39    int cflag = 0;
40 
41 #if MINC2
42    if (argc == 2 && !strcmp(argv[1], "-2")) {
43        cflag = MI2_CREATE_V2;
44    }
45 #endif /* MINC2 */
46 
47    icv=miicv_create();
48    miicv_setint(icv, MI_ICV_DO_NORM, TRUE);
49    cdfid=micreate("test.mnc", NC_CLOBBER | cflag);
50    for (i=0; i<numdims; i++) {
51       dim[i]=ncdimdef(cdfid, diminfo[i].name, diminfo[i].len);
52       dimvar=micreate_std_variable(cdfid, diminfo[i].name, NC_DOUBLE,
53                                    0, &dim[i]);
54       miattputdbl(cdfid, dimvar, MIstep, 0.8);
55       miattputdbl(cdfid, dimvar, MIstart, 22.0);
56    }
57 
58    img=micreate_std_variable(cdfid, MIimage, NC_INT,
59                              numdims, dim);
60    (void) miattputdbl(cdfid, img, MIvalid_max, 32767.0);
61    (void) miattputdbl(cdfid, img, MIvalid_min, -32768.0);
62    max=micreate_std_variable(cdfid, MIimagemax, NC_DOUBLE, 1, dim);
63    min=micreate_std_variable(cdfid, MIimagemin, NC_DOUBLE, 1, dim);
64    ncendef(cdfid);
65    for (i=0; i<diminfo[0].len; i++) {
66       dvalue = 200;
67       coord[0]=i;
68       ncvarput1(cdfid, max, coord, &dvalue);
69       dvalue = -dvalue;
70       ncvarput1(cdfid, min, coord, &dvalue);
71    }
72    coord[0]=0;
73    miicv_attach(icv, cdfid, img);
74    miicv_put(icv, coord, count, ivalue);
75    for (i=0; i< sizeof(ivalue)/sizeof(ivalue[0]); i++)
76       ivalue[i] = 0;
77    miicv_get(icv, coord, count, ivalue);
78    for (i=0; i<3; i++) {
79       for (j=0; j<4; j++) {
80          for (k=0; k<5; k++) {
81             printf("%5d",ivalue[i*20+j*5+k]);
82          }
83          printf("\n");
84       }
85    }
86    miclose(cdfid);
87    miicv_free(icv);
88 
89    return 0;
90 }
91 
92 
93