diff --git a/genmod/hh.cpp b/genmod/hh.cpp
index 65da841ab0a3e109645252df8a4b3380ba0fd08d..b729a90650b44c4a308a11b28f788351fceb847f 100644
--- a/genmod/hh.cpp
+++ b/genmod/hh.cpp
@@ -21,8 +21,8 @@
  *  generation of an elastic or viscoelastic model specified by vp, vs and rho
  * -------------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 
 void model(st_model *mod, GlobVar *gv)
 {
diff --git a/genmod/hh_3DSchach.cpp b/genmod/hh_3DSchach.cpp
index 32cbcdbc109b4e5bffc7118e887a040ef019d58f..ff7288a0b4615fb4d11da8bb1260542750e91785 100644
--- a/genmod/hh_3DSchach.cpp
+++ b/genmod/hh_3DSchach.cpp
@@ -3,8 +3,8 @@
  *   last update 02.11.02, T. Bohlen
  */
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 
 void model(st_model *mod, GlobVar *gv)
 {
diff --git a/genmod/hh_toy_ac_start.cpp b/genmod/hh_toy_ac_start.cpp
index 750d2f945bfbd4142226a93a4ed88b21cad674c6..425e149fa4221ee372dc03db3d9fb31e3286a08b 100644
--- a/genmod/hh_toy_ac_start.cpp
+++ b/genmod/hh_toy_ac_start.cpp
@@ -3,8 +3,8 @@
  *   last update 02.11.02, T. Bohlen
  */
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 
 void model(st_model *mod, GlobVar *gv)
 {
diff --git a/genmod/hh_toy_ac_true.cpp b/genmod/hh_toy_ac_true.cpp
index 3f048548651a42fc7590196080ec8058ba667783..7ba1762166853e646db2cdd323769ae0e7d8ce0c 100644
--- a/genmod/hh_toy_ac_true.cpp
+++ b/genmod/hh_toy_ac_true.cpp
@@ -3,8 +3,8 @@
  *   last update 02.11.02, T. Bohlen
  */
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 
 void model(st_model *mod, GlobVar *gv)
 {
diff --git a/genmod/hh_toy_start.cpp b/genmod/hh_toy_start.cpp
index 36a595d653075460092bb1193ed2d94c25089fde..29be6dc57455a29aab1f9182a96562629f4ff2d1 100644
--- a/genmod/hh_toy_start.cpp
+++ b/genmod/hh_toy_start.cpp
@@ -3,8 +3,8 @@
  *   last update 02.11.02, T. Bohlen
  */
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 
 void model(st_model *mod, GlobVar *gv)
 {
diff --git a/genmod/hh_toy_true.cpp b/genmod/hh_toy_true.cpp
index e246ecaf3f13d079b9315e4fc167edf15662535f..0c900c4d6fa81b61208aa9931b5696383d0fedc8 100644
--- a/genmod/hh_toy_true.cpp
+++ b/genmod/hh_toy_true.cpp
@@ -3,8 +3,8 @@
  *   last update 02.11.02, T. Bohlen
  */
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 
 void model(st_model *mod, GlobVar *gv)
 {
diff --git a/genmod/rheinstetten_elastic.cpp b/genmod/rheinstetten_elastic.cpp
index c3dcfe1dafce3f0a56be7b768f136cdf21a20087..dfc6375d976a6f9ba645368b3761d9c0c60d5826 100644
--- a/genmod/rheinstetten_elastic.cpp
+++ b/genmod/rheinstetten_elastic.cpp
@@ -4,8 +4,8 @@
 
 #include <cstdio>
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 
 void model(st_model *mod, GlobVar *gv)
 {
diff --git a/src/CPML_coeff.cpp b/src/CPML_coeff.cpp
index 1059924f31f9ee9de356641718a02e5584d547f6..5f51dbdf9c8afa89c5d6a4d9015ce616d90011a6 100644
--- a/src/CPML_coeff.cpp
+++ b/src/CPML_coeff.cpp
@@ -82,9 +82,9 @@
  * S. Butzer 2010
  */
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
 
 #include <cmath>
 
diff --git a/src/CPML_ini_elastic.cpp b/src/CPML_ini_elastic.cpp
index b224bb47c685e883a75668bce58fb326e84f8dd9..95723e2ab9252d74ab0ec081e76a12f7a615a7a7 100644
--- a/src/CPML_ini_elastic.cpp
+++ b/src/CPML_ini_elastic.cpp
@@ -21,7 +21,7 @@
  *  Definition of CPML boundary domains for each submodel
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void CPML_ini_elastic(st_boundary *nb, const GlobVar *gv)
 {
diff --git a/src/absorb.cpp b/src/absorb.cpp
index aa5d87cdde2e60f4d8def7c1259249acc37cc01e..fda56bb57c53d016a467beaee25856b4cd43738c 100644
--- a/src/absorb.cpp
+++ b/src/absorb.cpp
@@ -30,9 +30,9 @@
  *
  */
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
 
 void absorb(float ***absorb_coeff, GlobVar *gv)
 {
diff --git a/src/av_mat.cpp b/src/av_mat.cpp
index 59c6a8e83631ab5f67535b6748f395357175cddf..2220b8508a835554c18abc528ddbe7899c1b9256 100644
--- a/src/av_mat.cpp
+++ b/src/av_mat.cpp
@@ -23,7 +23,7 @@
  *   last update 05/02/07, T. Bohlen
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void av_mat(st_model *mod, st_model_av *mod_av, const GlobVar *gv)
 {
diff --git a/src/calc_res.cpp b/src/calc_res.cpp
index e0702cfef20cf2ae6be4ff220c42c782336b0db1..d27098fbdf87833e7dda34da82bc7d48f023c394 100644
--- a/src/calc_res.cpp
+++ b/src/calc_res.cpp
@@ -24,9 +24,9 @@
 #include <cstdlib>
 #include <cstring>
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
 
 void calc_res(int ishot, int shot_id, st_seismogram *section, st_seismogram *section_obs, st_signals *signals,
               int ntr_loc, const float *finv, int nf, double *L2, int res_switch, int groupnum,
diff --git a/src/catseis.cpp b/src/catseis.cpp
index 4cf39377f93d8ba07987ae5774d5d30d54f1d325..7987137eabf5418e6ec4b8e199002122ac39466e 100644
--- a/src/catseis.cpp
+++ b/src/catseis.cpp
@@ -24,8 +24,8 @@
 
 #include <cassert>
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 
 void catseis(float **data, float **fulldata, const int *recswitch, int ntr_glob, int ns, const GlobVar *gv)
 {
diff --git a/src/check_recfile.cpp b/src/check_recfile.cpp
index 892d52429f9f2ef63d4cde5eb317fb2eca60d4a6..a494bb5e69de18d8e05dede85fbfc8052f1dac9f 100644
--- a/src/check_recfile.cpp
+++ b/src/check_recfile.cpp
@@ -24,8 +24,8 @@
 #include <cassert>
 #include <cmath>
 #include <cstdbool>
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void check_recfile(const st_acquisition *acq, const GlobVar *gv)
 {
diff --git a/src/check_recpos.cpp b/src/check_recpos.cpp
index d3d0d573c0af145ae31492b50f11e66a5530502d..105b0500784b44124da8a239906d8fd6bb2104ab 100644
--- a/src/check_recpos.cpp
+++ b/src/check_recpos.cpp
@@ -31,8 +31,8 @@
 #include <cstring>
 #include <cassert>
 #include <cmath>
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void check_recpos(st_acquisition *acq, GlobVar *gv)
 {
diff --git a/src/check_srpos.cpp b/src/check_srpos.cpp
index 0d9cf4b39c1d5a03e77a91ac873d8e149ee89cfc..ce1bde36cccc095537a080e150bd0a945535b1fe 100644
--- a/src/check_srpos.cpp
+++ b/src/check_srpos.cpp
@@ -24,8 +24,8 @@
 #include <cassert>
 #include <cmath>
 #include <cstdbool>
-#include "check_srpos.h"
-#include "logging.h"
+#include "check_srpos.hpp"
+#include "logging.hpp"
 
 bool check_srpos(const st_acquisition *acq, int nrec, const GlobVar *gv)
 {
diff --git a/src/check_srpos.hpp b/src/check_srpos.hpp
index dc8e8f9a2adaee893c3e2912f9fe6f771faddee0..aa0aaca7963aa7b816f9987614fcc9a29547a204 100644
--- a/src/check_srpos.hpp
+++ b/src/check_srpos.hpp
@@ -2,8 +2,8 @@
 #define _CHECK_SRPOS_H
 
 #include <cstdbool>
-#include "fd.h"
-#include "globvar_struct.h"
+#include "fd.hpp"
+#include "globvar_struct.hpp"
 
 bool check_srpos(const st_acquisition *acq, int nrec, const GlobVar *gv);
 
diff --git a/src/checkfd_ssg.cpp b/src/checkfd_ssg.cpp
index 6da262c14a637091e32d706365b8178ecde9ae02..3043dca146ba50d298533ae603db3dea46278ab8 100644
--- a/src/checkfd_ssg.cpp
+++ b/src/checkfd_ssg.cpp
@@ -31,8 +31,8 @@
 #include <cstring>
 #include <cassert>
 #include <cmath>
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void checkfd(st_model *mod, st_acquisition *acq, GlobVar *gv)
 {
diff --git a/src/comm_ini.cpp b/src/comm_ini.cpp
index 5fb2266e33eefe9cfd10a02a89f541b473388378..51e6f1db5fedc72a19104f03414ac6754cec32b6 100644
--- a/src/comm_ini.cpp
+++ b/src/comm_ini.cpp
@@ -24,7 +24,7 @@
  *   last update 31/07/00, T. Bohlen
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void comm_ini(st_buffer *buffer, MPI_Request *req_send, MPI_Request *req_rec)
 {
diff --git a/src/comm_ini_s.cpp b/src/comm_ini_s.cpp
index bd46ad53e283bbee91cd24c560e3f4415364e55d..67a36dd7307595bf0e42dbc2a2d17f6d83d9fb0c 100644
--- a/src/comm_ini_s.cpp
+++ b/src/comm_ini_s.cpp
@@ -5,7 +5,7 @@
  *   last update 31/07/00, T. Bohlen
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void comm_ini_s(st_buffer *buffer, MPI_Request *req_send, MPI_Request *req_rec)
 {
diff --git a/src/conjugategrad.cpp b/src/conjugategrad.cpp
index 7cecb53cd127ba974a668568b60c7e8863f7cc4c..ab6d07d0824126dda6865ce316d10ca2858fcc5c 100644
--- a/src/conjugategrad.cpp
+++ b/src/conjugategrad.cpp
@@ -22,8 +22,8 @@
 * S. Butzer 2015
 * ------------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void conjugate(st_gradient *grad, st_gradient *grad_prior1, st_gradient *grad_prior2,
                float *beta, int cdf, GlobVar *gv)
diff --git a/src/constant_boundary.cpp b/src/constant_boundary.cpp
index 8f4b432e9ab9ae32af50991ec608d0bce719b11d..6095c0180f73a27b09861695c1a503d7e6b86590 100644
--- a/src/constant_boundary.cpp
+++ b/src/constant_boundary.cpp
@@ -21,7 +21,7 @@
 * S. Butzer 2015
 * ------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void constant_boundary(const st_boundary *nb, st_model *mod, const GlobVar *gv)
 {
diff --git a/src/constant_boundary_acoustic.cpp b/src/constant_boundary_acoustic.cpp
index 9794122d7bbb12c1d3db5a6403d412a659cac0a9..f8221df51c79eff5e7a2fb5d7bd9ec217b126640 100644
--- a/src/constant_boundary_acoustic.cpp
+++ b/src/constant_boundary_acoustic.cpp
@@ -21,7 +21,7 @@
 * S. Butzer 2015
 * ------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void constant_boundary_acoustic(const st_boundary *nb, st_model *mod, const GlobVar *gv)
 {
diff --git a/src/cpmodel.cpp b/src/cpmodel.cpp
index 7b8ae5da096ba325e0abafcf8a9ccbed1067fca0..30871119c7dc07dab85c7dd6fecda9da0aa0aa1c 100644
--- a/src/cpmodel.cpp
+++ b/src/cpmodel.cpp
@@ -22,7 +22,7 @@
  * S. Butzer 2013
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void cpmodel(st_model *mod, st_model *testmod, const GlobVar *gv)
 {
diff --git a/src/disc_fourier.cpp b/src/disc_fourier.cpp
index 1d44d3e353dd65bd92450f888bc03804f98a557f..d1a7c9dfdfdb30f3939f7c0422980d4970b5c197 100644
--- a/src/disc_fourier.cpp
+++ b/src/disc_fourier.cpp
@@ -23,7 +23,7 @@
  * S. Butezr 2013
  * --------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void discfourier(const st_boundary *nb, int nt, st_velocity *vel,
                  st_freq_velocity *fourier_vel, const float *finv,
diff --git a/src/exchange_Fv.cpp b/src/exchange_Fv.cpp
index 48f90c9a9b1e83313181b7705e7d9f7f187d6c65..9664ef8be9e45a54deeacb698b11da5e3f712ef5 100644
--- a/src/exchange_Fv.cpp
+++ b/src/exchange_Fv.cpp
@@ -22,7 +22,7 @@
  * when using the standard staggered grid
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 double exchange_Fv(float ****vx, float ****vy, float ****vz, int nf, st_buffer_flat *buffer, GlobVar *gv)
 {
diff --git a/src/exchange_par.cpp b/src/exchange_par.cpp
index d41c0e17c8234067c168a1677f5e4ab41b50985e..c31323081840306e14c6c78f08e5f581b13b5f40 100644
--- a/src/exchange_par.cpp
+++ b/src/exchange_par.cpp
@@ -21,8 +21,8 @@
  * Exchange FD-parameters between PEs
  * --------------------------------------------------------------------- */
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 
 #define NINT 69
 #define NFLT 70
diff --git a/src/exchange_s.cpp b/src/exchange_s.cpp
index 4bd5078214989f08c67e8472cc8a76437a8d1d0c..73040bb8dcb8ccac8f97f232b58630c39c35fd53 100644
--- a/src/exchange_s.cpp
+++ b/src/exchange_s.cpp
@@ -22,8 +22,8 @@
 * when using the standard staggered grid
 * ----------------------------------------------------------------------*/
 
-#include "exchange_buffer.h"
-#include "fd.h"
+#include "exchange_buffer.hpp"
+#include "fd.hpp"
 
 #ifdef MPI_SENDRECV_REPLACE
 double exchange_s(st_stress *stress, st_buffer_flat *buffer, GlobVar *gv)
diff --git a/src/exchange_s_acoustic.cpp b/src/exchange_s_acoustic.cpp
index 5f13c7005cb9b1f5bb1eb75365166ac93801da4d..42c2366c5c9d90bf9c3caa3c9aae364d7c70babf 100644
--- a/src/exchange_s_acoustic.cpp
+++ b/src/exchange_s_acoustic.cpp
@@ -22,8 +22,8 @@
 * when using the standard staggered grid
 * ----------------------------------------------------------------------*/
 
-#include "exchange_buffer.h"
-#include "fd.h"
+#include "exchange_buffer.hpp"
+#include "fd.hpp"
 
 #ifdef MPI_SENDRECV_REPLACE
 double exchange_s_acoustic(st_stress *stress, st_buffer_flat *buffer, GlobVar *gv)
diff --git a/src/exchange_v.cpp b/src/exchange_v.cpp
index fb617bc698c4d5f771c703dd1e7e5d3fd64566db..1c3e43a0831093ee00477c6403b1d8a0771faf11 100644
--- a/src/exchange_v.cpp
+++ b/src/exchange_v.cpp
@@ -5,8 +5,8 @@
 * when using the standard staggered grid
 * ----------------------------------------------------------------------*/
 
-#include "exchange_buffer.h"
-#include "fd.h"
+#include "exchange_buffer.hpp"
+#include "fd.hpp"
 
 #ifdef MPI_SENDRECV_REPLACE
 double exchange_v(st_velocity *vel, st_buffer_flat *buffer, GlobVar *gv)
diff --git a/src/fd.hpp b/src/fd.hpp
index 9481b5feeaeff098e2e52a13bebfd58d52217ab1..25e7e86b4ec019f9f15ec11766670b54eef2ada4 100644
--- a/src/fd.hpp
+++ b/src/fd.hpp
@@ -33,8 +33,8 @@
 #include <ctime>
 #include <mpi.h>
 
-#include "globvar_struct.h"
-#include "macros.h"
+#include "globvar_struct.hpp"
+#include "macros.hpp"
 #include "kiss_fftr.h"
 
 typedef struct Model {
diff --git a/src/filt_seis.cpp b/src/filt_seis.cpp
index 85143b8cd03309770db0d9d636750577ff90afc9..6d9fb689630096c37bebba3518515976fa4120f8 100644
--- a/src/filt_seis.cpp
+++ b/src/filt_seis.cpp
@@ -23,8 +23,8 @@
  * last update 2011, L. Rehor
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 extern "C" {
 #include "cseife.h"
 }
diff --git a/src/freemem.cpp b/src/freemem.cpp
index 13d46600a3726b77eb4b5c136d60d7cc3961deb8..b28f9e9816c1330c4bf28d88e10dd39998bdc386 100644
--- a/src/freemem.cpp
+++ b/src/freemem.cpp
@@ -21,8 +21,8 @@
 * Deallocation of memory
 *  -----------------------------------------------*/
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 
 void freemem(int nsrc_loc, st_acquisition *acq, st_model *mod, st_model *testmod,
              st_model_av *mod_av, st_visc_mem *visco_mem, st_pml_coeff *pml_coeff, st_pml_wfd *pml_wfd,
diff --git a/src/freemem_seis.cpp b/src/freemem_seis.cpp
index 5bf69a55cc4b312ae004f3d17d5d6c5d874f9cc5..d774b7c66a130d5c19b0616e08448a834019438d 100644
--- a/src/freemem_seis.cpp
+++ b/src/freemem_seis.cpp
@@ -21,8 +21,8 @@
 * Deallocation of memory
 *  -----------------------------------------------*/
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 #include <cassert>
 
 void freemem_seis(int ntr_loc, st_seismogram *section, st_seismogram *section_obs, st_signals *signals,
diff --git a/src/fsource.cpp b/src/fsource.cpp
index 08b3ae9b39d87c9f07fe6a338a870df3a74346d8..cfbfda54b3a424ed3d81c05f7c53b232db53c9ad 100644
--- a/src/fsource.cpp
+++ b/src/fsource.cpp
@@ -21,7 +21,7 @@
  *   updating velocity values when applying a force source
  *------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void fsource(int nt, st_velocity *vel, st_model_av *mod_av, float **srcpos_loc,
              st_signals *signals, int nsrc, int back, const GlobVar *gv)
diff --git a/src/globvar_struct.hpp b/src/globvar_struct.hpp
index 30488561e515311a5f201f8e60baaf1f125289f2..856fb230d0ab23a6ba94a784fcdb604ccca5f27c 100644
--- a/src/globvar_struct.hpp
+++ b/src/globvar_struct.hpp
@@ -26,7 +26,7 @@
 #ifndef GLOBVAR_STRUCT_H_INCLUDED
 #define GLOBVAR_STRUCT_H_INCLUDED
 
-#include "macros.h"
+#include "macros.hpp"
 #include <mpi.h>
 
 typedef struct {
diff --git a/src/gradient_F.cpp b/src/gradient_F.cpp
index 3639e65115c024e2034943734c3016161e4eb0d3..1bc81d03f56d306faea28cd642f429f72ad458b9 100644
--- a/src/gradient_F.cpp
+++ b/src/gradient_F.cpp
@@ -24,7 +24,7 @@
  * S. Butzer 2013
  * --------------------------------------------------------------------------- */
 
-#include "fd.h"
+#include "fd.hpp"
 
 void gradient_F(int nx, int ny, int nz, st_freq_velocity *fw, st_freq_velocity *back, st_gradient *grad,
                 st_hessian *hessian,
diff --git a/src/gradient_F_acoustic.cpp b/src/gradient_F_acoustic.cpp
index cc50efd85d34647a39643923afeaeb11254d8854..3c44f1b10eee5277eabdf5a8b5a81bf0afbf2b66 100644
--- a/src/gradient_F_acoustic.cpp
+++ b/src/gradient_F_acoustic.cpp
@@ -24,7 +24,7 @@
  * S. Butzer 2013
  * --------------------------------------------------------------------------- */
 
-#include "fd.h"
+#include "fd.hpp"
 
 void gradient_F_acoustic(int nx, int ny, int nz, st_freq_velocity *fw, st_freq_velocity *back, st_gradient *grad,
                          st_hessian *hessian,
diff --git a/src/gradient_smoothing.cpp b/src/gradient_smoothing.cpp
index 41513be3623e885bec0a56697b4306eff01904fa..a2f891679110238920c907f67203eb38405e9b98 100644
--- a/src/gradient_smoothing.cpp
+++ b/src/gradient_smoothing.cpp
@@ -21,9 +21,9 @@
  * Gaussian Smoothing application of the Gradient
  * --------------------------------------------------------------------------- */
 
-#include "fd.h"
-#include "logging.h"
-#include "util.h"
+#include "fd.hpp"
+#include "logging.hpp"
+#include "util.hpp"
 
 void gradient_smoothing(st_gradient *grad, const GlobVar *gv)
 {
diff --git a/src/hess_apply.cpp b/src/hess_apply.cpp
index 7f16681cfcce5eb127a67c17bcb4923e60a8c726..9bf00b07a88b4f67a8137f0226598280383a7dea 100644
--- a/src/hess_apply.cpp
+++ b/src/hess_apply.cpp
@@ -22,8 +22,8 @@
  * S. Butzer 2013
  * -------------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void hess_apply(const st_boundary *nb, st_gradient *grad, st_hessian *hessian, const GlobVar *gv)
 {
diff --git a/src/ifos3d.cpp b/src/ifos3d.cpp
index a5eb2fcea5a0c23ce4c4c64badd5b69caefb20da..06a2544c2975f417574a9eaaa9731b82e7f9b1f4 100644
--- a/src/ifos3d.cpp
+++ b/src/ifos3d.cpp
@@ -24,12 +24,12 @@
 #include <cstdio>
 #include <cstdbool>
 #include <unistd.h>
-#include "fd.h"
-#include "globvar_struct.h"
-#include "logging.h"
-#include "util.h"
-#include "check_srpos.h"
-#include "seismo_shift.h"
+#include "fd.hpp"
+#include "globvar_struct.hpp"
+#include "logging.hpp"
+#include "util.hpp"
+#include "check_srpos.hpp"
+#include "seismo_shift.hpp"
 #include <cassert>
 
 int main(int argc, char **argv)
diff --git a/src/initmem.cpp b/src/initmem.cpp
index c10a703713755dec398548b3654aae1f7ba5c67d..af01298f68609cdf00bc2cf8d393eeddd86b721c 100644
--- a/src/initmem.cpp
+++ b/src/initmem.cpp
@@ -21,9 +21,9 @@
  * Initialize memory
  *-----------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
-#include "util.h"
+#include "fd.hpp"
+#include "logging.hpp"
+#include "util.hpp"
 
 int initmem(st_model *mod, st_model *testmod,
             st_model_av *mod_av, st_visc_mem *visco_mem, st_pml_coeff *pml_coeff,
diff --git a/src/initproc.cpp b/src/initproc.cpp
index 96eed35fd27f31d9d9587f18e7701225665fe3d6..fb5fe935b9c03c5efe274ec602b860cbe0869857 100644
--- a/src/initproc.cpp
+++ b/src/initproc.cpp
@@ -23,8 +23,8 @@
  *  ----------------------------------------------------------------------------*/
 
 #include <unistd.h>
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void initproc(GlobVar *gv)
 {
diff --git a/src/initseis.cpp b/src/initseis.cpp
index fc39a7e5f8f437624bf1dcd9420c837116000249..3a52a87bc5e8e179905d0c7e93bd5e329d2273ee 100644
--- a/src/initseis.cpp
+++ b/src/initseis.cpp
@@ -21,9 +21,9 @@
  * Initialize memory
  *-----------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
-#include "util.h"
+#include "fd.hpp"
+#include "logging.hpp"
+#include "util.hpp"
 
 void initseis(int *ntr_loc, st_seismogram *section, st_seismogram *section_obs, st_signals *signals, GlobVar *gv)
 {
diff --git a/src/interpol.cpp b/src/interpol.cpp
index 2287e4ecc12a936dff4af362421baa63d14da225..9fe48ed0a770013684341f1d3bfba50d632ca8a8 100644
--- a/src/interpol.cpp
+++ b/src/interpol.cpp
@@ -30,7 +30,7 @@
 #include <cassert>
 #include <cstdlib>
 
-#include "interpol.h"
+#include "interpol.hpp"
 
 #define NTABLE 513
 #define LTABLE 8
diff --git a/src/json_parser.cpp b/src/json_parser.cpp
index a4cedb66dec6b9f7075a0ba4ca1beb7e600da541..d2fc19b3d186bddadc3e30e6c2368e935154b037 100644
--- a/src/json_parser.cpp
+++ b/src/json_parser.cpp
@@ -23,9 +23,9 @@
  * the json standard also see www.json.org
  *------------------------------------------------------------- */
 
-#include "fd.h"
-#include "logging.h"
-#include "macros.h"
+#include "fd.hpp"
+#include "logging.hpp"
+#include "macros.hpp"
 
 int read_objects_from_intputfile(const char *input_file, char **varname_list, char **value_list)
 {
diff --git a/src/lbfgs.cpp b/src/lbfgs.cpp
index 5da18fe12868ccdec74ecba7f3695ed87211e909..1839199b95fb8d4da3ee454cbd5cae726bbc1307 100644
--- a/src/lbfgs.cpp
+++ b/src/lbfgs.cpp
@@ -22,9 +22,9 @@
  * S. Butzer 2014
  * --------------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
 
 void lbfgs(st_gradient *grad, int iteration, GlobVar *gv)
 {
diff --git a/src/lbfgs_save.cpp b/src/lbfgs_save.cpp
index 655db7d70f080867204356a9b9f51c9b86074932..9eab4c2a89fe4d3a9cd3a62c591c6c413a0ae0d5 100644
--- a/src/lbfgs_save.cpp
+++ b/src/lbfgs_save.cpp
@@ -21,7 +21,7 @@
  * saves gradient for L_BFGS calculation; only first iteration, later saved in lbfgs.c
  * --------------------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 void lbfgs_savegrad(st_gradient *grad, const GlobVar *gv)
 {
     int d = 0;
diff --git a/src/logging.cpp b/src/logging.cpp
index bfd2f51d8f61f44a8a1bbf5c21c71d6d6c37b993..99e0a8fba35acda04ecd5363e367306b49847ba2 100644
--- a/src/logging.cpp
+++ b/src/logging.cpp
@@ -1,5 +1,5 @@
-#include "logging.h"
-#include "macros.h"
+#include "logging.hpp"
+#include "macros.hpp"
 
 #include <cstdbool>
 #include <unistd.h>
diff --git a/src/matcopy.cpp b/src/matcopy.cpp
index dfde82256ed24d7b76bbd1f406baa6f828ed8b31..e5f9434ed870937a62a10870895175ab52a793be 100644
--- a/src/matcopy.cpp
+++ b/src/matcopy.cpp
@@ -26,8 +26,8 @@
  *
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 
 void matcopy(st_model *mod, GlobVar *gv)
 {
diff --git a/src/matcopy_acoustic.cpp b/src/matcopy_acoustic.cpp
index 83aa674eeb55dd509a738755e33c9642084fc54b..8ccc40d639ad7795dfc2dad2a79741b88d3d4086 100644
--- a/src/matcopy_acoustic.cpp
+++ b/src/matcopy_acoustic.cpp
@@ -26,8 +26,8 @@
  *
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "util.h"
+#include "fd.hpp"
+#include "util.hpp"
 
 void matcopy_acoustic(st_model *mod, GlobVar *gv)
 {
diff --git a/src/merge.cpp b/src/merge.cpp
index 0343500558bcc1d3b39483d297b02017e90c8157..80245735e04a501b034d2c04648dfc86d616b29d 100644
--- a/src/merge.cpp
+++ b/src/merge.cpp
@@ -23,8 +23,8 @@
  *  ----------------------------------------------------------------------*/
 
 #include <cstdlib>
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void merge(int nsnap, int type, const GlobVar *gv)
 {
diff --git a/src/mergemod.cpp b/src/mergemod.cpp
index 0e6c57d6aeb44157f9e7f983ca43938c9d09e183..0857fcec6eca9829b025e90efb6a151a9086979f 100644
--- a/src/mergemod.cpp
+++ b/src/mergemod.cpp
@@ -23,8 +23,8 @@
  *----------------------------------------------------------------------*/
 
 #include <cstdlib>
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void mergemod(const char *modfile, int format, GlobVar *gv)
 {
diff --git a/src/model2_5D.cpp b/src/model2_5D.cpp
index 8caead3c019533c0f5c3b3706c72a95d2cd6e673..68dfb57d7e827b5ded1b0aa56703180dfa0b41c8 100644
--- a/src/model2_5D.cpp
+++ b/src/model2_5D.cpp
@@ -23,7 +23,7 @@
 * S. Butzer 2013
 * ------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void model2_5(st_model *mod)
 {
diff --git a/src/modelupdate.cpp b/src/modelupdate.cpp
index cf615305a552c1676ded51ff3d83a02fe067044c..0b4e867fa2c3ae74787a3b3728ed58d007671641 100644
--- a/src/modelupdate.cpp
+++ b/src/modelupdate.cpp
@@ -22,8 +22,8 @@
 * S. Butzer 2013
 * ------------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void modelupdate(st_gradient *grad, st_model *mod, float step, int it_group, GlobVar *gv)
 {
diff --git a/src/modelupdate_acoustic.cpp b/src/modelupdate_acoustic.cpp
index 9848a34c06ddca9bdeb9583083b96858efb72ff4..37108cad93fab80c2a037e03694a31acc99d6b92 100644
--- a/src/modelupdate_acoustic.cpp
+++ b/src/modelupdate_acoustic.cpp
@@ -22,8 +22,8 @@
 * S. Butzer 2013
 * ------------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void modelupdate_acoustic(st_gradient *grad, st_model *mod, float step, int it_group, GlobVar *gv)
 {
diff --git a/src/normalization.cpp b/src/normalization.cpp
index 83a5d6d2ad6958177f61f15f7581133dda7c4c17..447249d6b48cbe04bb3bd16e6fbe295a4426efb8 100644
--- a/src/normalization.cpp
+++ b/src/normalization.cpp
@@ -21,7 +21,7 @@
  * Normalization of gathers / traces
  * --------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 float normalize_trace(float **section, int i, int ns, const GlobVar *gv)
 {
diff --git a/src/outgrad.cpp b/src/outgrad.cpp
index 4443342a8ce662c07c17bd1ecbbb113c09a238b9..50108f1288f63711a9e9103a00de8ee118b48123 100644
--- a/src/outgrad.cpp
+++ b/src/outgrad.cpp
@@ -22,7 +22,7 @@
  * S. Dunkl 2013
  * -------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void outgrad(st_gradient *grad, float finv, int iteration, const char *outfile, GlobVar *gv)
 {
diff --git a/src/outhess.cpp b/src/outhess.cpp
index 816d645c7b4ef070966df78609503524c99d46b7..8bfa72c9e57858d890232cc0ab196af4d9a8a956 100644
--- a/src/outhess.cpp
+++ b/src/outhess.cpp
@@ -22,7 +22,7 @@
  * S. Dunkl 2013
  * -------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void outhess(st_hessian *hessian, float finv, int iteration, const char *outfile, GlobVar *gv)
 {
diff --git a/src/outmod.cpp b/src/outmod.cpp
index d3472171c12335df727dec0d693b19db25244ba0..4984e3d5a2b87bfcab303547fbbb8c5660ff1007 100644
--- a/src/outmod.cpp
+++ b/src/outmod.cpp
@@ -22,7 +22,7 @@
  * S. Dunkl 2013
  * -------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void outmod(const st_model *mod, int iteration, GlobVar *gv)
 {
diff --git a/src/output_source_signal.cpp b/src/output_source_signal.cpp
index cad543faa4a817716cd0b552523c671e20d6c493..c9787a23728800a0488772f485ad381641fd2567 100644
--- a/src/output_source_signal.cpp
+++ b/src/output_source_signal.cpp
@@ -25,10 +25,10 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "macros.h"
-#include "su_struct.h"
-#include "write_su.h"
-#include "logging.h"
+#include "macros.hpp"
+#include "su_struct.hpp"
+#include "write_su.hpp"
+#include "logging.hpp"
 
 void output_source_signal(FILE *fp, float **signals, int ns, int seis_form)
 {
diff --git a/src/outseis.cpp b/src/outseis.cpp
index b8b27f92b416fb3318fb762b7a2e56c01aa26050..95efc17ff5d1ea5f7cc31599b15442b81d275207 100644
--- a/src/outseis.cpp
+++ b/src/outseis.cpp
@@ -23,11 +23,11 @@
 
 #include <cstdlib>
 #include <cassert>
-#include "fd.h"
-#include "macros.h"
-#include "su_struct.h"
-#include "logging.h"
-#include "write_su.h"
+#include "fd.hpp"
+#include "macros.hpp"
+#include "su_struct.hpp"
+#include "logging.hpp"
+#include "write_su.hpp"
 
 void outseis(FILE *fpdata, int comp, float **section,
              int **recpos, int **recpos_loc, int ntr, float **srcpos, int nsrc, GlobVar *gv)
diff --git a/src/precongrad.cpp b/src/precongrad.cpp
index 9f7272f9aff2bdef0ab5cd7b227e1be0b69b00e5..db5e3fe93e14a0978fb3302ad1e86ec5f88b3b07 100644
--- a/src/precongrad.cpp
+++ b/src/precongrad.cpp
@@ -22,8 +22,8 @@
  * S. Butzer 2013
  *---------------------------------------------------------------------------- */
 
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void precon_grad(int ishot, st_gradient *grad, st_acquisition *acq, GlobVar *gv)
 {
diff --git a/src/precongrad_acoustic.cpp b/src/precongrad_acoustic.cpp
index e6eeab4fba0d75d95d6058278d08044d620a7032..2cf06bc907a871944628c0a264eed40eb051ddd4 100644
--- a/src/precongrad_acoustic.cpp
+++ b/src/precongrad_acoustic.cpp
@@ -22,8 +22,8 @@
  * S. Butzer 2013
  *---------------------------------------------------------------------------- */
 
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void precon_grad_acoustic(int ishot, st_gradient *grad, st_acquisition *acq, GlobVar *gv)
 {
diff --git a/src/psource.cpp b/src/psource.cpp
index f6493f9ee8de0576b737e9bb906bb79e3357338d..dc89c65344b86c70da0d554b0d2d0ad0e1428159 100644
--- a/src/psource.cpp
+++ b/src/psource.cpp
@@ -21,7 +21,7 @@
  * generate explosive source at source nodes
  *------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void psource(int nt, st_stress *stress, float **srcpos_loc, float **signals, int nsrc, const GlobVar *gv, int sw)
 {
diff --git a/src/read_par_json.cpp b/src/read_par_json.cpp
index 98c71a2dd17231f47287be2cbe88814d1fa5c419..13d5f708c269083f72abe9331eaaba72b5e6bf54 100644
--- a/src/read_par_json.cpp
+++ b/src/read_par_json.cpp
@@ -23,10 +23,10 @@
 #include <unistd.h>
 #include <cstdbool>
 #include <cstring>
-#include "fd.h"
-#include "logging.h"
-#include "util.h"
-#include "macros.h"
+#include "fd.hpp"
+#include "logging.hpp"
+#include "util.hpp"
+#include "macros.hpp"
 
 void read_par_json(GlobVar *gv)
 {
diff --git a/src/read_srcsig.cpp b/src/read_srcsig.cpp
index 3c5167f4bcd013f255098b449154ddb1e93b1e86..45fa3286cc9cd974253af1b6c4d0ad529e04724c 100644
--- a/src/read_srcsig.cpp
+++ b/src/read_srcsig.cpp
@@ -27,14 +27,14 @@
 #include <ctype.h>
 #include <cstdbool>
 
-#include "read_srcsig.h"
-#include "read_su.h"
-#include "macros.h"
-#include "globvar_struct.h"
-#include "logging.h"
-#include "su_struct.h"
-#include "util.h"
-#include "interpol.h"
+#include "read_srcsig.hpp"
+#include "read_su.hpp"
+#include "macros.hpp"
+#include "globvar_struct.hpp"
+#include "logging.hpp"
+#include "su_struct.hpp"
+#include "util.hpp"
+#include "interpol.hpp"
 
 float *read_srcsig(const GlobVar *gv)
 {
diff --git a/src/read_srcsig.hpp b/src/read_srcsig.hpp
index 97ada60f19cffa36a78f2de8f48547fc00671bb8..ce106c9c7fa2dc95aad1b9075e24f656615b3b1d 100644
--- a/src/read_srcsig.hpp
+++ b/src/read_srcsig.hpp
@@ -1,7 +1,7 @@
 #ifndef __READ_SRCSIG_H__
 #define __READ_SRCSIG_H__
 
-#include "globvar_struct.h"
+#include "globvar_struct.hpp"
 
 /*! Read source signature file.
  *  @param[in] gv global variable structure
diff --git a/src/read_su.cpp b/src/read_su.cpp
index 70654f79760ddc034995007a84844d4f42d05952..85deebdccdc8b427c16f0fa85cd77c186d0a2512 100644
--- a/src/read_su.cpp
+++ b/src/read_su.cpp
@@ -21,10 +21,10 @@
  *   Read data in (native-endian) SU format
  *------------------------------------------------------------------------*/
 
-#include "read_su.h"
-#include "su_gather.h"
-#include "su_struct.h"
-#include "logging.h"
+#include "read_su.hpp"
+#include "su_gather.hpp"
+#include "su_struct.hpp"
+#include "logging.hpp"
 #include <cstdlib>
 #include <cstdio>
 #include <cmath>
diff --git a/src/read_su.hpp b/src/read_su.hpp
index 7731f30e66b989ab2ba1844b5e3b4bcd8302a147..93309e4031a9a0d72fb25dad8f1cb6db3a83d5d5 100644
--- a/src/read_su.hpp
+++ b/src/read_su.hpp
@@ -1,8 +1,8 @@
 #ifndef __READ_SU_H__
 #define __READ_SU_H__
 
-#include "su_gather.h"
-#include "su_struct.h"
+#include "su_gather.hpp"
+#include "su_struct.hpp"
 #include <cstdio>
 #include <cstdbool>
 
diff --git a/src/readdsk.cpp b/src/readdsk.cpp
index f8a49cb10861103cf7ab285d2c93ba5678e39f7b..92fccb39dc89a571f9080998dede2a7c6766f376 100644
--- a/src/readdsk.cpp
+++ b/src/readdsk.cpp
@@ -21,8 +21,8 @@
  *   Read one single amplitude from file
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 /*
  * different data formats of output:
diff --git a/src/readgrad.cpp b/src/readgrad.cpp
index e16af5f4bb40735821ae90034041d558d431646d..ef9fdd083d83ae79e7937dec7b62018e9aefbd45 100644
--- a/src/readgrad.cpp
+++ b/src/readgrad.cpp
@@ -21,9 +21,9 @@
  *   Read elastic model properties (vp,vs,density) from files
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
 
 void readgrad(st_gradient *grad, st_gradient *grad_halo, float finv, int iteration, int **topo, int gtop, GlobVar *gv)
 {
diff --git a/src/readhess.cpp b/src/readhess.cpp
index bf60d00eee982d253a13665cf5d85b862606bcf8..44d603990c25bfc8af59c71a01649c9bc46ee840 100644
--- a/src/readhess.cpp
+++ b/src/readhess.cpp
@@ -21,8 +21,8 @@
  *   Read Hessian from files
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void readhess(st_hessian *hessian, float finv, int iteration, GlobVar *gv)
 {
diff --git a/src/readinv.cpp b/src/readinv.cpp
index 65fcf314553a2ac6ebdcec18727282ada76365b1..052b16346b45f9dab0d8cb28b4952dd77a5b3006 100644
--- a/src/readinv.cpp
+++ b/src/readinv.cpp
@@ -21,9 +21,9 @@
 * Read inversion parameters from workflow
 *  --------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
-#include "macros.h"
+#include "fd.hpp"
+#include "logging.hpp"
+#include "macros.hpp"
 
 void readinv(float *finv, int *nf, int *groupnum, int *itpergroup, int nfmax, GlobVar *gv)
 {
diff --git a/src/readmod.cpp b/src/readmod.cpp
index 4420a28a941766b2b8e05836263222487af58aba..6e84b1700ab9ba8bf76ef0b5a0787ff13c5f018d 100644
--- a/src/readmod.cpp
+++ b/src/readmod.cpp
@@ -21,9 +21,9 @@
  *   Read elastic model properties (vp,vs,density) from files
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
 
 void readmod(st_model *mod, GlobVar *gv)
 {
diff --git a/src/readrec.cpp b/src/readrec.cpp
index a62295464825ab564414e20d048d3b66e167f70b..8b543d3d7036cfe0d02558ccc3b95b8a666b53df 100644
--- a/src/readrec.cpp
+++ b/src/readrec.cpp
@@ -21,10 +21,10 @@
  * Find global grid positions for the receivers.
  *  -----------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
-#include "scan_suhead_rec.h"
-#include "util.h"
+#include "fd.hpp"
+#include "logging.hpp"
+#include "scan_suhead_rec.hpp"
+#include "util.hpp"
 #include <cstdbool>
 #include <cstdlib>
 
diff --git a/src/readseis.cpp b/src/readseis.cpp
index 9c3f36de9ab0eb997df1870b5c826d8f600f9794..5a7a1636cd6785afbab74aba89b9710a039b3876 100644
--- a/src/readseis.cpp
+++ b/src/readseis.cpp
@@ -26,12 +26,12 @@
 #include <cstdbool>
 #include <cassert>
 
-#include "fd.h"
-#include "macros.h"
-#include "logging.h"
-#include "read_su.h"
-#include "su_struct.h"
-#include "interpol.h"
+#include "fd.hpp"
+#include "macros.hpp"
+#include "logging.hpp"
+#include "read_su.hpp"
+#include "su_struct.hpp"
+#include "interpol.hpp"
 
 static bool b_init = false;
 static float *tout = NULL;
diff --git a/src/receiver.cpp b/src/receiver.cpp
index bbfab7312c17e9c3891b772b968bf4a188c22da7..3b37dab12d7cef64680f808915aaf8a6b6430432 100644
--- a/src/receiver.cpp
+++ b/src/receiver.cpp
@@ -23,9 +23,9 @@
 
 #include <cstdbool>
 #include <cstdlib>
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
 
 void receiver(int *ntr_loc, int ishot, int **topo, st_seismogram *section, st_seismogram *section_obs,
               st_signals *signals, st_acquisition *acq, GlobVar *gv, int rec_log)
diff --git a/src/residual.cpp b/src/residual.cpp
index 312ceb79607a5ad726a2074966efe009bf20eff2..d04e7d18c8b443c2ffeee022c7c25f53538683e9 100644
--- a/src/residual.cpp
+++ b/src/residual.cpp
@@ -22,9 +22,9 @@
  * --------------------------------------------------------------------------*/
 
 #include <cstdbool>
-#include "fd.h"
-#include "sig_integrate.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "sig_integrate.hpp"
+#include "logging.hpp"
 
 void residual(float **sectiondata, float **section, float **sectiondiff, int ntr, int ns,
               double *L2, const float *finv, int nf, const GlobVar *gv)
diff --git a/src/saveseis.cpp b/src/saveseis.cpp
index 087372063bcdf221c29150040d80050ab7ea3ebe..505623fdb9022c847278778ac88efd6ae76f4292 100644
--- a/src/saveseis.cpp
+++ b/src/saveseis.cpp
@@ -23,13 +23,13 @@
 
 #include <cstdio>
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
-#include "macros.h"
-#include "su_struct.h"
-#include "read_su.h"
-#include "write_su.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
+#include "macros.hpp"
+#include "su_struct.hpp"
+#include "read_su.hpp"
+#include "write_su.hpp"
 
 void _zero_buffer(float **buffer, int ntr, int ns)
 {
diff --git a/src/savesig.cpp b/src/savesig.cpp
index 272b47e03dcb7db7ebad474036289d6f2aa835bb..76b7742812ad342a1241256f4173f1d9b73aee42 100644
--- a/src/savesig.cpp
+++ b/src/savesig.cpp
@@ -23,13 +23,13 @@
 
 #include <cstdio>
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
-#include "macros.h"
-#include "su_struct.h"
-#include "read_su.h"
-#include "write_su.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
+#include "macros.hpp"
+#include "su_struct.hpp"
+#include "read_su.hpp"
+#include "write_su.hpp"
 
 void savesig(float **signals, st_acquisition *acq, int nsrc_loc, int ishot, int shot_id, int iter, int fswitch,
              GlobVar *gv)
diff --git a/src/scan_suhead_rec.cpp b/src/scan_suhead_rec.cpp
index cb121dcbafa83f9f60bc5bddb37ed6a43c188274..bfdc3d82af53342e4711097f7491d4474bab7264 100644
--- a/src/scan_suhead_rec.cpp
+++ b/src/scan_suhead_rec.cpp
@@ -19,11 +19,11 @@
 
 #include <cstdlib>
 
-#include "scan_suhead_rec.h"
-#include "logging.h"
-#include "util.h"
-#include "read_su.h"
-#include "globvar_struct.h"
+#include "scan_suhead_rec.hpp"
+#include "logging.hpp"
+#include "util.hpp"
+#include "read_su.hpp"
+#include "globvar_struct.hpp"
 
 void scan_suhead_rec(const char *file, st_acquisition *acq, const GlobVar *gv, int **topo, int *ntr)
 {
diff --git a/src/scan_suhead_rec.hpp b/src/scan_suhead_rec.hpp
index 6e00cf73f5d68f55a3597fcffb24e6a1017c0738..3174f0cc1fbc7db7e1dda7869c9b0743add92046 100644
--- a/src/scan_suhead_rec.hpp
+++ b/src/scan_suhead_rec.hpp
@@ -20,8 +20,8 @@
 #ifndef SCAN_SUHEAD_REC_H
 #define SCAN_SUHEAD_REC_H
 
-#include "globvar_struct.h"
-#include "fd.h"
+#include "globvar_struct.hpp"
+#include "fd.hpp"
 
 //int **scan_suhead_rec(const char *file, const GlobVar *gv, const int **topo, int *ntr);
 void scan_suhead_rec(const char *file, st_acquisition *acq, const GlobVar *gv, int **topo, int *ntr);
diff --git a/src/scan_topo.cpp b/src/scan_topo.cpp
index 696979a519ea97ce5bac02fea02df8b7cdce8de7..2aa7ca43a0e8646ea437d81fb9cae0ce7d613bb9 100644
--- a/src/scan_topo.cpp
+++ b/src/scan_topo.cpp
@@ -22,10 +22,10 @@
 * at a specific point below the topography.
 * -----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
-#include "read_su.h"
-#include "util.h"
+#include "fd.hpp"
+#include "logging.hpp"
+#include "read_su.hpp"
+#include "util.hpp"
 #include <unistd.h>
 #include <cstdbool>
 #include <cfloat>
diff --git a/src/seismo_shift.cpp b/src/seismo_shift.cpp
index 10590c426d6ba2eed5450436d3279f63a75965eb..20185b54c67bb7a781e822591abc00165e4c2e02 100644
--- a/src/seismo_shift.cpp
+++ b/src/seismo_shift.cpp
@@ -22,10 +22,10 @@
  *----------------------------------------------------------------------*/
 
 #include <cassert>
-#include "fd.h"
-#include "seismo_shift.h"
-#include "globvar_struct.h"
-#include "macros.h"
+#include "fd.hpp"
+#include "seismo_shift.hpp"
+#include "globvar_struct.hpp"
+#include "macros.hpp"
 
 void seismo_shift(st_seismogram *section,
                   int            ntr,
diff --git a/src/seismo_shift.hpp b/src/seismo_shift.hpp
index 1b1fc09c3b73def7426c2660cd334973018841c3..0f16ceb1a6b1c4b287caf8fdd7a2b2d405c411d9 100644
--- a/src/seismo_shift.hpp
+++ b/src/seismo_shift.hpp
@@ -20,8 +20,8 @@
 #ifndef SEISMO_SHIFT_H
 #define SEISMO_SHIFT_H
 
-#include "globvar_struct.h"
-#include "fd.h"
+#include "globvar_struct.hpp"
+#include "fd.hpp"
 
 void seismo_shift(st_seismogram *section,  // struct containing seismogram buffers
                   int            ntr,      // number of traces
diff --git a/src/seismo_ssg.cpp b/src/seismo_ssg.cpp
index 8c1b67b84c861c5c7cf6655ff42658b0470c1547..27c3dcf9a1104bda36ac77c557d3397393c507a3 100644
--- a/src/seismo_ssg.cpp
+++ b/src/seismo_ssg.cpp
@@ -22,7 +22,7 @@
  *   in arrays
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void seismo(int nt, int ntr, int **recpos, st_seismogram *section,
             st_velocity *vel, st_stress *stress, st_model *mod, const GlobVar *gv)
diff --git a/src/sig_integrate.cpp b/src/sig_integrate.cpp
index 31631acc4546afb646b31ea2260fe3a3e90664b9..632e026f7a615c81ee64c9706ea5ad10829e6c80 100644
--- a/src/sig_integrate.cpp
+++ b/src/sig_integrate.cpp
@@ -26,8 +26,8 @@
 #include <cassert>
 #include <cstdbool>
 
-#include "sig_integrate.h"
-#include "logging.h"
+#include "sig_integrate.hpp"
+#include "logging.hpp"
 
 void sig_integrate(float *sig,      // signal input buffer
                    float *sig_int,  // signal output buffer
diff --git a/src/snap_ssg.cpp b/src/snap_ssg.cpp
index 93cf17efda13dda4f32bbae7234284b906e060e4..edee4fcc799465be499cfb2751db25a998eaf251 100644
--- a/src/snap_ssg.cpp
+++ b/src/snap_ssg.cpp
@@ -21,8 +21,8 @@
  *   Write 3D snapshot for current timestep  to disk
  * ----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void snap(int nt, int nsnap, st_velocity *vel, st_stress *stress, const st_model *mod,
           const st_boundary *nb, GlobVar *gv)
diff --git a/src/snapmerge.cpp b/src/snapmerge.cpp
index aa98eb7e93aeac205a010589e3c939ff12755106..32673cbe9dae1cae0c60a3079252156cc71742d5 100644
--- a/src/snapmerge.cpp
+++ b/src/snapmerge.cpp
@@ -21,9 +21,9 @@
  *   loop over snapshotfiles which have to be merged.
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "globvar_struct.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "globvar_struct.hpp"
+#include "logging.hpp"
 
 int main(int argc, char **argv)
 {
diff --git a/src/sources.cpp b/src/sources.cpp
index 03c57b5c175ff2b16635447b374b010cfd97a16a..cb7258c4d3476a3ca5daf7e392388bba08bfe986 100644
--- a/src/sources.cpp
+++ b/src/sources.cpp
@@ -22,9 +22,9 @@
  * and amplitude from SOURCE_FILE.
  * ----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
-#include "macros.h"
+#include "fd.hpp"
+#include "logging.hpp"
+#include "macros.hpp"
 
 void sources(FILE *fpsrc, int *nsrc, float **srcpos, GlobVar *gv, int **topo)
 {
diff --git a/src/splitrec.cpp b/src/splitrec.cpp
index 865a4ea33ed4a227c6b5c8d52dd3196db740d1f1..a1e85ff7abddcb8381a53c3926f62b9d3e4e4e3b 100644
--- a/src/splitrec.cpp
+++ b/src/splitrec.cpp
@@ -21,9 +21,9 @@
  *  Computation of local receiver coordinates (within each subgrid)
  *--------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
 
 void splitrec(int *ntr_loc, st_acquisition *acq, const GlobVar *gv)
 {
diff --git a/src/splitsrc.cpp b/src/splitsrc.cpp
index a13c3d71c8f5c88903b67c012eb16ca68f469e7d..de3df88b3754c36dd5524a20044bdb09c10088ea 100644
--- a/src/splitsrc.cpp
+++ b/src/splitsrc.cpp
@@ -21,9 +21,9 @@
  *  Computation of local source coordinates (within each subgrid)
  *----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
 
 float **splitsrc(float **srcpos, int *nsrc_loc, int nsrc, int *srcswitch, GlobVar *gv)
 {
diff --git a/src/steplength.cpp b/src/steplength.cpp
index 122e1e856f271a4c02aa0b17a0f73ba619228790..7aca591a3d51810445adeaf2cb7ea1a83a9c9be6 100644
--- a/src/steplength.cpp
+++ b/src/steplength.cpp
@@ -25,8 +25,8 @@
 #include <cstdio>
 #include <unistd.h>
 
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void steplength(int iteration, double *misfit, float *step, int it_group, GlobVar *gv)
 {
diff --git a/src/stfi.cpp b/src/stfi.cpp
index b40958bc68fab2a7950da52ec6a9ab016ad169ca..edb3b3c6fc97fa82ef06eefc3aacf5265f36a16a 100644
--- a/src/stfi.cpp
+++ b/src/stfi.cpp
@@ -24,10 +24,10 @@
 #include <cstdlib>
 #include <cstring>
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
-#include "seismo_shift.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
+#include "seismo_shift.hpp"
 #include "kiss_fftr.h"
 
 void stfi(st_acquisition *acq, st_boundary *nb, const st_boundary *nb_fix, st_velocity *vel, st_stress *stress,
diff --git a/src/stfi_apply.cpp b/src/stfi_apply.cpp
index 5f9dad7f0616b5db3360feb95e4863614336203c..d415b8f3d2409f085dd7b2ed448158a8dc8f8f6a 100644
--- a/src/stfi_apply.cpp
+++ b/src/stfi_apply.cpp
@@ -1,11 +1,11 @@
 #include <cstdlib>
 #include <cstring>
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
 #include "kiss_fftr.h"
-#include "sig_integrate.h"
+#include "sig_integrate.hpp"
 //#include "stfi.h"
 
 void stfi_apply(int ishot, int shot_id, st_signals *signals, int nsrc_loc, float freq, int nfft_min, GlobVar *gv)
diff --git a/src/stfi_calc.cpp b/src/stfi_calc.cpp
index 51d33ae4c8b7b41989f26cfff549a7cbddba5e1a..a076e1cf54819c6766f67bf2870d651512d49b6b 100644
--- a/src/stfi_calc.cpp
+++ b/src/stfi_calc.cpp
@@ -24,9 +24,9 @@
 #include <cstdlib>
 #include <cstring>
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
 #include "kiss_fftr.h"
 
 void stfi_calc(int ishot, int shot_id, st_seismogram *section, st_seismogram *section_obs, st_signals *signals,
diff --git a/src/stfi_merge.cpp b/src/stfi_merge.cpp
index b7c022d9724869e0c6b783773e24cd54f1723d06..4b877fc75a832f60528d2f64c7aa65ce8b050d33 100644
--- a/src/stfi_merge.cpp
+++ b/src/stfi_merge.cpp
@@ -1,9 +1,9 @@
 #include <cstdlib>
 #include <cstring>
 
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
 #include "kiss_fftr.h"
 
 void stfi_merge(int ishot, int shot_id, st_signals *signals, int ncplx)
diff --git a/src/su_gather.cpp b/src/su_gather.cpp
index e196846c8a7896d496005b4a7c2ce9bc867399b6..e3edc34f4bf947c28c5ee9c8691722f97314e033 100644
--- a/src/su_gather.cpp
+++ b/src/su_gather.cpp
@@ -21,9 +21,9 @@
  *   Handle collections of SU traces as part of a SUgather
  *------------------------------------------------------------------------*/
 
-#include "su_gather.h"
-#include "logging.h"
-#include "util.h"
+#include "su_gather.hpp"
+#include "logging.hpp"
+#include "util.hpp"
 #include <cstdlib>
 
 void malloc_SUgather(SUgather *gather, size_t nt, unsigned short ns)
diff --git a/src/su_gather.hpp b/src/su_gather.hpp
index ab09a40afaf3fc78ff5068738502f4ff69cb510f..1998913b0086668a4c4bd74b86291b2a02b4272e 100644
--- a/src/su_gather.hpp
+++ b/src/su_gather.hpp
@@ -1,7 +1,7 @@
 #ifndef __SU_GATHER_H__
 #define __SU_GATHER_H__
 
-#include "su_struct.h"
+#include "su_struct.hpp"
 #include <cstdlib>
 
 typedef struct {
diff --git a/src/su_struct.cpp b/src/su_struct.cpp
index 6b32364d40a1ce1fd6602edf630e86ffce010781..94416dbe29a28393664113f57dbe48263f0ea235 100644
--- a/src/su_struct.cpp
+++ b/src/su_struct.cpp
@@ -21,7 +21,7 @@
  *   Handle SU trace header as struct
  *------------------------------------------------------------------------*/
 
-#include "su_struct.h"
+#include "su_struct.hpp"
 #include <strings.h>
 
 void init_SUhead(SUhead *header)
diff --git a/src/surface_ssg.cpp b/src/surface_ssg.cpp
index 2a082b885ea0b2aa01af6c9129eb1fd8faca635a..2837a7f5b5814c08248c2e318e96e21d13c4dae3 100644
--- a/src/surface_ssg.cpp
+++ b/src/surface_ssg.cpp
@@ -21,7 +21,7 @@
  *   stress free surface condition
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void surface(int ndepth, st_model *mod, st_pml_coeff *pml_coeff, st_pml_wfd *pml_wfd, st_visc_mem *mem,
              st_stress *stress, st_velocity *vel)
diff --git a/src/surface_ssg_acoustic.cpp b/src/surface_ssg_acoustic.cpp
index c8fac99f0f6940158e3ab5cb4b73b67432527060..9b0c978701dfce0d68104b274acd84007aef3968 100644
--- a/src/surface_ssg_acoustic.cpp
+++ b/src/surface_ssg_acoustic.cpp
@@ -21,7 +21,7 @@
  *   stress free surface condition, elastic case
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void surface_acoustic(int ndepth, st_stress *stress, const GlobVar *gv)
 {
diff --git a/src/surface_ssg_elastic.cpp b/src/surface_ssg_elastic.cpp
index 7d955732a5b82fa5a713abcc51535e7b95f0191c..b9090d22cb946c3d6bfc81108390d4af600ff996 100644
--- a/src/surface_ssg_elastic.cpp
+++ b/src/surface_ssg_elastic.cpp
@@ -21,7 +21,7 @@
  *   stress free surface condition, elastic case
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void surface_elastic(int ndepth, st_model *mod, st_pml_coeff *pml_coeff, st_pml_wfd *pml_wfd,
                      st_stress *stress, st_velocity *vel, const GlobVar *gv)
diff --git a/src/time_window.cpp b/src/time_window.cpp
index f4032eb2bd88576d3836e72e7b1eb9b14dff3273..20566d51ede977cabe75c07e941c395e78ccc223 100644
--- a/src/time_window.cpp
+++ b/src/time_window.cpp
@@ -23,9 +23,9 @@
 
 #include <cstdio>
 
-#include "fd.h"
-#include "logging.h"
-#include "util.h"
+#include "fd.hpp"
+#include "logging.hpp"
+#include "util.hpp"
 
 void time_window(float **sectiondata1, float **sectiondata2, int **recpos_loc, int ntr, int ntr_loc, int ishot,
                  int shot_id,
diff --git a/src/timeloop.cpp b/src/timeloop.cpp
index 1c1bfa8947d86d8593728c45e66ab2ac5f9840d2..d621f2b9f09f46be747a54c0808a0c55d5e5061d 100644
--- a/src/timeloop.cpp
+++ b/src/timeloop.cpp
@@ -20,8 +20,8 @@
  * time loop of finite-difference forward modelling
  *----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void timeloop(st_boundary *nb, const st_boundary *nb_fix, st_velocity *vel, st_stress *stress,
               st_model *mod, st_model_av *mod_av, st_seismogram *section,
diff --git a/src/update_s_ssg_CPML_acoustic.cpp b/src/update_s_ssg_CPML_acoustic.cpp
index 2566405414be4453274cd25263316ad58d6d6bdd..483b2cd6f5b3d267a9543cdde7d462c48ff41fce 100644
--- a/src/update_s_ssg_CPML_acoustic.cpp
+++ b/src/update_s_ssg_CPML_acoustic.cpp
@@ -25,7 +25,7 @@
  * S.Dunkl (November 2010)
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 #define UNUSED(x) (void)(x)
 
diff --git a/src/update_s_ssg_CPML_elastic.cpp b/src/update_s_ssg_CPML_elastic.cpp
index 8e1c4e6e3f2404524510d01dfd308c708e979b77..6c3c430cf0548e42e635ae5b1f988b001d1b0027 100644
--- a/src/update_s_ssg_CPML_elastic.cpp
+++ b/src/update_s_ssg_CPML_elastic.cpp
@@ -25,7 +25,7 @@
  * S.Dunkl (November 2010)
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 #define UNUSED(x) (void)(x)
 
diff --git a/src/update_s_ssg_acoustic.cpp b/src/update_s_ssg_acoustic.cpp
index f29466729feeb3f95333408cccc7063ebb00e9f7..b7528d01a4e58d591f6b3e8fdaa869a382dd3499 100644
--- a/src/update_s_ssg_acoustic.cpp
+++ b/src/update_s_ssg_acoustic.cpp
@@ -23,7 +23,7 @@
  *   elastic version
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 #define UNUSED(x) (void)(x)
 
diff --git a/src/update_s_ssg_elastic.cpp b/src/update_s_ssg_elastic.cpp
index 64b60de0df52e084c9b13c19da79d1328d6f1e01..0728b8d427b7e10c326e395a7b29c3910db5f103 100644
--- a/src/update_s_ssg_elastic.cpp
+++ b/src/update_s_ssg_elastic.cpp
@@ -23,8 +23,8 @@
  *   elastic version
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "loop_blocking.h"
+#include "fd.hpp"
+#include "loop_blocking.hpp"
 
 #define UNUSED(x) (void)(x)
 
diff --git a/src/update_v_ssg.cpp b/src/update_v_ssg.cpp
index 6522fc9a466b9d1c4ae55e76db4171643837f989..11fc65b0b4a1af5733c10c05046daac0d4159539 100644
--- a/src/update_v_ssg.cpp
+++ b/src/update_v_ssg.cpp
@@ -22,8 +22,8 @@
  *   of nth order accuracy in space and second order accuracy in time
  *------------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "loop_blocking.h"
+#include "fd.hpp"
+#include "loop_blocking.hpp"
 
 void update_v(const st_boundary *nb, st_velocity *__restrict__ vel, st_stress *__restrict__ stress, st_model_av *mod_av,
               float ***absorb_coeff, const GlobVar *gv)
diff --git a/src/update_v_ssg_CPML.cpp b/src/update_v_ssg_CPML.cpp
index bf9a318fa860ebabe31ab6946bf9c122b4d5005b..77449dc6618dfae25864eccd7cf3e3591159a3be 100644
--- a/src/update_v_ssg_CPML.cpp
+++ b/src/update_v_ssg_CPML.cpp
@@ -26,7 +26,7 @@
 * S. Dunkl (November 2010)
 *----------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 #define UNUSED(x) (void)(x)
 
diff --git a/src/update_v_ssg_CPML_acoustic.cpp b/src/update_v_ssg_CPML_acoustic.cpp
index 8c9b4a3d20e5134e2b2235d16a9ef5949c379c29..3947d20bcc0c6d578197de54bd5daede589ce87c 100644
--- a/src/update_v_ssg_CPML_acoustic.cpp
+++ b/src/update_v_ssg_CPML_acoustic.cpp
@@ -26,7 +26,7 @@
 * S. Dunkl (November 2010)
 *----------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 #define UNUSED(x) (void)(x)
 
diff --git a/src/update_v_ssg_acoustic.cpp b/src/update_v_ssg_acoustic.cpp
index e969336aa4f48523bfad35848259e97ff2d01a70..03dbe733e5c097764ae12d021ccf50f2afefa577 100644
--- a/src/update_v_ssg_acoustic.cpp
+++ b/src/update_v_ssg_acoustic.cpp
@@ -22,7 +22,7 @@
  *   of nth order accuracy in space and second order accuracy in time
  *------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void update_v_acoustic(const st_boundary *nb, st_velocity *__restrict__ vel, st_stress *__restrict__ stress,
                        st_model_av *mod_av, float ***absorb_coeff, const GlobVar *gv)
diff --git a/src/util.cpp b/src/util.cpp
index 6d6e7b01ed63c7ce4d56d02a59779d87851c362d..c67bc9f6650f10b921c14c996908012202a54690 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -25,8 +25,8 @@
 #define NR_END 1
 #define FREE_ARG char *
 
-#include "util.h"
-#include "logging.h"
+#include "util.hpp"
+#include "logging.hpp"
 #include <cmath>
 #include <cstdlib>
 
diff --git a/src/wavelet.cpp b/src/wavelet.cpp
index 6762fb502eb008dae0949af4e7cf23bbb0392aa8..ad1bba5fefd9c031c0742f5250cbbbb61bf7a971 100644
--- a/src/wavelet.cpp
+++ b/src/wavelet.cpp
@@ -25,11 +25,11 @@
 
 #include <cmath>
 #include <cstdbool>
-#include "fd.h"
-#include "util.h"
-#include "logging.h"
-#include "read_srcsig.h"
-#include "sig_integrate.h"
+#include "fd.hpp"
+#include "util.hpp"
+#include "logging.hpp"
+#include "read_srcsig.hpp"
+#include "sig_integrate.hpp"
 
 void wavelet(float **srcpos_loc, int nsrc, int sourceshape, float **signals, float **sig_raw, float freq,
              const GlobVar *gv)
diff --git a/src/write_su.cpp b/src/write_su.cpp
index 26c287369eea9b6a9762a174702c7b37147c9dae..c71608523207fa0cc4d277bcdcbe0f6b66326fe1 100644
--- a/src/write_su.cpp
+++ b/src/write_su.cpp
@@ -21,10 +21,10 @@
  *   Write data in (native-endian) SU format
  *------------------------------------------------------------------------*/
 
-#include "write_su.h"
-#include "su_gather.h"
-#include "su_struct.h"
-#include "logging.h"
+#include "write_su.hpp"
+#include "su_gather.hpp"
+#include "su_struct.hpp"
+#include "logging.hpp"
 #include <cstdlib>
 
 int su_write_trace(FILE *filep, const SUhead *header, const float *data)
diff --git a/src/write_su.hpp b/src/write_su.hpp
index 3b81e0e8fc594d27cd5ee77918aa3f4cb9c80030..565934172ce7a4c687ba52096ac5ef825fa34674 100644
--- a/src/write_su.hpp
+++ b/src/write_su.hpp
@@ -1,8 +1,8 @@
 #ifndef __WRITE_SU_H__
 #define __WRITE_SU_H__
 
-#include "su_gather.h"
-#include "su_struct.h"
+#include "su_gather.hpp"
+#include "su_struct.hpp"
 #include <cstdio>
 #include <cstdbool>
 
diff --git a/src/writedsk.cpp b/src/writedsk.cpp
index 573c5c65b4b5b108c89fe7c43450a1ec8d3a7989..893f1a10950da35858b48b2babbc4f5fe8f86638 100644
--- a/src/writedsk.cpp
+++ b/src/writedsk.cpp
@@ -21,8 +21,8 @@
  *   Write one single amplitude on disk
  *  ----------------------------------------------------------------------*/
 
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 /*
  * different data formats of output:
diff --git a/src/writepar.cpp b/src/writepar.cpp
index a30328fa59cd4b056bf4d1d8c29ef9bb0b8840c8..db29992f622a9ee8ac6113b7ae619adef42dd49f 100644
--- a/src/writepar.cpp
+++ b/src/writepar.cpp
@@ -22,8 +22,8 @@
  *------------------------------------------------------------------------*/
 
 #include <climits>
-#include "fd.h"
-#include "logging.h"
+#include "fd.hpp"
+#include "logging.hpp"
 
 void writepar(GlobVar *gv)
 {
diff --git a/src/zero_grad.cpp b/src/zero_grad.cpp
index 6e3dba2f56f8aa32b30f64ff25e00d4ae18140b5..4e66eff6259567a13f93dff888e175db2a9ec6e0 100644
--- a/src/zero_grad.cpp
+++ b/src/zero_grad.cpp
@@ -21,7 +21,7 @@
  * Initialise gradient with zero
  * -------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void zero_grad(st_gradient *grad, const GlobVar *gv)
 {
diff --git a/src/zero_hess.cpp b/src/zero_hess.cpp
index 7211ada6b128f885489100781c4f7e2eb7826089..2b85e28770b5c4f173c04776c7679688242b915c 100644
--- a/src/zero_hess.cpp
+++ b/src/zero_hess.cpp
@@ -21,7 +21,7 @@
  * Initialise hessian with zero
  * -------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void zero_hess(st_hessian *hessian, const GlobVar *gv)
 {
diff --git a/src/zero_invers.cpp b/src/zero_invers.cpp
index db79e341e0521c1f4c5c621242d7a329fdea7393..ee1aaa0925b1043cb529665f038cbf7e021d8dc3 100644
--- a/src/zero_invers.cpp
+++ b/src/zero_invers.cpp
@@ -21,7 +21,7 @@
  * Initialise wavefield (frequency domain) with zero
  * -------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 
 void zero_invers(st_freq_velocity *fourier_vel_fw, st_freq_velocity *fourier_vel_back,
                  int nfmax, const GlobVar *gv)
diff --git a/src/zero_wavefield.cpp b/src/zero_wavefield.cpp
index db3cdaf32537f92ea9bb3f0aa94b45d930a271cf..ae3c689ec8dcfc11fdcb8ed7ca79d0bed5bcbf59 100644
--- a/src/zero_wavefield.cpp
+++ b/src/zero_wavefield.cpp
@@ -21,7 +21,7 @@
  * Initialise wavefield with zero
  * -------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 void zero_wavefield(st_velocity *vel, st_stress *stress, st_visc_mem *mem, st_pml_wfd *pml_wfd, const GlobVar *gv)
 {
     int l = 1;
diff --git a/src/zero_wavefield_acoustic.cpp b/src/zero_wavefield_acoustic.cpp
index d9bb49066e96fcb57f4c728a4007c00b5cdb7acc..60a0729fe33e2cdaa5e71c409a62f5e680103b46 100644
--- a/src/zero_wavefield_acoustic.cpp
+++ b/src/zero_wavefield_acoustic.cpp
@@ -21,7 +21,7 @@
  * Initialise wavefield with zero
  * -------------------------------------------------------------------------*/
 
-#include "fd.h"
+#include "fd.hpp"
 void zero_wavefield_acoustic(st_velocity *vel, st_stress *stress, st_visc_mem *mem,
                              st_pml_wfd *pml_wfd, const GlobVar *gv)
 {