anchor.diff:  30 continue
   
     call readcollimator
  +
  +  ! Generate family names from DB
  +  do j=1,db_ncoll
  +    cFam     = " "
  +    cNSig    = zero
  +    elemName = chr_toLower(db_name2(j))
  +    if(elemName(1:3) == "tcp") then
  +      if(elemName(7:9) == "3.b") then
  +        cFam  = "tcp3"
  +        cNSig = nsig_tcp3
  +      else
  +        cFam  = "tcp7"
  +        cNSig = nsig_tcp7
  +      end if
  +    else if(elemName(1:4) == "tcsg") then
  +      if(elemName(8:10) == "3.b" .or. elemName(9:11) == "3.b") then
  +        cFam  = "tcsg3"
  +        cNSig = nsig_tcsg3
  +      else
  +        cFam  = "tcsg7"
  +        cNSig = nsig_tcsg7
  +      end if
  +      if(elemName(5:6) == ".4" .and. elemName(8:9) == "6.") then
  +        cFam  = "tcstcdq"
  +        cNSig = nsig_tcstcdq
  +      end if
  +    else if(elemName(1:4) == "tcsp") then
  +      if(elemName(9:11) == "6.b") then
  +        cFam  = "tcstcdq"
  +        cNSig = nsig_tcstcdq
  +      end if
  +    else if(elemName(1:4) == "tcsm") then
  +      if(elemName(8:10) == "3.b" .or. elemName(9:11) == "3.b") then
  +        cFam  = "tcsm3"
  +        cNSig = nsig_tcsm3
  +      else
  +        cFam  = "tcsm7"
  +        cNSig = nsig_tcsm7
  +      end if
  +    else if(elemName(1:4) == "tcla") then
  +      if(elemName(9:11) == "7.b") then
  +        cFam  = "tcla7"
  +        cNSig = nsig_tcla7
  +      else
  +        cFam  = "tcla3"
  +        cNSig = nsig_tcla3
  +      endif
  +    else if(elemName(1:4) == "tcdq") then
  +      cFam  = "tcdq"
  +      cNSig = nsig_tcdq
  +    else if(elemName(1:4) == "tcth" .or. elemName(1:5) == "tctph") then
  +      if(elemName(8:8) == "1" .or. elemName(9:9) == "1" ) then
  +        cFam  = "tcth1"
  +        cNSig = nsig_tcth1
  +      else if(elemName(8:8) == "2" .or. elemName(9:9) == "2") then
  +        cFam  = "tcth2"
  +        cNSig = nsig_tcth2
  +      else if(elemName(8:8) == "5" .or. elemName(9:9) == "5") then
  +        cFam  = "tcth5"
  +        cNSig = nsig_tcth5
  +      else if(elemName(8:8) == "8" .or. elemName(9:9) == "8") then
  +        cFam  = "tcth8"
  +        cNSig = nsig_tcth8
  +      end if
  +    else if(elemName(1:4) == "tctv" .or. elemName(1:5) == "tctpv") then
  +      if(elemName(8:8) == "1" .or. elemName(9:9) == "1") then
  +        cFam  = "tctv1"
  +        cNSig = nsig_tctv1
  +      else if(elemName(8:8) == "2" .or. elemName(9:9) == "2") then
  +        cFam  = "tctv2"
  +        cNSig = nsig_tctv2
  +      else if(elemName(8:8) == "5" .or. elemName(9:9) == "5") then
  +        cFam  = "tctv5"
  +        cNSig = nsig_tctv5
  +      else if(elemName(8:8) == "8" .or. elemName(9:9) == "8") then
  +        cFam  = "tctv8"
  +        cNSig = nsig_tctv8
  +      end if
  +    else if(elemName(1:3) == "tdi") then
  +      cFam  = "tdi"
  +      cNSig = nsig_tdi
  +    else if(elemName(1:4) == "tclp" .or. elemName(1:4) == "tcl." .or. elemName(1:4) == "tclx") then
  +      cFam  = "tclp"
  +      cNSig = nsig_tclp
  +    else if(elemName(1:4) == "tcli") then
  +      cFam  = "tcli"
  +      cNSig = nsig_tcli
  +    else if(elemName(1:4) == "tcxr") then
  +      cFam  = "tcxrp"
  +      cNSig = nsig_tcxrp
  +    else if(elemName(1:5) == "tcryo" .or. elemName(1:5) == "tcld.") then
  +      cFam  = "tcryo"
  +      cNSig = nsig_tcryo
  +    else
  +      write(lout,"(a)") "COLL> WARNING When setting opening for collimator '"//trim(elemName)//&
  +          "' from fort.3. Name not recognized. Setting nsig = 1000.0"
  +      cFam="default"
  +      cNSig=c1e3
  +    end if
  +    call collimate_getFamilyID(cFam,famID,.true.)
  +    coll_nSigFamily(famID) = cNSig
  +    db_family(j) = famID
  +  end do
  +
     goto 100
   
   ! ============================================================================ !
  
positive.code:   character(len=:), allocatable, private, save :: db_name1(:)    ! (mNameLen)(db_ncoll)
    character(len=:), allocatable, private, save :: db_name2(:)    ! (mNameLen)(db_ncoll)
    character(len=:), allocatable, private, save :: db_material(:) ! (4)(db_ncoll)
  
    real(kind=fPrec), allocatable, private, save :: db_nsig(:)     ! (db_ncoll)
    real(kind=fPrec), allocatable, private, save :: db_length(:)   ! (db_ncoll)
  
negative.code:   character(len=:), allocatable   :: lnSplit(:)
    character(len=mInputLn) inLine
    character(len=mNameLen) elemName
    character(len=16) cFam
    real(kind=fPrec)  cNSig
    integer dbUnit, ioStat, nLines, nSplit, collID, famID
    integer i, j, ix
    logical dbErr, spErr, oldDB
  
  