anchor.diff:       idx = idx + ncol(i)
     end do
     ! Hamiltonian matrix
  -  do is = 1, tmp(4)
  -     idx = 0
  -     do i = 1 , tmp(2)
  +  if ( onlyS ) then
  +    H(:,:) = 0._dp
  +  else
  +    do is = 1, tmp(4)
  +      idx = 0
  +      do i = 1 , tmp(2)
           read(iu) H(idx+1:idx+ncol(i),is)
           idx = idx + ncol(i)
  -     end do
  -     ! Move to Ef = 0
  -     if ( is <= 2 ) then
  +      end do
  +      ! Move to Ef = 0
  +      if ( is <= 2 ) then
           H(:,is) = H(:,is) - Ef * S(:)
  -     end if
  -     ! Change to eV
  -     H(:,is) = H(:,is) * eV
  -  end do
  +      end if
  +      ! Change to eV
  +      H(:,is) = H(:,is) * eV
  +    end do
  +  end if
   
     close(iu)
   
  
positive.code:   ! Read the stuff...
    read(iu) ! nsc
    read(iu) ! cell, xa
    read(iu) Gamma ! TSGamma, onlyS
    read(iu) ! kscell, kdispl
    read(iu) Ef ! Qtot, Temp
    read(iu) ! istep, ia1
  
negative.code:   integer :: iu, i, is, idx
    integer :: version, tmp(5)
    real(dp) :: Ef
    logical :: Gamma, TSGamma, onlyS
  
    call read_tshs_version(fname, version)
  
  