I recommend you start by finding out what the dynamic allocation is doing. The return code you are testing is NOT set by BPXWDYN, so I have no idea why you are checking it after the CALL.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INP-FILE ASSIGN TO INPFILE
FILE STATUS IS WS-STAT.
DATA DIVISION.
FILE SECTION.
FD INP-FILE.
01 WS-INP-REC PIC X(80).
WORKING-STORAGE SECTION.
01 WS-VARIABLES.
05 WS-PGM PIC X(8) VALUE 'BPXWDYN'.
05 WS-FILE-NAME PIC X(16).
05 WS-ALLOC-STRING PIC X(100).
05 WS-STAT PIC X(02).
77 WS-DYN-RC PIC S9(08) COMP-5.
PROCEDURE DIVISION.
MOVE 'FILE.FILE1' TO WS-FILE-NAME
STRING 'ALLOC DD(INPFILE) DSN('WS-FILE-NAME') SHR '
'CATALOG ' 'LRECL(80) RECFM(F,B)'
DELIMITED BY SIZE INTO WS-ALLOC-STRING
END-STRING.
CALL WS-PGM USING WS-ALLOC-STRING
RETURNING WS-DYN-RC.
DISPLAY WS-DYN-RC.
IF WS-DYN-RC NOT = ZERO
STOP RUN
END-IF.
OPEN INPUT INP-FILE.
READ INP-FILE.
MOVE WS-INP-REC TO WS-REC
DISPLAY WS-REC
CLOSE INP-FILE.
GOBACK.
Also, your STRING command could use some serious formatting to make better sense; if your file name is not exactly 16 bytes then you are asking for problems.