* Last processed by NICE on 12-Jun-2000 15:53:00 * Customized for : IEEE, LINUX, UNIX, MOTIF, F77 PROGRAM POINT_MAIN c------------------------------------------------------------------------ c PLateau de Bure Interferometer control Main routine c Global ---------------------------------------------------------------- c Local ----------------------------------------------------------------- INTEGER STATUS,SIC_GET_FOREIGN,SIC_PURGE INTEGER NL,L,LENC CHARACTER COMMAND*80,NAME*12,LOGFILE*80,INIT*80 CHARACTER MESS*80 CHARACTER BACKSLASH*1 LOGICAL EXIST,ERROR * BACKSLASH=CHAR(92) STATUS = SIC_GET_FOREIGN(COMMAND,NL) IF (STATUS.NE.1) CALL SYSEXI(STATUS) * * Build the names of the message and log files. NAME = 'POINT' CALL SIC_PARSEF (NAME,LOGFILE,'GAG_LOG:','.LOG') * Get rid of older versions STATUS = SIC_PURGE (LOGFILE,2) IF (STATUS.NE.1) CALL SYSEXI(STATUS) * * Initialize the command monitor NAME = 'POINT' CALL SIC_OPT(NAME,LOGFILE,.TRUE.) C+VMS c CALL LIB$ESTABLISH('GR_HANDLER') C-VMS CALL LOAD_POINT * MESS = 'SIC'//BACKSLASH//'SIC EXTENSION .POINT' CALL EXEC_POINT(MESS) CALL SIC_SETSYMBOL('SET','POINT'//BACKSLASH//'SET',ERROR) CALL SIC_SETSYMBOL('SH*OW','POINT'//BACKSLASH//'SHOW',ERROR) * * User dependent initialisations NAME = 'INIT' CALL SIC_PARSEF (NAME,INIT,'GAG_PROCS:','.POINT') L = LENC(INIT) INQUIRE (FILE=INIT(1:L),EXIST=EXIST) IF (EXIST) THEN MESS = '@ '//INIT(1:L) CALL EXEC_POINT(MESS) ENDIF * IF (NL.NE.0) THEN CALL PLAY_POINT(COMMAND(1:NL)) ELSE CALL ENTER_POINT ENDIF CALL GTCLOS END * SUBROUTINE EXEC_POINT(BUFFER) LOGICAL ERROR CHARACTER*(*) BUFFER CHARACTER LINE*256, COMM*12, LANG*12 INTEGER ICODE,OCODE * LINE = BUFFER ICODE = -1 GOTO 10 * ENTRY PLAY_POINT(BUFFER) LINE = BUFFER ICODE = 2 GOTO 10 * ENTRY ENTER_POINT ICODE = 1 GOTO 10 * * Optional Return code 1 : End of subroutine mode * code 2 : End of interactive mode * 10 CALL SIC_RUN (LINE,LANG,COMM,ERROR,ICODE,OCODE) IF (OCODE.NE.0) RETURN ICODE = 0 IF (LANG.EQ.'POINT') THEN CALL RUN_POINT(LINE,COMM,ERROR) ELSEIF (LANG.EQ.'GREG1') THEN CALL RUN_GREG1(LINE,COMM,ERROR) ELSEIF (LANG.EQ.'GTVL') THEN CALL RUN_GTVL(LINE,COMM,ERROR) ELSE WRITE(6,*) 'E-POINT, Unrecognized language ',LANG ERROR = .TRUE. ENDIF GOTO 10 END