Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
=======================================
in move_surface.f90:
type (octreev) ov
call octree_interpolate_many (3,ov%octree,ov%noctree,ov%icon,ov%nleaves, &
call octree_interpolate_many_derivative (3,ov%octree,ov%noctree,ov%icon,ov%nleaves,
in module_definitions.f90
type octreev
integer,dimension(:),pointer::octree
integer noctree,nnode,nleaves
double precision,dimension(:),pointer::x,y,z,temp
double precision,dimension(:),pointer::unode,vnode,wnode
double precision,dimension(:),pointer::pressure
double precision,dimension(:),pointer::temporary_nodal_pressure
integer,dimension(:,:),pointer::icon
logical, dimension(:),pointer :: whole_leaf_in_fluid
end type octreev
So ov%octree is integer(:), pointer
ov%icon is integer(:,:), pointer
in OCTREE/OctreeBitPlus.f90:
subroutine octree_interpolate_many (nf,octree,noctree,icon,nleaves,nfield,x,y,z,
integer noctree,octree(noctree),nleaves,icon(8,nleaves)
subroutine octree_interpolate_many_derivative &
(nf,octree,noctree,icon,nleaves,nfield,x,y,z, &
integer noctree,octree(noctree),nleaves,icon(8,nleaves)
The difference being "pointer", and the "8"
=======================================
in CASCADE/find_neighbours, we make a code change:
c call indexx(np,points,nodes)
call indexx(np,x,nodes)
c call delaun (points,np,neighbour,vertices,nt,2*np,
c & vis_tlist,vis_elist,add_tlist,eps,nv_max,
c & mode,inactive,bfirst,itstart,subset)
call delaun (points,np,neighbour,vertices,nt,2*np,
& vis_tlist,vis_elist,add_tlist,eps,nv_max,
& mode,dummy1,bfirst,itstart,dummy2)
=======================================