[cig-commits] r20759 - in seismo/3D/SPECFEM3D/trunk: doc/USER_MANUAL examples/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/in_data_files examples/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/in_data_files examples/Mount_StHelens/in_data_files examples/homogeneous_halfspace/in_data_files examples/homogeneous_poroelastic/in_data_files examples/layered_halfspace/in_data_files examples/meshfem3D_examples/many_interfaces examples/meshfem3D_examples/simple_model/in_data_files examples/meshfem3D_examples/socal1D/in_data_files examples/tomographic_model/in_data_files examples/waterlayered_halfspace/in_data_files in_data_files src/cuda src/generate_databases src/shared src/specfem3D
joseph.charles at geodynamics.org
joseph.charles at geodynamics.org
Fri Sep 21 09:52:09 PDT 2012
Author: joseph.charles
Date: 2012-09-21 09:52:09 -0700 (Fri, 21 Sep 2012)
New Revision: 20759
Modified:
seismo/3D/SPECFEM3D/trunk/doc/USER_MANUAL/manual_SPECFEM3D.pdf
seismo/3D/SPECFEM3D/trunk/doc/USER_MANUAL/manual_SPECFEM3D.tex
seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/in_data_files/Par_file
seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/in_data_files/Par_file
seismo/3D/SPECFEM3D/trunk/examples/Mount_StHelens/in_data_files/Par_file
seismo/3D/SPECFEM3D/trunk/examples/homogeneous_halfspace/in_data_files/Par_file
seismo/3D/SPECFEM3D/trunk/examples/homogeneous_poroelastic/in_data_files/Par_file
seismo/3D/SPECFEM3D/trunk/examples/layered_halfspace/in_data_files/Par_file
seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/many_interfaces/Par_file
seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/simple_model/in_data_files/Par_file
seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/in_data_files/Par_file
seismo/3D/SPECFEM3D/trunk/examples/tomographic_model/in_data_files/Par_file
seismo/3D/SPECFEM3D/trunk/examples/waterlayered_halfspace/in_data_files/Par_file
seismo/3D/SPECFEM3D/trunk/in_data_files/Par_file
seismo/3D/SPECFEM3D/trunk/src/cuda/compute_forces_acoustic_cuda.cu
seismo/3D/SPECFEM3D/trunk/src/cuda/specfem3D_gpu_cuda_method_stubs.c
seismo/3D/SPECFEM3D/trunk/src/generate_databases/create_regions_mesh.f90
seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases.f90
seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases_par.f90
seismo/3D/SPECFEM3D/trunk/src/generate_databases/get_absorbing_boundary.f90
seismo/3D/SPECFEM3D/trunk/src/shared/combine_vol_data.f90
seismo/3D/SPECFEM3D/trunk/src/shared/constants.h.in
seismo/3D/SPECFEM3D/trunk/src/shared/create_movie_shakemap_AVS_DX_GMT.f90
seismo/3D/SPECFEM3D/trunk/src/shared/read_parameter_file.f90
seismo/3D/SPECFEM3D/trunk/src/shared/smooth_vol_data.f90
seismo/3D/SPECFEM3D/trunk/src/shared/sum_kernels.f90
seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_acoustic.f90
seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_acoustic_PML.f90
seismo/3D/SPECFEM3D/trunk/src/specfem3D/initialize_simulation.f90
seismo/3D/SPECFEM3D/trunk/src/specfem3D/specfem3D_par.f90
Log:
moves ABSORB_FREE_SURFACE flag from constants.h.in
into ABSORB_INSTEAD_OF_FREE_SURFACE flag in Par_file
Modified: seismo/3D/SPECFEM3D/trunk/doc/USER_MANUAL/manual_SPECFEM3D.pdf
===================================================================
(Binary files differ)
Modified: seismo/3D/SPECFEM3D/trunk/doc/USER_MANUAL/manual_SPECFEM3D.tex
===================================================================
--- seismo/3D/SPECFEM3D/trunk/doc/USER_MANUAL/manual_SPECFEM3D.tex 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/doc/USER_MANUAL/manual_SPECFEM3D.tex 2012-09-21 16:52:09 UTC (rev 20759)
@@ -995,6 +995,8 @@
want to use an anisotropy model. Please see the file \texttt{model\_aniso.f90} in subdirectory \texttt{src/generate\_databases/} for the current implementation of anisotropic models.
\item [{\texttt{ABSORBING\_CONDITIONS}}] Set to \texttt{.true.} to turn
on Clayton-Enquist absorbing boundary conditions (see \citet{KoTr99}).
+\item [{\texttt{ABSORB\_INSTEAD\_OF\_FREE\_SURFACE}}] Set to \texttt{.true.} to turn on
+absorbing boundary conditions on the top surface which by default constitutes a free surface of the model.
\item [{\texttt{MOVIE\_SURFACE}}] Set to \texttt{.false.}, unless you want
to create a movie of seismic wave propagation on the Earth's surface.
Turning this option on generates large output files. See Section~\ref{sec:Movies}
@@ -1067,7 +1069,7 @@
an arbitrary (non-unitary) direction vector of the force source.
\item [{\texttt{COMPONENT\_DIR\_VECT\_SOURCE\_N}}] This parameter specifies the North component of
an arbitrary (non-unitary) direction vector of the force source.
-\item [{\texttt{COMPONENT\_DIR\_VECT\_SOURCE\_ZUP}}] This parameter specifies the vertical component of
+\item [{\texttt{COMPONENT\_DIR\_VECT\_SOURCE\_Z\_UP}}] This parameter specifies the vertical component of
an arbitrary (non-unitary) direction vector of the force source.
\item [{\texttt{PRINT\_SOURCE\_TIME\_FUNCTION}}] Turn this flag on to print
information about the source time function in the file \texttt{in\_out\_files/OUTPUT\_FILES/plot\_source\_time\_function.txt}.
Modified: seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/in_data_files/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/in_data_files/Par_file 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/in_data_files/Par_file 2012-09-21 16:52:09 UTC (rev 20759)
@@ -37,6 +37,9 @@
# absorbing boundary conditions for a regional simulation
ABSORBING_CONDITIONS = .true.
+# absorbing top surface (defined in mesh as 'free_surface_file')
+ABSORB_INSTEAD_OF_FREE_SURFACE = .false.
+
# save AVS or OpenDX movies
MOVIE_SURFACE = .false.
MOVIE_VOLUME = .false.
@@ -66,7 +69,9 @@
# in which the source is a vertical force, normal force, inclined force, impact etc.
USE_FORCE_POINT_SOURCE = .false.
FACTOR_FORCE_SOURCE = 1.d15
-# components of a (non-unitary) direction vector for the force source on the E/N/Z_UP basis
+# components of a (non-unitary) direction vector for the force source in the E/N/Z_UP basis;
+# this vector is made unitary internally in the code and thus only its direction matters here;
+# its norm is ignored and the norm of the force used is FACTOR_FORCE_SOURCE times the source time function.
COMPONENT_DIR_VECT_SOURCE_E = 1.d0
COMPONENT_DIR_VECT_SOURCE_N = -2.d0
COMPONENT_DIR_VECT_SOURCE_Z_UP = -1.d0
Modified: seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/in_data_files/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/in_data_files/Par_file 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/in_data_files/Par_file 2012-09-21 16:52:09 UTC (rev 20759)
@@ -37,6 +37,9 @@
# absorbing boundary conditions for a regional simulation
ABSORBING_CONDITIONS = .true.
+# absorbing top surface (defined in mesh as 'free_surface_file')
+ABSORB_INSTEAD_OF_FREE_SURFACE = .false.
+
# save AVS or OpenDX movies
MOVIE_SURFACE = .false.
MOVIE_VOLUME = .false.
@@ -66,7 +69,9 @@
# in which the source is a vertical force, normal force, inclined force, impact etc.
USE_FORCE_POINT_SOURCE = .false.
FACTOR_FORCE_SOURCE = 1.d15
-# components of a (non-unitary) direction vector for the force source on the E/N/Z_UP basis
+# components of a (non-unitary) direction vector for the force source in the E/N/Z_UP basis;
+# this vector is made unitary internally in the code and thus only its direction matters here;
+# its norm is ignored and the norm of the force used is FACTOR_FORCE_SOURCE times the source time function.
COMPONENT_DIR_VECT_SOURCE_E = 1.d0
COMPONENT_DIR_VECT_SOURCE_N = -2.d0
COMPONENT_DIR_VECT_SOURCE_Z_UP = -1.d0
Modified: seismo/3D/SPECFEM3D/trunk/examples/Mount_StHelens/in_data_files/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/Mount_StHelens/in_data_files/Par_file 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/examples/Mount_StHelens/in_data_files/Par_file 2012-09-21 16:52:09 UTC (rev 20759)
@@ -37,6 +37,9 @@
# absorbing boundary conditions for a regional simulation
ABSORBING_CONDITIONS = .true.
+# absorbing top surface (defined in mesh as 'free_surface_file')
+ABSORB_INSTEAD_OF_FREE_SURFACE = .false.
+
# save AVS or OpenDX movies
MOVIE_SURFACE = .false.
MOVIE_VOLUME = .false.
@@ -66,7 +69,9 @@
# in which the source is a vertical force, normal force, inclined force, impact etc.
USE_FORCE_POINT_SOURCE = .false.
FACTOR_FORCE_SOURCE = 1.d15
-# components of a (non-unitary) direction vector for the force source on the E/N/Z_UP basis
+# components of a (non-unitary) direction vector for the force source in the E/N/Z_UP basis;
+# this vector is made unitary internally in the code and thus only its direction matters here;
+# its norm is ignored and the norm of the force used is FACTOR_FORCE_SOURCE times the source time function.
COMPONENT_DIR_VECT_SOURCE_E = 1.d0
COMPONENT_DIR_VECT_SOURCE_N = -2.d0
COMPONENT_DIR_VECT_SOURCE_Z_UP = -1.d0
Modified: seismo/3D/SPECFEM3D/trunk/examples/homogeneous_halfspace/in_data_files/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/homogeneous_halfspace/in_data_files/Par_file 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/examples/homogeneous_halfspace/in_data_files/Par_file 2012-09-21 16:52:09 UTC (rev 20759)
@@ -38,6 +38,9 @@
# absorbing boundary conditions for a regional simulation
ABSORBING_CONDITIONS = .false.
+# absorbing top surface (defined in mesh as 'free_surface_file')
+ABSORB_INSTEAD_OF_FREE_SURFACE = .false.
+
# save AVS or OpenDX movies
MOVIE_SURFACE = .false.
MOVIE_VOLUME = .false.
@@ -68,7 +71,9 @@
# in which the source is a vertical force, normal force, inclined force, impact etc.
USE_FORCE_POINT_SOURCE = .false.
FACTOR_FORCE_SOURCE = 1.d15
-# components of a (non-unitary) direction vector for the force source on the E/N/Z_UP basis
+# components of a (non-unitary) direction vector for the force source in the E/N/Z_UP basis;
+# this vector is made unitary internally in the code and thus only its direction matters here;
+# its norm is ignored and the norm of the force used is FACTOR_FORCE_SOURCE times the source time function.
COMPONENT_DIR_VECT_SOURCE_E = 1.d0
COMPONENT_DIR_VECT_SOURCE_N = -2.d0
COMPONENT_DIR_VECT_SOURCE_Z_UP = -1.d0
Modified: seismo/3D/SPECFEM3D/trunk/examples/homogeneous_poroelastic/in_data_files/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/homogeneous_poroelastic/in_data_files/Par_file 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/examples/homogeneous_poroelastic/in_data_files/Par_file 2012-09-21 16:52:09 UTC (rev 20759)
@@ -38,6 +38,9 @@
# absorbing boundary conditions for a regional simulation
ABSORBING_CONDITIONS = .false.
+# absorbing top surface (defined in mesh as 'free_surface_file')
+ABSORB_INSTEAD_OF_FREE_SURFACE = .false.
+
# save AVS or OpenDX movies
MOVIE_SURFACE = .false.
MOVIE_VOLUME = .false.
@@ -68,7 +71,9 @@
# in which the source is a vertical force, normal force, inclined force, impact etc.
USE_FORCE_POINT_SOURCE = .false.
FACTOR_FORCE_SOURCE = 1.d15
-# components of a (non-unitary) direction vector for the force source on the E/N/Z_UP basis
+# components of a (non-unitary) direction vector for the force source in the E/N/Z_UP basis;
+# this vector is made unitary internally in the code and thus only its direction matters here;
+# its norm is ignored and the norm of the force used is FACTOR_FORCE_SOURCE times the source time function.
COMPONENT_DIR_VECT_SOURCE_E = 1.d0
COMPONENT_DIR_VECT_SOURCE_N = -2.d0
COMPONENT_DIR_VECT_SOURCE_Z_UP = -1.d0
Modified: seismo/3D/SPECFEM3D/trunk/examples/layered_halfspace/in_data_files/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/layered_halfspace/in_data_files/Par_file 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/examples/layered_halfspace/in_data_files/Par_file 2012-09-21 16:52:09 UTC (rev 20759)
@@ -38,6 +38,9 @@
# absorbing boundary conditions for a regional simulation
ABSORBING_CONDITIONS = .true.
+# absorbing top surface (defined in mesh as 'free_surface_file')
+ABSORB_INSTEAD_OF_FREE_SURFACE = .false.
+
# save AVS or OpenDX movies
MOVIE_SURFACE = .false.
MOVIE_VOLUME = .false.
@@ -67,7 +70,9 @@
# in which the source is a vertical force, normal force, inclined force, impact etc.
USE_FORCE_POINT_SOURCE = .false.
FACTOR_FORCE_SOURCE = 1.d15
-# components of a (non-unitary) direction vector for the force source on the E/N/Z_UP basis
+# components of a (non-unitary) direction vector for the force source in the E/N/Z_UP basis;
+# this vector is made unitary internally in the code and thus only its direction matters here;
+# its norm is ignored and the norm of the force used is FACTOR_FORCE_SOURCE times the source time function.
COMPONENT_DIR_VECT_SOURCE_E = 1.d0
COMPONENT_DIR_VECT_SOURCE_N = -2.d0
COMPONENT_DIR_VECT_SOURCE_Z_UP = -1.d0
Modified: seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/many_interfaces/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/many_interfaces/Par_file 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/many_interfaces/Par_file 2012-09-21 16:52:09 UTC (rev 20759)
@@ -38,6 +38,9 @@
# absorbing boundary conditions for a regional simulation
ABSORBING_CONDITIONS = .true.
+# absorbing top surface (defined in mesh as 'free_surface_file')
+ABSORB_INSTEAD_OF_FREE_SURFACE = .false.
+
# save AVS or OpenDX movies
MOVIE_SURFACE = .true.
MOVIE_VOLUME = .false.
@@ -67,7 +70,9 @@
# in which the source is a vertical force, normal force, inclined force, impact etc.
USE_FORCE_POINT_SOURCE = .false.
FACTOR_FORCE_SOURCE = 1.d15
-# components of a (non-unitary) direction vector for the force source on the E/N/Z_UP basis
+# components of a (non-unitary) direction vector for the force source in the E/N/Z_UP basis;
+# this vector is made unitary internally in the code and thus only its direction matters here;
+# its norm is ignored and the norm of the force used is FACTOR_FORCE_SOURCE times the source time function.
COMPONENT_DIR_VECT_SOURCE_E = 1.d0
COMPONENT_DIR_VECT_SOURCE_N = -2.d0
COMPONENT_DIR_VECT_SOURCE_Z_UP = -1.d0
Modified: seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/simple_model/in_data_files/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/simple_model/in_data_files/Par_file 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/simple_model/in_data_files/Par_file 2012-09-21 16:52:09 UTC (rev 20759)
@@ -38,6 +38,9 @@
# absorbing boundary conditions for a regional simulation
ABSORBING_CONDITIONS = .false.
+# absorbing top surface (defined in mesh as 'free_surface_file')
+ABSORB_INSTEAD_OF_FREE_SURFACE = .false.
+
# save AVS or OpenDX movies
MOVIE_SURFACE = .false.
MOVIE_VOLUME = .false.
@@ -67,7 +70,9 @@
# in which the source is a vertical force, normal force, inclined force, impact etc.
USE_FORCE_POINT_SOURCE = .false.
FACTOR_FORCE_SOURCE = 1.d15
-# components of a (non-unitary) direction vector for the force source on the E/N/Z_UP basis
+# components of a (non-unitary) direction vector for the force source in the E/N/Z_UP basis;
+# this vector is made unitary internally in the code and thus only its direction matters here;
+# its norm is ignored and the norm of the force used is FACTOR_FORCE_SOURCE times the source time function.
COMPONENT_DIR_VECT_SOURCE_E = 1.d0
COMPONENT_DIR_VECT_SOURCE_N = -2.d0
COMPONENT_DIR_VECT_SOURCE_Z_UP = -1.d0
Modified: seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/in_data_files/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/in_data_files/Par_file 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/in_data_files/Par_file 2012-09-21 16:52:09 UTC (rev 20759)
@@ -38,6 +38,9 @@
# absorbing boundary conditions for a regional simulation
ABSORBING_CONDITIONS = .true.
+# absorbing top surface (defined in mesh as 'free_surface_file')
+ABSORB_INSTEAD_OF_FREE_SURFACE = .false.
+
# save AVS or OpenDX movies
MOVIE_SURFACE = .false.
MOVIE_VOLUME = .false.
@@ -67,7 +70,9 @@
# in which the source is a vertical force, normal force, inclined force, impact etc.
USE_FORCE_POINT_SOURCE = .false.
FACTOR_FORCE_SOURCE = 1.d15
-# components of a (non-unitary) direction vector for the force source on the E/N/Z_UP basis
+# components of a (non-unitary) direction vector for the force source in the E/N/Z_UP basis;
+# this vector is made unitary internally in the code and thus only its direction matters here;
+# its norm is ignored and the norm of the force used is FACTOR_FORCE_SOURCE times the source time function.
COMPONENT_DIR_VECT_SOURCE_E = 1.d0
COMPONENT_DIR_VECT_SOURCE_N = -2.d0
COMPONENT_DIR_VECT_SOURCE_Z_UP = -1.d0
Modified: seismo/3D/SPECFEM3D/trunk/examples/tomographic_model/in_data_files/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/tomographic_model/in_data_files/Par_file 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/examples/tomographic_model/in_data_files/Par_file 2012-09-21 16:52:09 UTC (rev 20759)
@@ -38,6 +38,9 @@
# absorbing boundary conditions for a regional simulation
ABSORBING_CONDITIONS = .true.
+# absorbing top surface (defined in mesh as 'free_surface_file')
+ABSORB_INSTEAD_OF_FREE_SURFACE = .false.
+
# save AVS or OpenDX movies
MOVIE_SURFACE = .false.
MOVIE_VOLUME = .false.
@@ -67,7 +70,9 @@
# in which the source is a vertical force, normal force, inclined force, impact etc.
USE_FORCE_POINT_SOURCE = .false.
FACTOR_FORCE_SOURCE = 1.d15
-# components of a (non-unitary) direction vector for the force source on the E/N/Z_UP basis
+# components of a (non-unitary) direction vector for the force source in the E/N/Z_UP basis;
+# this vector is made unitary internally in the code and thus only its direction matters here;
+# its norm is ignored and the norm of the force used is FACTOR_FORCE_SOURCE times the source time function.
COMPONENT_DIR_VECT_SOURCE_E = 1.d0
COMPONENT_DIR_VECT_SOURCE_N = -2.d0
COMPONENT_DIR_VECT_SOURCE_Z_UP = -1.d0
Modified: seismo/3D/SPECFEM3D/trunk/examples/waterlayered_halfspace/in_data_files/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/examples/waterlayered_halfspace/in_data_files/Par_file 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/examples/waterlayered_halfspace/in_data_files/Par_file 2012-09-21 16:52:09 UTC (rev 20759)
@@ -38,6 +38,9 @@
# absorbing boundary conditions for a regional simulation
ABSORBING_CONDITIONS = .true.
+# absorbing top surface (defined in mesh as 'free_surface_file')
+ABSORB_INSTEAD_OF_FREE_SURFACE = .false.
+
# save AVS or OpenDX movies
MOVIE_SURFACE = .false.
MOVIE_VOLUME = .false.
@@ -67,7 +70,9 @@
# in which the source is a vertical force, normal force, inclined force, impact etc.
USE_FORCE_POINT_SOURCE = .false.
FACTOR_FORCE_SOURCE = 1.d15
-# components of a (non-unitary) direction vector for the force source on the E/N/Z_UP basis
+# components of a (non-unitary) direction vector for the force source in the E/N/Z_UP basis;
+# this vector is made unitary internally in the code and thus only its direction matters here;
+# its norm is ignored and the norm of the force used is FACTOR_FORCE_SOURCE times the source time function.
COMPONENT_DIR_VECT_SOURCE_E = 1.d0
COMPONENT_DIR_VECT_SOURCE_N = -2.d0
COMPONENT_DIR_VECT_SOURCE_Z_UP = -1.d0
Modified: seismo/3D/SPECFEM3D/trunk/in_data_files/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/in_data_files/Par_file 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/in_data_files/Par_file 2012-09-21 16:52:09 UTC (rev 20759)
@@ -38,6 +38,9 @@
# absorbing boundary conditions for a regional simulation
ABSORBING_CONDITIONS = .false.
+# absorbing top surface (defined in mesh as 'free_surface_file')
+ABSORB_INSTEAD_OF_FREE_SURFACE = .false.
+
# save AVS or OpenDX movies
MOVIE_SURFACE = .false.
MOVIE_VOLUME = .false.
Modified: seismo/3D/SPECFEM3D/trunk/src/cuda/compute_forces_acoustic_cuda.cu
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/cuda/compute_forces_acoustic_cuda.cu 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/cuda/compute_forces_acoustic_cuda.cu 2012-09-21 16:52:09 UTC (rev 20759)
@@ -788,14 +788,14 @@
extern "C"
void FC_FUNC_(acoustic_enforce_free_surf_cuda,
ACOUSTIC_ENFORCE_FREE_SURF_CUDA)(long* Mesh_pointer_f,
- int* ABSORB_FREE_SURFACE) {
+ int* ABSORB_INSTEAD_OF_FREE_SURFACE) {
TRACE("acoustic_enforce_free_surf_cuda");
Mesh* mp = (Mesh*)(*Mesh_pointer_f); //get mesh pointer out of fortran integer container
// checks if anything to do
- if( *ABSORB_FREE_SURFACE == 0 ){
+ if( *ABSORB_INSTEAD_OF_FREE_SURFACE == 0 ){
// does not absorb free surface, thus we enforce the potential to be zero at surface
Modified: seismo/3D/SPECFEM3D/trunk/src/cuda/specfem3D_gpu_cuda_method_stubs.c
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/cuda/specfem3D_gpu_cuda_method_stubs.c 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/cuda/specfem3D_gpu_cuda_method_stubs.c 2012-09-21 16:52:09 UTC (rev 20759)
@@ -212,7 +212,7 @@
void FC_FUNC_(acoustic_enforce_free_surf_cuda,
ACOUSTIC_ENFORCE_FREE_SURF_CUDA)(long* Mesh_pointer_f,
- int* ABSORB_FREE_SURFACE) {}
+ int* ABSORB_INSTEAD_OF_FREE_SURFACE) {}
//
Modified: seismo/3D/SPECFEM3D/trunk/src/generate_databases/create_regions_mesh.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/generate_databases/create_regions_mesh.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/generate_databases/create_regions_mesh.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -257,6 +257,7 @@
nspec2D_xmin,nspec2D_xmax,nspec2D_ymin,nspec2D_ymax, &
nspec2D_bottom,nspec2D_top,ANISOTROPY)
+ use generate_databases_par, only: ABSORB_INSTEAD_OF_FREE_SURFACE
use create_regions_mesh_ext_par
implicit none
@@ -353,7 +354,7 @@
! absorbing faces
num_abs_boundary_faces = nspec2D_xmin + nspec2D_xmax + nspec2D_ymin + nspec2D_ymax + nspec2D_bottom
! adds faces of free surface if it also absorbs
- if( ABSORB_FREE_SURFACE ) num_abs_boundary_faces = num_abs_boundary_faces + nspec2D_top
+ if( ABSORB_INSTEAD_OF_FREE_SURFACE ) num_abs_boundary_faces = num_abs_boundary_faces + nspec2D_top
! allocates arrays to store info for each face (assumes NGLLX=NGLLY=NGLLZ)
allocate( abs_boundary_ispec(num_abs_boundary_faces), &
Modified: seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -264,7 +264,8 @@
NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE, &
COMPONENT_DIR_VECT_SOURCE_E,COMPONENT_DIR_VECT_SOURCE_N, &
- COMPONENT_DIR_VECT_SOURCE_Z_UP,IMODEL)
+ COMPONENT_DIR_VECT_SOURCE_Z_UP,ABSORB_INSTEAD_OF_FREE_SURFACE, &
+ IMODEL)
! check that the code is running with the requested nb of processes
if(sizeprocs /= NPROC) then
@@ -391,12 +392,19 @@
write(IMAIN,*)
if(OCEANS) then
write(IMAIN,*) 'incorporating the oceans using equivalent load'
- if( TOPOGRAPHY ) write(IMAIN,*) ' with elevation from topography file'
+ if(TOPOGRAPHY) write(IMAIN,*) ' with elevation from topography file'
else
write(IMAIN,*) 'no oceans'
endif
write(IMAIN,*)
+ if(ABSORBING_CONDITIONS) then
+ write(IMAIN,*) 'incorporating absorbing conditions'
+ else
+ write(IMAIN,*) 'no absorbing condition'
+ endif
+
+ write(IMAIN,*)
if(USE_FORCE_POINT_SOURCE) then
write(IMAIN,*) 'using a force point source instead of a CMTSOLUTION source'
else
Modified: seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases_par.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases_par.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases_par.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -64,7 +64,8 @@
logical :: ATTENUATION,USE_OLSEN_ATTENUATION, &
OCEANS,TOPOGRAPHY,SAVE_FORWARD,USE_FORCE_POINT_SOURCE
- logical :: ANISOTROPY,ABSORBING_CONDITIONS,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION
+ logical :: ANISOTROPY,ABSORBING_CONDITIONS,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION, &
+ ABSORB_INSTEAD_OF_FREE_SURFACE
logical :: MOVIE_SURFACE,MOVIE_VOLUME,CREATE_SHAKEMAP,SAVE_DISPLACEMENT, &
USE_HIGHRES_FOR_MOVIES
Modified: seismo/3D/SPECFEM3D/trunk/src/generate_databases/get_absorbing_boundary.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/generate_databases/get_absorbing_boundary.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/generate_databases/get_absorbing_boundary.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -34,6 +34,7 @@
! determines absorbing boundaries/free-surface, 2D jacobians, face normals for Stacey conditions
+ use generate_databases_par, only: ABSORB_INSTEAD_OF_FREE_SURFACE
use create_regions_mesh_ext_par
implicit none
@@ -438,7 +439,7 @@
enddo
! stores surface infos
- if( .not. ABSORB_FREE_SURFACE ) then
+ if( .not. ABSORB_INSTEAD_OF_FREE_SURFACE ) then
! stores free surface
! sets face infos
ifree = ifree + 1
@@ -505,8 +506,8 @@
if( myrank == 0 ) then
write(IMAIN,*) ' absorbing boundary:'
write(IMAIN,*) ' total number of faces = ',iabs
- if( ABSORB_FREE_SURFACE ) then
- write(IMAIN,*) ' absorbing boundary includes free surface'
+ if( ABSORB_INSTEAD_OF_FREE_SURFACE ) then
+ write(IMAIN,*) ' absorbing boundary includes free surface'
endif
endif
Modified: seismo/3D/SPECFEM3D/trunk/src/shared/combine_vol_data.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/shared/combine_vol_data.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/combine_vol_data.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -100,7 +100,7 @@
USE_HIGHRES_FOR_MOVIES,SUPPRESS_UTM_PROJECTION
logical :: ATTENUATION,USE_OLSEN_ATTENUATION, &
OCEANS,TOPOGRAPHY,USE_FORCE_POINT_SOURCE
- logical :: ABSORBING_CONDITIONS,SAVE_FORWARD
+ logical :: ABSORBING_CONDITIONS,SAVE_FORWARD,ABSORB_INSTEAD_OF_FREE_SURFACE
logical :: ANISOTROPY,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION
character(len=256) LOCAL_PATH
integer :: IMODEL
@@ -186,7 +186,8 @@
NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE, &
COMPONENT_DIR_VECT_SOURCE_E,COMPONENT_DIR_VECT_SOURCE_N, &
- COMPONENT_DIR_VECT_SOURCE_Z_UP,IMODEL)
+ COMPONENT_DIR_VECT_SOURCE_Z_UP,ABSORB_INSTEAD_OF_FREE_SURFACE, &
+ IMODEL)
print *, 'Slice list: '
print *, node_list(1:num_node)
Modified: seismo/3D/SPECFEM3D/trunk/src/shared/constants.h.in
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/shared/constants.h.in 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/constants.h.in 2012-09-21 16:52:09 UTC (rev 20759)
@@ -149,10 +149,6 @@
!!
!!-----------------------------------------------------------
-! absorb top surface
-! (defined in mesh as 'free_surface_file')
- logical,parameter :: ABSORB_FREE_SURFACE = .false.
-
! absorb boundaries using a PML region
! (EXPERIMENTAL feature)
! (only acoustic domains supported...)
Modified: seismo/3D/SPECFEM3D/trunk/src/shared/create_movie_shakemap_AVS_DX_GMT.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/shared/create_movie_shakemap_AVS_DX_GMT.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/create_movie_shakemap_AVS_DX_GMT.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -95,7 +95,7 @@
COMPONENT_DIR_VECT_SOURCE_Z_UP
logical ATTENUATION,USE_OLSEN_ATTENUATION, &
OCEANS,TOPOGRAPHY,USE_FORCE_POINT_SOURCE
- logical ABSORBING_CONDITIONS,SAVE_FORWARD
+ logical ABSORBING_CONDITIONS,SAVE_FORWARD,ABSORB_INSTEAD_OF_FREE_SURFACE
logical ANISOTROPY,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION
character(len=256) OUTPUT_FILES,LOCAL_PATH
integer NPROC
@@ -140,7 +140,8 @@
NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE, &
COMPONENT_DIR_VECT_SOURCE_E,COMPONENT_DIR_VECT_SOURCE_N, &
- COMPONENT_DIR_VECT_SOURCE_Z_UP,IMODEL)
+ COMPONENT_DIR_VECT_SOURCE_Z_UP,ABSORB_INSTEAD_OF_FREE_SURFACE, &
+ IMODEL)
! get the base pathname for output files
call get_value_string(OUTPUT_FILES, 'OUTPUT_FILES', OUTPUT_FILES_PATH(1:len_trim(OUTPUT_FILES_PATH)))
Modified: seismo/3D/SPECFEM3D/trunk/src/shared/read_parameter_file.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/shared/read_parameter_file.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/read_parameter_file.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -33,7 +33,8 @@
SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION,NTSTEP_BETWEEN_OUTPUT_INFO, &
SIMULATION_TYPE,SAVE_FORWARD,NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE,COMPONENT_DIR_VECT_SOURCE_E, &
- COMPONENT_DIR_VECT_SOURCE_N,COMPONENT_DIR_VECT_SOURCE_Z_UP,IMODEL)
+ COMPONENT_DIR_VECT_SOURCE_N,COMPONENT_DIR_VECT_SOURCE_Z_UP, &
+ ABSORB_INSTEAD_OF_FREE_SURFACE,IMODEL)
implicit none
@@ -51,7 +52,7 @@
logical ATTENUATION,USE_OLSEN_ATTENUATION,OCEANS,TOPOGRAPHY,ABSORBING_CONDITIONS,SAVE_FORWARD
logical MOVIE_SURFACE,MOVIE_VOLUME,CREATE_SHAKEMAP,SAVE_DISPLACEMENT,USE_HIGHRES_FOR_MOVIES
logical ANISOTROPY,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION,SUPPRESS_UTM_PROJECTION
- logical USE_FORCE_POINT_SOURCE
+ logical USE_FORCE_POINT_SOURCE,ABSORB_INSTEAD_OF_FREE_SURFACE
character(len=256) LOCAL_PATH,CMTSOLUTION
@@ -118,6 +119,8 @@
if(err_occurred() /= 0) return
call read_value_logical(ABSORBING_CONDITIONS, 'solver.ABSORBING_CONDITIONS')
if(err_occurred() /= 0) return
+ call read_value_logical(ABSORB_INSTEAD_OF_FREE_SURFACE, 'solver.ABSORB_INSTEAD_OF_FREE_SURFACE')
+ if(err_occurred() /= 0) return
call read_value_logical(MOVIE_SURFACE, 'solver.MOVIE_SURFACE')
if(err_occurred() /= 0) return
call read_value_logical(MOVIE_VOLUME, 'solver.MOVIE_VOLUME')
Modified: seismo/3D/SPECFEM3D/trunk/src/shared/smooth_vol_data.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/shared/smooth_vol_data.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/smooth_vol_data.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -108,7 +108,7 @@
USE_HIGHRES_FOR_MOVIES,SUPPRESS_UTM_PROJECTION
logical :: ATTENUATION,USE_OLSEN_ATTENUATION, &
OCEANS,TOPOGRAPHY,USE_FORCE_POINT_SOURCE
- logical :: ABSORBING_CONDITIONS,SAVE_FORWARD
+ logical :: ABSORBING_CONDITIONS,SAVE_FORWARD,ABSORB_INSTEAD_OF_FREE_SURFACE
logical :: ANISOTROPY,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION
character(len=256) LOCAL_PATH
integer :: IMODEL
@@ -224,7 +224,8 @@
NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE, &
COMPONENT_DIR_VECT_SOURCE_E,COMPONENT_DIR_VECT_SOURCE_N, &
- COMPONENT_DIR_VECT_SOURCE_Z_UP,IMODEL)
+ COMPONENT_DIR_VECT_SOURCE_Z_UP,ABSORB_INSTEAD_OF_FREE_SURFACE, &
+ IMODEL)
! checks if number of MPI process as specified
if (sizeprocs /= NPROC) then
Modified: seismo/3D/SPECFEM3D/trunk/src/shared/sum_kernels.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/shared/sum_kernels.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/sum_kernels.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -115,7 +115,7 @@
USE_HIGHRES_FOR_MOVIES,SUPPRESS_UTM_PROJECTION
logical :: ATTENUATION,USE_OLSEN_ATTENUATION, &
OCEANS,TOPOGRAPHY,USE_FORCE_POINT_SOURCE
- logical :: ABSORBING_CONDITIONS,SAVE_FORWARD
+ logical :: ABSORBING_CONDITIONS,SAVE_FORWARD,ABSORB_INSTEAD_OF_FREE_SURFACE
logical :: ANISOTROPY,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION
character(len=256) LOCAL_PATH
@@ -163,7 +163,8 @@
NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE, &
COMPONENT_DIR_VECT_SOURCE_E,COMPONENT_DIR_VECT_SOURCE_N, &
- COMPONENT_DIR_VECT_SOURCE_Z_UP,IMODEL)
+ COMPONENT_DIR_VECT_SOURCE_Z_UP,ABSORB_INSTEAD_OF_FREE_SURFACE, &
+ IMODEL)
! checks if number of MPI process as specified
if (sizeprocs /= NPROC) then
Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_acoustic.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_acoustic.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_acoustic.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -68,20 +68,20 @@
! enforces free surface (zeroes potentials at free surface)
if(.NOT. GPU_MODE) then
! on CPU
- call acoustic_enforce_free_surface(NSPEC_AB,NGLOB_AB, &
+ call acoustic_enforce_free_surface(NSPEC_AB,NGLOB_AB,ABSORB_INSTEAD_OF_FREE_SURFACE, &
potential_acoustic,potential_dot_acoustic,potential_dot_dot_acoustic, &
ibool,free_surface_ijk,free_surface_ispec, &
num_free_surface_faces,ispec_is_acoustic)
! adjoint simulations
if( SIMULATION_TYPE == 3 ) &
- call acoustic_enforce_free_surface(NSPEC_AB,NGLOB_ADJOINT, &
+ call acoustic_enforce_free_surface(NSPEC_AB,NGLOB_ADJOINT,ABSORB_INSTEAD_OF_FREE_SURFACE, &
b_potential_acoustic,b_potential_dot_acoustic,b_potential_dot_dot_acoustic, &
ibool,free_surface_ijk,free_surface_ispec, &
num_free_surface_faces,ispec_is_acoustic)
else
! on GPU
- call acoustic_enforce_free_surf_cuda(Mesh_pointer,ABSORB_FREE_SURFACE)
+ call acoustic_enforce_free_surf_cuda(Mesh_pointer,ABSORB_INSTEAD_OF_FREE_SURFACE)
endif
if(ABSORB_USE_PML .and. ABSORBING_CONDITIONS) then
@@ -95,7 +95,7 @@
if(GPU_MODE) call transfer_fields_ac_from_device(NGLOB_AB,potential_acoustic, &
potential_dot_acoustic, potential_dot_dot_acoustic, Mesh_pointer)
- call PML_acoustic_enforce_free_srfc(NSPEC_AB,NGLOB_AB, &
+ call PML_acoustic_enforce_free_srfc(NSPEC_AB,NGLOB_AB,ABSORB_INSTEAD_OF_FREE_SURFACE, &
potential_acoustic,potential_dot_acoustic,potential_dot_dot_acoustic, &
ibool,free_surface_ijk,free_surface_ispec, &
num_free_surface_faces,ispec_is_acoustic, &
@@ -477,7 +477,7 @@
! enforces free surface (zeroes potentials at free surface)
if(.NOT. GPU_MODE) then
! on CPU
- call acoustic_enforce_free_surface(NSPEC_AB,NGLOB_AB, &
+ call acoustic_enforce_free_surface(NSPEC_AB,NGLOB_AB,ABSORB_INSTEAD_OF_FREE_SURFACE, &
potential_acoustic,potential_dot_acoustic,potential_dot_dot_acoustic, &
ibool,free_surface_ijk,free_surface_ispec, &
num_free_surface_faces,ispec_is_acoustic)
@@ -490,13 +490,13 @@
! adjoint simulations
if (SIMULATION_TYPE == 3) &
- call acoustic_enforce_free_surface(NSPEC_AB,NGLOB_ADJOINT, &
+ call acoustic_enforce_free_surface(NSPEC_AB,NGLOB_ADJOINT,ABSORB_INSTEAD_OF_FREE_SURFACE, &
b_potential_acoustic,b_potential_dot_acoustic,b_potential_dot_dot_acoustic, &
ibool,free_surface_ijk,free_surface_ispec, &
num_free_surface_faces,ispec_is_acoustic)
else
! on GPU
- call acoustic_enforce_free_surf_cuda(Mesh_pointer,ABSORB_FREE_SURFACE)
+ call acoustic_enforce_free_surf_cuda(Mesh_pointer,ABSORB_INSTEAD_OF_FREE_SURFACE)
endif
@@ -505,7 +505,7 @@
if( GPU_MODE ) call transfer_fields_ac_from_device(NGLOB_AB,potential_acoustic, &
potential_dot_acoustic, potential_dot_dot_acoustic, Mesh_pointer)
- call PML_acoustic_enforce_free_srfc(NSPEC_AB,NGLOB_AB, &
+ call PML_acoustic_enforce_free_srfc(NSPEC_AB,NGLOB_AB,ABSORB_INSTEAD_OF_FREE_SURFACE, &
potential_acoustic,potential_dot_acoustic,potential_dot_dot_acoustic, &
ibool,free_surface_ijk,free_surface_ispec, &
num_free_surface_faces, &
@@ -528,7 +528,7 @@
!
-subroutine acoustic_enforce_free_surface(NSPEC_AB,NGLOB_AB, &
+subroutine acoustic_enforce_free_surface(NSPEC_AB,NGLOB_AB,ABSORB_INSTEAD_OF_FREE_SURFACE, &
potential_acoustic,potential_dot_acoustic,potential_dot_dot_acoustic, &
ibool,free_surface_ijk,free_surface_ispec, &
num_free_surface_faces,ispec_is_acoustic)
@@ -536,6 +536,7 @@
include 'constants.h'
integer :: NSPEC_AB,NGLOB_AB
+ logical :: ABSORB_INSTEAD_OF_FREE_SURFACE
! acoustic potentials
real(kind=CUSTOM_REAL), dimension(NGLOB_AB) :: &
@@ -554,7 +555,7 @@
integer :: iface,igll,i,j,k,ispec,iglob
! checks if free surface became an absorbing boundary
- if( ABSORB_FREE_SURFACE ) return
+ if( ABSORB_INSTEAD_OF_FREE_SURFACE ) return
! enforce potentials to be zero at surface
do iface = 1, num_free_surface_faces
Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_acoustic_PML.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_acoustic_PML.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_acoustic_PML.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -942,7 +942,7 @@
!-------------------------------------------------------------------------------------------------
!
-subroutine PML_acoustic_enforce_free_srfc(NSPEC_AB,NGLOB_AB, &
+subroutine PML_acoustic_enforce_free_srfc(NSPEC_AB,NGLOB_AB,ABSORB_INSTEAD_OF_FREE_SURFACE, &
potential_acoustic,potential_dot_acoustic,potential_dot_dot_acoustic, &
ibool,free_surface_ijk,free_surface_ispec, &
num_free_surface_faces, &
@@ -953,10 +953,11 @@
chi1_dot_dot,chi2_t_dot_dot,&
chi3_dot_dot,chi4_dot_dot)
- use constants,only: NGLLX,NGLLY,NGLLZ,NGLLSQUARE,CUSTOM_REAL,ABSORB_FREE_SURFACE
+ use constants,only: NGLLX,NGLLY,NGLLZ,NGLLSQUARE,CUSTOM_REAL
implicit none
integer :: NSPEC_AB,NGLOB_AB
+ logical :: ABSORB_INSTEAD_OF_FREE_SURFACE
! split-potentials
integer :: num_PML_ispec
@@ -985,7 +986,7 @@
integer :: iface,igll,i,j,k,ispec,iglob,ispecPML
! checks if free surface became an absorbing boundary
- if( ABSORB_FREE_SURFACE ) return
+ if( ABSORB_INSTEAD_OF_FREE_SURFACE ) return
! enforce potentials to be zero at surface
do iface = 1, num_free_surface_faces
Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/initialize_simulation.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/initialize_simulation.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/initialize_simulation.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -49,7 +49,8 @@
NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE, &
COMPONENT_DIR_VECT_SOURCE_E,COMPONENT_DIR_VECT_SOURCE_N, &
- COMPONENT_DIR_VECT_SOURCE_Z_UP,IMODEL)
+ COMPONENT_DIR_VECT_SOURCE_Z_UP,ABSORB_INSTEAD_OF_FREE_SURFACE, &
+ IMODEL)
! GPU_MODE is in par_file
call read_gpu_mode(GPU_MODE,GRAVITY)
@@ -264,6 +265,9 @@
! just to be sure for now..
if( NGLLX /= NGLLY .and. NGLLY /= NGLLZ ) &
stop 'ABSORBING_CONDITIONS must have NGLLX = NGLLY = NGLLZ'
+ else
+ if(ABSORB_INSTEAD_OF_FREE_SURFACE) &
+ stop 'ABSORBING_CONDITIONS must be activated when ABSORB_INSTEAD_OF_FREE_SURFACE is true'
endif
! inclined force source
Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/specfem3D_par.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/specfem3D_par.f90 2012-09-21 14:26:55 UTC (rev 20758)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/specfem3D_par.f90 2012-09-21 16:52:09 UTC (rev 20759)
@@ -169,7 +169,8 @@
double precision :: DT
logical :: ATTENUATION,USE_OLSEN_ATTENUATION, &
- OCEANS,TOPOGRAPHY,ABSORBING_CONDITIONS,ANISOTROPY
+ OCEANS,TOPOGRAPHY,ABSORBING_CONDITIONS,ANISOTROPY, &
+ ABSORB_INSTEAD_OF_FREE_SURFACE
logical :: GRAVITY
logical :: SAVE_FORWARD,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION
More information about the CIG-COMMITS
mailing list