DIST2_CUT introduced for homology to remove restraints
[unres.git] / source / unres / src_MD / readrtns.F
index eb10b7f..6b59d69 100644 (file)
@@ -2581,6 +2581,7 @@ c      call flush(iout)
       call readi(controlcard,"NPAIR",npair_,0)
       call readi(controlcard,"NDIST",ndist_,0)
       call reada(controlcard,'DIST_CUT',dist_cut,5.0d0)
+      call reada(controlcard,'DIST2_CUT',dist2_cut,9999.0d0)
       call multreadi(controlcard,"IFRAG",ifrag_(1,1),2*nfrag_,0)
       call multreadi(controlcard,"IPAIR",ipair_(1,1),2*npair_,0)
       call multreada(controlcard,"WFRAG",wfrag_(1),nfrag_,0.0d0)
@@ -2885,8 +2886,15 @@ c           write(iout,*) "rescore(",k,irec,") =",rescore(k,irec)
           do i = nnt,nct-2 
             do j=i+2,nct 
 
-            if (idomain(k,i).eq.idomain(k,j).and.idomain(k,i).ne.0) then
-                  
+              x12=c(1,i)-c(1,j)
+              y12=c(2,i)-c(2,j)
+              z12=c(3,i)-c(3,j)
+              distal=dsqrt(x12*x12+y12*y12+z12*z12) 
+
+
+            if (idomain(k,i).eq.idomain(k,j).and.idomain(k,i).ne.0
+     &            .and. distal.le.dist2_cut ) then
+
               ii=ii+1
               ii_in_use(ii)=1
               l_homo(k,ii)=.true.
@@ -2896,13 +2904,6 @@ c             write (iout,*) "i",i," j",j," constr_homology",
 c    &                       constr_homology
               ires_homo(ii)=i
               jres_homo(ii)=j
-c
-c Attempt to replace dist(i,j) by its definition in ...
-c
-              x12=c(1,i)-c(1,j)
-              y12=c(2,i)-c(2,j)
-              z12=c(3,i)-c(3,j)
-              distal=dsqrt(x12*x12+y12*y12+z12*z12)
               odl(k,ii)=distal
               if (read2sigma) then
                 sigma_odl(k,ii)=0
      &        sigma_odl(k,ii)*dexp(0.5d0*(odl(k,ii)/dist_cut)**2-0.5d0)
               else
                 if (odl(k,ii).le.dist_cut) then
-                 sigma_odl(k,ii)=rescore(k,i)+rescore(k,j) ! other exprs possible
-c                sigma_odl(k,ii)=hmscore(k)*rescore(k,i)*rescore(k,j)
+                 sigma_odl(k,ii)=rescore(k,i)+rescore(k,j) 
                 else
 #ifdef OLDSIGMA
-                 sigma_odl(k,ii)=(rescore(k,i)+rescore(k,j))* ! sigma ~ rescore ~ error 
+                 sigma_odl(k,ii)=(rescore(k,i)+rescore(k,j))* 
      &                      dexp(0.5d0*(odl(k,ii)/dist_cut)**2)
 #else
-                 sigma_odl(k,ii)=(rescore(k,i)+rescore(k,j))* ! sigma ~ rescore ~ error 
+                 sigma_odl(k,ii)=(rescore(k,i)+rescore(k,j))* 
      &                      dexp(0.5d0*(odl(k,ii)/dist_cut)**2-0.5d0)
 #endif
                 endif
               endif
-c   Following expr replaced by a positive exp argument
-c             sigma_odl(k,ii)=(rescore(k,i)+rescore(k,j))*
-c    &                      dexp(-0.5d0*(odl(k,ii)/dist_cut)**2)
-
-c             sigma_odl(k,ii)=hmscore(k)*rescore(k,i)*rescore(k,j)*
-c    &                      dexp(-0.5d0*(odl(k,ii)/dist_cut)**2)
-c
-              sigma_odl(k,ii)=1.0d0/(sigma_odl(k,ii)*sigma_odl(k,ii)) ! rescore ~ error
-c             sigma_odl(k,ii)=sigma_odl(k,ii)*sigma_odl(k,ii)
-c
-c             sigma_odl(k,ii)=sigma_odl_temp(i,j,k)* ! new var read from file (?)
-c    &                        sigma_odl_temp(i,j,k)  ! not inverse because of use of res. similarity
+              sigma_odl(k,ii)=1.0d0/(sigma_odl(k,ii)*sigma_odl(k,ii)) 
             else
               ii=ii+1
               l_homo(k,ii)=.false.