Newer
Older
!------------------------------------------------------------------------------|
!------------------------------------------------------------------------------|
! |
! ||===\\ |
! || \\ |
! || || //==\\ || || //==|| ||/==\\ |
! || || || || || || || || || || |
! || // || || || || || || || |
! ||===// \\==// \\==\\ \\==\\ || |
! |
!------------------------------------------------------------------------------|
!------------------------------------------------------------------------------|
! |
! READ_INPUT_FILE Feb. 2007 |
! |
!------------------------------------------------------------------------------|
!------------------------------------------------------------------------------|
subroutine read_input_file (params,threadinfo,material0,mat,surface,boxes, &
sections,cube_faces,nest,bcdef)
!------------------------------------------------------------------------------|
!(((((((((((((((( Purpose of the routine ))))))))))))))))))))))))))))))))))))))
!------------------------------------------------------------------------------|
Dave Whipp
committed
! subroutine where default values for all input parameters other than the
! controlling parameters are defined
! it is also where the input file 'input.txt' is read and the corresponding
! parameters are set
! nstep is number of time steps
Dave Whipp
committed
! ns is number of surface - read in read_controlling_parameters
! dt is time step length
! (note that if dt is negative, it will be replaced by a dynamically
! determined value derived from Courant's condition and Courant's
! parameter called "courant")
Dave Whipp
committed
! nmat is number of material - read in read_controlling_parameters
! material0 is material number for stuff above 1st surface
! or reference material when there is no surface
! mat:material properties, including, density,viscosity and compressibility
! penalty parameters; ms is dimensioned (0:nmat)
! material 0 is void
! leveluniform_oct is level of uniform discretization (power of 2)
! levelmax_oct is maximum discretization level
! matrule is the flag that determines the rule used for assigning material
! properties within the model volume
! levelcut is maximum level (within a leave) used to estimate integrals
! in divfem approximation
! levelapprox is maximum level to use to estimate positive volume
! beyond levelcut
! noctreemax is maximum size of octrees when they are created
! penalty is penalty parameters for linear constraints arising from
! bad faces in octree discretization (should be large)
! tempscale is temperature scaling parameter
! strain_ratio is used for refinement (if=1 no refinement;
! if=0 uniform refinement) down to levelmax_oct
! istrain_refine: two algortihms are allowed for the refinement based on the strain ratio
! one is based on the maximum difference between any two components of velocity
! inside an element (istrain_refine=0) the other is based on the norm of the
! velocity gradient (istrain_refine=1). Default is istrain_refine=1
! courant is ratio of courant conditoin used for moving particles (<1)
! stretch is the maximum allowed increase in linear length between two initially
! adjacent particles on any surface; when this stretch is achieved, a new
! particle is inserted on the surface, half-way along the stretched edge
! stretch is specific to each surface
! anglemax is the maximum allowed angle between two adjacent normals; when the
! angle is reached, a new point is injected
! anglemax is specific to each surface
! default value is 1.d0
! surface are surface structure
! for each surface, one needs to define a levelt, itype, material and fnme.
! levelt is the initial level for the particles on the surface; to be accurate
! and avoid wholes in the surface during definition of the lsf, one should use
! levelt=levelmax_oct+1 for all surfaces as a minimum value; itype should be 1
! for foldable surfaces or 0 for nonfoldable surfaces; material is the material
! type refering to the table of material available (max nmat); fnme is the name
! of the file containing the geometry of the particles defining the surface
! npmin is the minimum number of particles in the strain cloud per element
! npmax is the maximum number of particles in the strain cloud per element
! at levelmax_oct level (smallest possible elements)
! nonlineariter is number of iterations in nonlinear analysis
! if nonlineariter is 0 no nonlinear iterations are performed (linear analysis)
! if nonlineariter is positive, nonlineariter is the number of iterations performed
! regardless of convergence of solution
! if nonlineariter is negative, -nonlineariter is maximum number of iterations allowed
! to reach convergence as determined by tol
! tol is relative tolerance (duvw/uvw) to achieve convergence
! criterion is criterion used to define the octree in the vicinity of the
! sufaces; criterion 1 corresponds to imposing that all leaves that contain at
! least one particle of any surface is at levelmax_oct; criterion 2 corresponds
! to imposing that discretization is proportional to the curvature of the
! surface; curvature is calculated from the local divergence of the normals.
! the criterion is specific to each surface (default is 2)
! anglemaxoctree is only defined for criterion 2; it is the maximum allowable angle
! between two adjacent normals; if the angle is greater than anglemaxoctree, the local
! octree leaves are forced to be at level levelmax_oct; otherwise they are
! proportionally larger (smaller levels) (default is 10)
! anglemaxoctree is specific to each surface
! (be aware that these files are enormous...)
! niter_move is number of iterations used to move particles in an
! implicit, mid-point algorithm
! restart is a restart flag; if irestart is not 0, the run will restart from
Dave Whipp
committed
! an output file given by restartfile and at step irestart+1 - read in
! read_controlling_parameters
! ismooth is a flag to impose an additional level of smoothing after refinement
! for the surfaces and strain rate. It ensures that no leaf is flanked by
! other leaves diffeing by more than 1 level of refinement
! If ismooth is 0, no smoothing is performed; if ismooth is set to 1, smoothing
! is performed (default is 1)
! boxes is the set of nboxes box structures defined by the user where a set level
! of discretization is imposed
!------------------------------------------------------------------------------|
!(((((((((((((((( declaration of the subroutine arguments ))))))))))))))))))))
!------------------------------------------------------------------------------|
Dave Whipp
committed
use constants
!use mpi
Dave Whipp
committed
use threads
include 'mpif.h'
type (parameters) params
type (thread) threadinfo
integer material0
type (material) mat(0:params%nmat)
type (sheet) surface(params%ns)
type (box) boxes(params%nboxes)
type (cross_section) sections(params%nsections)
type (face),dimension(6) :: cube_faces
type (bc_definition) :: bcdef
!------------------------------------------------------------------------------|
!(((((((((((((((( declaration of the subroutine internal variables )))))))))))))
!------------------------------------------------------------------------------|
Dave Whipp
committed
integer ires,i,il,ierr,iproc,nproc,j
character(len=72) :: shift
character(len=3) :: cm
character(len=1) :: answer
!------------------------------------------------------------------------------|
!------------------------------------------------------------------------------|
call mpi_comm_size (mpi_comm_world,nproc,ierr)
call mpi_comm_rank (mpi_comm_world,iproc,ierr)
Dave Whipp
committed
!==============================================================================
!==============================================================================
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
if (iproc==0) call scanfile (params%infile,'material0',material0,ires)
call mpi_bcast(material0,1,mpi_integer,0,mpi_comm_world,ierr)
params%bulkvisc=.false.
if (iproc==0) then
call scanfile (params%infile,'bulkvisc',answer,ires)
if (ires==1) params%bulkvisc=(trim(answer)=='T')
endif
call mpi_bcast(params%bulkvisc,1,mpi_logical,0,mpi_comm_world,ierr)
params%init_e2d=.false.
if (iproc==0) then
call scanfile (params%infile,'init_e2d',answer,ires)
if (ires==1) params%init_e2d=(trim(answer)=='T')
endif
call mpi_bcast(params%init_e2d,1,mpi_logical,0,mpi_comm_world,ierr)
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%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)
call mpi_bcast(params%pressure0,1,mpi_double_precision,0,mpi_comm_world,ierr)
Dave Whipp
committed
if (iproc==0) call scanfile (params%infile,'dommat',params%dommat,ires)
call mpi_bcast(params%dommat,1,mpi_integer,0,mpi_comm_world,ierr)
Dave Whipp
committed
params%domvol=1.d-10
if (iproc==0) call scanfile (params%infile,'domvol',params%domvol,ires)
call mpi_bcast(params%domvol,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%materials_on_cloud=.false.
if (iproc==0) then
call scanfile (params%infile,'materials_on_cloud',answer,ires)
if (ires==1) params%materials_on_cloud=(trim(answer)=='T')
endif
call mpi_bcast(params%materials_on_cloud,1,mpi_logical,0,mpi_comm_world,ierr)
if (params%materials_on_cloud) then
params%move_cloud_at_midpoint=.true.
else
params%move_cloud_at_midpoint=.false.
endif
if (iproc==0) then
call scanfile (params%infile,'move_cloud_at_midpoint',answer,ires)
if (ires==1) params%move_cloud_at_midpoint=(trim(answer)=='T')
endif
call mpi_bcast(params%move_cloud_at_midpoint,1,mpi_logical,0,mpi_comm_world,ierr)
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
do i=0,params%nmat
write(cm,'(i3)') i
il=1
if (i.lt.100) il=2
if (i.lt.10) il=3
mat(i)%density=1.d0
if (i.eq.0) mat(i)%density=0.d0
if (iproc==0) call scanfile (params%infile,'density'//cm(il:3),mat(i)%density,ires)
call mpi_bcast(mat(i)%density,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%viscosity=1.d0
if (i.eq.0) mat(i)%viscosity=1.d-8
if (iproc==0) call scanfile (params%infile,'viscosity'//cm(il:3),mat(i)%viscosity,ires)
call mpi_bcast(mat(i)%viscosity,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%penalty=1.d8
if (iproc==0) call scanfile (params%infile,'penalty'//cm(il:3),mat(i)%penalty,ires)
call mpi_bcast(mat(i)%penalty,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%expon=1.d0
if (iproc==0) call scanfile (params%infile,'expon'//cm(il:3),mat(i)%expon,ires)
call mpi_bcast(mat(i)%expon,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%activationenergy=0.d0
if (iproc==0) call scanfile (params%infile,'activationenergy'//cm(il:3),mat(i)%activationenergy,ires)
call mpi_bcast(mat(i)%activationenergy,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%expansion=0.d0
if (iproc==0) call scanfile (params%infile,'expansion'//cm(il:3),mat(i)%expansion,ires)
call mpi_bcast(mat(i)%expansion,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%diffusivity=1.d0
if (iproc==0) call scanfile (params%infile,'diffusivity'//cm(il:3),mat(i)%diffusivity,ires)
call mpi_bcast(mat(i)%diffusivity,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%heat=0.d0
if (iproc==0) call scanfile (params%infile,'heat'//cm(il:3),mat(i)%heat,ires)
call mpi_bcast(mat(i)%heat,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%fviscosity=1.d0
if (iproc==0) call scanfile (params%infile,'fviscosity'//cm(il:3),mat(i)%fviscosity,ires)
call mpi_bcast(mat(i)%fviscosity,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%fvisc_weak_type='tot_strain'
if (iproc==0) call scanfile (params%infile,'fvisc_weak_type'//cm(il:3),mat(i)%fvisc_weak_type,ires)
call mpi_bcast(mat(i)%fvisc_weak_type,16,mpi_character,0,mpi_comm_world,ierr)
mat(i)%fvisc_weak_onset=-1.d0
if (iproc==0) call scanfile (params%infile,'fvisc_weak_onset'//cm(il:3),mat(i)%fvisc_weak_onset,ires)
call mpi_bcast(mat(i)%fvisc_weak_onset,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%fvisc_weak_end=1.d0
if (iproc==0) call scanfile (params%infile,'fvisc_weak_end'//cm(il:3),mat(i)%fvisc_weak_end,ires)
call mpi_bcast(mat(i)%fvisc_weak_end,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%fvisc_weak_final=1.d0
if (iproc==0) call scanfile (params%infile,'fvisc_weak_final'//cm(il:3),mat(i)%fvisc_weak_final,ires)
call mpi_bcast(mat(i)%fvisc_weak_final,1,mpi_double_precision,0,mpi_comm_world,ierr)
Dave Whipp
committed
mat(i)%fvisc_strong_onset=-1.d0
if (iproc==0) call scanfile (params%infile,'fvisc_strong_onset'//cm(il:3),mat(i)%fvisc_strong_onset,ires)
call mpi_bcast(mat(i)%fvisc_strong_onset,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%fvisc_strong_end=1.d0
if (iproc==0) call scanfile (params%infile,'fvisc_strong_end'//cm(il:3),mat(i)%fvisc_strong_end,ires)
call mpi_bcast(mat(i)%fvisc_strong_end,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%fvisc_strong_final=1.d0
if (iproc==0) call scanfile (params%infile,'fvisc_strong_final'//cm(il:3),mat(i)%fvisc_strong_final,ires)
call mpi_bcast(mat(i)%fvisc_strong_final,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%plasticity_type='No'
if (iproc==0) call scanfile (params%infile,'plasticity_type'//cm(il:3),mat(i)%plasticity_type,ires)
call mpi_bcast(mat(i)%plasticity_type,8,mpi_character,0,mpi_comm_world,ierr)
Dave Whipp
committed
mat(i)%plasticity_ss_type_coh='tot_strain'
if (iproc==0) call scanfile (params%infile,'plasticity_ss_type_coh'//cm(il:3),mat(i)%plasticity_ss_type_coh,ires)
call mpi_bcast(mat(i)%plasticity_ss_type_coh,16,mpi_character,0,mpi_comm_world,ierr)
Dave Whipp
committed
mat(i)%plasticity_ss_type_phi='tot_strain'
if (iproc==0) call scanfile (params%infile,'plasticity_ss_type_phi'//cm(il:3),mat(i)%plasticity_ss_type_phi,ires)
call mpi_bcast(mat(i)%plasticity_ss_type_phi,16,mpi_character,0,mpi_comm_world,ierr)
mat(i)%compactible=.false.
if (iproc==0) then
call scanfile (params%infile,'compactible'//cm(il:3),answer,ires)
if (ires==1) mat(i)%compactible=(trim(answer)=='T')
endif
call mpi_bcast(mat(i)%compactible,1,mpi_logical,0,mpi_comm_world,ierr)
mat(i)%grain_density=1.d0
if (i.eq.0) mat(i)%grain_density=0.d0
if (iproc==0) call scanfile (params%infile,'grain_density'//cm(il:3),mat(i)%grain_density,ires)
call mpi_bcast(mat(i)%grain_density,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%pore_fluid_density=1.d0
if (i.eq.0) mat(i)%pore_fluid_density=0.d0
if (iproc==0) call scanfile (params%infile,'pore_fluid_density'//cm(il:3),mat(i)%pore_fluid_density,ires)
call mpi_bcast(mat(i)%pore_fluid_density,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%surface_porosity=1.d0
if (i.eq.0) mat(i)%surface_porosity=0.d0
if (iproc==0) call scanfile (params%infile,'surface_porosity'//cm(il:3),mat(i)%surface_porosity,ires)
call mpi_bcast(mat(i)%surface_porosity,1,mpi_double_precision,0,mpi_comm_world,ierr)
mat(i)%compaction_coef=1.d0
if (i.eq.0) mat(i)%compaction_coef=0.d0
if (iproc==0) call scanfile (params%infile,'compaction_coef'//cm(il:3),mat(i)%compaction_coef,ires)
call mpi_bcast(mat(i)%compaction_coef,1,mpi_double_precision,0,mpi_comm_world,ierr)
Dave Whipp
committed
mat(i)%plasticity_parameters(3)=-1.d0
mat(i)%plasticity_parameters(6)=-1.d0
Dave Whipp
committed
mat(i)%plasticity_parameters(9)=-1.d0
mat(i)%plasticity_parameters(12)=-1.d0
if (trim(mat(i)%plasticity_type).ne.'No') then
Dave Whipp
committed
if (iproc==0) call scanfile (params%infile,'plasticity_1st_param'//cm(il:3),mat(i)%plasticity_parameters(1),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_2nd_param'//cm(il:3),mat(i)%plasticity_parameters(2),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_3rd_param'//cm(il:3),mat(i)%plasticity_parameters(3),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_4th_param'//cm(il:3),mat(i)%plasticity_parameters(4),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_5th_param'//cm(il:3),mat(i)%plasticity_parameters(5),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_6th_param'//cm(il:3),mat(i)%plasticity_parameters(6),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_7th_param'//cm(il:3),mat(i)%plasticity_parameters(7),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_8th_param'//cm(il:3),mat(i)%plasticity_parameters(8),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_9th_param'//cm(il:3),mat(i)%plasticity_parameters(9),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_10th_param'//cm(il:3),mat(i)%plasticity_parameters(10),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_11th_param'//cm(il:3),mat(i)%plasticity_parameters(11),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_12th_param'//cm(il:3),mat(i)%plasticity_parameters(12),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_13th_param'//cm(il:3),mat(i)%plasticity_parameters(13),ires)
if (iproc==0) call scanfile (params%infile,'plasticity_14th_param'//cm(il:3),mat(i)%plasticity_parameters(14),ires)
call mpi_bcast(mat(i)%plasticity_parameters,14,mpi_double_precision,0,mpi_comm_world,ierr)
Dave Whipp
committed
mat(i)%mattrans=-1.d0
if (iproc==0) call scanfile (params%infile,'mattrans_xmin'//cm(il:3),mat(i)%mattrans(1),ires)
if (iproc==0) call scanfile (params%infile,'mattrans_xmax'//cm(il:3),mat(i)%mattrans(2),ires)
if (iproc==0) call scanfile (params%infile,'mattrans_ymin'//cm(il:3),mat(i)%mattrans(3),ires)
if (iproc==0) call scanfile (params%infile,'mattrans_ymax'//cm(il:3),mat(i)%mattrans(4),ires)
if (iproc==0) call scanfile (params%infile,'mattrans_zmin'//cm(il:3),mat(i)%mattrans(5),ires)
if (iproc==0) call scanfile (params%infile,'mattrans_zmax'//cm(il:3),mat(i)%mattrans(6),ires)
call mpi_bcast(mat(i)%mattrans,6,mpi_double_precision,0,mpi_comm_world,ierr)
Dave Whipp
committed
call scanfile (params%infile,'transnum_xmin'//cm(il:3),mat(i)%transnum(1),ires)
call scanfile (params%infile,'transnum_xmax'//cm(il:3),mat(i)%transnum(2),ires)
call scanfile (params%infile,'transnum_ymin'//cm(il:3),mat(i)%transnum(3),ires)
call scanfile (params%infile,'transnum_ymax'//cm(il:3),mat(i)%transnum(4),ires)
call scanfile (params%infile,'transnum_zmin'//cm(il:3),mat(i)%transnum(5),ires)
call scanfile (params%infile,'transnum_zmax'//cm(il:3),mat(i)%transnum(6),ires)
if (maxval(mat(i)%transnum).gt.params%nmat) call stop_run ('Error: transnum value is greater than nmat in read_input_file$')
Dave Whipp
committed
endif
Dave Whipp
committed
call mpi_bcast(mat(i)%transnum,6,mpi_integer,0,mpi_comm_world,ierr)
enddo
params%viscositymin=-1.d0
if (iproc==0) call scanfile (params%infile,'viscositymin',params%viscositymin,ires)
call mpi_bcast(params%viscositymin,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%viscositymax=-1.d0
if (iproc==0) call scanfile (params%infile,'viscositymax',params%viscositymax,ires)
call mpi_bcast(params%viscositymax,1,mpi_double_precision,0,mpi_comm_world,ierr)
Dave Whipp
committed
params%vex=1.d0
if (iproc==0) call scanfile (params%infile,'vex',params%vex,ires)
call mpi_bcast(params%vex,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%leveluniform_oct=3
if (iproc==0) call scanfile (params%infile,'leveluniform_oct',params%leveluniform_oct,ires)
call mpi_bcast(params%leveluniform_oct,1,mpi_integer,0,mpi_comm_world,ierr)
params%levelmax_oct=4
if (iproc==0) call scanfile (params%infile,'levelmax_oct',params%levelmax_oct,ires)
call mpi_bcast(params%levelmax_oct,1,mpi_integer,0,mpi_comm_world,ierr)
params%matrule=0
if (iproc==0) call scanfile (params%infile,'matrule',params%matrule,ires)
call mpi_bcast(params%matrule,1,mpi_integer,0,mpi_comm_world,ierr)
params%levelcut=2
if (iproc==0) call scanfile (params%infile,'levelcut',params%levelcut,ires)
call mpi_bcast(params%levelcut,1,mpi_integer,0,mpi_comm_world,ierr)
params%levelapprox=3
if (iproc.eq.0) call scanfile (params%infile,'levelapprox',params%levelapprox,ires)
call mpi_bcast(params%levelapprox,1,mpi_integer,0,mpi_comm_world,ierr)
params%calculate_temp=.true.
if (iproc==0) then
call scanfile (params%infile,'calculate_temp',answer,ires)
if (ires==1) params%calculate_temp=(trim(answer)=='T')
end if
call mpi_bcast(params%calculate_temp,1,mpi_logical,0,mpi_comm_world,ierr)
params%ztemp=1.d0
if (iproc==0) call scanfile (params%infile,'ztemp',params%ztemp,ires)
Dave Whipp
committed
params%ztemp=params%ztemp/params%vex
call mpi_bcast(params%ztemp,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%sstemp_spinup=.false.
if (iproc==0) then
call scanfile (params%infile,'sstemp_spinup',answer,ires)
if (ires==1) params%sstemp_spinup=(trim(answer)=='T')
end if
call mpi_bcast(params%sstemp_spinup,1,mpi_logical,0,mpi_comm_world,ierr)
Dave Whipp
committed
params%sstemp_on_restart=.false.
if (iproc==0) then
call scanfile (params%infile,'sstemp_on_restart',answer,ires)
if (ires==1) params%sstemp_on_restart=(trim(answer)=='T')
end if
call mpi_bcast(params%sstemp_on_restart,1,mpi_logical,0,mpi_comm_world,ierr)
params%sstemp_viscosity_spinup=-1.d0
if (iproc==0) call scanfile (params%infile,'sstemp_viscosity_spinup',params%sstemp_viscosity_spinup,ires)
call mpi_bcast(params%sstemp_viscosity_spinup,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%sstemp_penalty_spinup=-1.d0
if (iproc==0) call scanfile (params%infile,'sstemp_penalty_spinup',params%sstemp_penalty_spinup,ires)
call mpi_bcast(params%sstemp_penalty_spinup,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%all_surf_fixed_spinup=.false.
if (iproc==0) then
call scanfile (params%infile,'all_surf_fixed_spinup',answer,ires)
if (ires==1) params%all_surf_fixed_spinup=(trim(answer)=='T')
end if
call mpi_bcast(params%all_surf_fixed_spinup,1,mpi_logical,0,mpi_comm_world,ierr)
params%fixed_cloud_spinup=.false.
if (iproc==0) then
call scanfile (params%infile,'fixed_cloud_spinup',answer,ires)
if (ires==1) params%fixed_cloud_spinup=(trim(answer)=='T')
end if
call mpi_bcast(params%fixed_cloud_spinup,1,mpi_logical,0,mpi_comm_world,ierr)
params%smoothing_type=0
if (iproc==0) call scanfile (params%infile,'smoothing_type',params%smoothing_type,ires)
call mpi_bcast(params%smoothing_type,1,mpi_integer,0,mpi_comm_world,ierr)
params%normaladvect=.false.
if (iproc==0) then
call scanfile (params%infile,'normaladvect',answer,ires)
if (ires==1) params%normaladvect=(trim(answer)=='T')
end if
call mpi_bcast(params%normaladvect,1,mpi_logical,0,mpi_comm_world,ierr)
params%excl_vol=.false.
if (iproc==0) then
call scanfile (params%infile,'excl_vol',answer,ires)
if (ires==1) params%excl_vol=(trim(answer)=='T')
end if
call mpi_bcast(params%excl_vol,1,mpi_logical,0,mpi_comm_world,ierr)
params%adaptive_tol=.false.
if (iproc==0) then
call scanfile (params%infile,'adaptive_tol',answer,ires)
if (ires==1) params%adaptive_tol=(trim(answer)=='T')
end if
call mpi_bcast(params%adaptive_tol,1,mpi_logical,0,mpi_comm_world,ierr)
params%wsmp_scaling=.false.
if (iproc==0) then
call scanfile (params%infile,'wsmp_scaling',answer,ires)
if (ires==1) params%wsmp_scaling=(trim(answer)=='T')
end if
call mpi_bcast(params%wsmp_scaling,1,mpi_logical,0,mpi_comm_world,ierr)
!=====[surface properties]=====================================================
do i=1,params%ns
write(cm,'(i3)') i
il=1
if (i.lt.100) il=2
if (il.lt.10) il=3
Dave Whipp
committed
surface(i)%itype=1
if (iproc==0) call scanfile (params%infile,'itype'//cm(il:3),surface(i)%itype,ires)
call mpi_bcast(surface(i)%itype,1,mpi_integer,0,mpi_comm_world,ierr)
Dave Whipp
committed
surface(i)%closed=0
if (iproc==0) call scanfile (params%infile,'closed'//cm(il:3),surface(i)%closed,ires)
call mpi_bcast(surface(i)%closed,1,mpi_integer,0,mpi_comm_world,ierr)
surface(i)%material_main=1
if (iproc==0) call scanfile (params%infile,'material'//cm(il:3),surface(i)%material_main,ires)
call mpi_bcast(surface(i)%material_main,1,mpi_integer,0,mpi_comm_world,ierr)
surface(i)%material_spinup=surface(i)%material_main
if (iproc==0) call scanfile (params%infile,'material_spinup'//cm(il:3),surface(i)%material_spinup,ires)
call mpi_bcast(surface(i)%material_spinup,1,mpi_integer,0,mpi_comm_world,ierr)
call mpi_bcast(surface(i)%material,1,mpi_integer,0,mpi_comm_world,ierr)
surface(i)%rand=.false.
if (iproc==0) then
call scanfile (params%infile,'rand'//cm(il:3),answer,ires)
if (ires==1) surface(i)%rand=(trim(answer)=='T')
end if
call mpi_bcast(surface(i)%rand,1,mpi_logical,0,mpi_comm_world,ierr)
surface(i)%surf_for_mat_props=.true.
if (iproc==0) then
call scanfile (params%infile,'surf_for_mat_props'//cm(il:3),answer,ires)
if (ires==1) surface(i)%surf_for_mat_props=(trim(answer)=='T')
end if
call mpi_bcast(surface(i)%surf_for_mat_props,1,mpi_logical,0,mpi_comm_world,ierr)
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
surface(i)%levelt=params%levelmax_oct+1
if (iproc==0) call scanfile (params%infile,'levelt'//cm(il:3),surface(i)%levelt,ires)
call mpi_bcast(surface(i)%levelt,1,mpi_integer,0,mpi_comm_world,ierr)
surface(i)%stretch=1.5d0
if (iproc==0) call scanfile (params%infile,'stretch'//cm(il:3),surface(i)%stretch,ires)
call mpi_bcast(surface(i)%stretch,1,mpi_double_precision,0,mpi_comm_world,ierr)
surface(i)%criterion=1
if (iproc==0) call scanfile (params%infile,'criterion'//cm(il:3),surface(i)%criterion,ires)
call mpi_bcast(surface(i)%criterion,1,mpi_integer,0,mpi_comm_world,ierr)
surface(i)%anglemax=1.d0
if (iproc==0) call scanfile (params%infile,'anglemax'//cm(il:3),surface(i)%anglemax,ires)
surface(i)%anglemax=surface(i)%anglemax*pi/180.d0
call mpi_bcast(surface(i)%anglemax,1,mpi_double_precision,0,mpi_comm_world,ierr)
surface(i)%anglemaxoctree=1.d0
if (iproc==0) call scanfile (params%infile,'anglemaxoctree'//cm(il:3),surface(i)%anglemaxoctree,ires)
surface(i)%anglemaxoctree=surface(i)%anglemaxoctree*pi/180.d0
call mpi_bcast(surface(i)%anglemaxoctree,1,mpi_double_precision,0,mpi_comm_world,ierr)
surface(i)%spread_surface_points=0
if (iproc==0) call scanfile (params%infile,'spread_surface_points'//cm(il:3),surface(i)%spread_surface_points,ires)
call mpi_bcast(surface(i)%spread_surface_points,1,mpi_integer,0,mpi_comm_world,ierr)
surface(i)%fixed_surf_spinup=.false.
call scanfile (params%infile,'fixed_surf_spinup'//cm(il:3),answer,ires)
if (ires==1) surface(i)%fixed_surf_spinup=(trim(answer)=='T')
call mpi_bcast(surface(i)%fixed_surf_spinup,1,mpi_logical,0,mpi_comm_world,ierr)
call scanfile (params%infile,'fixed_surf'//cm(il:3),answer,ires)
if (ires==1) surface(i)%fixed_surf=(trim(answer)=='T')
call mpi_bcast(surface(i)%fixed_surf,1,mpi_logical,0,mpi_comm_world,ierr)
surface(i)%surface_type = 0
if (iproc==0) call scanfile (params%infile,'surface_type_'//cm(il:3),surface(i)%surface_type,ires)
call mpi_bcast(surface(i)%surface_type,1,mpi_integer,0,mpi_comm_world,ierr)
surface(i)%sp01 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_01_'//cm(il:3),surface(i)%sp01,ires)
surface(i)%sp02 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_02_'//cm(il:3),surface(i)%sp02,ires)
surface(i)%sp03 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_03_'//cm(il:3),surface(i)%sp03,ires)
surface(i)%sp04 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_04_'//cm(il:3),surface(i)%sp04,ires)
surface(i)%sp05 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_05_'//cm(il:3),surface(i)%sp05,ires)
surface(i)%sp06 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_06_'//cm(il:3),surface(i)%sp06,ires)
surface(i)%sp07 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_07_'//cm(il:3),surface(i)%sp07,ires)
surface(i)%sp08 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_08_'//cm(il:3),surface(i)%sp08,ires)
surface(i)%sp09 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_09_'//cm(il:3),surface(i)%sp09,ires)
surface(i)%sp10 = 0.d0
if (iproc==0) call scanfile (params%infile,'surface_param_10_'//cm(il:3),surface(i)%sp10,ires)
Dave Whipp
committed
surface(i)%sp11 = surface(i)%sp01
if (iproc==0) call scanfile (params%infile,'surface_param_11_'//cm(il:3),surface(i)%sp11,ires)
Dave Whipp
committed
surface(i)%sp12 = 45.d0
if (iproc==0) call scanfile (params%infile,'surface_param_12_'//cm(il:3),surface(i)%sp12,ires)
if (iproc==0) call scanfile (params%infile,'surface_param_13_'//cm(il:3),surface(i)%sp13,ires)
surface(i)%sp14 = 45.d0
if (iproc==0) call scanfile (params%infile,'surface_param_14_'//cm(il:3),surface(i)%sp14,ires)
surface(i)%sp15 = 1.d0
if (iproc==0) call scanfile (params%infile,'surface_param_15_'//cm(il:3),surface(i)%sp15,ires)
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)%sp03,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(surface(i)%sp04,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(surface(i)%sp05,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(surface(i)%sp06,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(surface(i)%sp07,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)%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)
call mpi_bcast(surface(i)%sp13,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(surface(i)%sp14,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(surface(i)%sp15,1,mpi_double_precision,0,mpi_comm_world,ierr)
surface(i)%activation_time=-1.d0
if (iproc==0) call scanfile (params%infile,'activation_time_'//cm(il:3),surface(i)%activation_time,ires)
call mpi_bcast(surface(i)%activation_time,1,mpi_double_precision,0,mpi_comm_world,ierr)
surface(i)%leveloct=6
if (iproc==0) call scanfile (params%infile,'leveloct'//cm(il:3),surface(i)%leveloct,ires)
call mpi_bcast(surface(i)%leveloct,1,mpi_integer,0,mpi_comm_world,ierr)
Dave Whipp
committed
surface(i)%remove_after_mat_def=.false.
if (iproc==0) then
call scanfile (params%infile,'remove_after_mat_def'//cm(il:3),answer,ires)
if (ires==1) surface(i)%remove_after_mat_def=(trim(answer)=='T')
Dave Whipp
committed
end if
call mpi_bcast(surface(i)%remove_after_mat_def,1,mpi_logical,0,mpi_comm_world,ierr)
enddo
!=====[face refinement parameters]=============================================
params%ref_on_faces=.false.
if(iproc==0) then
call scanfile (params%infile,'ref_on_faces',answer,ires)
if (ires==1) params%ref_on_faces=(trim(answer)=='T')
end if
call mpi_bcast(params%ref_on_faces,1,mpi_logical,0,mpi_comm_world,ierr)
do i=1,6
write(cm,'(i3)') i
cube_faces(i)%level = 1
if (iproc==0) call scanfile (params%infile,'level_face'//cm(3:3),cube_faces(i)%level,ires)
call mpi_bcast(cube_faces(i)%level,1,mpi_integer,0,mpi_comm_world,ierr)
cube_faces(i)%l = 0.d0
if (iproc==0) call scanfile (params%infile,'l'//cm(3:3),cube_faces(i)%l,ires)
call mpi_bcast(cube_faces(i)%l,1,mpi_double_precision,0,mpi_comm_world,ierr)
cube_faces(i)%r = 0.d0
if (iproc==0) call scanfile (params%infile,'r'//cm(3:3),cube_faces(i)%r,ires)
call mpi_bcast(cube_faces(i)%r,1,mpi_double_precision,0,mpi_comm_world,ierr)
cube_faces(i)%b = 0.d0
if (iproc==0) call scanfile (params%infile,'b'//cm(3:3),cube_faces(i)%b,ires)
call mpi_bcast(cube_faces(i)%b,1,mpi_double_precision,0,mpi_comm_world,ierr)
cube_faces(i)%t = 0.d0
if (iproc==0) call scanfile (params%infile,'t'//cm(3:3),cube_faces(i)%t,ires)
call mpi_bcast(cube_faces(i)%t,1,mpi_double_precision,0,mpi_comm_world,ierr)
end do
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_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_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)
Jean Braun
committed
params%damp_surface=.true.
if (iproc==0) then
call scanfile (params%infile,'damp_surface',answer,ires)
if (ires==1) params%damp_surface = (trim(answer)=='T')
Jean Braun
committed
end if
call mpi_bcast(params%damp_surface,1,mpi_logical,0,mpi_comm_world,ierr)
Dave Whipp
committed
params%damp_factor=1.0d0
if (iproc==0) call scanfile (params%infile,'damp_factor',params%damp_factor,ires)
call mpi_bcast(params%damp_factor,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%sedimentation=.false.
if (iproc==0) then
call scanfile (params%infile,'sedimentation',answer,ires)
if (ires==1) params%sedimentation = (trim(answer)=='T')
end if
call mpi_bcast(params%sedimentation,1,mpi_logical,0,mpi_comm_world,ierr)
params%remove_surf_pts=.false.
if (iproc==0) then
call scanfile (params%infile,'remove_surf_pts',answer,ires)
if (ires==1) params%remove_surf_pts = (trim(answer)=='T')
end if
call mpi_bcast(params%remove_surf_pts,1,mpi_logical,0,mpi_comm_world,ierr)
params%penalty=1.d8
if (iproc==0) call scanfile (params%infile,'penalty',params%penalty,ires)
call mpi_bcast(params%penalty,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%tempscale=1.d0
if (iproc==0) call scanfile (params%infile,'tempscale',params%tempscale,ires)
call mpi_bcast(params%tempscale,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%refine_ratio=1.d0
if (iproc==0) call scanfile (params%infile,'refine_ratio',params%refine_ratio,ires)
call mpi_bcast(params%refine_ratio,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%refine_criterion=1
if(iproc==0) call scanfile (params%infile,'refine_criterion',params%refine_criterion,ires)
call mpi_bcast(params%refine_criterion,1,mpi_integer,0,mpi_comm_world,ierr)
params%octree_refine_ratio=1.d0
if (iproc.eq.0) call scanfile (params%infile,'octree_refine_ratio',params%octree_refine_ratio,ires)
call mpi_bcast(params%octree_refine_ratio,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%courant=.5d0
if( iproc==0) call scanfile (params%infile,'courant',params%courant,ires)
call mpi_bcast(params%courant,1,mpi_double_precision,0,mpi_comm_world,ierr)
!=====[boundary conditions]=====================================================
params%invariants_2d=.false.
if(iproc==0) then
call scanfile (params%infile,'invariants_2d',answer,ires)
if (ires==1) params%invariants_2d=(trim(answer)=='T')
end if
call mpi_bcast(params%invariants_2d,1,mpi_logical,0,mpi_comm_world,ierr)
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
bcdef%bctype=''
if (iproc.eq.0) call scanfile (params%infile,'bctype',bcdef%bctype,ires)
call mpi_bcast(bcdef%bctype,40,mpi_character,0,mpi_comm_world,ierr)
select case(trim(bcdef%bctype))
case('basic')
bcdef%bcorder='xyz'
if (iproc.eq.0) call scanfile (params%infile,'bcorder',bcdef%bcorder,ires)
call mpi_bcast(bcdef%bcorder,3,mpi_character,0,mpi_comm_world,ierr)
bcdef%fixux0=.true.
bcdef%fixux1=.true.
bcdef%fixvx0=.true.
bcdef%fixvx1=.true.
bcdef%fixwx0=.true.
bcdef%fixwx1=.true.
bcdef%fixuy0=.true.
bcdef%fixuy1=.true.
bcdef%fixvy0=.true.
bcdef%fixvy1=.true.
bcdef%fixwy0=.true.
bcdef%fixwy1=.true.
bcdef%fixuz0=.true.
bcdef%fixuz1=.true.
bcdef%fixvz0=.true.
bcdef%fixvz1=.true.
bcdef%fixwz0=.true.
bcdef%fixwz1=.true.
if(iproc==0) then
call scanfile (params%infile,'fixux0',answer,ires)
if (ires==1) bcdef%fixux0=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixux1',answer,ires)
if (ires==1) bcdef%fixux1=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixvx0',answer,ires)
if (ires==1) bcdef%fixvx0=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixvx1',answer,ires)
if (ires==1) bcdef%fixvx1=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixwx0',answer,ires)
if (ires==1) bcdef%fixwx0=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixwx1',answer,ires)
if (ires==1) bcdef%fixwx1=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixuy0',answer,ires)
if (ires==1) bcdef%fixuy0=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixuy1',answer,ires)
if (ires==1) bcdef%fixuy1=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixvy0',answer,ires)
if (ires==1) bcdef%fixvy0=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixvy1',answer,ires)
if (ires==1) bcdef%fixvy1=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixwy0',answer,ires)
if (ires==1) bcdef%fixwy0=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixwy1',answer,ires)
if (ires==1) bcdef%fixwy1=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixuz0',answer,ires)
if (ires==1) bcdef%fixuz0=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixuz1',answer,ires)
if (ires==1) bcdef%fixuz1=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixvz0',answer,ires)
if (ires==1) bcdef%fixvz0=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixvz1',answer,ires)
if (ires==1) bcdef%fixvz1=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixwz0',answer,ires)
if (ires==1) bcdef%fixwz0=(trim(answer)=='T')
endif
if(iproc==0) then
call scanfile (params%infile,'fixwz1',answer,ires)
if (ires==1) bcdef%fixwz1=(trim(answer)=='T')
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
endif
call mpi_bcast(bcdef%fixux0,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixux1,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixvx0,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixvx1,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixwx0,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixwx1,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixuy0,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixuy1,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixvy0,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixvy1,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixwy0,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixwy1,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixuz0,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixuz1,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixvz0,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixvz1,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixwz0,1,mpi_logical,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%fixwz1,1,mpi_logical,0,mpi_comm_world,ierr)
bcdef%ux0=0.d0
bcdef%ux1=0.d0
bcdef%vx0=0.d0
bcdef%vx1=0.d0
bcdef%wx0=0.d0
bcdef%wx1=0.d0
bcdef%uy0=0.d0
bcdef%uy1=0.d0
bcdef%vy0=0.d0
bcdef%vy1=0.d0
bcdef%wy0=0.d0
bcdef%wy1=0.d0
bcdef%uz0=0.d0
bcdef%uz1=0.d0
bcdef%vz0=0.d0
bcdef%vz1=0.d0
bcdef%wz0=0.d0
bcdef%wz1=0.d0
if (iproc==0) call scanfile (params%infile,'ux0',bcdef%ux0,ires)
if (iproc==0) call scanfile (params%infile,'ux1',bcdef%ux1,ires)
if (iproc==0) call scanfile (params%infile,'vx0',bcdef%vx0,ires)
if (iproc==0) call scanfile (params%infile,'vx1',bcdef%vx1,ires)
if (iproc==0) call scanfile (params%infile,'wx0',bcdef%wx0,ires)
if (iproc==0) call scanfile (params%infile,'wx1',bcdef%wx1,ires)
if (iproc==0) call scanfile (params%infile,'uy0',bcdef%uy0,ires)
if (iproc==0) call scanfile (params%infile,'uy1',bcdef%uy1,ires)
if (iproc==0) call scanfile (params%infile,'vy0',bcdef%vy0,ires)
if (iproc==0) call scanfile (params%infile,'vy1',bcdef%vy1,ires)
if (iproc==0) call scanfile (params%infile,'wy0',bcdef%wy0,ires)
if (iproc==0) call scanfile (params%infile,'wy1',bcdef%wy1,ires)
if (iproc==0) call scanfile (params%infile,'uz0',bcdef%uz0,ires)
if (iproc==0) call scanfile (params%infile,'uz1',bcdef%uz1,ires)
if (iproc==0) call scanfile (params%infile,'vz0',bcdef%vz0,ires)
if (iproc==0) call scanfile (params%infile,'vz1',bcdef%vz1,ires)
if (iproc==0) call scanfile (params%infile,'wz0',bcdef%wz0,ires)
if (iproc==0) call scanfile (params%infile,'wz1',bcdef%wz1,ires)
call mpi_bcast(bcdef%ux0,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%ux1,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%vx0,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%vx1,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%wx0,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%wx1,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%uy0,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%uy1,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%vy0,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%vy1,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%wy0,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%wy1,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%uz0,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%uz1,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%vz0,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%vz1,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%wz0,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%wz1,1,mpi_double_precision,0,mpi_comm_world,ierr)
bcdef%bc_parameters=0.d0
if (iproc==0) call scanfile (params%infile,'bc_param1',bcdef%bc_parameters(1),ires)
if (iproc==0) call scanfile (params%infile,'bc_param2',bcdef%bc_parameters(2),ires)
if (iproc==0) call scanfile (params%infile,'bc_param3',bcdef%bc_parameters(3),ires)
if (iproc==0) call scanfile (params%infile,'bc_param4',bcdef%bc_parameters(4),ires)
if (iproc==0) call scanfile (params%infile,'bc_param5',bcdef%bc_parameters(5),ires)
if (iproc==0) call scanfile (params%infile,'bc_param6',bcdef%bc_parameters(6),ires)
if (iproc==0) call scanfile (params%infile,'bc_param7',bcdef%bc_parameters(7),ires)
if (iproc==0) call scanfile (params%infile,'bc_param8',bcdef%bc_parameters(8),ires)
if (iproc==0) call scanfile (params%infile,'bc_param9',bcdef%bc_parameters(9),ires)
if (iproc==0) call scanfile (params%infile,'bc_param10',bcdef%bc_parameters(10),ires)
if (iproc==0) call scanfile (params%infile,'bc_param11',bcdef%bc_parameters(11),ires)
if (iproc==0) call scanfile (params%infile,'bc_param12',bcdef%bc_parameters(12),ires)
call mpi_bcast(bcdef%bc_parameters,14,mpi_double_precision,0,mpi_comm_world,ierr)
case('segmented_s_line_round')
bcdef%bc_parameters=0.d0
if (iproc==0) call scanfile (params%infile,'bc_param1',bcdef%bc_parameters(1),ires)
if (iproc==0) call scanfile (params%infile,'bc_param2',bcdef%bc_parameters(2),ires)
if (iproc==0) call scanfile (params%infile,'bc_param3',bcdef%bc_parameters(3),ires)
if (iproc==0) call scanfile (params%infile,'bc_param4',bcdef%bc_parameters(4),ires)
if (iproc==0) call scanfile (params%infile,'bc_param5',bcdef%bc_parameters(5),ires)
if (iproc==0) call scanfile (params%infile,'bc_param6',bcdef%bc_parameters(6),ires)
if (iproc==0) call scanfile (params%infile,'bc_param7',bcdef%bc_parameters(7),ires)
if (iproc==0) call scanfile (params%infile,'bc_param8',bcdef%bc_parameters(8),ires)
if (iproc==0) call scanfile (params%infile,'bc_param9',bcdef%bc_parameters(9),ires)
if (iproc==0) call scanfile (params%infile,'bc_param10',bcdef%bc_parameters(10),ires)
if (iproc==0) call scanfile (params%infile,'bc_param11',bcdef%bc_parameters(11),ires)
if (iproc==0) call scanfile (params%infile,'bc_param12',bcdef%bc_parameters(12),ires)
if (iproc==0) call scanfile (params%infile,'bc_param13',bcdef%bc_parameters(13),ires)
call mpi_bcast(bcdef%bc_parameters,14,mpi_double_precision,0,mpi_comm_world,ierr)
case('rot_subduction')
bcdef%bc_parameters=0.d0
if (iproc==0) call scanfile (params%infile,'bc_param1',bcdef%bc_parameters(1),ires)
if (iproc==0) call scanfile (params%infile,'bc_param2',bcdef%bc_parameters(2),ires)
if (iproc==0) call scanfile (params%infile,'bc_param3',bcdef%bc_parameters(3),ires)
if (iproc==0) call scanfile (params%infile,'bc_param4',bcdef%bc_parameters(4),ires)
if (iproc==0) call scanfile (params%infile,'bc_param5',bcdef%bc_parameters(5),ires)
if (iproc==0) call scanfile (params%infile,'bc_param6',bcdef%bc_parameters(6),ires)
if (iproc==0) call scanfile (params%infile,'bc_param7',bcdef%bc_parameters(7),ires)
if (iproc==0) call scanfile (params%infile,'bc_param8',bcdef%bc_parameters(8),ires)
if (iproc==0) call scanfile (params%infile,'bc_param9',bcdef%bc_parameters(9),ires)
if (iproc==0) call scanfile (params%infile,'bc_param10',bcdef%bc_parameters(10),ires)
if (iproc==0) call scanfile (params%infile,'bc_param11',bcdef%bc_parameters(11),ires)
if (iproc==0) call scanfile (params%infile,'bc_param12',bcdef%bc_parameters(12),ires)
if (iproc==0) call scanfile (params%infile,'bc_param13',bcdef%bc_parameters(13),ires)
call mpi_bcast(bcdef%bc_parameters,14,mpi_double_precision,0,mpi_comm_world,ierr)
case('rot_sub_init')
bcdef%bc_parameters=0.d0
if (iproc==0) call scanfile (params%infile,'bc_param1',bcdef%bc_parameters(1),ires)
if (iproc==0) call scanfile (params%infile,'bc_param2',bcdef%bc_parameters(2),ires)
if (iproc==0) call scanfile (params%infile,'bc_param3',bcdef%bc_parameters(3),ires)
if (iproc==0) call scanfile (params%infile,'bc_param4',bcdef%bc_parameters(4),ires)
if (iproc==0) call scanfile (params%infile,'bc_param5',bcdef%bc_parameters(5),ires)
if (iproc==0) call scanfile (params%infile,'bc_param6',bcdef%bc_parameters(6),ires)
if (iproc==0) call scanfile (params%infile,'bc_param7',bcdef%bc_parameters(7),ires)
if (iproc==0) call scanfile (params%infile,'bc_param8',bcdef%bc_parameters(8),ires)
if (iproc==0) call scanfile (params%infile,'bc_param9',bcdef%bc_parameters(9),ires)
if (iproc==0) call scanfile (params%infile,'bc_param10',bcdef%bc_parameters(10),ires)
if (iproc==0) call scanfile (params%infile,'bc_param11',bcdef%bc_parameters(11),ires)
if (iproc==0) call scanfile (params%infile,'bc_param12',bcdef%bc_parameters(12),ires)
if (iproc==0) call scanfile (params%infile,'bc_param13',bcdef%bc_parameters(13),ires)
if (iproc==0) call scanfile (params%infile,'bc_param14',bcdef%bc_parameters(14),ires)
call mpi_bcast(bcdef%bc_parameters,14,mpi_double_precision,0,mpi_comm_world,ierr)
case('iso_only')
bcdef%bc_parameters=0.d0
if (iproc==0) call scanfile (params%infile,'bc_param1',bcdef%bc_parameters(1),ires)
call mpi_bcast(bcdef%bc_parameters,14,mpi_double_precision,0,mpi_comm_world,ierr)
end select
bcdef%utrans=0.d0
bcdef%vtrans=0.d0
if (iproc==0) call scanfile (params%infile,'utrans',bcdef%utrans,ires)
if (iproc==0) call scanfile (params%infile,'vtrans',bcdef%vtrans,ires)
call mpi_bcast(bcdef%utrans,1,mpi_double_precision,0,mpi_comm_world,ierr)
call mpi_bcast(bcdef%vtrans,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%npmin=8
if (iproc==0) call scanfile (params%infile,'npmin',params%npmin,ires)
call mpi_bcast(params%npmin,1,mpi_integer,0,mpi_comm_world,ierr)
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%fixed_cloud=.false.
if (iproc==0) then
call scanfile (params%infile,'fixed_cloud',answer,ires)
if (ires==1) params%fixed_cloud=(trim(answer)=='T')
end if
call mpi_bcast(params%fixed_cloud,1,mpi_logical,0,mpi_comm_world,ierr)
params%gridcloud=.false.
if (iproc==0) then
call scanfile (params%infile,'gridcloud',answer,ires)
if (ires==1) params%gridcloud=(trim(answer)=='T')
end if
call mpi_bcast(params%gridcloud,1,mpi_logical,0,mpi_comm_world,ierr)
params%centerptcloud=.false.
if (iproc==0) then
call scanfile (params%infile,'centerptcloud',answer,ires)
if (ires==1) params%centerptcloud=(trim(answer)=='T')
end if
call mpi_bcast(params%centerptcloud,1,mpi_logical,0,mpi_comm_world,ierr)
params%compaction=.false.
if (iproc==0) then
call scanfile (params%infile,'compaction',answer,ires)
if (ires==1) params%compaction=(trim(answer)=='T')
end if
call mpi_bcast(params%compaction,1,mpi_logical,0,mpi_comm_world,ierr)
params%clnpx=2
if (iproc==0) call scanfile (params%infile,'clnpx',params%clnpx,ires)
call mpi_bcast(params%clnpx,1,mpi_integer,0,mpi_comm_world,ierr)
params%clnpy=2
if (iproc==0) call scanfile (params%infile,'clnpy',params%clnpy,ires)
call mpi_bcast(params%clnpy,1,mpi_integer,0,mpi_comm_world,ierr)
params%clnpz=2
if (iproc==0) call scanfile (params%infile,'clnpz',params%clnpz,ires)
call mpi_bcast(params%clnpz,1,mpi_integer,0,mpi_comm_world,ierr)
params%dstrnz=9
if (iproc==0) call scanfile (params%infile,'dstrnz',params%dstrnz,ires)
call mpi_bcast(params%dstrnz,1,mpi_integer,0,mpi_comm_world,ierr)
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_main=1.d-3
if (iproc==0) call scanfile (params%infile,'tol',params%tol_main,ires)
call mpi_bcast(params%tol_main,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%tol_spinup=params%tol_main
if (iproc==0) call scanfile (params%infile,'tol_spinup',params%tol_spinup,ires)
call mpi_bcast(params%tol,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%tol=params%tol_main
call mpi_bcast(params%tol,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%niter_move=10
if (iproc==0) call scanfile (params%infile,'niter_move',params%niter_move,ires)
call mpi_bcast(params%niter_move,1,mpi_integer,0,mpi_comm_world,ierr)
params%ismooth=.false.
if (iproc==0) then
call scanfile (params%infile,'ismooth',answer,ires)
if (ires==1) params%ismooth = (trim(answer)=='T')
end if
call mpi_bcast(params%ismooth,1,mpi_logical,0,mpi_comm_world,ierr)
params%nb_iter_nl_min=0
if (iproc==0) call scanfile (params%infile,'nb_iter_nl_min',params%nb_iter_nl_min,ires)
call mpi_bcast(params%nb_iter_nl_min,1,mpi_integer,0,mpi_comm_world,ierr)
params%visualise_matrix=.false.
if (iproc==0) then
call scanfile (params%infile,'visualise_matrix',answer,ires)
if (ires==1) params%visualise_matrix=(trim(answer)=='T')
end if
call mpi_bcast(params%visualise_matrix,1,mpi_logical,0,mpi_comm_world,ierr)
params%renumber_nodes = .false.
if (iproc==0) then
call scanfile (params%infile,'renumber_nodes',answer,ires)
if (ires==1) params%renumber_nodes=(trim(answer)=='T')
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
end if
call mpi_bcast(params%renumber_nodes,1,mpi_logical,0,mpi_comm_world,ierr)
do i=1,params%nboxes
write(cm,'(i3)') i
il=1
if (i.lt.100) il=2
if (il.lt.10) il=3
boxes(i)%x0=0.d0
if (iproc==0) call scanfile (params%infile,'box'//cm(il:3)//'x0',boxes(i)%x0,ires)
call mpi_bcast(boxes(i)%x0,1,mpi_double_precision,0,mpi_comm_world,ierr)
boxes(i)%x1=0.d0
if (iproc==0) call scanfile (params%infile,'box'//cm(il:3)//'x1',boxes(i)%x1,ires)
call mpi_bcast(boxes(i)%x1,1,mpi_double_precision,0,mpi_comm_world,ierr)
boxes(i)%y0=0.d0
if (iproc==0) call scanfile (params%infile,'box'//cm(il:3)//'y0',boxes(i)%y0,ires)
call mpi_bcast(boxes(i)%y0,1,mpi_double_precision,0,mpi_comm_world,ierr)
boxes(i)%y1=0.d0
if (iproc==0) call scanfile (params%infile,'box'//cm(il:3)//'y1',boxes(i)%y1,ires)
call mpi_bcast(boxes(i)%y1,1,mpi_double_precision,0,mpi_comm_world,ierr)
boxes(i)%z0=0.d0
if (iproc==0) call scanfile (params%infile,'box'//cm(il:3)//'z0',boxes(i)%z0,ires)
Dave Whipp
committed
boxes(i)%z0=boxes(i)%z0/params%vex
call mpi_bcast(boxes(i)%z0,1,mpi_double_precision,0,mpi_comm_world,ierr)
boxes(i)%z1=0.d0
if (iproc==0) call scanfile (params%infile,'box'//cm(il:3)//'z1',boxes(i)%z1,ires)
Dave Whipp
committed
boxes(i)%z1=boxes(i)%z1/params%vex
call mpi_bcast(boxes(i)%z1,1,mpi_double_precision,0,mpi_comm_world,ierr)
boxes(i)%level=1
if (iproc==0) call scanfile (params%infile,'box'//cm(il:3)//'level',boxes(i)%level,ires)
call mpi_bcast(boxes(i)%level,1,mpi_integer,0,mpi_comm_world,ierr)
enddo
do i=1,params%nsections
write(cm,'(i3)') i
il=1
if (i.lt.100) il=2
if (il.lt.10) il=3
sections(i)%xyz=0
if (iproc==0) call scanfile (params%infile,'xyz_'//cm(il:3),sections(i)%xyz,ires)
sections(i)%slice = 0.1d0
if (iproc==0) call scanfile (params%infile,'slice_'//cm(il:3),sections(i)%slice,ires)
! if (sections(i)%slice<0.d0 .or. sections(i)%slice>1.d0) call stop_run ('pb with slice value')
sections(i)%flag_press = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_press_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_press=(trim(answer)=='T')
end if
sections(i)%flag_spress = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_spress_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_spress=(trim(answer)=='T')
end if
sections(i)%flag_e2d = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_e2d_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_e2d=(trim(answer)=='T')
end if
sections(i)%flag_e3d = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_e3d_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_e3d=(trim(answer)=='T')
end if
sections(i)%flag_strain = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_strain_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_strain=(trim(answer)=='T')
end if
sections(i)%flag_crit = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_crit_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_crit=(trim(answer)=='T')
end if
sections(i)%flag_grid = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_grid_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_grid=(trim(answer)=='T')
end if
sections(i)%flag_u = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_u_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_u=(trim(answer)=='T')
end if
sections(i)%flag_v = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_v_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_v=(trim(answer)=='T')
end if
sections(i)%flag_w = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_w_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_w=(trim(answer)=='T')
end if
sections(i)%flag_uvw = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_uvw_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_uvw=(trim(answer)=='T')
end if
sections(i)%flag_colour = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_colour_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_colour=(trim(answer)=='T')
end if
sections(i)%flag_mu = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_mu_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_mu=(trim(answer)=='T')
end if
sections(i)%flag_plastic = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_plastic_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_plastic=(trim(answer)=='T')
end if
sections(i)%flag_q = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_q_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_q=(trim(answer)=='T')
end if
sections(i)%flag_lode = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_lode_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_lode=(trim(answer)=='T')
end if
sections(i)%flag_vfield = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_vfield_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_vfield=(trim(answer)=='T')
end if
sections(i)%flag_lsf = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_lsf_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_lsf=(trim(answer)=='T')
end if
sections(i)%flag_temp = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_temp_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_temp=(trim(answer)=='T')
end if
sections(i)%flag_velvect = .false.
if (iproc==0) then
call scanfile (params%infile,'flag_velvect_'//cm(il:3),answer,ires)
if (ires==1) sections(i)%flag_velvect=(trim(answer)=='T')
end if
sections(i)%scale=100.d0
if (iproc==0) call scanfile (params%infile,'scale_'//cm(il:3),sections(i)%scale,ires)
sections(i)%colormap = 'jet'
if (iproc==0) call scanfile (params%infile,'colormap_'//cm(il:3),sections(i)%colormap,ires)
sections(i)%ncolours = 256
if (iproc==0) call scanfile (params%infile,'ncolours_'//cm(il:3),sections(i)%ncolours,ires)
end do
!=====[erosion parameters]=====================================================
params%erosion=.false.
if (iproc==0) then
call scanfile (params%infile,'erosion',answer,ires)
if (ires==1) params%erosion=(trim(answer)=='T')
end if
call mpi_bcast(params%erosion,1,mpi_logical,0,mpi_comm_world,ierr)
params%zerosion=0.d0
if (iproc==0) call scanfile (params%infile,'zerosion',params%zerosion,ires)
Dave Whipp
committed
params%zerosion=params%zerosion/params%vex
call mpi_bcast(params%zerosion,1,mpi_double_precision,0,mpi_comm_world,ierr)
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
params%er_start=0.d0
if (iproc==0) call scanfile (params%infile,'er_start',params%er_start,ires)
call mpi_bcast(params%er_start,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%er_end=0.d0
if (iproc==0) call scanfile (params%infile,'er_end',params%er_end,ires)
call mpi_bcast(params%er_end,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%sed_start=0.d0
if (iproc==0) call scanfile (params%infile,'sed_start',params%sed_start,ires)
call mpi_bcast(params%sed_start,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%sed_end=0.d0
if (iproc==0) call scanfile (params%infile,'sed_end',params%sed_end,ires)
call mpi_bcast(params%sed_end,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%sedimentation_type=1
if (iproc==0) call scanfile (params%infile,'sedimentation_type',params%sedimentation_type,ires)
call mpi_bcast(params%sedimentation_type,1,mpi_integer,0,mpi_comm_world,ierr)
params%zaggrade_init=0.d0
if (iproc==0) call scanfile (params%infile,'zaggrade_init',params%zaggrade_init,ires)
params%zaggrade_init=params%zaggrade_init/params%vex
call mpi_bcast(params%zaggrade_init,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%x_agg_start=0.d0
if (iproc==0) call scanfile (params%infile,'x_agg_start',params%x_agg_start,ires)
call mpi_bcast(params%x_agg_start,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%x_agg_end=1.d0
if (iproc==0) call scanfile (params%infile,'x_agg_end',params%x_agg_end,ires)
call mpi_bcast(params%x_agg_end,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%y_agg_start=0.d0
if (iproc==0) call scanfile (params%infile,'y_agg_start',params%y_agg_start,ires)
call mpi_bcast(params%y_agg_start,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%y_agg_end=1.d0
if (iproc==0) call scanfile (params%infile,'y_agg_end',params%y_agg_end,ires)
call mpi_bcast(params%y_agg_end,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%x_agg_sinus_amp=0.d0
if (iproc==0) call scanfile (params%infile,'x_agg_sinus_amp',params%x_agg_sinus_amp,ires)
params%x_agg_sinus_amp=params%x_agg_sinus_amp/params%vex
call mpi_bcast(params%x_agg_sinus_amp,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%x_agg_sinus_wavelth=0.5d0
if (iproc==0) call scanfile (params%infile,'x_agg_sinus_wavelth',params%x_agg_sinus_wavelth,ires)
call mpi_bcast(params%x_agg_sinus_wavelth,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%y_agg_sinus_amp=0.d0
if (iproc==0) call scanfile (params%infile,'y_agg_sinus_amp',params%y_agg_sinus_amp,ires)
params%y_agg_sinus_amp=params%y_agg_sinus_amp/params%vex
call mpi_bcast(params%y_agg_sinus_amp,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%y_agg_sinus_wavelth=0.5d0
if (iproc==0) call scanfile (params%infile,'y_agg_sinus_wavelth',params%y_agg_sinus_wavelth,ires)
call mpi_bcast(params%y_agg_sinus_wavelth,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%aggrade_rate=-1.d0
if (iproc==0) call scanfile (params%infile,'aggrade_rate',params%aggrade_rate,ires)
params%aggrade_rate=params%aggrade_rate/params%vex
call mpi_bcast(params%aggrade_rate,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%z_prog_init=0.d0
if (iproc==0) call scanfile (params%infile,'z_prog_init',params%z_prog_init,ires)
params%z_prog_init=params%z_prog_init/params%vex
call mpi_bcast(params%z_prog_init,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%z_prog_fin=0.d0
if (iproc==0) call scanfile (params%infile,'z_prog_fin',params%z_prog_fin,ires)
params%z_prog_fin=params%z_prog_fin/params%vex
call mpi_bcast(params%z_prog_fin,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%x_prog_start=0.d0
if (iproc==0) call scanfile (params%infile,'x_prog_start',params%x_prog_start,ires)
call mpi_bcast(params%x_prog_start,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%x_prog_end=1.d0
if (iproc==0) call scanfile (params%infile,'x_prog_end',params%x_prog_end,ires)
call mpi_bcast(params%x_prog_end,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%x_prog_length=1.d0
if (iproc==0) call scanfile (params%infile,'x_prog_length',params%x_prog_length,ires)
call mpi_bcast(params%x_prog_length,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%prog_rate_u=0.d0
if (iproc==0) call scanfile (params%infile,'prog_rate_u',params%prog_rate_u,ires)
call mpi_bcast(params%prog_rate_u,1,mpi_double_precision,0,mpi_comm_world,ierr)
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
params%length_scale=1.d0
if (iproc==0) call scanfile (params%infile,'length_scale',params%length_scale,ires)
call mpi_bcast(params%length_scale,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%velocity_scale=1.d0
if (iproc==0) call scanfile (params%infile,'velocity_scale',params%velocity_scale,ires)
call mpi_bcast(params%velocity_scale,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%fluvial_erosion=2.d-1
if (iproc==0) call scanfile (params%infile,'fluvial_erosion',params%fluvial_erosion,ires)
call mpi_bcast(params%fluvial_erosion,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%diffusion_erosion=8.d0
if (iproc==0) call scanfile (params%infile,'diffusion_erosion',params%diffusion_erosion,ires)
call mpi_bcast(params%diffusion_erosion,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%baselevelx0=1
if (iproc==0) call scanfile (params%infile,'baselevelx0',params%baselevelx0,ires)
call mpi_bcast(params%baselevelx0,1,mpi_integer,0,mpi_comm_world,ierr)
params%baselevelx1=1
if (iproc==0) call scanfile (params%infile,'baselevelx1',params%baselevelx1,ires)
call mpi_bcast(params%baselevelx1,1,mpi_integer,0,mpi_comm_world,ierr)
params%baselevely0=1
if (iproc==0) call scanfile (params%infile,'baselevely0',params%baselevely0,ires)
call mpi_bcast(params%baselevely0,1,mpi_integer,0,mpi_comm_world,ierr)
params%baselevely1=1
if (iproc==0) call scanfile (params%infile,'baselevely1',params%baselevely1,ires)
call mpi_bcast(params%baselevely1,1,mpi_integer,0,mpi_comm_world,ierr)
params%compute_qpgram=.false.
if (iproc.eq.0) then
call scanfile (params%infile,'compute_qpgram',answer,ires)
if (ires==1) params%compute_qpgram=(trim(answer)=='T')
end if
call mpi_bcast(params%compute_qpgram,1,mpi_logical,0,mpi_comm_world,ierr)
!=====[flexure parameters]=====================================================
params%isostasy=.false.
if (iproc.eq.0) then
call scanfile (params%infile,'isostasy',answer,ires)
if (ires==1) params%isostasy=(trim(answer)=='T')
call mpi_bcast(params%isostasy,1,mpi_logical,0,mpi_comm_world,ierr)
params%flexure=.false.
if (iproc.eq.0) then
call scanfile (params%infile,'flexure',answer,ires)
if (ires==1) params%flexure=(trim(answer)=='T')
call mpi_bcast(params%flexure,1,mpi_logical,0,mpi_comm_world,ierr)
params%isobc=.false.
if (iproc==0) then
call scanfile (params%infile,'isobc',answer,ires)
if (ires==1) params%isobc=(trim(answer)=='T')
end if
call mpi_bcast(params%isobc,1,mpi_logical,0,mpi_comm_world,ierr)
params%elastic_plate_thickness=20.d3
if (iproc==0) call scanfile (params%infile,'elastic_plate_thickness',params%elastic_plate_thickness,ires)
call mpi_bcast(params%elastic_plate_thickness,1,mpi_double_precision,0,mpi_comm_world,ierr)
params%density_difference=3.d3
if (iproc==0) call scanfile (params%infile,'density_difference',params%density_difference,ires)
call mpi_bcast(params%density_difference,1,mpi_double_precision,0,mpi_comm_world,ierr)
!=====[nest parameters]========================================================
params%nest=.false.
if (iproc==0) then
call scanfile (params%infile,'nest',answer,ires)
if (ires==1) params%nest=(trim(answer)=='T')
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)
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
nest%sselemx=1.d0
if (iproc==0) call scanfile (params%infile,'sselemx',nest%sselemx,ires)
call mpi_bcast(nest%sselemx,1,mpi_double_precision,0,mpi_comm_world,ierr)
nest%sselemy=1.d0
if (iproc==0) call scanfile (params%infile,'sselemy',nest%sselemy,ires)
call mpi_bcast(nest%sselemy,1,mpi_double_precision,0,mpi_comm_world,ierr)
nest%sselemz=1.d0
if (iproc==0) call scanfile (params%infile,'sselemz',nest%sselemz,ires)
call mpi_bcast(nest%sselemz,1,mpi_double_precision,0,mpi_comm_world,ierr)
nest%xminls=0.d0
if (iproc==0) call scanfile (params%infile,'xminls',nest%xminls,ires)
call mpi_bcast(nest%xminls,1,mpi_double_precision,0,mpi_comm_world,ierr)
nest%yminls=0.d0
if (iproc==0) call scanfile (params%infile,'yminls',nest%yminls,ires)
call mpi_bcast(nest%yminls,1,mpi_double_precision,0,mpi_comm_world,ierr)
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)
Dave Whipp
committed
! Defined, but not broadcast or read from input file
!params%distance_exponent=-log(2.d0)/log(cos(params%anglemax))
params%distance_exponent=1.d0
Dave Whipp
committed
! Input values are now written to stdout or log files here
if (params%debug.gt.0 .and. iproc.eq.0) then
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,e11.4)') shift//'tol_spinup ',params%tol_spinup
write(*,'(a,l1)') shift//'sstemp_spinup ',params%sstemp_spinup
write(*,'(a,e11.4)') shift//'sstemp_viscosity_spinup ',params%sstemp_viscosity_spinup
write(*,'(a,e11.4)') shift//'sstemp_penalty_spinup ',params%sstemp_penalty_spinup
write(*,'(a,l1)') shift//'all_surf_fixed_spinup ',params%all_surf_fixed_spinup
do i=1,params%ns
write(*,'(a,i4,a,i4)') shift//'surface ',i,' material_spinup ',surface(i)%material_spinup
enddo
write(*,'(a,l1)') shift//'fixed_cloud_spinup ',params%fixed_cloud_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
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
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
case('segmented_s_line_round')
write(*,'(a)') shift//'Boundary condition parameters'
do i=1,13
write(*,'(a,i2,a,e11.4)') shift//'bc_parameter ',i,' ',bcdef%bc_parameters(i)
enddo
case('rot_subduction')
write(*,'(a)') shift//'Boundary condition parameters'
do i=1,13
write(*,'(a,i2,a,e11.4)') shift//'bc_parameter ',i,' ',bcdef%bc_parameters(i)
enddo
case('rot_sub_init')
write(*,'(a)') shift//'Boundary condition parameters'
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,l1)') shift//'gridcloud ',params%gridcloud
write(*,'(a,i4)') shift//'clnpx ',params%clnpx
write(*,'(a,i4)') shift//'clnpy ',params%clnpy
write(*,'(a,i4)') shift//'clnpz ',params%clnpz
write(*,'(a,i4)') shift//'dstrnz ',params%dstrnz
write(*,'(a,l1)') shift//'centerptcloud ',params%centerptcloud
write(*,'(a,l1)') shift//'compaction ',params%compaction
write(*,'(a,l1)') shift//'move_cloud_at_midpoint ',params%move_cloud_at_midpoint
write(*,'(a,l1)') shift//'fixed_cloud ',params%fixed_cloud
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,l1)') shift//'wsmp_scaling ',params%wsmp_scaling
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
Dave Whipp
committed
write(*,'(a,l1)') shift//'sstemp_on_restart ',params%sstemp_on_restart
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,l1)') shift//'materials_on_cloud ',params%materials_on_cloud
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
Dave Whipp
committed
write(*,'(a,i4)') shift//'dommat ',params%dommat
Dave Whipp
committed
write(*,'(a,e11.4)') shift//'domvol ',params%domvol
Dave Whipp
committed
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//'fviscosity ',mat(i)%fviscosity
write(*,'(a,a16)') shift//'fvisc_weak_type ',mat(i)%fvisc_weak_type
write(*,'(a,e11.4)') shift//'fvisc_weak_onset ',mat(i)%fvisc_weak_onset
write(*,'(a,e11.4)') shift//'fvisc_weak_end ',mat(i)%fvisc_weak_end
Dave Whipp
committed
write(*,'(a,e11.4)') shift//'fvisc_weak_final ',mat(i)%fvisc_weak_final
write(*,'(a,e11.4)') shift//'fvisc_strong_onset ',mat(i)%fvisc_strong_onset
write(*,'(a,e11.4)') shift//'fvisc_strong_end ',mat(i)%fvisc_strong_end
write(*,'(a,e11.4)') shift//'fvisc_strong_final ',mat(i)%fvisc_strong_final
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
write(*,'(a,a16)') shift//'plasticity_ss_type_coh ',mat(i)%plasticity_ss_type_coh
write(*,'(a,a16)') shift//'plasticity_ss_type_phi ',mat(i)%plasticity_ss_type_phi
write(*,'(a,l1)') shift//'compactible ',mat(i)%compactible
write(*,'(a,e11.4)') shift//'grain_density ',mat(i)%grain_density
write(*,'(a,e11.4)') shift//'pore_fluid_density ',mat(i)%pore_fluid_density
write(*,'(a,e11.4)') shift//'surface_porosity ',mat(i)%surface_porosity
write(*,'(a,e11.4)') shift//'compaction_coef ',mat(i)%compaction_coef
Dave Whipp
committed
if (trim(mat(i)%plasticity_type).ne.'No') then
write(*,'(a,i4)') shift//'Plasticity parameters for material ',i
Dave Whipp
committed
do j=1,14
write(*,'(a,i2,a2,e11.4)') shift//'plasticity parameter ',j,' ',mat(i)%plasticity_parameters(j)
Dave Whipp
committed
enddo
endif
Dave Whipp
committed
write (*,'(a,i4)') shift//'Material transitions for material ',i
do j=1,6
write(*,'(a,i1,a2,e11.4)') shift//'mattrans ',j,' ',mat(i)%mattrans(j)
Dave Whipp
committed
enddo
do j=1,6
write(*,'(a,i1,a2,i4)') shift//'transnum ',j,' ',mat(i)%transnum(j)
Dave Whipp
committed
enddo
Dave Whipp
committed
enddo
write(*,'(a,e11.4)') shift//'viscositymin ',params%viscositymin
write(*,'(a,e11.4)') shift//'viscositymax ',params%viscositymax
write(*,'(a)') shift//'--- SURFACES ---'
write(*,'(a,l1)') shift//'remove_surf_pts ',params%remove_surf_pts
Dave Whipp
committed
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
Dave Whipp
committed
write(*,'(a,i4,a,i4)') shift//'surface ',i,' closed ',surface(i)%closed
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
write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp04 ',surface(i)%sp04
write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp05 ',surface(i)%sp05
write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp06 ',surface(i)%sp06
write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp07 ',surface(i)%sp07
write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp08 ',surface(i)%sp08
write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp09 ',surface(i)%sp09
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,e11.4)') shift//'surface ',i,' sp13 ',surface(i)%sp13
write(*,'(a,i4,a,e11.4)') shift//'surface ',i,' sp14 ',surface(i)%sp14
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
write(*,'(a,i4,a,l1)') shift//'surface ',i,' fixed_surf_spinup ',surface(i)%fixed_surf_spinup
write(*,'(a,i4,a,l1)') shift//'surface ',i,' fixed_surf ',surface(i)%fixed_surf
write(*,'(a,i4,a,l1)') shift//'surface ',i,' surf_for_mat_props ',surface(i)%surf_for_mat_props
Dave Whipp
committed
write(*,'(a,i4,a,l1)') shift//'surface ',i,' remove_after_mat_def ',surface(i)%remove_after_mat_def
Dave Whipp
committed
enddo
write(*,'(a,i4)') shift//'niter_move ',params%niter_move
write(*,'(a)') shift//'--- REFINEMENT IN BOXES ---'
Dave Whipp
committed
if (params%nboxes.gt.0) then
do i=1,params%nboxes
write(*,'(a,i3,a)') shift//'--- Input values for box ',i,' ---'
write(*,'(a,e11.4)') shift//'box x0 ',boxes(i)%x0
write(*,'(a,e11.4)') shift//'box x1 ',boxes(i)%x1
write(*,'(a,e11.4)') shift//'box y0 ',boxes(i)%y0
write(*,'(a,e11.4)') shift//'box y1 ',boxes(i)%y1
write(*,'(a,e11.4)') shift//'box z0 ',boxes(i)%z0
write(*,'(a,e11.4)') shift//'box z1 ',boxes(i)%z1
write(*,'(a,i4)') shift//'box level ',boxes(i)%level
Dave Whipp
committed
enddo
endif
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
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
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
write(*,'(a)') shift//'--- SEDIMENTATION ---'
write(*,'(a,l1)') shift//'sedimentation ',params%sedimentation
write(*,'(a,i4)') shift//'sedimentation_type ',params%sedimentation_type
write(*,'(a,e11.4)') shift//'er_start ',params%er_start
write(*,'(a,e11.4)') shift//'er_end ',params%er_end
write(*,'(a,e11.4)') shift//'sed_start ',params%sed_start
write(*,'(a,e11.4)') shift//'sed_end ',params%sed_end
write(*,'(a,e11.4)') shift//'zaggrade_init ',params%zaggrade_init
write(*,'(a,e11.4)') shift//'x_agg_start ',params%x_agg_start
write(*,'(a,e11.4)') shift//'x_agg_end ',params%x_agg_end
write(*,'(a,e11.4)') shift//'y_agg_start ',params%y_agg_start
write(*,'(a,e11.4)') shift//'y_agg_end ',params%y_agg_end
write(*,'(a,e11.4)') shift//'x_agg_sinus_amp ',params%x_agg_sinus_amp
write(*,'(a,e11.4)') shift//'x_agg_sinus_wavelth ',params%x_agg_sinus_wavelth
write(*,'(a,e11.4)') shift//'y_agg_sinus_amp ',params%y_agg_sinus_amp
write(*,'(a,e11.4)') shift//'y_agg_sinus_wavelth ',params%y_agg_sinus_wavelth
write(*,'(a,e11.4)') shift//'aggrade_rate ',params%aggrade_rate
write(*,'(a,e11.4)') shift//'z_prog_init ',params%z_prog_init
write(*,'(a,e11.4)') shift//'z_prog_fin ',params%z_prog_fin
write(*,'(a,e11.4)') shift//'x_prog_start ',params%x_prog_start
write(*,'(a,e11.4)') shift//'x_prog_end ',params%x_prog_end
write(*,'(a,e11.4)') shift//'x_prog_length ',params%x_prog_length
write(*,'(a,e11.4)') shift//'prog_rate_u ',params%prog_rate_u
write(*,'(a)') shift//'--- MATRIX VISUALISATION ---'
write(*,'(a,l1)') shift//'visualise_matrix ',params%visualise_matrix
write(*,'(a)') shift//'--- CROSS SECTIONS ---'
Dave Whipp
committed
if (params%nsections.gt.0) then
do i=1,params%nsections
write(*,'(a,i3,a)') shift//'--- Input values for section ',i,' ---'
write(*,'(a,i4)') shift//'section xyz ',sections(i)%xyz
write(*,'(a,e11.4)') shift//'section slice ',sections(i)%slice
write(*,'(a,l1)') shift//'section flag press ',sections(i)%flag_press
write(*,'(a,l1)') shift//'section flag spress ',sections(i)%flag_spress
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 plastic ',sections(i)%flag_plastic
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
write(*,'(a,a3)') shift//'section colormap ',sections(i)%colormap
write(*,'(a,i4)') shift//'section ncolours ',sections(i)%ncolours
Dave Whipp
committed
enddo
endif
!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,'(a32,e11.4)') 'tol_spinup ',params%tol_spinup
write(threadinfo%Logunit,'(a32,l1)') 'sstemp_spinup ',params%sstemp_spinup
write(threadinfo%Logunit,'(a32,e11.4)') 'sstemp_viscosity_spinup ',params%sstemp_viscosity_spinup
write(threadinfo%Logunit,'(a32,e11.4)') 'sstemp_penalty_spinup ',params%sstemp_penalty_spinup
write(threadinfo%Logunit,'(a32,l1)') 'all_surf_fixed_spinup ',params%all_surf_fixed_spinup
do i=1,params%ns
write(threadinfo%Logunit,'(a32,i4,a,i4)') 'surface ',i,' material_spinup ',surface(i)%material_spinup
enddo
write(threadinfo%Logunit,'(a32,l1)') 'fixed_cloud_spinup ',params%fixed_cloud_spinup
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
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')
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
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
write(threadinfo%Logunit,'(a)') 'Boundary condition parameters'
write(threadinfo%Logunit,'(a32,i2,a,e11.4)') 'bc_parameter ',i,' ',bcdef%bc_parameters(i)
case('segmented_s_line_round')
write(threadinfo%Logunit,'(a)') 'Boundary condition parameters'
do i=1,13
write(threadinfo%Logunit,'(a32,i2,a,e11.4)') 'bc_parameter ',i,' ',bcdef%bc_parameters(i)
enddo
case('rot_subduction')
write(threadinfo%Logunit,'(a)') 'Boundary condition parameters'
do i=1,13
write(threadinfo%Logunit,'(a32,i2,a,e11.4)') 'bc_parameter ',i,' ',bcdef%bc_parameters(i)
enddo
case('rot_sub_init')
write(threadinfo%Logunit,'(a)') 'Boundary condition parameters'
write(threadinfo%Logunit,'(a32,i2,a,e11.4)') 'bc_parameter ',i,' ',bcdef%bc_parameters(i)
enddo
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,'(a32,l1)') 'gridcloud ',params%gridcloud
write(threadinfo%Logunit,'(a32,i4)') 'clnpx ',params%clnpx
write(threadinfo%Logunit,'(a32,i4)') 'clnpy ',params%clnpy
write(threadinfo%Logunit,'(a32,i4)') 'clnpz ',params%clnpz
write(threadinfo%Logunit,'(a32,i4)') 'dstrnz ',params%dstrnz
write(threadinfo%Logunit,'(a32,l1)') 'centerptcloud ',params%centerptcloud
write(threadinfo%Logunit,'(a32,l1)') 'compaction ',params%compaction
write(threadinfo%Logunit,'(a32,l1)') 'move_cloud_at_midpoint ',params%move_cloud_at_midpoint
write(threadinfo%Logunit,'(a32,l1)') 'fixed_cloud ',params%fixed_cloud
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,'(a32,l1)') 'wsmp_scaling ',params%wsmp_scaling
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
Dave Whipp
committed
write(threadinfo%Logunit,'(a32,l1)') 'sstemp_on_restart ',params%sstemp_on_restart
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,l1)') 'materials_on_cloud ',params%materials_on_cloud
Dave Whipp
committed
write(threadinfo%Logunit,'(a32,i4)') 'material0 ',material0
write(threadinfo%Logunit,'(a32,l1)') 'bulkvisc ',params%bulkvisc
Dave Whipp
committed
write(threadinfo%Logunit,'(a32,l1)') 'init_e2d ',params%init_e2d
write(threadinfo%Logunit,'(a32,e11.4)') 'e2d0 ',params%e2d0
Dave Whipp
committed
write(threadinfo%Logunit,'(a32,i4)') 'dommat ',params%dommat
Dave Whipp
committed
write(threadinfo%Logunit,'(a32,e11.4)') 'domvol ',params%domvol
Dave Whipp
committed
do i=1,params%nmat
write(threadinfo%Logunit,'(a,i4,a)') '--- Properties for material ',i,' ---'
Dave Whipp
committed
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)') 'fviscosity ',mat(i)%fviscosity
write(threadinfo%Logunit,'(a32,a16)') 'fvisc_weak_type ',mat(i)%fvisc_weak_type
write(threadinfo%Logunit,'(a32,e11.4)') 'fvisc_weak_onset ',mat(i)%fvisc_weak_onset
write(threadinfo%Logunit,'(a32,e11.4)') 'fvisc_weak_end ',mat(i)%fvisc_weak_end
write(threadinfo%Logunit,'(a32,e11.4)') 'fvisc_weak_final ',mat(i)%fvisc_weak_final
Dave Whipp
committed
write(threadinfo%Logunit,'(a32,e11.4)') 'fvisc_strong_onset ',mat(i)%fvisc_strong_onset
write(threadinfo%Logunit,'(a32,e11.4)') 'fvisc_strong_end ',mat(i)%fvisc_strong_end
write(threadinfo%Logunit,'(a32,e11.4)') 'fvisc_strong_final ',mat(i)%fvisc_strong_final
Dave Whipp
committed
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
Dave Whipp
committed
write(threadinfo%Logunit,'(a32,a8)') 'plasticity_type ',mat(i)%plasticity_type
write(threadinfo%Logunit,'(a32,a16)') 'plasticity_ss_type_coh ',mat(i)%plasticity_ss_type_coh
write(threadinfo%Logunit,'(a32,a16)') 'plasticity_ss_type_phi ',mat(i)%plasticity_ss_type_phi
write(threadinfo%Logunit,'(a32,l1)') 'compactible ',mat(i)%compactible
write(threadinfo%Logunit,'(a32,e11.4)') 'grain_density ',mat(i)%grain_density
write(threadinfo%Logunit,'(a32,e11.4)') 'pore_fluid_density ',mat(i)%pore_fluid_density
write(threadinfo%Logunit,'(a32,e11.4)') 'surface_porosity ',mat(i)%surface_porosity
write(threadinfo%Logunit,'(a32,e11.4)') 'compaction_coef ',mat(i)%compaction_coef
Dave Whipp
committed
if (trim(mat(i)%plasticity_type).ne.'No') then
write(threadinfo%Logunit,'(a,i4)') 'Plasticity parameters for material ',i
Dave Whipp
committed
do j=1,14
write(threadinfo%Logunit,'(a32,i2,a2,e11.4)') 'plasticity parameter ',j,': ',mat(i)%plasticity_parameters(j)
Dave Whipp
committed
enddo
endif
Dave Whipp
committed
write (threadinfo%Logunit,'(a,i4)') 'Material transitions for material ',i
do j=1,6
write(threadinfo%Logunit,'(a32,i1,a2,e11.4)') 'mattrans ',j,' ',mat(i)%mattrans(j)
Dave Whipp
committed
enddo
do j=1,6
write(threadinfo%Logunit,'(a32,i1,a2,i4)') 'transnum ',j,' ',mat(i)%transnum(j)
Dave Whipp
committed
enddo
Dave Whipp
committed
enddo
write(threadinfo%Logunit,'(a32,e11.4)') 'viscositymin ',params%viscositymin
write(threadinfo%Logunit,'(a32,e11.4)') 'viscositymax ',params%viscositymax
write(threadinfo%Logunit,'(a)') '--- SURFACES ---'
write(threadinfo%Logunit,'(a32,l1)') 'remove_surf_pts ',params%remove_surf_pts
Dave Whipp
committed
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
Dave Whipp
committed
write(threadinfo%Logunit,'(a32,i4,a,i4)') 'surface ',i,' closed ',surface(i)%closed
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
write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp04 ',surface(i)%sp04
write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp05 ',surface(i)%sp05
write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp06 ',surface(i)%sp06
write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp07 ',surface(i)%sp07
write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp08 ',surface(i)%sp08
write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp09 ',surface(i)%sp09
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,e11.4)') 'surface ',i,' sp13 ',surface(i)%sp13
write(threadinfo%Logunit,'(a32,i4,a,e11.4)') 'surface ',i,' sp14 ',surface(i)%sp14
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
write(threadinfo%Logunit,'(a32,i4,a,l1)') 'surface ',i,' fixed_surf_spinup ',surface(i)%fixed_surf_spinup
write(threadinfo%Logunit,'(a32,i4,a,l1)') 'surface ',i,' fixed_surf ',surface(i)%fixed_surf
write(threadinfo%Logunit,'(a32,i4,a,l1)') 'surface ',i,' surf_for_mat_props ',surface(i)%surf_for_mat_props
Dave Whipp
committed
write(threadinfo%Logunit,'(a32,i4,a,l1)') 'surface ',i,' remove_after_mat_def ',surface(i)%remove_after_mat_def
Dave Whipp
committed
enddo
write(threadinfo%Logunit,'(a32,i4)') 'niter_move ',params%niter_move
write(threadinfo%Logunit,'(a)') '--- REFINEMENT IN BOXES ---'
Dave Whipp
committed
if (params%nboxes.gt.0) then
do i=1,params%nboxes
write(threadinfo%Logunit,'(a,i3,a)') '--- Input values for box ',i,' ---'
Dave Whipp
committed
write(threadinfo%Logunit,'(a32,e11.4)') 'box x0 ',boxes(i)%x0
write(threadinfo%Logunit,'(a32,e11.4)') 'box x1 ',boxes(i)%x1
write(threadinfo%Logunit,'(a32,e11.4)') 'box y0 ',boxes(i)%y0
write(threadinfo%Logunit,'(a32,e11.4)') 'box y1 ',boxes(i)%y1
write(threadinfo%Logunit,'(a32,e11.4)') 'box z0 ',boxes(i)%z0
write(threadinfo%Logunit,'(a32,e11.4)') 'box z1 ',boxes(i)%z1
write(threadinfo%Logunit,'(a32,i4)') 'box level ',boxes(i)%level
enddo
endif
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
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
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
write(threadinfo%Logunit,'(a)') '--- SEDIMENTATION ---'
write(threadinfo%Logunit,'(a32,l1)') 'sedimentation ',params%sedimentation
write(threadinfo%Logunit,'(a32,i4)') 'sedimentation_type ',params%sedimentation_type
write(threadinfo%Logunit,'(a32,e11.4)') 'er_start ',params%er_start
write(threadinfo%Logunit,'(a32,e11.4)') 'er_end ',params%er_end
write(threadinfo%Logunit,'(a32,e11.4)') 'sed_start ',params%sed_start
write(threadinfo%Logunit,'(a32,e11.4)') 'sed_end ',params%sed_end
write(threadinfo%Logunit,'(a32,e11.4)') 'zaggrade_init ',params%zaggrade_init
write(threadinfo%Logunit,'(a32,e11.4)') 'x_agg_start ',params%x_agg_start
write(threadinfo%Logunit,'(a32,e11.4)') 'x_agg_end ',params%x_agg_end
write(threadinfo%Logunit,'(a32,e11.4)') 'y_agg_start ',params%y_agg_start
write(threadinfo%Logunit,'(a32,e11.4)') 'y_agg_end ',params%y_agg_end
write(threadinfo%Logunit,'(a32,e11.4)') 'x_agg_sinus_amp ',params%x_agg_sinus_amp
write(threadinfo%Logunit,'(a32,e11.4)') 'x_agg_sinus_wavelth ',params%x_agg_sinus_wavelth
write(threadinfo%Logunit,'(a32,e11.4)') 'y_agg_sinus_amp ',params%y_agg_sinus_amp
write(threadinfo%Logunit,'(a32,e11.4)') 'y_agg_sinus_wavelth ',params%y_agg_sinus_wavelth
write(threadinfo%Logunit,'(a32,e11.4)') 'aggrade_rate ',params%aggrade_rate
write(threadinfo%Logunit,'(a32,e11.4)') 'z_prog_init ',params%z_prog_init
write(threadinfo%Logunit,'(a32,e11.4)') 'z_prog_fin ',params%z_prog_fin
write(threadinfo%Logunit,'(a32,e11.4)') 'x_prog_start ',params%x_prog_start
write(threadinfo%Logunit,'(a32,e11.4)') 'x_prog_end ',params%x_prog_end
write(threadinfo%Logunit,'(a32,e11.4)') 'x_prog_length ',params%x_prog_length
write(threadinfo%Logunit,'(a32,e11.4)') 'prog_rate_u ',params%prog_rate_u
write(threadinfo%Logunit,'(a)') '--- MATRIX VISUALISATION ---'
write(threadinfo%Logunit,'(a32,l1)') 'visualise_matrix ',params%visualise_matrix
write(threadinfo%Logunit,'(a)') '--- CROSS SECTIONS ---'
Dave Whipp
committed
if (params%nsections.gt.0) then
do i=1,params%nsections
write(threadinfo%Logunit,'(a,i3,a)') '--- Input values for section ',i,' ---'
Dave Whipp
committed
write(threadinfo%Logunit,'(a32,i4)') 'section xyz ',sections(i)%xyz
write(threadinfo%Logunit,'(a32,e11.4)') 'section slice ',sections(i)%slice
write(threadinfo%Logunit,'(a32,l1)') 'section flag press ',sections(i)%flag_press
write(threadinfo%Logunit,'(a32,l1)') 'section flag spress ',sections(i)%flag_spress
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
Dave Whipp
committed
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
Dave Whipp
committed
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
Dave Whipp
committed
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
Dave Whipp
committed
write(threadinfo%Logunit,'(a32,l1)') 'section flag colour ',sections(i)%flag_colour
write(threadinfo%Logunit,'(a32,l1)') 'section flag plastic ',sections(i)%flag_plastic
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
write(threadinfo%Logunit,'(a32,a3)') 'section colormap ',sections(i)%colormap
write(threadinfo%Logunit,'(a32,i4)') 'section ncolours ',sections(i)%ncolours
enddo
endif
!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)') '--------------------------------------------------------------------------------'
Dave Whipp
committed
endif
if(iproc.eq.0) call flush(8)
if(params%debug.gt.1) call flush(threadinfo%logunit)
if (iproc.eq.0) call system ('rm fort.8')
!------------------------------------------------------------------------------|
!------------------------------------------------------------------------------|