c--------------------------------------------------------------------- c PROGRAM RENUM ECMeng 09/08 c --interactive input/output specification c --sets chain IDs A,B,... for models delimited with MODEL/ENDMDL c --removes MODEL/ENDMDL lines C --also increments chain ID upon hitting TER, MODELs can have >1 chn c --does not renumber the atoms or residues c--------------------------------------------------------------------- c character*80 pdblin, pdbfil, pdbout character*26 cids character*1 chainid integer atoms,count c cids = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' c write (6, *) 'enter name of pdb input file:' read (5, 1000) pdbfil 1000 format (A80) write (6, 1000) pdbfil write (6, *) 'enter name of output file:' read (5, 1000) pdbout write (6, 1000) pdbout open (unit=1, file=pdbfil, status='old') open (unit=2, file=pdbout, status='unknown') c count = 1 chainid = cids(1:1) atoms = 0 50 read (1, 1000, end=500) pdblin if (pdblin(1:3).eq.'TER'.and.atoms.ne.0) then write (6,*) 'found TER, end of chain ',chainid count = count + 1 chainid = cids(count:count) atoms = 0 write (2,1002) 'TER' 1002 format (a3) else if (pdblin(1:6).eq.'ENDMDL'.and.atoms.ne.0) then write (6,*) 'found ENDMDL, end of chain ',chainid count = count + 1 chainid = cids(count:count) atoms = 0 else if (pdblin(1:4).eq.'ATOM'.or.pdblin(1:4).eq.'HETA') then atoms = atoms + 1 write (2,1001) pdblin(1:21),chainid,pdblin(23:80) 1001 format (a21,a1,a58) endif go to 50 500 continue close (1) close (2) end c---------------------------------------------------------------------