isidep_peppho=144
iliptranpar=60
+
itube=61
+! LIPID MARTINI
+ ilipbond=301
+ ilipnonbond=302
! IONS
iion=401
iionnucl=402
+ iiontran=403 ! this is parameter file for transition metals
#if defined(WHAM_RUN) || defined(CLUSTER)
!
! setting the mpi variables for WHAM
nscp_int_tot,my_scp_inds,my_scp_inde,ind_scpint,&
ind_scpint_old,nsumgrad,nlen,ngrad_start,ngrad_end,&
ierror,k,ierr,iaux,ncheck_to,ncheck_from,ind_typ,&
- ichunk,int_index_old
+ ichunk,int_index_old,ibra
integer :: nele_int_tot_nucl,my_ele_inds_nucl,my_ele_inde_nucl,&
ind_eleint_old_nucl,ind_eleint_nucl,nele_int_tot_vdw_nucl,&
my_ele_inds_vdw_nucl,my_ele_inde_vdw_nucl,ind_eleint_vdw_nucl,&
ind_eleint_vdw_old_nucl,nscp_int_tot_nucl,my_scp_inds_nucl,&
my_scp_inde_nucl,ind_scpint_nucl,ind_scpint_old_nucl,impishi
+ integer,dimension(nres,nres) :: remmat
! integer,dimension(5) :: nct_molec,nnt_molec
!el allocate(itask_cont_from(0:nfgtasks-1)) !(0:max_fg_procs-1)
!el allocate(itask_cont_to(0:nfgtasks-1)) !(0:max_fg_procs-1)
iturn3_end=iturn3_end+nnt
iphi_end=iturn3_end+2
iturn3_start=iturn3_start-1
+ if (iturn3_start.eq.0) iturn3_start=1
iturn3_end=iturn3_end-1
call int_bounds(nct_molec(2)-nnt_molec(2)-2,iphi_nucl_start,iphi_nucl_end)
iphi_nucl_start=iphi_nucl_start+nnt_molec(2)+2
iphid_end=iturn4_end+2
iturn4_start=iturn4_start-1
iturn4_end=iturn4_end-1
+ if (iturn4_start.eq.0) iturn4_start=1
! print *,"TUTUTU",nres_molec(1),nres
call int_bounds(nres_molec(1)-2,ibond_start,ibond_end)
ibond_start=ibond_start+1
print *,"NUCLibond",ibond_nucl_start,ibond_nucl_end
if (nres_molec(2).ne.0) then
print *, "before devision",nnt_molec(2),nct_molec(2)-nnt_molec(2)
- call int_bounds(nct_molec(2)-nnt_molec(2),ibondp_nucl_start,ibondp_nucl_end)
- ibondp_nucl_start=ibondp_nucl_start+nnt_molec(2)
- ibondp_nucl_end=ibondp_nucl_end+nnt_molec(2)
+ call int_bounds(nres_molec(2)-1,ibondp_nucl_start,ibondp_nucl_end)
+ ibondp_nucl_start=ibondp_nucl_start+nnt_molec(2)-1
+ ibondp_nucl_end=ibondp_nucl_end+nnt_molec(2)-1
else
ibondp_nucl_start=1
ibondp_nucl_end=0
call int_bounds &
(ntheta_constr,ithetaconstr_start,ithetaconstr_end)
endif
-
+! HERE MAKING LISTS FOR MARTINI
+ itmp=0
+ do i=1,3
+ itmp=itmp+nres_molec(i)
+ enddo
+!First bonding
+! call int_bounds(nres_molec(4)-1,ilipbond_start,ilipbond_end)
+ ilipbond_start=1+itmp
+ ilipbond_end=nres_molec(4)-1+itmp
+!angles
+! call int_bounds(nres_molec(4)-2,ilipang_start,ilipang_end)
+ ilipang_start=2+itmp
+ ilipang_end=itmp+nres_molec(4)-1
+! create LJ LIST MAXIMUM
+! Eliminate branching from list
+ remmat=0
+ do i=1+itmp,nres_molec(4)-1+itmp
+ if (itype(i,4).eq.12) ibra=i
+ if (itype(i,4).eq.ntyp1_molec(4)-1) then
+! remmat(ibra-1,i+1)=1
+ remmat(ibra,i+1)=1
+! remmat(ibra+1,i+1)=1
+ endif
+ enddo
+ maxljliplist=0
+ allocate (mlipljlisti(nres_molec(4)*nres_molec(4)/2))
+ allocate (mlipljlistj(nres_molec(4)*nres_molec(4)/2))
+ do i=1+itmp,nres_molec(4)-1+itmp
+ do j=i+2,nres_molec(4)+itmp
+ if ((itype(i,4).le.ntyp_molec(4)).and.(itype(j,4).le.ntyp_molec(4))&
+ .and.(remmat(i,j).eq.0)) then
+ maxljliplist=maxljliplist+1
+ mlipljlisti(maxljliplist)=i
+ mlipljlistj(maxljliplist)=j
+ if (energy_dec) print *,i,j,remmat(i,j),"lj lip list"
+ endif
+ enddo
+ enddo
+! split the bound of the list
+ call int_bounds(maxljliplist,iliplj_start,iliplj_end)
+ iliplj_start=iliplj_start
+ iliplj_end=iliplj_end
+! now the electrostatic list
+ maxelecliplist=0
+ allocate (mlipeleclisti(nres_molec(4)*nres_molec(4)/2))
+ allocate (mlipeleclistj(nres_molec(4)*nres_molec(4)/2))
+ do i=1+itmp,nres_molec(4)-1+itmp
+ do j=i+2,nres_molec(4)+itmp
+ if ((itype(i,4).le.4).and.(itype(j,4).le.4)) then
+ maxelecliplist=maxelecliplist+1
+ mlipeleclisti(maxelecliplist)=i
+ mlipeleclistj(maxelecliplist)=j
+ endif
+ enddo
+ enddo
+ call int_bounds(maxelecliplist,ilip_elec_start,ilipelec_end)
+ ilip_elec_start=ilip_elec_start
+ ilipelec_end=ilipelec_end
! nsumgrad=(nres-nnt)*(nres-nnt+1)/2
! nlen=nres-nnt+1
nsumgrad=(nres-nnt)*(nres-nnt+1)/2
write (iout,*) "iturn4_end_all",&
(iturn4_end_all(i),i=0,nfgtasks-1)
write (iout,*) "The ielstart_all array"
+! do i=0,nfgtasks-1
+! if (iturn3_start_all(i).le.0) iturn3_start_all(i)=1
+! if (iturn4_start_all(i).le.0) iturn4_start_all(i)=1
+! enddo
do i=nnt,nct
write (iout,'(20i4)') i,(ielstart_all(i,j),j=0,nfgtasks-1)
enddo
do i=1,nat_sent
ii=iat_sent(i)
iaux=4*(ielend(ii)-ielstart(ii)+1)
+ if (iaux.lt.0) iaux=0
call MPI_Group_translate_ranks(fg_group,iaux,&
iint_sent(1,ielstart(ii),i),CONT_TO_GROUP,&
iint_sent_local(1,ielstart(ii),i),IERR )
! call flush(iout)
enddo
iaux=4*(iturn3_end-iturn3_start+1)
+ if (iaux.lt.0) iaux=0
call MPI_Group_translate_ranks(fg_group,iaux,&
iturn3_sent(1,iturn3_start),CONT_TO_GROUP,&
iturn3_sent_local(1,iturn3_start),IERR)
iaux=4*(iturn4_end-iturn4_start+1)
+ if (iaux.lt.0) iaux=0
call MPI_Group_translate_ranks(fg_group,iaux,&
iturn4_sent(1,iturn4_start),CONT_TO_GROUP,&
iturn4_sent_local(1,iturn4_start),IERR)
j=ielstart(ii),ielend(ii))
call flush(iout)
enddo
+ if (iturn3_end.gt.0) then
write (iout,*) "iturn3_sent_local iturn3_start",iturn3_start,&
" iturn3_end",iturn3_end
write (iout,'(20i4)') (i,(iturn3_sent_local(j,i),j=1,4),&
i=iturn4_start,iturn4_end)
call flush(iout)
endif
+ endif
call MPI_Group_free(fg_group,ierr)
call MPI_Group_free(cont_from_group,ierr)
call MPI_Group_free(cont_to_group,ierr)
#ifdef WHAM_RUN
if (itype(i,1).ne.10) then
#else
- if (itype(i,1).ne.10 .and. itype(i,mnum).ne.ntyp1_molec(mnum) .and. mnum.ne.5) then
+ if (itype(i,1).ne.10 .and. itype(i,mnum).ne.ntyp1_molec(mnum) .and. mnum.lt.4) then
#endif
nside=nside+1
ialph(i,1)=nvar+nside