CHARACTER*40 INFILE1,INFILE2,FILENAME CHARACTER*70 ASTRING LOGICAL EFLG real*8 coor(3),com(3) integer*4 I,j,N,M CHARACTER*4 A WRITE(6,*) 'Calculate c o m of all atoms pdb file:' WRITE(6,*) 'Numerical average only:' WRITE(6,*) ' atomic mass, number not considred' 6 WRITE(6,*) 'ENTER NAME OF pdb file:' READ(5,'(A)') INFILE1 c1200 FORMAT(A) IF (INFILE1(:5).EQ.' ') STOP INQUIRE(FILE=INFILE1, NAME=FILENAME,EXIST=EFLG) IF (.NOT.EFLG) GOTO 6 OPEN (UNIT=2,FILE=INFILE1,STATUS='OLD') do 45 j=1,3 45 com(j)=0. I=1 c read coord 50 read(2,'(A)',end=70) ASTRING if ((ASTRING(1:6).ne.'ATOM ').and.(ASTRING(1:6).ne.'HETATM')) . goto 50 read (ASTRING,51) A, A,J,(coor(j),j=1,3) 51 format (12x,A4,A6,I4,4x,3d8.3,2f6.2) do 55 j=1,3 55 com(j)=com(j)+coor(j) 60 I=I+1 goto 50 70 M=I-1 N=3 Write(6,*) 'finding average point of',M,' atoms' c form i,j th element of mtm by dotting ith into j'th column of mat. do 100 i=1,3 100 com(i)=com(i)/M 350 Write(6,*) 'Center of atoms:' Write(6,'(3F16.10)') (com(i),i=1,n) Write(6,*) 'to shift com to origin, pdbset with:' Write(6,360) (-com(i),i=1,n) 360 format ('SHIFT ',3f16.10) end