update support of load function
1. the built-in load will mark the data variable to unknown size;
2. for the back end, it needs a user-defined subroutine to preprocess
the data file to get the shape of the data, and then use the result to
allocate data variable.