Add support for PDB files that left justify atomic type

This commit is contained in:
Kurt Glaesmann 2009-07-02 20:26:51 +00:00
parent 7ebe87ff2a
commit 063ccd9587
3 changed files with 50 additions and 1 deletions

View file

@ -117,4 +117,5 @@ Jan 14 1999 Add zeros for nsp,npmf,npmfi
Jan 29 1999 Add MODEL option
Add input LINK command
Add CHAIN option
Change in topology format
Change in topology format
Jul 2 2009 Add support for PDB files that left justify atomic type

View file

@ -186,6 +186,18 @@ c if(nchain.eq.1) cseq(1,iseq)(4:5)='_N'
latm(2,iatm)=pre_atnum(card(77:78))
if(latm(2,iatm).eq.0) latm(2,iatm)=pre_atnum(card(13:14))
catm(1,iatm)(1:4)=card(13:16)
c shift it to get justifcation correct
if (catm(1,iatm)(2:2) .eq. ' ') then
catm(1,iatm)(2:2) = catm(1,iatm)(3:3)
catm(1,iatm)(3:3) = catm(1,iatm)(4:4)
catm(1,iatm)(4:4) = ' '
endif
if (catm(1,iatm)(2:2) .eq. ' ') then
catm(1,iatm)(2:2) = catm(1,iatm)(3:3)
catm(1,iatm)(3:3) = catm(1,iatm)(4:4)
catm(1,iatm)(4:4) = ' '
endif
c
read(card(31:54),'(3f8.3)') (xatm(j,iatm),j=1,3)
endif
goto 1
@ -230,6 +242,18 @@ c if(nchain.eq.1) cseq(1,iseq)(4:5)='_N'
latm(2,iatm)=pre_atnum(card(77:78))
if(latm(2,iatm).eq.0) latm(2,iatm)=pre_atnum(card(13:14))
catm(1,iatm)(1:4)=card(13:16)
c shift it to get justifcation correct
if (catm(1,iatm)(2:2) .eq. ' ') then
catm(1,iatm)(2:2) = catm(1,iatm)(3:3)
catm(1,iatm)(3:3) = catm(1,iatm)(4:4)
catm(1,iatm)(4:4) = ' '
endif
if (catm(1,iatm)(2:2) .eq. ' ') then
catm(1,iatm)(2:2) = catm(1,iatm)(3:3)
catm(1,iatm)(3:3) = catm(1,iatm)(4:4)
catm(1,iatm)(4:4) = ' '
endif
c
read(card(31:54),'(3f8.3)') (xatm(j,iatm),j=1,3)
endif
goto 1

View file

@ -149,6 +149,18 @@ c
endif
1002 format(a6,6x,a4,a1,a3,1x,a1,i4,4x,3f8.3)
2002 format(a6,6x,a4,a1,a3,i6,4x,3f8.3)
c shift it to get justifcation correct
if (nama(2:2) .eq. ' ') then
nama(2:2) = nama(3:3)
nama(3:3) = nama(4:4)
nama(4:4) = ' '
endif
if (nama(2:2) .eq. ' ') then
nama(2:2) = nama(3:3)
nama(3:3) = nama(4:4)
nama(4:4) = ' '
endif
c
if(util_print('where',print_debug)) then
if(lrgpdb.eq.0) then
write(lfnout,1002) hdr,nama,alocal,namr,achain,num,x,y,z
@ -156,6 +168,18 @@ c
write(lfnout,2002) hdr,nama,alocal,namr,num,x,y,z
endif
endif
c shift it to get justifcation correct
if (nama(2:2) .eq. ' ') then
nama(2:2) = nama(3:3)
nama(3:3) = nama(4:4)
nama(4:4) = ' '
endif
if (nama(2:2) .eq. ' ') then
nama(2:2) = nama(3:3)
nama(3:3) = nama(4:4)
nama(4:4) = ' '
endif
c
if(alocal.ne.' '.and.alocal.ne.altloc.and.altloc.ne.'*') goto 100
if(achain.ne.' '.and.achain.ne.chain.and.chain.ne.'*') goto 100
c