&write (iout,'(a,i5,a)') "The following",nhpb-nss,
& " distance constraints have been imposed"
do i=nss+1,nhpb
- write (iout,'(3i6,f10.5)') i-nss,ihpb(i),jhpb(i),forcon(i)
+ write (iout,'(3i6,i2,3f10.5)') i-nss,ihpb(i),jhpb(i),
+ & ibecarb(i),dhpb(i),dhpb1(i),forcon(i)
enddo
#ifdef MPI
endif
call readi(controlcard,'MAXGEN',maxgen,10000)
call readi(controlcard,'MAXOVERLAP',maxoverlap,1000)
call readi(controlcard,"KDIAG",kdiag,0)
- call readi(controlcard,"RESCALE_MODE",rescale_mode,1)
+ call readi(controlcard,"RESCALE_MODE",rescale_mode,2)
if(me.eq.king .or. .not. out1file .and. fg_rank.eq.0)
& write (iout,*) "RESCALE_MODE",rescale_mode
split_ene=index(controlcard,'SPLIT_ENE').gt.0
call contact(.false.,ncont_ref,icont_ref,co)
if (sideadd) then
+C Following 2 lines for diagnostics; comment out if not needed
+ write (iout,*) "Before sideadd"
+ call intout
if(me.eq.king.or..not.out1file)
& write(iout,*)'Adding sidechains'
maxsi=1000
& i,' after ',nsi,' trials'
endif
enddo
+C 10/03/12 Adam: Recalculate coordinates with new side chain positions
+ call chainbuild
endif
+C Following 2 lines for diagnostics; comment out if not needed
+ write (iout,*) "After sideadd"
+ call intout
endif
if (indpdb.eq.0) then
C Read sequence if not taken from the pdb file.
enddo
call contact(.true.,ncont_ref,icont_ref,co)
endif
-c write (iout,*) "constr_dist",constr_dist,nstart_sup,nsup
- call flush(iout)
- if (constr_dist.gt.0) call read_dist_constr
-c write (iout,*) "After read_dist_constr nhpb",nhpb
- call hpb_partition
if(me.eq.king.or..not.out1file)
& write (iout,*) 'Contact order:',co
if (pdbref) then
enddo
endif
endif
+c write (iout,*) "constr_dist",constr_dist,nstart_sup,nsup
+ if (constr_dist.gt.0) then
+ call read_dist_constr
+ call hpb_partition
+ endif
+c write (iout,*) "After read_dist_constr nhpb",nhpb
+c call flush(iout)
if (indpdb.eq.0 .and. modecalc.ne.2 .and. modecalc.ne.4
& .and. modecalc.ne.8 .and. modecalc.ne.9 .and.
& modecalc.ne.10) then
call readi(minimcard,'MINFUN',minfun,maxmin)
call reada(minimcard,'TOLF',tolf,1.0D-2)
call reada(minimcard,'RTOLF',rtolf,1.0D-4)
+ print_min_stat=min0(index(minimcard,'PRINT_MIN_STAT'),1)
+ print_min_res=min0(index(minimcard,'PRINT_MIN_RES'),1)
+ print_min_ini=min0(index(minimcard,'PRINT_MIN_INI'),1)
write (iout,'(/80(1h*)/20x,a/80(1h*))')
& 'Options in energy minimization:'
write (iout,'(4(a,i5),a,1pe14.5,a,1pe14.5)')
#if defined(AIX) || defined(PGI)
if (me.eq.king .or. .not. out1file)
& open(iout,file=outname,status='unknown')
+c#define DEBUG
#ifdef DEBUG
if (fg_rank.gt.0) then
write (liczba,'(i3.3)') myrank/nfgtasks
& status='unknown')
endif
#endif
+c#undef DEBUG
if(me.eq.king) then
open(igeom,file=intname,status='unknown',position='append')
open(ipdb,file=pdbname,status='unknown')
#else
if (me.eq.king .or. .not.out1file)
& open(iout,file=outname,status='unknown')
+c#define DEBUG
#ifdef DEBUG
if (fg_rank.gt.0) then
+ print "Processor",fg_rank," opening output file"
write (liczba,'(i3.3)') myrank/nfgtasks
write (ll,'(bz,i3.3)') fg_rank
open(iout,file="debug"//liczba(:ilen(liczba))//"."//ll,
& status='unknown')
endif
#endif
+c#undef DEBUG
if(me.eq.king) then
open(igeom,file=intname,status='unknown',access='append')
open(ipdb,file=pdbname,status='unknown')
c do i=1,npair_
c write (iout,*) i,ipair_(1,i),ipair_(2,i),wpair_(i)
c enddo
+ if (.not.refstr .and. nfrag.gt.0) then
+ write (iout,*)
+ & "ERROR: no reference structure to compute distance restraints"
+ write (iout,*)
+ & "Restraints must be specified explicitly (NDIST=number)"
+ stop
+ endif
+ if (nfrag.lt.2 .and. npair.gt.0) then
+ write (iout,*) "ERROR: Less than 2 fragments specified",
+ & " but distance restraints between pairs requested"
+ stop
+ endif
call flush(iout)
do i=1,nfrag_
if (ifrag_(1,i).lt.nstart_sup) ifrag_(1,i)=nstart_sup
endif
enddo
do i=1,ndist_
- read (inp,*) ihpb(nhpb+1),jhpb(nhpb+1),forcon(nhpb+1)
+ read (inp,*) ihpb(nhpb+1),jhpb(nhpb+1),dhpb(i),dhpb1(i),
+ & ibecarb(i),forcon(nhpb+1)
if (forcon(nhpb+1).gt.0.0d0) then
nhpb=nhpb+1
- dhpb(nhpb)=dist(ihpb(nhpb),jhpb(nhpb))
+ if (ibecarb(i).gt.0) then
+ ihpb(i)=ihpb(i)+nres
+ jhpb(i)=jhpb(i)+nres
+ endif
+ if (dhpb(nhpb).eq.0.0d0)
+ & dhpb(nhpb)=dist(ihpb(nhpb),jhpb(nhpb))
+ endif
+ enddo
#ifdef MPI
- if (.not.out1file .or. me.eq.king)
- & write (iout,'(a,3i5,f8.2,f10.1)') "+dist.constr ",
- & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb)
-#else
- write (iout,'(a,3i5,f8.2,f10.1)') "+dist.constr ",
- & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb)
+ if (.not.out1file .or. me.eq.king) then
#endif
- endif
+ do i=1,nhpb
+ write (iout,'(a,3i5,2f8.2,i2,f10.1)') "+dist.constr ",
+ & i,ihpb(i),jhpb(i),dhpb(i),dhpb1(i),ibecarb(i),forcon(i)
enddo
call flush(iout)
+#ifdef MPI
+ endif
+#endif
return
end
c-------------------------------------------------------------------------------