[cig-commits] [commit] devel, master: for noise tomography, fixes weighting on ensemble forward wavefield source (0c4a33c)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Jun 18 15:19:41 PDT 2014


Repository : https://github.com/geodynamics/specfem2d

On branches: devel,master
Link       : https://github.com/geodynamics/specfem2d/compare/fc67e6fd7ad890705b2b72b4b3c509accb22249e...e9ca46c40131588d89d7b0883250bc6584ce6b4c

>---------------------------------------------------------------

commit 0c4a33ce3fdba6656903e3d051ae74976880489b
Author: Ryan Modrak <rmodrak at princeton.edu>
Date:   Fri Sep 23 20:24:19 2011 +0000

    for noise tomography, fixes weighting on ensemble forward wavefield source


>---------------------------------------------------------------

0c4a33ce3fdba6656903e3d051ae74976880489b
 noise_uniform/Par_file_noise_1 |  2 +-
 noise_uniform/Par_file_noise_2 |  2 +-
 noise_uniform/Par_file_noise_3 |  2 +-
 noise_uniform/adj_cc.f90       |  8 ++++----
 noise_uniform/clean            |  2 +-
 noise_uniform/contribution_1   | 24 +++++++++++++++---------
 noise_uniform/contribution_2   | 24 +++++++++++++++---------
 noise_uniform/ellipse_large    | 42 ++++++++++++++++++++++++++++++++++++++++++
 noise_uniform/process.sh       |  2 --
 9 files changed, 80 insertions(+), 28 deletions(-)

diff --git a/noise_uniform/Par_file_noise_1 b/noise_uniform/Par_file_noise_1
index 1892fb1..76c6874 100644
--- a/noise_uniform/Par_file_noise_1
+++ b/noise_uniform/Par_file_noise_1
@@ -22,7 +22,7 @@ freq0                           =  10            # frequency for viscous attenua
 p_sv                            = .false.        # set the type of calculation (P-SV or SH/membrane waves)
 
 # time step parameters
-nt                              = 4000           # total number of time steps
+nt                              = 2000           # total number of time steps
 deltat                          = 4.d-2          # duration of a time step
 
 # source parameters
diff --git a/noise_uniform/Par_file_noise_2 b/noise_uniform/Par_file_noise_2
index 4afa899..9a4e597 100644
--- a/noise_uniform/Par_file_noise_2
+++ b/noise_uniform/Par_file_noise_2
@@ -22,7 +22,7 @@ freq0                           =  10            # frequency for viscous attenua
 p_sv                            = .false.        # set the type of calculation (P-SV or SH/membrane waves)
 
 # time step parameters
-nt                              = 4000           # total number of time steps
+nt                              = 2000           # total number of time steps
 deltat                          = 4.d-2          # duration of a time step
 
 # source parameters
diff --git a/noise_uniform/Par_file_noise_3 b/noise_uniform/Par_file_noise_3
index f45ec1f..1a946a1 100644
--- a/noise_uniform/Par_file_noise_3
+++ b/noise_uniform/Par_file_noise_3
@@ -22,7 +22,7 @@ freq0                           =  10            # frequency for viscous attenua
 p_sv                            = .false.        # set the type of calculation (P-SV or SH/membrane waves)
 
 # time step parameters
-nt                              = 4000           # total number of time steps
+nt                              = 2000           # total number of time steps
 deltat                          = 4.d-2          # duration of a time step
 
 # source parameters
diff --git a/noise_uniform/adj_cc.f90 b/noise_uniform/adj_cc.f90
index a786a67..c00bd9f 100644
--- a/noise_uniform/adj_cc.f90
+++ b/noise_uniform/adj_cc.f90
@@ -13,8 +13,8 @@ logical, parameter :: use_negative_branch = .true.
 logical, parameter :: use_positive_branch = .false.
 logical, parameter :: use_custom_window = .false.
 
-!choose whether to time reverse (carried out subsequent to all other processing)
-logical, parameter :: reverse = .true.
+!choose whether to time reverse, carried out subsequent to all other processing
+logical, parameter :: time_reverse = .true.
 
 
 
@@ -183,8 +183,8 @@ write(*,*) ''
 write(*,*) 'Writing to file: '//trim(file_in)//'.adj'
 
 do it = 1,nt
-    if (.not. reverse) write(1002,'(f16.12,1pe18.8)'), t(it), seismo_adj(it)
-    if (reverse) write(1002,'(f16.12,1pe18.8)'), t(it), seismo_adj(nt+1-it)
+    if (.not. time_reverse) write(1002,'(f16.12,1pe18.8)'), t(it), seismo_adj(it)
+    if (time_reverse) write(1002,'(f16.12,1pe18.8)'), t(it), seismo_adj(nt+1-it)
 end do
 close(1002)
 
diff --git a/noise_uniform/clean b/noise_uniform/clean
index 08d34f4..d76350f 100755
--- a/noise_uniform/clean
+++ b/noise_uniform/clean
@@ -5,7 +5,7 @@
 
 echo "Cleaning up."
 
-rm -rf DATA SEM NOISE_TOMOGRAPHY OUTPUT_FILES OUTPUT_ALL SNAPSHOTS &> /dev/null
+rm -rf DATA SEM OUTPUT_FILES OUTPUT_ALL SNAPSHOTS &> /dev/null
 rm xmeshfem2D xspecfem2D &> /dev/null
 rm adj_run &> /dev/null
 rm log.* &> /dev/null
diff --git a/noise_uniform/contribution_1 b/noise_uniform/contribution_1
index a6b7f45..d3aa018 100755
--- a/noise_uniform/contribution_1
+++ b/noise_uniform/contribution_1
@@ -5,8 +5,8 @@ RUN_DIR=$PWD
 
 
 #prepare directories
-rm -rf   DATA SEM NOISE_TOMOGRAPHY OUTPUT_FILES OUTPUT_ALL SNAPSHOTS
-mkdir -p DATA SEM NOISE_TOMOGRAPHY OUTPUT_FILES OUTPUT_ALL SNAPSHOTS DATA/NOISE_TOMOGRAPHY OUTPUT_FILES/NOISE_TOMOGRAPHY
+rm -rf   DATA SEM OUTPUT_FILES OUTPUT_ALL
+mkdir -p DATA SEM OUTPUT_FILES OUTPUT_ALL DATA/NOISE_TOMOGRAPHY OUTPUT_FILES/NOISE_TOMOGRAPHY
 
 
 #prepare files
@@ -15,6 +15,7 @@ cp STATIONS_target_noise  DATA/STATIONS_target
 cp uniform.dat            DATA/
 echo 1 >                  DATA/NOISE_TOMOGRAPHY/irec_master
 if [ -f S_squared ]; then cp S_squared DATA/NOISE_TOMOGRAPHY/; fi
+if [ -f model_velocity.dat_input ]; then cp model_velocity.dat_input DATA/; fi
 
 
 #compile
@@ -31,25 +32,30 @@ ln -s ../../bin/xspecfem2D .
 cp Par_file_noise_1  DATA/Par_file
 ./xmeshfem2D; ./xspecfem2D
 mkdir OUTPUT_ALL/step_1
-mv OUTPUT_FILES/image*     OUTPUT_ALL/step_1
+#mv OUTPUT_FILES/image*     OUTPUT_ALL/step_1
 mv OUTPUT_FILES/*.semd     OUTPUT_ALL/step_1
 mv DATA/Par_file           OUTPUT_ALL/step_1
-#mv OUTPUT_FILES/snapshot*  SNAPSHOTS/
+mv OUTPUT_FILES/mask_noise OUTPUT_ALL/
+#mv OUTPUT_FILES/snapshot*  OUTPUT_ALL/
 
 
 #simulation 2
 cp Par_file_noise_2  DATA/Par_file
 ./xmeshfem2D; ./xspecfem2D
 mkdir OUTPUT_ALL/step_2
-mv OUTPUT_FILES/image*     OUTPUT_ALL/step_2
+#mv OUTPUT_FILES/image*     OUTPUT_ALL/step_2
 mv OUTPUT_FILES/*.semd     OUTPUT_ALL/step_2
 mv DATA/Par_file           OUTPUT_ALL/step_2
-#mv OUTPUT_FILES/snapshot*  SNAPSHOTS/
+#mv OUTPUT_FILES/snapshot*  OUTPUT_ALL/
 
 
 #prepare adjoint source
 ADJ_CODE=adj_cc.f90
-sed -i'.bak' 's/reverse = .[a-z]*./reverse = .false./' $ADJ_CODE
+sed -i'.bak' 's/use_positive_branch = .[a-z]*./use_positive_branch = .true./' $ADJ_CODE
+sed -i'.bak' 's/use_negative_branch = .[a-z]*./use_negative_branch = .false./' $ADJ_CODE
+sed -i'.bak' 's/use_custom_window = .[a-z]*./use_custom_window = .false./' $ADJ_CODE
+sed -i'.bak' 's/time_reverse = .[a-z]*./time_reverse = .true./' $ADJ_CODE
+
 gfortran $ADJ_CODE -o adj_run
 cp OUTPUT_ALL/step_2/*.semd SEM/
 ./adj_run SEM/S0003.AA.BXY.semd
@@ -67,9 +73,9 @@ cd ..
 cp Par_file_noise_3  DATA/Par_file
 ./xmeshfem2D; ./xspecfem2D
 mkdir OUTPUT_ALL/step_3
-mv OUTPUT_FILES/image*     OUTPUT_ALL/step_3
+#mv OUTPUT_FILES/image*     OUTPUT_ALL/step_3
 mv SEM/*Y.adj              OUTPUT_ALL/step_3
 mv OUTPUT_FILES/proc*      OUTPUT_ALL/step_3
 mv DATA/Par_file           OUTPUT_ALL/step_3
-mv OUTPUT_FILES/snapshot*  SNAPSHOTS/
+mv OUTPUT_FILES/snapshot*  OUTPUT_ALL/
 
diff --git a/noise_uniform/contribution_2 b/noise_uniform/contribution_2
index 7ea2448..0e31748 100755
--- a/noise_uniform/contribution_2
+++ b/noise_uniform/contribution_2
@@ -5,8 +5,8 @@ RUN_DIR=$PWD
 
 
 #prepare directories
-rm -rf   DATA SEM NOISE_TOMOGRAPHY OUTPUT_FILES OUTPUT_ALL SNAPSHOTS
-mkdir -p DATA SEM NOISE_TOMOGRAPHY OUTPUT_FILES OUTPUT_ALL SNAPSHOTS DATA/NOISE_TOMOGRAPHY OUTPUT_FILES/NOISE_TOMOGRAPHY
+rm -rf   DATA SEM OUTPUT_FILES OUTPUT_ALL
+mkdir -p DATA SEM OUTPUT_FILES OUTPUT_ALL DATA/NOISE_TOMOGRAPHY OUTPUT_FILES/NOISE_TOMOGRAPHY
 
 
 #prepare files
@@ -15,6 +15,7 @@ cp STATIONS_target_noise  DATA/STATIONS_target
 cp uniform.dat            DATA/
 echo 3 >                  DATA/NOISE_TOMOGRAPHY/irec_master
 if [ -f S_squared ]; then cp S_squared DATA/NOISE_TOMOGRAPHY/; fi
+if [ -f model_velocity.dat_input ]; then cp model_velocity.dat_input DATA/; fi
 
 
 #compile
@@ -31,25 +32,30 @@ ln -s ../../bin/xspecfem2D .
 cp Par_file_noise_1  DATA/Par_file
 ./xmeshfem2D; ./xspecfem2D
 mkdir OUTPUT_ALL/step_1
-mv OUTPUT_FILES/image*     OUTPUT_ALL/step_1
+#mv OUTPUT_FILES/image*     OUTPUT_ALL/step_1
 mv OUTPUT_FILES/*.semd     OUTPUT_ALL/step_1
 mv DATA/Par_file           OUTPUT_ALL/step_1
-#mv OUTPUT_FILES/snapshot*  SNAPSHOTS/
+mv OUTPUT_FILES/mask_noise OUTPUT_ALL/
+#mv OUTPUT_FILES/snapshot*  OUTPUT_ALL/
 
 
 #simulation 2
 cp Par_file_noise_2  DATA/Par_file
 ./xmeshfem2D; ./xspecfem2D
 mkdir OUTPUT_ALL/step_2
-mv OUTPUT_FILES/image*     OUTPUT_ALL/step_2
+#mv OUTPUT_FILES/image*     OUTPUT_ALL/step_2
 mv OUTPUT_FILES/*.semd     OUTPUT_ALL/step_2
 mv DATA/Par_file           OUTPUT_ALL/step_2
-#mv OUTPUT_FILES/snapshot*  SNAPSHOTS/
+#mv OUTPUT_FILES/snapshot*  OUTPUT_ALL/
 
 
 #prepare adjoint source
 ADJ_CODE=adj_cc.f90
-sed -i'.bak' 's/reverse = .[a-z]*./reverse = .true./' $ADJ_CODE
+sed -i'.bak' 's/use_positive_branch = .[a-z]*./use_positive_branch = .false./' $ADJ_CODE
+sed -i'.bak' 's/use_negative_branch = .[a-z]*./use_negative_branch = .true./' $ADJ_CODE
+sed -i'.bak' 's/use_custom_window = .[a-z]*./use_custom_window = .false./' $ADJ_CODE
+sed -i'.bak' 's/time_reverse = .[a-z]*./time_reverse = .true./' $ADJ_CODE
+
 gfortran $ADJ_CODE -o adj_run
 cp OUTPUT_ALL/step_2/*.semd SEM/
 ./adj_run SEM/S0001.AA.BXY.semd
@@ -67,9 +73,9 @@ cd ..
 cp Par_file_noise_3  DATA/Par_file
 ./xmeshfem2D; ./xspecfem2D
 mkdir OUTPUT_ALL/step_3
-mv OUTPUT_FILES/image*     OUTPUT_ALL/step_3
+#mv OUTPUT_FILES/image*     OUTPUT_ALL/step_3
 mv SEM/*Y.adj              OUTPUT_ALL/step_3
 mv OUTPUT_FILES/proc*      OUTPUT_ALL/step_3
 mv DATA/Par_file           OUTPUT_ALL/step_3
-mv OUTPUT_FILES/snapshot*  SNAPSHOTS/
+mv OUTPUT_FILES/snapshot*  OUTPUT_ALL/
 
diff --git a/noise_uniform/ellipse_large b/noise_uniform/ellipse_large
new file mode 100644
index 0000000..8170cba
--- /dev/null
+++ b/noise_uniform/ellipse_large
@@ -0,0 +1,42 @@
+! =============================================================================================================
+! specify spatial distribution of microseismic noise sources
+! USERS need to modify this subroutine to suit their own needs
+  subroutine create_mask_noise(nglob,coord,mask_noise)
+
+  implicit none
+  include "constants.h"
+
+  !input
+  integer :: nglob
+  real(kind=CUSTOM_REAL), dimension(2,nglob) :: coord
+
+  !output
+  real(kind=CUSTOM_REAL), dimension(nglob) :: mask_noise
+
+  !local
+  integer :: iglob
+  real(kind=CUSTOM_REAL) :: xx,zz,aa,phi
+
+  aa = PI/8.
+
+  !specify distribution of noise sources as a function of xx, zz
+  do iglob = 1,nglob
+    xx = coord(1,iglob)
+    zz = coord(2,iglob)
+
+    phi = (((xx-105.e3)*cos(aa)+(zz-92.e3)*sin(aa))/28.e3)**2. + &
+          (((xx-105.e3)*sin(aa)-(zz-92.e3)*cos(aa))/20.e3)**2. 
+
+    if (phi < 0.9) then
+        mask_noise(iglob) = 1.
+    elseif (phi < 1.1) then
+        mask_noise(iglob) = 0.5*(1.+cos(5.*PI*(phi/1.1-0.8)))
+    else
+        mask_noise(iglob) = 0.
+    endif
+
+
+  enddo
+
+  end subroutine create_mask_noise
+
diff --git a/noise_uniform/process.sh b/noise_uniform/process.sh
index f50add9..c1454c0 100755
--- a/noise_uniform/process.sh
+++ b/noise_uniform/process.sh
@@ -2,9 +2,7 @@
 
 ./contribution_1
 mv OUTPUT_ALL OUTPUT_ALL_1
-mv SNAPSHOT   SNAPSHOT_1
 
 ./contribution_2
 mv OUTPUT_ALL OUTPUT_ALL_2
-mv SNAPSHOT   SNAPSHOT_2
 



More information about the CIG-COMMITS mailing list