************************************************************************
*Defined in original code
      LOGICAL LFIRST
*
      SAVE LFIRST
      DATA LFIRST / .TRUE. /
*======================================================================*
*                                                                     *
*                 BASIC VERSION                                       *
*                                                                     *
*======================================================================*
      NOMORE = 0
*  +-------------------------------------------------------------------*
*  |  First call initializations:
      IF ( LFIRST ) THEN
*  | *** The following 3 cards are mandatory***
         TKESUM = ZERZER
         LFIRST = .FALSE.
         LUSSRC = .TRUE.
*
*  FB 3/4/07: Write message when routine called for first time:
          WRITE(LUNOUT,*) 'Biased sampling version of SOURCE called' 
*
*  | *** User initialization******************************************
*     FB 2/4/07: Open spectrum file and read into array SPECARR
************************************************************************
       OPEN(UNIT = 21.0, FILE = 'spectrum.dat',  
      &      STATUS = 'OLD',IOSTAT = STAT) 
      IF (STAT == 0) THEN
            READ(21.0, 500, IOSTAT = STAT) ((SPECARR(IROWS, ICOLS), 
      &          ICOLS = 1,NCOLS), IROWS = 1, NROWS) 
 500   FORMAT(2X, E10.3, 2X, E10.3) 
      ELSE
          WRITE(LUNOUT,*) 'Cannot open file spectrum.dat, STAT = ' ,STAT 
      END IF
* End of reading in spectrum file
************************************************************************
      LFIRST = .FALSE.
      END IF
*  |
*  +-------------------------------------------------------------------*