CTITLEJSSURF - JOBGEN REGION & BLANK COMMMON ALGORITHM FOR SURF C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR CALVIN JOYNER CA DESIGNER CALVIN JOYNER CA LANGUAGE VS FORTRAN CA SYSTEM IBM / CRAY CA WRITTEN 06-03-91 CA CA REVISED 06-03-92 CLJ INCREASE TRACE AREA WORK SIZE (PART 2) CA CA CALL JSSURF (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 PROCESS 'SURF'. CA C C EJECT CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C SUBROUTINE JSSURF (KPNA, KPRNO, OCCUR, PSIZE, CSIZE, UCSIZE, + ERCODE) C IMPLICIT INTEGER (A-Z) C C CHARACTER*4 KPNA CHARACTER*80 CARD C C INTEGER CONSTANTS -- LOCAL C INTEGER IPR INTEGER THL C C C REAL VARIABLES -- LOCAL C C REAL C C DATA IPR / 98 / DATA THL / 190 / C C C ======================================================= C BEGIN COMPUTATION OF REGION AND COMMON SIZE FOR SURF C (INSERT REGION SIZE & BLANK COMMON SIZE CALCULATIONS HERE) C ======================================================== C C C======================================================================= C C PART 1. SET PROGRAM SIZE IN K-BYTES (PSIZE) C C PSIZE = 30 C C GET LINE CARD PARAMETERS C DA = 1 CALL FORC ('LINE', 0, DA, CARD, * 9200 ) C LCTPSP = S1CVBN (CARD, 36, 5) LCMXFD = S1CVBN (CARD, 61, 5) IF (LCMXFD .EQ. 0) LCMXFD = LCTPSP C LCRLEN = S1CVBN (CARD, 41, 5) LCSI = S1CVBN (CARD, 46, 5) LCPI = S1CVBN (CARD, 51, 5) IF (LCPI .EQ. 0) LCPI = LCSI C C IF (LCPI .EQ. 0) GO TO 9800 C ABOVE LINE IS COMMENTED BUT INTENTIONALY LEFT FOR CLARITY. C THE LCPI NON ZERO CHECK SHOULD BE DONE IN JSCORE OR JSRND C AND THEREFORE IS REDUNDANT HERE. C C NOSAMP = LCRLEN / LCPI C C C 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 C ICC = 0 C SR = LCPI NBL = NOSAMP C C C READ INPUT CARDS C DAC = 1 110 CALL FORC (KPNA, KPRNO, DAC, CARD, * 9300) IF (CARD(8:10) .NE. ' ') GO TO 110 C READ(CARD,120) CDPSTR,CDPEND,MAXTRA,LINEST,LINEND 120 FORMAT(10X,2I5,30X,I5,10X,2I5) C IF( CDPEND .EQ. 0) CDPEND = CDPSTR C NCDP = CDPEND - CDPSTR + 1 NLINE = LINEND - LINEST + 1 MAXTRA = MAXTRA*1000 C C C READ WIN CARDS DAC = 1 NWC = 0 C 210 CALL FORC (KPNA, KPRNO, DAC, CARD, * 215) IF (CARD(8:10) .NE. 'WIN') GO TO 210 NWC = NWC + 1 GO TO 210 215 CONTINUE C C C READ ANL CARD DAC = 1 310 CALL FORC (KPNA, KPRNO, DAC, CARD , * 340) IF (CARD(8:10) .NE. 'ANL') GO TO 310 C READ(CARD,320) MAXNS,MAXNR 320 FORMAT(20X,2I5) C 340 CONTINUE IF (MAXNS .EQ. 0) MAXNS = (NCDP + LCMXFD) * NLINE IF (MAXNR .EQ. 0) MAXNR = (NCDP + LCMXFD) * NLINE C1 C WRITE (IPR,18801)NOSAMP,NCDP,NLINE,NWC,MAXNS,MAXNR,MAXTRA C8801 FORMAT(/1X,'NOSAMP,NCDP,NLINE,NWC,MAXNS,MAXNR,MAXTRA',/1X,7I8) C2 C C C COMPUTE RESERVED MEMORY C C DLOCAL MEMORY LLOCAL = 140 C C,Y,Z WORK ARRAYS LP = NWC XYZWRK = 5 * LP C WINDOW & VELOCITY START/STOP ARRAYS WINVEL = 4 * NCDP*NLINE C COSINE TAPE MXTAP = NOSAMP C TRACE WORK AREA CALL S1FMAG (NOSAMP, MAG, NOWDS) NOWDS = NOWDS*4 + 1 C MEMORY FOR TABLES TABL = 8000 * 5 C CDP END ARRAY NWIND = 1 LR1 = NLINE * NCDP * NWIND C STARTING CDP #'S IN EACH LINE LR2 = NLINE * NWIND C STARTING ADDR IN ICDP FOR BEG OF EACH WIND. LR3 = NWIND C LINE END ARRAY LR4 = NLINE C WINDOW END ARRAY LR5 = NWIND C CONJUGATE GRADIENT SOLUTION ARRAY LR6 = 2 * (MAXNS+MAXNR) C CDP POINTER ARRAY LR7 = 2 * NCDP*NLINE*NWIND C NMO EACH CDP ARRAY LR8 = 2 * NCDP*NLINE*NWIND C1 C WRITE (IPR,18802)TABL,LR1,LR2,LR3,LR4,LR5,LR6,LR7,LR8 C8802 FORMAT(/1X,'TABL,LR1,LR2,LR3,LR4,LR5,LR6,LR7,LR8',/1X,9I8) C2 C C C ICC = LLOCAL + XYZWRK + WINVEL + MXTAP + NOWDS + TABL * + LR1 + LR2 + LR3 + LR4 + LR5 + LR6 + LR7 + LR8 * + 2000 C C C SET RESERVED COMMON SIZE IN WORDS C CSIZE = ICC C C C C======================================================================= C C PART 3. COMPUTE UNRESERVED BLANK COMMON SIZE IN WORDS (UCSIZE) C UCSIZE = 0 C C SHOT & RECEIVER INDEX ARRAYS NT = LCMXFD * NCDP * NLINE IF (MAXTRA .NE. 0) NT = MAXTRA LU1 = 2 * NT C OFFSET ARRAY LU2 = NT C WORK AREA Q LU3 = 2 * NT C WORK AREA P,R,U LU4 = 6 * (MAXNS+MAXNR) C WORK AREA ZA,ZB,ZC,ZD,ZE LU5 = 10 * ( NCDP * NLINE * 2) C1 C WRITE (IPR,18803)NT,LU1,LU2,LU3,LU4,LU5 C8803 FORMAT(/1X,'NT,LU1,LU2,LU3,LU4,LU5',/1X,6I8) C2 C C NWORDS = LU1 + LU2 + LU3 + LU4 + LU5 C C C C SET UNRESERVED COMMON SIZE IN WORDS C UCSIZE = NWORDS C C C ERCODE = 0 C GO TO 9999 C C********************************************************************** C ERROR MESSAGES C********************************************************************** C 9200 ERCODE = 16 WRITE(IPR,19200) KPNA,KPRNO 19200 FORMAT (/' *** ERROR IN JSSURF LINE CARD ERROR ',A4,I1) GO TO 9999 C 9300 ERCODE = 16 WRITE(IPR,19300) KPNA,KPRNO 19300 FORMAT (/' *** ERROR IN JSSURF; NO CARDS FOUND FOR ',A4,I1) GO TO 9999 C C C EXIT C 9999 CONTINUE WRITE(IPR,9000) PSIZE,CSIZE,UCSIZE 9000 FORMAT(/5X,'JSSURF VERSION COMPLETED: PSIZE = ',I5, + ' CSIZE = ',I10,' UCSIZE = ',I10) C RETURN END