[cig-commits] r22695 - in seismo/3D/SPECFEM3D_GLOBE/trunk/src: create_header_file meshfem3D shared specfem3D
dkomati1 at geodynamics.org
dkomati1 at geodynamics.org
Sat Aug 3 17:31:05 PDT 2013
Author: dkomati1
Date: 2013-08-03 17:31:05 -0700 (Sat, 03 Aug 2013)
New Revision: 22695
Modified:
seismo/3D/SPECFEM3D_GLOBE/trunk/src/create_header_file/create_header_file.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.F90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_element.F90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_Dev.F90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_noDev.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_Dev.F90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_noDev.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/initialize_simulation.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_classical.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_undo_att.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_classical.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_undo_att.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
Log:
converted COMPUTE_AND_STORE_STRAIN_VAL (a constant in values_from_mesher.h) back to COMPUTE_AND_STORE_STRAIN (a variable computed in the solver) because it depends on SIMULATION_TYPE and thus cannot safely be stored in values_from_mesher.h if users do not recompile the code when switching from SIMULATION_TYPE == 1 to SIMULATION_TYPE == 3 (most users do not, and they are not supposed to)
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/create_header_file/create_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/create_header_file/create_header_file.f90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/create_header_file/create_header_file.f90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -217,7 +217,7 @@
NGLOB_INNER_CORE_ADJOINT,NSPEC_OUTER_CORE_ROT_ADJOINT, &
NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION, &
- SIMULATION_TYPE,SAVE_FORWARD,MOVIE_VOLUME,SAVE_REGULAR_KL,NOISE_TOMOGRAPHY, &
+ MOVIE_VOLUME,SAVE_REGULAR_KL,NOISE_TOMOGRAPHY, &
ATT1,ATT2,ATT3,ATT4,ATT5,APPROXIMATE_HESS_KL,ANISOTROPIC_KL,PARTIAL_PHYS_DISPERSION_ONLY, &
SAVE_SOURCE_MASK,ABSORBING_CONDITIONS,USE_LDDRK,EXACT_MASS_MATRIX_FOR_ROTATION, &
ATTENUATION_1D_WITH_3D_STORAGE)
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -877,7 +877,7 @@
NGLOB_INNER_CORE_ADJOINT,NSPEC_OUTER_CORE_ROT_ADJOINT, &
NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION, &
- SIMULATION_TYPE,SAVE_FORWARD,MOVIE_VOLUME,SAVE_REGULAR_KL,NOISE_TOMOGRAPHY, &
+ MOVIE_VOLUME,SAVE_REGULAR_KL,NOISE_TOMOGRAPHY, &
ATT1,ATT2,ATT3,ATT4,ATT5,APPROXIMATE_HESS_KL,ANISOTROPIC_KL,PARTIAL_PHYS_DISPERSION_ONLY, &
SAVE_SOURCE_MASK,ABSORBING_CONDITIONS,USE_LDDRK,EXACT_MASS_MATRIX_FOR_ROTATION, &
ATTENUATION_1D_WITH_3D_STORAGE)
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.F90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.F90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -51,14 +51,14 @@
NGLOB_INNER_CORE_ADJOINT,NSPEC_OUTER_CORE_ROT_ADJOINT, &
NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION, &
- SIMULATION_TYPE,SAVE_FORWARD,MOVIE_VOLUME,SAVE_REGULAR_KL,NOISE_TOMOGRAPHY, &
+ MOVIE_VOLUME,SAVE_REGULAR_KL,NOISE_TOMOGRAPHY, &
ATT1,ATT2,ATT3,ATT4,ATT5,APPROXIMATE_HESS_KL,ANISOTROPIC_KL,PARTIAL_PHYS_DISPERSION_ONLY, &
SAVE_SOURCE_MASK,ABSORBING_CONDITIONS,USE_LDDRK,EXACT_MASS_MATRIX_FOR_ROTATION, &
ATTENUATION_1D_WITH_3D_STORAGE)
!
! ****************************************************************************************************
-! IMPORTANT: this routine must *NOT* use flag SIMULATION_TYPE, i.e. none of the parameters it computes
+! IMPORTANT: this routine must *NOT* use flag SIMULATION_TYPE (nor SAVE_FORWARD), i.e. none of the parameters it computes
! should depend on SIMULATION_TYPE, because most users do not recompile the code nor rerun the mesher
! when switching from SIMULATION_TYPE == 1 to SIMULATION_TYPE == 3 and thus the header file created
! by this routine would become wrong in the case of a run with SIMULATION_TYPE == 3 if the code
@@ -105,8 +105,7 @@
NSPEC2D_MOHO, NSPEC2D_400, NSPEC2D_670, NSPEC2D_CMB, NSPEC2D_ICB, &
NGLOB_XY_CM, NGLOB_XY_IC
- integer :: SIMULATION_TYPE
- logical :: SAVE_FORWARD,MOVIE_VOLUME
+ logical :: MOVIE_VOLUME
! local parameters
double precision :: subtract_central_cube_elems,subtract_central_cube_points
@@ -562,15 +561,6 @@
write(IOUT,*) 'logical, parameter :: USE_DEVILLE_PRODUCTS_VAL = .false.'
endif
- ! attenuation and/or adjoint simulations
- if (ATTENUATION .or. SIMULATION_TYPE /= 1 .or. SAVE_FORWARD &
- .or. (MOVIE_VOLUME .and. SIMULATION_TYPE /= 3)) then
- write(IOUT,*) 'logical, parameter :: COMPUTE_AND_STORE_STRAIN_VAL = .true.'
- else
- write(IOUT,*) 'logical, parameter :: COMPUTE_AND_STORE_STRAIN_VAL = .false.'
- endif
- write(IOUT,*)
-
if (MOVIE_VOLUME) then
write(IOUT,*) 'integer, parameter :: NSPEC_CRUST_MANTLE_3DMOVIE = NSPEC_CRUST_MANTLE'
write(IOUT,*) 'integer, parameter :: NGLOB_CRUST_MANTLE_3DMOVIE = NGLOB_CRUST_MANTLE'
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_element.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_element.F90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_element.F90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -35,7 +35,7 @@
R_memory, &
one_minus_sum_beta,vnspec, &
tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
- dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,eps_trace_over_3_loc,rho_s_H)
+ dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,eps_trace_over_3_loc,rho_s_H,COMPUTE_AND_STORE_STRAIN)
implicit none
@@ -48,6 +48,8 @@
! element id
integer :: ispec
+ logical :: COMPUTE_AND_STORE_STRAIN
+
! arrays with mesh parameters per slice
integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool
@@ -170,7 +172,7 @@
!ZN where U is the displacement vector and grad the gradient operator, i.e. there is a 1/2 factor difference between the two.
!ZN Both expressions are fine, but we need to keep in mind that if we put the 1/2 factor here there we need to remove it
!ZN from the expression in which we use the strain later in the code.
- if (COMPUTE_AND_STORE_STRAIN_VAL) then
+ if (COMPUTE_AND_STORE_STRAIN) then
templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
eps_trace_over_3_loc(ijk,1,1) = templ
epsilondev_loc(1,ijk,1,1) = duxdxl - templ
@@ -378,7 +380,7 @@
!ZN where U is the displacement vector and grad the gradient operator, i.e. there is a 1/2 factor difference between the two.
!ZN Both expressions are fine, but we need to keep in mind that if we put the 1/2 factor here there we need to remove it
!ZN from the expression in which we use the strain later in the code.
- if (COMPUTE_AND_STORE_STRAIN_VAL) then
+ if (COMPUTE_AND_STORE_STRAIN) then
templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
eps_trace_over_3_loc(i,j,k) = templ
epsilondev_loc(1,i,j,k) = duxdxl - templ
@@ -544,7 +546,7 @@
R_memory, &
one_minus_sum_beta,vnspec, &
tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
- dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,eps_trace_over_3_loc,rho_s_H)
+ dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,eps_trace_over_3_loc,rho_s_H,COMPUTE_AND_STORE_STRAIN)
implicit none
@@ -557,6 +559,8 @@
! element id
integer :: ispec
+ logical :: COMPUTE_AND_STORE_STRAIN
+
! arrays with mesh parameters per slice
integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool
@@ -694,7 +698,7 @@
!ZN where U is the displacement vector and grad the gradient operator, i.e. there is a 1/2 factor difference between the two.
!ZN Both expressions are fine, but we need to keep in mind that if we put the 1/2 factor here there we need to remove it
!ZN from the expression in which we use the strain later in the code.
- if (COMPUTE_AND_STORE_STRAIN_VAL) then
+ if (COMPUTE_AND_STORE_STRAIN) then
templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
eps_trace_over_3_loc(ijk,1,1) = templ
epsilondev_loc(1,ijk,1,1) = duxdxl - templ
@@ -1088,7 +1092,7 @@
!ZN where U is the displacement vector and grad the gradient operator, i.e. there is a 1/2 factor difference between the two.
!ZN Both expressions are fine, but we need to keep in mind that if we put the 1/2 factor here there we need to remove it
!ZN from the expression in which we use the strain later in the code.
- if (COMPUTE_AND_STORE_STRAIN_VAL) then
+ if (COMPUTE_AND_STORE_STRAIN) then
templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
eps_trace_over_3_loc(i,j,k) = templ
epsilondev_loc(1,i,j,k) = duxdxl - templ
@@ -1442,7 +1446,7 @@
R_memory, &
one_minus_sum_beta,vnspec, &
tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
- dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,eps_trace_over_3_loc,rho_s_H)
+ dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,eps_trace_over_3_loc,rho_s_H,COMPUTE_AND_STORE_STRAIN)
implicit none
@@ -1455,6 +1459,8 @@
! element id
integer :: ispec
+ logical :: COMPUTE_AND_STORE_STRAIN
+
! arrays with mesh parameters per slice
integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool
@@ -1581,7 +1587,7 @@
!ZN where U is the displacement vector and grad the gradient operator, i.e. there is a 1/2 factor difference between the two.
!ZN Both expressions are fine, but we need to keep in mind that if we put the 1/2 factor here there we need to remove it
!ZN from the expression in which we use the strain later in the code.
- if (COMPUTE_AND_STORE_STRAIN_VAL) then
+ if (COMPUTE_AND_STORE_STRAIN) then
templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
eps_trace_over_3_loc(ijk,1,1) = templ
epsilondev_loc(1,ijk,1,1) = duxdxl - templ
@@ -1825,7 +1831,7 @@
!ZN where U is the displacement vector and grad the gradient operator, i.e. there is a 1/2 factor difference between the two.
!ZN Both expressions are fine, but we need to keep in mind that if we put the 1/2 factor here there we need to remove it
!ZN from the expression in which we use the strain later in the code.
- if (COMPUTE_AND_STORE_STRAIN_VAL) then
+ if (COMPUTE_AND_STORE_STRAIN) then
templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
eps_trace_over_3_loc(i,j,k) = templ
epsilondev_loc(1,i,j,k) = duxdxl - templ
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_Dev.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_Dev.F90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_Dev.F90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -55,7 +55,7 @@
R_memory,one_minus_sum_beta,deltat, &
alphaval,betaval,gammaval,factor_common,vnspec,&
istage,R_memory_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev,eps_trace_over_3,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev,eps_trace_over_3,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D,COMPUTE_AND_STORE_STRAIN)
! this routine is optimized for NGLLX = NGLLY = NGLLZ = 5 using the Deville et al. (2002) inlined matrix-matrix products
@@ -73,6 +73,8 @@
! arrays with mesh parameters per slice
integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool
+ logical :: COMPUTE_AND_STORE_STRAIN
+
! x y and z contain r theta and phi
real(kind=CUSTOM_REAL), dimension(NGLOB_CRUST_MANTLE) :: xstore,ystore,zstore
@@ -390,7 +392,7 @@
R_memory, &
one_minus_sum_beta,vnspec, &
tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
- dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,eps_trace_over_3(1,1,1,ispec),rho_s_H)
+ dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,eps_trace_over_3(1,1,1,ispec),rho_s_H,COMPUTE_AND_STORE_STRAIN)
else
if(.not. ispec_is_tiso(ispec)) then
! isotropic element
@@ -404,7 +406,7 @@
R_memory, &
one_minus_sum_beta,vnspec, &
tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
- dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,eps_trace_over_3(1,1,1,ispec),rho_s_H)
+ dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,eps_trace_over_3(1,1,1,ispec),rho_s_H,COMPUTE_AND_STORE_STRAIN)
else
! transverse isotropic element
call compute_element_tiso(ispec, &
@@ -417,7 +419,7 @@
R_memory, &
one_minus_sum_beta,vnspec, &
tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
- dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,eps_trace_over_3(1,1,1,ispec),rho_s_H)
+ dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,eps_trace_over_3(1,1,1,ispec),rho_s_H,COMPUTE_AND_STORE_STRAIN)
endif
endif
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_noDev.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_noDev.f90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_noDev.f90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -55,7 +55,7 @@
R_memory,one_minus_sum_beta,deltat, &
alphaval,betaval,gammaval,factor_common,vnspec,&
istage,R_memory_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev,eps_trace_over_3)
+ epsilondev,eps_trace_over_3,COMPUTE_AND_STORE_STRAIN)
implicit none
@@ -78,6 +78,8 @@
! variable sized array variables for one_minus_sum_beta and factor_common
integer vnspec
+ logical :: COMPUTE_AND_STORE_STRAIN
+
real(kind=CUSTOM_REAL) one_minus_sum_beta_use,minus_sum_beta,deltat
real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: one_minus_sum_beta
@@ -368,7 +370,7 @@
!ZN where U is the displacement vector and grad the gradient operator, i.e. there is a 1/2 factor difference between the two.
!ZN Both expressions are fine, but we need to keep in mind that if we put the 1/2 factor here there we need to remove it
!ZN from the expression in which we use the strain later in the code.
- if (COMPUTE_AND_STORE_STRAIN_VAL) then
+ if (COMPUTE_AND_STORE_STRAIN) then
templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
epsilondev_loc(1,i,j,k) = duxdxl - templ
epsilondev_loc(2,i,j,k) = duydyl - templ
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_Dev.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_Dev.F90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_Dev.F90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -51,7 +51,7 @@
alphaval,betaval,gammaval,factor_common, &
vnspec,&
istage,R_memory_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev,eps_trace_over_3,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev,eps_trace_over_3,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D,COMPUTE_AND_STORE_STRAIN)
! this routine is optimized for NGLLX = NGLLY = NGLLZ = 5 using the Deville et al. (2002) inlined matrix-matrix products
@@ -75,6 +75,8 @@
real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: xix,xiy,xiz, &
etax,etay,etaz,gammax,gammay,gammaz
+ logical :: COMPUTE_AND_STORE_STRAIN
+
! for attenuation
! memory variables R_ij are stored at the local rather than global level
! to allow for optimization of cache access by compiler
@@ -430,7 +432,7 @@
duzdxl_plus_duxdzl = duzdxl + duxdzl
duzdyl_plus_duydzl = duzdyl + duydzl
- if (COMPUTE_AND_STORE_STRAIN_VAL) then
+ if (COMPUTE_AND_STORE_STRAIN) then
templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
epsilondev_loc(1,ijk,1,1) = duxdxl - templ
epsilondev_loc(2,ijk,1,1) = duydyl - templ
@@ -685,7 +687,7 @@
duzdxl_plus_duxdzl = duzdxl + duxdzl
duzdyl_plus_duydzl = duzdyl + duydzl
- if (COMPUTE_AND_STORE_STRAIN_VAL) then
+ if (COMPUTE_AND_STORE_STRAIN) then
templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
epsilondev_loc(1,i,j,k) = duxdxl - templ
epsilondev_loc(2,i,j,k) = duydyl - templ
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_noDev.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_noDev.f90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_noDev.f90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -52,7 +52,7 @@
alphaval,betaval,gammaval,factor_common, &
vnspec,&
istage,R_memory_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev,eps_trace_over_3)
+ epsilondev,eps_trace_over_3,COMPUTE_AND_STORE_STRAIN)
implicit none
@@ -76,6 +76,8 @@
! variable lengths for factor_common and one_minus_sum_beta
integer vnspec
+ logical :: COMPUTE_AND_STORE_STRAIN
+
real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: one_minus_sum_beta
real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: factor_common
@@ -347,7 +349,7 @@
!ZN where U is the displacement vector and grad the gradient operator, i.e. there is a 1/2 factor difference between the two.
!ZN Both expressions are fine, but we need to keep in mind that if we put the 1/2 factor here there we need to remove it
!ZN from the expression in which we use the strain later in the code.
- if (COMPUTE_AND_STORE_STRAIN_VAL) then
+ if (COMPUTE_AND_STORE_STRAIN) then
templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
epsilondev_loc(1,i,j,k) = duxdxl - templ
epsilondev_loc(2,i,j,k) = duydyl - templ
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/initialize_simulation.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/initialize_simulation.f90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/initialize_simulation.f90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -59,7 +59,7 @@
USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL_ONLY,APPROXIMATE_HESS_KL, &
USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
- ATT1,ATT2,ATT3,ATT4,ATT5,EXACT_MASS_MATRIX_FOR_ROTATION)
+ ATT1,ATT2,ATT3,ATT4,ATT5,EXACT_MASS_MATRIX_FOR_ROTATION,COMPUTE_AND_STORE_STRAIN)
use mpi
@@ -164,7 +164,7 @@
USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL_ONLY,APPROXIMATE_HESS_KL, &
USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX, &
- EXACT_MASS_MATRIX_FOR_ROTATION,ATTENUATION_1D_WITH_3D_STORAGE
+ EXACT_MASS_MATRIX_FOR_ROTATION,ATTENUATION_1D_WITH_3D_STORAGE,COMPUTE_AND_STORE_STRAIN
character(len=150) :: MODEL,dummystring
@@ -459,16 +459,6 @@
call exit_MPI(myrank, 'NSPEC_INNER_CORE_ATTENUATION /= NSPEC_INNER_CORE, exit')
endif
- ! checks strain storage
- if (ATTENUATION_VAL .or. SIMULATION_TYPE /= 1 .or. SAVE_FORWARD &
- .or. (MOVIE_VOLUME .and. SIMULATION_TYPE /= 3)) then
- if( COMPUTE_AND_STORE_STRAIN_VAL .neqv. .true. ) &
- call exit_MPI(myrank, 'error in compiled COMPUTE_AND_STORE_STRAIN_VAL parameter, please recompile solver 19')
- else
- if( COMPUTE_AND_STORE_STRAIN_VAL .neqv. .false. ) &
- call exit_MPI(myrank, 'error in compiled COMPUTE_AND_STORE_STRAIN_VAL parameter, please recompile solver 20')
- endif
-
if (SIMULATION_TYPE == 3 .and. (ANISOTROPIC_3D_MANTLE_VAL .or. ANISOTROPIC_INNER_CORE_VAL)) &
call exit_MPI(myrank, 'anisotropic model is not implemented for kernel simulations yet')
@@ -484,6 +474,15 @@
endif
endif
+ ! define strain storage
+ ! this cannot be made a constant stored in values_from_mesher.h because it depends on SIMULATION_TYPE
+ if (ATTENUATION_VAL .or. SIMULATION_TYPE /= 1 .or. SAVE_FORWARD &
+ .or. (MOVIE_VOLUME .and. SIMULATION_TYPE /= 3)) then
+ COMPUTE_AND_STORE_STRAIN = .true.
+ else
+ COMPUTE_AND_STORE_STRAIN = .false.
+ endif
+
! make ellipticity
if(ELLIPTICITY_VAL) call make_ellipticity(nspl,rspl,espl,espl2,ONE_CRUST)
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_classical.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_classical.f90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_classical.f90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -345,7 +345,8 @@
alphaval,betaval,gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
displ_crust_mantle,accel_crust_mantle, &
@@ -386,7 +387,7 @@
alphaval,betaval,gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,COMPUTE_AND_STORE_STRAIN)
endif
! Deville routine
@@ -423,7 +424,8 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
displ_inner_core,accel_inner_core, &
@@ -457,7 +459,7 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,COMPUTE_AND_STORE_STRAIN)
endif
! Stacey
@@ -640,7 +642,8 @@
alphaval,betaval,gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
displ_crust_mantle,accel_crust_mantle, &
@@ -681,7 +684,7 @@
alphaval,betaval,gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,COMPUTE_AND_STORE_STRAIN)
endif
! Deville routine
@@ -718,7 +721,8 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
displ_inner_core,accel_inner_core, &
@@ -752,7 +756,7 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,COMPUTE_AND_STORE_STRAIN)
endif
! assemble all the contributions between slices using MPI
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_undo_att.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_undo_att.f90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_undo_att.f90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -379,7 +379,8 @@
alphaval,betaval,gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
displ_crust_mantle,accel_crust_mantle, &
@@ -420,7 +421,7 @@
alphaval,betaval,gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,COMPUTE_AND_STORE_STRAIN)
endif
! Deville routine
@@ -457,7 +458,8 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
displ_inner_core,accel_inner_core, &
@@ -491,7 +493,7 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,COMPUTE_AND_STORE_STRAIN)
endif
! Stacey
@@ -670,7 +672,8 @@
alphaval,betaval,gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
displ_crust_mantle,accel_crust_mantle, &
@@ -711,7 +714,7 @@
alphaval,betaval,gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,COMPUTE_AND_STORE_STRAIN)
endif
! Deville routine
@@ -748,7 +751,8 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
displ_inner_core,accel_inner_core, &
@@ -782,7 +786,7 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,COMPUTE_AND_STORE_STRAIN)
endif
! assemble all the contributions between slices using MPI
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_classical.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_classical.f90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_classical.f90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -356,7 +356,8 @@
b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
b_displ_crust_mantle,b_accel_crust_mantle, &
@@ -397,7 +398,7 @@
b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,COMPUTE_AND_STORE_STRAIN)
endif
endif
@@ -435,7 +436,8 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
b_displ_inner_core,b_accel_inner_core, &
@@ -469,7 +471,7 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,COMPUTE_AND_STORE_STRAIN)
endif
endif
@@ -635,7 +637,8 @@
b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
b_displ_crust_mantle,b_accel_crust_mantle, &
@@ -676,7 +679,7 @@
b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,COMPUTE_AND_STORE_STRAIN)
endif
! Deville routine
@@ -713,7 +716,8 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
b_displ_inner_core,b_accel_inner_core, &
@@ -747,7 +751,7 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,COMPUTE_AND_STORE_STRAIN)
endif
! assemble all the contributions between slices using MPI
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_undo_att.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_undo_att.f90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_undo_att.f90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -387,7 +387,8 @@
b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
b_displ_crust_mantle,b_accel_crust_mantle, &
@@ -428,7 +429,7 @@
b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,COMPUTE_AND_STORE_STRAIN)
endif
endif
@@ -466,7 +467,8 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
b_displ_inner_core,b_accel_inner_core, &
@@ -500,7 +502,7 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,COMPUTE_AND_STORE_STRAIN)
endif
endif
@@ -701,7 +703,8 @@
b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
b_displ_crust_mantle,b_accel_crust_mantle, &
@@ -742,7 +745,7 @@
b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
size(factor_common_crust_mantle,5),&
istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_crust_mantle,eps_trace_over_3_crust_mantle)
+ epsilondev_crust_mantle,eps_trace_over_3_crust_mantle,COMPUTE_AND_STORE_STRAIN)
endif
! Deville routine
@@ -779,7 +782,8 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,wgllwgll_xy_3D,wgllwgll_xz_3D,wgllwgll_yz_3D, &
+ COMPUTE_AND_STORE_STRAIN)
else
call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
b_displ_inner_core,b_accel_inner_core, &
@@ -813,7 +817,7 @@
factor_common_inner_core, &
size(factor_common_inner_core,5),&
istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK,&
- epsilondev_inner_core,eps_trace_over_3_inner_core)
+ epsilondev_inner_core,eps_trace_over_3_inner_core,COMPUTE_AND_STORE_STRAIN)
endif
! assemble all the contributions between slices using MPI
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90 2013-08-03 23:51:06 UTC (rev 22694)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90 2013-08-04 00:31:05 UTC (rev 22695)
@@ -933,7 +933,7 @@
USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL_ONLY,APPROXIMATE_HESS_KL, &
USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX, &
- EXACT_MASS_MATRIX_FOR_ROTATION,ATTENUATION_1D_WITH_3D_STORAGE
+ EXACT_MASS_MATRIX_FOR_ROTATION,ATTENUATION_1D_WITH_3D_STORAGE,COMPUTE_AND_STORE_STRAIN
character(len=150) OUTPUT_FILES,LOCAL_PATH,MODEL
@@ -1132,7 +1132,7 @@
USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL_ONLY,APPROXIMATE_HESS_KL, &
USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
- ATT1,ATT2,ATT3,ATT4,ATT5,EXACT_MASS_MATRIX_FOR_ROTATION,ATTENUATION_1D_WITH_3D_STORAGE)
+ ATT1,ATT2,ATT3,ATT4,ATT5,EXACT_MASS_MATRIX_FOR_ROTATION,ATTENUATION_1D_WITH_3D_STORAGE,COMPUTE_AND_STORE_STRAIN)
! define a 3D extension in order to be able to force vectorization in the compute_forces routines
do k = 1,NGLLZ
@@ -2284,7 +2284,7 @@
div_displ_outer_core(:,:,:,:) = 0._CUSTOM_REAL
endif
- if (COMPUTE_AND_STORE_STRAIN_VAL) then
+ if (COMPUTE_AND_STORE_STRAIN) then
if(MOVIE_VOLUME .and. (MOVIE_VOLUME_TYPE == 2 .or. MOVIE_VOLUME_TYPE == 3)) then
Iepsilondev_crust_mantle(:,:,:,:,:) = 0._CUSTOM_REAL
Ieps_trace_over_3_crust_mantle(:,:,:,:)=0._CUSTOM_REAL
@@ -2533,9 +2533,9 @@
it_temp = it
seismo_current_temp = seismo_current
- if(COMPUTE_AND_STORE_STRAIN_VAL) then
+ if(COMPUTE_AND_STORE_STRAIN) then
if(.not. USE_DEVILLE_PRODUCTS_VAL) &
- call exit_MPI(myrank,'COMPUTE_AND_STORE_STRAIN_VAL is not implemented without USE_DEVILLE_PRODUCTS_VAL')
+ call exit_MPI(myrank,'COMPUTE_AND_STORE_STRAIN is not implemented without USE_DEVILLE_PRODUCTS_VAL')
! after reading the restart files of displacement back from disk, recompute the strain from displacement;
! this is better than storing the strain to disk as well, which would drastically increase I/O volume
do ispec = 1, NSPEC_INNER_CORE
@@ -2574,9 +2574,9 @@
it = it_temp
seismo_current = seismo_current_temp
- if(COMPUTE_AND_STORE_STRAIN_VAL) then
+ if(COMPUTE_AND_STORE_STRAIN) then
if(.not. USE_DEVILLE_PRODUCTS_VAL) &
- call exit_MPI(myrank,'COMPUTE_AND_STORE_STRAIN_VAL is not implemented without USE_DEVILLE_PRODUCTS_VAL')
+ call exit_MPI(myrank,'COMPUTE_AND_STORE_STRAIN is not implemented without USE_DEVILLE_PRODUCTS_VAL')
! after reading the restart files of displacement back from disk, recompute the strain from displacement;
! this is better than storing the strain to disk as well, which would drastically increase I/O volume
do ispec = 1, NSPEC_INNER_CORE
More information about the CIG-COMMITS
mailing list