subroutine contacts_in_fragments(lprint,is,ncont,icont,ncont_frag, & icont_frag,ib,iprot) implicit none include 'DIMENSIONS' include 'DIMENSIONS.COMPAR' include 'COMMON.INTERACT' include 'COMMON.COMPAR' include 'COMMON.IOUNITS' include 'COMMON.CHAIN' include 'COMMON.NAMES' integer icont(2,maxcont),ncont_frag(maxfrag), & icont_frag(2,maxcont,maxfrag) logical OK1,OK2,lprint do j=1,nfrag(1,iprot) nc=0 c write (iout,*) "i",1," j",j,(ifrag(1,k,j,ib,iprot), c & ifrag(2,k,j,ib,iprot) c & ,k=1,npiece(j,1,ib,iprot)) do k=1,ncont ic1=icont(1,k) ic2=icont(2,k) OK1=.false. l=0 do while (.not.OK1 .and. l.lt.npiece(j,1,ib,iprot)) l=l+1 OK1=ic1.ge.ifrag(1,l,j,ib,iprot)-is .and. & ic1.le.ifrag(2,l,j,ib,iprot)+is enddo OK2=.false. l=0 do while (.not.OK2 .and. l.lt.npiece(j,1,ib,iprot)) l=l+1 OK2=ic2.ge.ifrag(1,l,j,ib,iprot)-is .and. & ic2.le.ifrag(2,l,j,ib,iprot)+is enddo c write(iout,*) "k",k," ic1",ic1," ic2",ic2," OK1",OK1, c & " OK2",OK2 if (OK1.and.OK2) then nc=nc+1 icont_frag(1,nc,j)=ic1 icont_frag(2,nc,j)=ic2 c write (iout,*) "nc",nc," ic1",ic1," ic2",ic2 endif enddo ncont_frag(j)=nc c do k=1,ncont_frag(j) c i1=icont_frag(1,k,j) c i2=icont_frag(2,k,j) c it1=itype(i1) c it2=itype(i2) c write (iout,'(i3,2x,a,i4,2x,a,i4)') c & i,restyp(it1),i1,restyp(it2),i2 c enddo enddo if (lprint) then write (iout,*) "Electrostatic contacts in fragments:" write (iout,*) "Level 1" do j=1,nfrag(1,ib,iprot) write (iout,*) "Fragment",j,"(",(ifrag(1,k,j,ib,iprot), & ifrag(2,k,j,ib,iprot),k=1,npiece(j,1,ib,iprot)),")" write (iout,*) "Number of contacts",ncont_frag(j) do k=1,ncont_frag(j) i1=icont_frag(1,k,j) i2=icont_frag(2,k,j) it1=itype(i1) it2=itype(i2) write (iout,'(i3,2x,a,i4,2x,a,i4)') & i,restyp(it1),i1,restyp(it2),i2 enddo enddo endif return end