1 subroutine read_dist_constr
2 implicit real*8 (a-h,o-z)
4 include 'DIMENSIONS.FREE'
8 include 'COMMON.CONTROL'
10 include 'COMMON.IOUNITS'
11 include 'COMMON.SBRIDGE'
12 integer ifrag_(2,100),ipair_(2,100)
13 double precision wfrag_(100),wpair_(100)
14 character*500 controlcard
16 write (iout,*) "Calling read_dist_constr"
17 C write (iout,*) "nres",nres," nstart_sup",nstart_sup," nsup",nsup
19 write(iout,*) "TU sie wywalam?"
20 call card_concat(controlcard,.false.)
21 write (iout,*) controlcard
23 call readi(controlcard,"NFRAG",nfrag_,0)
24 call readi(controlcard,"NPAIR",npair_,0)
25 call readi(controlcard,"NDIST",ndist_,0)
26 call reada(controlcard,'DIST_CUT',dist_cut,5.0d0)
27 call multreadi(controlcard,"IFRAG",ifrag_(1,1),2*nfrag_,0)
28 call multreadi(controlcard,"IPAIR",ipair_(1,1),2*npair_,0)
29 call multreada(controlcard,"WFRAG",wfrag_(1),nfrag_,0.0d0)
30 call multreada(controlcard,"WPAIR",wpair_(1),npair_,0.0d0)
31 write (iout,*) "NFRAG",nfrag_," NPAIR",npair_," NDIST",ndist_
32 write (iout,*) "IFRAG"
34 write (iout,*) i,ifrag_(1,i),ifrag_(2,i),wfrag_(i)
36 write (iout,*) "IPAIR"
38 write (iout,*) i,ipair_(1,i),ipair_(2,i),wpair_(i)
42 if (ifrag_(1,i).lt.nstart_sup) ifrag_(1,i)=nstart_sup
43 if (ifrag_(2,i).gt.nstart_sup+nsup-1)
44 & ifrag_(2,i)=nstart_sup+nsup-1
45 c write (iout,*) i,ifrag_(1,i),ifrag_(2,i),wfrag_(i)
47 if (wfrag_(i).gt.0.0d0) then
48 do j=ifrag_(1,i),ifrag_(2,i)-1
50 write (iout,*) "j",j," k",k
52 if (constr_dist.eq.1) then
57 forcon(nhpb)=wfrag_(i)
58 else if (constr_dist.eq.2) then
59 if (ddjk.le.dist_cut) then
64 forcon(nhpb)=wfrag_(i)
71 forcon(nhpb)=wfrag_(i)*dexp(-0.5d0*(ddjk/dist_cut)**2)
74 & write (iout,'(a,3i5,f8.2,1pe12.2)') "+dist.constr ",
75 & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb)
81 if (wpair_(i).gt.0.0d0) then
89 do j=ifrag_(1,ii),ifrag_(2,ii)
90 do k=ifrag_(1,jj),ifrag_(2,jj)
94 forcon(nhpb)=wpair_(i)
96 write (iout,'(a,3i5,f8.2,f10.1)') "+dist.constr ",
97 & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb)
103 if (constr_dist.eq.11) then
104 read (inp,*) ihpb(nhpb+1),jhpb(nhpb+1),dhpb(i),dhpb1(i),
105 & ibecarb(i),forcon(nhpb+1),fordepth(nhpb+1)
106 fordepth(nhpb+1)=fordepth(nhpb+1)/forcon(nhpb+1)
107 C write (iout,'(a,3i5,f8.2,f10.1)') "+dist.constr ",
108 C & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb)
110 read (inp,*) ihpb(nhpb+1),jhpb(nhpb+1),forcon(nhpb+1)
112 if (forcon(nhpb+1).gt.0.0d0) then
114 if (ibecarb(i).gt.0) then
118 if (dhpb(nhpb).eq.0.0d0)
119 & dhpb(nhpb)=dist(ihpb(nhpb),jhpb(nhpb))
120 C dhpb(nhpb)=dist(ihpb(nhpb),jhpb(nhpb))
121 write (iout,'(a,3i5,f8.2,f10.1)') "+dist.constr ",
122 & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb)