[cig-commits] r20712 - in seismo/3D/SPECFEM3D/trunk: 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/generate_databases src/shared src/specfem3D

joseph.charles at geodynamics.org joseph.charles at geodynamics.org
Thu Sep 13 14:00:44 PDT 2012


Author: joseph.charles
Date: 2012-09-13 14:00:44 -0700 (Thu, 13 Sep 2012)
New Revision: 20712

Modified:
   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/generate_databases/generate_databases.f90
   seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases_par.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/get_cmt.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_add_sources_acoustic.f90
   seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_add_sources_elastic.f90
   seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_add_sources_poroelastic.f90
   seismo/3D/SPECFEM3D/trunk/src/specfem3D/initialize_simulation.f90
   seismo/3D/SPECFEM3D/trunk/src/specfem3D/locate_source.f90
   seismo/3D/SPECFEM3D/trunk/src/specfem3D/setup_sources_receivers.f90
   seismo/3D/SPECFEM3D/trunk/src/specfem3D/specfem3D_par.f90
Log:
moves point source flags from constants.h.in to Par_file


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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/in_data_files/Par_file	2012-09-13 21:00:44 UTC (rev 20712)
@@ -61,6 +61,14 @@
 # interval in time steps for reading adjoint traces
 NTSTEP_BETWEEN_READ_ADJSRC      = 0      # 0 = read the whole adjoint sources at the same time
 
+# use a force source located exactly at a grid point instead of a CMTSOLUTION source
+# this can be useful e.g. for oil industry foothills simulations or asteroid simulations
+# in which the source is a vertical force, normal force, impact etc.
+USE_FORCE_POINT_SOURCE          = .false.
+FACTOR_FORCE_SOURCE             = 1.d15
+# direction in comp E/N/Z = 1/2/3
+COMPONENT_FORCE_SOURCE          = 3
+
 # print source time function
 PRINT_SOURCE_TIME_FUNCTION      = .true.
 

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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/examples/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/in_data_files/Par_file	2012-09-13 21:00:44 UTC (rev 20712)
@@ -61,6 +61,14 @@
 # interval in time steps for reading adjoint traces
 NTSTEP_BETWEEN_READ_ADJSRC      = 0      # 0 = read the whole adjoint sources at the same time
 
+# use a force source located exactly at a grid point instead of a CMTSOLUTION source
+# this can be useful e.g. for oil industry foothills simulations or asteroid simulations
+# in which the source is a vertical force, normal force, impact etc.
+USE_FORCE_POINT_SOURCE          = .false.
+FACTOR_FORCE_SOURCE             = 1.d15
+# direction in comp E/N/Z = 1/2/3
+COMPONENT_FORCE_SOURCE          = 3
+
 # print source time function
 PRINT_SOURCE_TIME_FUNCTION      = .true.
 

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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/examples/Mount_StHelens/in_data_files/Par_file	2012-09-13 21:00:44 UTC (rev 20712)
@@ -61,6 +61,14 @@
 # interval in time steps for reading adjoint traces
 NTSTEP_BETWEEN_READ_ADJSRC      = 0      # 0 = read the whole adjoint sources at the same time
 
+# use a force source located exactly at a grid point instead of a CMTSOLUTION source
+# this can be useful e.g. for oil industry foothills simulations or asteroid simulations
+# in which the source is a vertical force, normal force, impact etc.
+USE_FORCE_POINT_SOURCE          = .false.
+FACTOR_FORCE_SOURCE             = 1.d15
+# direction in comp E/N/Z = 1/2/3
+COMPONENT_FORCE_SOURCE          = 3
+
 # print source time function
 PRINT_SOURCE_TIME_FUNCTION      = .false.
 

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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/examples/homogeneous_halfspace/in_data_files/Par_file	2012-09-13 21:00:44 UTC (rev 20712)
@@ -63,6 +63,14 @@
 # 0 = read the whole adjoint sources at the same time
 NTSTEP_BETWEEN_READ_ADJSRC      = 0      
 
+# use a force source located exactly at a grid point instead of a CMTSOLUTION source
+# this can be useful e.g. for oil industry foothills simulations or asteroid simulations
+# in which the source is a vertical force, normal force, impact etc.
+USE_FORCE_POINT_SOURCE          = .false.
+FACTOR_FORCE_SOURCE             = 1.d15
+# direction in comp E/N/Z = 1/2/3
+COMPONENT_FORCE_SOURCE          = 3
+
 # print source time function
 PRINT_SOURCE_TIME_FUNCTION      = .false.
 

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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/examples/homogeneous_poroelastic/in_data_files/Par_file	2012-09-13 21:00:44 UTC (rev 20712)
@@ -63,6 +63,14 @@
 # # 0 = read the whole adjoint sources at the same time
 NTSTEP_BETWEEN_READ_ADJSRC      = 0
 
+# use a force source located exactly at a grid point instead of a CMTSOLUTION source
+# this can be useful e.g. for oil industry foothills simulations or asteroid simulations
+# in which the source is a vertical force, normal force, impact etc.
+USE_FORCE_POINT_SOURCE          = .false.
+FACTOR_FORCE_SOURCE             = 1.d15
+# direction in comp E/N/Z = 1/2/3
+COMPONENT_FORCE_SOURCE          = 3
+
 # print source time function
 PRINT_SOURCE_TIME_FUNCTION      = .true.
 

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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/examples/layered_halfspace/in_data_files/Par_file	2012-09-13 21:00:44 UTC (rev 20712)
@@ -62,6 +62,14 @@
 # interval in time steps for reading adjoint traces
 NTSTEP_BETWEEN_READ_ADJSRC      = 0      # 0 = read the whole adjoint sources at the same time
 
+# use a force source located exactly at a grid point instead of a CMTSOLUTION source
+# this can be useful e.g. for oil industry foothills simulations or asteroid simulations
+# in which the source is a vertical force, normal force, impact etc.
+USE_FORCE_POINT_SOURCE          = .false.
+FACTOR_FORCE_SOURCE             = 1.d15
+# direction in comp E/N/Z = 1/2/3
+COMPONENT_FORCE_SOURCE          = 3
+
 # print source time function
 PRINT_SOURCE_TIME_FUNCTION      = .false.
 

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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/many_interfaces/Par_file	2012-09-13 21:00:44 UTC (rev 20712)
@@ -62,6 +62,14 @@
 # interval in time steps for reading adjoint traces
 NTSTEP_BETWEEN_READ_ADJSRC      = 0      # 0 = read the whole adjoint sources at the same time
 
+# use a force source located exactly at a grid point instead of a CMTSOLUTION source
+# this can be useful e.g. for oil industry foothills simulations or asteroid simulations
+# in which the source is a vertical force, normal force, impact etc.
+USE_FORCE_POINT_SOURCE          = .false.
+FACTOR_FORCE_SOURCE             = 1.d15
+# direction in comp E/N/Z = 1/2/3
+COMPONENT_FORCE_SOURCE          = 3
+
 # print source time function
 PRINT_SOURCE_TIME_FUNCTION      = .false.
 

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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/simple_model/in_data_files/Par_file	2012-09-13 21:00:44 UTC (rev 20712)
@@ -62,6 +62,14 @@
 # interval in time steps for reading adjoint traces
 NTSTEP_BETWEEN_READ_ADJSRC      = 0      # 0 = read the whole adjoint sources at the same time
 
+# use a force source located exactly at a grid point instead of a CMTSOLUTION source
+# this can be useful e.g. for oil industry foothills simulations or asteroid simulations
+# in which the source is a vertical force, normal force, impact etc.
+USE_FORCE_POINT_SOURCE          = .false.
+FACTOR_FORCE_SOURCE             = 1.d15
+# direction in comp E/N/Z = 1/2/3
+COMPONENT_FORCE_SOURCE          = 3
+
 # print source time function
 PRINT_SOURCE_TIME_FUNCTION      = .false.
 

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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/examples/meshfem3D_examples/socal1D/in_data_files/Par_file	2012-09-13 21:00:44 UTC (rev 20712)
@@ -62,6 +62,14 @@
 # interval in time steps for reading adjoint traces
 NTSTEP_BETWEEN_READ_ADJSRC      = 0      # 0 = read the whole adjoint sources at the same time
 
+# use a force source located exactly at a grid point instead of a CMTSOLUTION source
+# this can be useful e.g. for oil industry foothills simulations or asteroid simulations
+# in which the source is a vertical force, normal force, impact etc.
+USE_FORCE_POINT_SOURCE          = .false.
+FACTOR_FORCE_SOURCE             = 1.d15
+# direction in comp E/N/Z = 1/2/3
+COMPONENT_FORCE_SOURCE          = 3
+
 # print source time function
 PRINT_SOURCE_TIME_FUNCTION      = .true.
 

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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/examples/tomographic_model/in_data_files/Par_file	2012-09-13 21:00:44 UTC (rev 20712)
@@ -62,6 +62,14 @@
 # interval in time steps for reading adjoint traces
 NTSTEP_BETWEEN_READ_ADJSRC      = 0      # 0 = read the whole adjoint sources at the same time
 
+# use a force source located exactly at a grid point instead of a CMTSOLUTION source
+# this can be useful e.g. for oil industry foothills simulations or asteroid simulations
+# in which the source is a vertical force, normal force, impact etc.
+USE_FORCE_POINT_SOURCE          = .false.
+FACTOR_FORCE_SOURCE             = 1.d15
+# direction in comp E/N/Z = 1/2/3
+COMPONENT_FORCE_SOURCE          = 3
+
 # print source time function
 PRINT_SOURCE_TIME_FUNCTION      = .false.
 

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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/examples/waterlayered_halfspace/in_data_files/Par_file	2012-09-13 21:00:44 UTC (rev 20712)
@@ -62,6 +62,14 @@
 # interval in time steps for reading adjoint traces
 NTSTEP_BETWEEN_READ_ADJSRC      = 0      # 0 = read the whole adjoint sources at the same time
 
+# use a force source located exactly at a grid point instead of a CMTSOLUTION source
+# this can be useful e.g. for oil industry foothills simulations or asteroid simulations
+# in which the source is a vertical force, normal force, impact etc.
+USE_FORCE_POINT_SOURCE          = .false.
+FACTOR_FORCE_SOURCE             = 1.d15
+# direction in comp E/N/Z = 1/2/3
+COMPONENT_FORCE_SOURCE          = 3
+
 # print source time function
 PRINT_SOURCE_TIME_FUNCTION      = .false.
 

Modified: seismo/3D/SPECFEM3D/trunk/in_data_files/Par_file
===================================================================
--- seismo/3D/SPECFEM3D/trunk/in_data_files/Par_file	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/in_data_files/Par_file	2012-09-13 21:00:44 UTC (rev 20712)
@@ -63,6 +63,14 @@
 # 0 = read the whole adjoint sources at the same time
 NTSTEP_BETWEEN_READ_ADJSRC      = 0      
 
+# use a force source located exactly at a grid point instead of a CMTSOLUTION source
+# this can be useful e.g. for oil industry foothills simulations or asteroid simulations
+# in which the source is a vertical force, normal force, impact etc.
+USE_FORCE_POINT_SOURCE          = .false.
+FACTOR_FORCE_SOURCE             = 1.d15
+# direction in comp E/N/Z = 1/2/3
+COMPONENT_FORCE_SOURCE          = 3
+
 # print source time function
 PRINT_SOURCE_TIME_FUNCTION      = .false.
 

Modified: seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases.f90	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -261,7 +261,9 @@
                         NTSTEP_BETWEEN_FRAMES,USE_HIGHRES_FOR_MOVIES,HDUR_MOVIE, &
                         SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION, &
                         NTSTEP_BETWEEN_OUTPUT_INFO,SIMULATION_TYPE,SAVE_FORWARD, &
-                        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY,IMODEL)
+                        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
+                        USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE, &
+                        COMPONENT_FORCE_SOURCE,IMODEL)
 
 ! check that the code is running with the requested nb of processes
   if(sizeprocs /= NPROC) then
@@ -394,6 +396,12 @@
     endif
 
     write(IMAIN,*)
+    if(USE_FORCE_POINT_SOURCE) then
+       write(IMAIN,*) 'using a force point source instead of a CMTSOLUTION source'
+    else
+       write(IMAIN,*) 'using a CMTSOLUTION source'
+       write(IMAIN,*)
+    endif
 
   endif
 

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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/generate_databases/generate_databases_par.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -56,12 +56,12 @@
 
 ! parameters read from parameter file
   integer :: NTSTEP_BETWEEN_OUTPUT_SEISMOS,NSTEP,SIMULATION_TYPE
-  integer :: NSOURCES
+  integer :: NSOURCES,COMPONENT_FORCE_SOURCE
 
-  double precision :: DT,HDUR_MOVIE
+  double precision :: DT,HDUR_MOVIE,FACTOR_FORCE_SOURCE
 
   logical :: ATTENUATION,USE_OLSEN_ATTENUATION, &
-          OCEANS, TOPOGRAPHY, SAVE_FORWARD
+          OCEANS,TOPOGRAPHY,SAVE_FORWARD,USE_FORCE_POINT_SOURCE
   logical :: ANISOTROPY,ABSORBING_CONDITIONS,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION
 
   logical :: MOVIE_SURFACE,MOVIE_VOLUME,CREATE_SHAKEMAP,SAVE_DISPLACEMENT, &

Modified: seismo/3D/SPECFEM3D/trunk/src/shared/combine_vol_data.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/shared/combine_vol_data.f90	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/combine_vol_data.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -89,7 +89,7 @@
 
   ! for read_parameter_files
   double precision :: DT
-  double precision :: HDUR_MOVIE
+  double precision :: HDUR_MOVIE,FACTOR_FORCE_SOURCE
   integer :: NPROC,NTSTEP_BETWEEN_OUTPUT_SEISMOS,NSTEP, &
             UTM_PROJECTION_ZONE,SIMULATION_TYPE
   integer :: NSOURCES,NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY
@@ -97,11 +97,11 @@
   logical :: MOVIE_SURFACE,MOVIE_VOLUME,CREATE_SHAKEMAP,SAVE_DISPLACEMENT, &
             USE_HIGHRES_FOR_MOVIES,SUPPRESS_UTM_PROJECTION
   logical :: ATTENUATION,USE_OLSEN_ATTENUATION, &
-            OCEANS,TOPOGRAPHY
+            OCEANS,TOPOGRAPHY,USE_FORCE_POINT_SOURCE
   logical :: ABSORBING_CONDITIONS,SAVE_FORWARD
   logical :: ANISOTROPY,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION
   character(len=256) LOCAL_PATH
-  integer :: IMODEL
+  integer :: COMPONENT_FORCE_SOURCE,IMODEL
 
 ! checks given arguments
   print *
@@ -181,7 +181,9 @@
                         NTSTEP_BETWEEN_FRAMES,USE_HIGHRES_FOR_MOVIES,HDUR_MOVIE, &
                         SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION, &
                         NTSTEP_BETWEEN_OUTPUT_INFO,SIMULATION_TYPE,SAVE_FORWARD, &
-                        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY,IMODEL)
+                        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
+                        USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE, &
+                        COMPONENT_FORCE_SOURCE,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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/constants.h.in	2012-09-13 21:00:44 UTC (rev 20712)
@@ -198,13 +198,6 @@
 ! no lagrange interpolation on seismograms (we take the value on one NGLL point)
   logical, parameter :: FASTER_RECEIVERS_POINTS_ONLY = .false.
 
-! use a force source located exactly at a grid point instead of a CMTSOLUTION source
-! this can be useful e.g. for oil industry foothills simulations or asteroid simulations
-! in which the source is a vertical force, normal force, impact etc.
-  logical, parameter :: USE_FORCE_POINT_SOURCE = .false.
-  double precision, parameter :: FACTOR_FORCE_SOURCE = 1.d15
-  integer, parameter :: COMPONENT_FORCE_SOURCE = 3  ! takes direction in comp E/N/Z = 1/2/3
-
 ! set to use a Ricker source time function instead of a gaussian
   logical, parameter :: USE_RICKER_IPATI = .false.
 

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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/create_movie_shakemap_AVS_DX_GMT.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -90,15 +90,15 @@
           USE_HIGHRES_FOR_MOVIES,SUPPRESS_UTM_PROJECTION
   integer NTSTEP_BETWEEN_FRAMES,NTSTEP_BETWEEN_OUTPUT_INFO
   double precision DT
-  double precision HDUR_MOVIE
+  double precision HDUR_MOVIE,FACTOR_FORCE_SOURCE
   logical ATTENUATION,USE_OLSEN_ATTENUATION, &
-          OCEANS,TOPOGRAPHY
+          OCEANS,TOPOGRAPHY,USE_FORCE_POINT_SOURCE
   logical ABSORBING_CONDITIONS,SAVE_FORWARD
   logical ANISOTROPY,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION
   character(len=256) OUTPUT_FILES,LOCAL_PATH
   integer NPROC
   integer ier
-  integer :: IMODEL
+  integer COMPONENT_FORCE_SOURCE,IMODEL
 
 !--------------------------------------------
 !!!! NL NL for external meshes
@@ -135,7 +135,9 @@
         NTSTEP_BETWEEN_FRAMES,USE_HIGHRES_FOR_MOVIES,HDUR_MOVIE, &
         SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION, &
         NTSTEP_BETWEEN_OUTPUT_INFO,SIMULATION_TYPE,SAVE_FORWARD, &
-        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY,IMODEL)
+        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
+        USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE, &
+        COMPONENT_FORCE_SOURCE,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/get_cmt.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/shared/get_cmt.f90	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/get_cmt.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -25,7 +25,7 @@
 !=====================================================================
 
   subroutine get_cmt(yr,jda,ho,mi,sec,tshift_cmt,hdur,lat,long,depth,moment_tensor,&
-                    DT,NSOURCES,min_tshift_cmt_original)
+                    DT,NSOURCES,min_tshift_cmt_original,USE_FORCE_POINT_SOURCE)
 
   implicit none
 
@@ -35,6 +35,7 @@
 
   integer, intent(in) :: NSOURCES
   double precision, intent(in) :: DT
+  logical, intent(in) :: USE_FORCE_POINT_SOURCE
 
   integer, intent(out) :: yr,jda,ho,mi
   double precision, intent(out) :: sec,min_tshift_cmt_original

Modified: seismo/3D/SPECFEM3D/trunk/src/shared/read_parameter_file.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/shared/read_parameter_file.f90	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/read_parameter_file.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -31,8 +31,8 @@
                         MOVIE_SURFACE,MOVIE_VOLUME,CREATE_SHAKEMAP,SAVE_DISPLACEMENT, &
                         NTSTEP_BETWEEN_FRAMES,USE_HIGHRES_FOR_MOVIES,HDUR_MOVIE, &
                         SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION,NTSTEP_BETWEEN_OUTPUT_INFO, &
-                        SIMULATION_TYPE,SAVE_FORWARD, &
-                        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY,IMODEL )
+                        SIMULATION_TYPE,SAVE_FORWARD,NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
+                        USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE,COMPONENT_FORCE_SOURCE,IMODEL )
 
   implicit none
 
@@ -40,14 +40,15 @@
 
   integer NPROC,NTSTEP_BETWEEN_OUTPUT_SEISMOS,NSTEP,SIMULATION_TYPE, NTSTEP_BETWEEN_READ_ADJSRC
   integer NSOURCES,NTSTEP_BETWEEN_FRAMES,NTSTEP_BETWEEN_OUTPUT_INFO,UTM_PROJECTION_ZONE
-  integer NOISE_TOMOGRAPHY
+  integer NOISE_TOMOGRAPHY,COMPONENT_FORCE_SOURCE
   integer IMODEL
 
-  double precision DT,HDUR_MOVIE
+  double precision DT,HDUR_MOVIE,FACTOR_FORCE_SOURCE
 
   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
 
   character(len=256) LOCAL_PATH,CMTSOLUTION
 
@@ -138,6 +139,12 @@
   if(err_occurred() /= 0) return
   call read_value_integer(NTSTEP_BETWEEN_READ_ADJSRC, 'solver.NTSTEP_BETWEEN_READ_ADJSRC')
   if(err_occurred() /= 0) return
+  call read_value_logical(USE_FORCE_POINT_SOURCE, 'solver.USE_FORCE_POINT_SOURCE')
+  if(err_occurred() /= 0) return
+  call read_value_double_precision(FACTOR_FORCE_SOURCE, 'solver.FACTOR_FORCE_SOURCE')
+  if(err_occurred() /= 0) return
+  call read_value_integer(COMPONENT_FORCE_SOURCE, 'solver.COMPONENT_FORCE_SOURCE')
+  if(err_occurred() /= 0) return
   call read_value_logical(PRINT_SOURCE_TIME_FUNCTION, 'solver.PRINT_SOURCE_TIME_FUNCTION')
   if(err_occurred() /= 0) return
 

Modified: seismo/3D/SPECFEM3D/trunk/src/shared/smooth_vol_data.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/shared/smooth_vol_data.f90	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/smooth_vol_data.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -97,7 +97,7 @@
 
   ! for read_parameter_files
   double precision :: DT
-  double precision :: HDUR_MOVIE
+  double precision :: HDUR_MOVIE,FACTOR_FORCE_SOURCE
   integer :: NPROC,NTSTEP_BETWEEN_OUTPUT_SEISMOS,NSTEP, &
             UTM_PROJECTION_ZONE,SIMULATION_TYPE
   integer :: NSOURCES,NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY
@@ -105,10 +105,11 @@
   logical :: MOVIE_SURFACE,MOVIE_VOLUME,CREATE_SHAKEMAP,SAVE_DISPLACEMENT, &
             USE_HIGHRES_FOR_MOVIES,SUPPRESS_UTM_PROJECTION
   logical :: ATTENUATION,USE_OLSEN_ATTENUATION, &
-            OCEANS,TOPOGRAPHY
+            OCEANS,TOPOGRAPHY,USE_FORCE_POINT_SOURCE
   logical :: ABSORBING_CONDITIONS,SAVE_FORWARD
   logical :: ANISOTROPY,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION
   character(len=256) LOCAL_PATH
+  integer :: COMPONENT_FORCE_SOURCE,IMODEL
 
   ! smoothing parameters
   character(len=256) :: ks_file
@@ -138,7 +139,6 @@
   logical :: ACOUSTIC_SIMULATION,ELASTIC_SIMULATION,POROELASTIC_SIMULATION
   integer :: idummy_a
   integer :: myrank,sizeprocs
-  integer :: IMODEL
 !------------------
 
   ! initialize the MPI communicator and start the NPROCTOT MPI processes
@@ -219,7 +219,9 @@
                         NTSTEP_BETWEEN_FRAMES,USE_HIGHRES_FOR_MOVIES,HDUR_MOVIE, &
                         SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION, &
                         NTSTEP_BETWEEN_OUTPUT_INFO,SIMULATION_TYPE,SAVE_FORWARD, &
-                        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY,IMODEL)
+                        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
+                        USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE, &
+                        COMPONENT_FORCE_SOURCE,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-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/shared/sum_kernels.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -103,16 +103,16 @@
 
   ! for read_parameter_files
   double precision :: DT
-  double precision :: HDUR_MOVIE
+  double precision :: HDUR_MOVIE,FACTOR_FORCE_SOURCE
   integer :: NPROC,NTSTEP_BETWEEN_OUTPUT_SEISMOS,NSTEP, &
             UTM_PROJECTION_ZONE,SIMULATION_TYPE
   integer :: NSOURCES,NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY
   integer :: NTSTEP_BETWEEN_FRAMES,NTSTEP_BETWEEN_OUTPUT_INFO
-  integer :: IMODEL
+  integer :: COMPONENT_FORCE_SOURCE,IMODEL
   logical :: MOVIE_SURFACE,MOVIE_VOLUME,CREATE_SHAKEMAP,SAVE_DISPLACEMENT, &
             USE_HIGHRES_FOR_MOVIES,SUPPRESS_UTM_PROJECTION
   logical :: ATTENUATION,USE_OLSEN_ATTENUATION, &
-            OCEANS,TOPOGRAPHY
+            OCEANS,TOPOGRAPHY,USE_FORCE_POINT_SOURCE
   logical :: ABSORBING_CONDITIONS,SAVE_FORWARD
   logical :: ANISOTROPY,SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION
   character(len=256) LOCAL_PATH
@@ -158,7 +158,9 @@
                         NTSTEP_BETWEEN_FRAMES,USE_HIGHRES_FOR_MOVIES,HDUR_MOVIE, &
                         SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION, &
                         NTSTEP_BETWEEN_OUTPUT_INFO,SIMULATION_TYPE,SAVE_FORWARD, &
-                        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY,IMODEL)
+                        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
+                        USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE, &
+                        COMPONENT_FORCE_SOURCE,IMODEL)
 
   ! checks if number of MPI process as specified
   if (sizeprocs /= NPROC) then

Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_add_sources_acoustic.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_add_sources_acoustic.f90	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_add_sources_acoustic.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -41,7 +41,8 @@
   use specfem_par,only: PRINT_SOURCE_TIME_FUNCTION,stf_used_total, &
                         xigll,yigll,zigll,xi_receiver,eta_receiver,gamma_receiver,&
                         station_name,network_name,adj_source_file,nrec_local,number_receiver_global, &
-                        pm1_source_encoding,nsources_local
+                        pm1_source_encoding,nsources_local,USE_FORCE_POINT_SOURCE, &
+                        FACTOR_FORCE_SOURCE
   implicit none
 
   include "constants.h"

Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_add_sources_elastic.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_add_sources_elastic.f90	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_add_sources_elastic.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -45,7 +45,8 @@
                         normal_x_noise,normal_y_noise,normal_z_noise, &
                         mask_noise,noise_surface_movie, &
                         nrec_local,number_receiver_global, &
-                        nsources_local
+                        nsources_local,USE_FORCE_POINT_SOURCE, &
+                        FACTOR_FORCE_SOURCE,COMPONENT_FORCE_SOURCE
 
   implicit none
 

Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_add_sources_poroelastic.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_add_sources_poroelastic.f90	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_add_sources_poroelastic.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -41,7 +41,8 @@
 
   use specfem_par,only: PRINT_SOURCE_TIME_FUNCTION,stf_used_total, &
                         xigll,yigll,zigll,xi_receiver,eta_receiver,gamma_receiver,&
-                        station_name,network_name,adj_source_file
+                        station_name,network_name,adj_source_file, &
+                        USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE,COMPONENT_FORCE_SOURCE
   implicit none
 
   include "constants.h"

Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/initialize_simulation.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/initialize_simulation.f90	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/initialize_simulation.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -46,7 +46,9 @@
                         NTSTEP_BETWEEN_FRAMES,USE_HIGHRES_FOR_MOVIES,HDUR_MOVIE, &
                         SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION, &
                         NTSTEP_BETWEEN_OUTPUT_INFO,SIMULATION_TYPE,SAVE_FORWARD, &
-                        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY,IMODEL)
+                        NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
+                        USE_FORCE_POINT_SOURCE,FACTOR_FORCE_SOURCE, &
+                        COMPONENT_FORCE_SOURCE,IMODEL)
 
   ! GPU_MODE is in par_file
   call read_gpu_mode(GPU_MODE,GRAVITY)

Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/locate_source.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/locate_source.f90	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/locate_source.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -38,16 +38,17 @@
                  PRINT_SOURCE_TIME_FUNCTION, &
                  nu_source,iglob_is_surface_external_mesh,ispec_is_surface_external_mesh, &
                  ispec_is_acoustic,ispec_is_elastic,ispec_is_poroelastic, &
-                 num_free_surface_faces,free_surface_ispec,free_surface_ijk)
+                 num_free_surface_faces,free_surface_ispec,free_surface_ijk, &
+                 USE_FORCE_POINT_SOURCE,COMPONENT_FORCE_SOURCE)
 
   implicit none
 
   include "constants.h"
 
   integer NPROC,UTM_PROJECTION_ZONE
-  integer NSPEC_AB,NGLOB_AB,NSOURCES
+  integer NSPEC_AB,NGLOB_AB,NSOURCES,COMPONENT_FORCE_SOURCE
 
-  logical PRINT_SOURCE_TIME_FUNCTION,SUPPRESS_UTM_PROJECTION
+  logical PRINT_SOURCE_TIME_FUNCTION,SUPPRESS_UTM_PROJECTION,USE_FORCE_POINT_SOURCE
 
   double precision DT
 
@@ -162,7 +163,7 @@
 
   ! read all the sources (note: each process reads the source file)
   call get_cmt(yr,jda,ho,mi,sec,tshift_cmt,hdur,lat,long,depth,moment_tensor, &
-              DT,NSOURCES,min_tshift_cmt_original)
+              DT,NSOURCES,min_tshift_cmt_original,USE_FORCE_POINT_SOURCE)
 
   ! define topology of the control element
   call usual_hex_nodes(iaddx,iaddy,iaddz)

Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/setup_sources_receivers.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/setup_sources_receivers.f90	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/setup_sources_receivers.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -116,7 +116,8 @@
           PRINT_SOURCE_TIME_FUNCTION, &
           nu_source,iglob_is_surface_external_mesh,ispec_is_surface_external_mesh,&
           ispec_is_acoustic,ispec_is_elastic,ispec_is_poroelastic, &
-          num_free_surface_faces,free_surface_ispec,free_surface_ijk)
+          num_free_surface_faces,free_surface_ispec,free_surface_ijk, &
+          USE_FORCE_POINT_SOURCE,COMPONENT_FORCE_SOURCE)
 
   if(abs(minval(tshift_cmt)) > TINYVAL) call exit_MPI(myrank,'one tshift_cmt must be zero, others must be positive')
 

Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/specfem3D_par.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/specfem3D_par.f90	2012-09-11 21:42:49 UTC (rev 20711)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/specfem3D_par.f90	2012-09-13 21:00:44 UTC (rev 20712)
@@ -154,6 +154,11 @@
   double precision, external :: wtime
   double precision :: time_start
 
+! parameters for a force source located exactly at a grid point
+  logical :: USE_FORCE_POINT_SOURCE
+  double precision :: FACTOR_FORCE_SOURCE
+  integer :: COMPONENT_FORCE_SOURCE
+
 ! parameters
   integer :: SIMULATION_TYPE
   integer :: NTSTEP_BETWEEN_OUTPUT_SEISMOS,NSTEP,UTM_PROJECTION_ZONE



More information about the CIG-COMMITS mailing list