SPEED
MAKE_MECH_PROP_CASE_045.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
24 subroutine make_mech_prop_case_045(rho, lambda, mu, gamma, qs, qp, & !outputs
25 xs, ys, zs, Depth, zs_all,&
26 vs30, thickness, sub_tag_all)
27
28 real*8, intent(out) :: rho, lambda, mu, gamma, qs, qp
29 real*8, intent(in) :: xs, ys, zs, depth, zs_all,&
30 vs30, thickness
31 real*8 :: ni, vs, vp, depth_real
32 integer*4, intent(in) :: sub_tag_all
33
34 rho = 0.d0;
35 lambda = 0.d0;
36 mu = 0.d0;
37 gamma = 0.d0;
38 qs = 0.d0;
39 qp = 0.d0;
40
41
42 !
43 !-------------------------------------------------------------------
44 ! + MATERIAL INSIDE THE CLAY BASIN - 1st Layer
45
46 if (sub_tag_all.eq.1) then
47
48 vs = 70.d0 + depth *((100.d0-70.d0)/(zs_all+depth+0.1d0));
49 vp = vs * 13.d0;
50 rho = 1400.d0 + depth *((1600.d0-1400.d0)/(zs_all+depth0+0.1d0));
51 lambda = rho * (vp**2.d0 - 2.d0*vs**2.d0);
52 mu = rho * vs**2.d0;
53 qs = 40.d0 + depth *((55.d0-40.d0)/(zs_all+depth+0.1d0));
54 qp = qs*2.d0;
55 gamma = 4.d0*datan(1.d0)/qs;
56
57 ! + MATERIAL INSIDE THE DEEP BASIN - 2nd Layer
58 elseif (sub_tag_all.eq.2) then
59 vs = 500.d0 + 9.6d0 * depth**(0.6d0);
60 vp = 1500.d0 + 19.2d0 * depth**(0.6d0);
61 rho = 1900.d0;
62 lambda = rho * (vp**2.d0 - 2.d0*vs**2.d0);
63 mu = rho * vs**2.d0;
64 qs = vs/6.d0;
65 qp = qs*2.d0;
66 gamma = 4.d0*datan(1.d0)/qs;
67 ! + First 200 m of BEDROCK LAYER
68 elseif (depth .le. 200.0d0) then
69 vs = 750.d0;
70 vp = 1700.d0;
71 rho = 2000.d0;
72 lambda = rho * (vp**2.d0 - 2.d0*vs**2.d0);
73 mu = rho * vs**2.d0;
74 qs = 100.d0;
75 qp = qs*2.d0;
76 gamma = 4.d0*datan(1.d0)/qs;
77 else ! (1st BEDROCK LAYER)
78 vs = 1550.d0;
79 vp = 2782.d0;
80 rho = 2200.d0;
81 lambda = rho * (vp**2.d0 - 2.d0*vs**2.d0);
82 mu = rho * vs**2.d0;
83 qs = vs/10.d0;
84 qp = qs*2.d0;
85 gamma = 4.d0*datan(1.d0)/qs;
86 endif
87
88
89 end subroutine make_mech_prop_case_045
90
subroutine make_mech_prop_case_045(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.