Jason, I'm glad your interest was piqued by my question. I wasn't able to run your example because the code to open a file to write or read were not present. But from looking at your reply, it looks like you answered my question. I WAS using the 'first' option to allocate memory, so most likely my data was not contiguous. I will try the 2nd way as you explained. Only other question is why in your example the number of 'groups' changes from 40 (in Array to File) to 1 (in File to Array)? See below. Thanks a lot!
---------------
ArrayToFile (pathname, p2Din[0], VAL_DOUBLE, 1600, 40, VAL_GROUPS_TOGETHER, VAL_GROUPS_AS_COLUMNS,
VAL_CONST_WIDTH, 10, VAL_ASCII, VAL_TRUNCATE);
FileToArray (pathname, p2Dout[0], VAL_DOUBLE, 1600, 1,
VAL_GROUPS_TOGETHER, VAL_GROUPS_AS_COLUMNS, VAL_ASCII);