[cig-commits] [commit] devel: add a more flexible function for scale factor and fix one error in create_mass_matrices.f90 (e879ce3)
cig_noreply at geodynamics.org
cig_noreply at geodynamics.org
Wed Jun 18 03:18:09 PDT 2014
Repository : https://github.com/geodynamics/specfem3d
On branch : devel
Link : https://github.com/geodynamics/specfem3d/compare/ef9ac842da149d304509657da0cb3da09614bf63...162be97e5d1637f332135862c22a5383ed79880c
>---------------------------------------------------------------
commit e879ce3798ed488429b99eb876720c62369e1a15
Author: Xie Zhinan <xiezhinan1984 at gmail.com>
Date: Wed Jun 18 10:53:24 2014 +0800
add a more flexible function for scale factor and fix one error in create_mass_matrices.f90
>---------------------------------------------------------------
e879ce3798ed488429b99eb876720c62369e1a15
src/generate_databases/create_mass_matrices.f90 | 10 +-
.../pml_set_local_dampingcoeff.f90 | 110 ++++++++++-----------
2 files changed, 60 insertions(+), 60 deletions(-)
diff --git a/src/generate_databases/create_mass_matrices.f90 b/src/generate_databases/create_mass_matrices.f90
index 766cdd1..15b07d3 100644
--- a/src/generate_databases/create_mass_matrices.f90
+++ b/src/generate_databases/create_mass_matrices.f90
@@ -658,7 +658,7 @@
dble(K_store_y(i,j,k,ispec_CPML)) * dble(K_store_z(i,j,k,ispec_CPML)) + &
dble(d_store_y(i,j,k,ispec_CPML)) * dble(K_store_x(i,j,k,ispec_CPML)) * &
dble(K_store_z(i,j,k,ispec_CPML)) + dble(d_store_z(i,j,k,ispec_CPML)) * &
- dble(K_store_y(i,j,k,ispec_CPML)) * dble(K_store_z(i,j,k,ispec_CPML))) * &
+ dble(K_store_x(i,j,k,ispec_CPML)) * dble(K_store_y(i,j,k,ispec_CPML))) * &
deltat / 2.d0) )
else
rmass(iglob) = rmass(iglob) + &
@@ -666,8 +666,8 @@
(K_store_x(i,j,k,ispec_CPML) * K_store_y(i,j,k,ispec_CPML) * K_store_z(i,j,k,ispec_CPML) + &
(d_store_x(i,j,k,ispec_CPML) * K_store_y(i,j,k,ispec_CPML) * K_store_z(i,j,k,ispec_CPML) + &
d_store_y(i,j,k,ispec_CPML) * K_store_x(i,j,k,ispec_CPML) * K_store_z(i,j,k,ispec_CPML) + &
- d_store_z(i,j,k,ispec_CPML) * K_store_y(i,j,k,ispec_CPML) * K_store_z(i,j,k,ispec_CPML)) * &
- deltat / 2.d0)
+ d_store_z(i,j,k,ispec_CPML) * K_store_x(i,j,k,ispec_CPML) * K_store_y(i,j,k,ispec_CPML)) * &
+ deltat / 2.0)
endif
enddo
enddo
@@ -915,7 +915,7 @@
dble(K_store_y(i,j,k,ispec_CPML)) * dble(K_store_z(i,j,k,ispec_CPML)) + &
dble(d_store_y(i,j,k,ispec_CPML)) * dble(K_store_x(i,j,k,ispec_CPML)) * &
dble(K_store_z(i,j,k,ispec_CPML)) + dble(d_store_z(i,j,k,ispec_CPML)) * &
- dble(K_store_y(i,j,k,ispec_CPML)) * dble(K_store_z(i,j,k,ispec_CPML))) * &
+ dble(K_store_y(i,j,k,ispec_CPML)) * dble(K_store_x(i,j,k,ispec_CPML))) * &
deltat / 2.d0) )
else
rmass_acoustic(iglob) = rmass_acoustic(iglob) + &
@@ -923,7 +923,7 @@
(K_store_x(i,j,k,ispec_CPML) * K_store_y(i,j,k,ispec_CPML) * K_store_z(i,j,k,ispec_CPML) + &
(d_store_x(i,j,k,ispec_CPML) * K_store_y(i,j,k,ispec_CPML) * K_store_z(i,j,k,ispec_CPML) + &
d_store_y(i,j,k,ispec_CPML) * K_store_x(i,j,k,ispec_CPML) * K_store_z(i,j,k,ispec_CPML) + &
- d_store_z(i,j,k,ispec_CPML) * K_store_y(i,j,k,ispec_CPML) * K_store_z(i,j,k,ispec_CPML)) * &
+ d_store_z(i,j,k,ispec_CPML) * K_store_y(i,j,k,ispec_CPML) * K_store_x(i,j,k,ispec_CPML)) * &
deltat / 2.d0)
endif
enddo
diff --git a/src/generate_databases/pml_set_local_dampingcoeff.f90 b/src/generate_databases/pml_set_local_dampingcoeff.f90
index 7062155..eb3bb52 100644
--- a/src/generate_databases/pml_set_local_dampingcoeff.f90
+++ b/src/generate_databases/pml_set_local_dampingcoeff.f90
@@ -55,7 +55,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! JC JC: Remove the parameter definition here and make the calculation of ALPHA_MAX_PML automatic
! by recovering the value of hdur in FORCESOLUTION/CMTSOLUTION
real(kind=CUSTOM_REAL) :: ALPHA_MAX_PML
- real(kind=CUSTOM_REAL), parameter :: K_MAX_PML = 1.d0
+ real(kind=CUSTOM_REAL), parameter :: K_MAX_PML = 1.0d0,K_MIN_PML=1.0d0
real(kind=CUSTOM_REAL) :: pml_damping_profile_l,dist,vp
real(kind=CUSTOM_REAL) :: xoriginleft,xoriginright,yoriginfront,yoriginback,zoriginbottom,zorigintop
real(kind=CUSTOM_REAL) :: abscissa_in_PML_x,abscissa_in_PML_y,abscissa_in_PML_z
@@ -318,7 +318,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! avoid d_x to be less than zero
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
@@ -335,7 +335,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML grid point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -375,7 +375,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_y < 0._CUSTOM_REAL .or. K_y < 1._CUSTOM_REAL ) then
d_y = 0._CUSTOM_REAL; K_y = 1._CUSTOM_REAL
@@ -391,7 +391,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_y < 0._CUSTOM_REAL .or. K_y < 1._CUSTOM_REAL ) then
d_y = 0._CUSTOM_REAL; K_y = 1._CUSTOM_REAL
@@ -433,7 +433,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_z < 0._CUSTOM_REAL .or. K_z < 1._CUSTOM_REAL ) then
d_z = 0._CUSTOM_REAL; K_z = 1._CUSTOM_REAL
@@ -450,7 +450,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_z < 0._CUSTOM_REAL .or. K_z < 1._CUSTOM_REAL ) then
d_z = 0._CUSTOM_REAL; K_z = 1._CUSTOM_REAL
@@ -490,7 +490,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_y = ystore(iglob) - yoriginfront
@@ -501,7 +501,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -521,7 +521,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_y = yoriginback - ystore(iglob)
@@ -532,7 +532,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -552,7 +552,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_y = ystore(iglob) - yoriginfront
@@ -563,7 +563,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -583,7 +583,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_y = yoriginback - ystore(iglob)
@@ -594,7 +594,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -642,7 +642,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zstore(iglob) - zorigintop
@@ -653,7 +653,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -674,7 +674,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zoriginbottom - zstore(iglob)
@@ -685,7 +685,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -706,7 +706,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zstore(iglob) - zorigintop
@@ -717,7 +717,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -738,7 +738,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zoriginbottom - zstore(iglob)
@@ -749,7 +749,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -796,7 +796,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zstore(iglob) - zorigintop
@@ -807,7 +807,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_y < 0._CUSTOM_REAL .or. K_y < 1._CUSTOM_REAL ) then
d_y = 0._CUSTOM_REAL; K_y = 1._CUSTOM_REAL
@@ -828,7 +828,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zoriginbottom - zstore(iglob)
@@ -839,7 +839,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_y < 0._CUSTOM_REAL .or. K_y < 1._CUSTOM_REAL ) then
d_y = 0._CUSTOM_REAL; K_y = 1._CUSTOM_REAL
@@ -860,7 +860,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zstore(iglob) - zorigintop
@@ -871,7 +871,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_y < 0._CUSTOM_REAL .or. K_y < 1._CUSTOM_REAL ) then
d_y = 0._CUSTOM_REAL; K_y = 1._CUSTOM_REAL
@@ -892,7 +892,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zoriginbottom - zstore(iglob)
@@ -903,7 +903,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_y < 0._CUSTOM_REAL .or. K_y < 1._CUSTOM_REAL ) then
d_y = 0._CUSTOM_REAL; K_y = 1._CUSTOM_REAL
@@ -951,7 +951,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML grid point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_y = ystore(iglob) - yoriginfront
@@ -962,7 +962,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zstore(iglob) - zorigintop
@@ -973,7 +973,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -1000,7 +1000,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML grid point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_y = ystore(iglob) - yoriginfront
@@ -1011,7 +1011,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zoriginbottom - zstore(iglob)
@@ -1022,7 +1022,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -1049,7 +1049,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_y = yoriginback - ystore(iglob)
@@ -1060,7 +1060,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
@@ -1072,7 +1072,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -1099,7 +1099,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
@@ -1111,7 +1111,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
@@ -1123,7 +1123,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -1150,7 +1150,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML grid point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_y = ystore(iglob) - yoriginfront
@@ -1161,7 +1161,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zstore(iglob) - zorigintop
@@ -1172,7 +1172,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -1199,7 +1199,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML grid point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_y = ystore(iglob) - yoriginfront
@@ -1210,7 +1210,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zoriginbottom - zstore(iglob)
@@ -1221,7 +1221,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -1248,7 +1248,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_y = yoriginback - ystore(iglob)
@@ -1259,7 +1259,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zstore(iglob) - zorigintop
@@ -1270,7 +1270,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
@@ -1297,7 +1297,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_x = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_x)
alpha_x = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_x = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_x = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_y = yoriginback - ystore(iglob)
@@ -1308,7 +1308,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_y = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_y)
alpha_y = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_y = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_y = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
! gets abscissa of current grid point along the damping profile
abscissa_in_PML_z = zoriginbottom - zstore(iglob)
@@ -1319,7 +1319,7 @@ subroutine pml_set_local_dampingcoeff(myrank,xstore,ystore,zstore)
! gets damping profile at the C-PML element's GLL point
d_z = pml_damping_profile_l(myrank,iglob,dist,vp,CPML_width_z)
alpha_z = ALPHA_MAX_PML * (1._CUSTOM_REAL - dist)
- K_z = 1._CUSTOM_REAL + (K_MAX_PML - 1._CUSTOM_REAL) * dist**NPOWER
+ K_z = K_MIN_PML + (K_MAX_PML - 1._CUSTOM_REAL) * dist
if( d_x < 0._CUSTOM_REAL .or. K_x < 1._CUSTOM_REAL ) then
d_x = 0._CUSTOM_REAL; K_x = 1._CUSTOM_REAL
More information about the CIG-COMMITS
mailing list