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

Added output of yield_ratio and did minor cleanup; moved ziso stuff into...

Added output of yield_ratio and did minor cleanup; moved ziso stuff into bc_definition derived data type
parent 0eb060a0
No related branches found
No related tags found
No related merge requests found
subroutine read_restart(params,istep,current_time,osolve,ov,vo,surface,cl,&
zi,nest)
bcdef,nest)
use definitions
!use mpi
......@@ -17,7 +17,7 @@ type (octreev) :: ov
type (void) :: vo
type (sheet) :: surface(params%ns)
type (cloud) :: cl
type (ziso) :: zi
type (bc_definition) :: bcdef
type (nest_info) :: nest
! Internal variables
......@@ -129,6 +129,7 @@ read (9) ((osolve%icon(j,i),j=1,8), &
osolve%is_plastic(i), &
osolve%dilatr(i), &
osolve%matnum(i), &
osolve%yield_ratio(i), &
ov%whole_leaf_in_fluid(i), &
i=1,osolve%nleaves)
......@@ -205,9 +206,9 @@ cl%z0=cl%z0/params%vex
! Read isostasy basal displacement array
read (9) zisosize
allocate (zi%zisodisp(zisosize+1,zisosize+1), stat=err) ; if (err.ne.0) call stop_run ('Error alloc zi%zisodisp in read_restart$')
read (9) ((zi%zisodisp(i,j),j=1,zisosize+1),i=1,zisosize+1)
zi%zisodisp=zi%zisodisp-surface(osolve%nlsf)%sp01
allocate (bcdef%zisodisp(zisosize+1,zisosize+1), stat=err) ; if (err.ne.0) call stop_run ('Error alloc bcdef%zisodisp in read_restart$')
read (9) ((bcdef%zisodisp(i,j),j=1,zisosize+1),i=1,zisosize+1)
bcdef%zisodisp=bcdef%zisodisp-surface(osolve%nlsf)%sp01
! Read nested model info
if (params%nest) then
......
......@@ -16,7 +16,7 @@
!------------------------------------------------------------------------------|
!------------------------------------------------------------------------------|
subroutine define_cloud (cl,params,zi)
subroutine define_cloud (cl,params,bcdef)
!------------------------------------------------------------------------------|
!(((((((((((((((( Purpose of the routine ))))))))))))))))))))))))))))))))))))))
......@@ -41,13 +41,12 @@ include 'mpif.h'
type (cloud) cl
type (parameters) params
type (ziso) zi
!double precision zisodisp(2**params%levelmax_oct+1,2**params%levelmax_oct+1)
type (bc_definition) bcdef
!------------------------------------------------------------------------------|
!(((((((((((((((( declaration of the subroutine internal variables )))))))))))))
!------------------------------------------------------------------------------|
double precision x,y,z,u,v,w,p,r,s,t,e2d,xlsf,xn,yn,zn,con,wiso,ev,epr,espr
double precision x,y,z,u,v,w,p,r,s,t,e2d,xlsf,xn,yn,zn,con,wiso,ev,epr,espr,yr
double precision current_time,activation_time,dilatr
logical inf,wlif,ip
integer err,iproc,nproc,ierr,i,j,k,nl,nf,nn,nr,kx,ky,kz,kt,icon
......@@ -73,10 +72,10 @@ if (params%irestart.eq.0) then
allocate (cl%press(1), stat=err) ; if (err.ne.0) call stop_run ('Error alloc cl%press in define_cloud$')
allocate (cl%tag(1), stat=err) ; if (err.ne.0) call stop_run ('Error alloc cl%tag in define_cloud$')
if (params%isobc) then
allocate (zi%zisodisp(2**params%levelmax_oct+1,2**params%levelmax_oct+1), stat=err); if (err.ne.0) call stop_run ('Error alloc zi%zisodisp in define_cloud$')
allocate (zi%zisoinc(2**params%levelmax_oct+1,2**params%levelmax_oct+1), stat=err); if (err.ne.0) call stop_run ('Error alloc zi%zisoinc in define_cloud$')
zi%zisodisp=0.d0
zi%zisoinc=0.d0
allocate (bcdef%zisodisp(2**params%levelmax_oct+1,2**params%levelmax_oct+1), stat=err); if (err.ne.0) call stop_run ('Error alloc bcdef%zisodisp in define_cloud$')
allocate (bcdef%zisoinc(2**params%levelmax_oct+1,2**params%levelmax_oct+1), stat=err); if (err.ne.0) call stop_run ('Error alloc bcdef%zisoinc in define_cloud$')
bcdef%zisodisp=0.d0
bcdef%zisoinc=0.d0
endif
else
......@@ -101,8 +100,8 @@ else
allocate (cl%press(cl%np),stat=err) ; if (err.ne.0) call stop_run ('Error alloc cl%press in define_cloud$')
allocate (cl%tag(cl%np),stat=err) ; if (err.ne.0) call stop_run ('Error alloc cl%tag in define_cloud$')
if (params%isobc) then
allocate (zi%zisodisp(2**params%levelmax_oct+1,2**params%levelmax_oct+1), stat=err); if (err.ne.0) call stop_run ('Error alloc zi%zisodisp in define_cloud$')
allocate (zi%zisoinc(2**params%levelmax_oct+1,2**params%levelmax_oct+1), stat=err); if (err.ne.0) call stop_run ('Error alloc zi%zisoinc in define_cloud$')
allocate (bcdef%zisodisp(2**params%levelmax_oct+1,2**params%levelmax_oct+1), stat=err); if (err.ne.0) call stop_run ('Error alloc bcdef%zisodisp in define_cloud$')
allocate (bcdef%zisoinc(2**params%levelmax_oct+1,2**params%levelmax_oct+1), stat=err); if (err.ne.0) call stop_run ('Error alloc bcdef%zisoinc in define_cloud$')
endif
read (19) (x, &
......@@ -121,7 +120,7 @@ else
kz, &
kt, &
i=1,nnode)
read (19) ((icon,k=1,8),epr,espr,con,e2d,ev,ip,dilatr,matnum,wlif,i=1,nleaves)
read (19) ((icon,k=1,8),epr,espr,con,e2d,ev,ip,dilatr,matnum,yr,wlif,i=1,nleaves)
read (19) (ioc,k=1,noctree)
read (19) ((iface,k=1,9),i=1,nface)
read (19) (nn,nl,nf,nr,inf,i=1,nnode)
......@@ -159,9 +158,9 @@ else
! read isostasy basal displacement array - dwhipp 11/09
if (params%isobc) then
read (19) dumpi
read (19) ((zi%zisodisp(i,j),j=1,2**params%levelmax_oct+1),&
read (19) ((bcdef%zisodisp(i,j),j=1,2**params%levelmax_oct+1),&
i=1,2**params%levelmax_oct+1)
zi%zisoinc=0.d0
bcdef%zisoinc=0.d0
endif
! correct for vertical exaggeration
......
......@@ -95,7 +95,7 @@ module definitions
double precision,dimension(:),pointer::lode
double precision,dimension(:),pointer::u,v,w,wiso,temp
double precision,dimension(:,:),pointer::lsf
double precision,dimension(:),pointer::eviscosity,q,dilatr
double precision,dimension(:),pointer::eviscosity,q,dilatr,yield_ratio
integer,dimension(:,:),pointer::icon,iface
logical,dimension(:),pointer::is_plastic
integer,dimension(:),pointer :: matnum
......@@ -336,14 +336,6 @@ module definitions
end interface
!=====[ZISODISP]================================================================
! type ziso is used to store the isostatic deflection of the basal boundary
! due to isostasy
type ziso
double precision,dimension(:,:),pointer :: zisodisp,zisoinc
end type ziso
!=====[BC_DEFINITION]===========================================================
! type bc_definition is used to store values related to the applied boundary
! conditions, including the velocity values and certain geometric parameters
......@@ -374,4 +366,4 @@ module definitions
double precision :: sselemx,sselemy,sselemz,xminls,yminls,zminls
end type nest_info
end module definitions
end module definitions
\ No newline at end of file
......@@ -17,7 +17,7 @@
!------------------------------------------------------------------------------|
subroutine write_global_output (params,istep,iter,current_time,osolve,ov, &
vo,surface,cl,zi,nest,outputtype)
vo,surface,cl,bcdef,nest,outputtype)
!------------------------------------------------------------------------------|
!(((((((((((((((( Purpose of the routine ))))))))))))))))))))))))))))))))))))))
......@@ -58,9 +58,8 @@ type (octreev) ov
type (void) vo
type (sheet) surface(params%ns)
type (cloud) cl
type (ziso) zi
type (bc_definition) bcdef
type (nest_info) :: nest
!double precision zisodisp(2**params%levelmax_oct+1,2**params%levelmax_oct+1)
character*5 outputtype
!------------------------------------------------------------------------------|
......@@ -133,6 +132,7 @@ if (iproc.eq.0) then
osolve%is_plastic(i), &
osolve%dilatr(i), &
osolve%matnum(i), &
osolve%yield_ratio(i), &
ov%whole_leaf_in_fluid(i), &
i=1,osolve%nleaves)
......@@ -203,7 +203,7 @@ if (iproc.eq.0) then
! write isostasy basal displacement array - dwhipp 11/09
write (9) 2**params%levelmax_oct
if (params%isobc) then
write (9) ((zi%zisodisp(i,j)+surface(osolve%nlsf)%sp01, &
write (9) ((bcdef%zisodisp(i,j)+surface(osolve%nlsf)%sp01, &
j=1,2**params%levelmax_oct+1),i=1,2**params%levelmax_oct+1)
else
write (9) ((0.d0+surface(osolve%nlsf)%sp01,j=1,2**params%levelmax_oct+1), &
......
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