I'm just a C novice, so maybe I'm way off base here... but isn't the solution something like the following: madd(a, b, c, m, n) double *a, *b, *c; int m, n; { double *end; end = a + m * n; for ( ; a<end; ++a, ++b, ++c) *c = *a + *b; } - Dave Elliott davee at hpda.hp.com