We have several large codes we are trying to compile with pgf90. We want to port them to use GPU’s, therefore correct execution with pgf90 is essential for us.
The codes use mpi for parallisation, but under restart all threads reads and writes from one file.
We open the files as streams, and use the fortran 2003 POS specifier
read(data_unit, pos=my_pos) x
to read chunks from arbitrary places in the data file into each thread (a single restart data file can have individual records of up to 80GB, so it would be unfeasible to read everything into one thread and then distribute). gfortran, g95, and intel ifort supports the position specifier POS in the read statement (see also sec 9.5 and 9.5.1 in the F2003 stadard). I just tried with pgf90 version 9.0-4, and it does not.
Is it implemented in the new version, which is to be released next week, or do you plan to implement it ? It should be trivial; it is just adding a call to positioning the file_pointer correctly. But for us it is essential to be able to read subsets of files.