Table of Contents

Troubleshooting

FAQ

configuration fails:
Examine the log file ’config.log’. It contains detailed informations. In many cases, the path’s to these specific compiler commands F90, CC and MPIF90 won’t be correct if ‘./configure‘ fails.

Please make sure that you have a working installation of a Fortran compiler, a C compiler and an MPI implementation. You should be able to compile this little program code:

  program main
  include 'mpif.h'
  integer, parameter :: CUSTOM_MPI_TYPE = MPI_REAL
  integer ier
  call MPI_INIT(ier)
  call MPI_BARRIER(MPI_COMM_WORLD,ier)
  call MPI_FINALIZE(ier)
  end

compilation fails:
In case a compilation error like the following occurs, stating

  ...
  obj/meshfem3D.o: In function `MAIN__':
  meshfem3D.f90:(.text+0x14): undefined reference to `_gfortran_set_std'
  ...

make sure you’re pointing to the right ’mpif90’ wrapper command.

Normally, this message will appear when you are mixing two different Fortran compilers. That is, using e.g. gfortran to compile non-MPI files and mpif90, wrapper provided for e.g. ifort, to compile MPI-files.

fix: e.g. specify

./configure FC=gfortran MPIF90=/usr/local/openmpi-gfortran/bin/mpif90

changing PPM model routines fails:
In case you want to modify the PPM-routines in file model_ppm.f90, please consider the following points:

  1. Please check in file get_model_parameter.f90 that the entry for PPM models looks like:

      ...
      else if(MODEL_ROOT == 'PPM') then
       ! overimposed based on isotropic-prem
       CASE_3D = .true.
       CRUSTAL = .true.
       MODEL_3D_MANTLE_PERTUBATIONS = .true.
       ONE_CRUST = .true.
       THREE_D_MODEL = THREE_D_MODEL_PPM
       TRANSVERSE_ISOTROPY = .true. ! to use transverse-isotropic prem
      ...
    

    You can set TRANSVERSE_ISOTROPY to .false. in case you want to use the isotropic PREM as 1D background model.

  2. Transverse isotropy would mean different values for horizontal and vertically polarized wave speeds, i.e. different for vph and vpv, vsh and vsv, and it includes an additional parameter eta. By default, we take these wave speeds from PREM and add your model perturbations to them. For the moment, your model perturbations are added as isotropic perturbations, using the same dvp for vph and vpv, and dvs for vsh and vsv, see in meshfem3D_models.f90:

      ...
       case(THREE_D_MODEL_PPM )
         ! point profile model
         call model_PPM(r_used,theta,phi,dvs,dvp,drho)
         vpv=vpv*(1.0d0+dvp)
         vph=vph*(1.0d0+dvp)
         vsv=vsv*(1.0d0+dvs)
         vsh=vsh*(1.0d0+dvs)
         rho=rho*(1.0d0+drho)
      ...
    

    You could modify this to add different perturbations for vph and vpv, resp. vsh and vsv. This would basically mean that you add transverse isotropic perturbations. You can see how this is done with e.g. the model s362ani, following the flag THREE_D_MODEL_S362ANI on how to modify accordingly the file meshfem3D_models.f90.

    In case you want to add more specific model routines, follow the code sections starting with:

      !---
      !
      ! ADD YOUR MODEL HERE
      !
      !---
    

    to see code sections sensitive to model updates.


This documentation has been automatically generated by pandoc based on the User manual (LaTeX version) in folder doc/USER_MANUAL/ (Dec 20, 2023)