& ibondp_start,ibondp_end,ivec_start,ivec_end,iset_start,iset_end,
& iturn3_start,iturn3_end,iturn4_start,iturn4_end,iint_start,
& iint_end,iphi1_start,iphi1_end,itau_start,itau_end,ilip_start,
- & ilip_end,
+ & ilip_end,itube_start,itube_end,
& ibond_displ(0:max_fg_procs-1),ibond_count(0:max_fg_procs-1),
& ithet_displ(0:max_fg_procs-1),ithet_count(0:max_fg_procs-1),
& iphi_displ(0:max_fg_procs-1),iphi_count(0:max_fg_procs-1),
& iint_end,iphi1_start,iphi1_end,iint_count,iint_displ,ivec_displ,
& ivec_count,iset_displ,itau_start,itau_end,
& iset_count,ibond_displ,ibond_count,ithet_displ,ithet_count,
- & iphi_displ,iphi_count,iphi1_displ,iphi1_count,ilip_start,ilip_end
+ & iphi_displ,iphi_count,iphi1_displ,iphi1_count,
+ & ilip_start,ilip_end,itube_start,itube_end
C Inverses of the actual virtual bond lengths
common /invlen/ vbld_inv(maxres2)
enddo
- enddo
+ enddo
+ j=1
+ i=0
+ print *,"KUPA2",gradbufc(j,i),wsc*gvdwc(j,i),
+ & wscp*gvdwc_scp(j,i),gvdwc_scpp(j,i),
+ & welec*gelc_long(j,i),wvdwpp*gvdwpp(j,i),
+ & wel_loc*gel_loc_long(j,i),
+ & wcorr*gradcorr_long(j,i),
+ & wcorr5*gradcorr5_long(j,i),
+ & wcorr6*gradcorr6_long(j,i),
+ & wturn6*gcorr6_turn_long(j,i),
+ & wstrain*ghpbc(j,i)
+ & ,wliptran*gliptranc(j,i)
+ & ,gradafm(j,i)
+ & ,welec*gshieldc(j,i)
+ & ,wcorr*gshieldc_ec(j,i)
+ & ,wturn3*gshieldc_t3(j,i)
+ & ,wturn4*gshieldc_t4(j,i)
+ & ,wel_loc*gshieldc_ll(j,i)
+ & ,wtube*gg_tube(j,i)
#else
do i=0,nct
do j=1,3
#ifdef TIMING
c time_allreduce=time_allreduce+MPI_Wtime()-time00
#endif
- do i=nnt,nres
+ do i=0,nres
do k=1,3
gradbufc(k,i)=0.0d0
enddo
enddo
- enddo
+ enddo
+C i=0
+C j=1
+C print *,"KUPA", gradbufc(j,i),welec*gelc(j,i),
+C & wel_loc*gel_loc(j,i),
+C & 0.5d0*wscp*gvdwc_scpp(j,i),
+C & welec*gelc_long(j,i),wvdwpp*gvdwpp(j,i),
+C & wel_loc*gel_loc_long(j,i),
+C & wcorr*gradcorr_long(j,i),
+C & wcorr5*gradcorr5_long(j,i),
+C & wcorr6*gradcorr6_long(j,i),
+C & wturn6*gcorr6_turn_long(j,i),
+C & wbond*gradb(j,i),
+C & wcorr*gradcorr(j,i),
+C & wturn3*gcorr3_turn(j,i),
+C & wturn4*gcorr4_turn(j,i),
+C & wcorr5*gradcorr5(j,i),
+C & wcorr6*gradcorr6(j,i),
+C & wturn6*gcorr6_turn(j,i),
+C & wsccor*gsccorc(j,i)
+C & ,wscloc*gscloc(j,i)
+C & ,wliptran*gliptranc(j,i)
+C & ,gradafm(j,i)
+C & +welec*gshieldc(j,i)
+C & +welec*gshieldc_loc(j,i)
+C & +wcorr*gshieldc_ec(j,i)
+C & +wcorr*gshieldc_loc_ec(j,i)
+C & +wturn3*gshieldc_t3(j,i)
+C & +wturn3*gshieldc_loc_t3(j,i)
+C & +wturn4*gshieldc_t4(j,i)
+C & ,wturn4*gshieldc_loc_t4(j,i)
+C & ,wel_loc*gshieldc_ll(j,i)
+C & ,wel_loc*gshieldc_loc_ll(j,i)
+C & ,wtube*gg_tube(j,i)
+
+C print *,gg_tube(1,0),"TU3"
#ifdef DEBUG
write (iout,*) "gloc before adding corr"
do i=1,4*nres
call MPI_Barrier(FG_COMM,IERR)
time_barrier_g=time_barrier_g+MPI_Wtime()-time00
time00=MPI_Wtime()
- call MPI_Reduce(gradbufc(1,1),gradc(1,1,icg),3*nres,
+ call MPI_Reduce(gradbufc(1,0),gradc(1,0,icg),3*nres+3,
& MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
call MPI_Reduce(gradbufx(1,1),gradx(1,1,icg),3*nres,
& MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
include 'COMMON.SBRIDGE'
double precision tub_r,vectube(3),enetube(maxres*2)
Etube=0.0d0
- do i=1,2*nres
+ do i=itube_start,itube_end
enetube(i)=0.0d0
+ enetube(i+nres)=0.0d0
enddo
C first we calculate the distance from tube center
C first sugare-phosphate group for NARES this would be peptide group
C for UNRES
- do i=1,nres
+ do i=itube_start,itube_end
C lets ommit dummy atoms for now
if ((itype(i).eq.ntyp1).or.(itype(i+1).eq.ntyp1)) cycle
C now calculate distance from center of tube and direction vectors
enddo
enddo
C basically thats all code now we split for side-chains (REMEMBER to sum up at the END)
- do i=1,nres
+C print *,gg_tube(1,0),"TU"
+
+
+ do i=itube_start,itube_end
C Lets not jump over memory as we use many times iti
iti=itype(i)
C lets ommit dummy atoms for now
gg_tube(j,i-1)=gg_tube(j,i-1)+vectube(j)*fac
enddo
enddo
- do i=1,2*nres
- Etube=Etube+enetube(i)
+ do i=itube_start,itube_end
+ Etube=Etube+enetube(i)+enetube(i+nres)
enddo
C print *,"ETUBE", etube
return
include 'COMMON.SBRIDGE'
double precision tub_r,vectube(3),enetube(maxres*2)
Etube=0.0d0
- do i=1,2*nres
+ do i=itube_start,itube_end
enetube(i)=0.0d0
+ enetube(i+nres)=0.0d0
enddo
C first we calculate the distance from tube center
C first sugare-phosphate group for NARES this would be peptide group
C for UNRES
- do i=1,nres
+ do i=itube_start,itube_end
C lets ommit dummy atoms for now
if ((itype(i).eq.ntyp1).or.(itype(i+1).eq.ntyp1)) cycle
enddo
enddo
C basically thats all code now we split for side-chains (REMEMBER to sum up at the END)
- do i=1,nres
+C print *,gg_tube(1,0),"TU"
+ do i=itube_start,itube_end
C Lets not jump over memory as we use many times iti
iti=itype(i)
C lets ommit dummy atoms for now
&+ssgradtube*enetube(i+nres)/sstube
enddo
- do i=1,2*nres
- Etube=Etube+enetube(i)
+ do i=itube_start,itube_end
+ Etube=Etube+enetube(i)+enetube(i+nres)
enddo
C print *,"ETUBE", etube
return