c c atomnames: change the atom names of a pdb file from c the tinker names to charmm/namd names c c usage atomnames < test.pdb > newpdb.pdb c c Leandro Martinez, Jan 2005 c http://www.ime.unicamp.br/~martinez/packmol c implicit double precision (a-h,o-z) character*80 record character*5 atom character*4 resid do while(.true.) read(*,10,end=20,err=20) record if(record(1:4).eq.'ATOM'.or.record(1:6).eq.'HETATM') then atom = ' ' read(record(13:17),*) atom read(record(18:21),*) resid call change(atom,resid) leng = 0 do i = 1, 5 if(atom(i:i).gt.' ') leng = leng + 1 end do record(13:17) = ' ' if(leng.ge.4) record(13:17) = atom(1:5) if(leng.lt.4) record(14:17) = atom(1:4) leng = 0 do i = 1, 4 if(resid(i:i).gt.' ') leng = leng + 1 end do record(18:21) = ' ' if(leng.lt.4) record(18:20) = resid(1:3) if(leng.ge.4) record(18:21) = resid(1:4) end if write(*,10) record end do 20 continue 10 format(a80) end subroutine change(atom,resid) character*5 atom, temp character*4 resid if(atom.eq.'H') atom = 'HN' if(atom.eq.'1H') atom = 'HT1' if(atom.eq.'2H') atom = 'HT2' if(atom.eq.'3H') atom = 'HT3' if(atom.eq.'1HB') atom = 'HB1' if(atom.eq.'2HB') atom = 'HB2' if(atom.eq.'3HB') atom = 'HB3' if(atom.eq.'1HG') atom = 'HG1' if(atom.eq.'2HG') atom = 'HG2' if(atom.eq.'1HE2') atom = 'HE21' if(atom.eq.'2HE2') atom = 'HE22' if(atom.eq.'1HD') atom = 'HD1' if(atom.eq.'2HD') atom = 'HD2' if(atom.eq.'1HH1') atom = 'HH11' if(atom.eq.'2HH2') atom = 'HH22' if(atom.eq.'1HH2') atom = 'HH21' if(atom.eq.'2HH1') atom = 'HH12' if(atom.eq.'1HG2') atom = 'HG21' if(atom.eq.'2HG2') atom = 'HG22' if(atom.eq.'3HG2') atom = 'HG23' if(atom.eq.'3HG1') atom = 'HG13' if(atom.eq.'1HD1') atom = 'HD11' if(atom.eq.'2HD1') atom = 'HD12' if(atom.eq.'3HD1') atom = 'HD13' if(atom.eq.'1HD2') atom = 'HD21' if(atom.eq.'2HD2') atom = 'HD22' if(atom.eq.'3HD2') atom = 'HD23' if(atom.eq.'1HE2') atom = 'HE21' if(atom.eq.'HE22') atom = 'HE22' if(atom.eq.'1HA') atom = 'HA1' if(atom.eq.'2HA') atom = 'HA2' if(atom.eq.'1HE') atom = 'HE1' if(atom.eq.'2HE') atom = 'HE2' if(atom.eq.'3HE') atom = 'HE3' if(atom.eq.'1HG1') atom = 'HG11' if(atom.eq.'2HG1') atom = 'HG12' if(atom.eq.'1HD1') atom = 'HD11' if(atom.eq.'2HD1') atom = 'HD21' if(atom.eq.'3HD1') atom = 'HD31' if(atom.eq.'1HZ') atom = 'HZ1' if(atom.eq.'2HZ') atom = 'HZ2' if(atom.eq.'3HZ') atom = 'HZ3' if(atom.eq.'HG'.and.resid.eq.'SER') atom = 'HG1' if(atom.eq.'HG'.and.resid.eq.'CYS') atom = 'HG1' if(resid.eq.'ILE'.and.atom.eq.'CD1') atom = 'CD' if(atom.eq.'OXT') atom = 'OT1' end