& with_dihed_constr,with_theta_constr,out1file,
& print_homology_restraints,
& print_contact_map,print_homology_models,
- & read2sigma,l_homo,read_homol_frag
+ & read2sigma,l_homo,read_homol_frag,dist1cut
common /cntrl/ betaT,iscode,indpdb,refstr,pdbref,outpdb,outmol2,
& punch_dist,print_dist,caonly,lside,lprint_cart,lprint_int,
& from_cart,from_bx,from_cx, with_dihed_constr,with_theta_constr,
& efree,iopt,nstart,nend,symetr,
& tor_mode,shield_mode,
& constr_dist,out1file,
- & constr_homology,homol_nset,read2sigma,read_homol_frag
+ & constr_homology,homol_nset,read2sigma,read_homol_frag,dist1cut
common /homol/ waga_homology(10),
& waga_dist,waga_angle,waga_theta,waga_d,dist_cut,dist2_cut,
& iset,ihset,l_homo(max_template,maxdim),
call reada(controlcard,"HOMOL_SCD",waga_d,1.0d0) ! new
call reada(controlcard,'DIST_CUT',dist_cut,5.0d0) ! for diff ways of calc sigma
call reada(controlcard,'DIST2_CUT',dist2_cut,9999.0d0)
+ dist1cut=(index(controlcard,'DIST1CUT').gt.0)
call readi(controlcard,"HOMOL_NSET",homol_nset,1)
read2sigma=(index(controlcard,'READ2SIGMA').gt.0)
if (homol_nset.gt.1)then
z12=c(3,i)-c(3,j)
distal=dsqrt(x12*x12+y12*y12+z12*z12)
c write (iout,*) k,i,j,distal,dist2_cut
-
+ if (dist1cut .and. k.gt.1) then
+ ii=ii+1
+ if (l_homo(1,ii)) then
+ ii_in_use(ii)=1
+ l_homo(k,ii)=.true.
+ ires_homo(ii)=i
+ jres_homo(ii)=j
+ odl(k,ii)=distal
+ sigma_odl(k,ii)=sigma_odl(1,ii)
+ else
+ l_homo(k,ii)=.false.
+ endif
+ else
if (idomain(k,i).eq.idomain(k,j).and.idomain(k,i).ne.0
& .and. distal.le.dist2_cut ) then
ii=ii+1
l_homo(k,ii)=.false.
endif
+ endif
enddo
enddo
lim_odl=ii
logical refstr,pdbref,punch_dist,print_rms,caonly,verbose,
& merge_helices,bxfile,cxfile,histfile,entfile,zscfile,
& rmsrgymap,with_dihed_constr,check_conf,histout,out1file,
- & read2sigma,l_homo,with_theta_constr,read_homol_frag
+ & read2sigma,l_homo,with_theta_constr,read_homol_frag,dist1cut
common /cntrl/ iscode,indpdb,refstr,pdbref,outpdb,outmol2,
& punch_dist,print_rms,caonly,verbose,icomparfunc,pdbint,
& merge_helices,bxfile,cxfile,histfile,entfile,zscfile,rmsrgymap,
& with_theta_constr,
& symetr,
& constr_dist,
- & constr_homology,out1file,homol_nset,read2sigma,read_homol_frag
+ & constr_homology,out1file,homol_nset,read2sigma,read_homol_frag,
+ & dist1cut
common /homol/ waga_homology(maxR),
& waga_dist,waga_angle,waga_theta,waga_d,dist_cut,dist2_cut,
& iset,ihset,l_homo(max_template,maxdim)
call reada(controlcard,"HOMOL_SCD",waga_d,1.0d0) ! new
call reada(controlcard,'DIST_CUT',dist_cut,5.0d0) ! for diff ways of calc sigma
call reada(controlcard,'DIST2_CUT',dist2_cut,9999.0d0)
+ dist1cut=(index(controlcard,'DIST1CUT').gt.0)
call readi(controlcard,"HOMOL_SET",homol_nset,1)
read2sigma=(index(controlcard,'READ2SIGMA').gt.0)
call readi(controlcard,"IHSET",ihset,1)
z12=c(3,i)-c(3,j)
distal=dsqrt(x12*x12+y12*y12+z12*z12)
c write (iout,*) k,i,j,distal,dist2_cut
-
+ if (dist1cut .and. k.gt.1) then
+ ii=ii+1
+ if (l_homo(1,ii)) then
+ ii_in_use(ii)=1
+ l_homo(k,ii)=.true.
+ ires_homo(ii)=i
+ jres_homo(ii)=j
+ odl(k,ii)=distal
+ sigma_odl(k,ii)=sigma_odl(1,ii)
+ else
+ l_homo(k,ii)=.false.
+ endif
+ else
if (idomain(k,i).eq.idomain(k,j).and.idomain(k,i).ne.0
& .and. distal.le.dist2_cut ) then
ii=ii+1
l_homo(k,ii)=.false.
endif
+ endif
enddo
enddo
lim_odl=ii