96 nm,tag_mat,type_mat,sdeg_mat,tref_mat,prop_mat,&
97 ne_loc,local_el_num, &
98 alfa11,alfa12,alfa13,alfa21,alfa22,alfa23,&
99 alfa31,alfa32,alfa33,beta11,beta12,beta13,&
100 beta21,beta22,beta23,beta31,beta32,beta33,&
101 gamma1,gamma2,gamma3,delta1,delta2,delta3,&
102 cs_nnz_bc_loc,cs_bc_loc,&
103 nl_dirX,val_dirX,fun_dirX,tag_dirX,&
104 nl_dirY,val_dirY,fun_dirY,tag_dirY,&
105 nl_dirZ,val_dirZ,fun_dirZ,tag_dirZ,&
106 nl_neuX,val_neuX,fun_neuX,tag_neuX,&
107 nl_neuY,val_neuY,fun_neuY,tag_neuY,&
108 nl_neuZ,val_neuZ,fun_neuZ,tag_neuZ,&
109 nl_neuN,val_neuN,fun_neuN,tag_neuN,&
110 nl_poiX,val_poiX,fun_poiX,&
111 nl_poiY,val_poiY,fun_poiY,&
112 nl_poiZ,val_poiZ,fun_poiZ,&
113 nl_traX,val_traX,fun_traX,&
114 nl_traY,val_traY,fun_traY,&
115 nl_traZ,val_traZ,fun_traZ,&
116 nl_plaX,val_plaX,fun_plaX,tag_plaX,&
117 nl_plaY,val_plaY,fun_plaY,tag_plaY,&
118 nl_plaZ,val_plaZ,fun_plaZ,tag_plaZ,&
120 nl_sism,val_sism,fun_sism,tag_sism,&
121 nl_expl,val_expl,fun_expl,tag_expl,&
122 nl_forX,val_forX,fun_forX,&
123 nl_forY,val_forY,fun_forY,&
124 nl_forZ,val_forZ,fun_forZ,&
125 nl_forc,val_forc,fun_forc,&
126 nl_pres,val_pres,fun_pres,&
127 nl_shea,val_shea,fun_shea,&
128 n_test,fun_test, & !val_fun_test, &
129 nfunc,tag_func,func_type,func_indx,func_data,nfunc_data, &
133 sour_ns,max_num_ns,num_ns,&
134 facsmom,node_index_seq,&
137 sour_ne,max_num_ne,num_ne,&
139 mpi_comm, mpi_np, mpi_id,testmode, &
140 nmat_nhe, rho_nhe, lambda_nhe, mu_nhe)
148 character*12 :: name_prop
149 character*70 :: filename
151 integer*4 :: nnod_loc,cs_nnz_loc,nm,ne_loc,cs_nnz_bc_loc
152 integer*4 :: nl_dirX,nl_dirY,nl_dirZ,nl_neuX,nl_neuY,nl_neuZ
154integer*4 :: nl_poiX,nl_poiY,nl_poiZ,nl_forX,nl_forY,nl_forZ
155 integer*4 :: nl_plaX,nl_plaY,nl_plaZ,nl_traX,nl_traY,nl_traZ
156integer*4 :: nl_sism, srcmodflag, szsism
158integer*4 :: nl_forc,nl_pres,nl_shea, n_test
159 integer*4 :: nfunc, nfunc_data
160 integer*4 :: im,ifun,ie,ip,il,nface_loc,nn,fn
161 integer*4 :: is,in,id
162 integer*4 :: i,j,k, val_st
163 integer*4 :: ipl, nb_tra_load
165integer*4 :: sum_node_bottom,sum_node_bottom1,sum_node_bottom2
166integer*4 :: sum_node_bottom_first3
167integer*4 :: last_node_bottom,last_node_bottom1,last_node_bottom2
169integer*4 :: isism,ipsism
170integer*4 :: length_cns, sum_length_cns
171integer*4 :: max_num_ns
172integer*4 :: tt, ie_glob, ie_surf
173 integer*4 :: ic, ic1, ic2, ic3, ic4
174 integer*4 :: mpi_comm, mpi_np, mpi_ierr, mpi_id
175 integer*4 :: iexpl,ipexpl
176 integer*4 :: length_cne, sum_length_cne
177 integer*4 :: max_num_ne
178integer*4 :: nnode_neuN,nelem_neuN
179 integer*4 :: ne1,ne2,ne3,ne4
180integer*4 :: index_vector,index, testmode, prova, nmat_nhe
182 integer*4,
dimension(:),
allocatable :: i4count
183 integer*4,
dimension(:),
allocatable :: i4normal
184 integer*4,
dimension(:),
allocatable :: ind_locX, ind_locY, ind_locZ
185 integer*4,
dimension(:),
allocatable :: ind_gloX, ind_gloY, ind_gloZ
186 integer*4,
dimension(:),
allocatable :: n_tra, n_tra_glo
187 integer*4,
dimension(nnod_loc) :: node_index_seq
188integer*4,
dimension(nl_expl) :: num_ne
189integer*4,
dimension(6) :: num_sit
190integer*4,
dimension(nl_sism) :: num_ns
191integer*4,
dimension(nnod_loc) :: local_n_num
192 integer*4,
dimension(ne_loc) :: local_el_num
193 integer*4,
dimension(0:cs_nnz_loc) :: cs_loc
194 integer*4,
dimension(nm) :: tag_mat,type_mat,sdeg_mat
195 integer*4,
dimension(0:cs_nnz_bc_loc) :: cs_bc_loc
196 integer*4,
dimension(nl_dirX) :: fun_dirX, tag_dirX
197 integer*4,
dimension(nl_dirY) :: fun_dirY, tag_dirY
198 integer*4,
dimension(nl_dirZ) :: fun_dirZ, tag_dirZ
199 integer*4,
dimension(nl_neuX) :: fun_neuX, tag_neuX
200 integer*4,
dimension(nl_neuY) :: fun_neuY, tag_neuY
201 integer*4,
dimension(nl_neuZ) :: fun_neuZ, tag_neuZ
202 integer*4,
dimension(nl_neuN) :: fun_neuN, tag_neuN
203 integer*4,
dimension(nl_poiX) :: fun_poiX
204 integer*4,
dimension(nl_poiY) :: fun_poiY
205 integer*4,
dimension(nl_poiZ) :: fun_poiZ
206 integer*4,
dimension(nl_traX) :: fun_traX
207 integer*4,
dimension(nl_traY) :: fun_traY
208 integer*4,
dimension(nl_traZ) :: fun_traZ
209 integer*4,
dimension(nl_plaX) :: fun_plaX
210 integer*4,
dimension(nl_plaY) :: fun_plaY
211 integer*4,
dimension(nl_plaZ) :: fun_plaZ
212 integer*4,
dimension(nl_plaX) :: tag_plaX
213integer*4,
dimension(nl_plaY) :: tag_plaY
214 integer*4,
dimension(nl_plaZ) :: tag_plaZ
215 integer*4,
dimension(nl_sism) :: fun_sism
216 integer*4,
dimension(nl_sism) :: tag_sism
217 integer*4,
dimension(nl_expl) :: fun_expl
218 integer*4,
dimension(nl_expl) :: tag_expl
219 integer*4,
dimension(nl_forX) :: fun_forX
220 integer*4,
dimension(nl_forY) :: fun_forY
221 integer*4,
dimension(nl_forZ) :: fun_forZ
222 integer*4,
dimension(nl_forc) :: fun_forc
223 integer*4,
dimension(nl_pres) :: fun_pres
224 integer*4,
dimension(n_test) :: fun_test
225 integer*4,
dimension(nl_shea) :: fun_shea
226 integer*4,
dimension(nfunc) :: tag_func
227 integer*4,
dimension(nl_poiX) :: node_poiX
228 integer*4,
dimension(nl_poiY) :: node_poiY
229 integer*4,
dimension(nl_poiZ) :: node_poiZ
230 integer*4,
dimension(nfunc) :: func_type
231 integer*4,
dimension(nfunc +1) :: func_indx
234 integer*4,
dimension(nhexa,9) :: con_hexa
235integer*4,
dimension(max_num_ns,nl_sism) :: sour_ns
236integer*4,
dimension(max_num_ne,nl_expl) :: sour_ne
238 integer*4,
dimension(:),
allocatable :: node_counter_poiX,node_counter_poiY
242 real*8 :: dxdx,dxdy,dxdz,dydx,dydy,dydz,dzdx,dzdy,dzdz,det_j
243 real*8 :: lambda,mu,alpha,tref,pi,lambda2, mu2, rho2
245 real*8 :: l1x,l1y,l1z,l2x,l2y,l2z,area,v1,v2,v3,v4,v,term,rr
246 real*8 :: x0,y0,z0,x1,x2,x3,r1,r2,r3,f1,f2,f3,phii,theta,psi
249 real*8 :: csi, eta, zeta, normal_x,normal_y,normal_z
250 real*8 :: slip1_sism,slip2_sism,slip3_sism
251 real*8 :: norm1_sism,norm2_sism,norm3_sism
254 real*8 :: slip1_expl,slip2_expl,slip3_expl
255 real*8 :: norm1_expl,norm2_expl,norm3_expl
257 real*8 :: z_node_bottom,z_node_bottom1,z_node_bottom2
258 real*8 :: a1, a2, a3, b1, b2, b3, c1, c2, c3, w1, cost1, cost2, cost3
259 real*8 :: u1, u2, u3, u1_12, u1_13, u2_12, u2_23, u3_13, u3_23, k1
260 real*8 :: vp,vs,omega, n1, n2, n3
262 real*8,
dimension(:),
allocatable :: val_glox, val_gloy, val_gloz
263 real*8,
dimension(:),
allocatable :: val_locx, val_locy, val_locz
264 real*8,
dimension(:),
allocatable :: ct,ww
265 real*8,
dimension(:),
allocatable :: normal_nx_el_neun
266 real*8,
dimension(:),
allocatable :: normal_ny_el_neun
267 real*8,
dimension(:),
allocatable :: normal_nz_el_neun
268 real*8,
dimension(:),
allocatable :: dist_tra, dist_tra_glo
269 real*8,
dimension(:),
allocatable :: x_tra,y_tra,z_tra,x_tra_glo,y_tra_glo
270 real*8,
dimension(:),
allocatable :: xt_tra,yt_tra,zt_tra,xt_tra_glo
271 real*8,
dimension(:),
allocatable :: dist_tra_real
272 real*8,
dimension(nnod_loc) :: xs_loc,ys_loc,zs_loc
273 real*8,
dimension(nnod_loc) :: lambda_nhe, rho_nhe, mu_nhe
274 real*8,
dimension(:,:,:),
allocatable :: lambda_el, rho_el, mu_el,
275 real*8,
dimension(nm) :: tref_mat
276 real*8,
dimension(ne_loc) :: alfa11,alfa12,alfa13, alfa21,alfa22,alfa23
277 real*8,
dimension(ne_loc) :: beta11,beta12,beta13, beta21,beta22,beta23
278 real*8,
dimension(ne_loc) :: gamma1,gamma2,gamma3, delta1,delta2,delta3
279 real*8,
dimension(6) :: sum_facs
281 real*8,
dimension(:,:),
allocatable :: dd
282 real*8,
dimension(nm,4) :: prop_mat
283 real*8,
dimension(nl_dirX,4) :: val_dirx
284 real*8,
dimension(nl_dirY,4) :: val_diry
285 real*8,
dimension(nl_dirZ,4) :: val_dirz
286 real*8,
dimension(nl_neuX,4) :: val_neux
287 real*8,
dimension(nl_neuY,4) :: val_neuy
288 real*8,
dimension(nl_neuZ,4) :: val_neuz
289 real*8,
dimension(nl_neuN,4) :: val_neun
290 real*8,
dimension(nl_poiX,4) :: val_poix
291 real*8,
dimension(nl_poiY,4) :: val_poiy
292 real*8,
dimension(nl_poiZ,4) :: val_poiz
293 real*8,
dimension(nl_traX,4) :: val_trax
294 real*8,
dimension(nl_traY,4) :: val_tray
295 real*8,
dimension(nl_traZ,4) :: val_traz
296 real*8,
dimension(nl_plaX,1) :: val_plax
297 real*8,
dimension(nl_plaY,1) :: val_play
298 real*8,
dimension(nl_plaZ,1) :: val_plaz
299 real*8,
dimension(nl_sism,szsism) :: val_sism
300 real*8,
dimension(nl_expl,20) :: val_expl
301 real*8,
dimension(nl_forX,4) :: val_forx
302 real*8,
dimension(nl_forY,4) :: val_fory
303 real*8,
dimension(nl_forZ,4) :: val_forz
304 real*8,
dimension(nl_forc,10) :: val_forc
305 real*8,
dimension(nl_pres,10) :: val_pres
306 real*8,
dimension(nl_shea,10) :: val_shea
308 real*8,
dimension(nl_expl,6) :: facsexpl
309 real*8,
dimension(nfunc,3*nnod_loc) :: fmat
310 real*8,
dimension(nl_sism,6) :: facsmom
311 real*8,
dimension(nl_sism,1) :: tausmom
312 real*8,
dimension(3,3) :: rot
313 real*8,
dimension(nfunc_data) :: func_data
317 pi = 4.d0*datan(1.d0);
323 if (nl_sism.gt.0)
then
325 facsmom(isism,1) = 0.0d0
326 facsmom(isism,2) = 0.0d0
327 facsmom(isism,3) = 0.0d0
328 facsmom(isism,4) = 0.0d0
329 facsmom(isism,5) = 0.0d0
330 facsmom(isism,6) = 0.0d0
331 tausmom(isism,1) = 0.0d0
338 if (nl_expl.gt.0)
then
340 facsexpl(iexpl,1) = 0.0d0
341 facsexpl(iexpl,2) = 0.0d0
342 facsexpl(iexpl,3) = 0.0d0
343 facsexpl(iexpl,4) = 0.0d0
344 facsexpl(iexpl,5) = 0.0d0
345 facsexpl(iexpl,6) = 0.0d0
359 if (nl_neun.gt.0)
then
363 allocate(i4count(nnod_loc))
367 nnode_neun, i4count, local_n_num)
381 if (cs_loc(cs_loc(ie -1) +0).eq.tag_mat(im))
then
382 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(1 -
383 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(1
384 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(1
385 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(1
387 if ((i4count(ne1).ne.0).and.(i4count(ne2).ne.0) .and.(i4count
then
388 nelem_neun = nelem_neun +1
391 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(1 -
392 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(nn
393 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(nn
394 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(1
396 if ((i4count(ne1).ne.0).and.(i4count(ne2).ne.0) .and.(i4count
then
397 nelem_neun = nelem_neun +1
400 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(1 -
401 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(nn
402 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(nn
403 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(1
405 if ((i4count(ne1).ne.0).and.(i4count(ne2).ne.0) .and.(i4count
then
406 nelem_neun = nelem_neun +1
409 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(nn
410 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(nn
411 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(nn
412 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(nn
414 if ((i4count(ne1).ne.0).and.(i4count(ne2).ne.0) .and.(i4count
then
415 nelem_neun = nelem_neun +1
418 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(1
419 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(nn
420 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(nn
421 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(1
423 if ((i4count(ne1).ne.0).and.(i4count(ne2).ne.0) .and.(i4count
then
424 nelem_neun = nelem_neun +1
427 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(1
428 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(nn
429 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(nn
430 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(1
432 if ((i4count(ne1).ne.0).and.(i4count(ne2).ne.0) .and.(i4count
then
433 nelem_neun = nelem_neun +1
442 allocate(i4normal(nelem_neun))
443 allocate(normal_nx_el_neun(nelem_neun))
444 allocate(normal_ny_el_neun(nelem_neun))
445 allocate(normal_nz_el_neun(nelem_neun))
447 normal_nx_el_neun = 0.0d0
448 normal_ny_el_neun = 0.0d0
449 normal_nz_el_neun = 0.0d0
457 if (cs_loc(cs_loc(ie -1) +0).eq.tag_mat(im))
then
458 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(1 -1
459 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(1 -
460 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(1
461 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(1 -
463 if ((i4count(ne1).ne.0).and.(i4count(ne2).ne.0) .and.(i4count
then
467 nelem_neun = nelem_neun +1
470 if(ie_surf .eq. 0)
then
471 write(*,*)
'surf not found'
474 i4normal(nelem_neun) = ie_surf
476 call make_normal(1,xs_loc(ne1), xs_loc(ne2), xs_loc(ne3
477 ys_loc(ne1), ys_loc(ne2), ys_loc(ne3
478 zs_loc(ne1), zs_loc(ne2), zs_loc(ne3
479 normal_x,normal_y,normal_z, 0, 0 )
482 normal_nx_el_neun(nelem_neun) = normal_x
483 normal_ny_el_neun(nelem_neun) = normal_y
484 normal_nz_el_neun(nelem_neun) = normal_z
489 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(1 -
490 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(nn
491 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(nn
492 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(1
494 if ((i4count(ne1).ne.0).and.(i4count(ne2).ne.0) .and.(i4count
then
497 nelem_neun = nelem_neun +1
500 if(ie_surf .eq. 0)
then
501 write(*,*)
'surf not found'
504 i4normal(nelem_neun) = ie_surf
506 call make_normal(2,xs_loc(ne1), xs_loc(ne2), xs_loc(ne3)
507 ys_loc(ne1), ys_loc(ne2), ys_loc(ne3)
508 zs_loc(ne1), zs_loc(ne2), zs_loc(ne3)
509 normal_x,normal_y,normal_z, 0, 0 )
512 normal_nx_el_neun(nelem_neun) = normal_x
513 normal_ny_el_neun(nelem_neun) = normal_y
514 normal_nz_el_neun(nelem_neun) = normal_z
518 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(1 -
519 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(nn
520 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(nn
521 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(1
523 if ((i4count(ne1).ne.0).and.(i4count(ne2).ne.0) .and.(i4count
then
526 nelem_neun = nelem_neun +1
529 if(ie_surf .eq. 0)
then
530 write(*,*)
'surf not found'
533 i4normal(nelem_neun) = ie_surf
535 call make_normal(3,xs_loc(ne1), xs_loc(ne2), xs_loc(ne3)
536 ys_loc(ne1), ys_loc(ne2), ys_loc(ne3)
537 zs_loc(ne1), zs_loc(ne2), zs_loc(ne3)
538 normal_x,normal_y,normal_z, 0, 0 )
541 normal_nx_el_neun(nelem_neun) = normal_x
542 normal_ny_el_neun(nelem_neun) = normal_y
543 normal_nz_el_neun(nelem_neun) = normal_z
547 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(nn
548 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(nn
549 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(nn
550 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(nn
552 if ((i4count(ne1).ne.0).and.(i4count(ne2).ne.0) .and.(i4count
then
556 nelem_neun = nelem_neun +1
559 if(ie_surf .eq. 0)
then
560 write(*,*)
'surf not found'
564 i4normal(nelem_neun) = ie_surf
566 call make_normal(4,xs_loc(ne1), xs_loc(ne2), xs_loc(ne3)
567 ys_loc(ne1), ys_loc(ne2), ys_loc(ne3)
568 zs_loc(ne1), zs_loc(ne2), zs_loc(ne3)
569 normal_x,normal_y,normal_z, 0, 0 )
572 normal_nx_el_neun(nelem_neun) = normal_x
573 normal_ny_el_neun(nelem_neun) = normal_y
574 normal_nz_el_neun(nelem_neun) = normal_z
578 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(1
579 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(nn
580 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(nn
581 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(1
583 if ((i4count(ne1).ne.0).and.(i4count(ne2).ne.0) .and.(i4count
then
587 nelem_neun = nelem_neun +1
590 if(ie_surf .eq. 0)
then
591 write(*,*)
'surf not found'
596 i4normal(nelem_neun) = ie_surf
598 call make_normal(5,xs_loc(ne1), xs_loc(ne2), xs_loc(ne3)
599 ys_loc(ne1), ys_loc(ne2), ys_loc(ne3)
600 zs_loc(ne1), zs_loc(ne2), zs_loc(ne3)
601 normal_x,normal_y,normal_z, 0, 0 )
604 normal_nx_el_neun(nelem_neun) = normal_x
605 normal_ny_el_neun(nelem_neun) = normal_y
606 normal_nz_el_neun(nelem_neun) = normal_z
610 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(1
611 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(nn
612 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(nn
613 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(1
615 if ((i4count(ne1).ne.0).and.(i4count(ne2).ne.0) .and.(i4count
then
618 nelem_neun = nelem_neun +1
621 if(ie_surf .eq. 0)
then
622 write(*,*)
'surf not found'
625 i4normal(nelem_neun) = ie_surf
627 call make_normal(6,xs_loc(ne1), xs_loc(ne2), xs_loc(ne3)
628 ys_loc(ne1), ys_loc(ne2), ys_loc(ne3)
629 zs_loc(ne1), zs_loc(ne2), zs_loc(ne3)
630 normal_x,normal_y,normal_z, 0, 0 )
633 normal_nx_el_neun(nelem_neun) = normal_x
634 normal_ny_el_neun(nelem_neun) = normal_y
635 normal_nz_el_neun(nelem_neun) = normal_z
658 if (nl_poix .gt. 0)
then
660 allocate(val_locx(nl_poix), val_glox(nl_poix*mpi_np), ind_locx
665 ind_locx(i) = local_n_num(node_poix(i))
669 call mpi_barrier(mpi_comm,mpi_ierr)
671 call mpi_allgather(val_locx, nl_poix, speed_double, val_glox
672 call mpi_allgather(ind_locx, nl_poix, speed_integer, ind_glox
676 call get_minvalues(ind_glox, val_glox, nl_poix*mpi_np, ind_locx
679 node_poix(i) = ind_glox(ind_locx(i))
682 deallocate(ind_locx, val_locx, ind_glox, val_glox)
683 allocate(node_counter_poix(nl_poix),recv_poix(nl_poix))
684 node_counter_poix = 0;
689 im = cs_loc(cs_loc(ie -1) +0);
696 is = nn*nn*(k -1) +nn*(j -1) +i
697 in = cs_loc(cs_loc(ie -1) +is)
699 if (local_n_num(in) .eq. node_poix(ip))
then
700 node_counter_poix(ip) = node_counter_poix(ip
711 call mpi_barrier(mpi_comm,mpi_ierr)
712 call mpi_allreduce(node_counter_poix,recv_poix, nl_poix, speed_integer
713 node_counter_poix = recv_poix;
714 deallocate(recv_poix);
719 if (nl_poiy .gt. 0)
then
721 allocate(val_locy(nl_poiy), val_gloy(nl_poiy*mpi_np), ind_locy
726 ind_locy(i) = local_n_num(node_poiy(i))
729 call mpi_barrier(mpi_comm,mpi_ierr)
731 call mpi_allgather(val_locy, nl_poiy, speed_double, val_gloy
732 call mpi_allgather(ind_locy, nl_poiy, speed_integer, ind_gloy
734 call get_minvalues(ind_gloy,val_gloy, nl_poiy*mpi_np, ind_locy
738 node_poiy(i) = ind_gloy(ind_locy(i))
741 deallocate(ind_locy, val_locy, ind_gloy, val_gloy)
742 allocate(node_counter_poiy(nl_poiy),recv_poiy(nl_poiy))
743 node_counter_poiy = 0;
748 im = cs_loc(cs_loc(ie -1) +0);
755 is = nn*nn*(k -1) +nn*(j -1) +i
756 in = cs_loc(cs_loc(ie -1) +is)
758 if (local_n_num(in) .eq. node_poiy(ip))
then
759 node_counter_poiy(ip) = node_counter_poiy(ip
770 call mpi_barrier(mpi_comm,mpi_ierr)
771 call mpi_allreduce(node_counter_poiy,recv_poiy, nl_poiy, speed_integer
772 node_counter_poiy = recv_poiy;
773 deallocate(recv_poiy);
778 if (nl_poiz .gt. 0)
then
780 allocate(val_locz(nl_poiz), val_gloz(nl_poiz*mpi_np), ind_locz
785 ind_locz(i) = local_n_num(node_poiz(i))
788 call mpi_barrier(mpi_comm,mpi_ierr)
790 call mpi_allgather(val_locz, nl_poiz, speed_double, val_gloz
791 call mpi_allgather(ind_locz, nl_poiz, speed_integer, ind_gloz
792 call get_minvalues(ind_gloz, val_gloz, nl_poiz*mpi_np, ind_locz
795 node_poiz(i) = ind_gloz(ind_locz(i))
800 deallocate(ind_locz, val_locz, ind_gloz, val_gloz)
801 allocate(node_counter_poiz(nl_poiz),recv_poiz(nl_poiz))
802 node_counter_poiz = 0;
807 im = cs_loc(cs_loc(ie -1) +0);
814 is = nn*nn*(k -1) +nn*(j -1) +i
815 in = cs_loc(cs_loc(ie -1) +is)
817 if (local_n_num(in) .eq. node_poiz(ip))
then
818 node_counter_poiz(ip) = node_counter_poiz(ip
829 call mpi_barrier(mpi_comm,mpi_ierr)
830 call mpi_allreduce(node_counter_poiz, recv_poiz, nl_poiz, speed_integer
831 node_counter_poiz = recv_poiz;
832 deallocate(recv_poiz);
834 call mpi_barrier(mpi_comm,mpi_ierr)
839 ne_loc = cs_loc(0) -1
845 im = cs_loc(cs_loc(ie -1) +0);
848 allocate(ct(nn),ww(nn),dd(nn,nn))
852 lambda = prop_mat(im,2)
855 if (nmat_nhe.gt.0)
then
856 allocate(rho_el(nn,nn,nn), lambda_el(nn,nn,nn), mu_el(nn
858 rho_nhe, lambda_nhe, mu_nhe
859 rho_el, lambda_el, mu_el
860 rho = sum(rho_el)/(nn*nn*nn)
861 lambda = sum(lambda_el)/(nn*nn*nn)
862 mu = sum(mu_el)/(nn*nn*nn)
863 deallocate(rho_el, lambda_el, mu_el, gamma_el)
866 if (nl_poix.gt.0)
then
870 if (fun_poix(ip).eq.tag_func(ifun)) fn = ifun
882 is = nn*nn*(k -1) +nn*(j -1) +i
883 in = cs_loc(cs_loc(ie -1) +is)
885 if (local_n_num(in) .eq. node_poix(ip
then
886 fmat(fn,(3*(in -1) +1)) = fmat(fn
900 if (nl_poiy.gt.0)
then
904 if (fun_poiy(ip).eq.tag_func(ifun)) fn = ifun
915 is = nn*nn*(k -1) +nn*(j -1) +i
916 in = cs_loc(cs_loc(ie -1) +is)
918 if (local_n_num(in) .eq. node_poiy(ip
then
919 fmat(fn,(3*(in -1) +2)) = fmat(fn
929 if (nl_poiz.gt.0)
then
933 if (fun_poiz(ip).eq.tag_func(ifun)) fn = ifun
945 is = nn*nn*(k -1) +nn*(j -1) +i
946 in = cs_loc(cs_loc(ie -1) +is)
948 if (local_n_num(in) .eq. node_poiz(ip))
then
950 fmat(fn,(3*(in -1) +3)) = fmat(fn,(3*(in
951 + val_poiz(ip,4)/node_counter_poiz
968 if (nl_plax.gt.0)
then
972 if (tag_mat(im).eq.tag_plax(ipl))
then
977 last_node_bottom1 = 0
978 last_node_bottom2 = 0
981 ie_glob = local_el_num(ie)
986 if(ic1 .ne. 0 .and. ic2 .ne. 0)
then
987 if (dabs(zs_loc(ic1) - zs_loc(ic2)) .le. 1.d-4)
then
988 last_node_bottom1 = i
989 sum_node_bottom1 = sum_node_bottom1 + i
990 z_node_bottom1 = zs_loc(ic1)
993 last_node_bottom2 = i
994 sum_node_bottom2 = sum_node_bottom2 + i
995 z_node_bottom2 = zs_loc(ic2)
1002 if (z_node_bottom1.lt.z_node_bottom2)
then
1003 sum_node_bottom = sum_node_bottom1
1004 sum_node_bottom_first3 = sum_node_bottom1 - last_node_bottom1
1006 sum_node_bottom = sum_node_bottom2
1007 sum_node_bottom_first3 = sum_node_bottom2 - last_node_bottom2
1012 ellez=dabs(z_node_bottom1 - z_node_bottom2)
1016 if (fun_plax(ipl).eq.tag_func(ifun)) fn = ifun
1079 if ((sum_node_bottom.eq.10).or.(sum_node_bottom.eq.
then
1148 if (sum_node_bottom.eq.10)
then
1161 if (mod(nn-1,2).eq.0)
then
1166 k = (int((nn-1)/2))+num_sit(sit)
1172 dxdx = alfa11(ie) +beta12(ie)*ct(k
1173 + beta13(ie)*ct(j) +gamma1
1174 dydx = alfa21(ie) +beta22(ie)*ct(k
1175 + beta23(ie)*ct(j) +gamma2
1176 dzdx = alfa31(ie) +beta32(ie)*ct(k
1177 + beta33(ie)*ct(j) +gamma3
1178 dxdy = alfa12(ie) +beta11(ie)*ct(k
1179 + beta13(ie)*ct(i) +gamma1
1180 dydy = alfa22(ie) +beta21(ie)*ct(k
1181 + beta23(ie)*ct(i) +gamma2
1182 dzdy = alfa32(ie) +beta31(ie)*ct(k
1183 + beta33(ie)*ct(i) +gamma3
1184 dxdz = alfa13(ie) +beta11(ie)*ct(j
1185 + beta12(ie)*ct(i) +gamma1
1186 dydz = alfa23(ie) +beta21(ie)*ct(j
1187 + beta22(ie)*ct(i) +gamma2
1188 dzdz = alfa33(ie) +beta31(ie)*ct(j
1189 + beta32(ie)*ct(i) +gamma3
1190 det_j = dxdz * (dydx*dzdy - dzdx*dydy
1191 - dydz * (dxdx*dzdy - dzdx*dxdy
1192 + dzdz * (dxdx*dydy - dydx*dxdy
1193 is = nn*nn*(k -1) +nn*(j -1) +i
1194 in = cs_loc(cs_loc(ie -1) + is)
1196 term = 4 * c * val_plax(ipl,1) * ww
1197 fmat(fn,(3*(in -1) +1)) = fmat(fn
1199 prova = 3*(in -1) +1
1209 elseif ((sum_node_bottom.eq.14).or.(sum_node_bottom.eq.
then
1214 if (sum_node_bottom.eq.14)
then
1227 if (mod(nn-1,2).eq.0)
then
1232 j = (int((nn-1)/2))+num_sit(sit)
1237 dxdx = alfa11(ie) +beta12(ie)*ct(k)
1238 + beta13(ie)*ct(j) +gamma1(ie
1239 dydx = alfa21(ie) +beta22(ie)*ct(k)
1240 + beta23(ie)*ct(j) +gamma2(ie
1241 dzdx = alfa31(ie) +beta32(ie)*ct(k)
1242 + beta33(ie)*ct(j) +gamma3(ie
1243 dxdy = alfa12(ie) +beta11(ie)*ct(k)
1244 + beta13(ie)*ct(i) +gamma1(ie
1245 dydy = alfa22(ie) +beta21(ie)*ct(k)
1246 + beta23(ie)*ct(i) +gamma2(ie
1247 dzdy = alfa32(ie) +beta31(ie)*ct(k)
1248 + beta33(ie)*ct(i) +gamma3(ie
1249 dxdz = alfa13(ie) +beta11(ie)*ct(j)
1250 + beta12(ie)*ct(i) +gamma1(ie
1251 dydz = alfa23(ie) +beta21(ie)*ct(j)
1252 + beta22(ie)*ct(i) +gamma2(ie
1253 dzdz = alfa33(ie) +beta31(ie)*ct(j)
1254 + beta32(ie)*ct(i) +gamma3(ie
1255 det_j = dxdz * (dydx*dzdy - dzdx*dydy
1256 - dydz * (dxdx*dzdy - dzdx*dxdy
1257 + dzdz * (dxdx*dydy - dydx*dxdy
1259 is = nn*nn*(k -1) +nn*(j -1) +i
1260 in = cs_loc(cs_loc(ie -1) +is)
1262 term = 4 * c * val_plax(ipl,1) * ww
1264 prova = 3*(in -1) +1
1267 fmat(fn,(3*(in -1) +1)) = fmat(fn,(
1275 elseif (sum_node_bottom.eq.18)
then
1279 if ((sum_node_bottom_first3.eq.10) .or.(sum_node_bottom_first3.eq.
1280 .or.(sum_node_bottom_first3.eq.14))
then
1293 if (mod(nn-1,2).eq.0)
then
1298 i = (int((nn-1)/2))+num_sit(sit)
1303 dxdx = alfa11(ie) +beta12(ie)*ct(k
1304 + beta13(ie)*ct(j) +gamma1(ie
1305 dydx = alfa21(ie) +beta22(ie)*ct(k
1306 + beta23(ie)*ct(j) +gamma2(ie
1307 dzdx = alfa31(ie) +beta32(ie)*ct(k
1308 + beta33(ie)*ct(j) +gamma3(ie
1309 dxdy = alfa12(ie) +beta11(ie)*ct(k
1310 + beta13(ie)*ct(i) +gamma1(ie
1311 dydy = alfa22(ie) +beta21(ie)*ct(k
1312 + beta23(ie)*ct(i) +gamma2(ie
1313 dzdy = alfa32(ie) +beta31(ie)*ct(k
1314 + beta33(ie)*ct(i) +gamma3(ie
1315 dxdz = alfa13(ie) +beta11(ie)*ct(j
1316 + beta12(ie)*ct(i) +gamma1(ie
1317 dydz = alfa23(ie) +beta21(ie)*ct(j
1318 + beta22(ie)*ct(i) +gamma2(ie
1319 dzdz = alfa33(ie) +beta31(ie)*ct(j
1320 + beta32(ie)*ct(i) +gamma3(ie
1321 det_j = dxdz * (dydx*dzdy - dzdx*dydy
1325 is = nn*nn*(k -1) +nn*(j -1) +i
1326 in = cs_loc(cs_loc(ie -1) +is)
1328 term = 4 * c * val_plax(ipl,1) * ww
1329 fmat(fn,(3*(in -1) +1)) = fmat(fn,
1344 if (nl_play.gt.0)
then
1347 if (tag_mat(im).eq.tag_play(ipl))
then
1350 sum_node_bottom1 = 0
1351 sum_node_bottom2 = 0
1352 last_node_bottom1 = 0
1353 last_node_bottom2 = 0
1356 ie_glob = local_el_num(ie)
1360 if(ic1 .ne. 0 .and. ic2 .ne. 0)
then
1361 if (dabs(zs_loc(ic1) - zs_loc(ic2)) .le.
then
1363 last_node_bottom1 = i
1364 sum_node_bottom1 = sum_node_bottom1
1365 z_node_bottom1 = zs_loc(ic1)
1367 last_node_bottom2 = i
1368 sum_node_bottom2 = sum_node_bottom2
1369 z_node_bottom2 = zs_loc(ic2)
1374 if (z_node_bottom1.lt.z_node_bottom2)
then
1375 sum_node_bottom = sum_node_bottom1
1376 sum_node_bottom_first3 = sum_node_bottom1
1378 sum_node_bottom = sum_node_bottom2
1379 sum_node_bottom_first3 = sum_node_bottom2
1387 ellez=dabs(z_node_bottom1 - z_node_bottom2)
1391 if (fun_play(ipl).eq.tag_func(ifun)) fn = ifun
1397 if ((sum_node_bottom.eq.10).or.(sum_node_bottom.eq.
then
1402 if (sum_node_bottom.eq.10)
then
1415 if (mod(nn-1,2).eq.0)
then
1420 k = (int((nn-1)/2))+num_sit(sit)
1425 dxdx = alfa11(ie) +beta12(ie)*ct(k
1426 + beta13(ie)*ct(j) +gamma1(ie
1427 dydx = alfa21(ie) +beta22(ie)*ct(k
1428 + beta23(ie)*ct(j) +gamma2(ie
1429 dzdx = alfa31(ie) +beta32(ie)*ct(k
1430 + beta33(ie)*ct(j) +gamma3(ie
1431 dxdy = alfa12(ie) +beta11(ie)*ct(k
1432 + beta13(ie)*ct(i) +gamma1(ie
1433 dydy = alfa22(ie) +beta21(ie)*ct(k
1434 + beta23(ie)*ct(i) +gamma2(ie
1435 dzdy = alfa32(ie) +beta31(ie)*ct(k
1436 + beta33(ie)*ct(i) +gamma3(ie
1437 dxdz = alfa13(ie) +beta11(ie)*ct(j
1438 + beta12(ie)*ct(i) +gamma1(ie
1439 dydz = alfa23(ie) +beta21(ie)*ct(j
1440 + beta22(ie)*ct(i) +gamma2(ie
1441 dzdz = alfa33(ie) +beta31(ie)*ct(j
1442 + beta32(ie)*ct(i) +gamma3(ie
1444 det_j = dxdz * (dydx*dzdy - dzdx*dydy
1445 - dydz * (dxdx*dzdy - dzdx*dxdy
1446 + dzdz * (dxdx*dydy - dydx*dxdy
1448 is = nn*nn*(k -1) +nn*(j -1) +i
1449 in = cs_loc(cs_loc(ie -1) +is)
1451 term = 4 * c * val_play(ipl,1) * ww
1452 fmat(fn,(3*(in -1) +2)) = fmat(fn,
1461 elseif ((sum_node_bottom.eq.14).or.(sum_node_bottom.eq.
then
1465 if (sum_node_bottom.eq.14)
then
1478 if (mod(nn-1,2).eq.0)
then
1483 j = (int((nn-1)/2))+num_sit(sit)
1489 dxdx = alfa11(ie) +beta12(ie)*ct(k)
1490 + beta13(ie)*ct(j) +gamma1(ie)*ct
1491 dydx = alfa21(ie) +beta22(ie)*ct(k)
1492 + beta23(ie)*ct(j) +gamma2(ie)*ct
1493 dzdx = alfa31(ie) +beta32(ie)*ct(k)
1494 + beta33(ie)*ct(j) +gamma3(ie)*ct
1495 dxdy = alfa12(ie) +beta11(ie)*ct(k)
1496 + beta13(ie)*ct(i) +gamma1(ie)*ct
1497 dydy = alfa22(ie) +beta21(ie)*ct(k)
1498 + beta23(ie)*ct(i) +gamma2(ie)*ct
1499 dzdy = alfa32(ie) +beta31(ie)*ct(k)
1500 + beta33(ie)*ct(i) +gamma3(ie)*ct
1501 dxdz = alfa13(ie) +beta11(ie)*ct(j)
1502 + beta12(ie)*ct(i) +gamma1(ie)*ct
1503 dydz = alfa23(ie) +beta21(ie)*ct(j)
1504 + beta22(ie)*ct(i) +gamma2(ie)*ct
1505 dzdz = alfa33(ie) +beta31(ie)*ct(j)
1506 + beta32(ie)*ct(i) +gamma3(ie)*ct
1507 det_j = dxdz * (dydx*dzdy - dzdx*dydy
1508 - dydz * (dxdx*dzdy - dzdx*dxdy
1509 + dzdz * (dxdx*dydy - dydx*dxdy
1511 is = nn*nn*(k -1) +nn*(j -1) +i
1512 in = cs_loc(cs_loc(ie -1) +is)
1514 term = 4 * c * val_play(ipl,1) * ww(i
1515 fmat(fn,(3*(in -1) +2)) = fmat(fn,(3
1523 elseif (sum_node_bottom.eq.18)
then
1527 if ((sum_node_bottom_first3.eq.10) &
1528 .or.(sum_node_bottom_first3.eq.13) &
1529 .or.(sum_node_bottom_first3.eq.14))
then
1542 if (mod(nn-1,2).eq.0)
then
1547 i = (int((nn-1)/2))+num_sit(sit)
1553 dxdx = alfa11(ie) +beta12(ie)*ct(k)
1554 + beta13(ie)*ct(j) +gamma1(ie)*ct
1555 dydx = alfa21(ie) +beta22(ie)*ct(k)
1556 + beta23(ie)*ct(j) +gamma2(ie)*ct
1557 dzdx = alfa31(ie) +beta32(ie)*ct(k)
1558 + beta33(ie)*ct(j) +gamma3(ie)*ct
1559 dxdy = alfa12(ie) +beta11(ie)*ct(k)
1560 + beta13(ie)*ct(i) +gamma1(ie)*ct
1561 dydy = alfa22(ie) +beta21(ie)*ct(k)
1562 + beta23(ie)*ct(i) +gamma2(ie)*ct
1563 dzdy = alfa32(ie) +beta31(ie)*ct(k)
1564 + beta33(ie)*ct(i) +gamma3(ie)*ct
1565 dxdz = alfa13(ie) +beta11(ie)*ct(j)
1566 + beta12(ie)*ct(i) +gamma1(ie)*ct
1567 dydz = alfa23(ie) +beta21(ie)*ct(j)
1568 + beta22(ie)*ct(i) +gamma2(ie)*ct
1569 dzdz = alfa33(ie) +beta31(ie)*ct(j)
1570 + beta32(ie)*ct(i) +gamma3(ie)*ct
1571 det_j = dxdz * (dydx*dzdy - dzdx*dydy
1572 - dydz * (dxdx*dzdy - dzdx*dxdy
1573 + dzdz * (dxdx*dydy - dydx*dxdy
1575 is = nn*nn*(k -1) +nn*(j -1) +i
1576 in = cs_loc(cs_loc(ie -1) +is)
1578 term = 4 * c * val_play(ipl,1) * ww(j
1579 fmat(fn,(3*(in -1) +2)) = fmat(fn,(3
1593 if (nl_plaz.gt.0)
then
1596 if (tag_mat(im).eq.tag_plaz(ipl))
then
1599 sum_node_bottom1 = 0
1600 sum_node_bottom2 = 0
1601 last_node_bottom1 = 0
1602 last_node_bottom2 = 0
1605 ie_glob = local_el_num(ie)
1609 if(ic1 .ne. 0 .and. ic2 .ne. 0)
then
1610 if (dabs(zs_loc(ic1) - zs_loc(ic2)) .le.
then
1611 last_node_bottom1 = i
1612 sum_node_bottom1 = sum_node_bottom1
1613 z_node_bottom1 = zs_loc(ic1)
1615 last_node_bottom2 = i
1616 sum_node_bottom2 = sum_node_bottom2
1617 z_node_bottom2 = zs_loc(ic2)
1622 if (z_node_bottom1.lt.z_node_bottom2)
then
1623 sum_node_bottom = sum_node_bottom1
1624 sum_node_bottom_first3 = sum_node_bottom1
1626 sum_node_bottom = sum_node_bottom2
1627 sum_node_bottom_first3 = sum_node_bottom2
1634 c=dsqrt((lambda+2*mu)*rho)
1635 ellez=dabs(z_node_bottom1 - z_node_bottom2)
1639 if (fun_plaz(ipl).eq.tag_func(ifun)) fn = ifun
1645 if ((sum_node_bottom.eq.10).or.(sum_node_bottom.eq.
then
1650 if (sum_node_bottom.eq.10)
then
1663 if (mod(nn-1,2).eq.0)
then
1668 k = (int((nn-1)/2))+num_sit(sit)
1673 dxdx = alfa11(ie) +beta12(ie)*ct
1674 + beta13(ie)*ct(j) +gamma1(ie
1675 dydx = alfa21(ie) +beta22(ie)*ct
1676 + beta23(ie)*ct(j) +gamma2(ie
1677 dzdx = alfa31(ie) +beta32(ie)*ct
1678 + beta33(ie)*ct(j) +gamma3(ie
1679 dxdy = alfa12(ie) +beta11(ie)*ct
1680 + beta13(ie)*ct(i) +gamma1(ie
1681 dydy = alfa22(ie) +beta21(ie)*ct
1682 + beta23(ie)*ct(i) +gamma2(ie
1683 dzdy = alfa32(ie) +beta31(ie)*ct
1684 + beta33(ie)*ct(i) +gamma3(ie
1685 dxdz = alfa13(ie) +beta11(ie)*ct
1686 + beta12(ie)*ct(i) +gamma1(ie
1687 dydz = alfa23(ie) +beta21(ie)*ct
1688 + beta22(ie)*ct(i) +gamma2(ie
1689 dzdz = alfa33(ie) +beta31(ie)*ct
1690 + beta32(ie)*ct(i) +gamma3(ie
1691 det_j = dxdz * (dydx*dzdy - dzdx
1692 - dydz * (dxdx*dzdy - dzdx
1693 + dzdz * (dxdx*dydy - dydx
1695 is = nn*nn*(k -1) +nn*(j -1) +i
1696 in = cs_loc(cs_loc(ie -1) +is)
1698 term = 4 * c * val_plaz(ipl,1)
1699 fmat(fn,(3*(in -1) +3)) = fmat(fn
1708 elseif ((sum_node_bottom.eq.14).or.(sum_node_bottom.eq.
then
1712 if (sum_node_bottom.eq.14)
then
1725 if (mod(nn-1,2).eq.0)
then
1730 j = (int((nn-1)/2))+num_sit(sit)
1735 dxdx = alfa11(ie) +beta12(ie)*ct
1736 + beta13(ie)*ct(j) +gamma1(ie
1737 dydx = alfa21(ie) +beta22(ie)*ct
1738 + beta23(ie)*ct(j) +gamma2(ie
1739 dzdx = alfa31(ie) +beta32(ie)*ct
1740 + beta33(ie)*ct(j) +gamma3(ie
1742 dxdy = alfa12(ie) +beta11(ie)*ct
1743 + beta13(ie)*ct(i) +gamma1(ie
1744 dydy = alfa22(ie) +beta21(ie)*ct
1745 + beta23(ie)*ct(i) +gamma2(ie
1746 dzdy = alfa32(ie) +beta31(ie)*ct
1747 + beta33(ie)*ct(i) +gamma3(ie
1749 dxdz = alfa13(ie) +beta11(ie)*ct
1750 + beta12(ie)*ct(i) +gamma1(ie
1751 dydz = alfa23(ie) +beta21(ie)*ct
1752 + beta22(ie)*ct(i) +gamma2(ie
1753 dzdz = alfa33(ie) +beta31(ie)*ct
1754 + beta32(ie)*ct(i) +gamma3(ie
1756 det_j = dxdz * (dydx*dzdy - dzdx
1757 - dydz * (dxdx*dzdy - dzdx
1758 + dzdz * (dxdx*dydy - dydx
1760 is = nn*nn*(k -1) +nn*(j -1) +i
1761 in = cs_loc(cs_loc(ie -1) +is)
1763 term = 4 * c * val_plaz(ipl,1)
1764 fmat(fn,(3*(in -1) +3)) = fmat(fn
1772 elseif (sum_node_bottom.eq.18)
then
1776 if ((sum_node_bottom_first3.eq.10) &
1777 .or.(sum_node_bottom_first3.eq.13) &
1778 .or.(sum_node_bottom_first3.eq.14))
then
1791 if (mod(nn-1,2).eq.0)
then
1796 i = (int((nn-1)/2))+num_sit(sit)
1802 dxdx = alfa11(ie) +beta12(ie)*ct(k)
1803 + beta13(ie)*ct(j) +gamma1(ie)
1804 dydx = alfa21(ie) +beta22(ie)*ct(k)
1805 + beta23(ie)*ct(j) +gamma2(ie)
1806 dzdx = alfa31(ie) +beta32(ie)*ct(k)
1807 + beta33(ie)*ct(j) +gamma3(ie)
1809 dxdy = alfa12(ie) +beta11(ie)*ct(k)
1810 + beta13(ie)*ct(i) +gamma1(ie)
1811 dydy = alfa22(ie) +beta21(ie)*ct(k)
1812 + beta23(ie)*ct(i) +gamma2(ie)
1813 dzdy = alfa32(ie) +beta31(ie)*ct(k)
1814 + beta33(ie)*ct(i) +gamma3(ie)
1816 dxdz = alfa13(ie) +beta11(ie)*ct(j)
1817 + beta12(ie)*ct(i) +gamma1(ie)
1818 dydz = alfa23(ie) +beta21(ie)*ct(j)
1819 + beta22(ie)*ct(i) +gamma2(ie)
1820 dzdz = alfa33(ie) +beta31(ie)*ct(j)
1821 + beta32(ie)*ct(i) +gamma3(ie)
1823 det_j = dxdz * (dydx*dzdy - dzdx*dydy
1824 - dydz * (dxdx*dzdy - dzdx*dxdy
1825 + dzdz * (dxdx*dydy - dydx*dxdy
1827 is = nn*nn*(k -1) +nn*(j -1) +i
1828 in = cs_loc(cs_loc(ie -1) +is)
1830 term = 4 * c * val_plaz(ipl,1)
1831 fmat(fn,(3*(in -1) +3)) = fmat(fn
1855 if (nl_sism.gt.0)
then
1857 do isism = 1, nl_sism
1858 do ipsism = 1, num_ns(isism)
1863 if (fun_sism(isism).eq.tag_func(ifun)) fn = ifun
1870 dxdx = alfa11(ie) +beta12(ie)*ct(k) &
1871 + beta13(ie)*ct(j) +gamma1(ie)*ct
1872 dydx = alfa21(ie) +beta22(ie)*ct(k) &
1873 + beta23(ie)*ct(j) +gamma2(ie)*ct
1874 dzdx = alfa31(ie) +beta32(ie)*ct(k) &
1875 + beta33(ie)*ct(j) +gamma3(ie)*ct
1877 dxdy = alfa12(ie) +beta11(ie)*ct(k) &
1878 + beta13(ie)*ct(i) +gamma1(ie)*ct
1879 dydy = alfa22(ie) +beta21(ie)*ct(k) &
1880 + beta23(ie)*ct(i) +gamma2(ie)*ct
1881 dzdy = alfa32(ie) +beta31(ie)*ct(k) &
1882 + beta33(ie)*ct(i) +gamma3(ie)*ct
1884 dxdz = alfa13(ie) +beta11(ie)*ct(j) &
1885 + beta12(ie)*ct(i) +gamma1(ie)*ct
1886 dydz = alfa23(ie) +beta21(ie)*ct(j) &
1887 + beta22(ie)*ct(i) +gamma2(ie)*ct
1888 dzdz = alfa33(ie) +beta31(ie)*ct(j) &
1889 + beta32(ie)*ct(i) +gamma3(ie)*ct
1891 det_j = dxdz * (dydx*dzdy - dzdx*dydy)
1892 - dydz * (dxdx*dzdy - dzdx*dxdy)
1893 + dzdz * (dxdx*dydy - dydx*dxdy)
1895 is = nn*nn*(k -1) +nn*(j -1) +i
1896 in = cs_loc(cs_loc(ie -1) +is)
1899 if (local_n_num(in) .eq. sour_ns(ipsism
then
1900 facsmom(isism,1) = facsmom(isism
1901 facsmom(isism,2) = facsmom(isism
1902 facsmom(isism,3) = facsmom(isism
1903 facsmom(isism,4) = facsmom(isism
1904 facsmom(isism,5) = facsmom(isism
1905 facsmom(isism,6) = facsmom(isism
1907 length_cns = length_cns + 1
1931 if (nl_expl.gt.0)
then
1932 do iexpl = 1,nl_expl
1933 do ipexpl = 1,num_ne(iexpl)
1937 if (fun_expl(iexpl).eq.tag_func(ifun)) fn = ifun
1944 dxdx = alfa11(ie) +beta12(ie)*ct(k) &
1945 + beta13(ie)*ct(j) +gamma1(ie)*ct
1946 dydx = alfa21(ie) +beta22(ie)*ct(k) &
1947 + beta23(ie)*ct(j) +gamma2(ie)*ct
1948 dzdx = alfa31(ie) +beta32(ie)*ct(k) &
1949 + beta33(ie)*ct(j) +gamma3(ie)*ct
1951 dxdy = alfa12(ie) +beta11(ie)*ct(k) &
1952 + beta13(ie)*ct(i) +gamma1(ie)*ct
1953 dydy = alfa22(ie) +beta21(ie)*ct(k) &
1954 + beta23(ie)*ct(i) +gamma2(ie)*ct
1955 dzdy = alfa32(ie) +beta31(ie)*ct(k) &
1956 + beta33(ie)*ct(i) +gamma3(ie)*ct
1958 dxdz = alfa13(ie) +beta11(ie)*ct(j) &
1959 + beta12(ie)*ct(i) +gamma1(ie)*ct
1960 dydz = alfa23(ie) +beta21(ie)*ct(j) &
1961 + beta22(ie)*ct(i) +gamma2(ie)*ct
1962 dzdz = alfa33(ie) +beta31(ie)*ct(j) &
1963 + beta32(ie)*ct(i) +gamma3(ie)*ct
1965 det_j = dxdz * (dydx*dzdy - dzdx*dydy)
1966 - dydz * (dxdx*dzdy - dzdx*dxdy)
1967 + dzdz * (dxdx*dydy - dydx*dxdy)
1969 is = nn*nn*(k -1) +nn*(j -1) +i
1970 in = cs_loc(cs_loc(ie -1) +is)
1972 if (local_n_num(in) .eq. sour_ne(ipexpl
then
1973 facsexpl(iexpl,1) = facsexpl(iexpl
1974 facsexpl(iexpl,2) = facsexpl(iexpl
1975 facsexpl(iexpl,3) = facsexpl(iexpl
1976 facsexpl(iexpl,4) = facsexpl(iexpl
1977 facsexpl(iexpl,5) = facsexpl(iexpl
1978 facsexpl(iexpl,6) = facsexpl(iexpl
1980 length_cne = length_cne + 1
2000 deallocate(ct,dd,ww)
2009 if (nl_sism.gt.0)
then
2010 do isism = 1,nl_sism
2011 call mpi_barrier(mpi_comm,mpi_ierr)
2012 call mpi_allreduce(facsmom(isism,:),sum_facs, 6, speed_double
2013 facsmom(isism,:) = sum_facs
2018 if (nl_sism.gt.0)
then
2019 if (srcmodflag.eq.0)
then
2021 elseif (srcmodflag.eq.1)
then
2024 do isism = 1,nl_sism
2025 slip1_sism = val_sism(isism,val_st + 1)
2026 slip2_sism = val_sism(isism,val_st + 2)
2027 slip3_sism = val_sism(isism,val_st + 3)
2029 norm1_sism = val_sism(isism,val_st + 4)
2030 norm2_sism = val_sism(isism,val_st + 5)
2031 norm3_sism = val_sism(isism,val_st + 6)
2033 amp_sism = val_sism(isism,val_st + 8)
2035 tau_sism = val_sism(isism,val_st + 9)
2040 if(facsmom(isism,1) .ne. 0) &
2041 facsmom(isism,1) = 1/facsmom(isism
2042 * (slip1_sism*norm1_sism+slip1_sism
2044 if(facsmom(isism,2) .ne. 0) &
2045 facsmom(isism,2) = 1/facsmom(isism
2046 * (slip2_sism*norm2_sism+slip2_sism
2048 if(facsmom(isism,3) .ne. 0) &
2049 facsmom(isism,3) = 1/facsmom(isism
2050 * (slip3_sism*norm3_sism+slip3_sism
2052 if(facsmom(isism,4) .ne. 0) &
2053 facsmom(isism,4) = 1/facsmom(isism
2054 * (slip2_sism*norm3_sism+slip3_sism
2056 if(facsmom(isism,5) .ne. 0) &
2057 facsmom(isism,5) = 1/facsmom(isism
2058 * (slip1_sism*norm3_sism+slip3_sism
2060 if(facsmom(isism,6) .ne. 0) &
2061 facsmom(isism,6) = 1/facsmom(isism
2062 * (slip1_sism*norm2_sism+slip2_sism
2065 tausmom(isism,1) = tau_sism
2108 if (nl_expl.gt.0)
then
2109 do iexpl = 1,nl_expl
2111 call mpi_barrier(mpi_comm,mpi_ierr)
2112 call mpi_allreduce(facsexpl(iexpl,:),sum_facs, 6, speed_double
2113 facsexpl(iexpl,:) = sum_facs
2119 if (nl_expl.gt.0)
then
2121 do iexpl = 1,nl_expl
2122 slip1_expl = val_expl(iexpl,13)
2123 slip2_expl = val_expl(iexpl,14)
2124 slip3_expl = val_expl(iexpl,15)
2126 norm1_expl = val_expl(iexpl,16)
2127 norm2_expl = val_expl(iexpl,17)
2128 norm3_expl = val_expl(iexpl,18)
2130 amp_expl = val_expl(iexpl,20)
2132 facsexpl(iexpl,1) = 1/facsexpl(iexpl,1) &
2135 facsexpl(iexpl,2) = 1/facsexpl(iexpl,2) &
2138 facsexpl(iexpl,3) = 1/facsexpl(iexpl,3) &
2141 facsexpl(iexpl,4) = 1/facsexpl(iexpl,4) &
2144 facsexpl(iexpl,5) = 1/facsexpl(iexpl,5) &
2147 facsexpl(iexpl,6) = 1/facsexpl(iexpl,6) &
2157 ne_loc = cs_loc(0) -1
2160 im = cs_loc(cs_loc(ie -1) +0);
2161 nn = sdeg_mat(im) +1
2163 allocate(ct(nn),ww(nn),dd(nn,nn))
2165 rho = prop_mat(im,1)
2166 lambda = prop_mat(im,2)
2169 if (n_test.gt.0)
then
2175 if (fun_test(ip).eq.tag_func(ifun)) fn = ifun
2180 rho = prop_mat(im,1); lambda = prop_mat(im,2); mu = prop_mat
2186 dxdx = alfa11(ie) +beta12(ie)*ct(k) &
2187 + beta13(ie)*ct(j) +gamma1(ie)*ct(j)*ct(k)
2188 dydx = alfa21(ie) +beta22(ie)*ct(k) &
2189 + beta23(ie)*ct(j) +gamma2(ie)*ct(j)*ct(k)
2190 dzdx = alfa31(ie) +beta32(ie)*ct(k) &
2191 + beta33(ie)*ct(j) +gamma3(ie)*ct(j)*ct(k)
2193 dxdy = alfa12(ie) +beta11(ie)*ct(k) &
2194 + beta13(ie)*ct(i) +gamma1(ie)*ct(k)*ct(i)
2195 dydy = alfa22(ie) +beta21(ie)*ct(k) &
2196 + beta23(ie)*ct(i) +gamma2(ie)*ct(k)*ct(i)
2197 dzdy = alfa32(ie) +beta31(ie)*ct(k) &
2198 + beta33(ie)*ct(i) +gamma3(ie)*ct(k)*ct(i)
2200 dxdz = alfa13(ie) +beta11(ie)*ct(j) &
2201 + beta12(ie)*ct(i) +gamma1(ie)*ct(i)*ct(j)
2202 dydz = alfa23(ie) +beta21(ie)*ct(j) &
2203 + beta22(ie)*ct(i) +gamma2(ie)*ct(i)*ct(j)
2204 dzdz = alfa33(ie) +beta31(ie)*ct(j) &
2205 + beta32(ie)*ct(i) +gamma3(ie)*ct(i)*ct(j)
2207 det_j = dxdz * (dydx*dzdy - dzdx*dydy) &
2208 - dydz * (dxdx*dzdy - dzdx*dxdy) &
2209 + dzdz * (dxdx*dydy - dydx*dxdy)
2211 is = nn*nn*(k -1) +nn*(j -1) +i
2212 in = cs_loc(cs_loc(ie -1) +is)
2215 x = xs_loc(in); y = ys_loc(in); z = zs_loc(in
2218 fmat(fn,(3*(in -1) +1)) = fmat(fn,(3*(in -1)
2219 4.d0*pi**2.d0*dcos(pi*y)*dcos(pi*z)*dsin
2220 (2.d0*lambda - 8.d0*mu + 9.d0*rho - 4.d0
2221 + 8.d0*mu*dcos(pi*x)**2.d0 - 9.d0*rho*dcos
2223 fmat(fn,(3*(in -1) +2)) = fmat(fn,(3*(in -1)
2224 4.d0*pi**2.d0*dcos(pi*x)*dcos(pi*z)*dsin
2225 (2.d0*lambda + 12.d0*mu - 9.d0*rho - 4.d0
2226 - 16.d0*mu*dcos(pi*y)**2.d0 + 9.d0*rho*dcos
2228 fmat(fn,(3*(in -1) +3)) = fmat(fn,(3*(in -1)
2229 4.d0*pi**2.d0*dcos(pi*x)*dcos(pi*y)*dsin
2230 (2.d0*lambda + 12.d0*mu - 9.d0*rho - 4.d0
2231 - 16.d0*mu*dcos(pi*z)**2.d0 + 9.d0*rho*dcos
2240 deallocate(ct,ww,dd)
2244if (cs_nnz_bc_loc.gt.0)
then
2245nface_loc = cs_bc_loc(0) -1
2250nn = int(sqrt(real(cs_bc_loc(ie) - cs_bc_loc(ie -1) -1)))
2252allocate(ct(nn),ww(nn),dd(nn,nn))
2256ic1 = cs_bc_loc(cs_bc_loc(ie -1) +nn*nn)
2257ic2 = cs_bc_loc(cs_bc_loc(ie -1) +1)
2258ic3 = cs_bc_loc(cs_bc_loc(ie -1) +nn*(nn -1) +1)
2259ic4 = cs_bc_loc(cs_bc_loc(ie -1) +nn)
2269if (ic1 .ne. 0 .and. ic2 .ne. 0 .and. ic3 .ne. 0 .and. ic4 .ne. 0)
then
2271l1x = xs_loc(ic1) - xs_loc(ic2)
2272l1y = ys_loc(ic1) - ys_loc(ic2)
2273l1z = zs_loc(ic1) - zs_loc(ic2)
2275l2x = xs_loc(ic3) - xs_loc(ic4)
2276l2y = ys_loc(ic3) - ys_loc(ic4)
2277l2z = zs_loc(ic3) - zs_loc(ic4)
2279area = l1y*l2z -l1z*l2y +l1z*l2x -l1x*l2z +l1x*l2y -l1y*l2x
2280area = dabs(0.5d0*area)
2285if (nl_neux.gt.0)
then
2287 if (tag_neux(il).eq.cs_bc_loc(cs_bc_loc(ie -1) +0))
then
2290 if (fun_neux(il).eq.tag_func(ifun)) fn = ifun
2303 in = cs_bc_loc(cs_bc_loc(ie -1) +is)
2304 v = 0.25*(1.0 -ct(i))*(1.0 -ct(j))*v1 &
2305 + 0.25*(1.0 +ct(i))*(1.0 -ct(j))*v2 &
2306 + 0.25*(1.0 +ct(i))*(1.0 +ct(j))*v3 &
2307 + 0.25*(1.0 -ct(i))*(1.0 +ct(j))*v4
2309 term = 0.25*area*v * ww(i)*ww(j)
2311 fmat(fn,(3*(in -1) +1)) = fmat(fn,(3*(in -1) +1)) + term
2320if (nl_neuy.gt.0)
then
2322 if (tag_neuy(il).eq.cs_bc_loc(cs_bc_loc(ie -1) +0))
then
2325 if (fun_neuy(il).eq.tag_func(ifun)) fn = ifun
2337 in = cs_bc_loc(cs_bc_loc(ie -1) +is)
2338 v = 0.25*(1.0 -ct(i))*(1.0 -ct(j))*v1 &
2339 + 0.25*(1.0 +ct(i))*(1.0 -ct(j))*v2 &
2340 + 0.25*(1.0 +ct(i))*(1.0 +ct(j))*v3 &
2341 + 0.25*(1.0 -ct(i))*(1.0 +ct(j))*v4
2343 term = 0.25*area*v * ww(i)*ww(j)
2345 fmat(fn,(3*(in -1) +2)) = fmat(fn,(3*(in -1) +2)) + term
2354if (nl_neuz.gt.0)
then
2356 if (tag_neuz(il).eq.cs_bc_loc(cs_bc_loc(ie -1) +0))
then
2359 if (fun_neuz(il).eq.tag_func(ifun)) fn = ifun
2371 in = cs_bc_loc(cs_bc_loc(ie -1) +is)
2372 v = 0.25*(1.0 -ct(i))*(1.0 -ct(j))*v1 &
2373 + 0.25*(1.0 +ct(i))*(1.0 -ct(j))*v2 &
2374 + 0.25*(1.0 +ct(i))*(1.0 +ct(j))*v3 &
2375 + 0.25*(1.0 -ct(i))*(1.0 +ct(j))*v4
2377 term = 0.25*area*v * ww(i)*ww(j)
2379 fmat(fn,(3*(in -1) +3)) = fmat(fn,(3*(in -1) +3)) + term
2389if (nl_neun.gt.0)
then
2391 if (tag_neun(il).eq.cs_bc_loc(cs_bc_loc(ie -1) +0))
then
2394 if (fun_neun(il).eq.tag_func(ifun)) fn = ifun
2399 rho = prop_mat(1,1); lambda = prop_mat(1,2); mu = prop_mat(1,3)
2405 omega = val_neun(il,4)*2*pi
2407 vp = dsqrt((lambda+2*mu)/rho)
2419 in = cs_bc_loc(cs_bc_loc(ie -1) +is)
2421 x = xs_loc(in); y = ys_loc(in); z = zs_loc(in);
2423 do index = 1,nelem_neun
2424 if (i4normal(index) .eq. ie) index_vector = index
2427 n1 = normal_nx_el_neun(index_vector)
2428 n2 = normal_ny_el_neun(index_vector)
2429 n3 = normal_nz_el_neun(index_vector)
2434 if (tag_func(fn) .eq. 202)
then
2435 v1 = k3*lambda*n1*cos(k1*x + k2*y + k3*z) + k1*mu*n3*cos
2436 v2 = k3*lambda*n2*cos(k1*x + k2*y + k3*z) + k2*mu*n3*cos
2437 v3 = n3*(k3*lambda*cos(k1*x + k2*y + k3*z) + 2*k3*mu*cos
2438 + k1*mu*n1*cos(k1*x + k2*y + k3*z) + k2*mu*n2*cos(k1*x
2440 v1 = -v1; v2 = -v2; v3 = -v3;
2442 elseif(tag_func(fn) .eq. 203)
then
2443 v1 = - k3*lambda*n1*sin(k1*x + k2*y + k3*z) - k1*mu*n3*sin
2444 v2 = - k3*lambda*n2*sin(k1*x + k2*y + k3*z) - k2*mu*n3*sin
2445 v3 = - n3*(k3*lambda*sin(k1*x + k2*y + k3*z) + 2*k3*mu*sin
2446 - k1*mu*n1*sin(k1*x + k2*y + k3*z) - k2*mu*n2*sin(k1
2448 v1 = -v1; v2 = -v2; v3 = -v3;
2450 write(*,*)
'Case not implemented!!! Check inputs.'
2454 if (n_test.gt.0)
then
2456 v1 = n1*(lambda*(2*pi*cos(pi*y)*sin(2*pi*x)*sin(pi*y)*sin(
2457 - 2*pi*cos(pi*x)*sin(pi*x)*sin(2*pi*y)*sin(2*pi*z) &
2458 + 2*pi*cos(pi*z)*sin(2*pi*x)*sin(2*pi*y)*sin(pi*z)) -
2459 4*mu*pi*cos(pi*x)*sin(pi*x)*sin(2*pi*y)*sin(2*pi*z))
2460 + mu*n2*(2*pi*cos(2*pi*x)*sin(pi*y)**2*sin(2*pi*z) &
2461 - 2*pi*cos(2*pi*y)*sin(pi*x)**2*sin(2*pi*z)) &
2462 + mu*n3*(2*pi*cos(2*pi*x)*sin(2*pi*y)*sin(pi*z)**2 &
2463 - 2*pi*cos(2*pi*z)*sin(pi*x)**2*sin(2*pi*y))
2464 v2 = n2*(lambda*(2*pi*cos(pi*y)*sin(2*pi*x)*sin(pi*y)*sin(2
2465 - 2*pi*cos(pi*x)*sin(pi*x)*sin(2*pi*y)*sin(2*pi*z) &
2466 + 2*pi*cos(pi*z)*sin(2*pi*x)*sin(2*pi*y)*sin(pi*z)) &
2467 + 4*mu*pi*cos(pi*y)*sin(2*pi*x)*sin(pi*y)*sin(2*pi*z)) &
2468 + mu*n1*(2*pi*cos(2*pi*x)*sin(pi*y)**2*sin(2*pi*z) &
2469 - 2*pi*cos(2*pi*y)*sin(pi*x)**2*sin(2*pi*z)) &
2470 + mu*n3*(2*pi*cos(2*pi*y)*sin(2*pi*x)*sin(pi*z)**2 &
2471 + 2*pi*cos(2*pi*z)*sin(2*pi*x)*sin(pi*y)**2)
2472 v3 = n3*(lambda*(2*pi*cos(pi*y)*sin(2*pi*x)*sin(pi*y)*sin(2
2473 - 2*pi*cos(pi*x)*sin(pi*x)*sin(2*pi*y)*sin(2*pi*z) &
2474 + 2*pi*cos(pi*z)*sin(2*pi*x)*sin(2*pi*y)*sin(pi*z)) &
2475 + 4*mu*pi*cos(pi*z)*sin(2*pi*x)*sin(2*pi*y)*sin(pi*z)) &
2476 + mu*n1*(2*pi*cos(2*pi*x)*sin(2*pi*y)*sin(pi*z)**2 &
2477 - 2*pi*cos(2*pi*z)*sin(pi*x)**2*sin(2*pi*y)) &
2478 + mu*n2*(2*pi*cos(2*pi*y)*sin(2*pi*x)*sin(pi*z)**2 &
2479 + 2*pi*cos(2*pi*z)*sin(2*pi*x)*sin(pi*y)**2)
2482 fmat(fn,(3*(in -1) +1)) = fmat(fn,(3*(in -1) +1)) + 0.2
2483 fmat(fn,(3*(in -1) +2)) = fmat(fn,(3*(in -1) +2)) + 0.2
2484 fmat(fn,(3*(in -1) +3)) = fmat(fn,(3*(in -1) +3)) + 0.2
2496if (nl_dirx.gt.0)
then
2498 if (tag_dirx(il).eq.cs_bc_loc(cs_bc_loc(ie -1) +0))
then
2501 if (fun_dirx(il).eq.tag_func(ifun)) fn = ifun
2513 in = cs_bc_loc(cs_bc_loc(ie -1) +is)
2514 v = 0.25*(1.0 -ct(i))*(1.0 -ct(j))*v1 &
2515 + 0.25*(1.0 +ct(i))*(1.0 -ct(j))*v2 &
2516 + 0.25*(1.0 +ct(i))*(1.0 +ct(j))*v3 &
2517 + 0.25*(1.0 -ct(i))*(1.0 +ct(j))*v4
2519 fmat(fn,(3*(in -1) +1)) = v
2527if (nl_diry.gt.0)
then
2529 if (tag_diry(il).eq.cs_bc_loc(cs_bc_loc(ie -1) +0))
then
2532 if (fun_diry(il).eq.tag_func(ifun)) fn = ifun
2544 in = cs_bc_loc(cs_bc_loc(ie -1) +is)
2545 v = 0.25*(1.0 -ct(i))*(1.0 -ct(j))*v1 &
2546 + 0.25*(1.0 +ct(i))*(1.0 -ct(j))*v2 &
2547 + 0.25*(1.0 +ct(i))*(1.0 +ct(j))*v3 &
2548 + 0.25*(1.0 -ct(i))*(1.0 +ct(j))*v4
2550 fmat(fn,(3*(in -1) +2)) = v
2559if (nl_dirz.gt.0)
then
2561 if (tag_dirz(il).eq.cs_bc_loc(cs_bc_loc(ie -1) +0))
then
2564 if (fun_dirz(il).eq.tag_func(ifun)) fn = ifun
2576 in = cs_bc_loc(cs_bc_loc(ie -1) +is)
2577 v = 0.25*(1.0 -ct(i))*(1.0 -ct(j))*v1 &
2578 + 0.25*(1.0 +ct(i))*(1.0 -ct(j))*v2 &
2579 + 0.25*(1.0 +ct(i))*(1.0 +ct(j))*v3 &
2580 + 0.25*(1.0 -ct(i))*(1.0 +ct(j))*v4
2582 fmat(fn,(3*(in -1) +3)) = v
2593if (nl_neun.gt.0)
deallocate(i4normal, normal_nx_el_neun, normal_ny_el_neun
2594if (nl_poiz.gt.0)
deallocate(node_counter_poiz)
2595if (nl_poiy.gt.0)
deallocate(node_counter_poiy)
2596if (nl_poix.gt.0)
deallocate(node_counter_poix)