CAINDXSystem Overview 00010008 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CTITLEIntroduction 00020008 CA 00030008 CA The SPARC seismic processing system has a great deal of flexibility00040008 CA built into it. This manual will explain the features available and00050008 CA provide the information needed by a programmer to maintain, create,00060008 CA and test SPARC programs. 00070008 CA 00080008 CA Four related manuals are: 00090012 CA 00100000 CA SPARC User's Guide, 00110008 CA SPARC Program Abstracts. 00120008 CA SPARC Technical Documentation 00130012 CA UMS - Updates Management System 00140012 CA 00150008 CA Note that the SPARC User's Guide contains a section on data 00160008 CA formats, particularly the ARCY trace headers. 00170008 CA 00180008 CA Figure 1 contains a brief overview of the SPARC system. If the 00190012 CA SPARC job is only a preparation run to check the input parameters, 00200012 CA it is not necessary to have any seismic data. However, if the job00210012 CA is an actual process run, the seismic data must be available at the00220012 CA data center. 00230012 CA 00240008 CA As Figure 1 shows, the demultiplexed seismic data is the original 00250008 CA input to SPARC. Output of seismic data from SPARC will be to 00260008 CA either tape or disk. 00270008 CA 00280008 CA The seismic data cards necessary for SPARC are submitted to the job00290012 CA generation program JOBGEN. This program generates another computer00300012 CA job for the actual execution of SPARC. Since two separate jobs are00310012 CA actually executed, there will be two separate computer listings. 00320012 CA 00330008 CA A cataloged procedure, SPARC, has been provided to execute JOBGEN. 00340012 CA See Section C. 00350012 CA 00360008 CA The SPARC system can be executed on either the IBM or CRAY 00370008 CA computer. JOBGEN executes only on the IBM computer. 00380008 CA 00390008 CA Historically, SPARC has executed as a job with two steps, PREP and 00400008 CA PROC. With the preparation of SPARC for an interactive environment00410008 CA on the IBM, a master control program, ISPARC, was written which 00420008 CA replaces almost all of the IBM JCL formerly required for a SPARC 00430008 CA job and which attaches fully linked SPARC modules to execute each 00440008 CA step. Thus, to the IBM system only one job step is executed but 00450008 CA within ISPARC each step, PREP and PROC, is executed separately. 00460008 CA The CRAY still executes as separate job steps. For consistency 00470008 CA throughout this documentation, SPARC steps will continue to be 00480008 CA referenced. 00490008 CA 00500008 CA EJECT 00510000 CA 00520008 CA ----------- 00530008 CA / seismic | 00540008 CA | data | 00550008 CA | cards | 00560008 CA ------------ 00570008 CA | 00580008 CA | 00590008 CA -------------- ------------- 00600008 CA | | | | 00610000 CA | JOBGEN |-------->| listings | 00620008 CA | | | | 00630008 CA -------------- ------------- 00640008 CA | 00650008 CA | 00660008 CA ************** 00670008 CA * generated * 00680008 CA * SPARC job * 00690008 CA * (IBM or * 00700008 CA * CRAY) * 00710000 CA ************** 00720008 CA | 00730008 CA | 00740008 CA ------------- -------------- ------------- 00750008 CA | demuxed | | | | output | 00760008 CA | seismic |-------->| SPARC |<------->|seismic data| 00770008 CA | data tape | | | |disk or tape| 00780008 CA ------------- -------------- ------------- 00790008 CA | | 00800008 CA | | 00810000 CA -------------- | 00820008 CA | SPARC | v 00830008 CA | printed | ----------- 00840008 CA | listings | | display | 00850008 CA -------------- | seismic | 00860008 CA | data | 00870008 CA ----------- 00880008 CA 00890008 CA 00900008 CA SPARC System Overview 00910000 CA Figure 1 00920008 CA 00930008 CAEND 00940008 CTITLEHistorical Notes 00950008 CA 00960008 CA SPARC, Seismic Processing Atlantic Richfield Company, was 00970008 CA originally designed in late 1974 and then written and released in 00980008 CA 1975. It was designed to combine the needs of the production 00990008 CA processing group with the research and development needs of the 01000008 CA research group. 01010008 CA 01020008 CA Because of memory constraints, control programs were written to 01030008 CA produce the smallest possible load module for each job to be 01040008 CA executed. A COBOL program, JOBGEN, was written to build the SPARC 01050008 CA job. This involved building all the necessary IBM JCL and 01060008 CA providing an assembly language deck for each SPARC step which would01070008 CA contain the external references for a link edit and establish the 01080008 CA COMMON P area used to control the processing flow. 01090008 CA 01100008 CA Major changes to the SPARC system over the years have included: 01110008 CA 01120008 CA 1. addition of a 2938 array processor. 01130008 CA 2. expansion of COMMON P to have three work files allowed per 01140008 CA process instead of the original one. 01150008 CA 3. conversion from the 2938 array processor to the 3838. 01160008 CA 4. implementation of SPARC on the SEL computer. (SPARC is no 01170013 CA longer supported on the SEL.) 01180013 CA 5. use of mass storage for output data sets. 01190008 CA 6. implementation of SPARC on the CRAY computer. 01200008 CA 7. conversion of SPARC to FORTRAN 77 (VSFORTRAN). 01210008 CA 8. conversion of SPARC to MVS/XA. 01220008 CA 9. implementation of vector facility and vectorizing Fortran 01230008 CA compiler. 01240008 CA 10. execution of PREP step in foreground. 01250008 CA 11. dynamic allocation of all files. 01260008 CA 12. conversion from mass storage back to disk. 01270008 CA 01280008 CA The latest changes have eliminated the need for the JCL and 01290008 CA assembly language deck. This has greatly simplified the JOBGEN 01300008 CA program and has prepared SPARC for interactive seismic processing. 01310008 CA 01320008 CA 01330008 CAEND 01340008 CAINDMSPARC Control Programs 01350008 C 01360008 CTITLE JOBGEN - Primary Functions 01370008 CA 01380008 CA The job generation program, JOBGEN, was written to make it easy 01390008 CA for users to execute the SPARC system. JOBGEN will determine 01400008 CA whether the SPARC job will execute on the IBM or CRAY computer and 01410000 CA the appropriate SPARC job class. IBM is currently the default 01420009 CA computer sytem selected for execution. However, the CRAY will be 01430009 CA selected if one of the following is true: 01440009 CA 01450009 CA 1. the SPARC job contains a process which is only available 01460009 CA on the CRAY. (The FJPTAB entry for each SPARC process 01470009 CA contains flags for specific computer systems.) 01480009 CA 2. the SPARC ACCT card contains a C in cc 12. 01490009 CA 01500009 CA For an IBM job, JOBGEN will: 01510009 CA 01520008 CA 1. verify the existence of the input data sets. 01530008 CA 2. produce any appropriate tape setup messages. 01540008 CA 01550008 CA For a CRAY job, in addition to the above, JOBGEN will: 01560008 CA 01570008 CA 1. supply, on INFO2 cards, the full SPARC data set names for01580008 CA all input data sets. 01590008 CA 2. supply, on INFO2 cards, full SPARC data set names to be 01600008 CA used by each output process. 01610008 CA 3. provide CRAY "DISPOSE" JCL for any output disk data sets.01620017 CA 4. build appropriate Fortran source code for both SPARC PREP01630008 CA and PROC steps. This Fortran source will be used to 01640009 CA create the CRAY load modules for execution of the 01650008 CA specific SPARC job. 01660008 CA 01670008 CA JOBGEN executes only on the IBM computer. 01680008 CA 01690008 CAEND 01700000 CTITLE ISPARC - Interactive SPARC Control 01710008 CA 01720008 CA The ISPARC program is an IBM only routine and was written to allow 01730008 CA SPARC to be executed interactively without having to execute 01740008 CA JOBGEN. It is therefore, almost entirely a dynamic allocation 01750008 CA program used to replace the IBM JCL that was needed for SPARC in 01760000 CA the past. Its functions are: 01770008 CA 01780008 CA 1. allocate necessary system DD statements. 01790008 CA 2. allocate any SPARC temporary data sets that would have 01800008 CA been passed from one step to the next, such as GM3DPARM, 01810008 CA SEISPARM, etc. 01820008 CA 3. if fully linked CPPREP or CSEXEC is to be used, attach 01830009 CA and execute the program. 01840008 CA 4. if fully linked modules cannot be used: 01850008 CA a. allocate the necessary system files, such as SYSLIB. 01860015 CA b. provide a Fortran routine used to provide external 01870008 CA references. (Job specific CPSPCL for PREP step or 01880008 CA CSSDAD for PROC step.) 01890008 CA c. attach the LOADER to accomplish the link-edit and 01900009 CA execute the program. 01910009 CA 5. before terminating, unallocate any files that have been 01920008 CA allocated. 01930008 CA 01940008 CA The conditions which will cause a link-edit to occur at execution 01950009 CA time are: 01960009 CA 01970009 CA 1. the presence of a ULIB in the SPARC card deck. 01980009 CA 2. the presence of a process on the PROC card which is not 01990009 CA flagged (in FJPTAB) as being in the fully linked load 02000009 CA module. 02010009 CA 3. a request through JOBGEN to execute in the non-extended 02020009 CA mode. 02030009 CA 02040009 CA ISPARC is maintained, without fully resolving the external 02050014 CA references, in the normal SPARC load library (DBG.SPARCXA.LOAD). 02060014 CA The updating program librarian is responsible, through UMS, to 02070014 CA establish the fully linked version in the SPARC execution library, 02080014 CA DBG.ISPARC.LOAD. 02090014 CAEND 02100000 CTITLE CPPREP - PREP Step Control Program 02110008 CA 02120008 CA CPPREP controls the execution of the preparation routines on both 02130008 CA the IBM and CRAY computers. On the IBM it is maintained as both 02140008 CA a fully linked module and as an not fully linked module. This 02150016 CA allows for quick execution of the fully linked version while 02160016 CA allowing a job specific link to be performed at execution time to 02170016 CA pick up additional subroutines from test libraries. At the present02180016 CA time, all production preparation routines are included in the fully02190016 CA linked module. FJPTAB contains a flag which indicates which 02200016 CA preparation routines are in the fully linked module and CPSPCL 02210016 CA contains Fortran code to call each SP routine. Since the CRAY 02220016 CA always performs the job specific link, CPPREP on the CRAY is 02230016 CA maintained as an unlinked module. 02240016 CA 02250008 CA CPPREP is link edited on the CRAY for each job and the resulting 02260008 CA load module is executed directly. On the IBM, however, CPPREP is 02270008 CA executed under the control of ISPARC. ISPARC will either attach 02280008 CA the fully linked module, if possible, or else will cause a job 02290008 CA specific module to be built and executed. 02300008 CA 02310008 CA CPPREP does not use the PROTAB array in COMMON P to control the 02320008 CA execution of the preparation routines. Instead it used the same 02330008 CA local arrays used by JOBGEN and built by FJ routines. Each process02340008 CA is executed in the order the processes are specifed on the PROC 02350008 CA card. If a process and process number should occur a second or 02360008 CA third time on the PROC card, the preparation routine is executed 02370008 CA only once since the parameters are the same. 02380008 CA 02390009 CA CPPREP is maintained, without fully resolving the external 02400014 CA references, in the normal SPARC load library (DBG.SPARCXA.LOAD). 02410014 CA The updating program librarian is responsible, through UMS, to 02420014 CA establish the fully linked version in the SPARC execution library, 02430014 CA DBG.ISPARC.LOAD. 02440014 CAEND 02450000 CTITLE CSEXEC - PROC Step Control Program 02460008 CA 02470008 CA CSEXEC controls the execution of the process routines on both the 02480008 CA IBM and CRAY computers. On the IBM it is maintained as both a 02490009 CA fully linked module and as an not fully linked module. This allows02500016 CA for quick execution of the fully linked version while allowing a 02510016 CA job specific link to be performed at execution time to pick up 02520016 CA additional subroutines from test libraries. The fully linked 02530016 CA module does not contain every production process but only those 02540016 CA which are used most often. FJPTAB contains a flag which indicates 02550016 CA which processes are in the fully linked module and CSSDAD contains 02560016 CA Fortran code for each of those processes which stores the process 02570016 CA address in the PROTAB array. Because of the size of UNIRAS 02580016 CA routines, processes which produce color plots are excluded from the02590016 CA fully linked module. Since the CRAY always performs the job 02600016 CA specific link, CSEXEC on the CRAY is maintained as an unlinked 02610016 CA module. 02620016 CA 02630016 CA CSEXEC is link edited on the CRAY for each job and the resulting 02640008 CA load module is executed directly. On the IBM, however, CSEXEC is 02650008 CA executed under the control of ISPARC. ISPARC will either attach 02660008 CA the fully linked module, if possible, or else will cause a job 02670008 CA specific module to be built and executed. 02680008 CA 02690008 CA CSEXEC initializes the PROTAB array in COMMON P and uses it to 02700008 CA control the execution of the process routines. As each process is 02710008 CA executed, the return flag (KPRTF) is checked to determine which 02720008 CA process should be executed next. 02730009 CA 02740009 CA CSEXEC is maintained, without fully resolving the external 02750014 CA references, in the normal SPARC load library (DBG.SPARCXA.LOAD). 02760014 CA The updating program librarian is responsible, through UMS, to 02770014 CA establish the fully linked version in the SPARC execution library, 02780014 CA DBG.ISPARC.LOAD. 02790014 CAEND 02800013 CTITLE Control Arrays 02810013 CA 02820013 CA In order to replace PTABMSTR, the old process master table, and 02830013 CA eliminate the need for the use of PROTAB (in COMMON P) in the PREP 02840013 CA step, two arrays were implemented. These arrays are not contained 02850013 CA in a common area but are passed to any routines which need them. 02860013 CA They are used in JOBGEN, ISPARC, and CPPREP. Most, if not all, FJ 02870013 CA routines will use them. In order to insure uniformity of use and 02880013 CA to aid in modifications, these arrays should be indexed using 02890013 CA specific, pre-defined parameter variables (names begin with IX and 02900013 CA many correspond to KP variables) and never by constants. The 02910013 CA definition of the parameters and the arrays is: 02920013 CA 02930013 CA PARAMETER (IXNA=1, IXMODE=2, IXTAPE=3, IXRNO=1, IXOCUR=2, 02940013 CA * IXBUGF=3, IXPTAB=4, IXPRNT=5, IXNCDS=6, IXDA=7, 02950013 CA * IXRTF=8, IXWARN=9, IXTIME=10, IXWKIO=11, MXPROC=90) 02960013 CA CHARACTER*4 PROCLC ( 6, MXPROC) 02970013 CA INTEGER PROCLI (15, MXPROC) 02980013 CA 02990013 CA PROCLC(IXNA, N) = process name (i.e. KPNA). 03000013 CA (IXMODE,N) = processing mode (i.e. PMODE, 1 character). 03010013 CA (IXTAPE,N) = 'TAPE' if output process is a tape data set. 03020013 CA used only by JOBGEN. 03030013 CA (4, N) = not used. 03040013 CA (5, N) = not used. 03050013 CA (6, N) = not used. 03060013 CA 03070013 CA PROCLI(IXRNO, N) = process number (i.e. KPRNO). 03080013 CA (IXOCUR,N) = process occurrence (i.e. KPOCUR). 03090013 CA (IXBUGF,N) = debug flag (i.e. KPBUGF). 03100013 CA (IXPTAB,N) = index into PTABMSTR arrays (PTABC and PTABI) 03110013 CA for the process. 03120013 CA (IXPRNT,N) = print unit number assigned (i.e. KPPRNT). 03130013 CA (IXNCDS,N) = number of data cards for the process. 03140013 CA (IXDA, N) = disk address to linked list of data cards. 03150013 CA used for sorting. 03160013 CA (IXRTF, N) = process return flag (i.e. KPRTF). 03170013 CA (IXWARN,N) = process warning flag (i.e. KPWARN). 03180013 CA (IXTIME,N) = process cpu time (i.e. KPTIME). 03190013 CA (IXWKIO,N) = process work file I/O (i.e. KPWKIO). 03200013 CA (12, N) = not used. 03210013 CA (13, N) = not used. 03220013 CA (14, N) = not used. 03230013 CA (15, N) = not used. 03240013 CAEND 03250000 END - needed to counter CAINDM used for SPARC Control Programs 03260011 CTITLESorting and Justification 03270008 CA Sorting 03280008 CA 03290008 CA The input seismic data cards are sorted by JOBGEN and by 03300008 CA CPPREP (using FJFT05 which calls FJSORT). JOBGEN sorts the cards 03310009 CA so they can be used in calculating space of output data sets. The 03320009 CA sort is repeated in CPPREP because, in the future, SPARC will be 03330009 CA executed interactively without first executing JOBGEN. The sort is03340009 CA performed by subroutine FJSORT. The primary sort is based on the 03350009 CA order that the processes appear on the PROC cards. All cards with 03360017 CA the same process name and number will be sorted together. Within 03370017 CA each process, the sort is controlled by a sort key that is 03380017 CA specified in the FJPTAB entry for that process. The definition of03390009 CA the sort key is contained in common area SORTKY which is 03400017 CA initialized in another part of FJPTAB. The sort key gives the 03410009 CA order of precedence for the card columns to be used in sorting. 03420009 CA 03430009 CA Sort suppression of an individual process is accomplished by 03440017 CA inserting a '^' in card column 8 of the first card for the process.03450017 CA The '^' will be replaced by a blank before the preparation routine 03460017 CA reads the card. This no-sort option actually involves a sort, but03470017 CA the sort key is just process name, process number and card order 03480017 CA (i.e., the default sort key). 03490017 CA 03500008 CA 03510008 CA 03520008 CA 03530008 CA 03540008 CA Justification 03550008 CA 03560008 CA A justification key, similar to the sort key, is also included with03570017 CA the FJPTAB entry for each process. The key defines which data 03580017 CA fields of the cards should be left- or right-justified and zero- or03590017 CA space-filled. The justification keys are defined in common area 03600017 CA JUSTKY which is initialized in another part of FJPTAB. 03610017 CAEND 03620008 CTITLEData Set Names 03630008 CA SPARC data set names (generated by dynamic allocation routines on 03640008 CA the IBM or by JOBGEN for the CRAY) are designed to be unique and 03650008 CA to provide information on what data is contained in the data set. 03660008 CA The name that is generated consists of four parts. The first part 03670008 CA will consist of a 'D' and the district number on the ACCT card. 03680000 CA (Valid district numbers are defined in the SPARC User's Guide under03690009 CA documentation for the ACCT card. R&TS is district 99.) The second03700009 CA part of the name consists of a 'D' for disk or a 'T' for tape, and 03710009 CA a unique seven-digit number. Subroutine USGETN is used to obtain 03720009 CA the number. (Note that old numbers less than 100000 are only 03730009 CA five-digit numbers.) The third part of the data set name consists 03740009 CA of the letter 'P' followed by the district and project numbers from03750009 CA the ACCT card. The last part of a name is the line name or number 03760009 CA from the ACCT card. If the first character of the line name is 03770009 CA numeric, the letter 'L' will be inserted before it. When a SPARC 03780009 CA output process (denoted in tables in program FJPTAB), except for 03790009 CA WRIT, has a plot request code in cc 76-80 of the first data card, 03800009 CA 'VARN' or 'COLR' is added as a fifth part to the data set name. 03810009 CA The following are examples of generated data set names: 03820009 CA 03830009 CA 03840008 CA D01.D0123456.P0109140.BSSL-2 03850008 CA D02.T0123567.P0200001.L1234 03860008 CA D05.D7654321.P0109140.BSSL-2.VARN 03870008 CA D16.D8765432.P0101010.LINE.COLR 03880008 CA 03890008 CA 03900008 CA For input processes where only the data set number is entered on 03910000 CA the card, JOBGEN performs several functions. JOBGEN will search the03920008 CA storage management system (SMS) data base for the data set number. 03930008 CA If the number is found, the full data set name is retrieved and 03940008 CA the IBM catalog is checked to verify that the data set still 03950008 CA exists. If the number is not found, a search of the IBM catalog is03960008 CA made for all possible combinations of district prefix, disk, and 03970009 CA tape. The first search uses the district number from the ACCT card03980008 CA and the code for disk or tape from the input card along with the 03990008 CA data set number from the process card. Subroutine UGCATS performs 04000009 CA this search by repeated calls to subroutine USCATS which searches 04010009 CA the catalog for any names whose first two parts equal the given 04020009 CA two-part name. 04030009 CAEND 04040008 CTITLESpace Calculations 04050008 CA Output and Work Files 04060008 CA ------ --- ---- ----- 04070008 CA 04080008 CA Except for output disk data sets for the CRAY, all output and work 04090000 CA files are dynamically allocated as needed. In FJPTAB, each process04100000 CA may specify that it will produce an output data set. If this flag 04110000 CA is set JOBGEN will call subroutine JSSPAC to determine how many 04120008 CA output records will be produced and then use subroutine USAPRM to 04130008 CA determine if the output data set will be on disk or tape. For an 04140008 CA IBM SPARC job, this information will be used only to count the 04150008 CA number of tape drives to be used to insure the proper job class is 04160008 CA assigned. For a CRAY SPARC job, it will be used to count tape 04170008 CA drives and to generate any necessary CRAY DISPOSE JCL for disk data04180009 CA sets. For everything to work correctly, it is necessary that 04190008 CA FJPTAB have the output flag set properly and that JSSPAC return the04200008 CA number of records. For complicated space calculations, JSSPAC may 04210008 CA call a process unique subroutine to return the number of records. 04220008 CA 04230008 CA 04240008 CA SEISPARM File 04250008 CA -------- ---- 04260000 CA 04270008 CA When calculating the number of tracks necessary for the parameter 04280008 CA file, SEISPARM, JOBGEN (for CRAY SPARC jobs) and ISPARC (dynamic 04290008 CA allocation) use the following formula based on the following 04300008 CA values: 04310008 CA 04320008 CA A = number of cards, 04330008 CA 04340008 CA B = number of GM3D cards 04350008 CA 04360008 CA C = traces per shotpoint from the line card (cc36-40), 04370008 CA 04380008 CA D = number of processes on proc cards. 04390008 CA 04400008 CA 04410008 CA (A + ((A - B) * C) + D + 3500) / 24 04420008 CA 04430008 CA This formula allows enough records for the data cards, plus 04440008 CA parameter records, plus some slop (3500). 04450008 CA 04460008 CA JOBGEN, in order for JSSPAC to have access to the sorted/justified 04470008 CA data cards, uses a slightly modified version of the above formula 04480008 CA to allocate a SEISPARM file: 04490009 CA 04500008 CA (A + D + 3500) / 24 04510008 CA EJECT 04520008 CA 04530008 CA 04540008 CA 04550008 CA Blank Common Size 04560008 CA ----- ------ ---- 04570008 CA 04580008 CA The amount of blank common needed for each particular SPARC job is 04590008 CA calculated by subroutine CPBCOM. If the flag in FJPTAB for a 04600008 CA process indicates that the process needs to specify space 04610008 CA requirements, CPBCOM will call subroutine JSCORE to return the 04620008 CA amount of K-bytes needed. CPBCOM then accumulates the totals for 04630008 CA each process, adds a standard fixed overhead amount, and, if the 04640008 CA job is executing on the CRAY, adds an amount to hold FFT tables. 04650008 CA The resulting amount is written to a SEISPARM parameter record 04660008 CA (process name PARM) by CPPREP for use by CSEXEC in the PROC step. 04670008 CA 04680008 CA Because of space limitations and the fact that preparation routines04690008 CA do not use or need as much blank common as the process routines, 04700008 CA CPPREP will limit the amount of blank common in the PREP step to a 04710008 CA maximum of one megabyte. 04720008 CA 04730008 CA NOTE: The overhead amount of blank common to be used must agree 04740008 CA between CPBCOM and JSCORE. 04750008 rA 04760008 CA 04770008 CA Region Size 04780008 CA ------ ---- 04790008 CA 04800008 CA In the past JSCORE was used to return the executable code size of 04810000 CA process. With the conversion of SPARC to 31 bit addressing, the 04820008 CA region calculation was eliminated. For jobs to be executed in 31 04830008 CA bit mode (the default), the region size is set to 9000K. If a 04840015 CA job is requested to be executed in 24 bit mode (NOEXTEND), then the04850008 CA region size will be 7600K. NOEXTEND will force ISPARC to link each04860008 CA step for execution. Region size is not used for CRAY jobs. 04870008 CAEND 04880008 CTITLEUse of PROC Card 04890008 CA 04900008 CA JOBGEN uses the PROC cards to determine which processes are to 04910008 CA be executed and in what order. The sorted data cards are listed 04920008 CA in the order in which they appear on the PROC card. If data cards 04930008 CA are included in the input for a process that is not on a PROC card,04940008 CA they will be discarded except for GM3D cards when SRVY is on the 04950014 CA PROC. 04960014 CA 04970008 CA One unique thing that can be accomplished on the PROC cards is to 04980008 CA list a process twice with the same process number. Then only one 04990008 CA set of data cards is necessary. For instance, if the same filter 05000008 CA is to be applied at two different times, data cards for 'FLTR1' 05010008 CA can be inserted in the deck once and 'FLTR1' specified twice on 05020008 CA the PROC card. Figure 2 gives an example. 05030008 CA 05040008 CA Note that a problem would occur if it were really meant to have a 05050008 CA 'FLTR2' on the PROC card. Even when intended this feature should 05060000 CA be used with caution. 05070008 CA 05080008 CA 05090008 CA 05100008 CA 05110008 CA 05120008 CA ACCT . . . 05130008 CA LINE . . . 05140008 CA GM3D . . . 05150008 CA READ . . . 05160000 CA STAT1 . . . 05170008 CA FLTR1 . . . 05180008 CA EQUL1 . . . 05190008 CA DCON1 . . . 05200008 CA GATH1 . . . 05210008 CA STAK1 . . . 05220008 CA PROC GM3D READ STAT1 FLTR1 EQUL1 DCON1 FLTR1 GATH1 STAK1 05230008 CA 05240008 CA 05250008 CA Example of Using a Process Twice 05260000 CA Figure 2 05270008 CAEND 05280008 CTITLEInput/Output Processes 05290008 CA 05300008 CA JOBGEN and SPARC dynamic allocation routines use the data cards 05310008 CA for input and output processes to allocate data sets or to set up 05320008 CA CRAY JCL. Therefore, certain parts of the formats for READ, WRIT, 05330009 CA and other input/output processes cannot be changed without matching05340008 CA the changes in JOBGEN or the dynamic allocation routines. 05350008 CA 05360008 CA Input/output processes that require other data to be entered may 05370000 CA do so by using another data card with a code in card columns 8-10. 05380008 CA However, these other data cards are not justified. 05390008 CA 05400008 CA The disposition on input data sets will be SHR. Output data sets 05410008 CA will be allocated with a disposition of NEW. 05420008 CAEND 05430008 CTITLEInput Files Used by JOBGEN 05440008 CA 05450000 CA Brief descriptions of the input files to JOBGEN follow. 05460008 CA 05470008 CA CRAYJCL - This file contains the JCL used by JOBGEN 05480009 CA to create the JCL for a CRAY SPARC job. It 05490009 CA also contains INSERT cards to tell JOBGEN 05500008 CA where to put certain items such as message 05510008 CA cards, setup cards, the preparation Fortran 05520008 CA deck, the processor Fortran deck and SPARC 05530009 CA data cards. This data set is named 05540008 CA DBG.SPARC.CONTROL(CRAYJCL). 05550009 CA 05560000 CA dsn number file - This file contains the next number to be 05570008 CA used when assigning data set names. It is 05580008 CA used by JOBGEN and IBM dynamic allocation 05590008 CA routines. Its name is 'SYS1.SEISTRAN'. 05600009 CA 05610008 CA catalog listing - This is a temporary file containing the 05620008 CA results, if any, of a search for catalog 05630008 CA entries by the utility program IDCAMS. 05640008 CA It will only be used if a data set number is 05650008 CA not found in the data bases. 05660008 CA 05670008 CA data bases - Model 204 data bases are used to verify the 05680008 CA project number, line name, and area name. 05690008 CA They are also used to retrieve the full IBM 05700008 CA data set name given the data set number for 05710008 CA an ARCY data set. 05720008 CAEND 05730008 END 05740011 CTITLESPARC Subroutines 05750011 CA The subroutines in SPARC generally fall into one of five 05760008 CA categories: 05770008 CA 05780008 CA 1. control 05790008 CA 2. preparation 05800008 CA 3. processor 05810000 CA 4. application 05820008 CA 5. utility 05830008 CA 05840008 CA Section F gives a set of naming conventions to use for SPARC 05850008 CA routines. Some of the present routines have been taken from 05860008 CA TEKNICA and do not follow the conventions. The TEKNICA routines 05870008 CA are prefixed with 'S1' or if very minor changes have been made 05880008 CA they are prefixed with 'S2'. 05890008 CA 05900008 CA Functions of the control programs include determining the process 05910000 CA to be executed next, managing the traces saved at nodes, printing 05920008 CA summary sheets, etc. 05930008 CA 05940008 CA The preparation routines read the sorted seismic data cards and 05950014 CA produce parameter records for use by the associated processor. The05960014 CA preparation routine analyzes the data as far as possible and puts 05970014 CA it in a form that is easily used by the processor. Printed output 05980014 CA includes maps, graphs, etc., to aid the user in determining if the 05990014 CA input parameters are correct. 06000014 CA 06010000 CA The processors, using the parameter records produced by the 06020008 CA preparation routines, determine which traces are to be processed 06030008 CA and the correct parameters to apply to each trace. The processor 06040008 CA either performs the operation itself or calls an application 06050008 CA subroutine to do the operation for it. Most processors are 06060009 CA serially reusable so they can be invoked more than once on the PROC06070009 CA card. If a processor is not serially reusable (not recommended) or06080009 CA the process requires large amounts of CPU time or I/O, the number 06090009 CA of times the process can appear in a job can be restricted in 06100009 CA FJPTAB. 06110009 CA 06120009 CA The application subroutines perform detailed calculations and 06130008 CA operate on the traces. SANMOC is an example of an application 06140009 CA subroutine to apply normal moveout to a trace. It is called by 06150009 CA SDDMIG, SDNMOC, SDRSUM, and SDVELD. All four processes have the 06160009 CA need to apply moveout to traces. 06170014 CA 06180008 CA Utility routines may be called by several other routines to 06190008 CA perform general tasks. An example would be 'UPRESM' which 06200008 CA reserves scratch memory in blank common. In general, utility 06210008 CA routines should not use COMMON P or blank common. 06220008 CAEND 06230008 CTITLECOMMON /P/ 06240008 CA 06250000 CA COMMON P is a named common area that is used by all preparation 06260008 CA routines and processors. This is the common area that is 06270008 CA established by the control programs to control the flow of traces 06280008 CA between processes. A list of variables in COMMON P is contained 06290008 CA in a separate section. 06300008 CA 06310008 CA The first two groups of variables, prefixed by 'LC' and 'AC', 06320008 CA contain values from the LINE and ACCT cards respectively. The 06330008 CA control programs CPPREP and CSEXEC read the two cards and put the 06340008 CA values in the appropriate locations. 06350008 CA 06360000 CA The third group of variables, prefixed by 'LH', contain values 06370008 CA from the line header. At the present time they are not used. 06380008 CA 06390008 CA The fourth group of variables, prefixed by 'KP', is a special 06400008 CA area known as the KP-area (current process area). This KP-area 06410008 CA contains variables used by the process currently being executed. 06420008 CA Use of the variables in the KP-area will be discussed in Section 06430008 CA F. 06440008 CA 06450008 CA After the KP-area is a section of main control variables which are 06460000 CA prefixed by 'MC'. These variables are used by the control 06470008 CA programs. 06480008 CA 06490008 CA The main control variables are followed by variables that describe 06500008 CA the extents of PROTAB. These variables are prefixed by 'PT'. 06510008 CA 06520008 CA PROTAB is the last section of COMMON P. It is a fixed length array06530008 CA but the number of entries depends on the number of processes. 06540009 CA Maximum number of processes is limited to 90. Each distinct 06550009 CA process (taking process number into consideration) listed on the 06560009 CA PROC cards has an entry in PROTAB. Thus, Fortran routines can 06570017 CA address all other variables in COMMON P and use an array to address06580009 CA PROTAB. Each 'entry' in PROTAB is a KP-area for a process. Note, 06590009 CA however, that preparation routines and processors never address 06600009 CA PROTAB. They only use the KP-area which has been set up by the 06610009 CA control program. Before passing control to a process, the control 06620009 CA program moves the PROTAB entry for the process into the KP-area. 06630009 CA When the process returns to the control program, the KP-area is 06640009 CA moved back to PROTAB. The separate KP-areas, in conjunction with 06650009 CA saving local variables in blank common, allow the processors to be 06660009 CA serially reusable. 06670009 CA 06680008 CA In order to facilitate use of and changes to COMMON P, a program, 06690008 CA UTCGI4, has been written for use with Fortran subroutines. Given a06700008 CA list of the COMMON P variables that a routine needs, UTCGI4 will 06710008 CA generate the statements necessary for proper addressing of the 06720008 CA variables. The use of UTCGI4 is explained in the section on 06730008 CA utility programs. 06740008 CAEND 06750000