void calc_force_between_mol(int mol_id1,int mol_id2,double force[3]){
  int i,j;
  Particle *p1,*p2;
  double vec12[3],dist2,dist;
#ifdef ADRESS
  int l;
  double weight;
  double temp_force[3]={0,0,0};
#endif
  force[0]=force[1]=force[2]=0.0;
  for (i=0;i<topology[mol_id1].part.n;i++){
    p1=&partCfg[topology[mol_id1].part.e[i]];
    for (j=0;j<topology[mol_id2].part.n;j++){
      p2=&partCfg[topology[mol_id2].part.e[j]];
      
      get_mi_vector(vec12,p1->r.p, p2->r.p);
      dist2=sqrlen(vec12);
      dist=sqrt(dist2);
#ifdef ADRESS
      for(l=0;l<3;l++)
	temp_force[l]=0;
#ifdef EXCLUSIONS
      if(do_nonbonded(p1,p2))
#endif
	{
	  calc_non_bonded_pair_force_from_partcfg_simple(p1,p2,vec12,dist,dist2,temp_force);
	  weight = adress_non_bonded_force_weight(p1,p2);
	  for(l=0;l<3;l++)
	    force[l] += weight*temp_force[l];
	}
#else
#ifdef EXCLUSIONS
      if(do_nonbonded(p1,p2))
#endif
	calc_non_bonded_pair_force_from_partcfg_simple(p1,p2,vec12,dist,dist2,force);
#endif
      
    }
  }
  
}
void calc_force_between_mol(int mol_id1,int mol_id2,double force[3]){
  int i,j;
  Particle *p1,*p2;
  double vec12[3],dist2,dist;
  force[0]=force[1]=force[2]=0.0;
  for (i=0;i<topology[mol_id1].part.n;i++){
    p1=&partCfg[topology[mol_id1].part.e[i]];
    for (j=0;j<topology[mol_id2].part.n;j++){
      p2=&partCfg[topology[mol_id2].part.e[j]];
      
      get_mi_vector(vec12,p1->r.p, p2->r.p);
      dist2=sqrlen(vec12);
      dist=sqrt(dist2);
#ifdef EXCLUSIONS
      if(do_nonbonded(p1,p2))
#endif
	calc_non_bonded_pair_force_from_partcfg_simple(p1,p2,vec12,dist,dist2,force);    
    }
  }
  
}