Actual source code: plapack.c

      1: #define PETSC_DLL

     3:  #include petsc.h
      4: #ifdef PETSC_HAVE_PLAPACK
      6:   #include "PLA.h"
      8: #endif

     12: /*@C
     13:   PetscPLAPACKInitializePackage - This function initializes everything in the Petsc interface to PLAPACK. It is
     14:   called from PetscDLLibraryRegister() when using dynamic libraries, and on the call to PetscInitialize()
     15:   when using static libraries.

     17:   Input Parameter:
     18:   path - The dynamic library path, or PETSC_NULL

     20:   Level: developer

     22: .keywords: Petsc, initialize, package, PLAPACK
     23: .seealso: PetscInitializePackage(), PetscInitialize()
     24: @*/
     25: PetscErrorCode PETSC_DLLEXPORT PetscPLAPACKInitializePackage(char *path)
     26: {
     27: #ifdef PETSC_HAVE_PLAPACK
     28:   MPI_Comm comm;
     29:   int      initPLA;

     33:   PLA_Initialized(&initPLA);
     34:   if (!initPLA) {
     35:     PLA_Comm_1D_to_2D_ratio(PETSC_COMM_WORLD, 1.0, &comm);
     36:     PLA_Init(comm);
     37:   }
     38:   return(0);
     39: #else
     41:   return(0);
     42: #endif
     43: }

     47: /*@C
     48:   PetscPLAPACKFinalizePackage - This function destroys everything in the Petsc interface to PLAPACK. It is
     49:   called from PetscFinalize().

     51:   Level: developer

     53: .keywords: Petsc, destroy, package, PLAPACK
     54: .seealso: PetscFinalize()
     55: @*/
     56: PetscErrorCode PETSC_DLLEXPORT PetscPLAPACKFinalizePackage(void)
     57: {
     58: #ifdef PETSC_HAVE_PLAPACK

     62:   PLA_Finalize();
     63:   return(0);
     64: #else
     66:   return(0);
     67: #endif
     68: }