SUBROUTINE OPENF(CHAN,FILE,ERROR) INTEGER CHAN,FILE(1),ERROR INTEGER STRING(10) INTEGER CHARF,CHART,COMMA,ZERO,BLANK INTEGER SUCESS,GCHAR DATA CHARF,CHART,COMMA,ZERO,BLANK/70,84,44,48,32/ DATA STRING/10*0/ ERROR=1 IF(CHAN.GT.99.OR.CHAN.LE.0)GOTO 30 CALL PCHAR(STRING,1,CHARF) CALL PCHAR(STRING,2,CHART) CALL PCHAR(STRING,3,CHAN/10+ZERO) CALL PCHAR(STRING,4,MOD(CHAN,10)+ZERO) CALL PCHAR(STRING,5,COMMA) DO 10 IK=1,32 I=GCHAR(FILE,IK) IF(I.EQ.0.OR.I.EQ.32)GOTO 20 CALL PCHAR(STRING,IK+5,I) 10 CONTINUE GOTO 30 20 CONTINUE IK=IK+5 CALL EST(',,C',STRING,IK,IK+2) IK=IK+2 CALL EMASFC('DEFINE',6,STRING,IK) IK=SUCESS(I) IF(IK.EQ.0)GOTO 40 WRITE(6,100)IK 100 FORMAT(' ',' RESULT CODE =',I6) 30 ERROR=-1 40 CONTINUE RETURN END SUBROUTINE OPENN(CHAN,FILE,ERROR) INTEGER CHAN,FILE(1),ERROR CALL OPENF(CHAN,FILE,ERROR) RETURN END SUBROUTINE CLOSF(CHAN,FILE) INTEGER CHAN,FILE(1) INTEGER STRING,ZERO INTEGER GCHAR DATA STRING,ZERO/' ',48/ CALL CLOSEF(CHAN) CALL PCHAR(STRING,1,CHAN/10+ZERO) CALL PCHAR(STRING,2,MOD(CHAN,10)+ZERO) CALL EMASFC('CLEAR',5,STRING,2) DO 10 IK=1,20 I=GCHAR(FILE,IK) IF(I.EQ.0.OR.I.EQ.32)GOTO 20 10 CONTINUE 20 CONTINUE CALL EMASFC('DISCONNECT',10,FILE,IK-1) RETURN END SUBROUTINE DELETE(CHAN,FILE) INTEGER CHAN,FILE(1) INTEGER GCHAR CALL CLOSF(CHAN,FILE) DO 10 IK=1,32 IF(GCHAR(FILE,IK).EQ.0.OR.GCHAR(FILE,IK).EQ.32)GOTO 20 10 CONTINUE 20 CONTINUE CALL EMASFC('DESTROY',7,FILE,IK-1) RETURN END