*DECK NNETREL 
USETEXT NIPDEF
USETEXT BPIPBUF 
USETEXT PT
USETEXT DBGBUF
PROC NNETREL((LFN),(FRWD)); 
STARTIMS; 
 #
*1DC  NNETREL 
*     1. PROC NAME           AUTHOR              DATE 
*        NNETREL             C. BITTNER          83/04/01 
* 
*     2. FUNCTIONAL DESCRIPTION 
*        RELEASE DEBUG LOG FILE.
* 
*     3. METHOD USED
*        ROUTE ZZZZZDN LOG FILE TO INPUT.  REOPEN ZZZZZDN.
*        CALL OPITRCE TO REINITIALIZE NIP DEBUG LOG FILE. 
* 
*     4. ENTRY PARAMETERS 
*        LFN - NAME OF LOCAL JOB RECORD (NRF1/NRF2) 
*        FRWD - REWIND FLAG 
*               0 - REWIND FILE BEFORE READ 
*               1 - NO REWIND 
* 
*     5. EXIT PARAMETERS
*        BPAT[0] - NONZERO IF DISK ERROR ON FILE AFTER INITIALIZATION.
* 
*     6. COMDECKS CALLED AND SYMPL TEXTS USED 
*        NIPDEF     BPIPBUF     PT     DBGBUF 
* 
*     7. ROUTINES CALLED
*        OMSG - ISSUE DAYFILE MESSAGE 
*        OPITRCE - INITIALIZE NIP DEBUG LOG FILE
*        OPRETN - RETURN FILE 
*        ROUTE - ROUTE FILE 
*        WRITER - WRITE END OF RECORD 
*        XTRACE - TRACE PROCEDURE CALL
* 
*     8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION 
*        NONE 
* 
 #
STOPIMS;
  
# 
      FORMAL PARAMETERS 
# 
      ITEM LFN C(10);        # NAME OF LOCAL JOB RECORD (JCL)          #
      ITEM FRWD B;           # REWIND FLAG                             #
                             # 0 - REWIND FILE BEFORE READ             #
                             # 1 - NO REWIND                           #
  
# 
      EXTERNAL REFERENCES 
# 
 XREF 
   BEGIN
   PROC OMSG;                # ISSUE DAYFILE MESSAGE                   #
   PROC OPITRCE;             # INITIALIZE NIP DEBUG LOG FILE           #
   PROC OPRETN;              # RETURN FILE                             #
   PROC ROUTE;               # ROUTE FILE                              #
   PROC WRITER;              # WRITE END OF RECORD                     #
   PROC XTRACE;              # TRACE PROCEDURE CALL                    #
   END
  
# 
      INTERNAL VARIABLES
# 
      ITEM BPFETX I;         # TEMPORARY - FET POINTERS                #
      ITEM DTIME;            # TIME WORD                               #
  
      BASED ARRAY LFNNAME;
        BEGIN 
        ITEM LFNAME    C(00,00,10);  # NAME OF LOCAL FILE              #
        ITEM LFILE     I(00,00,60);  # =0 IF NO LOCAL FILE             #
        END 
  
      ARRAY PARAM   P(7);    # PARAM BLK TO ROUTE LFN TO INPUT         #
        BEGIN 
        ITEM PAR$NAME    C(00,00,07)=["ZZZZZDN"];  # NAME OF FILE RTD  #
        ITEM PAR$EC      U(00,42,06);  # ERROR CODE RESPONSE           #
        ITEM PAR$F       B(00,48,01);  # FORCED ORIGIN FLAG            #
        ITEM PAR$OT      U(00,53,06);  # FORCED JOB ORIGIN TYPE        #
        ITEM PAR$CB      B(00,59,01)=[FALSE];  # COMPLETE BIT          #
        ITEM PAR$DISP    C(01,24,02);  # DISPOSITION OF FILE           #
        ITEM PAR$EP      B(01,47,01);  # ERROR PROCESSING FLAG         #
        ITEM PAR$ID      B(01,58,01);  # ROUTE TO CENTRAL SITE         #
        ITEM PAR$DCF     B(01,55,01);  # DISPOSITION CODE SET FLAG     #
        ITEM PAR$WD1     I(01,00,WL)=[0]; 
        ITEM PAR$WD2     I(02,00,WL)=[0]; 
        END 
  
      ARRAY DSKERRMSG  S(4);
        BEGIN 
        ITEM DSKERRTEXT C(0,0,30) = [" XXX ERROR NNB, LFN = ZZZZZDN."]; 
        ITEM DSKPPNAME  U(0,6,18);     # PP NAME - DSP OR CIO          #
        ITEM DSKERRNN   U(1,6,12);     # ERROR CODE FIELD IN DAY MSG   #
        ITEM DSKERREND  U(3,0,60) = [0];
        END 
  
  
  
  
      BEGIN 
  
      CONTROL IFEQ ZZDN,1;
  
      CONTROL IFEQ DEBUG,1; 
        XTRACE("NETREL"); 
      CONTROL FI; 
  
  
      P<LFNNAME> = LOC(LFN);
      IF LFILE[0] NQ 0
      THEN                   # THERE IS A LOCAL FILE TO BE COPIED      #
        BEGIN 
        IF BPNAME[0] EQ "ZZZZZDN" AND NIPINIT 
        THEN
          BEGIN              # ROUTE ZZZZZDN LOG FILE TO INPUT         #
          IF BPAT[0] EQ 0 
          THEN               # NO I/O ERROR HAS OCCURRED ON ZZZZZDN FIL#
            BEGIN 
            WRITER(BPFET,1); # WRITE END OF RECORD TO ZZZZZDN FILE     #
            IF BPAT[0] NQ 0 
            THEN             # I/O ERROR HAS OCCURRED ON ZZZZZDN FILE  #
              BEGIN 
              DSKPPNAME[0] = "CIO";  # NAME OF PP WHICH DETECTED ERROR #
              DSKERRNN[0] = BPAT[0] - (BPAT[0]/8)*8 + 
                            (BPAT[0]/8)*64 + O"3333"; 
              OMSG(DSKERRMSG,0);  # ISSUE DAYFILE MESSAGE              #
              END 
            ELSE             # NO I/O ERROR HAS OCCURRED ON ZZZZZDN    #
              BEGIN 
              PAR$F[0] = TRUE; # SET ROUTE TO SYSTEM ORIGIN            #
              PAR$OT[0] = SYOT;# SYSTEM ORIGIN JOB TYPE                #
              PAR$CB[0] = FALSE;  # CLEAR COMPLETION BIT               #
              PAR$DISP[0] = "IN";  # DISPOSITION OF FILE IS INPUT QUEUE#
              PAR$DCF[0] = TRUE;  # DISPOSITION CODE SET FLAG          #
              PAR$EC[0] = 0; # INITIALIZE ERROR CODE FIELD             #
              PAR$EP[0] = TRUE;# SET ERROR PROCESSING FLAG             #
              PAR$ID[0] = TRUE;# ROUTE TO CENTRAL SITE                 #
              ROUTE(PARAM,1);  # ROUTE ZZZZZDN FILE                    #
              IF PAR$EC[0] NQ 0 
              THEN           # DSP DETECTED ERROR - FILE NOT ROUTED    #
                BEGIN 
                DSKPPNAME[0] = "DSP";  # NAME OF PP WHICH DETECTED ERRO#
                DSKERRNN[0] = PAR$EC[0] - (PAR$EC[0]/8)*8 + 
                              (PAR$EC[0]/8)*64 + O"3333"; 
                OMSG(DSKERRMSG,0);  # ISSUE DAYFILE MESSAGE            #
                OPRETN(BPFET); # RETURN BAD FILE                       #
                END 
              END 
            END 
          IF BPAT[0] NQ 0 
          THEN               # ZZZZZDN FILE IS BAD                     #
            BEGIN 
            OPRETN(BPFET);   # RETURN BAD FILE                         #
            END 
          END 
  
        OPITRCE(LFN,FRWD);   # INITIALIZE NEW NIP DEBUG LOG FILE       #
        END 
      CONTROL FI; 
      END 
TERM
