NMD
Functions
u14.c File Reference
#include <stdlib.h>
#include "memory.h"
#include "nmd.h"
Include dependency graph for u14.c:

Go to the source code of this file.

Functions

int main (int argc, char **argv)

Function Documentation

int main ( int  argc,
char **  argv 
)

Object cloning with scalars

Definition at line 6 of file u14.c.

References NMD_FREE, NMDCloneObject(), NMDCreateObject(), NMDDestroyObject(), NMDFalse, NMDInt, NMDReal, NMDReportObject(), and NMDSetValue().

                               {
  NMD_metadata nmd,nmd2; NMDErrorCode ierr; 
  int i=5; double r=6.7;
  PetscFunctionBegin;
  PetscInitialize(&argc,&argv,0,0);

  ierr = NMDCreateObject(&nmd); NMD_ERR_RETURN(ierr);
  ierr = NMDCreateObject(&nmd2); NMD_ERR_RETURN(ierr);

  i = 1.12;
  ierr = NMDSetValue(nmd,"cat1","cmp1",NMDInt,&i); NMD_ERR_RETURN(ierr);
  i = 2.81;
  ierr = NMDSetValue(nmd,"cat1","cmp2",NMDInt,&i); NMD_ERR_RETURN(ierr);
  r = 3.14;
  ierr = NMDSetValue(nmd,"cat1","cmp3",NMDReal,&r); NMD_ERR_RETURN(ierr);
  r = 5.21;
  ierr = NMDSetValue(nmd,"cat1","cmp4",NMDReal,&r); NMD_ERR_RETURN(ierr);

  ierr = NMDCloneObject(nmd,nmd2); NMD_ERR_RETURN(ierr);
  {
    const char *s1,*s2;
    /* report the original object */
    ierr = NMDReportObject(nmd,NMDFalse,&s1,&s2,'\n',0,0); NMD_ERR_RETURN(ierr);
    printf("keys:\n%s\nvalues:\n%s\n",s1,s2);
    NMD_FREE(s1);
    NMD_FREE(s2);
    /* report the clone */
    ierr = NMDReportObject(nmd2,NMDFalse,&s1,&s2,'\n',0,0); NMD_ERR_RETURN(ierr);
    printf("keys:\n%s\nvalues:\n%s\n",s1,s2);
    NMD_FREE(s1);
    NMD_FREE(s2);
  }

  ierr = NMDDestroyObject(nmd); NMD_ERR_RETURN(ierr);
  ierr = NMDDestroyObject(nmd2); NMD_ERR_RETURN(ierr);

  PetscFinalize();
  PetscFunctionReturn(0);
}

Here is the call graph for this function: