/* PIV.c */
#include "../Utilities.h"
/*--------------------------------------------------------------------*/
/*
--------------------------------------------
purpose -- to free a pointer to int vector
must have been created by PIVinit
created -- 95sep22, cca
--------------------------------------------
*/
void
PIVfree (
int **p_ivec
) {
if ( p_ivec != NULL ) {
FREE(p_ivec) ;
}
return ; }
/*--------------------------------------------------------------------*/
/*
---------------------------------------------
purpose -- to allocate and initialize to NULL
a vector of pointer to int
created -- 95sep22, cca
---------------------------------------------
*/
int **
PIVinit (
int size
) {
int **p_ivec = NULL ;
if ( size > 0 ) {
int i ;
ALLOCATE(p_ivec, int *, size) ;
for ( i = 0 ; i < size ; i++ ) {
p_ivec[i] = NULL ;
}
}
return(p_ivec) ; }
/*--------------------------------------------------------------------*/
/*
-------------------------------------
purpose -- to set up a pointer vector
created -- 95sep22, cca
-------------------------------------
*/
void
PIVsetup (
int length,
int sizes[],
int ivec[],
int *p_ivec[]
) {
if ( length > 0 ) {
if ( sizes == NULL || ivec == NULL || p_ivec == NULL ) {
fprintf(stderr, "\n fatal error in PIVsetup, invalid data"
"\n length = %d, sizes = %p, ivec = %p, p_ivec = %p\n",
length, sizes, ivec, p_ivec) ;
exit(-1) ;
} else {
int j ;
for ( j = 0 ; j < length ; j++ ) {
if ( sizes[j] > 0 ) {
p_ivec[j] = ivec ;
ivec += sizes[j] ;
} else {
p_ivec[j] = NULL ;
}
}
}
}
return ; }
/*--------------------------------------------------------------------*/
/*
-----------------------------------
purpose -- to copy a pointer vector
created -- 95sep22, cca
-----------------------------------
*/
void
PIVcopy (
int length,
int *p_ivec1[],
int *p_ivec2[]
) {
if ( length > 0 ) {
if ( p_ivec1 == NULL || p_ivec2 == NULL ) {
fprintf(stdout, "\n fatal error in PIVcopy, invalid data"
"\n length = %d, p_ivec1 = %p, p_ivec2 = %p\n",
length, p_ivec1, p_ivec2) ;
exit(-1) ;
} else {
int j ;
for ( j = 0 ; j < length ; j++ ) {
p_ivec1[j] = p_ivec2[j] ;
}
}
}
return ; }
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1