1af0996ceSBarry Smith #include <petsc/private/fortranimpl.h> 2c6db04a5SJed Brown #include <petscpc.h> 3e54e4138SSatish Balay 4e54e4138SSatish Balay #if defined(PETSC_HAVE_FORTRAN_CAPS) 5e54e4138SSatish Balay #define pcmgsetlevels_ PCMGSETLEVELS 6e54e4138SSatish Balay #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 7e54e4138SSatish Balay #define pcmgsetlevels_ pcmgsetlevels 8e54e4138SSatish Balay #endif 9e54e4138SSatish Balay 10*d5a8f7e6SBarry Smith PETSC_EXTERN void pcmgsetlevels_(PC *pc,PetscInt *levels,MPI_Fint comms[], PetscErrorCode *ierr) 11e54e4138SSatish Balay { 12*d5a8f7e6SBarry Smith MPI_Comm *ccomms; 13*d5a8f7e6SBarry Smith 14ed7e4eddSMatthew Knepley CHKFORTRANNULLOBJECT(comms); 15*d5a8f7e6SBarry Smith *ierr = PetscMalloc1(*levels,&ccomms);if (*ierr) return; 16*d5a8f7e6SBarry Smith for (PetscInt i=0; i<*levels; i++) { 17*d5a8f7e6SBarry Smith ccomms[i] = MPI_Comm_f2c(comms[i]); 18*d5a8f7e6SBarry Smith } 19*d5a8f7e6SBarry Smith *ierr = PCMGSetLevels(*pc,*levels,ccomms);if (*ierr) return; 20*d5a8f7e6SBarry Smith *ierr = PetscFree(ccomms); 21e54e4138SSatish Balay } 22e54e4138SSatish Balay 23