/* CleanupMPI.c */
#include "../BridgeMPI.h"
#define MYDEBUG 1
#if MYDEBUG > 0
static int count_Cleanup = 0 ;
static double time_Cleanup = 0.0 ;
#endif
/*--------------------------------------------------------------------*/
/*
--------------------------------------------
purpose -- to free the owned data structures
return values --
1 -- normal return
-1 -- data is NULL
created -- 98aug10, cca
--------------------------------------------
*/
int
CleanupMPI (
void *data
) {
BridgeMPI *bridge = (BridgeMPI *) data ;
#if MYDEBUG > 0
double t1, t2 ;
MARKTIME(t1) ;
count_Cleanup++ ;
if ( bridge->myid == 0 ) {
fprintf(stdout, "\n (%d) CleanupMPI()", count_Cleanup) ;
fflush(stdout) ;
}
#endif
#if MYDEBUG > 1
fprintf(bridge->msgFile, "\n (%d) CleanupMPI()", count_Cleanup) ;
fflush(bridge->msgFile) ;
#endif
bridge->pencil->inpmtxA = NULL ;
bridge->pencil->inpmtxB = NULL ;
Pencil_free(bridge->pencil) ;
IVL_free(bridge->symbfacIVL) ;
FrontMtx_free(bridge->frontmtx) ;
ETree_free(bridge->frontETree) ;
SubMtxManager_free(bridge->mtxmanager) ;
IV_free(bridge->oldToNewIV) ;
IV_free(bridge->newToOldIV) ;
IV_free(bridge->vtxmapIV) ;
IV_free(bridge->ownersIV) ;
IV_free(bridge->myownedIV) ;
if ( bridge->rowmapIV != NULL ) {
IV_free(bridge->rowmapIV) ;
}
if ( bridge->info != NULL ) {
MatMul_cleanup(bridge->info) ;
DenseMtx_free(bridge->Xloc) ;
DenseMtx_free(bridge->Yloc) ;
}
SolveMap_free(bridge->solvemap) ;
#if MYDEBUG > 0
MARKTIME(t2) ;
time_Cleanup += t2 - t1 ;
if ( bridge->myid == 0 ) {
fprintf(stdout, ", %8.3f seconds, %8.3f total seconds, ",
t2 - t1, time_Cleanup) ;
fflush(stdout) ;
}
#endif
#if MYDEBUG > 1
fprintf(bridge->msgFile, ", %8.3f seconds, %8.3f total seconds, ",
t2 - t1, time_Cleanup) ;
fflush(bridge->msgFile) ;
#endif
return(1) ; }
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1