From 063ccd95873ec0d81d39d372ea9cefff25decffb Mon Sep 17 00:00:00 2001 From: Kurt Glaesmann Date: Thu, 2 Jul 2009 20:26:51 +0000 Subject: [PATCH] Add support for PDB files that left justify atomic type --- src/prepar/ChangeLog | 3 ++- src/prepar/pre_pdbseq.F | 24 ++++++++++++++++++++++++ src/prepar/pre_rdpdb.F | 24 ++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/src/prepar/ChangeLog b/src/prepar/ChangeLog index b331610cd9..8a187489cf 100644 --- a/src/prepar/ChangeLog +++ b/src/prepar/ChangeLog @@ -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 \ No newline at end of file + Change in topology format +Jul 2 2009 Add support for PDB files that left justify atomic type diff --git a/src/prepar/pre_pdbseq.F b/src/prepar/pre_pdbseq.F index 49e60f3b8d..d4f22e1799 100644 --- a/src/prepar/pre_pdbseq.F +++ b/src/prepar/pre_pdbseq.F @@ -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 diff --git a/src/prepar/pre_rdpdb.F b/src/prepar/pre_rdpdb.F index be41cd8ffb..9af2b3f9d6 100644 --- a/src/prepar/pre_rdpdb.F +++ b/src/prepar/pre_rdpdb.F @@ -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