Adam's corrections
[unres.git] / source / unres / src-HCD-5D / readrtns_CSA.F
index 5dd78ea..16c0f37 100644 (file)
@@ -3559,13 +3559,12 @@ c----------------------------------------------------------------------
       character*24 model_ki_dist, model_ki_angle
       character*500 controlcard
       integer ki, i, j, k, l, ii_in_use(maxdim),i_tmp,idomain_tmp,
-     & ik,ll,ii,kk,iistart,lim_xx
+     & ik,ll,ii,kk,iistart,iishift,lim_xx
       double precision distal
       logical lprn /.true./
       integer ilen
       external ilen
-      logical liiflag,lfirst
-      integer i01,i10
+      logical liiflag
 c
 c
       double precision rescore_tmp,x12,y12,z12,rescore2_tmp
       if (waga_dist.ne.0.0d0) then
         ii=0
         liiflag=.true.
-        lfirst=.true.
         do i=nnt,nct-2 
          do j=i+2,nct 
           ii=ii+1
-          if (ii_in_use(ii).eq.0.and.liiflag.or.
-     &     ii_in_use(ii).eq.1.and.liiflag.and.ii.eq.lim_odl) then
+          if (ii_in_use(ii).eq.0.and.liiflag) then
             liiflag=.false.
-            i10=ii
-            if (lfirst) then
-              lfirst=.false.
-              iistart=ii
-            else
-              if(i10.eq.lim_odl) i10=i10+1
-              do ki=0,i10-i01-1
-               ires_homo(iistart+ki)=ires_homo(ki+i01)
-               jres_homo(iistart+ki)=jres_homo(ki+i01)
-               ii_in_use(iistart+ki)=ii_in_use(ki+i01)
-               do k=1,constr_homology
-                odl(k,iistart+ki)=odl(k,ki+i01)
-                sigma_odl(k,iistart+ki)=sigma_odl(k,ki+i01)
-                l_homo(k,iistart+ki)=l_homo(k,ki+i01)
-               enddo
-              enddo
-              iistart=iistart+i10-i01
-            endif
+            iistart=ii
           endif
-          if (ii_in_use(ii).ne.0.and..not.liiflag) then
-             i01=ii
+          if (ii_in_use(ii).ne.0.and..not.liiflag.or.
+     &                   .not.liiflag.and.ii.eq.lim_odl) then
+             if (ii.eq.lim_odl) then
+              iishift=ii-iistart+1
+             else
+              iishift=ii-iistart
+             endif
              liiflag=.true.
+             do ki=iistart,lim_odl-iishift
+              ires_homo(ki)=ires_homo(ki+iishift)
+              jres_homo(ki)=jres_homo(ki+iishift)
+              ii_in_use(ki)=ii_in_use(ki+iishift)
+              do k=1,constr_homology
+               odl(k,ki)=odl(k,ki+iishift)
+               sigma_odl(k,ki)=sigma_odl(k,ki+iishift)
+               l_homo(k,ki)=l_homo(k,ki+iishift)
+              enddo
+             enddo
+             ii=ii-iishift
+             lim_odl=lim_odl-iishift
           endif
          enddo
         enddo
-        lim_odl=iistart-1
       endif
 
       return