[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