Thanks to everyone who replied to my request for information about
integers in J (see below).
Summarizing what I learned:
1. In J integer type is 15-bit (signed integers) [there are also
extended integers which can be much larger but are inevitably slower to
use]. This reflects the underlying implementation of J in C (for a
32-bit machine).
2. Attempts to use large integers overflows into floating point. In
some cases this maybe harmless but in my case I then tried to use the
floating point to index a list and got "x not int" error.
3. In my particular case, once I understood the problem, I have
been able to rewrite my program to avoid the overflow, and it seems to
solve the problem.
Thank you, John Dixon