CTITLEJSXSMP - JOBGEN REGION & BLANK COMMMON CALCULATION C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR J. C. SUN CA DESIGNER J. C. SUN CA LANGUAGE FORTRAN CA SYSTEM IBM AND CRAY CA WRITTEN 01-31-92 CA CA CA CALL JSXSMP (KPNA, KPRNO, OCCUR, PSIZE, CSIZE, UCSIZE, ERCODE) CA CA INPUT KPNA = PROCESS NAME A4 CA INPUT KPRNO = PROCESS NUMBER I4 CA INPUT OCCUR = OCCURRENCE NUMBER FOR PROCESS KPNA WITH I4 CA KPRNO CA OUTPUT PSIZE = REGION SIZE OF PROGRAM IN -KBYTES I4 CA OUTPUT CSIZE = RESERVED BLANK COMMON SIZE IN WORDS I4 CA OUTPUT UCSIZE = UNRESERVED BLANK COMMON SIZE IN WORDS I4 CA OUTPUT ERCODE = ERROR CODE (=16 IF NOT ABLE TO COMPUTE I4 CA THE REQUIRED PARAMETERS) CA CA CA COMPUTES THE PROGRAM SIZE (PSIZE) AND AMOUNT OF BLANK COMMON CA (CSIZE) NEEDED BY SPARC PROCESS XSMP REQUIRING SPECIAL CA CALCULATIONS. C C C EJECT C SUBROUTINE JSXSMP (KPNA, KPRNO, OCCUR, PSIZE, CSIZE, UCSIZE, * ERCODE) C C IMPLICIT INTEGER (A-Z) C C EXTERNAL FOIP C C CHARACTER*4 KPNA CHARACTER*80 CARD C C INTEGER CONSTANTS -- LOCAL C INTEGER IPR C C REAL CONSTANTS -- LOCAL C REAL DXI,DXJ,X0 DATA IPR / 98 / DATA THL / 190 / C C C ====================================================================== C GET LINE CARD PARAMETERS C ====================================================================== C DA = 1 CALL FORC ('LINE', 0, DA, CARD, * 120 ) C LCRLEN = S1CVBN (CARD, 41, 5) LCSI = S1CVBN (CARD, 46, 5) LCPI = S1CVBN (CARD, 51, 5) IF (LCPI .EQ. 0) LCPI = LCSI C C NT = LCRLEN/LCPI C C ====================================================================== C INITIALIZATION C ====================================================================== C C SET PROGRAM SIZE IN KILOBYTES C PSIZE = 20 C C ICC = 0 C C ====================================================================== C READ INPUT CARD (1) C ====================================================================== C DAC = 1 CALL FORC (KPNA, KPRNO, DAC, CARD, * 140) C C======================================================================= C C READ THE FIRST DEPTH POINT TO PROCESS C IXBEG = S1CVBN ( CARD, 11, 5 ) C C THIS IS A REQUIRED VALUE C IF (IXBEG .EQ. 0) IXBEG = 1 C C======================================================================= C C READ THE ENDING DEPTH POINT TO PROCESS C C======================================================================= C IXEND = S1CVBN ( CARD, 16, 5 ) C C THIS IS A REQUIRED VALUE C IF (IXEND .EQ. 0) IXEND = IXBEG C C======================================================================= C C READ THE INPUT DATA SET DEPTH POINT INCREMENT. SET THE DEFAULT C VALUE TO UNITY C IXINC = S1CVBN ( CARD, 21, 5 ) IF (IXINC .EQ. 0) IXINC = 1 C C======================================================================= C C OBTAIN THE TRACE SPACING ON THE INPUT DATA (FLOATING POINT VALUE) C CALL USCHFT ( CARD, 26, 5, DXI ) C C THIS IS A REQUIRED VALUE C IF (DXI .EQ. 0.) DXI = 1.0 C C======================================================================= C C OBTAIN THE TRACE SPACING FOR THE OUTPUT (FLOATING POINT VALUE) C C======================================================================= C CALL USCHFT ( CARD, 31, 5, DXJ ) C C THIS IS A REQUIRED VALUE SO SET ERROR RETURN C IF (DXJ .EQ. 0.) DXJ = 1.0 C C======================================================================= C C READ THE STARTING DEPTH POINT VALUE ON THE OUTPUT. SET THE DEFAULT C VALUE TO 1 C C======================================================================= C IF (S1CPCH ( CARD, 36, ' ', 1, 5 ) .NE. 0) THEN JXBEG = S1CVBN ( CARD, 36, 5 ) ELSE JXBEG = 1 ENDIF C C======================================================================= C C OBTAIN THE DISTANCE BETWEEN THE FIRST DEPTH POINT ON THE OUTPUT C AND THE FIRST DEPTH POINT OF THE INPUT DATA SET (FLOATING POINT). C DEFAULT VALUE IS ZERO. C CALL USCHFT ( CARD, 41, 5, X0 ) C C======================================================================= C C C WRITE(IPR,8000) IXBEG,IXEND,DXI,DXJ,JXBEG,X0 C C C ===================================================================== C DETERMINE RESERVED MEMORY REQUIREMENTS C ===================================================================== C NX=(IXEND-IXBEG)/IXINC+1 MX=(NX-1)*DXI/DXJ+1 C C SET THE NUMBER OF FILTER COEFFICIENTS PER FILTER C LR=20 C KA = 1 KE = KA + THL KF = KE + NT*(NX+LR) KG = KF + NT*MX KH = KG + NX*10 ICC = KH + 101*LR C C IF(ICC.EQ.0) GO TO 340 C C======================================================================= C NORMAL EXIT C======================================================================= C CSIZE = ICC C C PART 3. COMPUTE UNRESERVED BLANK COMMON SIZE IN WORDS (UCSIZE) C C C THIS VALUE IS THE TOTAL NUMBER OF WORDS USED IN UNRESERVED BLANK C COMMON I.E. SCRATCH AREA OR 'SA' FOR SPARC 'SHELLS'. C UCSIZE = 0 C C C WRITE(IPR,8240) PSIZE, CSIZE, UCSIZE C C RETURN C C ================================================================= C ERROR EXIT C ================================================================= C 120 WRITE (IPR, 8020 ) GO TO 340 C C 140 WRITE (IPR, 8060) KPNA, KPRNO GO TO 340 C C 340 ERCODE = 16 C C WRITE(IPR,8260) C C RETURN C C ================================================================= C FORMAT STATEMENTS C ================================================================= C C 8020 FORMAT(/,' *** NO LINE CRAD FOUND') C C 8060 FORMAT(/,' *** NO CARD(1) FOUND FOR ',A4,I1) C C C8240 FORMAT(/5X,'JSXSMP COMPLETED PSIZE = ',I5,' CSIZE = ',I10, C + ' UCSIZE = ',I5) C C 8260 FORMAT (/,' *** ERROR IN JSXSMP CALCULATION ***') C C END