From 5b25e4d7e25a6bd3b9520df9ead2d4fa0bc67f55 Mon Sep 17 00:00:00 2001
From: Dave Whipp <dwhipp@dal.ca>
Date: Mon, 21 Dec 2009 15:29:35 +0000
Subject: [PATCH] added passing of zisodisp array for new isostasy B/Cs

---
 src/DOUAR.f90 | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/DOUAR.f90 b/src/DOUAR.f90
index 17e052d7..4603feda 100644
--- a/src/DOUAR.f90
+++ b/src/DOUAR.f90
@@ -27,7 +27,7 @@ integer ierr,nproc,iproc,k,nrem
 integer current_level
 integer ie_ov,ie_loc,ie_level,iter_nl
 integer err,iunit,cltemp
-integer nremove, ninject,nnmax,nadd,naddp,ref_count
+integer nremove,ninject,nnmax,nadd,naddp,ref_count
 integer nleaves_new_mem1
 integer nleaves_new_mem2
 integer nleaves_old_mem1
@@ -69,7 +69,7 @@ integer ldb,nrhs,n,nz_loc
 integer, dimension(:), allocatable :: ia,ja
 logical, dimension(:), allocatable :: iproc_col
 double precision, dimension(:), allocatable :: avals
-double precision, dimension(:,:), allocatable :: b
+double precision, dimension(:,:), allocatable :: b,zisodisp
 double precision, dimension(:), allocatable :: weightel
 double precision, dimension(:), allocatable :: xyz_t
 
@@ -101,8 +101,8 @@ 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-09-03'
-if (iproc.eq.0) write(*,*)  'This is douar, last modifed 2009-09-03'
+write(threadinfo%Logunit,*) 'This is douar, last modifed 2009-12-21'
+if (iproc.eq.0) write(*,*)  'This is douar, last modifed 2009-12-21, using ', nproc, ' processors.'
 write(threadinfo%Logunit,'(a,i3)') 'Log file of mpi process',iproc
 
 call heap_init(threadinfo,2000+iproc,'./DEBUG/mpilogs/mem_heap_'//ciproc//'.dat')
@@ -193,7 +193,7 @@ call define_surface(params,surface,threadinfo,total,step,inc,current_time)
 !------------------------------------------------------------------------------|
 !------------------------------------------------------------------------------|
 call show_time (total,step,inc,1,'define cloud$')
-call  define_cloud(cl,params)
+call  define_cloud(cl,params,zisodisp)
 
 !------------------------------------------------------------------------------|
 !------------------------------------------------------------------------------|
@@ -584,7 +584,7 @@ do while (istep.le.params%nstep)
       allocate (osolve%kfixt(osolve%nnode),stat=threadinfo%err)         
  call heap (threadinfo,'osolve%kfixt','main',size(osolve%kfixt),'int',+1)
 
-      call define_bc (params,osolve,vo)
+      call define_bc (params,osolve,vo,zisodisp)
 
       !------------------------------------------------------------------------|
       !------------------------------------------------------------------------|
@@ -739,7 +739,7 @@ do while (istep.le.params%nstep)
          !--------------------------------------------------------------------------------------
          if (params%debug>=2) then
             call show_time (total,step,inc,1,'write global output$')
-            call write_global_output(params,istep,iter,current_time,osolve,ov,vo,surface,cl,'debug')
+            call write_global_output(params,istep,iter,current_time,osolve,ov,vo,surface,cl,zisodisp,'debug')
             call mpi_barrier (mpi_comm_world,ierr)
 !            call slices (params,osolve,ov,vo,sections,istep,iter,iter_nl)
          end if
@@ -792,7 +792,7 @@ do while (istep.le.params%nstep)
 
       call show_time (total,step,inc,1,'Compute isostasy and adjust vertical velocity$')
       
-      if (params%isostasy) call isostasy (params,weightel,ov,surface,mat)
+      if (params%isostasy) call isostasy (params,weightel,ov,surface,mat,zisodisp)
 
       !--------------------------------------------------------------------------------------
       !--------------------------------------------------------------------------------------
@@ -1235,7 +1235,7 @@ do while (istep.le.params%nstep)
    !--------------------------------------------------------------------------------------
    !--------------------------------------------------------------------------------------
    call show_time (total,step,inc,1,'Write output$')
-   call write_global_output (params,istep,iter-1,current_time,osolve,ov,vo,surface,cl,'final')
+   call write_global_output (params,istep,iter-1,current_time,osolve,ov,vo,surface,cl,zisodisp,'final')
    call mpi_barrier (mpi_comm_world,ierr)
 
    !--------------------------------------------------------------------------------------
@@ -1340,6 +1340,7 @@ end do
 deallocate (surface)
 deallocate (surface0)
 deallocate (mat)
+if (params%isobc) deallocate (zisodisp)
 deallocate (params%materialn)
 
 call heap_final (threadinfo)
-- 
GitLab