PetscInitialize_(PETSC_NULL_CHARACTER, &ierr)
CHKERRA(ierr);
prom_init_parameters_( &epimetheus, &ierr
);
CHKERRA(ierr);
/* construct user data ... (eg, "coord", "edges",
etc. as specified in the users
guide) */
/* local data */
prom_init_local_( &epimetheus, coord, &numnd,
&nndf, edges, &numel, &nena, &nen1a, &one, &minc,
eq_id, &ierr );
CHKERRA(ierr); // global data
prom_init_global_( &epimetheus, &npLoc, &npGst,
proc_gnode, ghost_gnode, ghost_proc, &ierr );
CHKERRA(ierr);
/* init data is temporary - free ...*/
/* get objects*/
prom_get_a_( &epimetheus, &A, &ierr
); CHKERRA(ierr);
prom_get_b_( &epimetheus, &b, &ierr
); CHKERRA(ierr);
/* assemble application data (A and b) into objects ...*/
/* two exta levels*/
prom_new_level_( &epimetheus, &ii, &ierr
);
CHKERRA(ierr);
prom_new_level_( &epimetheus, &ii, &ierr
);
CHKERRA(ierr);
/* get ready for solves*/
prom_finalize_( &epimetheus, &ierr );
CHKERRA(ierr);
/* solve*/
prom_pre_solv_( &epimetheus, &nstep, &niter,
&ierr );
CHKERRA(ierr);
prom_solv_( &epimetheus, &niter, &energy,
&ierr );
CHKERRA(ierr);
/* look at ans ...*/
prom_get_x_( &epimetheus, &x, &ierr
);
CHKERRA(ierr);
/* clean up*/
prom_destroy_( &epimetheus, &ierr );
CHKERRA(ierr);
ierr = PetscFinalize();
CHKERRA(ierr);
return 0;
}