call reada(weightcard,"V2SS",v2ss,7.61d0)
call reada(weightcard,"V3SS",v3ss,13.7d0)
call reada(weightcard,"EBR",ebr,-5.50D0)
+ dyn_ss=(index(weightcard,'DYN_SS').gt.0)
+ do i=1,maxres
+ dyn_ss_mask(i)=.false.
+ enddo
+ do i=1,maxres-1
+ do j=i+1,maxres
+ dyn_ssbond_ij(i,j)=1.0d300
+ enddo
+ enddo
+ call reada(weightcard,"HT",Ht,0.0D0)
+ if (dyn_ss) then
+ ss_depth=ebr/wsc-0.25*eps(1,1)
+ Ht=Ht/wsc-0.25*eps(1,1)
+ akcm=akcm*wstrain/wsc
+ akth=akth*wstrain/wsc
+ akct=akct*wstrain/wsc
+ v1ss=v1ss*wstrain/wsc
+ v2ss=v2ss*wstrain/wsc
+ v3ss=v3ss*wstrain/wsc
+ else
+ ss_depth=ebr/wstrain-0.25*eps(1,1)*wsc/wstrain
+ endif
+
if(me.eq.king.or..not.out1file) then
write (iout,*) "Parameters of the SS-bond potential:"
write (iout,*) "D0CM",d0cm," AKCM",akcm," AKTH",akth,
& " AKCT",akct
write (iout,*) "V1SS",v1ss," V2SS",v2ss," V3SS",v3ss
- write (iout,*) "EBR",ebr
+ write (iout,*) "EBR",ebr," SS_DEPTH",ss_depth
+ write (iout,*)" HT",Ht
print *,'indpdb=',indpdb,' pdbref=',pdbref
endif
if (indpdb.gt.0 .or. pdbref) then
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
+c write (iout,*) "After sideadd"
+c call intout
endif
if (indpdb.eq.0) then
C Read sequence if not taken from the pdb file.
do i=1,nres
itype(i)=rescode(i,sequence(i),iscode)
enddo
+ if (itype(2).eq.10.and.itype(1).eq.ntyp1) then
+ write (iout,*)
+ & "Glycine is the first full residue, initial dummy deleted"
+ do i=1,nres
+ itype(i)=itype(i+1)
+ enddo
+ nres=nres-1
+ endif
+ if (itype(nres-1).eq.10.and.itype(nres).eq.ntyp1) then
+ write (iout,*)
+ & "Glycine is the last full residue, terminal dummy deleted"
+ nres=nres-1
+ endif
+
C Assign initial virtual bond lengths
do i=2,nres
vbld(i)=vbl
c write (iout,*) "constr_dist",constr_dist,nstart_sup,nsup
if (constr_dist.gt.0) then
call read_dist_constr
- call hpb_partition
endif
+ if (nhpb.gt.0) call hpb_partition
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
write (iout,'(/a,i3,a)')
& 'The chain contains',ns,' disulfide-bridging cysteines.'
write (iout,'(20i4)') (iss(i),i=1,ns)
+ if (dyn_ss) then
+ write(iout,*)"Running with dynamic disulfide-bond formation"
+ else
write (iout,'(/a/)') 'Pre-formed links are:'
do i=1,nss
i1=ihpb(i)-nres
i2=jhpb(i)-nres
it1=itype(i1)
it2=itype(i2)
- if (me.eq.king.or..not.out1file)
- & write (iout,'(2a,i3,3a,i3,a,3f10.3)')
+ write (iout,'(2a,i3,3a,i3,a,3f10.3)')
& restyp(it1),'(',i1,') -- ',restyp(it2),'(',i2,')',dhpb(i),
& ebr,forcon(i)
enddo
write (iout,'(a)')
+ endif
+ endif
+ if (ns.gt.0.and.dyn_ss) then
+ do i=nss+1,nhpb
+ ihpb(i-nss)=ihpb(i)
+ jhpb(i-nss)=jhpb(i)
+ forcon(i-nss)=forcon(i)
+ dhpb(i-nss)=dhpb(i)
+ enddo
+ nhpb=nhpb-nss
+ nss=0
+ call hpb_partition
+ do i=1,ns
+ dyn_ss_mask(iss(i))=.true.
+ enddo
endif
if (i2ndstr.gt.0) call secstrp2dihc
c call geom_to_var(nvar,x)
do i=1,ns
if (itype(iss(i)).ne.1) then
if (me.eq.king.or..not.out1file) write (iout,'(2a,i3,a)')
- & 'Do you REALLY think that the residue ',restyp(iss(i)),i,
+ & 'Do you REALLY think that the residue ',
+ & restyp(itype(iss(i))),i,
& ' can form a disulfide bridge?!!!'
write (*,'(2a,i3,a)')
- & 'Do you REALLY think that the residue ',restyp(iss(i)),i,
+ & 'Do you REALLY think that the residue ',
+ & restyp(itype(iss(i))),i,
& ' can form a disulfide bridge?!!!'
#ifdef MPI
call MPI_Finalize(MPI_COMM_WORLD,ierror)
C Read preformed bridges.
if (ns.gt.0) then
read (inp,*) nss,(ihpb(i),jhpb(i),i=1,nss)
- write (iout,*) 'nss=',nss,' ihpb,jhpb: ',(ihpb(i),jhpb(i),i=1,nss)
+ if(fg_rank.eq.0)
+ & write(iout,*)'nss=',nss,' ihpb,jhpb: ',(ihpb(i),jhpb(i),i=1,nss)
if (nss.gt.0) then
nhpb=nss
C Check if the residues involved in bridges are in the specified list of
open (isidep,file=sidename,status='old')
#else
open(1,file=pref_orig(:ilen(pref_orig))//'.inp',status='old',
- & readonly)
+ &action='read')
open (9,file=prefix(:ilen(prefix))//'.intin',status='unknown')
C open (18,file=prefix(:ilen(prefix))//'.entin',status='unknown')
C Get parameter filenames and open the parameter files.
call getenv_loc('BONDPAR',bondname)
- open (ibond,file=bondname,status='old',readonly)
+ open (ibond,file=bondname,status='old',action='read')
call getenv_loc('THETPAR',thetname)
- open (ithep,file=thetname,status='old',readonly)
+ open (ithep,file=thetname,status='old',action='read')
#ifndef CRYST_THETA
call getenv_loc('THETPARPDB',thetname_pdb)
print *,"thetname_pdb ",thetname_pdb
- open (ithep_pdb,file=thetname_pdb,status='old',readonly)
+ open (ithep_pdb,file=thetname_pdb,status='old',action='read')
print *,ithep_pdb," opened"
#endif
call getenv_loc('ROTPAR',rotname)
- open (irotam,file=rotname,status='old',readonly)
+ open (irotam,file=rotname,status='old',action='read')
#ifndef CRYST_SC
call getenv_loc('ROTPARPDB',rotname_pdb)
- open (irotam_pdb,file=rotname_pdb,status='old',readonly)
+ open (irotam_pdb,file=rotname_pdb,status='old',action='read')
#endif
call getenv_loc('TORPAR',torname)
- open (itorp,file=torname,status='old',readonly)
+ open (itorp,file=torname,status='old',action='read')
call getenv_loc('TORDPAR',tordname)
- open (itordp,file=tordname,status='old',readonly)
+ open (itordp,file=tordname,status='old',action='read')
call getenv_loc('SCCORPAR',sccorname)
- open (isccor,file=sccorname,status='old',readonly)
+ open (isccor,file=sccorname,status='old',action='read')
call getenv_loc('FOURIER',fouriername)
- open (ifourier,file=fouriername,status='old',readonly)
+ open (ifourier,file=fouriername,status='old',action='read')
call getenv_loc('ELEPAR',elename)
- open (ielep,file=elename,status='old',readonly)
+ open (ielep,file=elename,status='old',action='read')
call getenv_loc('SIDEPAR',sidename)
- open (isidep,file=sidename,status='old',readonly)
+ open (isidep,file=sidename,status='old',action='read')
#endif
#ifndef OLDSCP
C
#elif (defined G77)
open (iscpp,file=scpname,status='old')
#else
- open (iscpp,file=scpname,status='old',readonly)
+ open (iscpp,file=scpname,status='old',action='read')
#endif
#endif
call getenv_loc('PATTERN',patname)
#elif (defined G77)
open (icbase,file=patname,status='old')
#else
- open (icbase,file=patname,status='old',readonly)
+ open (icbase,file=patname,status='old',action='read')
#endif
#ifdef MPI
C Open output file only for CG processes
#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')
if (wfrag_(i).gt.0.0d0) then
do j=ifrag_(1,i),ifrag_(2,i)-1
do k=j+1,ifrag_(2,i)
- write (iout,*) "j",j," k",k
+c write (iout,*) "j",j," k",k
ddjk=dist(j,k)
if (constr_dist.eq.1) then
nhpb=nhpb+1