[cig-commits] r20485 - seismo/2D/SPECFEM2D/trunk/src/specfem2D

xie.zhinan at geodynamics.org xie.zhinan at geodynamics.org
Sat Jul 7 07:00:39 PDT 2012


Author: xie.zhinan
Date: 2012-07-07 07:00:38 -0700 (Sat, 07 Jul 2012)
New Revision: 20485

Modified:
   seismo/2D/SPECFEM2D/trunk/src/specfem2D/compute_forces_acoustic.f90
   seismo/2D/SPECFEM2D/trunk/src/specfem2D/invert_mass_matrix.F90
   seismo/2D/SPECFEM2D/trunk/src/specfem2D/specfem2D.F90
Log:
fix bugs in part of PML implementation code when set PML_BOUNDARY_CONDITIONS=.false.


Modified: seismo/2D/SPECFEM2D/trunk/src/specfem2D/compute_forces_acoustic.f90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/specfem2D/compute_forces_acoustic.f90	2012-07-07 13:58:25 UTC (rev 20484)
+++ seismo/2D/SPECFEM2D/trunk/src/specfem2D/compute_forces_acoustic.f90	2012-07-07 14:00:38 UTC (rev 20485)
@@ -483,7 +483,7 @@
         rhol = density(1,kmato(ispec))
             endif
 
-             if(is_PML(ispec))then
+             if(is_PML(ispec) .and. PML_BOUNDARY_CONDITIONS)then
                         iPML=ibool_PML(i,j,ispec)
                         iglob=ibool(i,j,ispec)
 
@@ -637,7 +637,7 @@
                            (tempx1(k,j)*hprimewgll_xx(k,i) + tempx2(i,k)*hprimewgll_zz(k,j))
           enddo
 
-            if(is_PML(ispec))then
+            if(is_PML(ispec) .and. PML_BOUNDARY_CONDITIONS)then
                 if (which_PML_elem(ILEFT,ispec) .or. which_PML_elem(IRIGHT,ispec)) then
                         ispec_PML=spec_to_PML(ispec)
                         iPML=ibool_PML(i,j,ispec)

Modified: seismo/2D/SPECFEM2D/trunk/src/specfem2D/invert_mass_matrix.F90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/specfem2D/invert_mass_matrix.F90	2012-07-07 13:58:25 UTC (rev 20484)
+++ seismo/2D/SPECFEM2D/trunk/src/specfem2D/invert_mass_matrix.F90	2012-07-07 14:00:38 UTC (rev 20485)
@@ -235,7 +235,7 @@
 !          rmass_inverse_acoustic(iglob) = rmass_inverse_acoustic(iglob) &
 !                  + wxgll(i)*wzgll(j)*jacobian(i,j,ispec) / kappal
 
-        if (is_PML(ispec)) then
+        if (PML_BOUNDARY_CONDITIONS .and. is_PML(ispec)) then
           iPML=ibool_PML(i,j,ispec)
           rmass_inverse_acoustic(iglob) = rmass_inverse_acoustic(iglob)  &
                   + wxgll(i)*wzgll(j)/ kappal*jacobian(i,j,ispec) * (K_x_store(iPML) * K_z_store(iPML)&

Modified: seismo/2D/SPECFEM2D/trunk/src/specfem2D/specfem2D.F90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/specfem2D/specfem2D.F90	2012-07-07 13:58:25 UTC (rev 20484)
+++ seismo/2D/SPECFEM2D/trunk/src/specfem2D/specfem2D.F90	2012-07-07 14:00:38 UTC (rev 20485)
@@ -2854,7 +2854,6 @@
         rmemory_dux_dz(:,:,:,:) = ZERO
         rmemory_duz_dx(:,:,:,:) = ZERO
         rmemory_duz_dz(:,:,:,:) = ZERO
-
         rmemory_dux_dx_corner(:,:,:,:) = ZERO
         rmemory_dux_dz_corner(:,:,:,:) = ZERO
         rmemory_duz_dx_corner(:,:,:,:) = ZERO
@@ -2919,6 +2918,9 @@
       allocate(rmemory_displ_elastic(1,1,1,1,1))
       allocate(rmemory_displ_elastic_corner(1,1,1,1,1))
 
+      allocate(rmemory_potential_acoustic(1,1,1,1))
+      allocate(rmemory_potential_acoustic_corner(1,1,1,1))
+
       allocate(rmemory_acoustic_dux_dx(1,1,1,1))
       allocate(rmemory_acoustic_dux_dz(1,1,1,1))
 



More information about the CIG-COMMITS mailing list