[cig-commits] r15906 - seismo/3D/CPML/trunk
dkomati1 at geodynamics.org
dkomati1 at geodynamics.org
Fri Oct 30 18:05:57 PDT 2009
Author: dkomati1
Date: 2009-10-30 18:05:56 -0700 (Fri, 30 Oct 2009)
New Revision: 15906
Modified:
seismo/3D/CPML/trunk/Makefile
seismo/3D/CPML/trunk/seismic_CPML_2D_anisotropic.f90
seismo/3D/CPML/trunk/seismic_CPML_2D_isotropic_fourth_order.f90
seismo/3D/CPML/trunk/seismic_CPML_2D_isotropic_second_order.f90
seismo/3D/CPML/trunk/seismic_CPML_2D_poroelastic_fourth_order.f90
seismo/3D/CPML/trunk/seismic_CPML_3D_isotropic_MPI_OpenMP.f90
seismo/3D/CPML/trunk/seismic_CPML_3D_viscoelastic_MPI.f90
seismo/3D/CPML/trunk/seismic_PML_Collino_2D_isotropic.f90
seismo/3D/CPML/trunk/seismic_PML_Collino_3D_isotropic_OpenMP.f90
Log:
done cleaning all the source codes, updating the copyright and version
information, removing all the unused variables, and updating the Makefile.
Modified: seismo/3D/CPML/trunk/Makefile
===================================================================
--- seismo/3D/CPML/trunk/Makefile 2009-10-31 00:45:27 UTC (rev 15905)
+++ seismo/3D/CPML/trunk/Makefile 2009-10-31 01:05:56 UTC (rev 15906)
@@ -1,7 +1,7 @@
#
-# Makefile for SEISMIC_CPML Version 1.1.0
+# Makefile for SEISMIC_CPML Version 1.1.0, October 2009
# Dimitri Komatitsch
-# Universite de Pau et des Pays de l'Adour, CNRS and INRIA, France, October 2009
+# Universite de Pau et des Pays de l'Adour, CNRS and INRIA, France
#
SHELL=/bin/sh
@@ -19,7 +19,7 @@
# Intel (leave option -ftz, which is *critical* for performance)
#F90 = ifort
#MPIF90 = mpif90
-#FLAGS = -O3 -xP -vec-report0 -e03 -std03 -implicitnone -warn truncated_source -warn argument_checking -warn unused -warn declarations -warn alignments -warn ignore_loc -warn usage -check nobounds -fpe3 -ftz
+#FLAGS = -O3 -xP -vec-report0 -implicitnone -warn truncated_source -warn argument_checking -warn unused -warn declarations -warn alignments -warn ignore_loc -warn usage -check nobounds -fpe3 -ftz
#MEDIUM_MEMORY = -mcmodel=medium
#OPEN_MP = -openmp -openmp-report1
@@ -32,19 +32,17 @@
# GNU gfortran
F90 = gfortran
-#MPIF90 = mpif90
-###### DK DK change size 3D also
-MPIF90 = /opt/mpich2_gfortran/bin/mpif90
+MPIF90 = mpif90
FLAGS = -std=f2003 -fimplicit-none -frange-check -O3 -fmax-errors=10 -pedantic -pedantic-errors -Waliasing -Wampersand -Wcharacter-truncation -Wline-truncation -Wsurprising -Wno-tabs -Wunderflow -fno-trapping-math
-#MEDIUM_MEMORY = -mcmodel=medium
+MEDIUM_MEMORY = -mcmodel=medium
OPEN_MP = -fopenmp
-default: clean seismic_CPML_2D_isotropic_second_order seismic_CPML_2D_isotropic_fourth_order seismic_CPML_2D_anisotropic seismic_PML_Collino_2D_isotropic seismic_PML_Collino_3D_isotropic_OpenMP seismic_CPML_3D_isotropic_MPI_OpenMP seismic_CPML_2D_poroelastic_fourth_order seismic_CPML_3D_viscoelastic_MPI_OpenMP
+default: clean seismic_CPML_2D_isotropic_second_order seismic_CPML_2D_isotropic_fourth_order seismic_CPML_2D_anisotropic seismic_PML_Collino_2D_isotropic seismic_PML_Collino_3D_isotropic_OpenMP seismic_CPML_3D_isotropic_MPI_OpenMP seismic_CPML_2D_poroelastic_fourth_order seismic_CPML_3D_viscoelastic_MPI
all: default
clean:
- /bin/rm -f *.o xseismic_CPML_2D_isotropic_second_order xseismic_CPML_2D_isotropic_fourth_order xseismic_CPML_2D_anisotropic xseismic_PML_Collino_2D_isotropic xseismic_CPML_3D_isotropic_MPI_OpenMP xseismic_PML_Collino_3D_isotropic_OpenMP xseismic_CPML_2D_poroelastic_fourth_order xseismic_CPML_3D_viscoelastic_MPI_OpenMP
+ /bin/rm -f *.o xseismic_CPML_2D_isotropic_second_order xseismic_CPML_2D_isotropic_fourth_order xseismic_CPML_2D_anisotropic xseismic_PML_Collino_2D_isotropic xseismic_CPML_3D_isotropic_MPI_OpenMP xseismic_PML_Collino_3D_isotropic_OpenMP xseismic_CPML_2D_poroelastic_fourth_order xseismic_CPML_3D_viscoelastic_MPI
seismic_CPML_2D_poroelastic_fourth_order:
$(F90) $(FLAGS) -o xseismic_CPML_2D_poroelastic_fourth_order seismic_CPML_2D_poroelastic_fourth_order.f90
@@ -67,6 +65,6 @@
seismic_CPML_3D_isotropic_MPI_OpenMP:
$(MPIF90) $(FLAGS) $(MEDIUM_MEMORY) $(OPEN_MP) -o xseismic_CPML_3D_isotropic_MPI_OpenMP seismic_CPML_3D_isotropic_MPI_OpenMP.f90
-seismic_CPML_3D_viscoelastic_MPI_OpenMP:
- $(MPIF90) $(FLAGS) $(MEDIUM_MEMORY) $(OPEN_MP) -o xseismic_CPML_3D_viscoelastic_MPI_OpenMP seismic_CPML_3D_viscoelastic_MPI_OpenMP.f90
+seismic_CPML_3D_viscoelastic_MPI:
+ $(MPIF90) $(FLAGS) $(MEDIUM_MEMORY) $(OPEN_MP) -o xseismic_CPML_3D_viscoelastic_MPI seismic_CPML_3D_viscoelastic_MPI.f90
Modified: seismo/3D/CPML/trunk/seismic_CPML_2D_anisotropic.f90
===================================================================
--- seismo/3D/CPML/trunk/seismic_CPML_2D_anisotropic.f90 2009-10-31 00:45:27 UTC (rev 15905)
+++ seismo/3D/CPML/trunk/seismic_CPML_2D_anisotropic.f90 2009-10-31 01:05:56 UTC (rev 15906)
@@ -1,4 +1,6 @@
!
+! SEISMIC_CPML Version 1.1.0, October 2009.
+!
! Copyright Universite de Pau et des Pays de l'Adour, CNRS and INRIA, France.
! Contributors: Dimitri Komatitsch, dimitri DOT komatitsch aT univ-pau DOT fr
! and Roland Martin, roland DOT martin aT univ-pau DOT fr
@@ -39,7 +41,6 @@
! 2D elastic finite-difference code in velocity and stress formulation
! with Convolutional-PML (C-PML) absorbing conditions for an anisotropic medium
-! Version 1.0
! Dimitri Komatitsch, University of Pau, France, April 2007.
! Anisotropic implementation by Roland Martin and Dimitri Komatitsch, University of Pau, France, April 2007.
Modified: seismo/3D/CPML/trunk/seismic_CPML_2D_isotropic_fourth_order.f90
===================================================================
--- seismo/3D/CPML/trunk/seismic_CPML_2D_isotropic_fourth_order.f90 2009-10-31 00:45:27 UTC (rev 15905)
+++ seismo/3D/CPML/trunk/seismic_CPML_2D_isotropic_fourth_order.f90 2009-10-31 01:05:56 UTC (rev 15906)
@@ -1,4 +1,6 @@
!
+! SEISMIC_CPML Version 1.1.0, October 2009.
+!
! Copyright Universite de Pau et des Pays de l'Adour, CNRS and INRIA, France.
! Contributors: Dimitri Komatitsch, dimitri DOT komatitsch aT univ-pau DOT fr
! and Roland Martin, roland DOT martin aT univ-pau DOT fr
@@ -39,7 +41,6 @@
! 2D elastic finite-difference code in velocity and stress formulation
! with Convolutional-PML (C-PML) absorbing conditions for an isotropic medium
-! Version 1.0
! Dimitri Komatitsch, University of Pau, France, April 2007.
! Fourth-order implementation by Dimitri Komatitsch and Roland Martin, University of Pau, France, August 2007.
Modified: seismo/3D/CPML/trunk/seismic_CPML_2D_isotropic_second_order.f90
===================================================================
--- seismo/3D/CPML/trunk/seismic_CPML_2D_isotropic_second_order.f90 2009-10-31 00:45:27 UTC (rev 15905)
+++ seismo/3D/CPML/trunk/seismic_CPML_2D_isotropic_second_order.f90 2009-10-31 01:05:56 UTC (rev 15906)
@@ -1,4 +1,6 @@
!
+! SEISMIC_CPML Version 1.1.0, October 2009.
+!
! Copyright Universite de Pau et des Pays de l'Adour, CNRS and INRIA, France.
! Contributor: Dimitri Komatitsch, dimitri DOT komatitsch aT univ-pau DOT fr
!
@@ -38,7 +40,6 @@
! 2D elastic finite-difference code in velocity and stress formulation
! with Convolutional-PML (C-PML) absorbing conditions for an isotropic medium
-! Version 1.0
! Dimitri Komatitsch, University of Pau, France, April 2007.
! The second-order staggered-grid formulation of Madariaga (1976) and Virieux (1986) is used:
Modified: seismo/3D/CPML/trunk/seismic_CPML_2D_poroelastic_fourth_order.f90
===================================================================
--- seismo/3D/CPML/trunk/seismic_CPML_2D_poroelastic_fourth_order.f90 2009-10-31 00:45:27 UTC (rev 15905)
+++ seismo/3D/CPML/trunk/seismic_CPML_2D_poroelastic_fourth_order.f90 2009-10-31 01:05:56 UTC (rev 15906)
@@ -1,4 +1,6 @@
!
+! SEISMIC_CPML Version 1.1.0, October 2009.
+!
! Copyright Universite de Pau et des Pays de l'Adour, CNRS and INRIA, France.
! Contributors: Roland Martin, roland DOT martin aT univ-pau DOT fr
! and Dimitri Komatitsch, dimitri DOT komatitsch aT univ-pau DOT fr
@@ -289,8 +291,8 @@
double precision, parameter :: ALPHA_MAX_PML = 2.d0*PI*(f0/2.d0) ! from festa and Vilotte
! 2D arrays for the memory variables
- double precision, dimension(0:NX+1,0:NY+1) :: gamma11,gamma12,gamma22
- double precision, dimension(0:NX+1,0:NY+1) :: gamma12_1,gamma12_2
+ double precision, dimension(0:NX+1,0:NY+1) :: gamma11,gamma22
+ double precision, dimension(0:NX+1,0:NY+1) :: gamma12_1
double precision, dimension(0:NX+1,0:NY+1) :: xi_1,xi_2
double precision, dimension(0:NX+1,0:NY+1) :: &
@@ -302,17 +304,15 @@
! 1D arrays for the damping profiles
double precision, dimension(NX) :: d_x,K_x,alpha_prime_x,a_x,b_x,d_x_half_x,K_x_half_x,alpha_prime_x_half_x,a_x_half_x,b_x_half_x
double precision, dimension(NY) :: d_y,K_y,alpha_prime_y,a_y,b_y,d_y_half_y,K_y_half_y,alpha_prime_y_half_y,a_y_half_y,b_y_half_y
- double precision, dimension(NY) :: d_y_new,K_y_new,alpha_prime_y_new,a_y_new,b_y_new,d_y_half_y_new,K_y_half_y_new, &
- alpha_prime_y_half_y_new,a_y_half_y_new,b_y_half_y_new
double precision thickness_PML_x,thickness_PML_y,xoriginleft,xoriginright,yoriginbottom,yorigintop
double precision Rcoef,d0_x,d0_y,xval,yval,abscissa_in_PML,abscissa_normalized
- double precision value_dx_vx1,value_dx_vx2,value_dx_vy,value_dx_sigmaxx,value_dx_sigmayy,value_dx_sigmaxy
- double precision value_dy_vy1,value_dy_vy2,value_dy_vx,value_dy_sigmaxx,value_dy_sigmayy,value_dy_sigmaxy
- double precision value_dx_sigma2vx,value_dx_sigma2vxf,value_dy_sigma2vy,value_dy_sigma2vyf
+ double precision value_dx_vx1,value_dx_vx2,value_dx_vy,value_dx_sigmaxx,value_dx_sigmaxy
+ double precision value_dy_vy1,value_dy_vy2,value_dy_vx,value_dy_sigmaxx,value_dy_sigmaxy
+ double precision value_dx_sigma2vxf,value_dy_sigma2vyf
! for the source
- double precision a,t,force_x,force_y,source_term
+ double precision a,t,source_term
! for receivers
double precision xspacerec,yspacerec,distval,dist
@@ -322,7 +322,7 @@
! for seismograms
double precision, dimension(NSTEP,NREC) :: sisvx,sisvy,sisp
- integer i,j,it,it2,irec
+ integer i,j,it,irec
double precision Courant_number_bottom,Courant_number_top,velocnorm_all,max_amplitude
double precision Dispersion_number_bottom,Dispersion_number_top
@@ -975,14 +975,14 @@
! save temporary partial seismograms to monitor the behavior of the simulation
! while it is running
- call write_seismograms(sisvx,sisvy,sisp,NSTEP,NREC,DELTAT,t0/2.d0)
+ call write_seismograms(sisvx,sisvy,sisp,NSTEP,NREC,DELTAT,t0)
endif
enddo ! end of time loop
! save seismograms
- call write_seismograms(sisvx,sisvy,sisp,NSTEP,NREC,DELTAT,t0/2.d0)
+ call write_seismograms(sisvx,sisvy,sisp,NSTEP,NREC,DELTAT,t0)
! save total energy
open(unit=20,file='energy.dat',status='unknown')
@@ -1075,8 +1075,7 @@
write(file_name,"('Vx_file_',i3.3,'.dat')") irec
open(unit=11,file=file_name,status='unknown')
do it=1,nt
-! write(11,*) sngl(dble(it-1)*DELTAT - t0),' ',sngl(sisvx(it,irec))
- write(11,*) sngl(dble(it-1)*DELTAT ),' ',sngl(sisvx(it,irec))
+ write(11,*) sngl(dble(it-1)*DELTAT - t0),' ',sngl(sisvx(it,irec))
enddo
close(11)
enddo
@@ -1086,8 +1085,7 @@
write(file_name,"('Vy_file_',i3.3,'.dat')") irec
open(unit=11,file=file_name,status='unknown')
do it=1,nt
-! write(11,*) sngl(dble(it-1)*DELTAT - t0),' ',sngl(sisvy(it,irec))
- write(11,*) sngl(dble(it-1)*DELTAT ),' ',sngl(sisvy(it,irec))
+ write(11,*) sngl(dble(it-1)*DELTAT - t0),' ',sngl(sisvy(it,irec))
enddo
close(11)
enddo
@@ -1097,8 +1095,7 @@
write(file_name,"('Pf_file_',i3.3,'.dat')") irec
open(unit=11,file=file_name,status='unknown')
do it=1,nt
-! write(11,*) sngl(dble(it-1)*DELTAT - t0),' ',sngl(sisp(it,irec))
- write(11,*) sngl(dble(it-1)*DELTAT ),' ',sngl(sisp(it,irec))
+ write(11,*) sngl(dble(it-1)*DELTAT - t0),' ',sngl(sisp(it,irec))
enddo
close(11)
enddo
Modified: seismo/3D/CPML/trunk/seismic_CPML_3D_isotropic_MPI_OpenMP.f90
===================================================================
--- seismo/3D/CPML/trunk/seismic_CPML_3D_isotropic_MPI_OpenMP.f90 2009-10-31 00:45:27 UTC (rev 15905)
+++ seismo/3D/CPML/trunk/seismic_CPML_3D_isotropic_MPI_OpenMP.f90 2009-10-31 01:05:56 UTC (rev 15906)
@@ -1,4 +1,6 @@
!
+! SEISMIC_CPML Version 1.1.0, October 2009.
+!
! Copyright Universite de Pau et des Pays de l'Adour, CNRS and INRIA, France.
! Contributor: Dimitri Komatitsch, dimitri DOT komatitsch aT univ-pau DOT fr
!
@@ -38,7 +40,6 @@
! 3D elastic finite-difference code in velocity and stress formulation
! with Convolutional-PML (C-PML) absorbing conditions.
-! Version 1.0
! Dimitri Komatitsch, University of Pau, France, April 2007.
! The second-order staggered-grid formulation of Madariaga (1976) and Virieux (1986) is used.
Modified: seismo/3D/CPML/trunk/seismic_CPML_3D_viscoelastic_MPI.f90
===================================================================
--- seismo/3D/CPML/trunk/seismic_CPML_3D_viscoelastic_MPI.f90 2009-10-31 00:45:27 UTC (rev 15905)
+++ seismo/3D/CPML/trunk/seismic_CPML_3D_viscoelastic_MPI.f90 2009-10-31 01:05:56 UTC (rev 15906)
@@ -1,4 +1,6 @@
!
+! SEISMIC_CPML Version 1.1.0, October 2009.
+!
! Copyright Universite de Pau et des Pays de l'Adour, CNRS and INRIA, France.
! Contributors: Roland Martin, roland DOT martin aT univ-pau DOT fr
! and Dimitri Komatitsch, dimitri DOT komatitsch aT univ-pau DOT fr
@@ -47,8 +49,7 @@
! The C-PML implementation is based in part on formulas given in Roden and Gedney (2000).
!
-! Parallel implementation based on both MPI and OpenMP.
-! Type for instance "setenv OMP_NUM_THREADS 4" before running in OpenMP if you want 4 tasks.
+! Parallel implementation based on MPI.
!
! If you use this code for your own research, please cite:
!
@@ -242,7 +243,7 @@
double precision a,t,force_x,force_y,source_term
! for receivers
- double precision xspacerec,yspacerec,distval,dist
+ double precision distval,dist
integer, dimension(NREC) :: ix_rec,iy_rec
double precision, dimension(NREC) :: xrec,yrec
@@ -252,12 +253,11 @@
! max amplitude for color snapshots
double precision max_amplitudeVx
double precision max_amplitudeVy
- double precision max_amplitudeVz
! for evolution of total energy in the medium
double precision :: epsilon_xx,epsilon_yy,epsilon_zz,epsilon_xy,epsilon_xz,epsilon_yz
double precision, dimension(NSTEP) :: total_energy,total_energy_kinetic,total_energy_potential
- double precision :: local_energy,local_energy_kinetic,local_energy_potential
+ double precision :: local_energy_kinetic,local_energy_potential
integer :: irec
@@ -269,15 +269,13 @@
double precision, parameter :: DELTAT_over_rho = DELTAT/rho
double precision :: mul_relaxed,lambdal_relaxed,lambdalplus2mul_relaxed
double precision :: mul_unrelaxed,lambdal_unrelaxed,lambdalplus2mul_unrelaxed
- double precision :: Un,Sn,Snp1,Unp1,Mu_nu1,Mu_nu2
+ double precision :: Un,Sn,Unp1,Mu_nu1,Mu_nu2
double precision :: phi_nu1_mech1,phi_nu1_mech2
double precision :: phi_nu2_mech1,phi_nu2_mech2
double precision :: tauinv,inv_tau_sigma_nu1_mech1,inv_tau_sigma_nu1_mech2
double precision :: taumin,taumax, tau1, tau2, tau3, tau4
double precision :: inv_tau_sigma_nu2_mech1,inv_tau_sigma_nu2_mech2
- double precision :: tauinvsquare,tauinvUn,tauinvcube
- double precision :: deltatsquare,deltatcube,deltatfourth
- double precision :: twelvedeltat,fourdeltatsquare
+ double precision :: tauinvUn
double precision :: tau_epsilon_nu1_mech1, tau_sigma_nu1_mech1
double precision:: tau_epsilon_nu2_mech1, tau_sigma_nu2_mech1
double precision:: tau_epsilon_nu1_mech2, tau_sigma_nu1_mech2
@@ -884,18 +882,6 @@
receiver_right_shift,message_tag,vz(:,:,-1:0),number_of_values, &
MPI_DOUBLE_PRECISION,sender_right_shift,message_tag,MPI_COMM_WORLD,message_status,code)
-!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(kglobal,i,j,k,value_dvx_dx,value_dvx_dy, &
-!$OMP duxdx,duxdy,duxdz,duydx,duydy,duydz,duzdx,duzdy,duzdz,div, &
-!$OMP value_dvx_dz,value_dvy_dx,value_dvy_dy,value_dvy_dz,value_dvz_dx,value_dvz_dy, &
-!$OMP value_dvz_dz,value_dsigmaxx_dx,value_dsigmayy_dy,value_dsigmazz_dz, &
-!$OMP value_dsigmaxy_dx,value_dsigmaxy_dy,value_dsigmaxz_dx,value_dsigmaxz_dz, &
-!$OMP value_dsigmayz_dy,value_dsigmayz_dz) SHARED(vx,vy,vz,sigmaxx,sigmayy,sigmazz, &
-!$OMP sigmaxy,sigmaxz,sigmayz,memory_dvx_dx,memory_dvx_dy,memory_dvx_dz, &
-!$OMP memory_dvy_dx,memory_dvy_dy,memory_dvy_dz,memory_dvz_dx,memory_dvz_dy, &
-!$OMP memory_dvz_dz,memory_dsigmaxx_dx,memory_dsigmayy_dy,memory_dsigmazz_dz, &
-!$OMP memory_dsigmaxy_dx,memory_dsigmaxy_dy,memory_dsigmaxz_dx,memory_dsigmaxz_dz, &
-!$OMP memory_dsigmayz_dy,memory_dsigmayz_dz,a_x,b_x,K_x,a_x_half,b_x_half,K_x_half, &
-!$OMP a_y,b_y,K_y,a_y_half,b_y_half,K_y_half,a_z,b_z,K_z,a_z_half,b_z_half,K_z_half,k2begin,offset_k)
do k=k2begin,NZ_LOCAL
kglobal = k + offset_k
do j=2,NY
@@ -1016,20 +1002,7 @@
enddo
enddo
enddo
-!$OMP END PARALLEL DO
-!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(kglobal,i,j,k,value_dvx_dx,value_dvx_dy, &
-!$OMP value_dvx_dz,value_dvy_dx,value_dvy_dy,value_dvy_dz,value_dvz_dx,value_dvz_dy, &
-!$OMP duxdx,duxdy,duxdz,duydx,duydy,duydz,duzdx,duzdy,duzdz,div, &
-!$OMP value_dvz_dz,value_dsigmaxx_dx,value_dsigmayy_dy,value_dsigmazz_dz, &
-!$OMP value_dsigmaxy_dx,value_dsigmaxy_dy,value_dsigmaxz_dx,value_dsigmaxz_dz, &
-!$OMP value_dsigmayz_dy,value_dsigmayz_dz) SHARED(vx,vy,vz,sigmaxx,sigmayy,sigmazz, &
-!$OMP sigmaxy,sigmaxz,sigmayz,memory_dvx_dx,memory_dvx_dy,memory_dvx_dz, &
-!$OMP memory_dvy_dx,memory_dvy_dy,memory_dvy_dz,memory_dvz_dx,memory_dvz_dy, &
-!$OMP memory_dvz_dz,memory_dsigmaxx_dx,memory_dsigmayy_dy,memory_dsigmazz_dz, &
-!$OMP memory_dsigmaxy_dx,memory_dsigmaxy_dy,memory_dsigmaxz_dx,memory_dsigmaxz_dz, &
-!$OMP memory_dsigmayz_dy,memory_dsigmayz_dz,a_x,b_x,K_x,a_x_half,b_x_half,K_x_half, &
-!$OMP a_y,b_y,K_y,a_y_half,b_y_half,K_y_half,a_z,b_z,K_z,a_z_half,b_z_half,K_z_half)
do k=1,NZ_LOCAL
do j=1,NY-1
do i=2,NX
@@ -1061,9 +1034,6 @@
Unp1 = (Un + deltat*(Sn+0.5d0*tauinvUn))/(1.d0-deltat*0.5d0*tauinv)
e12_mech2(i,j,k) = Unp1
-
-!! DK DK UGLY PML
-
sigmaxy(i,j,k) = sigmaxy(i,j,k)+deltat*mul_relaxed * (e12_mech1(i,j,k) + e12_mech2(i,j,k))
sigmaxy(i,j,k) = sigmaxy(i,j,k) + &
@@ -1075,20 +1045,7 @@
enddo
enddo
enddo
-!$OMP END PARALLEL DO
-!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(kglobal,i,j,k,value_dvx_dx,value_dvx_dy, &
-!$OMP value_dvx_dz,value_dvy_dx,value_dvy_dy,value_dvy_dz,value_dvz_dx,value_dvz_dy, &
-!$OMP duxdx,duxdy,duxdz,duydx,duydy,duydz,duzdx,duzdy,duzdz,div, &
-!$OMP value_dvz_dz,value_dsigmaxx_dx,value_dsigmayy_dy,value_dsigmazz_dz, &
-!$OMP value_dsigmaxy_dx,value_dsigmaxy_dy,value_dsigmaxz_dx,value_dsigmaxz_dz, &
-!$OMP value_dsigmayz_dy,value_dsigmayz_dz) SHARED(vx,vy,vz,sigmaxx,sigmayy,sigmazz, &
-!$OMP sigmaxy,sigmaxz,sigmayz,memory_dvx_dx,memory_dvx_dy,memory_dvx_dz, &
-!$OMP memory_dvy_dx,memory_dvy_dy,memory_dvy_dz,memory_dvz_dx,memory_dvz_dy, &
-!$OMP memory_dvz_dz,memory_dsigmaxx_dx,memory_dsigmayy_dy,memory_dsigmazz_dz, &
-!$OMP memory_dsigmaxy_dx,memory_dsigmaxy_dy,memory_dsigmaxz_dx,memory_dsigmaxz_dz, &
-!$OMP memory_dsigmayz_dy,memory_dsigmayz_dz,a_x,b_x,K_x,a_x_half,b_x_half,K_x_half, &
-!$OMP a_y,b_y,K_y,a_y_half,b_y_half,K_y_half,a_z,b_z,K_z,a_z_half,b_z_half,K_z_half,kminus1end,offset_k)
do k=1,kminus1end
kglobal = k + offset_k
do j=1,NY
@@ -1172,7 +1129,6 @@
enddo
enddo
enddo
-!$OMP END PARALLEL DO
!------------------
! compute velocity
@@ -1193,18 +1149,6 @@
receiver_right_shift,message_tag,sigmaxz(:,:,-1:0),number_of_values, &
MPI_DOUBLE_PRECISION,sender_right_shift,message_tag,MPI_COMM_WORLD,message_status,code)
-!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(kglobal,i,j,k,value_dvx_dx,value_dvx_dy, &
-!$OMP value_dvx_dz,value_dvy_dx,value_dvy_dy,value_dvy_dz,value_dvz_dx,value_dvz_dy, &
-!$OMP duxdx,duxdy,duxdz,duydx,duydy,duydz,duzdx,duzdy,duzdz,div, &
-!$OMP value_dvz_dz,value_dsigmaxx_dx,value_dsigmayy_dy,value_dsigmazz_dz, &
-!$OMP value_dsigmaxy_dx,value_dsigmaxy_dy,value_dsigmaxz_dx,value_dsigmaxz_dz, &
-!$OMP value_dsigmayz_dy,value_dsigmayz_dz) SHARED(vx,vy,vz,sigmaxx,sigmayy,sigmazz, &
-!$OMP sigmaxy,sigmaxz,sigmayz,memory_dvx_dx,memory_dvx_dy,memory_dvx_dz, &
-!$OMP memory_dvy_dx,memory_dvy_dy,memory_dvy_dz,memory_dvz_dx,memory_dvz_dy, &
-!$OMP memory_dvz_dz,memory_dsigmaxx_dx,memory_dsigmayy_dy,memory_dsigmazz_dz, &
-!$OMP memory_dsigmaxy_dx,memory_dsigmaxy_dy,memory_dsigmaxz_dx,memory_dsigmaxz_dz, &
-!$OMP memory_dsigmayz_dy,memory_dsigmayz_dz,a_x,b_x,K_x,a_x_half,b_x_half,K_x_half, &
-!$OMP a_y,b_y,K_y,a_y_half,b_y_half,K_y_half,a_z,b_z,K_z,a_z_half,b_z_half,K_z_half,k2begin,offset_k)
do k=k2begin,NZ_LOCAL
kglobal = k + offset_k
do j=2,NY
@@ -1247,19 +1191,7 @@
enddo
enddo
enddo
-!$OMP END PARALLEL DO
-!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(kglobal,i,j,k,value_dvx_dx,value_dvx_dy, &
-!$OMP value_dvx_dz,value_dvy_dx,value_dvy_dy,value_dvy_dz,value_dvz_dx,value_dvz_dy, &
-!$OMP value_dvz_dz,value_dsigmaxx_dx,value_dsigmayy_dy,value_dsigmazz_dz, &
-!$OMP value_dsigmaxy_dx,value_dsigmaxy_dy,value_dsigmaxz_dx,value_dsigmaxz_dz, &
-!$OMP value_dsigmayz_dy,value_dsigmayz_dz) SHARED(vx,vy,vz,sigmaxx,sigmayy,sigmazz, &
-!$OMP sigmaxy,sigmaxz,sigmayz,memory_dvx_dx,memory_dvx_dy,memory_dvx_dz, &
-!$OMP memory_dvy_dx,memory_dvy_dy,memory_dvy_dz,memory_dvz_dx,memory_dvz_dy, &
-!$OMP memory_dvz_dz,memory_dsigmaxx_dx,memory_dsigmayy_dy,memory_dsigmazz_dz, &
-!$OMP memory_dsigmaxy_dx,memory_dsigmaxy_dy,memory_dsigmaxz_dx,memory_dsigmaxz_dz, &
-!$OMP memory_dsigmayz_dy,memory_dsigmayz_dz,a_x,b_x,K_x,a_x_half,b_x_half,K_x_half, &
-!$OMP a_y,b_y,K_y,a_y_half,b_y_half,K_y_half,a_z,b_z,K_z,a_z_half,b_z_half,K_z_half,kminus1end,offset_k)
do k=1,kminus1end
kglobal = k + offset_k
do j=2,NY
@@ -1282,7 +1214,6 @@
enddo
enddo
enddo
-!$OMP END PARALLEL DO
if(rank == rank_cut_plane) then
@@ -1313,7 +1244,6 @@
! implement Dirichlet boundary conditions on the six edges of the grid
-!$OMP PARALLEL WORKSHARE
! xmin
vx(0:1,:,:) = ZERO
vy(0:1,:,:) = ZERO
@@ -1333,7 +1263,6 @@
vx(:,NY:NY+1,:) = ZERO
vy(:,NY:NY+1,:) = ZERO
vz(:,NY:NY+1,:) = ZERO
-!$OMP END PARALLEL WORKSHARE
! zmin
if(rank == 0) then
@@ -1366,9 +1295,6 @@
if(rank == 0) kmin = NPOINTS_PML
if(rank == nb_procs-1) kmax = NZ_LOCAL-NPOINTS_PML+1
-!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(i,j,k,epsilon_xx,epsilon_yy,epsilon_zz,epsilon_xy,epsilon_xz,epsilon_yz) &
-!$OMP SHARED(kmin,kmax,vx,vy,vz,sigmaxx,sigmayy,sigmazz, &
-!$OMP sigmaxy,sigmaxz,sigmayz) REDUCTION(+:local_energy_kinetic,local_energy_potential)
do k = kmin,kmax
do j = NPOINTS_PML, NY-NPOINTS_PML+1
do i = NPOINTS_PML, NX-NPOINTS_PML+1
@@ -1403,7 +1329,6 @@
enddo
enddo
enddo
-!$OMP END PARALLEL DO
call MPI_REDUCE(local_energy_kinetic + local_energy_potential,total_energy(it),1, &
MPI_DOUBLE_PRECISION,MPI_SUM,rank_cut_plane,MPI_COMM_WORLD,code)
@@ -1633,7 +1558,8 @@
integer :: ix,iy,irec
- character(len=100) :: file_name,system_command
+ character(len=150) :: file_name
+! character(len=150) :: system_command
integer :: R, G, B
Modified: seismo/3D/CPML/trunk/seismic_PML_Collino_2D_isotropic.f90
===================================================================
--- seismo/3D/CPML/trunk/seismic_PML_Collino_2D_isotropic.f90 2009-10-31 00:45:27 UTC (rev 15905)
+++ seismo/3D/CPML/trunk/seismic_PML_Collino_2D_isotropic.f90 2009-10-31 01:05:56 UTC (rev 15906)
@@ -1,4 +1,6 @@
!
+! SEISMIC_CPML Version 1.1.0, October 2009.
+!
! Copyright Universite de Pau et des Pays de l'Adour, CNRS and INRIA, France.
! Contributor: Dimitri Komatitsch, dimitri DOT komatitsch aT univ-pau DOT fr
!
@@ -60,7 +62,6 @@
!
! PML implemented in the two directions (x and y directions).
!
-! Version 1.0
! Dimitri Komatitsch, University of Pau, France, April 2007.
!
! The second-order staggered-grid formulation of Madariaga (1976) and Virieux (1986) is used:
Modified: seismo/3D/CPML/trunk/seismic_PML_Collino_3D_isotropic_OpenMP.f90
===================================================================
--- seismo/3D/CPML/trunk/seismic_PML_Collino_3D_isotropic_OpenMP.f90 2009-10-31 00:45:27 UTC (rev 15905)
+++ seismo/3D/CPML/trunk/seismic_PML_Collino_3D_isotropic_OpenMP.f90 2009-10-31 01:05:56 UTC (rev 15906)
@@ -1,4 +1,6 @@
!
+! SEISMIC_CPML Version 1.1.0, October 2009.
+!
! Copyright Universite de Pau et des Pays de l'Adour, CNRS and INRIA, France.
! Contributors: Dimitri Komatitsch, dimitri DOT komatitsch aT univ-pau DOT fr
! and Roland Martin, roland DOT martin aT univ-pau DOT fr
@@ -61,7 +63,6 @@
!
! PML implemented in the three directions (x, y and z).
!
-! Version 1.0
! Dimitri Komatitsch and Roland Martin, University of Pau, France, April 2007.
!
! The second-order staggered-grid formulation of Madariaga (1976) and Virieux (1986) is used.
@@ -84,7 +85,7 @@
! total number of grid points in each direction of the grid
integer, parameter :: NX = 101
integer, parameter :: NY = 641
- integer, parameter :: NZ = 64!!!0
+ integer, parameter :: NZ = 640
! size of a grid cell
double precision, parameter :: h = 10.d0
More information about the CIG-COMMITS
mailing list