[cig-commits] r21825 - in seismo/2D/SPECFEM2D/trunk/src: meshfem2D specfem2D
dkomati1 at geodynamics.org
dkomati1 at geodynamics.org
Thu Apr 11 15:39:23 PDT 2013
Author: dkomati1
Date: 2013-04-11 15:39:22 -0700 (Thu, 11 Apr 2013)
New Revision: 21825
Modified:
seismo/2D/SPECFEM2D/trunk/src/meshfem2D/read_materials.f90
seismo/2D/SPECFEM2D/trunk/src/specfem2D/gmat01.f90
Log:
added a test on negative or null values of Q attenuation factor
Modified: seismo/2D/SPECFEM2D/trunk/src/meshfem2D/read_materials.f90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/meshfem2D/read_materials.f90 2013-04-11 22:27:00 UTC (rev 21824)
+++ seismo/2D/SPECFEM2D/trunk/src/meshfem2D/read_materials.f90 2013-04-11 22:39:22 UTC (rev 21825)
@@ -77,8 +77,8 @@
aniso6(:) = 0.d0
aniso7(:) = 0.d0
aniso8(:) = 0.d0
- QKappa(:) = 0.d0
- Qmu(:) = 0.d0
+ QKappa(:) = 9999.d0
+ Qmu(:) = 9999.d0
rho_s(:) = 0.d0
rho_f(:) = 0.d0
phi(:) = 0.d0
@@ -116,8 +116,9 @@
QKappa(i) = val5read
Qmu(i) = val6read
- if(rho_s(i) <= 0.d0 .or. cp(i) <= 0.d0 .or. cs(i) < 0.d0) stop 'negative value of velocity or density'
- if(QKappa(i) <= 0.d0 .or. Qmu(i) <= 0.d0) stop 'non-positive value of QKappa or Qmu'
+ if(rho_s(i) <= 0.00000001d0 .or. cp(i) <= 0.00000001d0 .or. cs(i) < 0.00000001d0) &
+ stop 'negative value of velocity or density'
+ if(QKappa(i) <= 0.00000001d0 .or. Qmu(i) <= 0.00000001d0) stop 'non-positive value of QKappa or Qmu'
aniso3(i) = val3read
aniso4(i) = val4read
@@ -141,6 +142,11 @@
Qmu(i) = val8read
cp(i) = sqrt(val4read/val0read)
cs(i) = sqrt(val6read/val0read)
+
+ if(rho_s(i) <= 0.00000001d0 .or. cp(i) <= 0.00000001d0 .or. cs(i) < 0.00000001d0) &
+ stop 'negative value of velocity or density'
+ if(QKappa(i) <= 0.00000001d0 .or. Qmu(i) <= 0.00000001d0) stop 'non-positive value of QKappa or Qmu'
+
else
! poroelastic materials
@@ -163,8 +169,9 @@
if(phi(i) <= 0.d0 .or. tortuosity(i) <= 0.d0) stop 'non-positive value of porosity or tortuosity'
if(kappa_s(i) <= 0.d0 .or. kappa_f(i) <= 0.d0 .or. kappa_fr(i) <= 0.d0 .or. mu_fr(i) <= 0.d0) then
stop 'non-positive value of modulus'
- end if
- if(Qmu(i) <= 0.d0) stop 'non-positive value of Qmu'
+ endif
+ if(Qmu(i) <= 0.00000001d0) stop 'non-positive value of Qmu'
+
endif
enddo
Modified: seismo/2D/SPECFEM2D/trunk/src/specfem2D/gmat01.f90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/specfem2D/gmat01.f90 2013-04-11 22:27:00 UTC (rev 21824)
+++ seismo/2D/SPECFEM2D/trunk/src/specfem2D/gmat01.f90 2013-04-11 22:39:22 UTC (rev 21825)
@@ -83,8 +83,8 @@
aniso_array(:,:) = zero
permeability(:,:) = zero
poroelastcoef(:,:,:) = zero
- QKappa_array(:) = zero
- Qmu_array(:) = zero
+ QKappa_array(:) = 9999.
+ Qmu_array(:) = 9999.
if(myrank == 0 .and. ipass == 1) write(IOUT,100) numat
@@ -109,8 +109,10 @@
! QKappa and Qmu values
QKappa = val5
Qmu = val6
+ if(QKappa <= 0.0000001 .or. Qmu <= 0.0000001) &
+ stop 'negative or null values of Q attenuation factor not allowed; set them equal to 9999 to indicate no attenuation'
- ! Lam'e parameters
+ ! Lame parameters
lambdaplus2mu = density(1)*cp*cp
mu = density(1)*cs*cs
two_mu = 2.d0*mu
@@ -145,11 +147,7 @@
cp = sqrt(c33/density(1))
cs = sqrt(c55/density(1))
- ! QKappa and Qmu values
- !QKappa = val9
- !Qmu = val10
-
- ! Lam'e parameters
+ ! Lame parameters
lambdaplus2mu = density(1)*cp*cp
mu = density(1)*cs*cs
two_mu = 2.d0*mu
@@ -182,7 +180,7 @@
! Frame properties
kappa_fr = val9
mu_fr = val11
- ! Lam'e parameters for the solid phase and the frame
+ ! Lame parameters for the solid phase and the frame
lambdaplus2mu_s = kappa_s + FOUR_THIRDS*mu_s
lambda_s = lambdaplus2mu_s - 2.d0*mu_s
lambdaplus2mu_fr = kappa_fr + FOUR_THIRDS*mu_fr
More information about the CIG-COMMITS
mailing list