[cig-commits] [commit] devel: added src/inverse_problem (for our work with Vadim Monteiller: as planned we are trying a way of parallelizing the Fortran inversion tools to see how fast they can be made) (509c631)
cig_noreply at geodynamics.org
cig_noreply at geodynamics.org
Thu Dec 4 17:26:11 PST 2014
Repository : https://github.com/geodynamics/specfem3d
On branch : devel
Link : https://github.com/geodynamics/specfem3d/compare/fc799ce109fbccfddf183626b147f975a518f463...509c631db172c2d85f326dd7e547302d9fb5621a
>---------------------------------------------------------------
commit 509c631db172c2d85f326dd7e547302d9fb5621a
Author: Dimitri Komatitsch <komatitsch at lma.cnrs-mrs.fr>
Date: Fri Dec 5 02:18:21 2014 +0100
added src/inverse_problem (for our work with Vadim Monteiller: as planned we are trying a way of parallelizing the Fortran inversion tools to see how fast they can be made)
>---------------------------------------------------------------
509c631db172c2d85f326dd7e547302d9fb5621a
Makefile.in | 12 +
configure | 3 +-
configure.ac | 1 +
...ography.h.in => constants_inverse_problem.h.in} | 0
src/{decompose_mesh => inverse_problem}/Makefile | 3 +-
.../inverse_problem_par.f90} | 38 +--
.../program01_add_model_iso.f90} | 10 +-
.../program02_model_update.f90} | 18 +-
.../program03_smooth_sem.f90} | 0
.../program04_sum_kernels.f90} | 4 +-
.../program05_sum_preconditioned_kernels.f90} | 6 +-
src/inverse_problem/rules.mk | 303 +++++++++++++++++++++
.../subroutine01_compute_kernel_integral.f90} | 14 +-
.../subroutine02_get_gradient_cg.f90} | 4 +-
.../subroutine03_get_gradient_steepest.f90} | 4 +-
.../subroutine04_read_kernels_cg.f90} | 2 +-
.../subroutine05_read_kernels.f90} | 4 +-
.../subroutine06_read_model.f90} | 6 +-
.../subroutine07_read_parameters_invprob.f90} | 6 +-
.../subroutine08_save_external_bin_m_up.f90} | 0
.../subroutine09_write_gradients.f90} | 4 +-
.../subroutine10_write_new_model.f90} | 4 +-
...subroutine11_write_new_model_perturbations.f90} | 4 +-
23 files changed, 383 insertions(+), 67 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 11dcc91..6fce842 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -223,6 +223,7 @@ SUBDIRS = \
shared \
specfem3D \
tomography \
+ inverse_problem \
$(EMPTY_MACRO)
# default targets for the pure Fortran version
@@ -248,6 +249,11 @@ all: default \
xcheck_mesh_quality_CUBIT_Abaqus \
xconvert_skewness_to_angle \
xmultiply_CUBIT_Abaqus_mesh_by_1000 \
+ xprogram01_add_model_iso \
+ xprogram02_model_update \
+ xprogram03_smooth_sem \
+ xprogram04_sum_kernels \
+ xprogram05_sum_preconditioned_kernels \
$(EMPTY_MACRO)
backup:
@@ -322,6 +328,12 @@ help:
@echo " xsum_kernels"
@echo " xsum_preconditioned_kernels"
@echo ""
+ @echo "- inverse problem: [make inverse_problem]"
+ @echo " xprogram1_under_construction"
+ @echo " xprogram2_under_construction"
+ @echo " xprogram3_under_construction"
+ @echo " xprogram4_under_construction"
+ @echo ""
@echo "for unit testing:"
@echo " tests"
@echo ""
diff --git a/configure b/configure
index 1a220ec..3975617 100755
--- a/configure
+++ b/configure
@@ -7869,7 +7869,7 @@ $as_echo "## ----------------------------------- ##
## ----------------------------------- ##"
# Output results.
-ac_config_files="$ac_config_files Makefile setup/constants.h setup/constants_tomography.h setup/precision.h setup/config.fh"
+ac_config_files="$ac_config_files Makefile setup/constants.h setup/constants_tomography.h setup/constants_inverse_problem.h setup/precision.h setup/config.fh"
if test "$USE_BUNDLED_SCOTCH" = 1; then
@@ -8619,6 +8619,7 @@ do
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"setup/constants.h") CONFIG_FILES="$CONFIG_FILES setup/constants.h" ;;
"setup/constants_tomography.h") CONFIG_FILES="$CONFIG_FILES setup/constants_tomography.h" ;;
+ "setup/constants_inverse_problem") CONFIG_FILES="$CONFIG_FILES setup/constants_inverse_problem" ;;
"setup/precision.h") CONFIG_FILES="$CONFIG_FILES setup/precision.h" ;;
"setup/config.fh") CONFIG_FILES="$CONFIG_FILES setup/config.fh" ;;
"${SCOTCH_DIR}/src/Makefile.inc") CONFIG_FILES="$CONFIG_FILES ${SCOTCH_DIR}/src/Makefile.inc" ;;
diff --git a/configure.ac b/configure.ac
index 3d623d8..82908b8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -393,6 +393,7 @@ AC_CONFIG_FILES([
Makefile
setup/constants.h
setup/constants_tomography.h
+ setup/constants_inverse_problem.h
setup/precision.h
setup/config.fh
])
diff --git a/setup/constants_tomography.h.in b/setup/constants_inverse_problem.h.in
similarity index 100%
copy from setup/constants_tomography.h.in
copy to setup/constants_inverse_problem.h.in
diff --git a/src/decompose_mesh/Makefile b/src/inverse_problem/Makefile
similarity index 98%
copy from src/decompose_mesh/Makefile
copy to src/inverse_problem/Makefile
index ed1f1dc..fa288b9 100644
--- a/src/decompose_mesh/Makefile
+++ b/src/inverse_problem/Makefile
@@ -25,7 +25,7 @@
#
#=====================================================================
-DIR = decompose_mesh
+DIR = inverse_problem
# The rest of this file is generic
#######################################
@@ -54,4 +54,3 @@ bak: backup
.PHONY: default all clean cleanall backup bak
-
diff --git a/src/tomography/tomography_par.f90 b/src/inverse_problem/inverse_problem_par.f90
similarity index 87%
copy from src/tomography/tomography_par.f90
copy to src/inverse_problem/inverse_problem_par.f90
index 0c4a1b1..a9857bb 100644
--- a/src/tomography/tomography_par.f90
+++ b/src/inverse_problem/inverse_problem_par.f90
@@ -26,7 +26,7 @@
!=====================================================================
-module tomography_par
+module inverse_problem_par
use constants,only: CUSTOM_REAL,MAX_STRING_LEN, &
NGLLX,NGLLY,NGLLZ,IIN,IOUT, &
@@ -34,8 +34,8 @@ module tomography_par
implicit none
- ! tomography parameter settings
- include "constants_tomography.h"
+ ! inverse_problem parameter settings
+ include "constants_inverse_problem.h"
! mesh size
integer :: NSPEC, NGLOB
@@ -69,15 +69,15 @@ module tomography_par
! directory where the statistics output files will be written
character(len=MAX_STRING_LEN) :: OUTPUT_STATISTICS_DIR = 'OUTPUT_MODEL/'
-end module tomography_par
+end module inverse_problem_par
!
!-------------------------------------------------------------------------------------------------
!
-module tomography_kernels_iso
+module inverse_problem_kernels_iso
- use tomography_par
+ use inverse_problem_par
implicit none
@@ -87,16 +87,16 @@ module tomography_kernels_iso
! gradients for model updates
real(kind=CUSTOM_REAL), dimension(:,:,:,:),allocatable :: model_dbulk,model_dbeta,model_drho
-end module tomography_kernels_iso
+end module inverse_problem_kernels_iso
!
!-------------------------------------------------------------------------------------------------
!
-module tomography_kernels_tiso
+module inverse_problem_kernels_tiso
- use tomography_par
+ use inverse_problem_par
implicit none
@@ -106,16 +106,16 @@ module tomography_kernels_tiso
! gradients for model updates
real(kind=CUSTOM_REAL), dimension(:,:,:,:),allocatable :: model_dbulk,model_dbetah,model_dbetav,model_deta
-end module tomography_kernels_tiso
+end module inverse_problem_kernels_tiso
!
!-------------------------------------------------------------------------------------------------
!
-module tomography_kernels_tiso_cg
+module inverse_problem_kernels_tiso_cg
- use tomography_par
+ use inverse_problem_par
implicit none
@@ -131,15 +131,15 @@ module tomography_kernels_tiso_cg
real(kind=CUSTOM_REAL), dimension(:,:,:,:),allocatable :: &
model_dbulk_old,model_dbetah_old,model_dbetav_old,model_deta_old
-end module tomography_kernels_tiso_cg
+end module inverse_problem_kernels_tiso_cg
!
!-------------------------------------------------------------------------------------------------
!
-module tomography_model_iso
+module inverse_problem_model_iso
- use tomography_par
+ use inverse_problem_par
implicit none
@@ -147,15 +147,15 @@ module tomography_model_iso
real(kind=CUSTOM_REAL), dimension(:,:,:,:),allocatable :: model_vp,model_vs,model_rho
real(kind=CUSTOM_REAL), dimension(:,:,:,:),allocatable :: model_vp_new,model_vs_new,model_rho_new
-end module tomography_model_iso
+end module inverse_problem_model_iso
!
!-------------------------------------------------------------------------------------------------
!
-module tomography_model_tiso
+module inverse_problem_model_tiso
- use tomography_par
+ use inverse_problem_par
implicit none
@@ -165,6 +165,6 @@ module tomography_model_tiso
real(kind=CUSTOM_REAL), dimension(:,:,:,:),allocatable :: &
model_vpv_new,model_vph_new,model_vsv_new,model_vsh_new,model_eta_new,model_rho_new
-end module tomography_model_tiso
+end module inverse_problem_model_tiso
diff --git a/src/tomography/add_model_iso.f90 b/src/inverse_problem/program01_add_model_iso.f90
similarity index 97%
copy from src/tomography/add_model_iso.f90
copy to src/inverse_problem/program01_add_model_iso.f90
index a9de79f..3fc51c0 100644
--- a/src/tomography/add_model_iso.f90
+++ b/src/inverse_problem/program01_add_model_iso.f90
@@ -67,8 +67,8 @@
program add_model
- use tomography_model_iso
- use tomography_kernels_iso
+ use inverse_problem_model_iso
+ use inverse_problem_kernels_iso
use specfem_par,only: NPROC
@@ -83,7 +83,7 @@ program add_model
call initialize()
! reads in parameters needed
- call read_parameters_tomo()
+ call read_parameters_invprob()
! user output
if (myrank == 0) then
@@ -203,7 +203,7 @@ subroutine initialize()
! initializes arrays
- use tomography_par
+ use inverse_problem_par
use specfem_par,only: NSPEC_AB,NGLOB_AB,NPROC,ADIOS_ENABLED
@@ -236,7 +236,7 @@ subroutine initialize()
! read the value of NSPEC_AB and NGLOB_AB because we need it to define some array sizes below
call read_mesh_for_init()
- ! sets tomography array dimensions
+ ! sets inverse_problem array dimensions
NSPEC = NSPEC_AB
NGLOB = NGLOB_AB
diff --git a/src/tomography/model_update.f90 b/src/inverse_problem/program02_model_update.f90
similarity index 98%
copy from src/tomography/model_update.f90
copy to src/inverse_problem/program02_model_update.f90
index 2e9b9a0..a85c0b4 100644
--- a/src/tomography/model_update.f90
+++ b/src/inverse_problem/program02_model_update.f90
@@ -31,8 +31,8 @@ program model_update
use specfem_par,only: NPROC,OUTPUT_FILES_PATH,LOCAL_PATH
use specfem_par_elastic,only: rho_vp,rho_vs
- use tomography_model_iso
- use tomography_kernels_iso
+ use inverse_problem_model_iso
+ use inverse_problem_kernels_iso
implicit none
@@ -112,7 +112,7 @@ program model_update
endif
! reads in parameters needed
- call read_parameters_tomo()
+ call read_parameters_invprob()
! user output
if (myrank == 0) then
@@ -561,7 +561,7 @@ subroutine initialize()
! initializes arrays
- use tomography_par,only: myrank_tomo => myrank, sizeprocs, NSPEC, NGLOB, USE_ALPHA_BETA_RHO
+ use inverse_problem_par,only: myrank_invprob => myrank, sizeprocs, NSPEC, NGLOB, USE_ALPHA_BETA_RHO
use specfem_par,only: &
NSPEC_AB,NGLOB_AB,NPROC,myrank, &
@@ -589,7 +589,7 @@ subroutine initialize()
endif
if (USE_ALPHA_BETA_RHO .neqv. .true.) then
- print*,'Sorry using USE_ALPHA_BETA_RHO must be set to .true. in constants_tomography.h file; Please recompile...'
+ print*,'Sorry using USE_ALPHA_BETA_RHO must be set to .true. in constants_inverse_problem.h file; Please recompile...'
stop 'Error USE_ALPHA_BETA_RHO flag invalid'
endif
@@ -607,10 +607,10 @@ subroutine initialize()
! read the value of NSPEC_AB and NGLOB_AB because we need it to define some array sizes below
call read_mesh_for_init()
- ! sets tomography array dimensions
+ ! sets inverse_problem array dimensions
NSPEC = NSPEC_AB
NGLOB = NGLOB_AB
- myrank_tomo = myrank
+ myrank_invprob = myrank
end subroutine initialize
@@ -631,7 +631,7 @@ subroutine get_external_mesh()
use specfem_par_poroelastic,only: POROELASTIC_SIMULATION,ispec_is_poroelastic,rho_vpI,rho_vpII,rho_vsI, &
phistore,tortstore,rhoarraystore
- use tomography_par,only: OUTPUT_MODEL_DIR
+ use inverse_problem_par,only: OUTPUT_MODEL_DIR
implicit none
integer :: ier
@@ -754,7 +754,7 @@ subroutine save_new_databases()
use specfem_par_acoustic,only:ACOUSTIC_SIMULATION,ispec_is_acoustic
use specfem_par_poroelastic,only:POROELASTIC_SIMULATION,ispec_is_poroelastic
- use tomography_model_iso,only: model_vs_new,model_vp_new,model_rho_new,OUTPUT_MODEL_DIR
+ use inverse_problem_model_iso,only: model_vs_new,model_vp_new,model_rho_new,OUTPUT_MODEL_DIR
implicit none
diff --git a/src/tomography/smooth_sem.f90 b/src/inverse_problem/program03_smooth_sem.f90
similarity index 100%
copy from src/tomography/smooth_sem.f90
copy to src/inverse_problem/program03_smooth_sem.f90
diff --git a/src/tomography/sum_kernels.f90 b/src/inverse_problem/program04_sum_kernels.f90
similarity index 98%
copy from src/tomography/sum_kernels.f90
copy to src/inverse_problem/program04_sum_kernels.f90
index fc3829b..efcc007 100644
--- a/src/tomography/sum_kernels.f90
+++ b/src/inverse_problem/program04_sum_kernels.f90
@@ -48,7 +48,7 @@
program sum_kernels
- use tomography_par,only: MAX_STRING_LEN,MAX_NUM_NODES,KERNEL_FILE_LIST,IIN, &
+ use inverse_problem_par,only: MAX_STRING_LEN,MAX_NUM_NODES,KERNEL_FILE_LIST,IIN, &
myrank,sizeprocs, &
NGLOB,NSPEC, &
USE_ALPHA_BETA_RHO,USE_ISO_KERNELS
@@ -204,7 +204,7 @@ end program sum_kernels
subroutine sum_kernel(kernel_name,kernel_list,nker)
- use tomography_par
+ use inverse_problem_par
implicit none
diff --git a/src/tomography/sum_preconditioned_kernels.f90 b/src/inverse_problem/program05_sum_preconditioned_kernels.f90
similarity index 98%
copy from src/tomography/sum_preconditioned_kernels.f90
copy to src/inverse_problem/program05_sum_preconditioned_kernels.f90
index 48d310b..f64cdac 100644
--- a/src/tomography/sum_preconditioned_kernels.f90
+++ b/src/inverse_problem/program05_sum_preconditioned_kernels.f90
@@ -52,7 +52,7 @@
program sum_preconditioned_kernels
- use tomography_par,only: MAX_STRING_LEN,MAX_NUM_NODES,KERNEL_FILE_LIST,IIN, &
+ use inverse_problem_par,only: MAX_STRING_LEN,MAX_NUM_NODES,KERNEL_FILE_LIST,IIN, &
myrank,sizeprocs, &
NGLOB,NSPEC, &
USE_ALPHA_BETA_RHO,USE_ISO_KERNELS
@@ -208,7 +208,7 @@ end program sum_preconditioned_kernels
subroutine sum_kernel_pre(kernel_name,kernel_list,nker)
- use tomography_par
+ use inverse_problem_par
implicit none
@@ -389,7 +389,7 @@ subroutine invert_hess( hess_matrix )
! H_nn = \frac{ \partial^2 \chi }{ \partial \rho_n \partial \rho_n }
! on all GLL points, which are indexed (i,j,k,ispec)
- use tomography_par
+ use inverse_problem_par
implicit none
diff --git a/src/inverse_problem/rules.mk b/src/inverse_problem/rules.mk
new file mode 100644
index 0000000..b400d03
--- /dev/null
+++ b/src/inverse_problem/rules.mk
@@ -0,0 +1,303 @@
+#=====================================================================
+#
+# S p e c f e m 3 D V e r s i o n 2 . 1
+# ---------------------------------------
+#
+# Main historical authors: Dimitri Komatitsch and Jeroen Tromp
+# Princeton University, USA
+# and CNRS / University of Marseille, France
+# (there are currently many more authors!)
+# (c) Princeton University and CNRS / University of Marseille, July 2012
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+#=====================================================================
+
+## compilation directories
+S := ${S_TOP}/src/inverse_problem
+$(inverse_problem_OBJECTS): S := ${S_TOP}/src/inverse_problem
+
+#######################################
+
+inverse_problem_TARGETS = \
+ $E/xprogram01_add_model_iso \
+ $E/xprogram02_model_update \
+ $E/xprogram03_smooth_sem \
+ $E/xprogram04_sum_kernels \
+ $E/xprogram05_sum_preconditioned_kernels \
+ $(EMPTY_MACRO)
+
+inverse_problem_OBJECTS = \
+ $(xprogram01_add_model_iso_OBJECTS) \
+ $(xprogram02_model_update_OBJECTS) \
+ $(xprogram03_smooth_sem_OBJECTS) \
+ $(xprogram04_sum_kernels_OBJECTS) \
+ $(xprogram05_sum_preconditioned_kernels_OBJECTS) \
+ $(EMPTY_MACRO)
+
+# These files come from the shared directory
+inverse_problem_SHARED_OBJECTS = \
+ $(xadd_model_SHARED_OBJECTS) \
+ $(xprogram02_model_update_SHARED_OBJECTS) \
+ $(xprogram03_smooth_sem_SHARED_OBJECTS) \
+ $(xprogram04_sum_kernels_SHARED_OBJECTS) \
+ $(xprogram05_sum_preconditioned_kernels_SHARED_OBJECTS) \
+ $(EMPTY_MACRO)
+
+inverse_problem_MODULES = \
+ $(FC_MODDIR)/inverse_problem_par.$(FC_MODEXT) \
+ $(FC_MODDIR)/inverse_problem_kernels_iso.$(FC_MODEXT) \
+ $(FC_MODDIR)/inverse_problem_kernels_tiso.$(FC_MODEXT) \
+ $(FC_MODDIR)/inverse_problem_kernels_tiso_cg.$(FC_MODEXT) \
+ $(FC_MODDIR)/inverse_problem_model_tiso.$(FC_MODEXT) \
+ $(FC_MODDIR)/inverse_problem_model_iso.$(FC_MODEXT) \
+ $(EMPTY_MACRO)
+
+####
+#### rules for executables
+####
+
+.PHONY: all_invprob invprob inverse_problem
+
+all_invprob: $(inverse_problem_TARGETS)
+
+invprob: $(inverse_problem_TARGETS)
+
+inverse_problem: $(inverse_problem_TARGETS)
+
+## single targets
+program01_add_model_iso: xprogram01_add_model_iso
+xprogram01_add_model_iso: $E/xprogram01_add_model_iso
+
+program02_model_update: xprogram02_model_update
+xprogram02_model_update: $E/xprogram02_model_update
+
+program03_smooth_sem: xprogram03_smooth_sem
+xprogram03_smooth_sem: $E/xprogram03_smooth_sem
+
+program04_sum_kernels: xprogram04_sum_kernels
+xprogram04_sum_kernels: $E/xprogram04_sum_kernels
+
+program05_sum_preconditioned_kernels: xprogram05_sum_preconditioned_kernels
+xprogram05_sum_preconditioned_kernels: $E/xprogram05_sum_preconditioned_kernels
+
+
+#######################################
+
+####
+#### rules for each program follow
+####
+
+#######################################
+
+##
+## add_model
+##
+xadd_model_OBJECTS = \
+ $O/inverse_problem_par.invprob_module.o \
+ $O/subroutine01_compute_kernel_integral.invprob.o \
+ $O/subroutine02_get_gradient_cg.invprob.o \
+ $O/subroutine03_get_gradient_steepest.invprob.o \
+ $O/subroutine04_read_kernels_cg.invprob.o \
+ $O/subroutine05_read_kernels.invprob.o \
+ $O/subroutine06_read_model.invprob.o \
+ $O/subroutine07_read_parameters_invprob.invprob.o \
+ $O/subroutine09_write_gradients.invprob.o \
+ $O/subroutine10_write_new_model.invprob.o \
+ $O/subroutine11_write_new_model_perturbations.invprob.o \
+ $(EMPTY_MACRO)
+
+xadd_model_SHARED_OBJECTS = \
+ $O/specfem3D_par.spec.o \
+ $O/pml_par.spec.o \
+ $O/read_mesh_databases.spec.o \
+ $O/shared_par.shared_module.o \
+ $O/create_name_database.shared.o \
+ $O/exit_mpi.shared.o \
+ $O/gll_library.shared.o \
+ $O/param_reader.cc.o \
+ $O/read_parameter_file.shared.o \
+ $O/read_value_parameters.shared.o \
+ $O/unused_mod.shared_module.o \
+ $(EMPTY_MACRO)
+
+##
+## xprogram01_add_model_iso
+##
+xprogram01_add_model_iso_OBJECTS = \
+ $O/program01_add_model_iso.invprob.o \
+ $(xadd_model_OBJECTS) \
+ $(EMPTY_MACRO)
+
+# extra dependencies
+$O/program01_add_model_iso.invprob.o: $O/specfem3D_par.spec.o $O/inverse_problem_par.invprob_module.o
+
+${E}/xprogram01_add_model_iso: $(xprogram01_add_model_iso_OBJECTS) $(xadd_model_SHARED_OBJECTS) $(COND_MPI_OBJECTS)
+ ${FCLINK} -o $@ $+ $(MPILIBS)
+
+
+##
+## xprogram02_model_update
+##
+xprogram02_model_update_OBJECTS = \
+ $O/inverse_problem_par.invprob_module.o \
+ $O/subroutine03_get_gradient_steepest.invprob.o \
+ $O/program02_model_update.invprob.o \
+ $O/subroutine05_read_kernels.invprob.o \
+ $O/subroutine07_read_parameters_invprob.invprob.o \
+ $O/subroutine08_save_external_bin_m_up.invprob.o \
+ $O/subroutine09_write_gradients.invprob.o \
+ $O/subroutine10_write_new_model.invprob.o \
+ $O/subroutine11_write_new_model_perturbations.invprob.o \
+ $(EMPTY_MACRO)
+
+xprogram02_model_update_SHARED_OBJECTS = \
+ $O/specfem3D_par.spec.o \
+ $O/pml_par.spec.o \
+ $O/initialize_simulation.spec.o \
+ $O/read_mesh_databases.spec.o \
+ $O/shared_par.shared_module.o \
+ $O/check_mesh_resolution.shared.o \
+ $O/create_name_database.shared.o \
+ $O/exit_mpi.shared.o \
+ $O/get_attenuation_model.shared.o \
+ $O/gll_library.shared.o \
+ $O/param_reader.cc.o \
+ $O/read_parameter_file.shared.o \
+ $O/read_value_parameters.shared.o \
+ $O/unused_mod.shared_module.o \
+ $O/write_VTK_data.shared.o \
+ $(EMPTY_MACRO)
+
+# cuda stubs
+xprogram02_model_update_OBJECTS += $O/specfem3D_gpu_cuda_method_stubs.cudacc.o
+
+
+# using ADIOS files
+adios_program02_model_update_OBJECTS= \
+ $O/read_mesh_databases_adios.spec_adios.o \
+ $O/read_forward_arrays_adios.spec_adios.o
+
+adios_program02_model_update_SHARED_OBJECTS = \
+ $O/adios_manager.shared_adios.o \
+ $O/adios_helpers_definitions.shared_adios_module.o \
+ $O/adios_helpers_writers.shared_adios_module.o \
+ $O/adios_helpers.shared_adios.o
+
+adios_program02_model_update_STUBS = \
+ $O/specfem3D_adios_stubs.spec_noadios.o
+
+adios_program02_model_update_SHARED_STUBS = \
+ $O/adios_manager_stubs.shared_noadios.o
+
+# conditional adios linking
+ifeq ($(ADIOS),yes)
+xprogram02_model_update_OBJECTS += $(adios_program02_model_update_OBJECTS)
+xprogram02_model_update_SHARED_OBJECTS += $(adios_program02_model_update_SHARED_OBJECTS)
+else
+xprogram02_model_update_OBJECTS += $(adios_program02_model_update_STUBS)
+xprogram02_model_update_SHARED_OBJECTS += $(adios_program02_model_update_SHARED_STUBS)
+endif
+
+# extra dependencies
+$O/program02_model_update.invprob.o: $O/specfem3D_par.spec.o $O/inverse_problem_par.invprob_module.o
+$O/subroutine08_save_external_bin_m_up.invprob.o: $O/specfem3D_par.spec.o
+
+${E}/xprogram02_model_update: $(xprogram02_model_update_OBJECTS) $(xprogram02_model_update_SHARED_OBJECTS) $(COND_MPI_OBJECTS)
+ ${FCLINK} -o $@ $+ $(MPILIBS)
+
+
+##
+## xprogram03_smooth_sem
+##
+xprogram03_smooth_sem_OBJECTS = \
+ $O/inverse_problem_par.invprob_module.o \
+ $O/program03_smooth_sem.invprob.o \
+ $(EMPTY_MACRO)
+
+xprogram03_smooth_sem_SHARED_OBJECTS = \
+ $O/specfem3D_par.spec.o \
+ $O/pml_par.spec.o \
+ $O/read_mesh_databases.spec.o \
+ $O/shared_par.shared_module.o \
+ $O/check_mesh_resolution.shared.o \
+ $O/create_name_database.shared.o \
+ $O/exit_mpi.shared.o \
+ $O/gll_library.shared.o \
+ $O/param_reader.cc.o \
+ $O/read_parameter_file.shared.o \
+ $O/read_value_parameters.shared.o \
+ $O/unused_mod.shared_module.o \
+ $O/write_VTK_data.shared.o \
+ $(EMPTY_MACRO)
+
+# extra dependencies
+$O/program03_smooth_sem.invprob.o: $O/specfem3D_par.spec.o $O/inverse_problem_par.invprob_module.o
+
+${E}/xprogram03_smooth_sem: $(xprogram03_smooth_sem_OBJECTS) $(xprogram03_smooth_sem_SHARED_OBJECTS) $(COND_MPI_OBJECTS)
+ ${FCLINK} -o $@ $+ $(MPILIBS)
+
+
+##
+## xprogram04_sum_kernels
+##
+xprogram04_sum_kernels_OBJECTS = \
+ $O/inverse_problem_par.invprob_module.o \
+ $O/program04_sum_kernels.invprob.o \
+ $(EMPTY_MACRO)
+
+xprogram04_sum_kernels_SHARED_OBJECTS = \
+ $O/shared_par.shared_module.o \
+ $O/param_reader.cc.o \
+ $O/read_parameter_file.shared.o \
+ $O/read_value_parameters.shared.o \
+ $O/unused_mod.shared_module.o \
+ $(EMPTY_MACRO)
+
+${E}/xprogram04_sum_kernels: $(xprogram04_sum_kernels_OBJECTS) $(xprogram04_sum_kernels_SHARED_OBJECTS) $(COND_MPI_OBJECTS)
+ ${FCLINK} -o $@ $+ $(MPILIBS)
+
+
+##
+## xprogram05_sum_preconditioned_kernels
+##
+xprogram05_sum_preconditioned_kernels_OBJECTS = \
+ $O/inverse_problem_par.invprob_module.o \
+ $O/program05_sum_preconditioned_kernels.invprob.o \
+ $(EMPTY_MACRO)
+
+xprogram05_sum_preconditioned_kernels_SHARED_OBJECTS = $(xprogram04_sum_kernels_SHARED_OBJECTS)
+
+${E}/xprogram05_sum_preconditioned_kernels: $(xprogram05_sum_preconditioned_kernels_OBJECTS) $(xprogram05_sum_preconditioned_kernels_SHARED_OBJECTS) $(COND_MPI_OBJECTS)
+ ${FCLINK} -o $@ $+ $(MPILIBS)
+
+
+#######################################
+
+###
+### Module dependencies
+###
+$O/inverse_problem_par.invprob_module.o: $O/shared_par.shared_module.o
+
+####
+#### rule for each .o file below
+####
+
+$O/%.invprob_module.o: $S/%.f90 ${SETUP}/constants_inverse_problem.h $O/shared_par.shared_module.o
+ ${FCCOMPILE_CHECK} ${FCFLAGS_f90} -c -o $@ $<
+
+$O/%.invprob.o: $S/%.f90 ${SETUP}/constants_inverse_problem.h $O/inverse_problem_par.invprob_module.o
+ ${FCCOMPILE_CHECK} ${FCFLAGS_f90} -c -o $@ $<
+
diff --git a/src/tomography/compute_kernel_integral.f90 b/src/inverse_problem/subroutine01_compute_kernel_integral.f90
similarity index 98%
copy from src/tomography/compute_kernel_integral.f90
copy to src/inverse_problem/subroutine01_compute_kernel_integral.f90
index 877d668..f23aeee 100644
--- a/src/tomography/compute_kernel_integral.f90
+++ b/src/inverse_problem/subroutine01_compute_kernel_integral.f90
@@ -30,8 +30,8 @@ subroutine compute_kernel_integral_iso()
! computes volume element associated with points and calculates kernel integral
- use tomography_kernels_iso
- use tomography_model_iso
+ use inverse_problem_kernels_iso
+ use inverse_problem_model_iso
implicit none
! jacobian
@@ -228,8 +228,8 @@ subroutine compute_kernel_integral_tiso()
! computes volume element associated with points
- use tomography_kernels_tiso
- use tomography_model_tiso
+ use inverse_problem_kernels_tiso
+ use inverse_problem_model_tiso
implicit none
! jacobian
@@ -462,8 +462,8 @@ subroutine compute_kernel_integral_tiso_iso()
! computes volume element associated with points
- use tomography_kernels_iso
- use tomography_model_tiso
+ use inverse_problem_kernels_iso
+ use inverse_problem_model_tiso
implicit none
! jacobian
real(kind=CUSTOM_REAL), dimension(:,:,:,:),allocatable :: jacobian
@@ -681,7 +681,7 @@ subroutine compute_jacobian(jacobian)
! computes volume element associated with points
- use tomography_par,only: CUSTOM_REAL,NSPEC,NGLOB,NGLLX,NGLLY,NGLLZ,IIN,myrank,MAX_STRING_LEN,REG
+ use inverse_problem_par,only: CUSTOM_REAL,NSPEC,NGLOB,NGLLX,NGLLY,NGLLZ,IIN,myrank,MAX_STRING_LEN,REG
implicit none
diff --git a/src/tomography/get_gradient_cg.f90 b/src/inverse_problem/subroutine02_get_gradient_cg.f90
similarity index 99%
copy from src/tomography/get_gradient_cg.f90
copy to src/inverse_problem/subroutine02_get_gradient_cg.f90
index 393e369..9a13d98 100644
--- a/src/tomography/get_gradient_cg.f90
+++ b/src/inverse_problem/subroutine02_get_gradient_cg.f90
@@ -41,8 +41,8 @@ subroutine get_gradient_cg_tiso()
! gamma_n would be un-smoothed kernel and lambda_n would be smoothed one...
! i'm not sure if this makes a difference.
- use tomography_kernels_tiso
- use tomography_kernels_tiso_cg
+ use inverse_problem_kernels_tiso
+ use inverse_problem_kernels_tiso_cg
implicit none
! local parameters
real(kind=CUSTOM_REAL) :: alpha_bulk,alpha_betav,alpha_betah,alpha_eta,alpha_all
diff --git a/src/tomography/get_gradient_steepest.f90 b/src/inverse_problem/subroutine03_get_gradient_steepest.f90
similarity index 99%
copy from src/tomography/get_gradient_steepest.f90
copy to src/inverse_problem/subroutine03_get_gradient_steepest.f90
index 6401ac6..f498e5a 100644
--- a/src/tomography/get_gradient_steepest.f90
+++ b/src/inverse_problem/subroutine03_get_gradient_steepest.f90
@@ -30,7 +30,7 @@ subroutine get_gradient_steepest_iso()
! calculates gradient by steepest descent method
- use tomography_kernels_iso
+ use inverse_problem_kernels_iso
implicit none
! local parameters
@@ -238,7 +238,7 @@ subroutine get_gradient_steepest_tiso()
! calculates gradient by steepest descent method
- use tomography_kernels_tiso
+ use inverse_problem_kernels_tiso
implicit none
! local parameters
diff --git a/src/tomography/read_kernels_cg.f90 b/src/inverse_problem/subroutine04_read_kernels_cg.f90
similarity index 99%
copy from src/tomography/read_kernels_cg.f90
copy to src/inverse_problem/subroutine04_read_kernels_cg.f90
index 7920ba4..2036fce 100644
--- a/src/tomography/read_kernels_cg.f90
+++ b/src/inverse_problem/subroutine04_read_kernels_cg.f90
@@ -30,7 +30,7 @@ subroutine read_kernels_cg_tiso_old()
! reads in smoothed kernels from former iteration in OUTPUT_SUM.old/ : bulk, betav, betah, eta
- use tomography_kernels_tiso_cg
+ use inverse_problem_kernels_tiso_cg
implicit none
real(kind=CUSTOM_REAL) :: min_vsv,min_vsh,max_vsv,max_vsh,min_eta,max_eta,min_bulk,max_bulk
diff --git a/src/tomography/read_kernels.f90 b/src/inverse_problem/subroutine05_read_kernels.f90
similarity index 99%
copy from src/tomography/read_kernels.f90
copy to src/inverse_problem/subroutine05_read_kernels.f90
index ce99791..3d2cb36 100644
--- a/src/tomography/read_kernels.f90
+++ b/src/inverse_problem/subroutine05_read_kernels.f90
@@ -30,7 +30,7 @@ subroutine read_kernels_iso()
! reads in smoothed kernels: bulk, beta, rho
- use tomography_kernels_iso
+ use inverse_problem_kernels_iso
implicit none
! local parameters
@@ -155,7 +155,7 @@ subroutine read_kernels_tiso()
! reads in smoothed kernels: bulk, betav, betah, eta
- use tomography_kernels_tiso
+ use inverse_problem_kernels_tiso
implicit none
! local parameters
diff --git a/src/tomography/read_model.f90 b/src/inverse_problem/subroutine06_read_model.f90
similarity index 99%
copy from src/tomography/read_model.f90
copy to src/inverse_problem/subroutine06_read_model.f90
index 1b99543..c64ce04 100644
--- a/src/tomography/read_model.f90
+++ b/src/inverse_problem/subroutine06_read_model.f90
@@ -29,7 +29,7 @@ subroutine read_model_iso()
! reads in current isotropic model: vp & vs & rho
- use tomography_model_iso
+ use inverse_problem_model_iso
implicit none
real(kind=CUSTOM_REAL) :: min_vp,min_vs,max_vp,max_vs,min_rho,max_rho
@@ -130,7 +130,7 @@ subroutine read_model_tiso()
! reads in current transverse isotropic model: vpv.. & vsv.. & eta & rho
- use tomography_model_tiso
+ use inverse_problem_model_tiso
implicit none
real(kind=CUSTOM_REAL) :: min_vpv,min_vph,min_vsv,min_vsh, &
@@ -292,7 +292,7 @@ subroutine read_model_database()
! reads in current transverse isotropic model: vpv.. & vsv.. & eta & rho
- use tomography_par
+ use inverse_problem_par
implicit none
integer :: ival,ier
diff --git a/src/tomography/read_parameters_tomo.f90 b/src/inverse_problem/subroutine07_read_parameters_invprob.f90
similarity index 97%
copy from src/tomography/read_parameters_tomo.f90
copy to src/inverse_problem/subroutine07_read_parameters_invprob.f90
index 356707d..5be1d20 100644
--- a/src/tomography/read_parameters_tomo.f90
+++ b/src/inverse_problem/subroutine07_read_parameters_invprob.f90
@@ -26,11 +26,11 @@
!=====================================================================
-subroutine read_parameters_tomo()
+subroutine read_parameters_invprob()
! reads in parameters needed (only step length for now...)
- use tomography_par
+ use inverse_problem_par
implicit none
integer :: ier
@@ -118,5 +118,5 @@ contains
end subroutine usage
-end subroutine read_parameters_tomo
+end subroutine read_parameters_invprob
diff --git a/src/tomography/save_external_bin_m_up.f90 b/src/inverse_problem/subroutine08_save_external_bin_m_up.f90
similarity index 100%
copy from src/tomography/save_external_bin_m_up.f90
copy to src/inverse_problem/subroutine08_save_external_bin_m_up.f90
diff --git a/src/tomography/write_gradients.f90 b/src/inverse_problem/subroutine09_write_gradients.f90
similarity index 98%
copy from src/tomography/write_gradients.f90
copy to src/inverse_problem/subroutine09_write_gradients.f90
index b1e8302..0d24c4f 100644
--- a/src/tomography/write_gradients.f90
+++ b/src/inverse_problem/subroutine09_write_gradients.f90
@@ -30,7 +30,7 @@ subroutine write_gradients_iso()
! file output for new model
- use tomography_kernels_iso
+ use inverse_problem_kernels_iso
implicit none
character(len=MAX_STRING_LEN) :: m_file, fname
@@ -74,7 +74,7 @@ subroutine write_gradients_tiso()
! file output for new model
- use tomography_kernels_tiso
+ use inverse_problem_kernels_tiso
implicit none
character(len=MAX_STRING_LEN) :: m_file, fname
diff --git a/src/tomography/write_new_model.f90 b/src/inverse_problem/subroutine10_write_new_model.f90
similarity index 99%
copy from src/tomography/write_new_model.f90
copy to src/inverse_problem/subroutine10_write_new_model.f90
index 1e5b1fd..b52ae73 100644
--- a/src/tomography/write_new_model.f90
+++ b/src/inverse_problem/subroutine10_write_new_model.f90
@@ -30,7 +30,7 @@ subroutine write_new_model_iso()
! file output for new model
- use tomography_model_iso
+ use inverse_problem_model_iso
implicit none
real(kind=CUSTOM_REAL) :: min_vp,min_vs,max_vp,max_vs,min_rho,max_rho
@@ -103,7 +103,7 @@ subroutine write_new_model_tiso()
! file output for TI new model
- use tomography_model_tiso
+ use inverse_problem_model_tiso
implicit none
real(kind=CUSTOM_REAL) :: min_vpv,min_vph,min_vsv,min_vsh, &
max_vpv,max_vph,max_vsv,max_vsh,min_eta,max_eta, min_rho,max_rho
diff --git a/src/tomography/write_new_model_perturbations.f90 b/src/inverse_problem/subroutine11_write_new_model_perturbations.f90
similarity index 99%
copy from src/tomography/write_new_model_perturbations.f90
copy to src/inverse_problem/subroutine11_write_new_model_perturbations.f90
index b996ae5..df59240 100644
--- a/src/tomography/write_new_model_perturbations.f90
+++ b/src/inverse_problem/subroutine11_write_new_model_perturbations.f90
@@ -30,7 +30,7 @@ subroutine write_new_model_perturbations_iso()
! file output for new model perturbations
- use tomography_model_iso
+ use inverse_problem_model_iso
implicit none
real(kind=CUSTOM_REAL) :: min_vp,min_vs,max_vp,max_vs,min_rho,max_rho
@@ -111,7 +111,7 @@ subroutine write_new_model_perturbations_tiso()
! file output for TI new model perturbations
- use tomography_model_tiso
+ use inverse_problem_model_tiso
implicit none
real(kind=CUSTOM_REAL) :: min_vpv,min_vph,min_vsv,min_vsh, &
max_vpv,max_vph,max_vsv,max_vsh,min_eta,max_eta,min_rho,max_rho
More information about the CIG-COMMITS
mailing list