I guess I'm still missing something...
Here's the compiler message and the code in question. Line 17 is the declaration for the KEY variable. Line 38 is the call to GET_KEY_OR_YIELD.
Note: this S/W was written by someone else 30 years ago, please pardon the coding style/practices 😃
------ Build started: Project: RATS_PTLOA, Configuration: Debug .NET ------
Building project RATS_PTLOA...
Updating References...
Compiling file: brktst.f
C:\FTN_RATS\RATS PTLOA\brktst.F(17) : comment 981: Specifying the kind of the type INTEGER with a constant is non-portable - 'SELECTED_INT_KIND(4)' would be better
C:\FTN_RATS\RATS PTLOA\brktst.F(38 ) : error 32: Statement not recognised
There were compile errors, abandoning link...
Build log saved at: 'file://C:\FTN_RATS\RATS PTLOA\Debug\NET\buildlog.txt'
RATS_PTLOA build failed.
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
SUBROUTINE HPIBX(NAMP,ICOUN,A)
USE NetDeclarations
include <windows.ins>
COMMON/STUDA/IA(25),IB(25),IC(25)
COMMON/LUS/LU,LU1,IDCB(144)
COMMON/RDPD/MDBF(150)
DIMENSION BUF(3,25),A(*),AMAX(3),AMIN(3)
CHARACTER (LEN=*), PARAMETER :: NUL = CHAR(0)
CHARACTER*128 ACQDEF
CHARACTER*128 ACQTST
CHARACTER*128 ACQDAT
INTEGER ISCNUM
INTEGER ISTTUS
INTEGER (KIND=2) KEY
NRDS=NAMP
PIR=0.017453292
SMSN=0.
SMCN=0.
DO 10 I=1,NRDS
C TRIGGER THE BUS DEVICE
ICYCL=0
CALL USDELAY(100)
IERCNT = IERCNT+1
ISTAT=IAND(ISTAT,Z'100')
LW=0!ISSW(15)
ICYCL=ICYCL+1
IF(ICYCL.GE.1000) GO TO 700
IF(LW.GT.256)WRITE(LU,1050)ISTAT
1050 FORMAT(O6)
GET_KEY_OR_YIELD@(KEY)
IF (KEY.EQ.27) GOTO 700
WRITE(ACQDEF,50)NUL
50 FORMAT('ACQ DEF',A1)
WRITE(ACQTST,52)NUL
52 FORMAT('ACQ TST',A1)
WRITE(ACQDAT,54)NUL
54 FORMAT('ACQ DAT',A1)
ISCNUM = 1
ISTTUS = 0
CALL RANGE_CONTROL__MEAS_ACQUIRE(ACQDEF, ACQTST, ISCNUM,
+ACQDAT, ISTTUS)
SMSN=SMSN+SIN(BUF(3,I)*PIR)
SMCN=SMCN+COS(BUF(3,I)*PIR)
10 CONTINUE
FN=FLOAT(NRDS)
FNM=FLOAT(NRDS-1)
DO 20 M=1,3
K=M-1
SUM=0.
SUM2=0.
VAR=0.
AVG=0.
STD=0.
AMAX=-100.
AMIN=10.
DO 30 N=1,NRDS
VAL=BUF(M,N)
SUM=SUM+VAL
SUM2=SUM2+VAL*VAL
IF(BUF(M,N).GT.AMAX(M))AMAX(M)=BUF(M,N)
IF(BUF(M,N).LT.AMIN(M))AMIN(M)=BUF(M,N)
30 CONTINUE
AVG=SUM/FN
VAR=(SUM2-FN*AVG*AVG)/FNM
IF(VAR.GT.0) STD=SQRT(VAR)
K=K+M
A(K)=AVG
IF(K.LT.5) A(K+1)=STD
20 CONTINUE