critical bugfix NARES_UNRES interface
authorAdam Sieradzan <adasko@piasek4.chem.univ.gda.pl>
Fri, 7 Jun 2019 10:47:04 +0000 (12:47 +0200)
committerAdam Sieradzan <adasko@piasek4.chem.univ.gda.pl>
Fri, 7 Jun 2019 10:47:04 +0000 (12:47 +0200)
source/unres/data/names.F90
source/unres/energy.F90
source/unres/io.F90
source/wham/enecalc.F90
source/wham/io_wham.F90

index f901fc1..763bf8f 100644 (file)
         "WHPB      ","WVDWPP    ","WSCP14    ","WBOND     ","WSCCOR    ","WDIHC     ","WSC       ",&
         "WLT       ","          ","          ","WTUBE     " ,&
         "WVDWPP    ","WELPP     ","WVDWPSB   ","WELPSB    ","WVDWSB    ",&
-        "WELSB     ","WBOND     ","WANG      ","WSBLOC    ","WTOR      ",&
-        "WTORD     ","WCORR     ","WCORR3    ","WNULL     ","WNULL     ",&
+        "WELSB     ","WBOND_NUCL","WANG_NUCL ","WSBLOC    ","WTOR_NUCL ",&
+        "WTORD_NUCL","WCORR_NUCL","WCORR3_NUC","WNULL     ","WNULL     ",&
         "WCATPROT  ","WCATCAT   ","WNULL     ","WNULL     ","WNULL     ",&
         "WSCBASE   ","WPEPBASE  ","WSCPHO    ","WPEPPHO   "/)
 
index 45dd795..6c60e98 100644 (file)
           wscbase=weights(46)
           wscpho=weights(47)
           wpeppho=weights(48)
+!      welpsb=weights(28)*fact(1)
+!
+!      wcorr_nucl= weights(37)*fact(1)
+!     wcorr3_nucl=weights(38)*fact(2)
+!     wtor_nucl=  weights(35)*fact(1)
+!     wtor_d_nucl=weights(36)*fact(2)
+
         endif
         time_Bcast=time_Bcast+MPI_Wtime()-time00
         time_Bcastw=time_Bcastw+MPI_Wtime()-time00
       epeppho=0.0
       endif
 !      call ecatcat(ecationcation)
-      print *,"after ebend", ebe_nucl
+!      print *,"after ebend", wtor_nucl 
 #ifdef TIMING
       time_enecalc=time_enecalc+MPI_Wtime()-time00
 #endif
       wtor=weights(13)*fact(1)
       wtor_d=weights(14)*fact(2)
       wsccor=weights(21)*fact(1)
+      welpsb=weights(28)*fact(1)
+      wcorr_nucl= weights(37)*fact(1)
+      wcorr3_nucl=weights(38)*fact(2)
+      wtor_nucl=  weights(35)*fact(1)
+      wtor_d_nucl=weights(36)*fact(2)
 
       return
       end subroutine rescale_weights
       integer :: i,iti1,iti,k,l
       real(kind=8) :: sin1,cos1,sin2,cos2,dwacos2,dwasin2,cost1,sint1,&
        sint1sq,sint1cub,sint1cost1,b1k,b2k,aux
-       print *,"in set matrices"
+!       print *,"in set matrices"
 !
 ! Compute the virtual-bond-torsional-angle dependent quantities needed
 ! to calculate the el-loc multibody terms of various order.
 #endif
 #else
         if (i.gt. nnt+2 .and. i.lt.nct+2) then
-         write(iout,*) "i,",molnum(i)
-         print *, "i,",molnum(i),i,itype(i-2,1)
+!         write(iout,*) "i,",molnum(i)
+!         print *, "i,",molnum(i),i,itype(i-2,1)
         if (molnum(i).eq.1) then
           iti = itype2loc(itype(i-2,1))
         else
         else
           iti1=nloctyp
         endif
-        print *,i,iti
+!        print *,i,iti
         b1(1,i-2)=b(3,iti)
         b1(2,i-2)=b(5,iti)
         b2(1,i-2)=b(2,iti)
 #endif
 !        print *, "before set matrices"
         call set_matrices
-        print *,"after set martices"
+!        print *,"after set martices"
 #ifdef TIMING
         time_mat=time_mat+MPI_Wtime()-time01
 #endif
index 4f526c4..1a85795 100644 (file)
       call reada(weightcard,'WANG_NUCL',wang_nucl,0.0D0)
       call reada(weightcard,'WSBLOC',wsbloc,0.0D0)
       call reada(weightcard,'WTOR_NUCL',wtor_nucl,0.0D0)
+!      print *,"KUR..",wtor_nucl
       call reada(weightcard,'WTORD_NUCL',wtor_d_nucl,0.0D0)
       call reada(weightcard,'WCORR_NUCL',wcorr_nucl,0.0D0)
-      call reada(weightcard,'WCORR3_NUCL',wcorr3_nucl,0.0D0)
+      call reada(weightcard,'WCORR3_NUC',wcorr3_nucl,0.0D0)
       call reada(weightcard,'WBOND',wbond,1.0D0)
       call reada(weightcard,'WTOR',wtor,1.0D0)
       call reada(weightcard,'WTORD',wtor_d,1.0D0)
       weights(17)=wbond
       weights(18)=scal14
       weights(21)=wsccor
+          weights(26)=wvdwpp_nucl
+          weights(27)=welpp
+          weights(28)=wvdwpsb
+          weights(29)=welpsb
+          weights(30)=wvdwsb
+          weights(31)=welsb
+          weights(32)=wbond_nucl
+          weights(33)=wang_nucl
+          weights(34)=wsbloc
+          weights(35)=wtor_nucl
+          weights(36)=wtor_d_nucl
+          weights(37)=wcorr_nucl
+          weights(38)=wcorr3_nucl
+          weights(41)=wcatcat
+          weights(42)=wcatprot
+          weights(46)=wscbase
+          weights(47)=wscpho
+          weights(48)=wpeppho
+
       if(me.eq.king.or..not.out1file) &
        write (iout,10) wsc,wscp,welec,wvdwpp,wbond,wang,wscloc,wtor,&
         wtor_d,wstrain,wel_loc,wcorr,wcorr5,wcorr6,wsccor,wturn3,&
index e72bbc9..1568a9a 100644 (file)
@@ -1229,7 +1229,10 @@ write(iout,*)"end of store_parm"
       real(kind=8) :: etot,evdw,evdw_t,evdw2,ees,evdw1,ebe,etors,&
             escloc,ehpb,ecorr,ecorr5,ecorr6,eello_turn4,eello_turn3,&
             eello_turn6,eel_loc,edihcnstr,etors_d,estr,evdw2_14,esccor,tt, &
-            ecation_prot, ecationcation
+            ecation_prot, ecationcation,evdwpp,eespp,evdwpsb,eelpsb,evdwsb, &
+            eelsb,estr_nucl,ebe_nucl,esbloc,etors_nucl,etors_d_nucl,&
+            ecorr_nucl,ecorr3_nucl,escbase, epepbase,escpho, epeppho
+
       integer :: i,ii,ik,iproc,iscor,j,k,l,ib,iparm,iprot,nlist
       real(kind=8) :: qfree,sumprob,eini,efree,rmsdev
       character(len=80) :: bxname
@@ -1380,6 +1383,19 @@ write(iout,*)"end of store_parm"
             edihcnstr=enetb(19,i,iparm)
             ecationcation=enetb(42,i,iparm)
             ecation_prot=enetb(41,i,iparm)
+            evdwpp =      enetb(26,i,iparm)
+            eespp =      enetb(27,i,iparm)
+            evdwpsb =      enetb(28,i,iparm)
+            eelpsb =      enetb(29,i,iparm)
+            evdwsb =      enetb(30,i,iparm)
+            eelsb =      enetb(31,i,iparm)
+            estr_nucl =      enetb(32,i,iparm)
+            ebe_nucl =      enetb(33,i,iparm)
+            esbloc =      enetb(34,i,iparm)
+            etors_nucl =      enetb(35,i,iparm)
+            etors_d_nucl =      enetb(36,i,iparm)
+            ecorr_nucl =      enetb(37,i,iparm)
+            ecorr3_nucl =      enetb(38,i,iparm)
 
 !#ifdef SPLITELE
 !            etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2+ft(1)*welec*ees &
@@ -1412,7 +1428,14 @@ write(iout,*)"end of store_parm"
             +wturn3*eello_turn3 &
             +wturn6*eello_turn6+wel_loc*eel_loc &
             +edihcnstr+wtor_d*etors_d+wsccor*esccor &
-            +wbond*estr+wcatprot*ecation_prot+wcatcat*ecationcation
+            +wbond*estr+wcatprot*ecation_prot+wcatcat*ecationcation&
+            +wbond_nucl*estr_nucl+wang_nucl*ebe_nucl&
+            +wvdwpp_nucl*evdwpp+welpp*eespp+wvdwpsb*evdwpsb+welpsb*eelpsb&
+            +wvdwsb*evdwsb+welsb*eelsb+wsbloc*esbloc+wtor_nucl*etors_nucl&
+            +wtor_d_nucl*etors_d_nucl+wcorr_nucl*ecorr_nucl+wcorr3_nucl*ecorr3_nucl&
+            +wscbase*escbase&
+            +wpepbase*epepbase+wscpho*escpho+wpeppho*epeppho
+
 #else
             etot=wsc*evdw+wscp*evdw2 &
             +welec*(ees+evdw1) &
@@ -1422,7 +1445,14 @@ write(iout,*)"end of store_parm"
             +wturn3*eello_turn3 &
             +wturn6*eello_turn6+wel_loc*eel_loc+edihcnstr &
             +wtor_d*etors_d+wsccor*esccor &
-            +wbond*estr+wcatprot*ecation_prot+wcatcat*ecationcation
+            +wbond*estr+wcatprot*ecation_prot+wcatcat*ecationcation&
+            +wbond_nucl*estr_nucl+wang_nucl*ebe_nucl&
+            +wvdwpp_nucl*evdwpp+welpp*eespp+wvdwpsb*evdwpsb+welpsb*eelpsb&
+            +wvdwsb*evdwsb+welsb*eelsb+wsbloc*esbloc+wtor_nucl*etors_nucl&
+            +wtor_d_nucl*etors_d_nucl+wcorr_nucl*ecorr_nucl+wcorr3_nucl*ecorr3_nucl&
+            +wscbase*escbase&
+            +wpepbase*epepbase+wscpho*escpho+wpeppho*epeppho
+
 #endif
 
 #ifdef MPI
index 10364a4..2e12a82 100644 (file)
@@ -466,6 +466,33 @@ allocate(ww(max_eneW))
       wsccor=ww(19)
       wcatcat=ww(42)
       wcatprot=ww(41)
+      wcorr3_nucl=ww(38)
+      wcorr_nucl=ww(37)
+      wtor_d_nucl=ww(36)
+      wtor_nucl=ww(35)
+      wsbloc=ww(34)
+      wang_nucl=ww(33)
+      wbond_nucl=ww(32)
+      welsb=ww(31)
+      wvdwsb=ww(30)
+      welpsb=ww(29)
+      wvdwpsb=ww(28)
+      welpp=ww(27)
+      wvdwpp=ww(26)
+      wscbase=ww(46)
+      wpepbase=ww(47)
+      wscpho=ww(48)
+      wpeppho=ww(49)
+!      print *,"KURWA",ww(48)
+!        "WSCBASE   ","WPEPBASE  ","WSCPHO    ","WPEPPHO   "
+!        "WVDWPP    ","WELPP     ","WVDWPSB   ","WELPSB    ","WVDWSB    ",&
+!        "WELSB     ","WBOND     ","WANG      ","WSBLOC    ","WTOR      ",&
+!        "WTORD     ","WCORR     ","WCORR3    ","WNULL     ","WNULL     ",&
+!        "WCATPROT  ","WCATCAT  
+!       +wbond_nucl*estr_nucl+wang_nucl*ebe_nucl&
+!       +wvdwpp_nucl*evdwpp+welpp*eespp+wvdwpsb*evdwpsb+welpsb*eelpsb&
+!       +wvdwsb*evdwsb+welsb*eelsb+wsbloc*esbloc+wtor_nucl*etors_nucl&
+!       +wtor_d_nucl*etors_d_nucl+wcorr_nucl*ecorr_nucl+wcorr3_nucl*ecorr3_nucl&
 
       endif
 !
@@ -492,7 +519,25 @@ allocate(ww(max_eneW))
       weights(21)=wsccor
       weights(42)=wcatprot
       weights(41)=wcatcat
-
+      weights(26)=    wvdwpp_nucl 
+
+      weights(27) =welpp  
+      weights(28) =wvdwpsb
+      weights(29) =welpsb 
+      weights(30) =wvdwsb 
+      weights(31) =welsb  
+      weights(32) =wbond_nucl  
+      weights(33) =wang_nucl   
+      weights(34) =wsbloc 
+      weights(35) =wtor_nucl   
+      weights(36) =wtor_d_nucl 
+      weights(37) =wcorr_nucl  
+      weights(38) =wcorr3_nucl 
+      weights(41) =wcatcat
+      weights(42) =wcatprot
+      weights(46) =wscbase
+      weights(47) =wscpho
+      weights(48) =wpeppho
 ! el--------
       call card_concat(controlcard,.false.)