Removed struct-member-based variable array lengths in function arguments, since it seems PGI compilers do not support this. Instead, all array lengths are passed as integers before the arrays, even though this is redundant with the struct contents. The alternative would be to pass the arrays as simple pointers, then cast the pointers to variable-length arrays inside the functions, but this is even messier,