From c8585c360dc5bc2110a1679409a9a18d454a3be9 Mon Sep 17 00:00:00 2001
From: Dave Whipp <dwhipp@dal.ca>
Date: Fri, 13 Jan 2012 18:01:56 +0000
Subject: [PATCH] Renamed minp as plastic_stress_min to be more accurate;
 Modified echoing of input values to follow order given in input file

---
 src/read_input_file.f90 | 685 +++++++++++++++++++++++-----------------
 1 file changed, 394 insertions(+), 291 deletions(-)

diff --git a/src/read_input_file.f90 b/src/read_input_file.f90
index 47d95bdd..4c4e2e00 100644
--- a/src/read_input_file.f90
+++ b/src/read_input_file.f90
@@ -160,6 +160,10 @@ params%nstep=2
 if (iproc==0) call scanfile (params%infile,'nstep',params%nstep,ires)
 call mpi_bcast(params%nstep,1,mpi_integer,0,mpi_comm_world,ierr)
 
+params%nstep_spinup=0
+if (iproc==0) call scanfile (params%infile,'nstep_spinup',params%nstep_spinup,ires)
+call mpi_bcast(params%nstep_spinup,1,mpi_integer,0,mpi_comm_world,ierr)
+
 !=====[material properties]====================================================
 
 material0=0
@@ -184,9 +188,9 @@ params%e2d0=1.d0
 if (iproc==0) call scanfile (params%infile,'e2d0',params%e2d0,ires)
 call mpi_bcast(params%e2d0,1,mpi_double_precision,0,mpi_comm_world,ierr)
 
-params%minp=-1.d0
-if (iproc==0) call scanfile (params%infile,'minp',params%minp,ires)
-call mpi_bcast(params%minp,1,mpi_double_precision,0,mpi_comm_world,ierr)
+params%plastic_stress_min=-1.d0
+if (iproc==0) call scanfile (params%infile,'plastic_stress_min',params%plastic_stress_min,ires)
+call mpi_bcast(params%plastic_stress_min,1,mpi_double_precision,0,mpi_comm_world,ierr)
 
 params%pressure0=0.d0
 if (iproc==0) call scanfile (params%infile,'pressure0',params%pressure0,ires)
@@ -479,16 +483,30 @@ params%noctreemax=100000
 if(iproc==0) call scanfile (params%infile,'noctreemax',params%noctreemax,ires)
 call mpi_bcast(params%noctreemax,1,mpi_integer,0,mpi_comm_world,ierr)
 
-params%nonlinear_iterations=3
-if(iproc==0) call scanfile (params%infile,'nonlinear_iterations',params%nonlinear_iterations,ires)
+params%nonlinear_iterations_main=3
+if(iproc==0) call scanfile (params%infile,'nonlinear_iterations',params%nonlinear_iterations_main,ires)
+call mpi_bcast(params%nonlinear_iterations_main,1,mpi_integer,0,mpi_comm_world,ierr)
+
+params%nonlinear_iterations_spinup=params%nonlinear_iterations_main
+if(iproc==0) call scanfile (params%infile,'nonlinear_iterations_spinup',params%nonlinear_iterations_spinup,ires)
+call mpi_bcast(params%nonlinear_iterations_spinup,1,mpi_integer,0,mpi_comm_world,ierr)
+
+params%nonlinear_iterations=params%nonlinear_iterations_main
 call mpi_bcast(params%nonlinear_iterations,1,mpi_integer,0,mpi_comm_world,ierr)
 
 params%initial_refine_level=6
 if (iproc==0) call scanfile (params%infile,'initial_refine_level',params%initial_refine_level,ires)
 call mpi_bcast(params%initial_refine_level,1,mpi_integer,0,mpi_comm_world,ierr)
 
-params%dt=0.5d0
-if (iproc==0) call scanfile (params%infile,'dt',params%dt,ires)
+params%dt_main=0.5d0
+if (iproc==0) call scanfile (params%infile,'dt',params%dt_main,ires)
+call mpi_bcast(params%dt_main,1,mpi_double_precision,0,mpi_comm_world,ierr)
+
+params%dt_spinup=params%dt_main
+if (iproc==0) call scanfile (params%infile,'dt_spinup',params%dt_spinup,ires)
+call mpi_bcast(params%dt_spinup,1,mpi_double_precision,0,mpi_comm_world,ierr)
+
+params%dt=params%dt_main
 call mpi_bcast(params%dt,1,mpi_double_precision,0,mpi_comm_world,ierr)
 
 params%damp_surface=.true.
@@ -748,8 +766,15 @@ params%npmax=16
 if (iproc==0) call scanfile (params%infile,'npmax',params%npmax,ires)
 call mpi_bcast(params%npmax,1,mpi_integer,0,mpi_comm_world,ierr)
 
-params%griditer=-10
-if (iproc==0) call scanfile (params%infile,'griditer',params%griditer,ires)
+params%griditer_main=-10
+if (iproc==0) call scanfile (params%infile,'griditer',params%griditer_main,ires)
+call mpi_bcast(params%griditer_main,1,mpi_integer,0,mpi_comm_world,ierr)
+
+params%griditer_spinup=params%griditer_main
+if (iproc==0) call scanfile (params%infile,'griditer_spinup',params%griditer_spinup,ires)
+call mpi_bcast(params%griditer_spinup,1,mpi_integer,0,mpi_comm_world,ierr)
+
+params%griditer=params%griditer_main
 call mpi_bcast(params%griditer,1,mpi_integer,0,mpi_comm_world,ierr)
 
 params%tol=1.d-3
@@ -1056,6 +1081,10 @@ end if
 call mpi_bcast(params%nest,1,mpi_logical,0,mpi_comm_world,ierr) 
 
 if (params%nest) then
+   nest%ssoutdir='SSOUT'
+   if (iproc.eq.0) call scanfile (params%infile,'ssoutdir',nest%ssoutdir,ires)
+   call mpi_bcast(nest%ssoutdir,5,mpi_character,0,mpi_comm_world,ierr)
+
    nest%lsoutfile='OUT/time_0001.bin'
    if (iproc.eq.0) call scanfile (params%infile,'lsoutfile',nest%lsoutfile,ires)
    call mpi_bcast(nest%lsoutfile,128,mpi_character,0,mpi_comm_world,ierr)
@@ -1083,6 +1112,18 @@ if (params%nest) then
    nest%zminls=0.d0
    if (iproc==0) call scanfile (params%infile,'zminls',nest%zminls,ires)
    call mpi_bcast(nest%zminls,1,mpi_double_precision,0,mpi_comm_world,ierr)
+
+   nest%sselemx0=1.d0
+   if (iproc==0) call scanfile (params%infile,'sselemx0',nest%sselemx0,ires)
+   call mpi_bcast(nest%sselemx0,1,mpi_double_precision,0,mpi_comm_world,ierr)
+
+   nest%sselemy0=1.d0
+   if (iproc==0) call scanfile (params%infile,'sselemy0',nest%sselemy0,ires)
+   call mpi_bcast(nest%sselemy0,1,mpi_double_precision,0,mpi_comm_world,ierr)
+
+   nest%sselemz0=1.d0
+   if (iproc==0) call scanfile (params%infile,'sselemz0',nest%sselemz0,ires)
+   call mpi_bcast(nest%sselemz0,1,mpi_double_precision,0,mpi_comm_world,ierr)
 endif
 
 ! Defined, but not broadcast or read from input file
@@ -1091,24 +1132,144 @@ params%distance_exponent=1.d0
 
 ! Input values are now written to stdout or log files here
 if (params%debug.gt.0 .and. iproc.eq.0) then
-  write(*,'(a)')         shift//'Input file values: '
+  write(*,'(a)')       shift//'--- ADDITIONAL CONTROLLING PARAMETERS ---'
+  write(*,'(a,l1)')    shift//'compute_qpgram ',params%compute_qpgram
+  write(*,'(a)')       shift//'--- SPINUP PHASE ---'
+  write(*,'(a,i4)')    shift//'nstep_spinup ',params%nstep_spinup
+  write(*,'(a,e11.4)') shift//'dt_spinup ',params%dt_spinup
+  write(*,'(a,i4)')    shift//'griditer_spinup ',params%griditer_spinup
+  write(*,'(a,i4)')    shift//'nonlinear_iterations_spinup ',params%nonlinear_iterations_spinup
+  write(*,'(a)')       shift//'--- TIMESTEPPING ---'
+  write(*,'(a,e11.4)') shift//'dt_main ',params%dt_main
+  write(*,'(a,e11.4)') shift//'dt ',params%dt
   write(*,'(a,i4)')    shift//'nstep ',params%nstep
-  write(*,'(a,i4)')    shift//'material0 ',material0
-  write(*,'(a,l1)')    shift//'bulkvisc ',params%bulkvisc
-  write(*,'(a,l1)')    shift//'init_e2d ',params%init_e2d
-  write(*,'(a,e11.4)') shift//'e2d0 ',params%e2d0
-  write(*,'(a,e11.4)') shift//'minp ',params%minp
-  write(*,'(a,e11.4)') shift//'pressure0 ',params%pressure0
+  write(*,'(a,e11.4)') shift//'courant ',params%courant
+  write(*,'(a,l1)')    shift//'normaladvect ',params%normaladvect
+  write(*,'(a)')       shift//'--- GRID ITERATIONS ---'
+  write(*,'(a,i4)')    shift//'griditer_main ',params%griditer_main
+  write(*,'(a,i4)')    shift//'griditer ',params%griditer
+  write(*,'(a,e11.4)') shift//'octree_refine_ratio ',params%octree_refine_ratio
+  write(*,'(a)')       shift//'--- NONLINEAR ITERATIONS ---'
+  write(*,'(a,i4)')    shift//'nonlinear_iterations_main ',params%nonlinear_iterations_main
+  write(*,'(a,i4)')    shift//'nonlinear_iterations ',params%nonlinear_iterations
+  write(*,'(a,i4)')    shift//'nb_iter_nl_min ',params%nb_iter_nl_min
+  write(*,'(a,e11.4)') shift//'tol ',params%tol
+  write(*,'(a,l1)')    shift//'adaptive_tol ',params%adaptive_tol
+  write(*,'(a)')       shift//'--- OCTREES ---'
+  write(*,'(a,i4)')    shift//'leveluniform_oct ',params%leveluniform_oct
+  write(*,'(a,i4)')    shift//'levelmax_oct ',params%levelmax_oct
+  write(*,'(a,e11.4)') shift//'vex ',params%vex
+  write(*,'(a,l1)')    shift//'ismooth ',params%ismooth
+  write(*,'(a,i12)')   shift//'noctreemax ',params%noctreemax
+  write(*,'(a,e11.4)') shift//'refine_ratio ',params%refine_ratio
+  write(*,'(a,i4)')    shift//'refine_criterion ',params%refine_criterion
+  write(*,'(a,i4)')    shift//'initial_refine_level ',params%initial_refine_level
+  write(*,'(a,l1)')    shift//'renumber_nodes ',params%renumber_nodes
+  write(*,'(a)')       shift//'--- NESTED MODEL PARAMETERS ---'
+  write(*,'(a,l1)')    shift//'nest ',params%nest
+  if (params%nest) then
+    write(*,'(a,a)')     shift//'ssoutdir ',trim(nest%ssoutdir)
+    write(*,'(a,a)')     shift//'lsoutfile ',trim(nest%lsoutfile)
+    write(*,'(a,e11.4)') shift//'sselemx ',nest%sselemx
+    write(*,'(a,e11.4)') shift//'sselemy ',nest%sselemy
+    write(*,'(a,e11.4)') shift//'sselemz ',nest%sselemz
+    write(*,'(a,e11.4)') shift//'xminls ',nest%xminls
+    write(*,'(a,e11.4)') shift//'yminls ',nest%yminls
+    write(*,'(a,e11.4)') shift//'zminls ',nest%zminls
+    write(*,'(a,e11.4)') shift//'sselemx0 ',nest%sselemx0
+    write(*,'(a,e11.4)') shift//'sselemy0 ',nest%sselemy0
+    write(*,'(a,e11.4)') shift//'sselemz0 ',nest%sselemz0
+  endif
+  write(*,'(a)')       shift//'--- BOUNDARY CONDITIONS AND VELOCITY CONSTRAINTS ---'
+  write(*,'(a,l1)')    shift//'invariants_2d ',params%invariants_2d
+  write(*,'(a,l1)')    shift//'damp_surface ',params%damp_surface
+  write(*,'(a,e11.4)') shift//'damp_factor ',params%damp_factor
+  write(*,'(a,a)')     shift//'bctype ',bcdef%bctype
+  select case(trim(bcdef%bctype))
+  case('basic')
+    write(*,'(a,a)') shift//'bcorder ',bcdef%bcorder
+    write(*,'(a,l1)') shift//'fixux0 ',bcdef%fixux0
+    write(*,'(a,l1)') shift//'fixux1 ',bcdef%fixux1
+    write(*,'(a,l1)') shift//'fixvx0 ',bcdef%fixvx0
+    write(*,'(a,l1)') shift//'fixvx1 ',bcdef%fixvx1
+    write(*,'(a,l1)') shift//'fixwx0 ',bcdef%fixwx0
+    write(*,'(a,l1)') shift//'fixwx1 ',bcdef%fixwx1
+    write(*,'(a,l1)') shift//'fixuy0 ',bcdef%fixuy0
+    write(*,'(a,l1)') shift//'fixuy1 ',bcdef%fixuy1
+    write(*,'(a,l1)') shift//'fixvy0 ',bcdef%fixvy0
+    write(*,'(a,l1)') shift//'fixvy1 ',bcdef%fixvy1
+    write(*,'(a,l1)') shift//'fixwy0 ',bcdef%fixwy0
+    write(*,'(a,l1)') shift//'fixwy1 ',bcdef%fixwy1
+    write(*,'(a,l1)') shift//'fixuz0 ',bcdef%fixuz0
+    write(*,'(a,l1)') shift//'fixuz1 ',bcdef%fixuz1
+    write(*,'(a,l1)') shift//'fixvz0 ',bcdef%fixvz0
+    write(*,'(a,l1)') shift//'fixvz1 ',bcdef%fixvz1
+    write(*,'(a,l1)') shift//'fixwz0 ',bcdef%fixwz0
+    write(*,'(a,l1)') shift//'fixwz1 ',bcdef%fixwz1
+    write(*,'(a,e11.4)') shift//'ux0 ',bcdef%ux0
+    write(*,'(a,e11.4)') shift//'ux1 ',bcdef%ux1
+    write(*,'(a,e11.4)') shift//'vx0 ',bcdef%vx0
+    write(*,'(a,e11.4)') shift//'vx1 ',bcdef%vx1
+    write(*,'(a,e11.4)') shift//'wx0 ',bcdef%wx0
+    write(*,'(a,e11.4)') shift//'wx1 ',bcdef%wx1
+    write(*,'(a,e11.4)') shift//'uy0 ',bcdef%uy0
+    write(*,'(a,e11.4)') shift//'uy1 ',bcdef%uy1
+    write(*,'(a,e11.4)') shift//'vy0 ',bcdef%vy0
+    write(*,'(a,e11.4)') shift//'vy1 ',bcdef%vy1
+    write(*,'(a,e11.4)') shift//'wy0 ',bcdef%wy0
+    write(*,'(a,e11.4)') shift//'wy1 ',bcdef%wy1
+    write(*,'(a,e11.4)') shift//'uz0 ',bcdef%uz0
+    write(*,'(a,e11.4)') shift//'uz1 ',bcdef%uz1
+    write(*,'(a,e11.4)') shift//'vz0 ',bcdef%vz0
+    write(*,'(a,e11.4)') shift//'vz1 ',bcdef%vz1
+    write(*,'(a,e11.4)') shift//'wz0 ',bcdef%wz0
+    write(*,'(a,e11.4)') shift//'wz1 ',bcdef%wz1
+  case('segmented_s_line')
+    write(*,'(a)') shift//'Boundary condition parameters'
+    do i=1,12
+      write(*,'(a,i2,a,e11.4)') shift//'bc_parameter ',i,' ',bcdef%bc_parameters(i)
+    enddo
+  end select
+  write(*,'(a,e11.4)')   shift//'utrans ',bcdef%utrans
+  write(*,'(a,e11.4)')   shift//'vtrans ',bcdef%vtrans
+  write(*,'(a)')         shift//'--- PRESSURE ---'
+  write(*,'(a,i4)')      shift//'smoothing_type ',params%smoothing_type
+  write(*,'(a,e11.4)')   shift//'pressure0 ',params%pressure0
+  write(*,'(a,e11.4)')   shift//'plastic_stress_min ',params%plastic_stress_min
+  write(*,'(a)')         shift//'--- CLOUD ---'
+  write(*,'(a,i4)')      shift//'npmin ',params%npmin
+  write(*,'(a,i4)')      shift//'npmax ',params%npmax
+  write(*,'(a)')         shift//'--- FEM + DIVFEM + MUMPS/WSMP ---'
+  write(*,'(a,i4)')      shift//'matrule ',params%matrule
+  write(*,'(a,i4)')      shift//'levelcut ',params%levelcut
+  write(*,'(a,i4)')      shift//'levelapprox ',params%levelapprox
+  write(*,'(a,e11.4)')   shift//'penalty ',params%penalty
+  write(*,'(a,l1)')      shift//'excl_vol ',params%excl_vol
+  write(*,'(a)')         shift//'--- TEMPERATURE ---'
+  write(*,'(a,l1)')      shift//'calculate_temp ',params%calculate_temp
+  write(*,'(a,e11.4)')   shift//'ztemp ',params%ztemp
+  write(*,'(a,e11.4)')   shift//'tempscale ',params%tempscale
+  write(*,'(a)')         shift//'--- ISOSTASY ---'
+  write(*,'(a,l1)')      shift//'isostasy ',params%isostasy
+  write(*,'(a,l1)')      shift//'flexure ',params%flexure
+  write(*,'(a,e11.4)')   shift//'elastic_plate_thickness ',params%elastic_plate_thickness
+  write(*,'(a,e11.4)')   shift//'density_difference ',params%density_difference
+  write(*,'(a,l1)')      shift//'isobc ',params%isobc
+  write(*,'(a)')         shift//'--- MATERIALS ---'
+  write(*,'(a,i4)')      shift//'material0 ',material0
+  write(*,'(a,l1)')      shift//'bulkvisc ',params%bulkvisc
+  write(*,'(a,l1)')      shift//'init_e2d ',params%init_e2d
+  write(*,'(a,e11.4)')   shift//'e2d0 ',params%e2d0
   do i=1,params%nmat
     write(*,'(a,i4,a)')  shift//'--- Properties for material ',i,' ---'
     write(*,'(a,e11.4)') shift//'density ',mat(i)%density
     write(*,'(a,e11.4)') shift//'viscosity ',mat(i)%viscosity
     write(*,'(a,e11.4)') shift//'penalty ',mat(i)%penalty
     write(*,'(a,e11.4)') shift//'expon ',mat(i)%expon
-    write(*,'(a,e11.4)') shift//'activationenergy ',mat(i)%activationenergy
-    write(*,'(a,e11.4)') shift//'expansion ',mat(i)%expansion
     write(*,'(a,e11.4)') shift//'diffusivity ',mat(i)%diffusivity
     write(*,'(a,e11.4)') shift//'heat ',mat(i)%heat
+    write(*,'(a,e11.4)') shift//'activationenergy ',mat(i)%activationenergy
+    write(*,'(a,e11.4)') shift//'expansion ',mat(i)%expansion
     write(*,'(a,a8)')    shift//'plasticity_type ',mat(i)%plasticity_type
     if (trim(mat(i)%plasticity_type).ne.'No') then
       write(*,'(a,i4)') shift//'Plasticity parameters for material ',i
@@ -1126,31 +1287,15 @@ if (params%debug.gt.0 .and. iproc.eq.0) then
   enddo
   write(*,'(a,e11.4)') shift//'viscositymin ',params%viscositymin
   write(*,'(a,e11.4)') shift//'viscositymax ',params%viscositymax
-  write(*,'(a,e11.4)') shift//'vex ',params%vex
-  write(*,'(a,i4)')    shift//'leveluniform_oct ',params%leveluniform_oct
-  write(*,'(a,i4)')    shift//'levelmax_oct ',params%levelmax_oct
-  write(*,'(a,i4)')    shift//'matrule ',params%matrule
-  write(*,'(a,i4)')    shift//'levelcut ',params%levelcut
-  write(*,'(a,i4)')    shift//'levelapprox ',params%levelapprox
-  write(*,'(a,l1)')    shift//'calculate_temp ',params%calculate_temp
-  write(*,'(a,e11.4)') shift//'ztemp ',params%ztemp
-  write(*,'(a,i4)')    shift//'smoothing_type ',params%smoothing_type
-  write(*,'(a,l1)')    shift//'normaladvect ',params%normaladvect
-  write(*,'(a,l1)')    shift//'excl_vol ',params%excl_vol
-  write(*,'(a,l1)')    shift//'adaptive_tol ',params%adaptive_tol
+  write(*,'(a)')       shift//'--- SURFACES ---'
+  write(*,'(a,l1)')    shift//'remove_surf_pts ',params%remove_surf_pts
   do i=1,params%ns
     write(*,'(a,i4,a)')       shift//'--- Properties for surface ',i,' ---'
+    write(*,'(a,i4,a,i4)')    shift//'surface ',i,' levelt ',surface(i)%levelt
     write(*,'(a,i4,a,i4)')    shift//'surface ',i,' itype ',surface(i)%itype
     write(*,'(a,i4,a,i4)')    shift//'surface ',i,' closed ',surface(i)%closed
-    write(*,'(a,i4,a,i4)')    shift//'surface ',i,' material ',surface(i)%material
-    write(*,'(a,i4,a,l1)')    shift//'surface ',i,' rand ',surface(i)%rand
-    write(*,'(a,i4,a,i4)')    shift//'surface ',i,' levelt ',surface(i)%levelt
-    write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' stretch ',surface(i)%stretch
-    write(*,'(a,i4,a,i4)')    shift//'surface ',i,' criterion ',surface(i)%criterion
-    write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' anglemax ',surface(i)%anglemax
-    write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' anglemaxoctree ',surface(i)%anglemaxoctree
-    write(*,'(a,i4,a,i4)')    shift//'surface ',i,' spread_surface_points ',surface(i)%spread_surface_points
     write(*,'(a,i4,a,i4)')    shift//'surface ',i,' type ',surface(i)%surface_type
+    write(*,'(a,i4,a,l1)')    shift//'surface ',i,' rand ',surface(i)%rand
     write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp01 ',surface(i)%sp01
     write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp02 ',surface(i)%sp02
     write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp03 ',surface(i)%sp03
@@ -1163,42 +1308,17 @@ if (params%debug.gt.0 .and. iproc.eq.0) then
     write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp10 ',surface(i)%sp10
     write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp11 ',surface(i)%sp11
     write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp12 ',surface(i)%sp12
+    write(*,'(a,i4,a,i4)')    shift//'surface ',i,' material ',surface(i)%material
     write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' activation_time ',surface(i)%activation_time
     write(*,'(a,i4,a,i4)')    shift//'surface ',i,' leveloct ',surface(i)%leveloct
+    write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' stretch ',surface(i)%stretch
+    write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' anglemax ',surface(i)%anglemax
+    write(*,'(a,i4,a,i4)')    shift//'surface ',i,' criterion ',surface(i)%criterion
+    write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' anglemaxoctree ',surface(i)%anglemaxoctree
+    write(*,'(a,i4,a,i4)')    shift//'surface ',i,' spread_surface_points ',surface(i)%spread_surface_points
   enddo
-  write(*,'(a,l1)') shift//'ref_on_faces ',params%ref_on_faces
-  if (params%ref_on_faces) then
-    do i=1,6
-      write(*,'(a,i1,a)')  shift//'--- Refinement values for face ',i,' ---'
-      write(*,'(a,i4)')    shift//'cube_faces level ',cube_faces(i)%level
-      write(*,'(a,e11.4)') shift//'cube_faces l ',cube_faces(i)%l
-      write(*,'(a,e11.4)') shift//'cube_faces r ',cube_faces(i)%r
-      write(*,'(a,e11.4)') shift//'cube_faces b ',cube_faces(i)%b
-      write(*,'(a,e11.4)') shift//'cube_faces t ',cube_faces(i)%t
-    enddo
-  endif
-  write(*,'(a,i12)') shift//'noctreemax ',params%noctreemax
-  write(*,'(a,i4)') shift//'nonlinear_iterations ',params%nonlinear_iterations
-  write(*,'(a,i4)') shift//'initial_refine_level ',params%initial_refine_level
-  write(*,'(a,e11.4)') shift//'dt ',params%dt
-  write(*,'(a,l1)') shift//'damp_surface ',params%damp_surface
-  write(*,'(a,e11.4)') shift//'damp_factor ',params%damp_factor
-  write(*,'(a,l1)') shift//'remove_surf_pts ',params%remove_surf_pts
-  write(*,'(a,e11.4)') shift//'penalty ',params%penalty
-  write(*,'(a,e11.4)') shift//'tempscale ',params%tempscale
-  write(*,'(a,e11.4)') shift//'refine_ratio ',params%refine_ratio
-  write(*,'(a,i4)') shift//'refine_criterion ',params%refine_criterion
-  write(*,'(a,e11.4)') shift//'octree_refine_ratio ',params%octree_refine_ratio
-  write(*,'(a,e11.4)') shift//'courant ',params%courant
-  write(*,'(a,i4)') shift//'npmin ',params%npmin
-  write(*,'(a,i4)') shift//'npmax ',params%npmax
-  write(*,'(a,i4)') shift//'griditer ',params%griditer
-  write(*,'(a,e11.4)') shift//'tol ',params%tol
   write(*,'(a,i4)') shift//'niter_move ',params%niter_move
-  write(*,'(a,l1)') shift//'ismooth ',params%ismooth
-  write(*,'(a,i4)') shift//'nb_iter_nl_min ',params%nb_iter_nl_min
-  write(*,'(a,l1)') shift//'visualise_matrix ',params%visualise_matrix
-  write(*,'(a,l1)') shift//'renumber_nodes ',params%renumber_nodes
+  write(*,'(a)')    shift//'--- REFINEMENT IN BOXES ---'
   if (params%nboxes.gt.0) then
     do i=1,params%nboxes
       write(*,'(a,i3,a)')  shift//'--- Input values for box ',i,' ---'
@@ -1211,6 +1331,32 @@ if (params%debug.gt.0 .and. iproc.eq.0) then
       write(*,'(a,i4)')    shift//'box level ',boxes(i)%level
     enddo
   endif
+  write(*,'(a)')    shift//'--- REFINEMENT ON CUBE FACES ---'
+  write(*,'(a,l1)') shift//'ref_on_faces ',params%ref_on_faces
+  if (params%ref_on_faces) then
+    do i=1,6
+      write(*,'(a,i1,a)')  shift//'--- Refinement values for face ',i,' ---'
+      write(*,'(a,i4)')    shift//'cube_faces level ',cube_faces(i)%level
+      write(*,'(a,e11.4)') shift//'cube_faces b ',cube_faces(i)%b
+      write(*,'(a,e11.4)') shift//'cube_faces t ',cube_faces(i)%t
+      write(*,'(a,e11.4)') shift//'cube_faces l ',cube_faces(i)%l
+      write(*,'(a,e11.4)') shift//'cube_faces r ',cube_faces(i)%r
+    enddo
+  endif
+  write(*,'(a)')       shift//'--- EROSION ---'
+  write(*,'(a,l1)')    shift//'erosion ',params%erosion
+  write(*,'(a,e11.4)') shift//'zerosion ',params%zerosion
+  write(*,'(a,e11.4)') shift//'length_scale ',params%length_scale
+  write(*,'(a,e11.4)') shift//'velocity_scale ',params%velocity_scale
+  write(*,'(a,e11.4)') shift//'fluvial_erosion ',params%fluvial_erosion
+  write(*,'(a,e11.4)') shift//'diffusion_erosion ',params%diffusion_erosion
+  write(*,'(a,i4)')    shift//'baselevelx0 ',params%baselevelx0
+  write(*,'(a,i4)')    shift//'baselevelx1 ',params%baselevelx1
+  write(*,'(a,i4)')    shift//'baselevely0 ',params%baselevely0
+  write(*,'(a,i4)')    shift//'baselevely1 ',params%baselevely1
+  write(*,'(a)')       shift//'--- MATRIX VISUALISATION ---'
+  write(*,'(a,l1)')    shift//'visualise_matrix ',params%visualise_matrix
+  write(*,'(a)')       shift//'--- CROSS SECTIONS ---'
   if (params%nsections.gt.0) then
     do i=1,params%nsections
       write(*,'(a,i3,a)')  shift//'--- Input values for section ',i,' ---'    
@@ -1221,19 +1367,19 @@ if (params%debug.gt.0 .and. iproc.eq.0) then
       write(*,'(a,l1)')    shift//'section flag e2d ',sections(i)%flag_e2d
       write(*,'(a,l1)')    shift//'section flag e3d ',sections(i)%flag_e3d
       write(*,'(a,l1)')    shift//'section flag strain ',sections(i)%flag_strain
+      write(*,'(a,l1)')    shift//'section flag lode ',sections(i)%flag_lode
       write(*,'(a,l1)')    shift//'section flag crit ',sections(i)%flag_crit
       write(*,'(a,l1)')    shift//'section flag grid ',sections(i)%flag_grid
+      write(*,'(a,l1)')    shift//'section flag mu ',sections(i)%flag_mu
       write(*,'(a,l1)')    shift//'section flag u ',sections(i)%flag_u
       write(*,'(a,l1)')    shift//'section flag v ',sections(i)%flag_v  
       write(*,'(a,l1)')    shift//'section flag w ',sections(i)%flag_w 
+      write(*,'(a,l1)')    shift//'section flag q ',sections(i)%flag_q
       write(*,'(a,l1)')    shift//'section flag uvw ',sections(i)%flag_uvw
+      write(*,'(a,l1)')    shift//'section flag lsf ',sections(i)%flag_lsf
+      write(*,'(a,l1)')    shift//'section flag vfield ',sections(i)%flag_vfield
       write(*,'(a,l1)')    shift//'section flag colour ',sections(i)%flag_colour
-      write(*,'(a,l1)')    shift//'section flag mu ',sections(i)%flag_mu
       write(*,'(a,l1)')    shift//'section flag plastic ',sections(i)%flag_plastic
-      write(*,'(a,l1)')    shift//'section flag q ',sections(i)%flag_q
-      write(*,'(a,l1)')    shift//'section flag lode ',sections(i)%flag_lode
-      write(*,'(a,l1)')    shift//'section flag vfield ',sections(i)%flag_vfield
-      write(*,'(a,l1)')    shift//'section flag lsf ',sections(i)%flag_lsf
       write(*,'(a,i3)')    shift//'section flag temp ',sections(i)%flag_temp
       write(*,'(a,l1)')    shift//'section flag velvect ',sections(i)%flag_velvect
       write(*,'(a,e11.4)') shift//'section scale ',sections(i)%scale
@@ -1241,104 +1387,151 @@ if (params%debug.gt.0 .and. iproc.eq.0) then
       write(*,'(a,i4)')    shift//'section ncolours ',sections(i)%ncolours
     enddo
   endif
-  write(*,'(a,l1)') shift//'erosion ',params%erosion
-  write(*,'(a,e11.4)') shift//'zerosion ',params%zerosion
-  write(*,'(a,e11.4)') shift//'length_scale ',params%length_scale
-  write(*,'(a,e11.4)') shift//'velocity_scale ',params%velocity_scale
-  write(*,'(a,e11.4)') shift//'fluvial_erosion ',params%fluvial_erosion
-  write(*,'(a,e11.4)') shift//'diffusion_erosion ',params%diffusion_erosion
-  write(*,'(a,i4)') shift//'baselevelx0 ',params%baselevelx0
-  write(*,'(a,i4)') shift//'baselevelx1 ',params%baselevelx1
-  write(*,'(a,i4)') shift//'baselevely0 ',params%baselevely0
-  write(*,'(a,i4)') shift//'baselevely1 ',params%baselevely1
-  write(*,'(a,l1)') shift//'compute_qpgram ',params%compute_qpgram
-  write(*,'(a)') shift//'--- Boundary condition parameters ---'
-  write(*,'(a,l1)') shift//'invariants_2d ',params%invariants_2d
-  write(*,'(a,a)') shift//'bctype ',bcdef%bctype
+  !write(*,'(a,e11.4)') shift//'distance_exponent ',params%distance_exponent
+  write(*,'(a)')      shift//'--------------------------------------------------------------------------------'
+  write(*,'(a)')      shift//'--- END OF INPUT FILE ---'
+  write(*,'(a)')      shift//'--------------------------------------------------------------------------------'
+endif
+if (params%debug.gt.1) then
+  write(threadinfo%Logunit,'(a)')         '--- ADDITIONAL CONTROLLING PARAMETERS ---'
+  write(threadinfo%Logunit,'(a32,l1)')    'compute_qpgram ',params%compute_qpgram
+  write(threadinfo%Logunit,'(a)')         '--- SPINUP PHASE ---'
+  write(threadinfo%Logunit,'(a32,i4)')    'nstep_spinup ',params%nstep_spinup
+  write(threadinfo%Logunit,'(a32,e11.4)') 'dt_spinup ',params%dt_spinup
+  write(threadinfo%Logunit,'(a32,i4)')    'griditer_spinup ',params%griditer_spinup
+  write(threadinfo%Logunit,'(a32,i4)')    'nonlinear_iterations_spinup ',params%nonlinear_iterations_spinup
+  write(threadinfo%Logunit,'(a)')         '--- TIMESTEPPING ---'
+  write(threadinfo%Logunit,'(a32,e11.4)') 'dt_main ',params%dt_main
+  write(threadinfo%Logunit,'(a32,e11.4)') 'dt ',params%dt
+  write(threadinfo%Logunit,'(a32,i4)')    'nstep ',params%nstep
+  write(threadinfo%Logunit,'(a32,e11.4)') 'courant ',params%courant
+  write(threadinfo%Logunit,'(a32,l1)')    'normaladvect ',params%normaladvect
+  write(threadinfo%Logunit,'(a)')         '--- GRID ITERATIONS ---'
+  write(threadinfo%Logunit,'(a32,i4)')    'griditer_main ',params%griditer_main
+  write(threadinfo%Logunit,'(a32,i4)')    'griditer ',params%griditer
+  write(threadinfo%Logunit,'(a32,e11.4)') 'octree_refine_ratio ',params%octree_refine_ratio
+  write(threadinfo%Logunit,'(a)')         '--- NONLINEAR ITERATIONS ---'
+  write(threadinfo%Logunit,'(a32,i4)')    'nonlinear_iterations_main ',params%nonlinear_iterations_main
+  write(threadinfo%Logunit,'(a32,i4)')    'nonlinear_iterations ',params%nonlinear_iterations
+  write(threadinfo%Logunit,'(a32,i4)')    'nb_iter_nl_min ',params%nb_iter_nl_min
+  write(threadinfo%Logunit,'(a32,e11.4)') 'tol ',params%tol
+  write(threadinfo%Logunit,'(a32,l1)')    'adaptive_tol ',params%adaptive_tol
+  write(threadinfo%Logunit,'(a)')         '--- OCTREES ---'
+  write(threadinfo%Logunit,'(a32,i4)')    'leveluniform_oct ',params%leveluniform_oct
+  write(threadinfo%Logunit,'(a32,i4)')    'levelmax_oct ',params%levelmax_oct
+  write(threadinfo%Logunit,'(a32,e11.4)') 'vex ',params%vex
+  write(threadinfo%Logunit,'(a32,l1)')    'ismooth ',params%ismooth
+  write(threadinfo%Logunit,'(a32,i12)')   'noctreemax ',params%noctreemax
+  write(threadinfo%Logunit,'(a32,e11.4)') 'refine_ratio ',params%refine_ratio
+  write(threadinfo%Logunit,'(a32,i4)')    'refine_criterion ',params%refine_criterion
+  write(threadinfo%Logunit,'(a32,i4)')    'initial_refine_level ',params%initial_refine_level
+  write(threadinfo%Logunit,'(a32,l1)')    'renumber_nodes ',params%renumber_nodes
+  write(threadinfo%Logunit,'(a)')         '--- NESTED MODEL PARAMETERS ---'
+  write(threadinfo%Logunit,'(a32,l1)')    'nest ',params%nest
+  if (params%nest) then
+    write(threadinfo%Logunit,'(a32,a)') 'ssoutdir ',trim(nest%ssoutdir)
+    write(threadinfo%Logunit,'(a32,a)') 'lsoutfile ',trim(nest%lsoutfile)
+    write(threadinfo%Logunit,'(a32,e11.4)') 'sselemx ',nest%sselemx
+    write(threadinfo%Logunit,'(a32,e11.4)') 'sselemy ',nest%sselemy
+    write(threadinfo%Logunit,'(a32,e11.4)') 'sselemz ',nest%sselemz
+    write(threadinfo%Logunit,'(a32,e11.4)') 'xminls ',nest%xminls
+    write(threadinfo%Logunit,'(a32,e11.4)') 'yminls ',nest%yminls
+    write(threadinfo%Logunit,'(a32,e11.4)') 'zminls ',nest%zminls
+    write(threadinfo%Logunit,'(a32,e11.4)') 'sselemx0 ',nest%sselemx0
+    write(threadinfo%Logunit,'(a32,e11.4)') 'sselemy0 ',nest%sselemy0
+    write(threadinfo%Logunit,'(a32,e11.4)') 'sselemz0 ',nest%sselemz0
+  endif
+  write(threadinfo%Logunit,'(a)')         '--- BOUNDARY CONDITIONS AND VELOCITY CONSTRAINTS ---'
+  write(threadinfo%Logunit,'(a32,l1)')    'invariants_2d ',params%invariants_2d
+  write(threadinfo%Logunit,'(a32,l1)')    'damp_surface ',params%damp_surface
+  write(threadinfo%Logunit,'(a32,e11.4)') 'damp_factor ',params%damp_factor
+  write(threadinfo%Logunit,'(a)') '--- Boundary condition parameters ---'
+  write(threadinfo%Logunit,'(a32,a)') 'bctype ',bcdef%bctype
   select case(trim(bcdef%bctype))
   case('basic')
-    write(*,'(a,a)') shift//'bcorder ',bcdef%bcorder
-    write(*,'(a,l1)') shift//'fixux0 ',bcdef%fixux0
-    write(*,'(a,l1)') shift//'fixux1 ',bcdef%fixux1
-    write(*,'(a,l1)') shift//'fixvx0 ',bcdef%fixvx0
-    write(*,'(a,l1)') shift//'fixvx1 ',bcdef%fixvx1
-    write(*,'(a,l1)') shift//'fixwx0 ',bcdef%fixwx0
-    write(*,'(a,l1)') shift//'fixwx1 ',bcdef%fixwx1
-    write(*,'(a,l1)') shift//'fixuy0 ',bcdef%fixuy0
-    write(*,'(a,l1)') shift//'fixuy1 ',bcdef%fixuy1
-    write(*,'(a,l1)') shift//'fixvy0 ',bcdef%fixvy0
-    write(*,'(a,l1)') shift//'fixvy1 ',bcdef%fixvy1
-    write(*,'(a,l1)') shift//'fixwy0 ',bcdef%fixwy0
-    write(*,'(a,l1)') shift//'fixwy1 ',bcdef%fixwy1
-    write(*,'(a,l1)') shift//'fixuz0 ',bcdef%fixuz0
-    write(*,'(a,l1)') shift//'fixuz1 ',bcdef%fixuz1
-    write(*,'(a,l1)') shift//'fixvz0 ',bcdef%fixvz0
-    write(*,'(a,l1)') shift//'fixvz1 ',bcdef%fixvz1
-    write(*,'(a,l1)') shift//'fixwz0 ',bcdef%fixwz0
-    write(*,'(a,l1)') shift//'fixwz1 ',bcdef%fixwz1
-    write(*,'(a,e11.4)') shift//'ux0 ',bcdef%ux0
-    write(*,'(a,e11.4)') shift//'ux1 ',bcdef%ux1
-    write(*,'(a,e11.4)') shift//'vx0 ',bcdef%vx0
-    write(*,'(a,e11.4)') shift//'vx1 ',bcdef%vx1
-    write(*,'(a,e11.4)') shift//'wx0 ',bcdef%wx0
-    write(*,'(a,e11.4)') shift//'wx1 ',bcdef%wx1
-    write(*,'(a,e11.4)') shift//'uy0 ',bcdef%uy0
-    write(*,'(a,e11.4)') shift//'uy1 ',bcdef%uy1
-    write(*,'(a,e11.4)') shift//'vy0 ',bcdef%vy0
-    write(*,'(a,e11.4)') shift//'vy1 ',bcdef%vy1
-    write(*,'(a,e11.4)') shift//'wy0 ',bcdef%wy0
-    write(*,'(a,e11.4)') shift//'wy1 ',bcdef%wy1
-    write(*,'(a,e11.4)') shift//'uz0 ',bcdef%uz0
-    write(*,'(a,e11.4)') shift//'uz1 ',bcdef%uz1
-    write(*,'(a,e11.4)') shift//'vz0 ',bcdef%vz0
-    write(*,'(a,e11.4)') shift//'vz1 ',bcdef%vz1
-    write(*,'(a,e11.4)') shift//'wz0 ',bcdef%wz0
-    write(*,'(a,e11.4)') shift//'wz1 ',bcdef%wz1
+    write(threadinfo%Logunit,'(a32,a)') 'bcorder ',bcdef%bcorder
+    write(threadinfo%Logunit,'(a32,l1)') 'fixux0 ',bcdef%fixux0
+    write(threadinfo%Logunit,'(a32,l1)') 'fixux1 ',bcdef%fixux1
+    write(threadinfo%Logunit,'(a32,l1)') 'fixvx0 ',bcdef%fixvx0
+    write(threadinfo%Logunit,'(a32,l1)') 'fixvx1 ',bcdef%fixvx1
+    write(threadinfo%Logunit,'(a32,l1)') 'fixwx0 ',bcdef%fixwx0
+    write(threadinfo%Logunit,'(a32,l1)') 'fixwx1 ',bcdef%fixwx1
+    write(threadinfo%Logunit,'(a32,l1)') 'fixuy0 ',bcdef%fixuy0
+    write(threadinfo%Logunit,'(a32,l1)') 'fixuy1 ',bcdef%fixuy1
+    write(threadinfo%Logunit,'(a32,l1)') 'fixvy0 ',bcdef%fixvy0
+    write(threadinfo%Logunit,'(a32,l1)') 'fixvy1 ',bcdef%fixvy1
+    write(threadinfo%Logunit,'(a32,l1)') 'fixwy0 ',bcdef%fixwy0
+    write(threadinfo%Logunit,'(a32,l1)') 'fixwy1 ',bcdef%fixwy1
+    write(threadinfo%Logunit,'(a32,l1)') 'fixuz0 ',bcdef%fixuz0
+    write(threadinfo%Logunit,'(a32,l1)') 'fixuz1 ',bcdef%fixuz1
+    write(threadinfo%Logunit,'(a32,l1)') 'fixvz0 ',bcdef%fixvz0
+    write(threadinfo%Logunit,'(a32,l1)') 'fixvz1 ',bcdef%fixvz1
+    write(threadinfo%Logunit,'(a32,l1)') 'fixwz0 ',bcdef%fixwz0
+    write(threadinfo%Logunit,'(a32,l1)') 'fixwz1 ',bcdef%fixwz1
+    write(threadinfo%Logunit,'(a32,e11.4)') 'ux0 ',bcdef%ux0
+    write(threadinfo%Logunit,'(a32,e11.4)') 'ux1 ',bcdef%ux1
+    write(threadinfo%Logunit,'(a32,e11.4)') 'vx0 ',bcdef%vx0
+    write(threadinfo%Logunit,'(a32,e11.4)') 'vx1 ',bcdef%vx1
+    write(threadinfo%Logunit,'(a32,e11.4)') 'wx0 ',bcdef%wx0
+    write(threadinfo%Logunit,'(a32,e11.4)') 'wx1 ',bcdef%wx1
+    write(threadinfo%Logunit,'(a32,e11.4)') 'uy0 ',bcdef%uy0
+    write(threadinfo%Logunit,'(a32,e11.4)') 'uy1 ',bcdef%uy1
+    write(threadinfo%Logunit,'(a32,e11.4)') 'vy0 ',bcdef%vy0
+    write(threadinfo%Logunit,'(a32,e11.4)') 'vy1 ',bcdef%vy1
+    write(threadinfo%Logunit,'(a32,e11.4)') 'wy0 ',bcdef%wy0
+    write(threadinfo%Logunit,'(a32,e11.4)') 'wy1 ',bcdef%wy1
+    write(threadinfo%Logunit,'(a32,e11.4)') 'uz0 ',bcdef%uz0
+    write(threadinfo%Logunit,'(a32,e11.4)') 'uz1 ',bcdef%uz1
+    write(threadinfo%Logunit,'(a32,e11.4)') 'vz0 ',bcdef%vz0
+    write(threadinfo%Logunit,'(a32,e11.4)') 'vz1 ',bcdef%vz1
+    write(threadinfo%Logunit,'(a32,e11.4)') 'wz0 ',bcdef%wz0
+    write(threadinfo%Logunit,'(a32,e11.4)') 'wz1 ',bcdef%wz1
   case('segmented_s_line')
-    write(*,'(a)') shift//'Boundary condition parameters'
+    write(threadinfo%Logunit,'(a)') 'Boundary condition parameters'
     do i=1,12
-      write(*,'(a,i2,a,e11.4)') shift//'bc_parameter ',i,' ',bcdef%bc_parameters(i)
+      write(threadinfo%Logunit,'(a32,i2,a,e11.4)') 'bc_parameter ',i,' ',bcdef%bc_parameters(i)
     enddo
   end select
-  write(*,'(a,e11.4)') shift//'utrans ',bcdef%utrans
-  write(*,'(a,e11.4)') shift//'vtrans ',bcdef%vtrans
-  write(*,'(a,l1)') shift//'isostasy ',params%isostasy
-  write(*,'(a,l1)') shift//'flexure ',params%flexure
-  write(*,'(a,l1)') shift//'isobc ',params%isobc 
-  write(*,'(a,e11.4)') shift//'elastic_plate_thickness ',params%elastic_plate_thickness
-  write(*,'(a,e11.4)') shift//'density_difference ',params%density_difference
-  write(*,'(a,l1)') shift//'nest ',params%nest
-  if (params%nest) then
-    write(*,'(a)')  shift//'--- Nest parameters ---'
-    write(*,'(a,a)')  shift//'lsoutfile ',trim(nest%lsoutfile)
-    write(*,'(a,e11.4)') shift//'sselemx ',nest%sselemx
-    write(*,'(a,e11.4)') shift//'sselemy ',nest%sselemy
-    write(*,'(a,e11.4)') shift//'sselemz ',nest%sselemz
-    write(*,'(a,e11.4)') shift//'xminls ',nest%xminls
-    write(*,'(a,e11.4)') shift//'yminls ',nest%yminls
-    write(*,'(a,e11.4)') shift//'zminls ',nest%zminls
-  endif
-  write(*,'(a,e11.4)') shift//'distance_exponent ',params%distance_exponent
-endif
-if (params%debug.gt.1) then
-  write(threadinfo%Logunit,'(a)')         'Input file values: '
-  write(threadinfo%Logunit,'(a32,i4)')    'nstep ',params%nstep
+  write(threadinfo%Logunit,'(a32,e11.4)') 'utrans ',bcdef%utrans
+  write(threadinfo%Logunit,'(a32,e11.4)') 'vtrans ',bcdef%vtrans
+  write(threadinfo%Logunit,'(a)')         '--- PRESSURE ---'
+  write(threadinfo%Logunit,'(a32,i4)')    'smoothing_type ',params%smoothing_type
+  write(threadinfo%Logunit,'(a32,e11.4)') 'pressure0 ',params%pressure0
+  write(threadinfo%Logunit,'(a32,e11.4)') 'plastic_stress_min ',params%plastic_stress_min
+  write(threadinfo%Logunit,'(a)')         '--- CLOUD ---'
+  write(threadinfo%Logunit,'(a32,i4)')    'npmin ',params%npmin
+  write(threadinfo%Logunit,'(a32,i4)')    'npmax ',params%npmax
+  write(threadinfo%Logunit,'(a)')         '--- FEM + DIVFEM + MUMPS/WSMP ---'
+  write(threadinfo%Logunit,'(a32,i4)')    'matrule ',params%matrule
+  write(threadinfo%Logunit,'(a32,i4)')    'levelcut ',params%levelcut
+  write(threadinfo%Logunit,'(a32,i4)')    'levelapprox ',params%levelapprox
+  write(threadinfo%Logunit,'(a32,e11.4)') 'penalty ',params%penalty
+  write(threadinfo%Logunit,'(a32,l1)')    'excl_vol ',params%excl_vol
+  write(threadinfo%Logunit,'(a)')         '--- TEMPERATURE ---'
+  write(threadinfo%Logunit,'(a32,l1)')    'calculate_temp ',params%calculate_temp
+  write(threadinfo%Logunit,'(a32,e11.4)') 'ztemp ',params%ztemp
+  write(threadinfo%Logunit,'(a32,e11.4)') 'tempscale ',params%tempscale
+  write(threadinfo%Logunit,'(a)')         '--- ISOSTASY ---'
+  write(threadinfo%Logunit,'(a32,l1)')    'isostasy ',params%isostasy
+  write(threadinfo%Logunit,'(a32,l1)')    'flexure ',params%flexure
+  write(threadinfo%Logunit,'(a32,e11.4)') 'elastic_plate_thickness ',params%elastic_plate_thickness
+  write(threadinfo%Logunit,'(a32,e11.4)') 'density_difference ',params%density_difference
+  write(threadinfo%Logunit,'(a32,l1)')    'isobc ',params%isobc
+  write(threadinfo%Logunit,'(a)')         '--- MATERIALS ---'
   write(threadinfo%Logunit,'(a32,i4)')    'material0 ',material0
   write(threadinfo%Logunit,'(a32,l1)')    'bulkvisc ',params%bulkvisc
   write(threadinfo%Logunit,'(a32,l1)')    'init_e2d ',params%init_e2d
   write(threadinfo%Logunit,'(a32,e11.4)') 'e2d0 ',params%e2d0
-  write(threadinfo%Logunit,'(a32,e11.4)') 'minp ',params%minp
-  write(threadinfo%Logunit,'(a32,e11.4)') 'pressure0 ',params%pressure0
   do i=1,params%nmat
     write(threadinfo%Logunit,'(a,i4,a)')    '--- Properties for material ',i,' ---'
     write(threadinfo%Logunit,'(a32,e11.4)') 'density ',mat(i)%density
     write(threadinfo%Logunit,'(a32,e11.4)') 'viscosity ',mat(i)%viscosity
     write(threadinfo%Logunit,'(a32,e11.4)') 'penalty ',mat(i)%penalty
     write(threadinfo%Logunit,'(a32,e11.4)') 'expon ',mat(i)%expon
-    write(threadinfo%Logunit,'(a32,e11.4)') 'activationenergy ',mat(i)%activationenergy
-    write(threadinfo%Logunit,'(a32,e11.4)') 'expansion ',mat(i)%expansion
     write(threadinfo%Logunit,'(a32,e11.4)') 'diffusivity ',mat(i)%diffusivity
     write(threadinfo%Logunit,'(a32,e11.4)') 'heat ',mat(i)%heat
+    write(threadinfo%Logunit,'(a32,e11.4)') 'activationenergy ',mat(i)%activationenergy
+    write(threadinfo%Logunit,'(a32,e11.4)') 'expansion ',mat(i)%expansion
     write(threadinfo%Logunit,'(a32,a8)')    'plasticity_type ',mat(i)%plasticity_type
     if (trim(mat(i)%plasticity_type).ne.'No') then
       write(threadinfo%Logunit,'(a,i4)') 'Plasticity parameters for material ',i
@@ -1356,31 +1549,15 @@ if (params%debug.gt.1) then
   enddo
   write(threadinfo%Logunit,'(a32,e11.4)') 'viscositymin ',params%viscositymin
   write(threadinfo%Logunit,'(a32,e11.4)') 'viscositymax ',params%viscositymax
-  write(threadinfo%Logunit,'(a32,e11.4)') 'vex ',params%vex
-  write(threadinfo%Logunit,'(a32,i4)')    'leveluniform_oct ',params%leveluniform_oct
-  write(threadinfo%Logunit,'(a32,i4)')    'levelmax_oct ',params%levelmax_oct
-  write(threadinfo%Logunit,'(a32,i4)')    'matrule ',params%matrule
-  write(threadinfo%Logunit,'(a32,i4)')    'levelcut ',params%levelcut
-  write(threadinfo%Logunit,'(a32,i4)')    'levelapprox ',params%levelapprox
-  write(threadinfo%Logunit,'(a32,l1)')    'calculate_temp ',params%calculate_temp
-  write(threadinfo%Logunit,'(a32,e11.4)') 'ztemp ',params%ztemp
-  write(threadinfo%Logunit,'(a32,i4)')    'smoothing_type ',params%smoothing_type
-  write(threadinfo%Logunit,'(a32,l1)')    'normaladvect ',params%normaladvect
-  write(threadinfo%Logunit,'(a32,l1)')    'excl_vol ',params%excl_vol
-  write(threadinfo%Logunit,'(a32,l1)')    'adaptive_tol ',params%adaptive_tol
+  write(threadinfo%Logunit,'(a)')         '--- SURFACES ---'
+  write(threadinfo%Logunit,'(a32,l1)') 'remove_surf_pts ',params%remove_surf_pts
   do i=1,params%ns
     write(threadinfo%Logunit,'(a,i4,a)')         '--- Properties for surface ',i,' ---'
+    write(threadinfo%Logunit,'(a32,i4,a,i4)')    'surface ',i,' levelt ',surface(i)%levelt
     write(threadinfo%Logunit,'(a32,i4,a,i4)')    'surface ',i,' itype ',surface(i)%itype
     write(threadinfo%Logunit,'(a32,i4,a,i4)')    'surface ',i,' closed ',surface(i)%closed
-    write(threadinfo%Logunit,'(a32,i4,a,i4)')    'surface ',i,' material ',surface(i)%material
-    write(threadinfo%Logunit,'(a32,i4,a,l1)')    'surface ',i,' rand ',surface(i)%rand
-    write(threadinfo%Logunit,'(a32,i4,a,i4)')    'surface ',i,' levelt ',surface(i)%levelt
-    write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' stretch ',surface(i)%stretch
-    write(threadinfo%Logunit,'(a32,i4,a,i4)')    'surface ',i,' criterion ',surface(i)%criterion
-    write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' anglemax ',surface(i)%anglemax
-    write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' anglemaxoctree ',surface(i)%anglemaxoctree
-    write(threadinfo%Logunit,'(a32,i4,a,i4)')    'surface ',i,' spread_surface_points ',surface(i)%spread_surface_points
     write(threadinfo%Logunit,'(a32,i4,a,i4)')    'surface ',i,' type ',surface(i)%surface_type
+    write(threadinfo%Logunit,'(a32,i4,a,l1)')    'surface ',i,' rand ',surface(i)%rand
     write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp01 ',surface(i)%sp01
     write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp02 ',surface(i)%sp02
     write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp03 ',surface(i)%sp03
@@ -1393,43 +1570,17 @@ if (params%debug.gt.1) then
     write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp10 ',surface(i)%sp10
     write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp11 ',surface(i)%sp11
     write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp12 ',surface(i)%sp12
+    write(threadinfo%Logunit,'(a32,i4,a,i4)')    'surface ',i,' material ',surface(i)%material
     write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' activation_time ',surface(i)%activation_time
     write(threadinfo%Logunit,'(a32,i4,a,i4)')    'surface ',i,' leveloct ',surface(i)%leveloct
+    write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' stretch ',surface(i)%stretch
+    write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' anglemax ',surface(i)%anglemax
+    write(threadinfo%Logunit,'(a32,i4,a,i4)')    'surface ',i,' criterion ',surface(i)%criterion
+    write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' anglemaxoctree ',surface(i)%anglemaxoctree
+    write(threadinfo%Logunit,'(a32,i4,a,i4)')    'surface ',i,' spread_surface_points ',surface(i)%spread_surface_points
   enddo
-  write(threadinfo%Logunit,'(a32,l1)') 'ref_on_faces ',params%ref_on_faces
-  if (params%ref_on_faces) then
-    do i=1,6
-      write(threadinfo%Logunit,'(a,i1,a)')    '--- Refinement values for face ',i,' ---'
-      write(threadinfo%Logunit,'(a32,i4)')    'cube_faces level ',cube_faces(i)%level
-      write(threadinfo%Logunit,'(a32,e11.4)') 'cube_faces l ',cube_faces(i)%l
-      write(threadinfo%Logunit,'(a32,e11.4)') 'cube_faces r ',cube_faces(i)%r
-      write(threadinfo%Logunit,'(a32,e11.4)') 'cube_faces b ',cube_faces(i)%b
-      write(threadinfo%Logunit,'(a32,e11.4)') 'cube_faces t ',cube_faces(i)%t
-    enddo
-  endif
-  write(threadinfo%Logunit,'(a32,i12)') 'noctreemax ',params%noctreemax
-  write(threadinfo%Logunit,'(a32,i4)') 'nonlinear_iterations ',params%nonlinear_iterations
-  write(threadinfo%Logunit,'(a32,i4)') 'initial_refine_level ',params%initial_refine_level
-  write(threadinfo%Logunit,'(a32,e11.4)') 'dt ',params%dt
-  write(threadinfo%Logunit,'(a32,l1)') 'damp_surface ',params%damp_surface
-  write(threadinfo%Logunit,'(a32,e11.4)') 'damp_factor ',params%damp_factor
-  write(threadinfo%Logunit,'(a32,l1)') 'remove_surf_pts ',params%remove_surf_pts
-  write(threadinfo%Logunit,'(a32,e11.4)') 'penalty ',params%penalty
-  write(threadinfo%Logunit,'(a32,e11.4)') 'tempscale ',params%tempscale
-  write(threadinfo%Logunit,'(a32,e11.4)') 'refine_ratio ',params%refine_ratio
-  write(threadinfo%Logunit,'(a32,i4)') 'refine_criterion ',params%refine_criterion
-  write(threadinfo%Logunit,'(a32,e11.4)') 'octree_refine_ratio ',params%octree_refine_ratio
-  write(threadinfo%Logunit,'(a32,e11.4)') 'courant ',params%courant
-  write(threadinfo%Logunit,'(a32,l1)') 'invariants_2d ',params%invariants_2d
-  write(threadinfo%Logunit,'(a32,i4)') 'npmin ',params%npmin
-  write(threadinfo%Logunit,'(a32,i4)') 'npmax ',params%npmax
-  write(threadinfo%Logunit,'(a32,i4)') 'griditer ',params%griditer
-  write(threadinfo%Logunit,'(a32,e11.4)') 'tol ',params%tol
   write(threadinfo%Logunit,'(a32,i4)') 'niter_move ',params%niter_move
-  write(threadinfo%Logunit,'(a32,l1)') 'ismooth ',params%ismooth
-  write(threadinfo%Logunit,'(a32,i4)') 'nb_iter_nl_min ',params%nb_iter_nl_min
-  write(threadinfo%Logunit,'(a32,l1)') 'visualise_matrix ',params%visualise_matrix
-  write(threadinfo%Logunit,'(a32,l1)') 'renumber_nodes ',params%renumber_nodes
+  write(threadinfo%Logunit,'(a)')      '--- REFINEMENT IN BOXES ---'
   if (params%nboxes.gt.0) then
     do i=1,params%nboxes
       write(threadinfo%Logunit,'(a,i3,a)')    '--- Input values for box ',i,' ---'
@@ -1442,6 +1593,32 @@ if (params%debug.gt.1) then
       write(threadinfo%Logunit,'(a32,i4)')    'box level ',boxes(i)%level
     enddo
   endif
+  write(threadinfo%Logunit,'(a)') '--- REFINEMENT ON CUBE FACES ---'
+  write(threadinfo%Logunit,'(a32,l1)') 'ref_on_faces ',params%ref_on_faces
+  if (params%ref_on_faces) then
+    do i=1,6
+      write(threadinfo%Logunit,'(a,i1,a)')    '--- Refinement values for face ',i,' ---'
+      write(threadinfo%Logunit,'(a32,i4)')    'cube_faces level ',cube_faces(i)%level
+      write(threadinfo%Logunit,'(a32,e11.4)') 'cube_faces b ',cube_faces(i)%b
+      write(threadinfo%Logunit,'(a32,e11.4)') 'cube_faces t ',cube_faces(i)%t
+      write(threadinfo%Logunit,'(a32,e11.4)') 'cube_faces l ',cube_faces(i)%l
+      write(threadinfo%Logunit,'(a32,e11.4)') 'cube_faces r ',cube_faces(i)%r
+    enddo
+  endif
+  write(threadinfo%Logunit,'(a)') '--- EROSION ---'
+  write(threadinfo%Logunit,'(a32,l1)')    'erosion ',params%erosion
+  write(threadinfo%Logunit,'(a32,e11.4)') 'zerosion ',params%zerosion
+  write(threadinfo%Logunit,'(a32,e11.4)') 'length_scale ',params%length_scale
+  write(threadinfo%Logunit,'(a32,e11.4)') 'velocity_scale ',params%velocity_scale
+  write(threadinfo%Logunit,'(a32,e11.4)') 'fluvial_erosion ',params%fluvial_erosion
+  write(threadinfo%Logunit,'(a32,e11.4)') 'diffusion_erosion ',params%diffusion_erosion
+  write(threadinfo%Logunit,'(a32,i4)')    'baselevelx0 ',params%baselevelx0
+  write(threadinfo%Logunit,'(a32,i4)')    'baselevelx1 ',params%baselevelx1
+  write(threadinfo%Logunit,'(a32,i4)')    'baselevely0 ',params%baselevely0
+  write(threadinfo%Logunit,'(a32,i4)')    'baselevely1 ',params%baselevely1
+  write(threadinfo%Logunit,'(a)') '--- MATRIX VISUALISATION ---'
+  write(threadinfo%Logunit,'(a32,l1)') 'visualise_matrix ',params%visualise_matrix
+  write(threadinfo%Logunit,'(a)') '--- CROSS SECTIONS ---'
   if (params%nsections.gt.0) then
     do i=1,params%nsections
       write(threadinfo%Logunit,'(a,i3,a)')    '--- Input values for section ',i,' ---'    
@@ -1452,19 +1629,19 @@ if (params%debug.gt.1) then
       write(threadinfo%Logunit,'(a32,l1)')    'section flag e2d ',sections(i)%flag_e2d
       write(threadinfo%Logunit,'(a32,l1)')    'section flag e3d ',sections(i)%flag_e3d
       write(threadinfo%Logunit,'(a32,l1)')    'section flag strain ',sections(i)%flag_strain
+      write(threadinfo%Logunit,'(a32,l1)')    'section flag lode ',sections(i)%flag_lode
       write(threadinfo%Logunit,'(a32,l1)')    'section flag crit ',sections(i)%flag_crit
       write(threadinfo%Logunit,'(a32,l1)')    'section flag grid ',sections(i)%flag_grid
+      write(threadinfo%Logunit,'(a32,l1)')    'section flag mu ',sections(i)%flag_mu
       write(threadinfo%Logunit,'(a32,l1)')    'section flag u ',sections(i)%flag_u
       write(threadinfo%Logunit,'(a32,l1)')    'section flag v ',sections(i)%flag_v  
       write(threadinfo%Logunit,'(a32,l1)')    'section flag w ',sections(i)%flag_w 
+      write(threadinfo%Logunit,'(a32,l1)')    'section flag q ',sections(i)%flag_q
       write(threadinfo%Logunit,'(a32,l1)')    'section flag uvw ',sections(i)%flag_uvw
+      write(threadinfo%Logunit,'(a32,l1)')    'section flag lsf ',sections(i)%flag_lsf
+      write(threadinfo%Logunit,'(a32,l1)')    'section flag vfield ',sections(i)%flag_vfield
       write(threadinfo%Logunit,'(a32,l1)')    'section flag colour ',sections(i)%flag_colour
-      write(threadinfo%Logunit,'(a32,l1)')    'section flag mu ',sections(i)%flag_mu
       write(threadinfo%Logunit,'(a32,l1)')    'section flag plastic ',sections(i)%flag_plastic
-      write(threadinfo%Logunit,'(a32,l1)')    'section flag q ',sections(i)%flag_q
-      write(threadinfo%Logunit,'(a32,l1)')    'section flag lode ',sections(i)%flag_lode
-      write(threadinfo%Logunit,'(a32,l1)')    'section flag vfield ',sections(i)%flag_vfield
-      write(threadinfo%Logunit,'(a32,l1)')    'section flag lsf ',sections(i)%flag_lsf
       write(threadinfo%Logunit,'(a32,i3)')    'section flag temp ',sections(i)%flag_temp
       write(threadinfo%Logunit,'(a32,l1)')    'section flag velvect ',sections(i)%flag_velvect
       write(threadinfo%Logunit,'(a32,e11.4)') 'section scale ',sections(i)%scale
@@ -1472,84 +1649,10 @@ if (params%debug.gt.1) then
       write(threadinfo%Logunit,'(a32,i4)')    'section ncolours ',sections(i)%ncolours
     enddo
   endif
-  write(threadinfo%Logunit,'(a32,l1)') 'erosion ',params%erosion
-  write(threadinfo%Logunit,'(a32,e11.4)') 'zerosion ',params%zerosion
-  write(threadinfo%Logunit,'(a32,e11.4)') 'length_scale ',params%length_scale
-  write(threadinfo%Logunit,'(a32,e11.4)') 'velocity_scale ',params%velocity_scale
-  write(threadinfo%Logunit,'(a32,e11.4)') 'fluvial_erosion ',params%fluvial_erosion
-  write(threadinfo%Logunit,'(a32,e11.4)') 'diffusion_erosion ',params%diffusion_erosion
-  write(threadinfo%Logunit,'(a32,i4)') 'baselevelx0 ',params%baselevelx0
-  write(threadinfo%Logunit,'(a32,i4)') 'baselevelx1 ',params%baselevelx1
-  write(threadinfo%Logunit,'(a32,i4)') 'baselevely0 ',params%baselevely0
-  write(threadinfo%Logunit,'(a32,i4)') 'baselevely1 ',params%baselevely1
-  write(threadinfo%Logunit,'(a32,l1)') 'compute_qpgram ',params%compute_qpgram
-  write(threadinfo%Logunit,'(a)') '--- Boundary condition parameters ---'
-  write(threadinfo%Logunit,'(a32,l1)') 'invariants_2d ',params%invariants_2d
-  write(threadinfo%Logunit,'(a32,a)') 'bctype ',bcdef%bctype
-  select case(trim(bcdef%bctype))
-  case('basic')
-    write(threadinfo%Logunit,'(a32,a)') 'bcorder ',bcdef%bcorder
-    write(threadinfo%Logunit,'(a32,l1)') 'fixux0 ',bcdef%fixux0
-    write(threadinfo%Logunit,'(a32,l1)') 'fixux1 ',bcdef%fixux1
-    write(threadinfo%Logunit,'(a32,l1)') 'fixvx0 ',bcdef%fixvx0
-    write(threadinfo%Logunit,'(a32,l1)') 'fixvx1 ',bcdef%fixvx1
-    write(threadinfo%Logunit,'(a32,l1)') 'fixwx0 ',bcdef%fixwx0
-    write(threadinfo%Logunit,'(a32,l1)') 'fixwx1 ',bcdef%fixwx1
-    write(threadinfo%Logunit,'(a32,l1)') 'fixuy0 ',bcdef%fixuy0
-    write(threadinfo%Logunit,'(a32,l1)') 'fixuy1 ',bcdef%fixuy1
-    write(threadinfo%Logunit,'(a32,l1)') 'fixvy0 ',bcdef%fixvy0
-    write(threadinfo%Logunit,'(a32,l1)') 'fixvy1 ',bcdef%fixvy1
-    write(threadinfo%Logunit,'(a32,l1)') 'fixwy0 ',bcdef%fixwy0
-    write(threadinfo%Logunit,'(a32,l1)') 'fixwy1 ',bcdef%fixwy1
-    write(threadinfo%Logunit,'(a32,l1)') 'fixuz0 ',bcdef%fixuz0
-    write(threadinfo%Logunit,'(a32,l1)') 'fixuz1 ',bcdef%fixuz1
-    write(threadinfo%Logunit,'(a32,l1)') 'fixvz0 ',bcdef%fixvz0
-    write(threadinfo%Logunit,'(a32,l1)') 'fixvz1 ',bcdef%fixvz1
-    write(threadinfo%Logunit,'(a32,l1)') 'fixwz0 ',bcdef%fixwz0
-    write(threadinfo%Logunit,'(a32,l1)') 'fixwz1 ',bcdef%fixwz1
-    write(threadinfo%Logunit,'(a32,e11.4)') 'ux0 ',bcdef%ux0
-    write(threadinfo%Logunit,'(a32,e11.4)') 'ux1 ',bcdef%ux1
-    write(threadinfo%Logunit,'(a32,e11.4)') 'vx0 ',bcdef%vx0
-    write(threadinfo%Logunit,'(a32,e11.4)') 'vx1 ',bcdef%vx1
-    write(threadinfo%Logunit,'(a32,e11.4)') 'wx0 ',bcdef%wx0
-    write(threadinfo%Logunit,'(a32,e11.4)') 'wx1 ',bcdef%wx1
-    write(threadinfo%Logunit,'(a32,e11.4)') 'uy0 ',bcdef%uy0
-    write(threadinfo%Logunit,'(a32,e11.4)') 'uy1 ',bcdef%uy1
-    write(threadinfo%Logunit,'(a32,e11.4)') 'vy0 ',bcdef%vy0
-    write(threadinfo%Logunit,'(a32,e11.4)') 'vy1 ',bcdef%vy1
-    write(threadinfo%Logunit,'(a32,e11.4)') 'wy0 ',bcdef%wy0
-    write(threadinfo%Logunit,'(a32,e11.4)') 'wy1 ',bcdef%wy1
-    write(threadinfo%Logunit,'(a32,e11.4)') 'uz0 ',bcdef%uz0
-    write(threadinfo%Logunit,'(a32,e11.4)') 'uz1 ',bcdef%uz1
-    write(threadinfo%Logunit,'(a32,e11.4)') 'vz0 ',bcdef%vz0
-    write(threadinfo%Logunit,'(a32,e11.4)') 'vz1 ',bcdef%vz1
-    write(threadinfo%Logunit,'(a32,e11.4)') 'wz0 ',bcdef%wz0
-    write(threadinfo%Logunit,'(a32,e11.4)') 'wz1 ',bcdef%wz1
-  case('segmented_s_line')
-    write(threadinfo%Logunit,'(a)') 'Boundary condition parameters'
-    do i=1,12
-      write(threadinfo%Logunit,'(a32,i2,a,e11.4)') 'bc_parameter ',i,' ',bcdef%bc_parameters(i)
-    enddo
-  end select
-  write(threadinfo%Logunit,'(a32,e11.4)') 'utrans ',bcdef%utrans
-  write(threadinfo%Logunit,'(a32,e11.4)') 'vtrans ',bcdef%vtrans
-  write(threadinfo%Logunit,'(a32,l1)') 'isostasy ',params%isostasy
-  write(threadinfo%Logunit,'(a32,l1)') 'flexure ',params%flexure
-  write(threadinfo%Logunit,'(a32,l1)') 'isobc ',params%isobc 
-  write(threadinfo%Logunit,'(a32,e11.4)') 'elastic_plate_thickness ',params%elastic_plate_thickness
-  write(threadinfo%Logunit,'(a32,e11.4)') 'density_difference ',params%density_difference
-  write(threadinfo%Logunit,'(a32,l1)') 'nest ',params%nest
-  if (params%nest) then
-    write(threadinfo%Logunit,'(a)') '--- Nest parameters ---'
-    write(threadinfo%Logunit,'(a32,a)') 'lsoutfile ',trim(nest%lsoutfile)
-    write(threadinfo%Logunit,'(a32,e11.4)') 'sselemx ',nest%sselemx
-    write(threadinfo%Logunit,'(a32,e11.4)') 'sselemy ',nest%sselemy
-    write(threadinfo%Logunit,'(a32,e11.4)') 'sselemz ',nest%sselemz
-    write(threadinfo%Logunit,'(a32,e11.4)') 'xminls ',nest%xminls
-    write(threadinfo%Logunit,'(a32,e11.4)') 'yminls ',nest%yminls
-    write(threadinfo%Logunit,'(a32,e11.4)') 'zminls ',nest%zminls
-  endif
-  write(threadinfo%Logunit,'(a32,e11.4)') 'distance_exponent ',params%distance_exponent
+  !write(threadinfo%Logunit,'(a32,e11.4)') 'distance_exponent ',params%distance_exponent
+  write(threadinfo%Logunit,'(a)') '--------------------------------------------------------------------------------'
+  write(threadinfo%Logunit,'(a)') '--- END OF INPUT FILE ---'
+  write(threadinfo%Logunit,'(a)') '--------------------------------------------------------------------------------'
 endif
 
 if(iproc.eq.0) call flush(8)
-- 
GitLab