/* init.c */
#include "../SolveMap.h"
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------
purpose -- set the scalars and allocate the vectors for the object
created -- 98mar19, cca
------------------------------------------------------------------
*/
void
SolveMap_init (
SolveMap *solvemap,
int symmetryflag,
int nfront,
int nproc,
int nblockUpper,
int nblockLower
) {
/*
---------------
check the input
---------------
*/
if ( solvemap == NULL || symmetryflag < 0 || nfront <= 0
|| nproc < 0 || nblockUpper < 0 || nblockLower < 0 ) {
fprintf(stderr, "\n fatal error in SolveMap_init(%p,%d,%d,%d,%d,%d)"
"\n bad input\n", solvemap, symmetryflag, nfront,
nproc, nblockUpper, nblockLower) ;
exit(-1) ;
}
/*
----------------
clear the object
----------------
*/
SolveMap_clearData(solvemap) ;
/*
---------------
set the scalars
---------------
*/
solvemap->symmetryflag = symmetryflag ;
solvemap->nfront = nfront ;
solvemap->nproc = nproc ;
solvemap->nblockUpper = nblockUpper ;
solvemap->nblockLower = nblockLower ;
/*
------------------------
allocate the data arrays
------------------------
*/
solvemap->owners = IVinit(nfront, -1) ;
solvemap->rowidsUpper = IVinit(nblockUpper, -1) ;
solvemap->colidsUpper = IVinit(nblockUpper, -1) ;
solvemap->mapUpper = IVinit(nblockUpper, -1) ;
if ( symmetryflag == SPOOLES_NONSYMMETRIC && nblockLower > 0 ) {
solvemap->rowidsLower = IVinit(nblockLower, -1) ;
solvemap->colidsLower = IVinit(nblockLower, -1) ;
solvemap->mapLower = IVinit(nblockLower, -1) ;
}
return ; }
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1