Merge branch 'lipid' of mmka.chem.univ.gda.pl:unres into lipid
[unres.git] / source / wham / src-M / enecalc1.F
index a5d25b3..36ef370 100644 (file)
@@ -160,12 +160,15 @@ c     &   " kfac",kfac,"quot",quot," fT",fT
 C        write (iout,*) "tuz przed energia"
         call etotal(energia(0),fT)
 C        write (iout,*) "tuz za energia"
-
+#define DEBUG
 #ifdef DEBUG
         write (iout,*) "Conformation",i
           write (iout,'(8f10.5)') ((c(l,k),l=1,3),k=1,nres)
           write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct)
         call enerprint(energia(0),fT)
+#endif
+#undef DEBUG
+#ifdef DEBUG
         write (iout,'(2i5,21f8.2)') i,iparm,(energia(k),k=1,21)
         write (iout,*) "ftors(1)",ftors(1)
         call briefout(i,energia(0))
@@ -743,11 +746,36 @@ c------------------------------------------------------------------------------
       endif
       call int_from_cart1(.false.)
       do j=nnt+1,nct
+        if (wliptran.gt.0d0) then
+        if (itype(j-1).ne.ntyp1 .and. itype(j).ne.ntyp1 .and.
+     &    (vbld(j).lt.2.0d0 .or. vbld(j).gt.5.3d0)) then
+          if (iprint.gt.0)
+     &    write (iout,*) "Bad CA-CA bond length",j," ",vbld(j),
+     &      " for conformation",ii,wliptran
+          if (iprint.gt.1) then
+            write (iout,*) "The Cartesian geometry is:"
+            write (iout,'(8f10.5)') ((c(l,k),l=1,3),k=1,nres)
+            write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct)
+            write (iout,*) "The internal geometry is:"
+            write (iout,'(8f10.4)') (vbld(k),k=nnt+1,nct)
+            write (iout,'(8f10.4)') (vbld(k),k=nres+nnt,nres+nct)
+            write (iout,'(8f10.4)') (rad2deg*theta(k),k=3,nres)
+            write (iout,'(8f10.4)') (rad2deg*phi(k),k=4,nres)
+            write (iout,'(8f10.4)') (rad2deg*alph(k),k=2,nres-1)
+            write (iout,'(8f10.4)') (rad2deg*omeg(k),k=2,nres-1)
+          endif
+          if (iprint.gt.0) write (iout,*)
+     &      "This conformation WILL NOT be added to the database."
+          conf_check=.false.
+          return
+        endif
+
+        else
         if (itype(j-1).ne.ntyp1 .and. itype(j).ne.ntyp1 .and. 
      &    (vbld(j).lt.2.0d0 .or. vbld(j).gt.5.0d0)) then
           if (iprint.gt.0) 
      &    write (iout,*) "Bad CA-CA bond length",j," ",vbld(j),
-     &      " for conformation",ii
+     &      " for conformation",ii,wliptran
           if (iprint.gt.1) then
             write (iout,*) "The Cartesian geometry is:"
             write (iout,'(8f10.5)') ((c(l,k),l=1,3),k=1,nres)
@@ -765,6 +793,7 @@ c------------------------------------------------------------------------------
           conf_check=.false.
           return
         endif
+        endif
       enddo
       do j=nnt,nct
         itj=itype(j)