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

Added sp11 and sp12 as input options for the defining the surface geometry

parent 6a1206fb
No related branches found
No related tags found
No related merge requests found
...@@ -50,7 +50,7 @@ integer,dimension(:), allocatable :: hulltriangles,vis_tlist,vis_elist ...@@ -50,7 +50,7 @@ integer,dimension(:), allocatable :: hulltriangles,vis_tlist,vis_elist
integer,dimension(:), allocatable :: add_tlist,nb integer,dimension(:), allocatable :: add_tlist,nb
integer,dimension(:,:),allocatable :: vertices,neighbour,nn integer,dimension(:,:),allocatable :: vertices,neighbour,nn
logical*1,dimension(:),allocatable :: lt_work,ln_work logical*1,dimension(:),allocatable :: lt_work,ln_work
double precision :: sp01,sp02,sp03,sp04,sp05,sp06,sp07,sp08,sp09,sp10 double precision :: sp01,sp02,sp03,sp04,sp05,sp06,sp07,sp08,sp09,sp10,sp11,sp12
double precision :: x1,x2,x3,y1,y2,y3,z1,z2,z3,xne,yne,zne,xyzn double precision :: x1,x2,x3,y1,y2,y3,z1,z2,z3,xne,yne,zne,xyzn
double precision :: delta,eps,epsil,xtemp,ytemp,delta_angle,delta_radius,angle double precision :: delta,eps,epsil,xtemp,ytemp,delta_angle,delta_radius,angle
double precision :: xx,yy,xini,xend,yini,yend,dx,dy,dist double precision :: xx,yy,xini,xend,yini,yend,dx,dy,dist
...@@ -133,6 +133,8 @@ else ...@@ -133,6 +133,8 @@ else
sp08=surface%sp08 sp08=surface%sp08
sp09=surface%sp09 sp09=surface%sp09
sp10=surface%sp10 sp10=surface%sp10
sp11=surface%sp11
sp12=surface%sp12
surface_type=surface%surface_type surface_type=surface%surface_type
levelt=surface%levelt levelt=surface%levelt
...@@ -430,7 +432,7 @@ else ...@@ -430,7 +432,7 @@ else
!----------------------------------------------| !----------------------------------------------|
call zpoints (surface%nsurface,surface%x,surface%y,surface%z,surface_type, & call zpoints (surface%nsurface,surface%x,surface%y,surface%z,surface_type, &
sp01,sp02,sp03,sp04,sp05,sp06,sp07,sp08,sp09,sp10) sp01,sp02,sp03,sp04,sp05,sp06,sp07,sp08,sp09,sp10,sp11,sp12)
!----------------------------------------------| !----------------------------------------------|
!----computing the normals---------------------| !----computing the normals---------------------|
...@@ -452,7 +454,7 @@ end subroutine create_surf ...@@ -452,7 +454,7 @@ end subroutine create_surf
!------------------------------------------------------------------------------| !------------------------------------------------------------------------------|
subroutine zpoints (ns,x,y,z,surface_type, & subroutine zpoints (ns,x,y,z,surface_type, &
sp01,sp02,sp03,sp04,sp05,sp06,sp07,sp08,sp09,sp10) sp01,sp02,sp03,sp04,sp05,sp06,sp07,sp08,sp09,sp10,sp11,sp12)
!------------------------------------------------------------------------------| !------------------------------------------------------------------------------|
!(((((((((((((((( Purpose of the routine )))))))))))))))))))))))))))))))))))))) !(((((((((((((((( Purpose of the routine ))))))))))))))))))))))))))))))))))))))
...@@ -462,7 +464,7 @@ subroutine zpoints (ns,x,y,z,surface_type, & ...@@ -462,7 +464,7 @@ subroutine zpoints (ns,x,y,z,surface_type, &
! ns is the number of points ! ns is the number of points
! x,y,z are the coordinates of the points ! x,y,z are the coordinates of the points
! surface_type is the type of surface under consideration ! surface_type is the type of surface under consideration
! sp01..sp10 are the surface parameters (not all are necessarily used) ! sp01..sp12 are the surface parameters (not all are necessarily used)
!------------------------------------------------------------------------------| !------------------------------------------------------------------------------|
!(((((((((((((((( declaration of the subroutine arguments )))))))))))))))))))) !(((((((((((((((( declaration of the subroutine arguments ))))))))))))))))))))
!------------------------------------------------------------------------------| !------------------------------------------------------------------------------|
...@@ -474,7 +476,7 @@ implicit none ...@@ -474,7 +476,7 @@ implicit none
integer ns integer ns
double precision x(ns),y(ns),z(ns) double precision x(ns),y(ns),z(ns)
integer surface_type integer surface_type
double precision sp01,sp02,sp03,sp04,sp05,sp06,sp07,sp08,sp09,sp10 double precision sp01,sp02,sp03,sp04,sp05,sp06,sp07,sp08,sp09,sp10,sp11,sp12
!------------------------------------------------------------------------------| !------------------------------------------------------------------------------|
!(((((((((((((((( declaration of the subroutine internal variables ))))))))))))) !(((((((((((((((( declaration of the subroutine internal variables )))))))))))))
...@@ -665,6 +667,7 @@ select case(surface_type) ...@@ -665,6 +667,7 @@ select case(surface_type)
! sp08 is the angle of the first kink (theta1) ! sp08 is the angle of the first kink (theta1)
! sp09 is the y position of the second kink (y2) ! sp09 is the y position of the second kink (y2)
! sp10 is the angle of the second kink (theta2) ! sp10 is the angle of the second kink (theta2)
! sp11 is the dip angle of the outer 'flat' region
psi=sp03*pi/180.d0 psi=sp03*pi/180.d0
theta1=sp08*pi/180.d0 theta1=sp08*pi/180.d0
theta2=sp10*pi/180.d0 theta2=sp10*pi/180.d0
......
...@@ -27,8 +27,8 @@ module definitions ...@@ -27,8 +27,8 @@ module definitions
integer nsurface,nt integer nsurface,nt
double precision,dimension(:),pointer::r,s,x,y,z,xn,yn,zn,u,v,w double precision,dimension(:),pointer::r,s,x,y,z,xn,yn,zn,u,v,w
integer levelt,itype,material,surface_type integer levelt,itype,material,surface_type
double precision :: sp01,sp02,sp03,sp04,sp05,sp06,sp07,sp08,sp09,sp10 double precision :: sp01,sp02,sp03,sp04,sp05,sp06,sp07,sp08,sp09,sp10,sp11
double precision activation_time double precision :: sp12,activation_time
integer,dimension(:,:),pointer::icon integer,dimension(:,:),pointer::icon
logical rand logical rand
integer leveloct integer leveloct
...@@ -330,7 +330,7 @@ module definitions ...@@ -330,7 +330,7 @@ module definitions
end interface end interface
!=====[ZISODISP================================================================ !=====[ZISODISP]================================================================
! type ziso is used to store the isostatic deflection of the basal boundary ! type ziso is used to store the isostatic deflection of the basal boundary
! due to isostasy ! due to isostasy
......
...@@ -422,6 +422,10 @@ do i=1,params%ns ...@@ -422,6 +422,10 @@ do i=1,params%ns
if (iproc==0) call scanfile (params%infile,'surface_param_09_'//cm(il:3),surface(i)%sp09,ires) if (iproc==0) call scanfile (params%infile,'surface_param_09_'//cm(il:3),surface(i)%sp09,ires)
surface(i)%sp10 = 0.d0 surface(i)%sp10 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_10_'//cm(il:3),surface(i)%sp10,ires) if (iproc==0) call scanfile (params%infile,'surface_param_10_'//cm(il:3),surface(i)%sp10,ires)
surface(i)%sp11 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_11_'//cm(il:3),surface(i)%sp11,ires)
surface(i)%sp12 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_12_'//cm(il:3),surface(i)%sp12,ires)
call mpi_bcast(surface(i)%sp01,1,mpi_double_precision,0,mpi_comm_world,ierr) call mpi_bcast(surface(i)%sp01,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(surface(i)%sp02,1,mpi_double_precision,0,mpi_comm_world,ierr) call mpi_bcast(surface(i)%sp02,1,mpi_double_precision,0,mpi_comm_world,ierr)
...@@ -433,6 +437,8 @@ do i=1,params%ns ...@@ -433,6 +437,8 @@ do i=1,params%ns
call mpi_bcast(surface(i)%sp08,1,mpi_double_precision,0,mpi_comm_world,ierr) call mpi_bcast(surface(i)%sp08,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(surface(i)%sp09,1,mpi_double_precision,0,mpi_comm_world,ierr) call mpi_bcast(surface(i)%sp09,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(surface(i)%sp10,1,mpi_double_precision,0,mpi_comm_world,ierr) call mpi_bcast(surface(i)%sp10,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(surface(i)%sp11,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(surface(i)%sp12,1,mpi_double_precision,0,mpi_comm_world,ierr)
write(threadinfo%Logunit,*) 'surface ',i,'sp01',surface(i)%sp01 write(threadinfo%Logunit,*) 'surface ',i,'sp01',surface(i)%sp01
write(threadinfo%Logunit,*) 'surface ',i,'sp02',surface(i)%sp02 write(threadinfo%Logunit,*) 'surface ',i,'sp02',surface(i)%sp02
...@@ -444,6 +450,8 @@ do i=1,params%ns ...@@ -444,6 +450,8 @@ do i=1,params%ns
write(threadinfo%Logunit,*) 'surface ',i,'sp08',surface(i)%sp08 write(threadinfo%Logunit,*) 'surface ',i,'sp08',surface(i)%sp08
write(threadinfo%Logunit,*) 'surface ',i,'sp09',surface(i)%sp09 write(threadinfo%Logunit,*) 'surface ',i,'sp09',surface(i)%sp09
write(threadinfo%Logunit,*) 'surface ',i,'sp10',surface(i)%sp10 write(threadinfo%Logunit,*) 'surface ',i,'sp10',surface(i)%sp10
write(threadinfo%Logunit,*) 'surface ',i,'sp11',surface(i)%sp11
write(threadinfo%Logunit,*) 'surface ',i,'sp12',surface(i)%sp12
surface(i)%activation_time=-1.d0 surface(i)%activation_time=-1.d0
if (iproc==0) call scanfile (params%infile,'activation_time_'//cm(il:3),surface(i)%activation_time,ires) if (iproc==0) call scanfile (params%infile,'activation_time_'//cm(il:3),surface(i)%activation_time,ires)
......
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