[cig-commits] r19714 - in seismo/3D/SPECFEM3D/trunk: examples/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/in_data_files/meshfem3D_files examples/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/in_data_files/meshfem3D_files examples/meshfem3D_examples/many_interfaces examples/meshfem3D_examples/simple_model examples/meshfem3D_examples/socal1D examples/meshfem3D_examples/socal1D/example_deep examples/meshfem3D_examples/socal1D/example_utm in_data_files/meshfem3D_files src/meshfem3D
danielpeter at geodynamics.org
danielpeter at geodynamics.org
Sat Mar 3 13:52:01 PST 2012
Author: danielpeter
Date: 2012-03-03 13:52:01 -0800 (Sat, 03 Mar 2012)
New Revision: 19714
Modified:
seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/in_data_files/meshfem3D_files/Mesh_Par_file
seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/in_data_files/meshfem3D_files/Mesh_Par_file
seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/many_interfaces/Mesh_Par_file
seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/simple_model/Mesh_Par_file
seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file
seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file_001
seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file_042
seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file_168
seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/example_deep/Mesh_Par_file_deep
seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/example_deep/Mesh_Par_file_deep_honor60km
seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/example_utm/Mesh_Par_file_utm
seismo/3D/SPECFEM3D/trunk/in_data_files/meshfem3D_files/Mesh_Par_file
seismo/3D/SPECFEM3D/trunk/src/meshfem3D/create_regions_mesh.f90
seismo/3D/SPECFEM3D/trunk/src/meshfem3D/create_visual_files.f90
seismo/3D/SPECFEM3D/trunk/src/meshfem3D/meshfem3D.f90
seismo/3D/SPECFEM3D/trunk/src/meshfem3D/read_parameter_file.f90
seismo/3D/SPECFEM3D/trunk/src/meshfem3D/save_databases.f90
Log:
adds flag for VTK mesh output files in xmeshfem3D
Modified: seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/in_data_files/meshfem3D_files/Mesh_Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/in_data_files/meshfem3D_files/Mesh_Par_file 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/in_data_files/meshfem3D_files/Mesh_Par_file 2012-03-03 21:52:01 UTC (rev 19714)
@@ -32,6 +32,7 @@
# create mesh files for visualisation or further checking
CREATE_ABAQUS_FILES = .false.
CREATE_DX_FILES = .false.
+CREATE_VTK_FILES = .false.
# path to store the databases files
LOCAL_PATH = ../in_out_files/DATABASES_MPI/
Modified: seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/in_data_files/meshfem3D_files/Mesh_Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/in_data_files/meshfem3D_files/Mesh_Par_file 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/in_data_files/meshfem3D_files/Mesh_Par_file 2012-03-03 21:52:01 UTC (rev 19714)
@@ -32,6 +32,7 @@
# create mesh files for visualisation or further checking
CREATE_ABAQUS_FILES = .false.
CREATE_DX_FILES = .false.
+CREATE_VTK_FILES = .false.
# path to store the databases files
LOCAL_PATH = ../in_out_files/DATABASES_MPI/
Modified: seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/many_interfaces/Mesh_Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/many_interfaces/Mesh_Par_file 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/many_interfaces/Mesh_Par_file 2012-03-03 21:52:01 UTC (rev 19714)
@@ -32,6 +32,7 @@
# create mesh files for visualisation or further checking
CREATE_ABAQUS_FILES = .false.
CREATE_DX_FILES = .false.
+CREATE_VTK_FILES = .false.
# path to store the databases files
LOCAL_PATH = ../in_out_files/DATABASES_MPI
Modified: seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/simple_model/Mesh_Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/simple_model/Mesh_Par_file 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/simple_model/Mesh_Par_file 2012-03-03 21:52:01 UTC (rev 19714)
@@ -32,6 +32,7 @@
# create mesh files for visualisation or further checking
CREATE_ABAQUS_FILES = .true.
CREATE_DX_FILES = .true.
+CREATE_VTK_FILES = .false.
# path to store the databases files
LOCAL_PATH = ../in_out_files/DATABASES_MPI
Modified: seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file 2012-03-03 21:52:01 UTC (rev 19714)
@@ -32,6 +32,7 @@
# create mesh files for visualisation or further checking
CREATE_ABAQUS_FILES = .true.
CREATE_DX_FILES = .true.
+CREATE_VTK_FILES = .false.
# path to store the databases files
LOCAL_PATH = ../in_out_files/DATABASES_MPI
Modified: seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file_001
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file_001 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file_001 2012-03-03 21:52:01 UTC (rev 19714)
@@ -32,6 +32,7 @@
# create mesh files for visualisation or further checking
CREATE_ABAQUS_FILES = .true.
CREATE_DX_FILES = .true.
+CREATE_VTK_FILES = .false.
# path to store the databases files
LOCAL_PATH = ../in_out_files/DATABASES_MPI
Modified: seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file_042
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file_042 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file_042 2012-03-03 21:52:01 UTC (rev 19714)
@@ -32,6 +32,7 @@
# create mesh files for visualisation or further checking
CREATE_ABAQUS_FILES = .true.
CREATE_DX_FILES = .true.
+CREATE_VTK_FILES = .false.
# path to store the databases files
LOCAL_PATH = ../in_out_files/DATABASES_MPI
Modified: seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file_168
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file_168 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/Mesh_Par_file_168 2012-03-03 21:52:01 UTC (rev 19714)
@@ -32,6 +32,7 @@
# create mesh files for visualisation or further checking
CREATE_ABAQUS_FILES = .true.
CREATE_DX_FILES = .true.
+CREATE_VTK_FILES = .false.
# path to store the databases files
LOCAL_PATH = ../in_out_files/DATABASES_MPI
Modified: seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/example_deep/Mesh_Par_file_deep
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/example_deep/Mesh_Par_file_deep 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/example_deep/Mesh_Par_file_deep 2012-03-03 21:52:01 UTC (rev 19714)
@@ -32,6 +32,7 @@
# create mesh files for visualisation or further checking
CREATE_ABAQUS_FILES = .true.
CREATE_DX_FILES = .true.
+CREATE_VTK_FILES = .false.
# path to store the databases files
LOCAL_PATH = ../in_out_files/DATABASES_MPI
Modified: seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/example_deep/Mesh_Par_file_deep_honor60km
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/example_deep/Mesh_Par_file_deep_honor60km 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/example_deep/Mesh_Par_file_deep_honor60km 2012-03-03 21:52:01 UTC (rev 19714)
@@ -32,6 +32,7 @@
# create mesh files for visualisation or further checking
CREATE_ABAQUS_FILES = .true.
CREATE_DX_FILES = .true.
+CREATE_VTK_FILES = .false.
# path to store the databases files
LOCAL_PATH = ../in_out_files/DATABASES_MPI
Modified: seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/example_utm/Mesh_Par_file_utm
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/example_utm/Mesh_Par_file_utm 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/example_utm/Mesh_Par_file_utm 2012-03-03 21:52:01 UTC (rev 19714)
@@ -32,6 +32,7 @@
# create mesh files for visualisation or further checking
CREATE_ABAQUS_FILES = .true.
CREATE_DX_FILES = .true.
+CREATE_VTK_FILES = .false.
# path to store the databases files
LOCAL_PATH = ../in_out_files/DATABASES_MPI
Modified: seismo/3D/SPECFEM3D/trunk/in_data_files/meshfem3D_files/Mesh_Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/in_data_files/meshfem3D_files/Mesh_Par_file 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/in_data_files/meshfem3D_files/Mesh_Par_file 2012-03-03 21:52:01 UTC (rev 19714)
@@ -32,6 +32,7 @@
# create mesh files for visualisation or further checking
CREATE_ABAQUS_FILES = .false.
CREATE_DX_FILES = .false.
+CREATE_VTK_FILES = .false.
# path to store the databases files
LOCAL_PATH = ../in_out_files/DATABASES_MPI
Modified: seismo/3D/SPECFEM3D/trunk/src/meshfem3D/create_regions_mesh.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/meshfem3D/create_regions_mesh.f90 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/src/meshfem3D/create_regions_mesh.f90 2012-03-03 21:52:01 UTC (rev 19714)
@@ -31,15 +31,15 @@
subroutine create_regions_mesh(xgrid,ygrid,zgrid,ibool, &
- xstore,ystore,zstore,iproc_xi,iproc_eta,addressing,nspec, &
- NGLOB_AB,npointot, &
- NEX_PER_PROC_XI,NEX_PER_PROC_ETA,NER, &
- NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX,NSPEC2D_BOTTOM,NSPEC2D_TOP, &
- NPROC_XI,NPROC_ETA, &
- nsubregions,subregions,nblayers,ner_layer,NMATERIALS,material_properties, &
- myrank,LOCAL_PATH,UTM_X_MIN,UTM_X_MAX,UTM_Y_MIN,UTM_Y_MAX,Z_DEPTH_BLOCK, &
- CREATE_ABAQUS_FILES,CREATE_DX_FILES,&
- USE_REGULAR_MESH,NDOUBLINGS,ner_doublings)
+ xstore,ystore,zstore,iproc_xi,iproc_eta,addressing,nspec, &
+ NGLOB_AB,npointot, &
+ NEX_PER_PROC_XI,NEX_PER_PROC_ETA,NER, &
+ NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX,NSPEC2D_BOTTOM,NSPEC2D_TOP, &
+ NPROC_XI,NPROC_ETA, &
+ nsubregions,subregions,nblayers,ner_layer,NMATERIALS,material_properties, &
+ myrank,LOCAL_PATH,UTM_X_MIN,UTM_X_MAX,UTM_Y_MIN,UTM_Y_MAX,Z_DEPTH_BLOCK, &
+ CREATE_ABAQUS_FILES,CREATE_DX_FILES,CREATE_VTK_FILES, &
+ USE_REGULAR_MESH,NDOUBLINGS,ner_doublings)
! create the different regions of the mesh
@@ -59,7 +59,7 @@
integer npointot
logical USE_REGULAR_MESH
- logical CREATE_ABAQUS_FILES,CREATE_DX_FILES
+ logical CREATE_ABAQUS_FILES,CREATE_DX_FILES,CREATE_VTK_FILES
integer NDOUBLINGS
integer, dimension(2) :: ner_doublings
@@ -365,6 +365,7 @@
! check that we assign a material to each element
if(any(true_material_num(:) == -1000)) stop 'Element of undefined material found'
+ ! puts x,y,z locations into 1D arrays
do ispec=1,nspec
ieoff = NGLLCUBE*(ispec-1)
ilocnum = 0
@@ -380,12 +381,23 @@
enddo
enddo
+ ! sorts xp,yp,zp in lexicographical order (increasing values)
call get_global(nspec,xp,yp,zp,iglob,locval,ifseg,nglob,npointot,UTM_X_MIN,UTM_X_MAX)
+ ! checks nglob range with pre-computed values
+ ! note: if mesh squeezes elements such that we can't distinguish two close-by mesh points anymore
+ ! the total number of mesh points might have changed
+ if(nglob /= NGLOB_AB) then
+ print*,'error nglob: sorted value ',nglob,'differs from pre-computed ',NGLOB_AB
+ call exit_MPI(myrank,'incorrect global number, please check mesh input parameters')
+ end if
+
! put in classical format
allocate(nodes_coords(nglob,3),stat=ier)
if( ier /= 0 ) stop 'error allocating array nodes_coords'
-
+ nodes_coords(:,:) = 0.0d0
+ ibool(:,:,:,:) = 0
+
do ispec=1,nspec
ieoff = NGLLCUBE*(ispec-1)
ilocnum = 0
@@ -401,28 +413,39 @@
enddo
enddo
enddo
-
- if(minval(ibool(:,:,:,:)) /= 1 .or. maxval(ibool(:,:,:,:)) /= NGLOB_AB) then
- print*,maxval(ibool(:,:,:,:)) ,NGLOB_AB
- call exit_MPI(myrank,'incorrect global numbering')
+
+ ! checks ibool range
+ if(minval(ibool(:,:,:,:)) /= 1 .or. maxval(ibool(:,:,:,:)) /= nglob) then
+ print*,'error ibool: maximum value ',maxval(ibool(:,:,:,:)) ,'should be ',nglob
+ call exit_MPI(myrank,'incorrect global ibool numbering')
end if
- call create_visual_files(CREATE_ABAQUS_FILES,CREATE_DX_FILES,nspec,nglob,prname,nodes_coords,ibool,true_material_num)
+ ! outputs mesh file for visualization
+ call create_visual_files(CREATE_ABAQUS_FILES,CREATE_DX_FILES,CREATE_VTK_FILES, &
+ nspec,nglob, &
+ prname,nodes_coords,ibool,true_material_num)
+ ! stores boundary informations
call store_boundaries(myrank,iboun,nspec, &
ibelm_xmin,ibelm_xmax,ibelm_ymin,ibelm_ymax,ibelm_bottom,ibelm_top, &
nspec2D_xmin,nspec2D_xmax,nspec2D_ymin,nspec2D_ymax, &
NSPEC2D_BOTTOM,NSPEC2D_TOP, &
NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX)
+ ! checks mesh resolution
VP_MAX = maxval(material_properties(:,2))
call check_mesh_quality(myrank,VP_MAX,nglob,nspec,nodes_coords(:,1),nodes_coords(:,2),nodes_coords(:,3),ibool)
- call save_databases(prname,nspec,nglob,iproc_xi,iproc_eta,NPROC_XI,NPROC_ETA,addressing,iMPIcut_xi,iMPIcut_eta,&
- ibool,nodes_coords,true_material_num,nspec2D_xmin,nspec2D_xmax,nspec2D_ymin,nspec2D_ymax,NSPEC2D_BOTTOM,NSPEC2D_TOP,&
- NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX,ibelm_xmin,ibelm_xmax,ibelm_ymin,ibelm_ymax,ibelm_bottom,ibelm_top,&
- NMATERIALS,material_properties)
+ ! saves mesh as databases file
+ call save_databases(prname,nspec,nglob,iproc_xi,iproc_eta, &
+ NPROC_XI,NPROC_ETA,addressing,iMPIcut_xi,iMPIcut_eta,&
+ ibool,nodes_coords,true_material_num, &
+ nspec2D_xmin,nspec2D_xmax,nspec2D_ymin,nspec2D_ymax,NSPEC2D_BOTTOM,NSPEC2D_TOP,&
+ NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX, &
+ ibelm_xmin,ibelm_xmax,ibelm_ymin,ibelm_ymax,ibelm_bottom,ibelm_top,&
+ NMATERIALS,material_properties)
+
end subroutine create_regions_mesh
end module createRegMesh
Modified: seismo/3D/SPECFEM3D/trunk/src/meshfem3D/create_visual_files.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/meshfem3D/create_visual_files.f90 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/src/meshfem3D/create_visual_files.f90 2012-03-03 21:52:01 UTC (rev 19714)
@@ -25,15 +25,16 @@
!=====================================================================
- subroutine create_visual_files(CREATE_ABAQUS_FILES,CREATE_DX_FILES,nspec,nglob,&
- prname,nodes_coords,ibool,true_material_num)
+ subroutine create_visual_files(CREATE_ABAQUS_FILES,CREATE_DX_FILES,CREATE_VTK_FILES,&
+ nspec,nglob,&
+ prname,nodes_coords,ibool,true_material_num)
implicit none
include "constants.h"
! Mesh files for visualization
- logical CREATE_ABAQUS_FILES,CREATE_DX_FILES
+ logical CREATE_ABAQUS_FILES,CREATE_DX_FILES,CREATE_VTK_FILES
! number of spectral elements in each block
integer nspec
@@ -52,7 +53,6 @@
! ---------------
integer i,ipoin,ispec
-
if(CREATE_ABAQUS_FILES) then
open(unit=64,file=prname(1:len_trim(prname))//'.INP',status='unknown',action='write',form='formatted')
@@ -71,7 +71,7 @@
ibool(2,2,2,ispec)
end do
close(64)
-
+
end if
@@ -127,7 +127,49 @@
end if
+ if( CREATE_VTK_FILES ) then
+ ! vtk file output
+ open(66,file=prname(1:len_trim(prname))//'.vtk',status='unknown')
+ write(66,'(a)') '# vtk DataFile Version 3.1'
+ write(66,'(a)') 'material model VTK file'
+ write(66,'(a)') 'ASCII'
+ write(66,'(a)') 'DATASET UNSTRUCTURED_GRID'
+ write(66, '(a,i12,a)') 'POINTS ', nglob, ' float'
+ do ipoin = 1,nglob
+ write(66,*) sngl(nodes_coords(ipoin,1)),sngl(nodes_coords(ipoin,2)),sngl(nodes_coords(ipoin,3))
+ enddo
+ write(66,*) ""
+
+ ! note: indices for vtk start at 0
+ write(66,'(a,i12,i12)') "CELLS ",nspec,nspec*9
+ do ispec=1,nspec
+ write(66,'(9i12)') 8, &
+ ibool(1,1,1,ispec)-1,ibool(2,1,1,ispec)-1,ibool(2,2,1,ispec)-1,ibool(1,2,1,ispec)-1,&
+ ibool(1,1,2,ispec)-1,ibool(2,1,2,ispec)-1,ibool(2,2,2,ispec)-1,ibool(1,2,2,ispec)-1
+ enddo
+ write(66,*) ""
+
+ ! type: hexahedrons
+ write(66,'(a,i12)') "CELL_TYPES ",nspec
+ write(66,*) (12,ispec=1,nspec)
+ write(66,*) ""
+
+ write(66,'(a,i12)') "CELL_DATA ",nspec
+ write(66,'(a)') "SCALARS elem_val float"
+ write(66,'(a)') "LOOKUP_TABLE default"
+ do ispec = 1,nspec
+ write(66,*) true_material_num(ispec)
+ enddo
+ write(66,*) ""
+ close(66)
+
+ endif
+
+
+
call sync_all()
end subroutine create_visual_files
+
+
Modified: seismo/3D/SPECFEM3D/trunk/src/meshfem3D/meshfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/meshfem3D/meshfem3D.f90 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/src/meshfem3D/meshfem3D.f90 2012-03-03 21:52:01 UTC (rev 19714)
@@ -239,7 +239,7 @@
logical SUPPRESS_UTM_PROJECTION,USE_REGULAR_MESH
! Mesh files for visualization
- logical CREATE_ABAQUS_FILES,CREATE_DX_FILES
+ logical CREATE_ABAQUS_FILES,CREATE_DX_FILES,CREATE_VTK_FILES
! doublings parameters
integer NDOUBLINGS
@@ -331,12 +331,12 @@
! nullify(subregions,material_properties)
call read_parameter_file(LATITUDE_MIN,LATITUDE_MAX,LONGITUDE_MIN,LONGITUDE_MAX, &
- UTM_X_MIN,UTM_X_MAX,UTM_Y_MIN,UTM_Y_MAX,Z_DEPTH_BLOCK, &
- NEX_XI,NEX_ETA,NPROC_XI,NPROC_ETA,UTM_PROJECTION_ZONE, &
- LOCAL_PATH,SUPPRESS_UTM_PROJECTION,&
- INTERFACES_FILE,NSUBREGIONS,subregions,NMATERIALS,material_properties, &
- CREATE_ABAQUS_FILES,CREATE_DX_FILES,&
- USE_REGULAR_MESH,NDOUBLINGS,ner_doublings)
+ UTM_X_MIN,UTM_X_MAX,UTM_Y_MIN,UTM_Y_MAX,Z_DEPTH_BLOCK, &
+ NEX_XI,NEX_ETA,NPROC_XI,NPROC_ETA,UTM_PROJECTION_ZONE, &
+ LOCAL_PATH,SUPPRESS_UTM_PROJECTION,&
+ INTERFACES_FILE,NSUBREGIONS,subregions,NMATERIALS,material_properties, &
+ CREATE_ABAQUS_FILES,CREATE_DX_FILES,CREATE_VTK_FILES, &
+ USE_REGULAR_MESH,NDOUBLINGS,ner_doublings)
if (sizeprocs == 1 .and. (NPROC_XI /= 1 .or. NPROC_ETA /= 1)) then
stop 'must have NPROC_XI = NPROC_ETA = 1 for a serial run'
@@ -393,12 +393,12 @@
! compute other parameters based upon values read
call compute_parameters(NER,NEX_XI,NEX_ETA,NPROC_XI,NPROC_ETA, &
- NPROC,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
- NSPEC_AB,NSPEC2D_A_XI,NSPEC2D_B_XI, &
- NSPEC2D_A_ETA,NSPEC2D_B_ETA, &
- NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX,NSPEC2D_BOTTOM,NSPEC2D_TOP, &
- NPOIN2DMAX_XMIN_XMAX,NPOIN2DMAX_YMIN_YMAX,NGLOB_AB,&
- USE_REGULAR_MESH,NDOUBLINGS,ner_doublings)
+ NPROC,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
+ NSPEC_AB,NSPEC2D_A_XI,NSPEC2D_B_XI, &
+ NSPEC2D_A_ETA,NSPEC2D_B_ETA, &
+ NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX,NSPEC2D_BOTTOM,NSPEC2D_TOP, &
+ NPOIN2DMAX_XMIN_XMAX,NPOIN2DMAX_YMIN_YMAX,NGLOB_AB,&
+ USE_REGULAR_MESH,NDOUBLINGS,ner_doublings)
! check that the code is running with the requested nb of processes
if(sizeprocs /= NPROC) then
@@ -743,15 +743,15 @@
if(ier /= 0) call exit_MPI(myrank,'not enough memory to allocate arrays')
call create_regions_mesh(xgrid,ygrid,zgrid,ibool, &
- xstore,ystore,zstore,iproc_xi,iproc_eta,addressing,nspec, &
- NGLOB_AB,npointot, &
- NEX_PER_PROC_XI,NEX_PER_PROC_ETA,NER, &
- NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX,NSPEC2D_BOTTOM,NSPEC2D_TOP, &
- NPROC_XI,NPROC_ETA, &
- NSUBREGIONS,subregions,number_of_layers,ner_layer,NMATERIALS,material_properties, &
- myrank,LOCAL_PATH,UTM_X_MIN,UTM_X_MAX,UTM_Y_MIN,UTM_Y_MAX,Z_DEPTH_BLOCK,&
- CREATE_ABAQUS_FILES,CREATE_DX_FILES,&
- USE_REGULAR_MESH,NDOUBLINGS,ner_doublings)
+ xstore,ystore,zstore,iproc_xi,iproc_eta,addressing,nspec, &
+ NGLOB_AB,npointot, &
+ NEX_PER_PROC_XI,NEX_PER_PROC_ETA,NER, &
+ NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX,NSPEC2D_BOTTOM,NSPEC2D_TOP, &
+ NPROC_XI,NPROC_ETA, &
+ NSUBREGIONS,subregions,number_of_layers,ner_layer,NMATERIALS,material_properties, &
+ myrank,LOCAL_PATH,UTM_X_MIN,UTM_X_MAX,UTM_Y_MIN,UTM_Y_MAX,Z_DEPTH_BLOCK,&
+ CREATE_ABAQUS_FILES,CREATE_DX_FILES,CREATE_VTK_FILES, &
+ USE_REGULAR_MESH,NDOUBLINGS,ner_doublings)
if(myrank == 0) then
! compare to exact theoretical value (bottom is always flat)
Modified: seismo/3D/SPECFEM3D/trunk/src/meshfem3D/read_parameter_file.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/meshfem3D/read_parameter_file.f90 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/src/meshfem3D/read_parameter_file.f90 2012-03-03 21:52:01 UTC (rev 19714)
@@ -28,12 +28,12 @@
contains
subroutine read_parameter_file(LATITUDE_MIN,LATITUDE_MAX,LONGITUDE_MIN,LONGITUDE_MAX, &
- UTM_X_MIN,UTM_X_MAX,UTM_Y_MIN,UTM_Y_MAX,Z_DEPTH_BLOCK, &
- NEX_XI,NEX_ETA,NPROC_XI,NPROC_ETA,UTM_PROJECTION_ZONE, &
- LOCAL_PATH,SUPPRESS_UTM_PROJECTION,&
- INTERFACES_FILE,NSUBREGIONS,subregions,NMATERIALS,material_properties,&
- CREATE_ABAQUS_FILES,CREATE_DX_FILES,&
- USE_REGULAR_MESH,NDOUBLINGS,ner_doublings)
+ UTM_X_MIN,UTM_X_MAX,UTM_Y_MIN,UTM_Y_MAX,Z_DEPTH_BLOCK, &
+ NEX_XI,NEX_ETA,NPROC_XI,NPROC_ETA,UTM_PROJECTION_ZONE, &
+ LOCAL_PATH,SUPPRESS_UTM_PROJECTION,&
+ INTERFACES_FILE,NSUBREGIONS,subregions,NMATERIALS,material_properties,&
+ CREATE_ABAQUS_FILES,CREATE_DX_FILES,CREATE_VTK_FILES, &
+ USE_REGULAR_MESH,NDOUBLINGS,ner_doublings)
implicit none
@@ -45,7 +45,7 @@
double precision LATITUDE_MIN,LATITUDE_MAX,LONGITUDE_MIN,LONGITUDE_MAX
logical SUPPRESS_UTM_PROJECTION,USE_REGULAR_MESH
- logical CREATE_ABAQUS_FILES,CREATE_DX_FILES
+ logical CREATE_ABAQUS_FILES,CREATE_DX_FILES,CREATE_VTK_FILES
integer NDOUBLINGS
integer, dimension(2) :: ner_doublings
@@ -150,6 +150,8 @@
if(err_occurred() /= 0) return
call read_value_logical(IIN,IGNORE_JUNK,CREATE_DX_FILES, 'mesher.CREATE_DX_FILES')
if(err_occurred() /= 0) return
+ call read_value_logical(IIN,IGNORE_JUNK,CREATE_VTK_FILES, 'mesher.CREATE_VTK_FILES')
+ if(err_occurred() /= 0) return
! file in which we store the databases
call read_value_string(IIN,IGNORE_JUNK,LOCAL_PATH, 'LOCAL_PATH')
Modified: seismo/3D/SPECFEM3D/trunk/src/meshfem3D/save_databases.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/meshfem3D/save_databases.f90 2012-03-02 23:51:21 UTC (rev 19713)
+++ seismo/3D/SPECFEM3D/trunk/src/meshfem3D/save_databases.f90 2012-03-03 21:52:01 UTC (rev 19714)
@@ -25,10 +25,13 @@
!=====================================================================
- subroutine save_databases(prname,nspec,nglob,iproc_xi,iproc_eta,NPROC_XI,NPROC_ETA,addressing,iMPIcut_xi,iMPIcut_eta,&
- ibool,nodes_coords,true_material_num,nspec2D_xmin,nspec2D_xmax,nspec2D_ymin,nspec2D_ymax,NSPEC2D_BOTTOM,NSPEC2D_TOP,&
- NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX,ibelm_xmin,ibelm_xmax,ibelm_ymin,ibelm_ymax,ibelm_bottom,ibelm_top,&
- NMATERIALS,material_properties)
+ subroutine save_databases(prname,nspec,nglob,iproc_xi,iproc_eta, &
+ NPROC_XI,NPROC_ETA,addressing,iMPIcut_xi,iMPIcut_eta,&
+ ibool,nodes_coords,true_material_num, &
+ nspec2D_xmin,nspec2D_xmax,nspec2D_ymin,nspec2D_ymax,NSPEC2D_BOTTOM,NSPEC2D_TOP,&
+ NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX, &
+ ibelm_xmin,ibelm_xmax,ibelm_ymin,ibelm_ymax,ibelm_bottom,ibelm_top,&
+ NMATERIALS,material_properties)
implicit none
More information about the CIG-COMMITS
mailing list