*COMDECK,FA=OPE 
          CTEXT  FA=OPE - OPEN FILE 
 OPE      SPACE  4
          IF     -DEF,QUAL$,1 
          QUAL   FA=OPE 
  
  
**        FA=OPE - OPEN FILE. 
* 
*                OPENS A FILE, RELIABLY.  PREVENTS REDUNDANT OPEN 
*         ERRORS.  HONORS AND PRESERVES *PD*, *OF* AND *CF* IN FIT. 
* 
* 
*         ENTRY  (X2) = FIT ADDRESS 
* 
*         EXIT   (X2) = FIT ADDRESS 
* 
*         USES   X - 3, 6 
*                A - 3
*                B - 2
* 
*         SAVES  (A5), (X5) 
* 
*         CALLS  CLOSEM, FETCH, OPENM, SETFIT, STORE
  
  
 FA=OPE   JP     *+4S15      ** ENTRY/EXIT ** 
  
*         CHECK FILE OPEN/CLOSED STATUS.
  
          FETCH  X2,PD,X6,X3
          SB2    X6          TEMP SAVE *PD* (*SETFIT* WILL DESTROY) 
          SETFIT X2          FDT PARAMETERS TO FIT
          FETCH  X2,OC,X6,X3
          SX6    X6-#OPE# 
          NZ     X6,OPE2     IF FILE NOT OPEN 
  
*         HERE IF FILE LEFT OPEN BY PREVIOUS JOB STEP.  SOME ATTRIBUTES 
*         OF AN OPEN FILE, SUCH AS *PD*, CANNOT BE CHANGED, SO WE CLOSE 
*         IT FIRST (SIGH).
  
          FETCH  X2,CF,X6,X3 TEMP SAVE *CF* (*CLOSEM* WILL DESTROY) 
          CLOSEM X2,N 
          STORE  X2,CF=X6,X3
  
*         (RE)OPEN FILE.
  
 OPE2     SX6    B2 
          STORE  X2,PD=X6,X3
          OPENM  X2 
          JP     FA=OPE      EXIT 
  
  
          IF     -DEF,QUAL$,2 
          QUAL   *
 FA=OPE   EQU    /FA=OPE/FA=OPE 
          ENDX
