CTITLEJSAVEL - JOBGEN REGION & BLANK COMMMON ALGORITHM FOR R&D PROCESSES C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR M. COADY CA DESIGNER M. COADY CA SYSTEM IBM/CRAY CA LANGUAGE VS FORTRAN CA WRITTEN 07-11-86 C REVISED 06-17-87 BY M.COADY FOR CRAY SYNTAX C REVISED 02-19-88 BY H.SWAN FOR PROCESS AVEL C 07-12-88 BY H.SWAN ADDED EXTRA SCRATCH ARRAY C FOR FULLY VECTORIZED VERSION C OF 'SAMVOT'. C REVISED 05-23-91 JJC - CHANGED IMPLICIT NONE TO (A-Z). C - REMVE COMMON BLOCK LINCOM C REVISED 12-17-91 JJC - MODIFIED TO MEET SPARC STANDARDS. CA CA CA CALL JSAVEL (KPNA, KPRNO, OCCUR, PSIZE, CSIZE, UCSIZE, CA 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 K-BYTES 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 DEVELOPMENT PROCESS XXXX REQUIRING CA SPECIAL CALCULATIONS. CA JSAVEL IS AN EXTENSION OF SUBROUTINE JSRND. C C C C EJECT C SUBROUTINE JSAVEL (KPNA, KPRNO, OCCUR, PSIZE, CSIZE, UCSIZE, + ERCODE) C CJJ IMPLICIT NONE IMPLICIT INTEGER (A-Z) C EXTERNAL FOIP C C CHARACTER*4 KPNA CHARACTER*80 CARD C C INTEGER CONSTANTS -- LOCAL C INTEGER FCF INTEGER IPR INTEGER THL C INTEGER LCTPSP INTEGER LCMXFD INTEGER LCBGSP INTEGER LCENSP INTEGER LCNSP INTEGER LCRLEN INTEGER LCSI INTEGER LCPI INTEGER LCGRPI INTEGER LCANSP INTEGER LCMXLN INTEGER NOSAMP C INTEGER PREPSZ, PROCSZ, OCCUR, KPRNO INTEGER ICC, CSIZE, UCSIZE, PSIZE, ERCODE C DATA FCF / 1 / DATA IPR / 6 / DATA THL / 190 / C C C COMMON AREA LINCOM -- VALUES RETRIEVED FROM LINE CARD IN JSRND C CJJ COMMON /LINCOM/ LCTPSP CJJ COMMON /LINCOM/ LCMXFD CJJ COMMON /LINCOM/ LCBGSP CJJ COMMON /LINCOM/ LCENSP CJJ COMMON /LINCOM/ LCNSP CJJ COMMON /LINCOM/ LCRLEN CJJ COMMON /LINCOM/ LCSI CJJ COMMON /LINCOM/ LCPI CJJ COMMON /LINCOM/ LCGRPI CJJ COMMON /LINCOM/ LCANSP CJJ COMMON /LINCOM/ LCMXLN CJJ COMMON /LINCOM/ NOSAMP C C PROGRAM SIZES, AS OF 2/19/88: C C DATA PREPSZ, PROCSZ /Z89B0, Z6978/ DATA PREPSZ, PROCSZ /35248, 27000/ C C C C C ==================================================== C BEGIN COMPUTATION OF REGION AND COMMON SIZE FOR XXXX C (INSERT REGION SIZE & BLANK COMMON SIZE CALCULATIONS HERE) C =========================================== C C C C PART 1. SET PROGRAM SIZE IN K-BYTES (PSIZE) C C THIS VALUE CAN BE DETERMINED FROM THE COMPILED LISTINGS OF THE C SUBROUTINES FOR THIS PROCESS. THE 'PROGRAM SIZE' (IN K-BYTES) C IS PRINTED AT THE END OF EACH SUBROUTINE LISTING. SIMPLY ADD C THE 'PROGRAM SIZE' FOR EACH SUBROUTINE UNIQUE TO THE PROCESS. C PSIZE = (MAX0(PREPSZ,PROCSZ)/10240 + 1) * 10 C C C PART 2. COMPUTE RESERVED BLANK COMMON SIZE IN WORDS (ICC) C C THIS VALUE, FOR MOST CASES, IS IDENTICAL TO THE COMPUTATION OF C RESERVED BLANK COMMON IN THE INITIALIZATION PART OF THE PROCESS C (THE '0 ENTRY' FOR SPARC 'SHELLS'). THIS VALUE IS TYPICALLY C CALLED 'ICC' AND IS THE TOTAL NUMBER OF WORDS USED IN RESERVED C BLANK COMMON ( 'RA' FOR SPARC 'SHELLS'). C ICC = 0 01341001 C 01342001 C GET LINE CARD PARAMETERS 01343001 C 01344001 DA = 1 01345001 CALL FORC ('LINE', 0, DA, CARD, * 8040 )01346001 C 01347001 LCNSP = S1CVBN (CARD, 31, 5) 01348001 LCRLEN = S1CVBN (CARD, 41, 5) 01348101 LCSI = S1CVBN (CARD, 46, 5) 01349001 LCPI = S1CVBN (CARD, 51, 5) 01349101 IF (LCPI .EQ. 0) LCPI = LCSI 01349201 NOSAMP = LCRLEN/LCPI 01349301 C ICC = NOSAMP + LCNSP + 1600 C C C CSIZE = ICC C C C C C PART 3. COMPUTE UNRESERVED BLANK COMMON SIZE IN WORDS (UCSIZE) 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 C ***** NOTE FOR AVEL: THE FOLLOWING IS A WORST-CASE ESTIMATE FOR C UNRESERVED COMMON, WHICH ASSUMES THAT THE ENTIRE TRACE IS C UNDER ANALYSIS. THE ACTUAL REQUIRMENT MAY BE LESS THAN THIS. C UCSIZE = NOSAMP*26 + 194 C 9500 RETURN C C ERROR MESSAGES C 8040 WRITE(KPPRNT,9040) KPNA,KPRNO 01592001 C 9040 FORMAT(5X,' *** NO LINE CARD FOUND FOR: ',A4,I1) 01593001 ERCODE = 16 01593101 WRITE (KPPRNT,9900) 01594001 C 9900 FORMAT (/' *** FROM JSAVEL ERROR IN CORE CALCULATION') C C END