SUBROUTINE ZEBI_LSM C---------------------------------------------------------------------- C- C- Purpose and Methods : Load the lookup common blocks from an object file. C- C- Inputs : none C- Outputs : none C- Controls: none C- C- Created 19-JUN-1991 MICHIGAN STATE UNIVERSITY, TRIGGER CONTROL SOFTWARE C- C---------------------------------------------------------------------- IMPLICIT NONE INCLUDE 'D0$INC:ZEBWRK.INC' INCLUDE 'LSMP$SOURCE:PARSE_TOKENS.PARAMS' INCLUDE 'LSMP$SOURCE:PARSE_TOKENS.INC' INTEGER TRULEN EXTERNAL TRULEN INTEGER PFNUM EXTERNAL PFNUM INTEGER READPF EXTERNAL READPF C C Local Parameters C INTEGER NUM_PARAMETERS INTEGER ROUTINE_ID PARAMETER (NUM_PARAMETERS = 3) PARAMETER (ROUTINE_ID = 547) C C Local Variables C CHARACTER*33 PROMPTS(NUM_PARAMETERS) CHARACTER*1 TYPES(NUM_PARAMETERS) INTEGER LIMITS(2,NUM_PARAMETERS) CHARACTER*5 REVISION_STRING LOGICAL DO_DIAGNOSTICS CHARACTER*90 FULL_NAME INTEGER STRING_LENGTH, NAME_LENGTH INTEGER STATUS INTEGER UNIT_NUM C PROMPTS(1) = 'Directory of LSO File' TYPES(1) = 'C' LIMITS(1,1) = 0 LIMITS(2,1) = 0 C PROMPTS(2) = 'Name of LSO File' TYPES(2) = 'C' LIMITS(1,2) = 0 LIMITS(2,2) = 0 C PROMPTS(3) = 'Revision number of File' TYPES(3) = 'I' LIMITS(1,3) = -1 LIMITS(2,3) = 9999 C CALL GETDIS(NUM_PARAMETERS, PROMPTS, TYPES, LIMITS, & LSM_DIRECTORY_NAME, LSM_FILE_NAME, LSM_REVISION_NUMBER) C C Return if ABORT was selected C IF (PFNUM() .NE. 0) GOTO 999 C LSM_FILE_LOADED = .FALSE. LSO_FILE_LOADED = .FALSE. CALL INZWRK() C NAME_LENGTH = 1 FULL_NAME = ' ' C C Build the full file name C C Add a ':' to the end of the directory name, if necessary C NAME_LENGTH = TRULEN(LSM_DIRECTORY_NAME) IF ((LSM_DIRECTORY_NAME(NAME_LENGTH:NAME_LENGTH) .NE. ':') .AND. & (LSM_DIRECTORY_NAME(NAME_LENGTH:NAME_LENGTH) .NE. ']') .AND. & (NAME_LENGTH .LT. 40) .AND. (NAME_LENGTH .GE. 1)) THEN LSM_DIRECTORY_NAME(NAME_LENGTH+1:NAME_LENGTH+1) = ':' ENDIF C FULL_NAME = LSM_DIRECTORY_NAME(1:TRULEN(LSM_DIRECTORY_NAME)) // & LSM_FILE_NAME(1:TRULEN(LSM_FILE_NAME)) IF ( LSM_REVISION_NUMBER .GE. 0 ) THEN WRITE(REVISION_STRING,100) LSM_REVISION_NUMBER 100 FORMAT( '_', I4.4 ) FULL_NAME = FULL_NAME(1:TRULEN(FULL_NAME)) & // REVISION_STRING(1:5) ENDIF FULL_NAME = FULL_NAME(1:TRULEN(FULL_NAME)) // '.LSO' NAME_LENGTH = TRULEN(FULL_NAME) C CALL PFLABL(' ', ' ', ' ', ' ') CALL STAMSG(' Reading file: '//FULL_NAME(1:NAME_LENGTH), & .TRUE.) C C Get a unit number for input C CALL GTUNIT(ROUTINE_ID, UNIT_NUM, STATUS) IF (STATUS .NE. 0) THEN CALL ABORT('Program error calling GTUNIT from ZEBI_LSM') ENDIF C C Read the input file C CALL READ_LSO(UNIT_NUM, FULL_NAME, STATUS) IF (STATUS .LT. 0) THEN CALL STAMSG(' Error reading file: '//FULL_NAME(1:NAME_LENGTH), & .TRUE.) GOTO 999 ENDIF C CALL RLUNIT(ROUTINE_ID, UNIT_NUM, STATUS) IF (STATUS .NE. 0) THEN CALL ABORT('Program error calling RLUNIT from ZEBI_LSM') ENDIF C CALL PFLABL('AGAIN',' ',' ','BACK') CALL STAMSG(' Loaded: '//FULL_NAME(1:NAME_LENGTH), & .TRUE.) C LSO_FILE_LOADED = .TRUE. C---------------------------------------------------------------------- 999 CALL PFWAIT() RETURN END