OK, it's not clear if you have coded FILE STATUS on the SELECT, or whether you are letting the run-time deal with it.
You are probably getting a message with more information.
Either way, what you also need is an LRECL. So add an LRECL of 32767, that matches the maximum size in your program.
V1 or V2 are more convenient than V3, as you will know the length of each record.
If you have variable-length unblocked records, the data will contain the RDW.
If you have variable-length blocked records, you will have a BDW, and an RDW for each record, within the single "record" you read, which will be the complete block plus the BDW.
For fixed-length records you'll just get a lump of data, all except, most often, the last, being the same size. You won't know if they are blocked or not.
So your program will need to acquire information about the actual dataset, before the data can be correctly interpreted - depending on what you want to do.
BillWoodger