00001 #include <stdlib.h>
00002 #include "nmd.h"
00003
00004
00005 int main(int argc,char **argv) {
00006 NMD_metadata nmd; NMDErrorCode ierr;
00007 NMDTruth flg; NMDDataType t;
00008 int *ii,*iir,len; double *rr;
00009 PetscFunctionBegin;
00010 PetscInitialize(&argc,&argv,0,0);
00011
00012 ierr = NMDCreateObject(&nmd); NMD_ERR_RETURN(ierr);
00013
00014 NMD_MALLOC(ii,5,int,"int array");
00015 NMD_MALLOC(rr,2,double,"double array");
00016 ii[2] = 15; rr[1] = 37.2;
00017
00018 ierr = NMDSetArrayValue
00019 (nmd,"ctg","i array",NMDIntarray,&ii,5); NMD_ERR_RETURN(ierr);
00020 ierr = NMDSetArrayValue
00021 (nmd,"ctg","r array",NMDRealarray,&rr,2); NMD_ERR_RETURN(ierr);
00022
00023 ierr = NMDGetArrayValue
00024 (nmd,"ctg","r array",NULL,NULL,&len,&flg); NMD_ERR_RETURN(ierr);
00025 if (!flg) NMD_ERR_REPORT("Could not get r array info");
00026 if (len!=2) NMD_ERR_REPORTi("r array length mismatch",len);
00027
00028 ierr = NMDGetArrayValue
00029 (nmd,"ctg","i array",&t,(void*)&iir,NULL,&flg); NMD_ERR_RETURN(ierr);
00030 if (!flg) NMD_ERR_REPORT("Could not get i array");
00031 if (t!=NMDIntarray) NMD_ERR_REPORTi("i array type mismatch",(int)t);
00032 if (iir[2]!=15) NMD_ERR_REPORTi("i array value problem",iir[2]);
00033
00034 NMD_FREE(ii); NMD_FREE(rr);
00035 ierr = NMDDestroyObject(nmd); NMD_ERR_RETURN(ierr);
00036
00037 PetscFinalize();
00038 PetscFunctionReturn(0);
00039 }