Skip to content
Snippets Groups Projects
Commit 3f9407fa authored by Dave Whipp's avatar Dave Whipp
Browse files

Revised isostasy B/C code logic to do final calculation outside of linear iterations

parent 01a35016
No related branches found
No related tags found
No related merge requests found
...@@ -794,11 +794,12 @@ do while (istep.le.params%nstep) ...@@ -794,11 +794,12 @@ do while (istep.le.params%nstep)
! compute isostasy ! compute isostasy
!-------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------
!-------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------
if (params%isostasy) then if (params%isostasy) then
call show_time (total,step,inc,1,'Compute isostasy and adjust vertical velocity$') if (.not.converge) then
!allocate(ov%wpreiso(ov%nnode),stat=err) ; if (err.ne.0) call stop_run ('Error alloc ov%wpreiso in main$') call show_time (total,step,inc,1,'Compute isostasy and adjust vertical velocity$')
call isostasy (params,weightel,ov,surface,mat,iter,zi) !allocate(ov%wpreiso(ov%nnode),stat=err) ; if (err.ne.0) call stop_run ('Error alloc ov%wpreiso in main$')
call isostasy (params,weightel,ov,surface,mat,iter,zi)
endif
endif endif
!-------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------
...@@ -1047,7 +1048,7 @@ do while (istep.le.params%nstep) ...@@ -1047,7 +1048,7 @@ do while (istep.le.params%nstep)
osolve%u(i)=ov%unode(i) osolve%u(i)=ov%unode(i)
osolve%v(i)=ov%vnode(i) osolve%v(i)=ov%vnode(i)
osolve%w(i)=ov%wnode(i) osolve%w(i)=ov%wnode(i)
osolve%wpreiso(i)=ov%wnodepreiso(i) !osolve%wpreiso(i)=ov%wnodepreiso(i)
enddo enddo
if (params%calculate_temp) then if (params%calculate_temp) then
...@@ -1209,15 +1210,21 @@ do while (istep.le.params%nstep) ...@@ -1209,15 +1210,21 @@ do while (istep.le.params%nstep)
enddo enddo
call interpolate_velocity_on_surface(params,surface,ov) !call interpolate_velocity_on_surface(params,surface,ov)
!-------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------
!-------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------
! update Moho displacement ! apply isostasy and update Moho displacement
!-------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------
!-------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------
call show_time (total,step,inc,1,'Update Moho displacement$') if (params%isostasy) then
zi%zisodisp=zi%zisodisp-zi%zisoinc call show_time (total,step,inc,1,'Compute isostasy and adjust vertical velocity$')
!allocate(ov%wpreiso(ov%nnode),stat=err) ; if (err.ne.0) call stop_run ('Error alloc ov%wpreiso in main$')
call isostasy (params,weightel,ov,surface,mat,iter,zi)
zi%zisodisp=zi%zisodisp-zi%zisoinc
endif
call interpolate_velocity_on_surface(params,surface,ov)
!-------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------
!-------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment