! This program generates a micro-strucutre mask and applies it to ! an existing mesh. ! J.Grogan 05/08/11 program Voronoi3DPost ! ! Parameters parameter(max_elements=100000,max_cells=20000,max_fc=100) parameter(max_elem_in_cell=50000,max_neigh_per_elem=6,max_neighbours=50) ! ! Variables character(len=256)input character(len=256)input2(2) integer num_neighbours(100000),neighbour(100000,max_neighbours) real nbr_dist(100000,max_neighbours) real cor_faces(100000,3),cor_dist(100000) double precision,allocatable,dimension(:,:)::ele_centroid ! allocate(ele_centroid(max_elements,3)) mesh_type=3 call elem_centroids(num_elements,ele_centroid,mesh_type) rmax_dist=0.020 neighbour=0 ! ! Get neighbouring elements do i=1,num_elements icount=1 do j=1,num_elements if(icount>max_neighbours)then rmaxdist=0. do k=1,max_neighbours if(nbr_dist(i,k)>rmaxdist)then rmaxdist=nbr_dist(i,k) index_max_dist=k endif enddo endif cent1x=ele_centroid(i,1) cent1y=ele_centroid(i,2) cent1z=ele_centroid(i,3) cent2x=ele_centroid(j,1) cent2y=ele_centroid(j,2) cent2z=ele_centroid(j,3) dist=sqrt((cent1x-cent2x)*(cent1x-cent2x)+(cent1y-cent2y)*(cent1y-cent2y)& &+(cent1z-cent2z)*(cent1z-cent2z)) if(icount>max_neighbours)then if(dist