1 subroutine read_dist_constr
2 implicit real*8 (a-h,o-z)
7 include 'COMMON.CONTROL'
9 include 'COMMON.IOUNITS'
10 include 'COMMON.SBRIDGE'
11 integer ifrag_(2,100),ipair_(2,100)
12 double precision wfrag_(100),wpair_(100)
13 character*500 controlcard
15 write (iout,*) "Calling read_dist_constr"
16 C write (iout,*) "nres",nres," nstart_sup",nstart_sup," nsup",nsup
18 write(iout,*) "TU sie wywalam?"
19 call card_concat(controlcard,.false.)
20 write (iout,*) controlcard
22 call readi(controlcard,"NFRAG",nfrag_,0)
23 call readi(controlcard,"NPAIR",npair_,0)
24 call readi(controlcard,"NDIST",ndist_,0)
25 call reada(controlcard,'DIST_CUT',dist_cut,5.0d0)
26 call multreadi(controlcard,"IFRAG",ifrag_(1,1),2*nfrag_,0)
27 call multreadi(controlcard,"IPAIR",ipair_(1,1),2*npair_,0)
28 call multreada(controlcard,"WFRAG",wfrag_(1),nfrag_,0.0d0)
29 call multreada(controlcard,"WPAIR",wpair_(1),npair_,0.0d0)
30 write (iout,*) "NFRAG",nfrag_," NPAIR",npair_," NDIST",ndist_
31 write (iout,*) "IFRAG"
33 write (iout,*) i,ifrag_(1,i),ifrag_(2,i),wfrag_(i)
35 write (iout,*) "IPAIR"
37 write (iout,*) i,ipair_(1,i),ipair_(2,i),wpair_(i)
41 if (ifrag_(1,i).lt.nstart_sup) ifrag_(1,i)=nstart_sup
42 if (ifrag_(2,i).gt.nstart_sup+nsup-1)
43 & ifrag_(2,i)=nstart_sup+nsup-1
44 c write (iout,*) i,ifrag_(1,i),ifrag_(2,i),wfrag_(i)
46 if (wfrag_(i).gt.0.0d0) then
47 do j=ifrag_(1,i),ifrag_(2,i)-1
49 write (iout,*) "j",j," k",k
51 if (constr_dist.eq.1) then
56 forcon(nhpb)=wfrag_(i)
57 else if (constr_dist.eq.2) then
58 if (ddjk.le.dist_cut) then
63 forcon(nhpb)=wfrag_(i)
70 forcon(nhpb)=wfrag_(i)*dexp(-0.5d0*(ddjk/dist_cut)**2)
73 & write (iout,'(a,3i5,f8.2,1pe12.2)') "+dist.constr ",
74 & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb)
80 if (wpair_(i).gt.0.0d0) then
88 do j=ifrag_(1,ii),ifrag_(2,ii)
89 do k=ifrag_(1,jj),ifrag_(2,jj)
93 forcon(nhpb)=wpair_(i)
95 write (iout,'(a,3i5,f8.2,f10.1)') "+dist.constr ",
96 & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb)
102 if (constr_dist.eq.11) then
103 read (inp,*) ihpb(nhpb+1),jhpb(nhpb+1),dhpb(i),dhpb1(i),
104 & ibecarb(i),forcon(nhpb+1),fordepth(nhpb+1)
105 fordepth(nhpb+1)=fordepth(nhpb+1)/forcon(nhpb+1)
106 C write (iout,'(a,3i5,f8.2,f10.1)') "+dist.constr ",
107 C & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb)
109 read (inp,*) ihpb(nhpb+1),jhpb(nhpb+1),forcon(nhpb+1)
111 if (forcon(nhpb+1).gt.0.0d0) then
113 if (ibecarb(i).gt.0) then
117 if (dhpb(nhpb).eq.0.0d0)
118 & dhpb(nhpb)=dist(ihpb(nhpb),jhpb(nhpb))
119 C dhpb(nhpb)=dist(ihpb(nhpb),jhpb(nhpb))
120 write (iout,'(a,3i5,f8.2,f10.1)') "+dist.constr ",
121 & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb)