The LISTDCB program just opens and lists the DCB attributes of data sets specified by DD statements that start with DS. I was afraid OPEN would ABEND opening DS03, but it it didn't. It produced this output.
DDNAME RECFM LRECL BLKSIZE
DS01 F 80 80
DS02 VBA 125 27998
DS03 F 80 27998
Fixed-length records will be padded to the SORTOUT LRECL (SYSUT2 LRECL in a
SYNCGENR application) when the SORTOUT LRECL is greater than the SORTIN or
internally processed record length. Records will be truncated to the SORTOUT
LRECL (SYSUT2 LRECL in a SYNCGENR application) when the SORTOUT LRECL is less
than the SORTIN or internally processed record length.
AFAIK, the GDG node referred by name in DCB= parameter does not include attributes like LRECL. That's why without explicit LRECL= the record length remains undefined, and SORT utility substitutes it from the calculated output record size.
Those DCB attributes are defined for every instance (or every generation) of GDG referred via (+N) parameter appended to GDG name. But I doubt if this format is accepted inside
and I'm lazy to verify this.