51 nn,rho_el,lambda_el,mu_el,gamma_el,&
52 nn_loc, zs_elev, zs_all, vs_nodes, thick_nodes, &
53 cs_nnz_loc, cs_loc, ielem, &
54 sub_tag_all, zs, mpi_id, local_n_num, &
55 damping_type, qs, qp, &
56 xs, ys, check_case, label_case)
61 integer*4 :: tcase, check_case, label_case
62 integer*4 :: vcase, mpi_id
64 integer*4 :: p, q, r, ic
66 integer*4 :: cs_nnz_loc
67 integer*4 :: is,in,ielem , damping_type
69 integer*4,
dimension(nn_loc) :: local_n_num
70 integer*4,
dimension(nn_loc) :: sub_tag_all
71 integer*4,
dimension(0:cs_nnz_loc) :: cs_loc
73 real*8 :: depth, depth_real, qs_all, qp_all, thickness, vs30, pig
74 real*8 :: vs,vp, rho,lambda,mu,gamma,ni, qs,qp
75 real*8 :: x1,y1,x2,y2,coef_a, coef_b, coef_c, numer, den, distance
77 real*8,
dimension(nn_loc) :: zs_elev
78 real*8,
dimension(nn_loc) :: zs_all
79 real*8,
dimension(nn_loc) :: vs_nodes, thick_nodes
81 real*8,
dimension(nn_loc) :: zs, xs, ys
83 real*8,
dimension(nn,nn,nn) :: rho_el,lambda_el,mu_el,gamma_el, qs_h
85 real*8 :: stat_id1_x, stat_id1_y, stat_id2_x, stat_id2_y
87 character*70 :: filename
88 character*5 :: filesuffix
91 pig = 4.d0*datan(1.d0);
95 if (check_case .eq. 1)
then
98 write(filename,
'(A,I5.5,A5)')
'NHCheck', mpi_id, filesuffix
101 open(1000 + mpi_id,file=filename,position=
'APPEND')
107 is = nn*nn*(r -1) +nn*(q -1) +p
108 in = cs_loc(cs_loc(ielem -1) +is)
111 if (ic .eq. 0 )
write(*,*)
'Error in MAKE_ELTENSOR_FOR_CASES '
116 xs(ic),ys(ic),zs(ic),zs_elev
117 vs_nodes(ic), thick_nodes
119 elseif (tcase.eq.2)
then
122 xs(ic),ys(ic),zs(ic),zs_elev
123 vs_nodes(ic), thick_nodes
125 elseif (tcase.eq.3)
then
128 xs(ic),ys(ic),zs(ic),zs_elev
129 vs_nodes(ic), thick_nodes
131 elseif (tcase.eq.4)
then
134 xs(ic),ys(ic),zs(ic),zs_elev
135 vs_nodes(ic), thick_nodes
137 elseif (tcase.eq.5)
then
140 xs(ic),ys(ic),zs(ic),zs_elev
141 vs_nodes(ic), thick_nodes
144 elseif (tcase.eq.6)
then
147 xs(ic),ys(ic),zs(ic),zs_elev
148 vs_nodes(ic), thick_nodes
150 elseif (tcase.eq.7)
then
154 vs_nodes(ic), thick_nodes
156 elseif (tcase.eq.8)
then
160 vs_nodes(ic), thick_nodes
162 elseif (tcase.eq.10)
then
166 vs_nodes(ic), thick_nodes
168 elseif (tcase.eq.11)
then
172 vs_nodes(ic), thick_nodes
174 elseif (tcase.eq.12)
then
178 x1 = 654957.002352; y1 = 4974060.299450;
179 x2 = 688420.525202; y2 = 4957613.600935;
181 coef_a = 1.d0/(x2-x1);
182 coef_b = 1.d0/(y1-y2);
183 coef_c = - y1/(y1-y2) + x1/(x1-x2);
185 numer = coef_a*xs(ic) + coef_b*ys(ic) + coef_c
186 den = dsqrt(coef_a**2 + coef_b**2)
187 distance = dabs(numer/den)
188 f_distance = 150.d0 + 1850.d0/(1.d0 + dexp(-0.00
192 vs_nodes(ic), thick_nodes
195 elseif (tcase.eq.13)
then
199 vs_nodes(ic), thick_nodes
201 elseif (tcase.eq.14)
then
205 vs_nodes(ic), thick_nodes
207 elseif (tcase.eq.15)
then
211 vs_nodes(ic), thick_nodes
213 elseif (tcase.eq.16)
then
218 vs_nodes(ic), thick_nodes
220 elseif (tcase.eq.18)
then
224 vs_nodes(ic), thick_nodes
226 elseif (tcase.eq.19)
then
230 vs_nodes(ic), thick_nodes
232 elseif (tcase.eq.20)
then
236 vs_nodes(ic), thick_nodes
238 elseif (tcase.eq.21)
then
242 vs_nodes(ic), thick_nodes
244 elseif (tcase.eq.22)
then
249 vs_nodes(ic), thick_nodes
251 elseif (tcase.eq.27)
then
256 vs_nodes(ic), thick_nodes
258 elseif (tcase.eq.28)
then
263 vs_nodes(ic), thick_nodes
265 elseif (tcase.eq.29)
then
269 vs_nodes(ic), thick_nodes
271 elseif (tcase.eq.30)
then
276 vs_nodes(ic), thick_nodes
278 elseif (tcase.eq.31)
then
283 vs_nodes(ic), thick_nodes
285 elseif (tcase.eq.32)
then
290 vs_nodes(ic), thick_nodes
292 elseif (tcase.eq.33)
then
297 vs_nodes(ic), thick_nodes
299 elseif (tcase.eq.35)
then
303 vs_nodes(ic), thick_nodes
305 elseif (tcase.eq.38)
then
309 vs_nodes(ic), thick_nodes
311 elseif (tcase.eq.40)
then
316 vs_nodes(ic), thick_nodes
318 elseif (tcase.eq.45)
then
323 vs_nodes(ic), thick_nodes
326 elseif (tcase.eq.46)
then
332 elseif (tcase.eq.50)
then
337 vs_nodes(ic), thick_nodes
339 elseif (tcase.eq.60)
then
344 vs_nodes(ic), thick_nodes
346 elseif (tcase.eq.70)
then
351 vs_nodes(ic), thick_nodes
353 elseif (tcase .eq. 91)
then
358 vs_nodes(ic), thick_nodes
361 elseif (tcase.eq.98)
then
367 lambda = rho * (vp**2 - 2*vs**2)
371 elseif (tcase.eq.99)
then
375 if ((depth .ge. 0.0d0) .and. (zs_all(ic) .ge. 0.
then
379 lambda = rho * (vp**2 - 2*vs**2)
383 gamma = 4.d0*datan(1.d0)/qs;
388 lambda = rho * (vp**2 - 2*vs**2)
392 gamma = 4.d0*datan(1.d0)/qs;
395 elseif (tcase.eq.100)
then
399 if ((depth .ge. 0.0d0) .and. (zs_all(ic) .ge. 0.0d0
then
403 lambda = rho * (vp**2 - 2*vs**2)
407 gamma = 4.d0*datan(1.d0)/qs;
412 lambda = rho * (vp**2 - 2*vs**2)
416 gamma = 4.d0*datan(1.d0)/qs;
420 if (check_case .eq. 1) &
421 write(1000+mpi_id,*) xs(ic),ys(ic),zs(ic), &
423 dsqrt((lambda + 2.d0*mu)/rho
425 qp, qs, gamma, zs_elev(ic), zs_all
429 lambda_el(p,q,r) = lambda
431 gamma_el(p,q,r) = gamma
439 if (check_case .eq. 1)
close (1000+mpi_id)
441 if (damping_type .eq. 2)
then
443 qs_all = 0.d0; qp_all=0.d0;
449 qs_all = qs_all + qs_h(p,q,r)
450 qp_all = qp_all + qp_h(p,q,r)
subroutine make_eltensor_for_cases(tcase, vcase, nn, rho_el, lambda_el, mu_el, gamma_el, nn_loc, zs_elev, zs_all, vs_nodes, thic
Assignes material properties node by node.
subroutine make_mech_prop_case_001(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_002(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_003(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_004(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_005(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_006(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_007(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_008(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_010(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_011(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_012(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all, f_distance)
Makes not-honoring technique.
subroutine make_mech_prop_case_013(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_014(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_015(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_016(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_018(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_019(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_020(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
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.
subroutine make_mech_prop_case_022(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_027(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_028(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
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.
subroutine make_mech_prop_case_030(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_031(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_032(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_033(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_035(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_038(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_040(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
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.
subroutine make_mech_prop_case_046(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_050(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_060(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_070(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.
subroutine make_mech_prop_case_091(rho, lambda, mu, gamma, qs, qp, xs, ys, zs, depth, zs_all, vs30, thickness, sub_tag_all)
Makes not-honoring technique.