From e82267f59083eb992e3eaf3fba248e90d21d8643 Mon Sep 17 00:00:00 2001 From: Adam Sieradzan Date: Thu, 1 Jun 2017 17:08:29 +0200 Subject: [PATCH] introduction of genconstr to wham --- source/wham/src-M/readrtns.F | 84 +++++++++++++++++++++++++++++++++++++ source/wham/src-M/wham_multparm.F | 4 +- 2 files changed, 87 insertions(+), 1 deletion(-) diff --git a/source/wham/src-M/readrtns.F b/source/wham/src-M/readrtns.F index ff5b18e..6c69644 100644 --- a/source/wham/src-M/readrtns.F +++ b/source/wham/src-M/readrtns.F @@ -847,3 +847,87 @@ c------------------------------------------------------------------------------- iroof = ii return end +C-------------------------------------------------------------------------- + subroutine gen_dist_constr +C Generate CA distance constraints. + implicit real*8 (a-h,o-z) + include "DIMENSIONS" + include "DIMENSIONS.ZSCOPT" + include "DIMENSIONS.FREE" + include "COMMON.TORSION" + include "COMMON.INTERACT" + include "COMMON.IOUNITS" + include "COMMON.TIME1" + include "COMMON.PROT" + include "COMMON.PROTFILES" + include "COMMON.CHAIN" + include "COMMON.NAMES" + include "COMMON.FFIELD" + include "COMMON.ENEPS" + include "COMMON.WEIGHTS" + include "COMMON.FREE" + include "COMMON.CONTROL" + include "COMMON.ENERGIES" + include "COMMON.SPLITELE" + include "COMMON.SBRIDGE" + include "COMMON.SHIELD" + dimension itype_pdb(maxres) + common /pizda/ itype_pdb + character*2 iden +cd print *,'gen_dist_constr: nnt=',nnt,' nct=',nct +cd write (2,*) 'gen_dist_constr: nnt=',nnt,' nct=',nct, +cd & ' nstart_sup',nstart_sup,' nstart_seq',nstart_seq, +cd & ' nsup',nsup + if (constr_dist.eq.11) then + do i=nstart_sup,nstart_sup+nsup-1 + do j=i+2,nstart_sup+nsup-1 + distance=dist(i,j) + if (distance.le.15.0) then + nhpb=nhpb+1 + ihpb(nhpb)=i+nstart_seq-nstart_sup + jhpb(nhpb)=j+nstart_seq-nstart_sup + forcon(nhpb)=sqrt(0.04*distance) + fordepth(nhpb)=sqrt(40.0/distance) + dhpb(nhpb)=distance-0.1d0 + dhpb1(nhpb)=distance+0.1d0 + +C#ifdef MPI +C if (.not.out1file .or. me.eq.king) +C & write (iout,'(a,3i5,f8.2,f10.2)') "+dist.constr ", +C & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb) +C#else + write (iout,'(a,3i5,f8.2,f10.2)') "+dist.constr ", + & nhpb,ihpb(nhpb),jhpb(nhpb),dhpb(nhpb),forcon(nhpb) +C#endif + endif + enddo + enddo + else + do i=nstart_sup,nstart_sup+nsup-1 +cd write (2,*) 'i',i,' seq ',restyp(itype(i+nstart_seq-nstart_sup)), +cd & ' seq_pdb', restyp(itype_pdb(i)) + do j=i+2,nstart_sup+nsup-1 + nhpb=nhpb+1 + ihpb(nhpb)=i+nstart_seq-nstart_sup + jhpb(nhpb)=j+nstart_seq-nstart_sup + forcon(nhpb)=weidis + dhpb(nhpb)=dist(i,j) + enddo + enddo + endif +cd write (iout,'(a)') 'Distance constraints:' +cd do i=nss+1,nhpb +cd ii=ihpb(i) +cd jj=jhpb(i) +cd iden='CA' +cd if (ii.gt.nres) then +cd iden='SC' +cd ii=ii-nres +cd jj=jj-nres +cd endif +cd write (iout,'(a,1x,a,i4,3x,a,1x,a,i4,2f10.3)') +cd & restyp(itype(ii)),iden,ii,restyp(itype(jj)),iden,jj, +cd & dhpb(i),forcon(i) +cd enddo + return + end diff --git a/source/wham/src-M/wham_multparm.F b/source/wham/src-M/wham_multparm.F index de73250..7cade99 100644 --- a/source/wham/src-M/wham_multparm.F +++ b/source/wham/src-M/wham_multparm.F @@ -58,7 +58,7 @@ c NaNQ initialization call flush(iout) call molread(*10) call flush(iout) - if (constr_dist.gt.0) call read_dist_constr + if ((constr_dist.gt.0).and.(genconstr.eq.0)) call read_dist_constr #ifdef MPI write (iout,*) "Calling proc_groups" call proc_groups @@ -87,9 +87,11 @@ c NaNQ initialization call promienie call read_compar call read_ref_structure(*10) + if ((constr_dist.gt.0).and.(genconstr.gt.0)) call gen_dist_constr call proc_cont call fragment_list endif + C if (constr_dist.gt.0) call read_dist_constr write (iout,*) "Begin read_database" call flush(iout) -- 1.7.9.5