source: regul.f@ e40e335

Last change on this file since e40e335 was e40e335, checked in by baerbaer <baerbaer@…>, 16 years ago

Initial import to BerliOS corresponding to 3.0.4

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/smmp/trunk@1 26dc1dd8-5c4e-0410-9ffe-d298b4865968

  • Property mode set to 100644
File size: 3.2 KB
Line 
1c**************************************************************
2c
3c This file contains the subroutines: regul
4c
5c Copyright 2003-2005 Frank Eisenmenger, U.H.E. Hansmann,
6c Shura Hayryan, Chin-Ku
7c Copyright 2007 Frank Eisenmenger, U.H.E. Hansmann,
8c Jan H. Meinke, Sandipan Mohanty
9c
10c **************************************************************
11
12
13 subroutine regul(nml, iter, nsteps, acc)
14
15c ----------------------------------------------------------
16c PURPOSE: regularization of PDB-structure into SMMP geometry
17c
18c @param nml molecule to be regularized
19c @param iter number of iterations during regularization
20c @param nsteps maximum number of steps in minimization
21c @param acc acceptance criterium for minimization
22c
23c CALLS: minim, cnteny, outvar,rmsdopt
24c ----------------------------------------------------------
25
26 include 'INCL.H'
27 include 'INCP.H'
28
29cf2py intent(in) nml
30cf2py intent(in) iter
31cf2py intent(in) nsteps
32cf2py intent(in) acc
33
34 dimension rm(3,3),av1(3),av2(3)
35 logical ishy(mxvr),fxvro(mxvr)
36
37
38
39 wtrg = 1.d0
40 wtey = 0.d0
41
42 write(*,'(/,a,2(a,f4.2),/)')
43 # ' ====================== Regularization only',
44 # ' Wt(energy) = ',wtey,' Wt(regul.) = ',wtrg
45
46 call minim(1, nsteps, acc)
47
48 write(*,*) ' '
49 write(*,*) ' ---------- contacts after 1st regularization'
50 write(*,*) ' '
51 call cnteny(nml)
52 write(*,*) ' '
53
54 nrs = irsml2(nml)-irsml1(nml)+1
55 call rmsdopt(nml,1,nrs,ixatp,xatp,yatp,zatp,0,rm,av1,av2,rmsd)
56
57 write(*,*) ' RMSD = ',rmsd
58
59c --------------------------------------- fix vars. defined in PDB
60
61
62 do i = ivrml1(nml),nvrml(nml)
63 fxvro(i) = fxvr(i) ! save
64 if (isrfvr(i)) fxvr(i) = .true. ! fix vars. defined in ref.str.
65 enddo ! vars.
66 ireg = 0
67
68 write(*,'(/,a,2(a,f4.2),/)')
69 # ' ====================== Internal Energy for Hydrogens only',
70 # ' Wt(energy) = ',wtey,' Wt(regul.) = ',wtrg
71
72 call minim(1, nsteps, acc)
73
74 write(*,*) ' '
75 write(*,*) ' ---------- contacs after Emin. for hydrogens'
76 write(*,*) ' '
77 call cnteny(nml)
78
79 do i = ivrml1(nml),nvrml(nml)
80 fxvr(i) = fxvro(i) ! restore
81 enddo ! vars.
82 ireg = 1
83
84
85 wtrg = 1.d0
86 wtey = 0.d0
87
88 n=iter
89 dn=1.d0/dble(n)
90
91 do it = 1,n
92
93 wtrg = 1.d0 - dn*dble(it)
94 wtey = 1.d0 - wtrg
95
96 write(*,'(/,a,i2,2(a,e11.3),/)')
97 # ' ================ Minimization #',it,
98 # ' Wt(energy) = ',wtey,' Wt(regul.) = ',wtrg
99
100 call minim(1, nsteps, acc)
101
102 nrs = irsml2(nml)-irsml1(nml)+1
103 call rmsdopt(nml,1,nrs,ixatp,xatp,yatp,zatp,0,rm,av1,av2,rmsd)
104
105 write(*,*) ' '
106 write(*,*) ' RMSD = ',rmsd
107
108 enddo
109
110 write(*,*) ' '
111 write(*,*) ' ---------- contacts after full regularization'
112 write(*,*) ' '
113 call cnteny(nml)
114
115c call outpdb(nml,12)
116
117c Output of dihedral angles of the regularized structure
118 write(*,*) 'Dihedral angles of the regularized structure;'
119 call outvar(nml, 'regd.var')
120
121 ireg = 0
122
123 return
124 end
125
Note: See TracBrowser for help on using the repository browser.