anchor.diff:  
   contains
   
  -  subroutine data_read(iproc,udata,data_type,uwgt,wid,nvars,nclasses,&
  -                       nseqs,neff,seqs,error_code,error_string)
  +  subroutine data_read(iproc, udata, data_type, uwgt, wid, nvars, nclasses, &
  +                       nseqs, neff, seqs, error_code, error_string)
       use fasta, only: fasta_read
       integer,              intent(in)    :: iproc
       integer,              intent(in)    :: udata
  
positive.code: 
      end if
  
      if ( wid > 0.0_kflt ) then 
  
         call data_reweight(seqs,wid,iproc)
  
      end if
  
  
negative.code:     case('bio', 'protein', 'nuc_acid')
  
         ! read sequences from MSA
         call fasta_read(udata, seqs, data_type, error_code, error_string)
         if (error_code /= 0) return
         nseqs = size(seqs, 2)
         if (nvars == 0) nvars = size(seqs, 1)
  
      end select
  
      allocate(ws(nseqs), stat=err)
      ! initialize weigths to one
      ws = 1.0_kflt
  
      if (uwgt > 0) then 
         ! count lines
         nn = 0
         do
            read(uwgt, '(a)', iostat=err) line
            ! exit at end of file or empty line
            if( err < 0 .or. len_trim(line) == 0) exit
            nn = nn + 1
         end do
  
         rewind(uwgt)
         if (nn /= nseqs) then
            error_code = 23
            return
         end if
  
         do i = 1,nseqs
            read(uwgt, *, iostat=err) ws(i)
            if(err > 0) then 
               error_code = 21
               return
  