-
Notifications
You must be signed in to change notification settings - Fork 98
/
Copy pathF_troubleshooting.tex
127 lines (100 loc) · 3.55 KB
/
F_troubleshooting.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
\chapter{Troubleshooting}\label{cha:Troubleshooting}
\section*{FAQ}
\begin{description}
\item [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.\newline
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:\newline
{\footnotesize
\begin{verbatim}
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
\end{verbatim}
}
\item [compilation fails:]
In case a compilation error like the following occurs, stating
{\footnotesize
\begin{verbatim}
...
obj/meshfem3D.o: In function `MAIN__':
meshfem3D.f90:(.text+0x14): undefined reference to `_gfortran_set_std'
...
\end{verbatim}
}
\noindent
make sure you're pointing to the right 'mpif90' wrapper command.\newline
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.\newline
fix: e.g. specify
\begin{verbatim}
./configure FC=gfortran MPIF90=/usr/local/openmpi-gfortran/bin/mpif90
\end{verbatim}
\item [changing PPM model routines fails:]
In case you want to modify the PPM-routines in file \texttt{model\_ppm.f90}, please consider the following points:
\begin{enumerate}
\item Please check in file \texttt{get\_model\_parameter.f90} that the entry for PPM models looks like:
{\footnotesize
\begin{verbatim}
...
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
...
\end{verbatim}
}
\noindent
You can set \texttt{TRANSVERSE\_ISOTROPY} to \texttt{.false.} in case you want to use the isotropic PREM
as 1D background model.\newline
\item 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 \texttt{meshfem3D\_models.f90}:
{\footnotesize
\begin{verbatim}
...
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)
...
\end{verbatim}
}
\noindent
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 \texttt{s362ani},
following the flag \texttt{THREE\_D\_MODEL\_S362ANI} on how to modify accordingly the file \texttt{meshfem3D\_models.f90}.\newline
In case you want to add more specific model routines, follow the code sections starting with:
{\footnotesize
\begin{verbatim}
!---
!
! ADD YOUR MODEL HERE
!
!---
\end{verbatim}
}
\noindent
to see code sections sensitive to model updates.
\end{enumerate}
\end{description}