FTN4 SUBROUTINE DBCRC(NAME,JCRC,JTMLN,JENLN .,ISTAT),92080-1X112 REV.2026 800515 C C C NAME: DBCRC C SOURCE: &DBCRC 92080-18112 C BINARY: %DBCRC ----NONE--- PART OF %TMSLB 92080-16100 C C PRMG: FRANCOIS GAULLIER HPG C C C ************************************************************** C * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. ALL RIGHTS * C * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- * C * PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH- * C * OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C ************************************************************** C C C ********************************************************************* C * * C * THIS SUBROUTINE RETURN THE DATA-BASE-CRC AND THE * C * MAXIMUM ENTRY & ITEM LENGTH. * C * * C * CALLING PARAMETERS : * C * * C * NAME : NAMR ARRAY USED IN DBOPN CALL * C * ICRC : CRC IS RETURN HERE * C * ITMLN : MAXIMUM ITEM LENGTH IS RETURN HERE (WORDS) * C * ENTLN : MAXIMUM ENTRY LENGTH IS RETURN HERE (WORDS) * C * ISTAT : IF 0 SUCCESFULL OPERATION * C * NOT 0 IMAGE ERROR IN ISTAT * C * * C * THE DATA-BASE-CRC IDENTIFY EXACTLY A SCHEMA, ATTACHED TO * C * A TRANSACTION SPECIFICATION, IT ALLOWS TO CHECK IF THE SCHEMA * C * HAS BEEN CHANGED. THE CAPACITY, THE WRITE/READ LEVEL CAN BE * C * CHANGED WHITOUT ANY PROBLEM. * C * * C * THE MAXIMUM CARACTERISTIQUE ARE ASSUMED AS FOLLOW: * C * * C * MAXIMUM NUMBER OF DATA-SET / DATA BASE : 50 * C * MAXIMUM NUMBER OF ITEM / DATA BASE : 255 * C * MAXIMUM NUMBER OF ITEM / ENTRY : 127 * C * * C * MAXIMUM ENTRY LENGTH (MEDIA+DATA) 256 WORDS * C * MAXIMUM ITEM LENGTH 63 WORDS * C * * C ********************************************************************* C C DIMENSION IBUF(50),ISTAT(10) C C INITIALISE C ICRC=0 MITMLN=0 MENTLN=0 C C COMPUTE ITEM CHECSUM C DO 100 I=1,255 CALL DBINF(NAME,I,102,ISTAT,IBUF) IF(ISTAT.EQ.125) GO TO 110 IF(ISTAT.NE.0) RETURN IBUF1=IBUF(10)*IBUF(11) IF(IBUF(9) .EQ. 2HX )IBUF1=(IBUF1+1)/2 IF(IBUF1 .GT. MITMLN) MITMLN=IBUF1 CALL CRC16(IBUF,22,ICRC) 100 CONTINUE 110 NIT=I-1 C C DATA SETS AND LINK CHECKSUM WORD C DO 200 I=1,50 CALL DBINF(NAME,I,202,ISTAT,IBUF) IF(ISTAT.EQ.125) GO TO 230 IF(ISTAT.NE.0) RETURN IF(IBUF(10) .GT. MENTLN) MENTLN=IBUF(10) CALL CRC16(IBUF,10,ICRC) C-----IF MASTER DATA SET, SAVE ALSO THE PATH DEFINITION IF(IBUF(9).EQ.2HD ) GO TO 200 CALL DBINF(NAME,I,301,ISTAT,IBUF) IF(ISTAT .NE. 0)RETURN CALL CRC16(IBUF(2),6*IBUF(1),ICRC) 200 CONTINUE C C RETURN RESULT TO THE USER C 230 JCRC=ICRC JTMLN=MITMLN JENLN=MENTLN 3010 ISTAT=0 C RETURN END END$