char id_malloc[] = "@(#)malloc_.c 1.1";
* allows f77 programs to dynamicly allocate space
* call malloc(need, addr)
* call falloc( nelem, elsize, clean, basevec, addr, offset )
* integer nelem, elsize, clean, addr, offset
* malloc() & falloc() alloc space and put address in 'addr', 0 if can't
* do it. free() frees a block. malloc() gets a block of at least
* 'need' bytes; falloc() gets at least nelem*elsize bytes, zeros
* the block if clean=1, and returns an offset so that the block
* can be referenced as basevec(offset+1)...basevec(offset+nelem)
* in the calling program. falloc() gets an extra element so that
* all the elements will be in the block even if address arithmetic
char *calloc(), *malloc();
falloc_( nelem
, elsize
, clean
, basevec
, addr
, offset
)
int *nelem
, *elsize
, *clean
, *offset
;
*addr
= calloc( *nelem
+ 1, *elsize
);
*addr
= malloc( (*nelem
+ 1) * *elsize
);
*offset
= ((*addr
- basevec
) / *elsize
) + 1;