SPEED
MAKE_MECH_PROP_CASE_029.f90
Go to the documentation of this file.
1! Copyright (C) 2012 The SPEED FOUNDATION
2! Author: Ilario Mazzieri
3!
4! This file is part of SPEED.
5!
6! SPEED is free software; you can redistribute it and/or modify it
7! under the terms of the GNU Affero General Public License as
8! published by the Free Software Foundation, either version 3 of the
9! License, or (at your option) any later version.
10!
11! SPEED is distributed in the hope that it will be useful, but
12! WITHOUT ANY WARRANTY; without even the implied warranty of
13! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14! Affero General Public License for more details.
15!
16! You should have received a copy of the GNU Affero General Public License
17! along with SPEED. If not, see <http://www.gnu.org/licenses/>.
18
19
21
22
23 subroutine make_mech_prop_case_029(rho, lambda, mu, gamma, qs, qp, & !outputs
24 xs, ys, zs, Depth, zs_all,&
25 vs30, thickness, sub_tag_all)
26
27 real*8, intent(out) :: rho, lambda, mu, gamma, qs, qp
28 real*8, intent(in) :: xs, ys, zs, depth, zs_all,&
29 vs30, thickness
30 integer*4 :: sub_tag_all
31 real*8 :: ni, vs, vp, depth_real
32 real*8 :: vsini, vsfin, zini, zfin, rini, rfin
33
34
35 rho = 0.d0;
36 lambda = 0.d0;
37 mu = 0.d0;
38 gamma = 0.d0;
39 qs = 0.d0;
40 qp = 0.d0
41
42
43 if (vs30 .le. 300.0d0) then
44 vp30 = 1800
45 else
46 vp30 = 2000
47 endif
48
49
50 if ((depth.ge.0.0d0).and.(zs_all.ge.0.0d0)) then
51 ! + MATERIAL INSIDE THE BASIN
52
53 vs = vs30 + (2000.0d0-vs30)*(depth/1000.0d0)**(0.70d0)
54 vp = vp30 + (4500.0d0-vp30)*(depth/1000.0d0)**(0.70d0)
55 rho = 2000.d0 + 0.40d0*depth
56
57
58 if (depth .le. 50.0d0) then
59 qs = 20
60 elseif (depth .le. 200.0d0) then
61 qs = 50
62 elseif (depth .le. 500.0d0) then
63 qs = 100
64 else
65 qs = 150
66 endif
67
68 lambda = rho * (vp**2 - 2*vs**2)
69 mu = rho * vs**2
70 gamma = (3.1415*(2/3))/qs ! max freq of 2 Hz
71
72 else
73 ! + MATERIAL INSIDE THE BEDROCK
74
75 ! generic bedrock outcrop with Vs30 = 1500 m/s - from Cotton et al. 2006
76 if (depth .le. 1) then
77 vs = 1144
78 elseif(depth .le. 30) then
79 vsini = 1144
80 vsfin = 1696
81 zini = 1
82 zfin = 30
83 vs = vsini + (vsfin-vsini)*((depth-zini)/(zfin-zini))**0.50 !VS: S velocity in m/s
84 elseif(depth .le. 190) then
85 vsini = 1696
86 vsfin = 2381
87 zini = 30
88 zfin = 190
89 vs = vsini + (vsfin-vsini)*((depth-zini)/(zfin-zini))**0.50 !VS: S velocity in m/s
90 elseif(depth .le. 4000) then
91 vsini = 2381
92 vsfin = 3454
93 zini = 190
94 zfin = 4000
95 vs = vsini + (vsfin-vsini)*((depth-zini)/(zfin-zini))**0.50 !VS: S velocity in m/s
96 else
97 vs = 3440
98 endif
99
100 vp = 2.25*vs !VP: P velocity in m/s - (Poisson = 0.3 approx)
101
102
103 if (depth .le. 100) then
104 rini = 2200;
105 rfin = 2400;
106 zini = 0;
107 zfin = 100;
108 rho = rini + (rfin-rini)*((depth-zini)/(zfin-zini))**0.50 !RHO: MASS DENSITY in kg/m^3
109 elseif(depth .le. 1000) then
110 rini = 2400;
111 rfin = 2700;
112 zini = 100;
113 zfin = 1000;
114 rho = rini + (rfin-rini)*((depth-zini)/(zfin-zini))**0.50 !RHO: MASS DENSITY in kg/m^3
115 else
116 rho = 2700.0d0
117 endif
118
119
120
121 qs = 0.1d0*vs
122
123
124! VS = 2000.d0
125! VP = 4500.d0
126! rho = 2400.d0
127! qs = 200.d0
128
129 lambda = rho * (vp**2 - 2*vs**2)
130 mu = rho * vs**2
131 gamma = (3.1415*(2/3))/qs
132
133
134 endif
135
136
137 end subroutine make_mech_prop_case_029
subroutine make_mech_prop_case_029(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.