Lorentzian-type distance restraint energy implemented
[unres.git] / source / unres / src_MD / readrtns.F
index 8a68708..b731cf2 100644 (file)
@@ -2740,22 +2740,21 @@ c Alternative: reading from input
       call readi(controlcard,"HOMOL_NSET",homol_nset,1)       
       if (homol_nset.gt.1)then
          call card_concat(controlcard)
-         read(controlcard,*) (waga_dist1(i),i=1,homol_nset) 
-         call card_concat(controlcard)
-         read(controlcard,*) (waga_angle1(i),i=1,homol_nset) 
-         write(iout,*) "iset distance_weight angle_weight"
-         do i=1,homol_nset
-           write(iout,*) i,waga_dist1(i),waga_angle1(i)
-         enddo
+         read(controlcard,*) (waga_homology(i),i=1,homol_nset) 
+         if(me.eq.king .or. .not. out1file .and. fg_rank.eq.0) then
+          write(iout,*) "iset homology_weight "
+          do i=1,homol_nset
+           write(iout,*) i,waga_homology(i)
+          enddo
+         endif
          iset=mod(kolor,homol_nset)+1
       else
        iset=1
-c       call reada(controlcard,"HOMOL_DIST",waga_dist(1),1.0d0)
-c       call reada(controlcard,"HOMOL_ANGLE",waga_angle(1),1.0d0)
+       waga_homology(1)=1.0
       endif
 
-      write (iout,*) "nnt",nnt," nct",nct
-      call flush(iout)
+cd      write (iout,*) "nnt",nnt," nct",nct
+cd      call flush(iout)
 
 
       lim_odl=0
@@ -2842,7 +2841,7 @@ c    &       sigma_odl_temp(i+nnt-1,j+nnt-1,k)
 c         enddo
 c 1401   continue
 c         close (ientin)
-        if (waga_dist.gt.0.0d0) then
+        if (waga_dist.ne.0.0d0) then
           ii=0
           do i = nnt,nct-2 ! right? without parallel.
             do j=i+2,nct ! right?
@@ -3007,40 +3006,41 @@ c              read (ientin,*) sigma_d(k,i) ! 1st variant
         endif
         close(ientin)
       enddo
-      if (waga_dist.gt.0.0d0) lim_odl=ii
+      if (waga_dist.ne.0.0d0) lim_odl=ii
       if (constr_homology.gt.0) call homology_partition
       if (constr_homology.gt.0) call init_int_table
-      write (iout,*) "homology_partition: lim_theta= ",lim_theta,
-     & "lim_xx=",lim_xx
+cd      write (iout,*) "homology_partition: lim_theta= ",lim_theta,
+cd     & "lim_xx=",lim_xx
 c     write (iout,*) "ithet_start =",ithet_start,"ithet_end =",ithet_end
 c     write (iout,*) "loc_start =",loc_start,"loc_end =",loc_end
 c
 c Print restraints
 c
       if (.not.lprn) return
-      write(iout,*) "waga_theta",waga_theta,"waga_d",waga_d
-      write (iout,*) "Distance restraints from templates"
-      do ii=1,lim_odl
+cd      write(iout,*) "waga_theta",waga_theta,"waga_d",waga_d
+      if(me.eq.king .or. .not. out1file .and. fg_rank.eq.0) then
+       write (iout,*) "Distance restraints from templates"
+       do ii=1,lim_odl
        write(iout,'(3i5,10(2f16.2,4x))') ii,ires_homo(ii),jres_homo(ii),
      &  (odl(ki,ii),1.0d0/dsqrt(sigma_odl(ki,ii)),ki=1,constr_homology)
-      enddo
-      write (iout,*) "Dihedral angle restraints from templates"
-      do i=nnt+3,lim_dih
+       enddo
+       write (iout,*) "Dihedral angle restraints from templates"
+       do i=nnt+3,lim_dih
         write (iout,'(i5,10(2f8.2,4x))') i,(rad2deg*dih(ki,i),
      &      rad2deg/dsqrt(sigma_dih(ki,i)),ki=1,constr_homology)
-      enddo
-      write (iout,*) "Virtual-bond angle restraints from templates"
-      do i=nnt+2,lim_theta
+       enddo
+       write (iout,*) "Virtual-bond angle restraints from templates"
+       do i=nnt+2,lim_theta
         write (iout,'(i5,10(2f8.2,4x))') i,(rad2deg*thetatpl(ki,i),
      &      rad2deg/dsqrt(sigma_theta(ki,i)),ki=1,constr_homology)
-      enddo
-      write (iout,*) "SC restraints from templates"
-      do i=nnt,lim_xx
+       enddo
+       write (iout,*) "SC restraints from templates"
+       do i=nnt,lim_xx
         write(iout,'(i5,10(4f8.2,4x))') i,
      &  (xxtpl(ki,i),yytpl(ki,i),zztpl(ki,i),
      &   1.0d0/dsqrt(sigma_d(ki,i)),ki=1,constr_homology)
-      enddo
-
+       enddo
+      endif
 c -----------------------------------------------------------------
       return
       end