[cig-commits] r22724 - in seismo/3D/SPECFEM3D_GLOBE/trunk: . EXAMPLES/benchmarks/prem_ani_noocean_Q_Cowling_Bolivia_9s/SEMD/DATA EXAMPLES/benchmarks/prem_ani_noocean_Q_Cowling_Vanuatu/SEMD/DATA EXAMPLES/benchmarks/prem_iso_noocean_Q_Cowling_Vanuatu/SEMD/DATA EXAMPLES/global_PREM_kernels/amplitude/DATA EXAMPLES/global_PREM_kernels/traveltime/DATA EXAMPLES/global_s362ani/DATA EXAMPLES/noise_examples/global_long EXAMPLES/noise_examples/global_short EXAMPLES/noise_examples/regional EXAMPLES/regional_Greece_small/DATA EXAMPLES/regional_MiddleEast/DATA src/auxiliaries src/meshfem3D src/specfem3D
danielpeter at geodynamics.org
danielpeter at geodynamics.org
Wed Aug 21 07:03:10 PDT 2013
Author: danielpeter
Date: 2013-08-21 07:03:09 -0700 (Wed, 21 Aug 2013)
New Revision: 22724
Modified:
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/benchmarks/prem_ani_noocean_Q_Cowling_Bolivia_9s/SEMD/DATA/Par_file
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/benchmarks/prem_ani_noocean_Q_Cowling_Vanuatu/SEMD/DATA/Par_file
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/benchmarks/prem_iso_noocean_Q_Cowling_Vanuatu/SEMD/DATA/Par_file
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/global_PREM_kernels/amplitude/DATA/Par_file
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/global_PREM_kernels/traveltime/DATA/Par_file
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/global_s362ani/DATA/Par_file
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_1_attenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_1_noattenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_2_attenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_2_noattenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_3_noattenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_1_attenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_1_noattenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_2_attenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_2_noattenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_3_noattenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_1_attenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_1_noattenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_2_attenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_2_noattenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_3_noattenuation
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/regional_Greece_small/DATA/Par_file
seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/regional_MiddleEast/DATA/Par_file
seismo/3D/SPECFEM3D_GLOBE/trunk/Makefile.in
seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/create_movie_AVS_DX.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/model_crustmaps.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/locate_sources.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/save_regular_kernels.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
Log:
adds missing flags to all example's Par_file; bug fixes
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/benchmarks/prem_ani_noocean_Q_Cowling_Bolivia_9s/SEMD/DATA/Par_file
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/benchmarks/prem_ani_noocean_Q_Cowling_Bolivia_9s/SEMD/DATA/Par_file 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/benchmarks/prem_ani_noocean_Q_Cowling_Bolivia_9s/SEMD/DATA/Par_file 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .false.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/benchmarks/prem_ani_noocean_Q_Cowling_Vanuatu/SEMD/DATA/Par_file
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/benchmarks/prem_ani_noocean_Q_Cowling_Vanuatu/SEMD/DATA/Par_file 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/benchmarks/prem_ani_noocean_Q_Cowling_Vanuatu/SEMD/DATA/Par_file 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .false.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/benchmarks/prem_iso_noocean_Q_Cowling_Vanuatu/SEMD/DATA/Par_file
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/benchmarks/prem_iso_noocean_Q_Cowling_Vanuatu/SEMD/DATA/Par_file 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/benchmarks/prem_iso_noocean_Q_Cowling_Vanuatu/SEMD/DATA/Par_file 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .false.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/global_PREM_kernels/amplitude/DATA/Par_file
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/global_PREM_kernels/amplitude/DATA/Par_file 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/global_PREM_kernels/amplitude/DATA/Par_file 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .false.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/global_PREM_kernels/traveltime/DATA/Par_file
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/global_PREM_kernels/traveltime/DATA/Par_file 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/global_PREM_kernels/traveltime/DATA/Par_file 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .false.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/global_s362ani/DATA/Par_file
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/global_s362ani/DATA/Par_file 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/global_s362ani/DATA/Par_file 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .false.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_1_attenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_1_attenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_1_attenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_1_noattenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_1_noattenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_1_noattenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .false.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_2_attenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_2_attenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_2_attenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_2_noattenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_2_noattenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_2_noattenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .false.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_3_noattenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_3_noattenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_long/Par_file_NOISE_3_noattenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .false.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_1_attenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_1_attenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_1_attenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_1_noattenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_1_noattenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_1_noattenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .false.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_2_attenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_2_attenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_2_attenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_2_noattenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_2_noattenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_2_noattenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .false.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_3_noattenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_3_noattenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/global_short/Par_file_NOISE_3_noattenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .false.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_1_attenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_1_attenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_1_attenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_1_noattenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_1_noattenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_1_noattenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .false.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_2_attenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_2_attenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_2_attenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_2_noattenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_2_noattenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_2_noattenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .false.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_3_noattenuation
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_3_noattenuation 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/noise_examples/regional/Par_file_NOISE_3_noattenuation 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .false.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .true.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/regional_Greece_small/DATA/Par_file
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/regional_Greece_small/DATA/Par_file 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/regional_Greece_small/DATA/Par_file 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -97,7 +123,7 @@
LOCAL_PATH = ./DATABASES_MPI
# interval at which we output time step info and max of norm of displacement
-NTSTEP_BETWEEN_OUTPUT_INFO = 50
+NTSTEP_BETWEEN_OUTPUT_INFO = 500
# interval in time steps for temporary writing of seismograms
NTSTEP_BETWEEN_OUTPUT_SEISMOS = 5000000
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .false.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/regional_MiddleEast/DATA/Par_file
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/regional_MiddleEast/DATA/Par_file 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/EXAMPLES/regional_MiddleEast/DATA/Par_file 2013-08-21 14:03:09 UTC (rev 22724)
@@ -57,10 +57,36 @@
# to undo attenuation for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use one (and only one) of the two flags below. UNDO_ATTENUATION is much better (it is exact)
# but requires a significant amount of disk space for temporary storage.
+ATTENUATION_1D_WITH_3D_STORAGE = .true.
PARTIAL_PHYS_DISPERSION_ONLY = .true.
UNDO_ATTENUATION = .false.
NT_DUMP_ATTENUATION = 100 # how often we dump restart files to undo attenuation, only needed when using UNDO_ATTENUATION
+# three mass matrices instead of one are needed to handle rotation very accurately;
+# otherwise rotation is handled slightly less accurately (but still reasonably well);
+# set to .true. if you are interested in precise effects related to rotation;
+# set to .false. if you are solving very large inverse problems at high frequency and also undoing attenuation exactly
+# using the UNDO_ATTENUATION flag above, in which case saving as much memory as possible can be a good idea.
+# You can also safely set it to .false. if you are not in a period range in which rotation matters, e.g. if you are targetting very short-period body waves.
+# if in doubt, set to .true.
+# Set it to .true. if you have ABSORBING_CONDITIONS above, because in that case the code will use the three mass matrices anyway
+# and thus there is no additional cost.
+# this flag is of course unused if ROTATION above is set to .false.
+EXACT_MASS_MATRIX_FOR_ROTATION = .false.
+
+# this for LDDRK high-order time scheme instead of Newmark
+USE_LDDRK = .false.
+
+# the maximum CFL of LDDRK is significantly higher than that of the Newmark scheme,
+# in a ratio that is theoretically 1.327 / 0.697 = 1.15 / 0.604 = 1.903 for a solid with Poisson's ratio = 0.25
+# and for a fluid (see the manual of the 2D code, SPECFEM2D, Tables 4.1 and 4.2, and that ratio does not
+# depend on whether we are in 2D or in 3D). However in practice a ratio of about 1.5 to 1.7 is often safer
+# (for instance for models with a large range of Poisson's ratio values).
+# Since the code computes the time step using the Newmark scheme, for LDDRK we will simply
+# multiply that time step by this ratio when LDDRK is on and when flag INCREASE_CFL_FOR_LDDRK is true.
+INCREASE_CFL_FOR_LDDRK = .true.
+RATIO_BY_WHICH_TO_INCREASE_IT = 1.5d0
+
# save AVS or OpenDX movies
#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME)
#MOVIE_COARSE does not work with create_movie_AVS_DX
@@ -125,6 +151,47 @@
# print source time function
PRINT_SOURCE_TIME_FUNCTION = .false.
-# output kernels on a regular grid instead of on the mesh points
+#-----------------------------------------------------------
+#
+# adjoint kernel outputs
+#
+#-----------------------------------------------------------
+
+# this parameter must be set to .true. to compute anisotropic kernels
+# in crust and mantle (related to the 21 Cij in geographical coordinates)
+# default is .false. to compute isotropic kernels (related to alpha and beta)
+ANISOTROPIC_KL = .false.
+
+# output only transverse isotropic kernels (alpha_v,alpha_h,beta_v,beta_h,eta,rho)
+# rather than fully anisotropic kernels when ANISOTROPIC_KL above is set to .true.
+# means to save radial anisotropic kernels, i.e., sensitivity kernels for beta_v, beta_h, etc.
+SAVE_TRANSVERSE_KL_ONLY = .false.
+
+# output approximate Hessian in crust mantle region.
+# means to save the preconditioning for gradients, they are cross correlations between forward and adjoint accelerations.
+APPROXIMATE_HESS_KL = .false.
+
+# forces transverse isotropy for all mantle elements
+# (default is to use transverse isotropy only between MOHO and 220)
+# means we allow radial anisotropy between the bottom of the crust to the bottom of the transition zone, i.e., 660~km depth.
+USE_FULL_TISO_MANTLE = .false.
+
+# output kernel mask to zero out source region
+# to remove large values near the sources in the sensitivity kernels
+SAVE_SOURCE_MASK = .false.
+
+# output kernels on a regular grid instead of on the GLL mesh points (a bit expensive)
SAVE_REGULAR_KL = .false.
+#-----------------------------------------------------------
+
+# set to true to use GPUs
+GPU_MODE = .false.
+
+# set to true to use the ADIOS library for I/Os
+ADIOS_ENABLED = .false.
+ADIOS_FOR_FORWARD_ARRAYS = .true.
+ADIOS_FOR_MPI_ARRAYS = .true.
+ADIOS_FOR_ARRAYS_SOLVER = .true.
+ADIOS_FOR_AVS_DX = .true.
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/Makefile.in
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/Makefile.in 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/Makefile.in 2013-08-21 14:03:09 UTC (rev 22724)
@@ -94,6 +94,14 @@
default: change_date_of_calling_code $(DEFAULT)
+required: bin obj
+
+bin:
+ mkdir -p $E
+
+obj:
+ mkdir -p $O
+
backup:
cp -rp src setup DATA/Par_file* Makefile go_mesher* go_solver* mymachines bak
@@ -139,15 +147,15 @@
# Shortcut for: <prog>/<xprog> -> bin/<xprog>
define target_shortcut
-$(patsubst $E/%, %, $(1)): $(1)
+$(patsubst $E/%, %, $(1)): required $(1)
.PHONY: $(patsubst $E/%, %, $(1))
-$(patsubst $E/x%, %, $(1)): $(1)
+$(patsubst $E/x%, %, $(1)): required $(1)
.PHONY: $(patsubst $E/x%, %, $(1))
endef
# Shortcut for: dir -> src/dir/<targets in here>
define shortcut
-$(1): $($(1)_TARGETS)
+$(1): required $($(1)_TARGETS)
.PHONY: $(1)
$$(foreach target, $$(filter $E/%,$$($(1)_TARGETS)), $$(eval $$(call target_shortcut,$$(target))))
endef
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/create_movie_AVS_DX.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/create_movie_AVS_DX.f90 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/create_movie_AVS_DX.f90 2013-08-21 14:03:09 UTC (rev 22724)
@@ -333,7 +333,12 @@
! read all the elements from the same file
write(outputname,"('/moviedata',i6.6)") it
- open(unit=IOUT,file=trim(OUTPUT_FILES)//outputname,status='old',action='read',form='unformatted')
+ open(unit=IOUT,file=trim(OUTPUT_FILES)//outputname, &
+ status='old',action='read',form='unformatted',iostat=ierror)
+ if(ierror /= 0 ) then
+ print*,'error opening file: ',trim(OUTPUT_FILES)//outputname
+ stop 'error opening moviedata file'
+ endif
! reads in point locations
! (given as r theta phi for geocentric coordinate system)
@@ -348,6 +353,13 @@
close(IOUT)
+ !debug
+ print*
+ print*,"data ux min/max: ",minval(store_val_ux),maxval(store_val_ux)
+ print*,"data uy min/max: ",minval(store_val_uy),maxval(store_val_uy)
+ print*,"data uz min/max: ",minval(store_val_uz),maxval(store_val_uz)
+ print*
+
! clear number of elements kept
ispec = 0
@@ -529,6 +541,18 @@
! map field to [0:255] for AVS color scale
field_display(:) = 255. * field_display(:)
+ else
+
+ ! compute min and max of data value
+ min_field_current = minval(field_display(:))
+ max_field_current = maxval(field_display(:))
+
+ ! print minimum and maximum amplitude in current snapshot
+ print *
+ print *,'minimum amplitude in current snapshot = ',min_field_current
+ print *,'maximum amplitude in current snapshot = ',max_field_current
+ print *
+
endif
!---------------------------------
@@ -714,10 +738,18 @@
do ilocnum = 1,NGNOD2D_AVS_DX
ibool_number = iglob(ilocnum+ieoff)
if(.not. mask_point(ibool_number)) then
- if(USE_OPENDX) then
- write(11,"(f7.2)") field_display(ilocnum+ieoff)
+ if( .not. ALL_THRESHOLD_OFF ) then
+ if(USE_OPENDX) then
+ write(11,"(f7.2)") field_display(ilocnum+ieoff)
+ else
+ write(11,"(i10,1x,f7.2)") ireorder(ibool_number),field_display(ilocnum+ieoff)
+ endif
else
- write(11,"(i10,1x,f7.2)") ireorder(ibool_number),field_display(ilocnum+ieoff)
+ if(USE_OPENDX) then
+ write(11,"(e7.4)") field_display(ilocnum+ieoff)
+ else
+ write(11,"(i10,1x,e7.4)") ireorder(ibool_number),field_display(ilocnum+ieoff)
+ endif
endif
endif
mask_point(ibool_number) = .true.
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/model_crustmaps.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/model_crustmaps.f90 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/model_crustmaps.f90 2013-08-21 14:03:09 UTC (rev 22724)
@@ -217,7 +217,7 @@
call get_value_string(eucrust, config_name, default_name)
- open(unit=1,file=eucrust,status='old',action='read')
+ open(unit=1,file=trim(eucrust),status='old',action='read',iostat=ier)
if ( ier /= 0 ) then
write(IMAIN,*) 'error opening "', trim(eucrust), '": ', ier
call exit_MPI(0, 'error model crustmap')
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/locate_sources.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/locate_sources.f90 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/locate_sources.f90 2013-08-21 14:03:09 UTC (rev 22724)
@@ -745,7 +745,8 @@
! (see setup_sources_receivers.f90)
t0 = - 1.5d0*minval( tshift_cmt(:) - hdur(:) )
if( USE_FORCE_POINT_SOURCE ) t0 = - 1.2d0 * minval(tshift_cmt(:) - 1.0d0/hdur(:))
- t_cmt_used(:) = t_cmt_used(:)
+
+ t_cmt_used(:) = tshift_cmt(:)
if( USER_T0 > 0.d0 ) then
if( t0 <= USER_T0 + min_tshift_cmt_original ) then
t_cmt_used(:) = tshift_cmt(:) + min_tshift_cmt_original
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/save_regular_kernels.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/save_regular_kernels.f90 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/save_regular_kernels.f90 2013-08-21 14:03:09 UTC (rev 22724)
@@ -138,6 +138,10 @@
! allocates temporary isotropic kernel arrays for file output
allocate(bulk_c_kl_crust_mantle(npoints_slice), &
bulk_beta_kl_crust_mantle(npoints_slice))
+
+ allocate(kappa_kl_crust_mantle(npoints_slice), &
+ mu_kl_crust_mantle(npoints_slice), &
+ rhonotprime_kl_crust_mantle(npoints_slice))
endif
! crust_mantle
@@ -165,6 +169,7 @@
rhonotprime_kl_crust_mantle(ipoint) = 0.0
kappa_kl_crust_mantle(ipoint) = 0.0
mu_kl_crust_mantle(ipoint) = 0.0
+
rho_kl_crust_mantle_reg(ipoint) = 0.0
alpha_kl_crust_mantle_reg(ipoint) = 0.0
beta_kl_crust_mantle_reg(ipoint) = 0.0
@@ -293,7 +298,7 @@
! K_rho (primary kernel, for a parameterization (A,C,L,N,F,rho) )
rhonotprime_kl = rhol * rho_kl / scale_kl_rho
- rhonotprime_kl_crust_mantle(ipoint) = rhonotprime_kl_crust_mantle(ipoint) + rhonotprime_kl
+ !rhonotprime_kl_crust_mantle(ipoint) = rhonotprime_kl_crust_mantle(ipoint) + rhonotprime_kl
! note: transverse isotropic kernels are calculated for ALL elements,
! and not just transverse elements
@@ -398,7 +403,7 @@
if (ANISOTROPIC_KL) then
if (SAVE_TRANSVERSE_KL_ONLY) then
! write the kernel in physical units
- rhonotprime_kl_crust_mantle(ipoint) = - rhonotprime_kl_crust_mantle(ipoint) * scale_kl
+ !rhonotprime_kl_crust_mantle(ipoint) = - rhonotprime_kl_crust_mantle(ipoint) * scale_kl
alphav_kl_crust_mantle(ipoint) = - alphav_kl_crust_mantle(ipoint) * scale_kl
alphah_kl_crust_mantle(ipoint) = - alphah_kl_crust_mantle(ipoint) * scale_kl
@@ -532,9 +537,12 @@
deallocate(bulk_c_kl_crust_mantle,bulk_betah_kl_crust_mantle, &
bulk_betav_kl_crust_mantle,bulk_beta_kl_crust_mantle)
endif
+
if (.not. ANISOTROPIC_KL) then
deallocate(bulk_c_kl_crust_mantle,bulk_beta_kl_crust_mantle)
+ deallocate(kappa_kl_crust_mantle,mu_kl_crust_mantle,rhonotprime_kl_crust_mantle)
endif
+
deallocate(cijkl_kl_crust_mantle_reg, &
rho_kl_crust_mantle_reg, &
beta_kl_crust_mantle_reg, &
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90 2013-08-21 00:49:49 UTC (rev 22723)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90 2013-08-21 14:03:09 UTC (rev 22724)
@@ -2510,13 +2510,13 @@
!! because we then use the values read immediately (one value at a time, but to reduce the total number of reads
!! across the PCI-Express bus we could / should consider reading them 10 by 10 for instance (?) if that fits
!! in the memory of the GPU
- allocate(b_displ_crust_mantle_store_buffer(NDIM,NGLOB_CRUST_MANTLE,NT_DUMP_ATTENUATION),stat=ier)
+ allocate(b_displ_crust_mantle_store_buffer(NDIM,NGLOB_CRUST_MANTLE_ADJOINT,NT_DUMP_ATTENUATION),stat=ier)
if( ier /= 0 ) call exit_MPI(myrank,'error allocating b_displ_crust_mantle_store_buffer')
- allocate(b_displ_outer_core_store_buffer(NGLOB_OUTER_CORE,NT_DUMP_ATTENUATION),stat=ier)
+ allocate(b_displ_outer_core_store_buffer(NGLOB_OUTER_CORE_ADJOINT,NT_DUMP_ATTENUATION),stat=ier)
if( ier /= 0 ) call exit_MPI(myrank,'error allocating b_displ_outer_core_store_buffer')
- allocate(b_accel_outer_core_store_buffer(NGLOB_OUTER_CORE,NT_DUMP_ATTENUATION),stat=ier)
+ allocate(b_accel_outer_core_store_buffer(NGLOB_OUTER_CORE_ADJOINT,NT_DUMP_ATTENUATION),stat=ier)
if( ier /= 0 ) call exit_MPI(myrank,'error allocating b_displ_outer_core_store_buffer')
- allocate(b_displ_inner_core_store_buffer(NDIM,NGLOB_INNER_CORE,NT_DUMP_ATTENUATION),stat=ier)
+ allocate(b_displ_inner_core_store_buffer(NDIM,NGLOB_INNER_CORE_ADJOINT,NT_DUMP_ATTENUATION),stat=ier)
if( ier /= 0 ) call exit_MPI(myrank,'error allocating b_displ_inner_core_store_buffer')
it = 0
More information about the CIG-COMMITS
mailing list