PRDAUX
.PROC,PRDAUX*I"GET AUXILIARY SOURCE PL",\ 
*CALL,COMPRD
PNO     ' PACK NAME FOR OUTPUT PROGRAM LIBRARY '=(*N=,*A),
PRO     ' DEVICE TYPE FOR OUTPUT PL            '=(*N=,*A),
*CALL,COMBLUN 
*CALL,COMIUN
*CALL,COMDISK 
*CALL,COMOUT
. 
*IF,DEF,PDOC
.HELP 
  
THIS PROCEDURE IS USED TO GET AN AUXILIARY SOURCE PL *PRDNAME* LOCAL TO 
THE BUILD JOB AND TO PERFORM SOME PROCESSING ON THAT FILE BASED ON
THE PARAMETERS SPECIFIED WHEN *PRDAUX* WAS CALLED.  (SEE THE
STEPS BELOW FOR DETAILS). 
  
1.  MAKE THE FILE *PRDNAME* LOCAL TO THE JOB.  THE ORDER OF SEARCH
FOR THIS FILE IS: 
  
 - FILE NAMED *PRDNAME* IS ALREADY LOCAL. 
 - ATTACH FILE *PRDNAME_PSROUT* FROM USER *UN2* PACK *PNO* TYPE *PRO*.
 - RECLAIM FILE *PRDNAME_PSROUT* FROM DUMP TAPE. (THE LATEST VERSION OF 
 THE FILE WILL BE TAKEN.  IF THE DESIRED FILE WAS BUILT BY THE
 CUSTOMER THEN THE FILE WILL COME FROM THE DEFAULT RECLAIM UN.  IF
 GETTING A CDC SUPPLIED FILE, THE PL WILL COME FROM THE RELEASED CDC
 UN.  ) 
  
2. IF THE *PRDNAME* DESIRED IS THE COMPOSITE OPL (PRDNAME=OPL)
AND THE FILE HAD TO LOADED FROM TAPE, 
MAKE A PERMANENT COPY OF THE FILE ON USER UN2, PACK *PNO*,
TYPE *PRO*. THE FILE NAME WILL BE *PRDNAME_PSROUT*. 
  
.ENDHELP
*ENDIF
*CALL,PSRLEV
* PRDAUX - GET AUXILIARY SOURCE PL
  
*************** P R D A U X **********************
RETURN(AUXPL) 
  
* 
*  NOTE THAT IT FIRST TRIES TO FIND THE PL FROM 
*  THIS USER NUMBER, THEN IF NOT FOUND, TRIES TO
*  RECLAIM IT FROM TAPE BUILT BY THE CUSTOMER; IF 
*  STILL NOT FOUND, WILL TRY TO RECLAIM IT FROM 
*  CDC'S DUMP TAPES.
* 
  
.IF, FILE(PRDNAME, .NOT. AS) ,PRDAUX15. 
  ATTACH(PRDNAME=PRDNAME_PSROUT/UN=UN2,PN=PNO,R=PRO,NA) 
  IF, FILE(PRDNAME, .NOT. AS) ,PRDAUX20.
    * ATTEMPT TO GET AUX PL BUILT BY CUSTOMER 
    RECLAIM(Z,UN=IUN,L=R)/COPY,PF=PRDNAME_PSROUT,NN=PRDNAME,UN=IUN. 
    IF, FILE(PRDNAME, .NOT. AS), PRDAUX22.
      * ATTEMPT TO GET CDC RELEASED PL
      RECLAIM(Z,UN=IUN,L=RL)/COPY,PF=PRDNAME_PSROUT,NN=PRDNAME,UN=BLDUN.
      IF, FILE(PRDNAME, .NOT. AS), PRDAUX23.
REVERT(ABORT)PRDAUX - PRDNAME AUXPL NOT FOUND.
      ENDIF(PRDAUX23) 
    ENDIF(PRDAUX22) 
    .IF, ( $PRDNAME$ .EQ. $OPL$  ) ,PRDAUX25. 
      * LOAD FILE IF #UN2=0, EG. #UN2 SPECIFIES CURRENT USERNAME. 
      .IF, ( $UN2$ .NE. $0$ ) ,PRDAUX40.
REVERT(ABORT)PRDAUX - #UN2 MUST BE ZERO TO SAVE AUXPL 
      .ENDIF(PRDAUX40)
      RETURN(PRDNAME_PSROUT)
      PURGE(PRDNAME_PSROUT/PN=PNO,R=PRO,NA) 
      DEFINE(PRDNAME_PSROUT/PN=PNO,R=PRO) 
      REWIND(PRDNAME) 
      COPYEI(PRDNAME,PRDNAME_PSROUT)
      UNLOAD(PRDNAME_PSROUT,PRDNAME)
      ATTACH(PRDNAME=PRDNAME_PSROUT/PN=PNO,R=PRO) 
    .ENDIF(PRDAUX25)
  ENDIF(PRDAUX20) 
.ENDIF(PRDAUX15)
  
REWIND(PRDNAME) 
RENAME(AUXPL=PRDNAME) 
RETURN(RL)
  
REVERT. PRDAUX ***********************************
EXIT. PRDAUX
REWIND(RL)
COPYEI(RL,OUTPUT) 
REVERT(ABORT) PRDAUX *****************************
*WEOR 
