34 SUBROUTINE s10cndf1(ICNDS10,WEIGHT ,IAD_CNDM,FR_CNDM,FR_NBCCCND,
35 1 ADDCNCND,PROCNCND,A ,IADCND,FSKYCND,
36 2 ITAGND , NODFTSK,NODLTSK,EFTSK ,ELTSK ,
37 3 ITSK ,ITAB ,STIFN ,STIFND)
45#include
"implicit_f.inc"
58 INTEGER ICNDS10(3,*),WEIGHT(*),IAD_CNDM(*),FR_CNDM(*),FR_NBCCCND(2,*),
59 . ADDCNCND(*),PROCNCND(*),IADCND(2,*),ITAGND(*),ITAB(*)
60 INTEGER NODFTSK,NODLTSK,EFTSK,ELTSK,ITSK
62 . a(3,*),fskycnd(4,*),stifn(*),stifnd(*)
66 INTEGER I, J, N, K,ISIZE,LCOMM,LENS,LENR,NCT,NC,N1,N2,ND,IAD1,IAD2,IK
72 IF (iparit==0.AND.nspmd>1)
THEN
74#include "vectorize.inc"
75 DO i=1,iad_cndm(nspmd+1)-1
77 a(1,j) = a(1,j) * weight(j)
78 a(2,j) = a(2,j) * weight(j)
79 a(3,j) = a(3,j) * weight(j)
80 stifn(j)=stifn(j)* weight(j)
84 IF (iparit/=0.AND.itsk==0) fskycnd(1:4,1:lcncnd)=zero
97 IF (iparit == 0 )
THEN
99#include "vectorize.inc"
101 nd = iabs(icnds10(1,i))
104 IF (itagnd(n1)==0.AND.itagnd(n2)==0) cycle
105 fac = half*weight(nd)
109 stif =
max(zero,fac*(stifn(nd)-stifnd(i)))
110 IF (itagnd(n1)>0)
THEN
112 a(1,n1) = a(1,n1) + fx
113 a(2,n1) = a(2,n1) + fy
114 a(3,n1) = a(3,n1) + fz
115 stifn(n1) = stifn(n1) + stif
117 IF (itagnd(n2)>0)
THEN
119 a(1,n2) = a(1,n2) + fx
120 a(2,n2) = a(2,n2) + fy
121 a(3,n2) = a(3,n2) + fz
122 stifn(n2) = stifn(n2) + stif
131 IF (itagnd(i)>0)
THEN
132 a(1,i) = a(1,i) + a(1,i+ik)
133 a(2,i) = a(2,i) + a(2,i+ik)
134 a(3,i) = a(3,i) + a(3,i+ik)
135 stifn(i) = stifn(i) + stifn(i+ik)
146 IF (nspmd>1.AND.itsk==0)
THEN
147 lcomm =iad_cndm(nspmd+1)-iad_cndm(1)
149 . a ,stifn ,fr_cndm,iad_cndm,lcomm,isize)
152#include "vectorize.inc"
154 nd = iabs(icnds10(1,i))
157 IF (itagnd(n1)==0.AND.itagnd(n2)==0) cycle
158 fac = half*weight(nd)
163 stif =
max(zero,fac*(stifn(nd)-stifnd(i)))
165 IF (iad1>0.AND.itagnd(n1)>0)
THEN
169 fskycnd(4,iad1) = stif
172 IF (iad2>0.AND.itagnd(n2)>0)
THEN
176 fskycnd(4,iad2) = stif
182 IF (nspmd>1.AND.itsk==0)
THEN
183 lcomm =iad_cndm(nspmd+1)-iad_cndm(1)
184 lens = fr_nbcccnd(1,nspmd+1)
185 lenr = fr_nbcccnd(2,nspmd+1)
187 1 fr_cndm,iad_cndm,addcncnd,procncnd,fr_nbcccnd,
188 2 isize,lenr ,lens ,fskycnd)
196 DO n = nodftsk,nodltsk
197 IF (itagnd(n)==0) cycle
199 nc = addcncnd(n+1)-addcncnd(n)
201 a(1,n) = a(1,n) + fskycnd(1,k)
202 a(2,n) = a(2,n) + fskycnd(2,k)
203 a(3,n) = a(3,n) + fskycnd(3,k)
204 stifn(n) = stifn(n) + fskycnd(4,k)
223 SUBROUTINE s10cndf2(ICNDS10,WEIGHT ,IAD_CNDM,FR_CNDM,FR_NBCCCND,
224 1 ADDCNCND,PROCNCND,A ,IADCND,FSKYCND,
225 2 ITAGND , NODFTSK,NODLTSK,EFTSK ,ELTSK ,
226 3 ITSK ,ITAB ,STIFN ,STIFND)
234#include "implicit_f.inc"
238#include "com01_c.inc"
239#include "com04_c.inc"
241#include "parit_c.inc"
243#include "comlock.inc"
247 INTEGER ICNDS10(3,*),WEIGHT(*),IAD_CNDM(*),FR_CNDM(*),FR_NBCCCND(2,*),
248 . ADDCNCND(*),PROCNCND(*),IADCND(2,*),ITAGND(*),ITAB(*)
249 INTEGER NODFTSK,NODLTSK,EFTSK,ELTSK,ITSK
252 . A(3,*),FSKYCND(4,*), STIFN(*),STIFND(*)
256 INTEGER I, J, N, K,ISIZE,,LENS,LENR,NCT,NC,N1,N2,ND,IAD1,IAD2,IK
263 IF (iparit==0.AND.nspmd>1)
THEN
265#include "vectorize.inc"
266 DO i=1,iad_cndm(nspmd+1)-1
268 a(1,j) = a(1,j) * weight(j)
269 a(2,j) = a(2,j) * weight(j)
270 a(3,j) = a(3,j) * weight(j)
271 stifn(j)=stifn(j)* weight(j)
275 IF (iparit/=0.AND.itsk==0) fskycnd(1:4,1:lcncnd)=zero
279 IF (iparit == 0 )
THEN
281#include "vectorize.inc"
283 nd = iabs(icnds10(1,i))
286 fac = half*weight(nd)
290 stif =
max(zero,fac*(stifn(nd)-stifnd(i)))
291 IF (itagnd(n1)==0)
THEN
293 a(1,n1) = a(1,n1) + fx
294 a(2,n1) = a(2,n1) + fy
295 a(3,n1) = a(3,n1) + fz
296 stifn(n1) = stifn(n1) + stif
298 IF (itagnd(n2)==0)
THEN
300 a(1,n2) = a(1,n2) + fx
301 a(2,n2) = a(2,n2) + fy
302 a(3,n2) = a(3,n2) + fz
303 stifn(n2) = stifn(n2) + stif
312 IF (itagnd(i)==0)
THEN
313 a(1,i) = a(1,i) + a(1,i+ik)
314 a(2,i) = a(2,i) + a(2,i+ik)
315 a(3,i) = a(3,i) + a(3,i+ik)
316 stifn(i) = stifn(i) + stifn(i+ik)
327 IF (nspmd>1.AND.itsk==0)
THEN
328 lcomm =iad_cndm(nspmd+1)-iad_cndm(1)
330 . a ,stifn ,fr_cndm,iad_cndm,lcomm,isize)
332 stifnd(eftsk:eltsk) = zero
334#include "vectorize.inc"
336 nd = iabs(icnds10(1,i))
339 fac = half*weight(nd)
343 stif =
max(zero,fac*(stifn(nd)-stifnd(i)))
345 IF (iad1>0.AND.itagnd(n1)==0)
THEN
349 fskycnd(4,iad1) = stif
352 IF (iad2>0.AND.itagnd(n2)==0)
THEN
356 fskycnd(4,iad2) = stif
362 IF (nspmd>1.AND.itsk==0)
THEN
363 lcomm =iad_cndm(nspmd+1)-iad_cndm(1)
364 lens = fr_nbcccnd(1,nspmd+1)
365 lenr = fr_nbcccnd(2,nspmd+1)
367 1 fr_cndm,iad_cndm,addcncnd,procncnd,fr_nbcccnd,
368 2 isize,lenr ,lens ,fskycnd)
375 DO n = nodftsk,nodltsk
376 IF (itagnd(n)/=0) cycle
378 nc = addcncnd(n+1)-addcncnd(n)
380 a(1,n) = a(1,n) + fskycnd(1,k)
381 a(2,n) = a(2,n) + fskycnd(2,k)
382 a(3,n) = a(3,n) + fskycnd(3,k)
383 stifn(n) = stifn(n) + fskycnd(4,k)
392!||
s10cnd_ini ../engine/source/elements/solid/solide10/s10cndf.f
396 SUBROUTINE s10cnd_ini(ICNDS10,ITAGND,IAD_CNDM,FR_CNDM,FR_NBCCCND,
397 1 ADDCNCND,PROCNCND,VND ,V ,ITAB ,
398 2 IAD_CNDM1,FR_CNDM1,FR_NBCCCND1)
402#include "implicit_f.inc"
406#include "com01_c.inc"
407#include "com04_c.inc"
408#include "parit_c.inc"
413 INTEGER ICNDS10(3,*),IAD_CNDM(*),FR_CNDM(*),FR_NBCCCND(2,*),
414 . ADDCNCND(*),PROCNCND(*),ITAGND(*),ITAB(*),
415 . IAD_CNDM1(*),FR_CNDM1(*),FR_NBCCCND1(2,*)
422 INTEGER I, J, K, NOD,LOC_PROC,CC,N1,N2
429 vnd(1,i) = half*(v(1,n1) + v(1,n2))
430 vnd(2,i) = half*(v(2,n1) + v(2,n2))
431 vnd(3,i) = half*(v(3,n1) + v(3,n2))
443 DO j=iad_cndm(i),iad_cndm(i+1)-1
445 DO cc = addcncnd(nod),addcncnd(nod+1)-1
446 IF(procncnd(cc)==loc_proc)
THEN
447 fr_nbcccnd(1,i) = fr_nbcccnd(1,i)+1
448 ELSEIF(procncnd(cc)==i)
THEN
449 fr_nbcccnd(2,i) = fr_nbcccnd(2,i)+1
457 fr_nbcccnd(1,nspmd+1) = fr_nbcccnd(1,nspmd+1)+fr_nbcccnd(1,i)
458 fr_nbcccnd(2,nspmd+1) = fr_nbcccnd(2,nspmd+1)+fr_nbcccnd(2,i)
465 DO j=iad_cndm(i),iad_cndm(i+1)-1
467 IF (itagnd(nod)>0)
THEN
469 fr_cndm1(k+iad_cndm1(i)-1) = nod
472 iad_cndm1(i+1) = iad_cndm1(i) + k
482 DO j=iad_cndm1(i),iad_cndm1(i+1)-1
484 DO cc = addcncnd(nod),addcncnd(nod+1)-1
485 IF(procncnd(cc)==loc_proc)
THEN
486 fr_nbcccnd1(1,i) = fr_nbcccnd1(1,i)+1
487 ELSEIF(procncnd(cc)==i)
THEN
488 fr_nbcccnd1(2,i) = fr_nbcccnd1(2,i)+1
495 fr_nbcccnd1(1,nspmd+1) = fr_nbcccnd1(1,nspmd+1)+fr_nbcccnd1(1,i)
496 fr_nbcccnd1(2,nspmd+1) = fr_nbcccnd1(2,nspmd+1)+fr_nbcccnd1(2,i)
503!||
s10cndi2_ini ../engine/source/elements/solid/solide10/s10cndf.f
510!||====================================================================
512 1 FR_CNDS,IAD_CNDS,itab )
520#include "implicit_f.inc"
524#include "param_c.inc"
525#include "com01_c.inc"
526#include "com04_c.inc"
530 INTEGER IPARI(NPARI,NINTER),ITAGND(*),ICNDS10(3,*),WEIGHT(*),
531 1 FR_CNDS(*),IAD_CNDS(*),itab(*)
532 TYPE(INTBUF_STRUCT_),
DIMENSION(NINTER) :: INTBUF_TAB
536 INTEGER I,J,N,NTY,NSN,NMN,IM,II,N1,N2,NS,ILEV,L,NUS,SIZ
537 INTEGER ITAGS(NUMNOD)
556 IF (ilev == 27 .or. ilev == 28)
THEN
558 IF (intbuf_tab(n)%IRUPT(i) /= 1)
THEN
559 ns = intbuf_tab(n)%NSV(i)
560 IF (itags(ns)==0) itags(ns)=nus
561 l = intbuf_tab(n)%IRTLM(i)
564 im = intbuf_tab(n)%IRECTM(ii)
565 IF (itagnd(im)>0)
THEN
566 itagnd(im) = itagnd(im) + ns10e
567 ELSEIF(itagnd(im)<0)
THEN
568 itagnd(im) = itagnd(im) - ns10e
573 ELSEIF (ilev <= 5 .or. ilev == 30)
THEN
575 ns = intbuf_tab(n)%NSV(i)
576 IF (itags(ns)==0) itags(ns)=nus
577 l = intbuf_tab(n)%IRTLM(i)
580 im = intbuf_tab(n)%IRECTM(ii)
581 IF (itagnd(im)>0)
THEN
582 itagnd(im) = itagnd(im) + ns10e
583 ELSEIF(itagnd(im)<0)
THEN
584 itagnd(im) = itagnd(im) - ns10e
593 siz = iad_cnds(nspmd+1)-iad_cnds(1)
600 itagnd(n1) = itags(n1)
601 itagnd(n2) = itags(n2)
606 n = iabs(icnds10(1,i))
610 DO j=iad_cnds(i),iad_cnds(i+1)-1
612 fr_cnds(j) = itags(n)
626 1 IADCND ,ADDCNCND,FSKYCND,WEIGHT ,IAD_CNDM,
627 2 FR_CNDM,FR_NBCCCND,PROCNCND)
631#include "implicit_f.inc"
635#include "com01_c.inc"
636#include "com04_c.inc"
637#include "com06_c.inc"
638#include "comlock.inc"
639#include "parit_c.inc"
644 INTEGER ICNDS10(3,*),WEIGHT(*),IAD_CNDM(*),FR_CNDM(*),
645 . FR_NBCCCND(2,*),ADDCNCND(*),PROCNCND(*),IADCND(2,*)
648 . A(3,*),V(3,*),VD(3,*),MS(*),FSKYCND(4,*)
652 INTEGER I, J,N, K,ID1,ID2,NC,N1,N2,ND,NCT,
653 . ISIZE,LCOMM,LENS,LENR
656 . fx1,fy1,fz1 ,fx2,fy2,fz2,fac,fac1,fac2,vx,vy,vz
660 IF (iparit/=0) fskycnd(1:3,1:lcncnd)=zero
663 IF (iparit == 0 )
THEN
665#include "vectorize.inc"
666 DO i=1,iad_cndm(nspmd+1)-1
668 a(1,j) = a(1,j) * weight(j)
669 a(2,j) = a(2,j) * weight(j)
670 a(3,j) = a(3,j) * weight(j)
674 nd = iabs(icnds10(1,i))
677 fac= dampa*ms(nd)*weight(nd)
689 a(1,n1) = a(1,n1) - fx1
690 a(2,n1) = a(2,n1) - fy1
691 a(3,n1) = a(3,n1) - fz1
692 a(1,n2) = a(1,n2) - fx2
693 a(2,n2) = a(2,n2) - fy2
694 a(3,n2) = a(3,n2) - fz2
697 lcomm =iad_cndm(nspmd+1)-iad_cndm(1)
700 . a ,tmp ,fr_cndm,iad_cndm,lcomm,isize)
704 nd = iabs(icnds10(1,i))
724 fskycnd(4,id1) = zero
731 fskycnd(4,id2) = zero
735 lcomm =iad_cndm(nspmd+1)-iad_cndm(1)
736 lens = fr_nbcccnd(1,nspmd+1)
737 lenr = fr_nbcccnd(2,nspmd+1)
739 1 fr_cndm,iad_cndm,addcncnd,procncnd,fr_nbcccnd,
740 2 isize,lenr ,lens ,fskycnd)
747 nc = addcncnd(n+1)-addcncnd(n)
749 a(1,n) = a(1,n) - fskycnd(1,k)
750 a(2,n) = a(2,n) - fskycnd(2,k)
751 a(3,n) = a(3,n) - fskycnd(3,k)
765 SUBROUTINE s10cndfnd(ICNDS10,WEIGHT ,IAD_CNDS,FR_CNDS,ITAB ,
766 2 NODFTSK,NODLTSK,EFTSK ,ELTSK ,ITSK ,
771#include "implicit_f.inc"
775#include "com04_c.inc"
777#include "comlock.inc"
781 INTEGER ICNDS10(3,*),WEIGHT(*),IAD_CNDS(*),FR_CNDS(*),ITAB(*)
782 INTEGER NODFTSK,NODLTSK,EFTSK,ELTSK,ITSK
797 nd = iabs(icnds10(1,i))
798 stifnd(i) = stifnd(i)+ stifn(nd+ik)
813!||====================================================================
825#include "implicit_f.inc"
829#include "com01_c.inc"
830#include "com04_c.inc"
834 INTEGER ICNDS10(3,*),FR_ELEM(*),IAD_ELEM(2,*),NBDDS,ITAGS(*)
841 n = iabs(icnds10(1,i))
847 DO j= iad_elem(1,ip),iad_elem(1,ip+1)-1
849 IF (itags(n)>0) nbdds = nbdds + 1
860 SUBROUTINE s10cnds_ini(ICNDS10,ITAGS,FR_ELEM,IAD_ELEM,IAD_CDNS,FR_CDNS)
867#include "implicit_f.inc"
871#include "com01_c.inc"
872#include "com04_c.inc"
876 INTEGER ICNDS10(3,*),FR_ELEM(*),IAD_ELEM(2,*),IAD_CDNS(*),FR_CDNS(*),
886 DO j= iad_elem(1,ip),iad_elem(1,ip+1)-1
908#include "implicit_f.inc"
912#include "com04_c.inc"
913#include "units_c.inc"
917 INTEGER ICNDS10(3,*),itab(*)
929 if (itab(n1)==1294333.and.itab(n2)==1338494)
then
930 nd = iabs(icnds10(1,i))
931 write(iout,*)
'ND,N1,N2, A,V=',itab(nd),itab(n1),itab(n2)
932 write(iout,*)a(1,nd),a(2,nd),a(3,nd)
933 write(iout,*)v(1,nd),v(2,nd),v(3,nd)
949 1 IAD_CNDS,FR_CNDS,S_FR ,NSPMD)
957#include "implicit_f.inc"
961#include "param_c.inc"
962#include "com04_c.inc"
967 INTEGER,
INTENT(IN),
DIMENSION(NSPMD+1) :: IAD_CNDS
968 INTEGER,
INTENT(IN),
DIMENSION(S_FR) :: FR_CNDS
969 INTEGER IPARI(NPARI,NINTER),ITAGND(*),ICNDS10(3,*),WEIGHT(*),
971 TYPE(INTBUF_STRUCT_),
DIMENSION(NINTER) :: INTBUF_TAB
975 INTEGER I,J,N,NTY,NSN,NMN,IM,II,NS,ILEV,L,SIZ
992 IF (ilev == 27 .or. ilev == 28)
THEN
994 IF (intbuf_tab(n)%IRUPT(i) /= 1)
THEN
995 ns = intbuf_tab(n)%NSV(i)
996 l = intbuf_tab(n)%IRTLM(i)
999 im = intbuf_tab(n)%IRECTM(ii)
1000 IF (itagnd(im)>0.AND.itagnd(im)<= ns10e)
THEN
1001 itagnd(im) = itagnd(im) + ns10e
1002 ELSEIF(itagnd(im)<0.AND.itagnd(im)>= -ns10e)
THEN
1003 itagnd(im) = itagnd(im) - ns10e
1008 ELSEIF (ilev <= 5 .or. ilev == 30)
THEN
1010 ns = intbuf_tab(n)%NSV(i)
1011 l = intbuf_tab(n)%IRTLM(i)
1014 im = intbuf_tab(n)%IRECTM(ii)
1015 IF (itagnd(im)>0.AND.itagnd(im)<= ns10e)
THEN
1016 itagnd(im) = itagnd(im) + ns10e
1017 ELSEIF(itagnd(im)<0.AND.itagnd(im)>= -ns10e)
THEN
1018 itagnd(im) = itagnd(im) - ns10e
1027 siz = iad_cnds(nspmd+1)-iad_cnds(1)
1033 n = iabs(icnds10(1,i))
1034 ii = iabs(itagnd(n))
1035 IF (ii >ns10e .AND. weight(n)/=0) nkend = nkend + 1
1048 . NKEND,IMAP2ND,MASI2ND0,MS ,WEIGHT,itab )
1056#include "implicit_f.inc"
1060#include "param_c.inc"
1061#include "com04_c.inc"
1065 INTEGER IPARI(NPARI,NINTER),ITAGND(*),ICNDS10(3,*),
1066 1 NKEND,IMAP2ND(*),WEIGHT(*),itab(*)
1067 TYPE(intbuf_struct_),
DIMENSION(NINTER) :: INTBUF_TAB
1079 n = iabs(icnds10(1,i))
1080 ii = iabs(itagnd(n))
1081 IF (ii >ns10e .AND. weight(n)/=0)
THEN
1084 masi2nd0(nk) = ms(n)
1099#include "implicit_f.inc"
1103#include "com04_c.inc"
1104#include "com08_c.inc"
1105#include "itet2_c.inc"
1106#include "scr07_c.inc"
1107#include "com01_c.inc"
1111 INTEGER ICNDS10(3,*),NKEND,IMAP2ND(*),WEIGHT(*)
1122 IF (MCHECK>0.OR.IRUN>1) THEN
1124 IF (NKEND<0.OR.IRUN>1) THEN
1127 masi2nd0(1:nkend)=dmas2/nkend
1129 IF (imassi /= 0)
THEN
1132 ns = iabs(icnds10(1,i))
1133 IF (weight(ns)/=0) ms_nd = ms_nd + ms(ns)
1140 ns = iabs(icnds10(1,n))
1141 dmas=ms(ns)-masi2nd0(i)
1142 masi2nd0(i) =
max(zero,dmas)
1143 dmas2 = dmas2 + masi2nd0(i)
1148 ns = iabs(icnds10(1,i))
1149 IF (weight(ns)/=0) masnd = masnd + ms(ns)
1153 dmsi2 = masnd-ms_nd-dmas2
1154 dmsi2 =
max(zero,dmsi2)
1166 SUBROUTINE cndmasi2(ICNDS10,NKEND,IMAP2ND,MASI2ND0,MS ,V ,A ,
1167 . WEIGHT ,MAS_ND ,KEND)
1171#include "implicit_f.inc"
1175#include "com04_c.inc"
1176#include "com08_c.inc"
1177#include "itet2_c.inc"
1181 INTEGER ICNDS10(3,*),NKEND,IMAP2ND(*),WEIGHT(*)
1183 . masi2nd0(*),ms(*),v(3,*),a(3,*),kend,mas_nd
1189 . DMAS,VX,VY,VZ,DT05
1196 ns = iabs(icnds10(1,n))
1198 vx = v(1,ns) + dt05*a(1,ns)
1199 vy = v(2,ns) + dt05*a(2,ns)
1200 vz = v(3,ns) + dt05*a(3,ns)
1201 kend = kend + ( vx*vx + vy*vy + vz*vz)*half*masi2nd0(i)
1202 dmas = dmas + masi2nd0(i)
1208 ns = iabs(icnds10(1,i))
1209 IF (weight(ns)/=0) mas_nd = mas_nd + ms(ns)
1211 mas_nd = mas_nd - dmas
1224 1 IADCND ,ADDCNCND,FSKYCND,SKEW ,DAMPR ,
1225 3 DAMP ,IGRNOD ,DIM ,WEIGHT ,IAD_CNDM,
1226 4 FR_CNDM,FR_NBCCCND,PROCNCND)
1234#include "implicit_f.inc"
1238#include "com01_c.inc"
1239#include "com04_c.inc"
1240#include "com08_c.inc"
1241#include "comlock.inc"
1242#include "parit_c.inc"
1243#include "spmd_c.inc"
1244#include "param_c.inc"
1248 INTEGER ICNDS10(3,*),WEIGHT(*),IAD_CNDM(*),FR_CNDM(*),DIM,
1249 . fr_nbcccnd(2,*),addcncnd(*),procncnd(*),iadcnd(2,*)
1252 . a(3,*),v(3,*),vd(3,*),ms(*),fskycnd(4,*),
1253 . dampr(nrdamp,*), damp(dim,*), skew(lskew,*)
1255 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
1259 INTEGER I, J,NMD,N, K,ID1,ID2,NC,N1,N2,ND,NCT,ISK,IGR
1260 INTEGER ITAGS(NUMNOD),ISIZE,LCOMM,LENS,LENR
1263 . FACTB,DAMPT,D_TSTART,D_TSTOP,DAMP_A(3),VSKW(3),DA_G(3),
1264 . FX1,FY1,FZ1 ,FX2,FY2,FZ2,FAC,FAC1,FAC2,VX,VY,VZ
1277 IF (iparit == 0 )
THEN
1279#include "vectorize.inc"
1280 DO i=1,iad_cndm(nspmd+1)-1
1282 a(1,j) = a(1,j) * weight(j)
1283 a(2,j) = a(2,j) * weight(j)
1284 a(3,j) = a(3,j) * weight(j)
1288 igr = nint(dampr(2,nd))
1289 isk = nint(dampr(15,nd))
1290 factb = dampr(16,nd)
1291 dampt =
min(dt1,dt2)*factb
1292 d_tstart = dampr(17,nd)
1293 d_tstop = dampr(18,nd)
1294 IF (tt>=d_tstart .AND. tt<=d_tstop)
THEN
1296 IF (dampr(19,nd)>0) cycle
1298 damp_a(1) = dampr(3,nd)
1299 damp_a(2) = dampr(5,nd)
1300 damp_a(3) = dampr(7,nd)
1302#include "vectorize.inc"
1303 DO n=1,igrnod(igr)%NENTITY
1304 i=igrnod(igr)%ENTITY(n)
1305 IF (itags(i)==0) cycle
1307 nmd = iabs(icnds10(1,j))
1310 fac= ms(nmd)*weight(nmd)
1311 IF (ms(n1)<=em20)
THEN
1316 IF (ms(n2)<=em20)
THEN
1321 vx = v(1,nmd)-vd(1,j)
1322 vy = v(2,nmd)-vd(2,j)
1324 fx1 = fac1*damp_a(1)*vx
1325 fy1 = fac1*damp_a(2)*vy
1326 fz1 = fac1*damp_a(3)*vz
1327 fx2 = fac2*damp_a(1)*vx
1328 fy2 = fac2*damp_a(2)*vy
1329 fz2 = fac2*damp_a(3)*vz
1330 a(1,n1) = a(1,n1) - fx1
1331 a(2,n1) = a(2,n1) - fy1
1332 a(3,n1) = a(3,n1) - fz1
1333 a(1,n2) = a(1,n2) - fx2
1334 a(2,n2) = a(2,n2) - fy2
1335 a(3,n2) = a(3,n2) - fz2
1339#include "vectorize.inc"
1340 DO n=1,igrnod(igr)%NENTITY
1341 i=igrnod(igr)%ENTITY(n)
1342 IF (itags(i)==0) cycle
1344 nmd = iabs(icnds10(1,j))
1348 IF (ms(n1)<=em20)
THEN
1353 IF (ms(n2)<=em20)
THEN
1358 vx = v(1,nmd)-vd(1,j)
1359 vy = v(2,nmd)-vd(2,j)
1360 vz = v(3,nmd)-vd(3,j)
1361 vskw(1)=damp_a(1)*(skew(1,isk)*vx
1364 vskw(2)=damp_a(2)*(skew(4,isk)*vx
1367 vskw(3)=damp_a(3)*(skew(7,isk)*vx
1370 da_g(1)= skew(1,isk)*vskw(1)
1371 . +skew(4,isk)*vskw(2)
1372 . +skew(7,isk)*vskw(3)
1373 da_g(2)= skew(2,isk)*vskw(1)
1374 . +skew(5,isk)*vskw(2)
1375 . +skew(8,isk)*vskw(3)
1376 da_g(3)= skew(3,isk)*vskw(1)
1377 . +skew(6,isk)*vskw(2)
1378 . +skew(9,isk)*vskw(3)
1385 a(1,n1) = a(1,n1) - fx1
1386 a(2,n1) = a(2,n1) - fy1
1387 a(3,n1) = a(3,n1) - fz1
1388 a(1,n2) = a(1,n2) - fx2
1389 a(2,n2) = a(2,n2) - fy2
1390 a(3,n2) = a(3,n2) - fz2
1397 lcomm =iad_cndm(nspmd+1)-iad_cndm(1)
1400 . a ,tmp ,fr_cndm,iad_cndm,lcomm,isize)
1404 fskycnd(1:3,1:lcncnd)=zero
1406 igr = nint(dampr(2,nd))
1407 isk = nint(dampr(15,nd))
1408 factb = dampr(16,nd)
1409 dampt =
min(dt1,dt2)*factb
1410 d_tstart = dampr(17,nd)
1411 d_tstop = dampr(18,nd)
1412 IF (tt>=d_tstart .AND. tt<=d_tstop)
THEN
1414 IF (dampr(19,nd)>0) cycle
1416 damp_a(1) = dampr(3,nd)
1417 damp_a(2) = dampr(5,nd)
1418 damp_a(3) = dampr(7,nd)
1420#include "vectorize.inc"
1421 DO n=1,igrnod(igr)%NENTITY
1422 i=igrnod(igr)%ENTITY(n)
1423 IF (itags(i)==0) cycle
1425 nmd = iabs(icnds10(1,j))
1429 IF (ms(n1)<=em20)
THEN
1434 IF (ms(n2)<=em20)
THEN
1439 vx = v(1,nmd)-vd(1,j)
1440 vy = v(2,nmd)-vd(2,j)
1441 vz = v(3,nmd)-vd(3,j)
1442 fx1 = fac1*damp_a(1)*vx
1443 fy1 = fac1*damp_a(2)*vy
1444 fz1 = fac1*damp_a(3)*vz
1445 fx2 = fac2*damp_a(1)*vx
1446 fy2 = fac2*damp_a(2)*vy
1447 fz2 = fac2*damp_a(3)*vz
1450 fskycnd(1,id1) = fx1
1451 fskycnd(2,id1) = fy1
1452 fskycnd(3,id1) = fz1
1456 fskycnd(1,id2) = fx2
1457 fskycnd(2,id2) = fy2
1458 fskycnd(3,id2) = fz2
1463#include "vectorize.inc"
1464 DO n=1,igrnod(igr)%NENTITY
1465 i=igrnod(igr)%ENTITY(n)
1466 IF (itags(i)==0) cycle
1468 nmd = iabs(icnds10(1,j))
1472 IF (ms(n1)<=em20)
THEN
1477 IF (ms(n2)<=em20)
THEN
1482 vx = v(1,nmd)-vd(1,j)
1483 vy = v(2,nmd)-vd(2,j)
1484 vz = v(3,nmd)-vd(3,j)
1485 vskw(1)=damp_a(1)*(skew(1,isk)*vx
1488 vskw(2)=damp_a(2)*(skew(4,isk)*vx
1491 vskw(3)=damp_a(3)*(skew(7,isk)*vx
1494 da_g(1)= skew(1,isk)*vskw(1)
1495 . +skew(4,isk)*vskw(2)
1496 . +skew(7,isk)*vskw(3)
1497 da_g(2)= skew(2,isk)*vskw(1)
1498 . +skew(5,isk)*vskw(2)
1499 . +skew(8,isk)*vskw(3)
1500 da_g(3)= skew(3,isk)*vskw(1)
1501 . +skew(6,isk)*vskw(2)
1502 . +skew(9,isk)*vskw(3)
1511 fskycnd(1,id1) = fx1
1512 fskycnd(2,id1) = fy1
1513 fskycnd(3,id1) = fz1
1514 fskycnd(4,id1) = zero
1518 fskycnd(1,id2) = fx2
1519 fskycnd(2,id2) = fy2
1520 fskycnd(3,id2) = fz2
1521 fskycnd(4,id2) = zero
1529 lcomm =iad_cndm(nspmd+1)-iad_cndm(1)
1530 lens = fr_nbcccnd(1,nspmd+1)
1531 lenr = fr_nbcccnd(2,nspmd+1)
1533 1 fr_cndm,iad_cndm,addcncnd,procncnd,fr_nbcccnd,
1534 2 isize,lenr ,lens ,fskycnd)
1541 nc = addcncnd(n+1)-addcncnd(n)
1542 DO k = nct+1, nct+nc
1543 a(1,n) = a(1,n) - fskycnd(1,k)
1544 a(2,n) = a(2,n) - fskycnd(2,k)
1545 a(3,n) = a(3,n) - fskycnd(3,k)
1563 1 IADCND ,ADDCNCND,FSKYCND,IGRNOD ,WEIGHT ,
1564 2 IAD_CNDM,FR_CNDM,FR_NBCCCND,PROCNCND)
1572#include "implicit_f.inc"
1576#include "com01_c.inc"
1577#include "com04_c.inc"
1578#include "com08_c.inc"
1579#include "comlock.inc"
1580#include "parit_c.inc"
1581#include "spmd_c.inc"
1582#include "stati_c.inc"
1583#include "statr_c.inc"
1587 INTEGER ICNDS10(3,*),WEIGHT(*),IAD_CNDM(*),FR_CNDM(*),
1588 . FR_NBCCCND(2,*),ADDCNCND(*),PROCNCND(*),IADCND(2,*)
1591 . a(3,*),v(3,*),vd(3,*),ms(*),fskycnd(4,*)
1595 INTEGER I, J,N, K,ID1,ID2,NC,N1,N2,ND,NCT,NGR2USR,
1596 . ISIZE,LCOMM,LENS,LENR
1599 . FX1,FY1,FZ1 ,FX2,FY2,FZ2,FAC,FAC1,FAC2,VX,VY,VZ,DAMPC,DOMEGA
1602 INTEGER ITAG(NUMNOD)
1604 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
1607 IF (ISTAT/=1.AND.istat/=3)
RETURN
1609 dampc=betate/(one + betate * dt12)
1611 IF (iparit/=0) fskycnd(1:3,1:lcncnd)=zero
1613 IF(istatg<0) istatg=ngr2usr(-istatg,igrnod,ngrnod)
1615 DO n=1,igrnod(istatg)%NENTITY
1616 i=igrnod(istatg)%ENTITY(n)
1626#include "vectorize.inc"
1628 nd = iabs(icnds10(1,i))
1629 a(1,nd) = a(1,nd)+domega*vd(1,i)
1630 a(2,nd) = a(2,nd)+domega*vd(2,i)
1631 a(3,nd) = a(3,nd)+domega*vd(3,i)
1634#include "vectorize.inc"
1636 nd = iabs(icnds10(1,i))
1637 IF(itag(nd)==0) cycle
1638 a(1,nd) = a(1,nd)+domega*vd(1,i)
1639 a(2,nd) = a(2,nd)+domega*vd(2,i)
1640 a(3,nd) = a(3,nd)+domega*vd(3,i)
1644 IF (iparit == 0 )
THEN
1646#include "vectorize.inc"
1647 DO i=1,iad_cndm(nspmd+1)-1
1649 a(1,j) = a(1,j) * weight(j)
1650 a(2,j) = a(2,j) * weight(j)
1651 a(3,j) = a(3,j) * weight(j)
1654#include "vectorize.inc"
1656 nd = iabs(icnds10(1,i))
1657 IF(itag(nd)==0) cycle
1660 fac= dampc*ms(nd)* weight(nd)
1661 IF (ms(n1)<=em20)
THEN
1666 IF (ms(n2)<=em20)
THEN
1671 vx = v(1,nd)-vd(1,i)
1672 vy = v(2,nd)-vd(2,i)
1673 vz = v(3,nd)-vd(3,i)
1680 a(1,n1) = a(1,n1) - fx1
1681 a(2,n1) = a(2,n1) - fy1
1682 a(3,n1) = a(3,n1) - fz1
1683 a(1,n2) = a(1,n2) - fx2
1684 a(2,n2) = a(2,n2) - fy2
1685 a(3,n2) = a(3,n2) - fz2
1688 lcomm =iad_cndm(nspmd+1)-iad_cndm(1)
1691 . a ,tmp ,fr_cndm,iad_cndm,lcomm,isize)
1694#include "vectorize.inc"
1696 nd = iabs(icnds10(1,i))
1697 IF(itag(nd)==0) cycle
1701 IF (ms(n1)<=em20)
THEN
1706 IF (ms(n2)<=em20)
THEN
1711 vx = v(1,nd)-vd(1,i)
1712 vy = v(2,nd)-vd(2,i)
1713 vz = v(3,nd)-vd(3,i)
1722 fskycnd(1,id1) = fx1
1723 fskycnd(2,id1) = fy1
1724 fskycnd(3,id1) = fz1
1725 fskycnd(4,id1) = zero
1729 fskycnd(1,id2) = fx2
1730 fskycnd(2,id2) = fy2
1731 fskycnd(3,id2) = fz2
1732 fskycnd(4,id2) = zero
1736 lcomm =iad_cndm(nspmd+1)-iad_cndm(1)
1737 lens = fr_nbcccnd(1,nspmd+1)
1738 lenr = fr_nbcccnd(2,nspmd+1)
1740 1 fr_cndm,iad_cndm,addcncnd,procncnd,fr_nbcccnd,
1741 2 isize,lenr ,lens ,fskycnd)
1748 nc = addcncnd(n+1)-addcncnd(n)
1749 DO k = nct+1, nct+nc
1750 a(1,n) = a(1,n) - fskycnd(1,k)
1751 a(2,n) = a(2,n) - fskycnd(2,k)
1752 a(3,n) = a(3,n) - fskycnd(3,k)
1760!||
s10stfe_poff ../engine/source/elements/solid/solide10/s10cndf.f
1768 2 NODFTSK,NODLTSK,EFTSK ,ELTSK ,ITSK ,
1773#include "implicit_f.inc"
1777#include "com01_c.inc"
1778#include "com04_c.inc"
1779#include "task_c.inc"
1780#include "comlock.inc"
1784 INTEGER ICNDS10(3,*),WEIGHT(*),IAD_CNDS(*),FR_CNDS(*),ITAB(*)
1785 INTEGER NODFTSK,NODLTSK,EFTSK,ELTSK,ITSK
1786 my_real STIFN(*),STIFND(*)
1790 INTEGER I, K,LCOMM,IK,ND
1795 STIFEL(EFTSK:ELTSK) = zero
1799 nd = iabs(icnds10(1,i))
1800 stifel(i) = stifel(i)+ stifn(nd+ik)
1805 stifnd(i) = stifel(i)- stifnd(i)
1812 lcomm =iad_cnds(nspmd+1)-iad_cnds(1)
1814 . stifnd ,fr_cnds,iad_cnds,lcomm)
subroutine s10cndf2(icnds10, weight, iad_cndm, fr_cndm, fr_nbcccnd, addcncnd, procncnd, a, iadcnd, fskycnd, itagnd, nodftsk, nodltsk, eftsk, eltsk, itsk, itab, stifn, stifnd)
subroutine s10cnidamp(icnds10, ms, a, v, vd, iadcnd, addcncnd, fskycnd, skew, dampr, damp, igrnod, dim, weight, iad_cndm, fr_cndm, fr_nbcccnd, procncnd)
subroutine s10cnistat(icnds10, ms, a, v, vd, iadcnd, addcncnd, fskycnd, igrnod, weight, iad_cndm, fr_cndm, fr_nbcccnd, procncnd)
subroutine s10cnds_ini(icnds10, itags, fr_elem, iad_elem, iad_cdns, fr_cdns)
subroutine s10cndf1(icnds10, weight, iad_cndm, fr_cndm, fr_nbcccnd, addcncnd, procncnd, a, iadcnd, fskycnd, itagnd, nodftsk, nodltsk, eftsk, eltsk, itsk, itab, stifn, stifnd)
subroutine s10cndfnd(icnds10, weight, iad_cnds, fr_cnds, itab, nodftsk, nodltsk, eftsk, eltsk, itsk, stifn, stifnd)
subroutine s10cnd_ini(icnds10, itagnd, iad_cndm, fr_cndm, fr_nbcccnd, addcncnd, procncnd, vnd, v, itab, iad_cndm1, fr_cndm1, fr_nbcccnd1)
subroutine s10cndi2_ini(ipari, intbuf_tab, icnds10, itagnd, weight, fr_cnds, iad_cnds, itab)
subroutine cndmasi2_dim(ipari, intbuf_tab, icnds10, itagnd, weight, nkend, iad_cnds, fr_cnds, s_fr, nspmd)
subroutine s10stfe_poff(icnds10, weight, iad_cnds, fr_cnds, itab, nodftsk, nodltsk, eftsk, eltsk, itsk, stifn, stifnd)
subroutine s10cnds_dim(icnds10, itags, fr_elem, iad_elem, nbdds)
subroutine cnd_dmasi2(icnds10, nkend, imap2nd, masi2nd0, ms, weight)
subroutine cndmasi2_ini(ipari, intbuf_tab, icnds10, itagnd, nkend, imap2nd, masi2nd0, ms, weight, itab)
subroutine cndmasi2(icnds10, nkend, imap2nd, masi2nd0, ms, v, a, weight, mas_nd, kend)
subroutine s10cndamp(icnds10, ms, a, v, vd, iadcnd, addcncnd, fskycnd, weight, iad_cndm, fr_cndm, fr_nbcccnd, procncnd)
subroutine s10print(icnds10, a, v, itab)
subroutine spmd_exch_a_scnd(a, stifn, fr_cdnm, iad_cdnm, lcomm, isize)
subroutine spmd_exch_a_scnd_pon(fr_cdnm, iad_cdnm, addcncdn, procncdn, fr_nbcccdn, isize, lenr, lens, fskycdn)
subroutine spmd_exch_stif_scnd(stifnd, fr_cdns, iad_cdns, lcomm)
subroutine spmd_exch_tag_scnd(itagnd, fr_cnds, iad_cnds, lcomm)