SPEED
MAKE_MECH_PROP_CASE_021.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine make_mech_prop_case_021 (rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
 Makes not-honoring technique.
 

Function/Subroutine Documentation

◆ make_mech_prop_case_021()

subroutine make_mech_prop_case_021 ( real*8, intent(out)  rho,
real*8, intent(out)  lambda,
real*8, intent(out)  mu,
real*8, intent(out)  gamma,
real*8, intent(out)  qs,
real*8, intent(out)  qp,
real*8, intent(in)  xs,
real*8, intent(in)  ys,
real*8, intent(in)  zs,
real*8, intent(in)  depth,
real*8, intent(in)  zs_all,
real*8, intent(in)  vs30,
real*8, intent(in)  thickness,
integer*4  sub_tag_all 
)

Makes not-honoring technique.

Mechanical properties given node by node.

Definition at line 24 of file MAKE_MECH_PROP_CASE_021.f90.

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 integer*4 :: sub_tag_all
32 real*8 :: ni, vs, vp, depth_real
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 if(zs .lt. -2000) then
42 vs = 2100
43 vp = 3500
44 rho = 2200
45 lambda = rho * (vp**2.d0 - 2.d0*vs**2.d0);
46 mu = rho * vs**2.d0;
47 qs = 0.1d0*vs;
48 gamma = 4.d0*datan(1.d0)/qs;
49 else
50 if( vs30 .gt. 600.d0) then
51 vs = vs30 + 5*dsqrt(depth)
52 vp = vs*1.6d0
53 rho = 1800.d0 + 5.d0*dsqrt(depth);
54 lambda = rho * (vp**2.d0 - 2.d0*vs**2.d0);
55 mu = rho * vs**2.d0;
56 qs = 0.1d0*vs;
57 gamma = 4.d0*datan(1.d0)/qs;
58
59 elseif( vs30 .le. 600.d0 .and. zs_all .ge. 0.d0) then
60 vs = vs30 + 10*dsqrt(depth);
61 vp = vs*1.6d0
62 rho = 1530.d0 + 5.d0*dsqrt(depth);
63 mu = rho * vs**2.d0;
64 qs = 0.1d0*vs;
65 gamma = 4.d0*datan(1.d0)/qs;
66
67 elseif( vs30 .le. 600.d0 .and. zs_all .lt. 0.d0) then
68 vs = 800 + 10*dsqrt(depth);
69 vp = 2000.d0 + 15.d0*dsqrt(depth);
70 rho = 1800.d0 + 5.d0*dsqrt(depth);
71 mu = rho * vs**2.d0;
72 qs = 0.1d0*vs;
73 gamma = 4.d0*datan(1.d0)/qs;
74 endif
75 endif
76
77 !left
78 if(dabs(xs - 415552) .le. 2000.d0) then
79 vs = 2100
80 vp = 3500
81 rho = 2200
82 lambda = rho * (vp**2.d0 - 2.d0*vs**2.d0);
83 mu = rho * vs**2.d0;
84 qs = 0.1d0*vs;
85 gamma = 4.d0*datan(1.d0)/qs;
86! !right
87 elseif(dabs(xs - 484516) .le. 2000.d0) then
88 vs = 2100
89 vp = 3500
90 rho = 2200
91 lambda = rho * (vp**2.d0 - 2.d0*vs**2.d0);
92 mu = rho * vs**2.d0;
93 qs = 0.1d0*vs;
94 gamma = 4.d0*datan(1.d0)/qs;
95! !up
96 elseif(dabs(ys - 4447869) .le. 2000.d0) then
97 vs = 2100
98 vp = 3500
99 rho = 2200
100 lambda = rho * (vp**2.d0 - 2.d0*vs**2.d0);
101 mu = rho * vs**2.d0;
102 qs = 0.1d0*vs;
103 gamma = 4.d0*datan(1.d0)/qs;
104! !down
105 elseif(dabs(ys - 4379160) .le. 2000.d0) then
106 vs = 2100
107 vp = 3500
108 rho = 2200
109 lambda = rho * (vp**2.d0 - 2.d0*vs**2.d0);
110 mu = rho * vs**2.d0;
111 qs = 0.1d0*vs;
112 gamma = 4.d0*datan(1.d0)/qs;
113 endif
114 !if (check_case .eq. 1) write(1000,*) xs,ys,zs, VS, VP
115
116
117
118
119

Referenced by make_eltensor_for_cases().

Here is the caller graph for this function: