Merge branch 'devel' into AFM
[unres.git] / source / unres / src_MD-M-newcorr / check_sc_map.f
diff --git a/source/unres/src_MD-M-newcorr/check_sc_map.f b/source/unres/src_MD-M-newcorr/check_sc_map.f
new file mode 100644 (file)
index 0000000..4314e16
--- /dev/null
@@ -0,0 +1,49 @@
+       subroutine check_sc_map
+C Subroutine is checking if the fitted function which describs sc_rot_pot
+C is correct, printing, alpha,beta, energy, data - for some known theta. 
+C theta angle is read from the input file. Sc_rot_pot are printed 
+C for the second  residue in sequance.
+       include 'DIMENSIONS'
+       include 'COMMON.VAR'
+       include 'COMMON.GEO'
+       include 'COMMON.INTERACT'
+       real*8 xx,yy,zz,al,om
+       real*8 escloc, escloc_ene(50000), escloc_min, alph_plot(50000), 
+     & beta_plot(50000)
+       integer al_plot(5000),be_plot(5000)
+       integer iialph, iibet,it
+       write (2,*) "Side-chain-rotamer potential energy map!!!!" 
+       escloc_min = 1000000.00
+C       it=itype(2)
+       i = 0 
+       do iialph=0,18
+         do iibet=-18,18
+           i = i + 1
+           al = iialph*10.0d0*deg2rad
+           om = iibet*10.0d0*deg2rad
+           zz = dcos(al)
+           xx = -dsin(al)*dcos(om)
+           yy = -dsin(al)*dsin(om)
+           alph(2)=dacos(xx)
+           omeg(2)=-datan2(zz,yy)
+           al_plot(i)=alph(2)*rad2deg
+           be_plot(i)=omeg(2)*rad2deg
+C         write(2,*) alph(2)*rad2deg, omeg(2)*rad2deg
+           alph_plot(i) = al*rad2deg
+           beta_plot(i) = om*rad2deg
+           call chainbuild
+           call vec_and_deriv
+           call esc(escloc)
+           escloc_ene(i) = escloc
+           if (escloc_min.gt.escloc_ene(i)) escloc_min=escloc_ene(i)
+         enddo
+       enddo
+C       write (2,*) "escloc_min = ", escloc_min
+       print *,"i",i
+       do j = 1,i
+          write (2,'(3f10.3,2i9,f12.5)') alph_plot(j), 
+     &         beta_plot(j),theta(3)*rad2deg, al_plot(j),be_plot(j),
+     &         escloc_ene(j) !- escloc_min
+       enddo
+       return
+       end