Makes not-honoring technique.
Mechanical properties given node by node.
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, f_distance
30 integer*4 :: sub_tag_all
31 real*8 :: ni, vs, vp, depth_real
32
33 rho = 0.d0;
34 lambda = 0.d0;
35 mu = 0.d0;
36 gamma = 0.d0;
37 qs = 0.d0;
38 qp = 0.d0
39
40
41
42
43 if ((depth.ge.0.0d0).and.(zs_all.ge.0.0d0)) then
44
45 if (depth .le. 150.0d0) then
46 vs = 300.d0
47 vp = 1500.d0
48 rho = 1800.d0
49 lambda = rho * (vp**2 - 2*vs**2)
50 mu = rho * vs**2
51 qs = 0.1*vs;
52 gamma = (3.1415*(2.d0/3.d0))/qs
53
54 elseif(depth .gt. 150.d0 .and. depth .le. f_distance) then
55 vs = 300.d0 + 10.d0*(depth-150.d0)**0.5
56 vp = 1500.d0 + 10.d0*(depth-150.d0)**0.5
57 rho = 1800.d0 + 6.d0*(depth-150.d0)**0.5
58 lambda = rho * (vp**2 - 2*vs**2)
59 mu = rho * vs**2
60 qs = 0.1*vs;
61 gamma = (3.1415*(2.d0/3.d0))/qs
62
63 else
64 vs = 800.d0 + 15.d0*(depth-f_distance)**0.5
65 vp = 2000.d0 + 15.d0*(depth-f_distance)**0.5
66 rho = 2100.d0 + 4.d0*(depth-f_distance)**0.5
67 lambda = rho * (vp**2 - 2*vs**2)
68 mu = rho * vs**2
69 qs = 0.1*vs
70 gamma = (3.1415*(2/3))/qs
71
72 endif
73
74 else
75
76 depth_real = abs(zs)
77 if (depth_real .le. 1000.0d0) then
78 vs = 1200.d0
79 vp = 2300.d0
80 rho = 2100.d0
81 lambda = rho * (vp**2 - 2*vs**2)
82 mu = rho * vs**2
83 gamma = (3.1415*(2/3))/(150.d0)
84
85
86
87 elseif (depth_real.le.3000.0d0) then
88 vs = 2100.d0
89 vp = 3500.d0
90 rho = 2200.d0
91 lambda = rho * (vp**2 - 2*vs**2)
92 mu = rho * vs**2
93 gamma = (3.1415*(2/3))/(200.d0)
94
95
96
97
98 elseif (depth_real.le.6000.0d0) then
99 vs = 2750.d0
100 vp = 4750.d0
101 rho = 2400.d0
102 lambda = rho * (vp**2 - 2*vs**2)
103 mu = rho * vs**2
104 gamma = (3.1415*(2/3))/(250.d0)
105
106
107
108 else
109 vs = 3670.d0
110 vp = 6340.d0
111 rho = 2800.d0
112 lambda = rho * (vp**2 - 2*vs**2)
113 mu = rho * vs**2
114 gamma = (3.1415*(2/3))/(350.d0)
115
116
117
118
119 endif
120 endif
121
122
123
124