From 66618bcd6b353937874245a2fd92d729f9c7ed05 Mon Sep 17 00:00:00 2001
From: Douglas Guptill <douglas.guptill@dal.ca>
Date: Tue, 14 Jul 2009 16:23:28 +0000
Subject: [PATCH] adjust osolve%x,y,z,lsf after octree_find_node_connectivity,
 print date

---
 DOUAR.f90 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/DOUAR.f90 b/DOUAR.f90
index 4d18bca2..ed3378f7 100644
--- a/DOUAR.f90
+++ b/DOUAR.f90
@@ -71,6 +71,7 @@ logical, dimension(:), allocatable :: iproc_col
 double precision, dimension(:), allocatable :: avals
 double precision, dimension(:,:), allocatable :: b
 double precision, dimension(:), allocatable :: weightel
+double precision, dimension(:), allocatable :: xyz_t
 
 shift=' '
 
@@ -100,6 +101,7 @@ call int_to_char(ciproc,3,iproc)
 
 threadinfo%Logunit=1000+iproc
 open  (unit=threadinfo%Logunit,file='./DEBUG/mpilogs/Log_'//ciproc//'.dat',status='replace')
+write(threadinfo%Logunit,*) 'This is douar, last modifed 2009-07-14'
 write(threadinfo%Logunit,'(a,i3)') 'Log file of mpi process',iproc
 
 call heap_init(threadinfo,2000+iproc,'./DEBUG/mpilogs/mem_heap_'//ciproc//'.dat')
@@ -426,6 +428,54 @@ do while (istep.le.params%nstep)
       call octree_find_node_connectivity (osolve%octree,osolve%noctree, &
                                           osolve%icon,osolve%nleaves,osolve%x,osolve%y,osolve%z,osolve%nnode)
 
+      ! osolve%nnode has been changed by octree_find_node_connectivity.
+      allocate (xyz_t(osolve%nnode),stat=threadinfo%err)
+      call heap (threadinfo, 'xyz_t', 'main', size(xyz_t), 'dp', +1)
+      ! re-size x
+      do i = 1, osolve%nnode
+        xyz_t(i) = osolve%x(i)
+      enddo
+      call heap (threadinfo,'osolve%x', 'main',size(osolve%x),'dp',-1)
+      deallocate (osolve%x)
+      allocate   (osolve%x(osolve%nnode),stat=threadinfo%err)               
+      call heap (threadinfo,'osolve%x', 'main',size(osolve%x),'dp',+1)
+      do i = 1, osolve%nnode
+        osolve%x(i) = xyz_t(i)
+      enddo
+      ! re-size y
+      do i = 1, osolve%nnode
+        xyz_t(i) = osolve%y(i)
+      enddo
+      call heap (threadinfo,'osolve%y', 'main',size(osolve%y),'dp',-1)
+      deallocate (osolve%y)
+      allocate   (osolve%y(osolve%nnode),stat=threadinfo%err)               
+      call heap (threadinfo,'osolve%y', 'main',size(osolve%y),'dp',+1)
+      do i = 1, osolve%nnode
+        osolve%y(i) = xyz_t(i)
+      enddo
+      ! re-size z
+      do i = 1, osolve%nnode
+        xyz_t(i) = osolve%z(i)
+      enddo
+      call heap (threadinfo,'osolve%z', 'main',size(osolve%z),'dp',-1)
+      deallocate (osolve%z)
+      allocate   (osolve%z(osolve%nnode),stat=threadinfo%err)               
+      call heap (threadinfo,'osolve%z', 'main',size(osolve%z),'dp',+1)
+      do i = 1, osolve%nnode
+        osolve%z(i) = xyz_t(i)
+      enddo
+      ! delete the temporary buffer
+      call heap (threadinfo,'xyz_t', 'main',size(xyz_t),'dp',-1)
+      deallocate (xyz_t)
+      ! resize lsf
+      call heap (threadinfo,'osolve%lsf', 'main',size(osolve%lsf),'dp',-1)
+      deallocate (osolve%lsf)
+      allocate   (osolve%lsf(osolve%nnode,osolve%nlsf),stat=threadinfo%err) 
+      call heap (threadinfo,'osolve%lsf', 'main',size(osolve%lsf),'dp',+1)
+      osolve%lsf=0.d0
+
+
+
       !------------------------------------------------------------------------|
       !------------------------------------------------------------------------|
       !     imbed the surfaces in osolve
-- 
GitLab