53 1 PM ,GEO ,IPM ,IGEO ,ELBUF ,
54 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
55 3 IXR ,IXTG ,IXTG1 ,IXS10 ,
56 4 IXS20 ,IXS16 ,IPARG ,TF ,NPC ,
57 5 FR_WAVE ,W16 ,BUFMAT ,THKE ,BUFGEO ,
59 7 WA ,IDDL ,NDOF ,K_DIAG ,K_LT ,
60 8 IADK ,JDIK ,IKGEO ,ETAG ,ELBUF_TAB ,
61 9 STACK ,DRAPE_SH4N, DRAPE_SH3N ,DRAPEG )
72#include "implicit_f.inc"
84#include "vect01_c.inc"
92 INTEGER IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*) ,
93 . IPM(NPROPMI,*),IGEO(NPROPGI,*),IKGEO
94 INTEGER IXS(NIXS,*),IXQ(,*),IXC(NIXC,*), IXT(NIXT,*),
95 . IXP(NIXP,*),IXR(NIXR,*), IXTG(NIXTG,*),
96 . NPC(*), IPARG(NPARG,*),
97 . IXS10(6,*),IXS20(12,*),IXS16(8,*),IXTG1(4,*), ETAG(*)
100 . PM(NPROPM,*),GEO(NPROPG,*),BUFMAT(*) ,TF(*) ,
101 . fr_wave(*) ,elbuf(*) ,thke(*),rby(*),skew(lskew,*),
102 . bufgeo(*),w16(*),x(3,*),wa(*)
105 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
106 TYPE (STACK_PLY) :: STACK
107 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE), DRAPE_SH3N(NUMELTG_DRAPE)
108 TYPE (DRAPEG_) :: DRAPEG
112 INTEGER I,N, NG, NVC, MLW, JFT, JLT,ISOLNOD,ITHK ,IPLA ,
113 . K1, K2, KAD,IAD2,NF1,IPRI, NELEM, OFFSET, NSGRP, K,
114 . k0, k3, k5, k6, k7, k8, k9, nsg, nel, kfts,iofc, istra,
115 . jj19,npe,nipmax,icnod,nft1,nf2,mpt,
116 . l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13,l14,l15,l16,
117 . l17,l18,l19,l20,l21,l22,l23,l24,l25,l26,l27,l28,l29,l30,
118 . sedrape,numel_drape
119 INTEGER (MVSIZ),ISH3N,IPRMES_EL(50)
120 INTEGER ICP,,IEXPAN,IETY,IG,ISUBSTACK
131 IF(iparg(8,ng)==1)
GOTO 250
141 IF (mlw == 0 .OR. mlw == 13)
GOTO 250
143 2 mlw ,nel ,nft ,kad ,ity ,
144 3 npt ,jale ,ismstr ,jeul ,jtur ,
145 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
146 5 nvaux ,jpor ,jcvt ,jclose ,ipla ,
147 6 irep ,iint ,igtyp ,israt ,isrot ,
148 7 icsen ,isorth ,isorthg ,ifailure,jsms
157 isolnod = iparg(28,ng)
159 iexpan = iparg(49,ng)
161 isubstack=iparg(71,ng)
162 IF(ity==1.OR.ity==2) jplasol=ipla
174 IF(ity==1 .AND. jlag==1)
THEN
178 IF (isrot > 0 .AND. ispmd==0)
THEN
179 IF (iprmes_el(iety)==0)
THEN
180 WRITE(iout,1005)isrot
186 2 elbuf_tab(ng)%GBUF, etag, iddl,
187 3 ndof, k_diag, k_lt, iadk,
188 4 jdik, nel, ipm, igeo,
189 5 ikgeo, bufmat, nft, mtn,
190 6 ismstr, jhbe, irep, isorth,
193 ELSEIF(isolnod==10)
THEN
195 1 pm, geo, ixs, ixs10,
196 2 x, elbuf_tab(ng),etag, iddl,
197 3 ndof, k_diag, k_lt,
199 5 ikgeo, bufmat, nft, mtn,
200 6 npt, ismstr, jhbe, irep,
203 ELSEIF(isolnod==20)
THEN
205 1 pm, geo, ixs, ixs20,
206 2 x, elbuf_tab(ng),etag, iddl,
207 3 ndof, k_diag, k_lt, iadk,
208 4 jdik, nel, ipm, igeo,
209 5 ikgeo, bufmat, nft, mtn,
210 6 ismstr, jhbe, irep, igtyp,
212 ELSEIF(isolnod==16)
THEN
214 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
215 WRITE(iout,1001)
' S16 SOLID'
216 WRITE(istdo,1001)
' S16 SOLID'
219 ELSEIF(jhbe==15.AND.isolnod==6)
THEN
222 2 elbuf_tab(ng),etag, iddl, ndof,
223 3 k_diag, k_lt, iadk, jdik,
224 4 nel, icp, ics, ipm,
225 5 igeo, ikgeo, bufmat, nft,
226 6 mtn, jhbe, isorth, isorthg,
229 ELSEIF(isolnod==8)
THEN
234 IF (jhbe/=14.AND.jhbe/=15.AND.jhbe/=17)
THEN
235 IF (ncycle==1.AND.imconv==1)
THEN
238 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
242 ELSEIF(jhbe==12.OR.jhbe==112)
THEN
244 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
250 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
256 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
265 . (igtyp == 20 .OR. igtyp == 21 .OR. igtyp == 22))
THEN
268 2 elbuf_tab(ng),nel, icp, ics,
269 3 etag, iddl, ndof, k_diag,
271 5 igeo, ikgeo, bufmat, nft,
272 6 mtn, jhbe, jcvt, igtyp,
273 7 isorth, irep, ismstr)
274 ELSE IF(jhbe == 17 .AND. iparg(36,ng) == 2)
THEN
278 2 elbuf_tab(ng),nel, icp, ics,
279 3 etag, iddl, ndof, k_diag,
280 4 k_lt, iadk, jdik, mpt,
281 5 ipm, igeo, ikgeo, bufmat,
282 6 nft, mtn, jhbe, jcvt,
288 2 elbuf_tab(ng),nel, icp, ics,
289 3 etag, iddl, ndof, k_diag,
290 4 k_lt, iadk, jdik, mpt,
291 5 ipm, igeo, ikgeo, bufmat,
292 6 nft, mtn, ismstr, jhbe,
293 7 jcvt, igtyp, isorth, irep)
307 ELSEIF(igtyp>=29)
THEN
309 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
310 WRITE(iout,1001)
' USERS '
311 WRITE(istdo,1001)
' USERS '
317 iad2 = iparg(4,ng+1) - 21 * nel
319 iad2 = lbufel - 21 * nel + 1
335 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
336 WRITE(iout,1001)
' HEPH SOLID'
337 WRITE(istdo,1001)
' HEPH SOLID'
342 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
343 WRITE(iout,1001)
' S8 SOLID'
344 WRITE(istdo,1001)
' S8 SOLID'
348 ELSEIF(npt==8.AND.mtn/=0 .AND. isolnod/=20)
THEN
351 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
352 WRITE(iout,1001)
' S8 SOLID'
353 WRITE(istdo,1001)
' S8 SOLID'
358 ELSEIF(ity==2.AND.jmult==0.AND.jlag==1)
THEN
360 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
361 WRITE(iout,1001)
' QUAD 2D '
362 WRITE(istdo,1001)
' QUAD 2D '
369 iad2 = iparg(4,ng+1) - 6 * nel
371 iad2 = lbufel - 6 * nel + 1
374 IF (ncycle==1.AND.imconv==1)
THEN
377 IF (iprmes_el(iety)==0)
THEN
383 IF (iprmes_el(iety)==0)
THEN
389 IF (iprmes_el(iety)==0)
THEN
395 IF (iprmes_el(iety)==0)
THEN
402 IF(jhbe>=11.AND.jhbe<=19)
THEN
404 numel_drape = numelc_drape
407 1 jft ,jlt ,nft ,iabs(npt) ,mlw ,
409 3 istra ,ipla ,pm ,geo ,ixc(1,nf1) ,
410 4 elbuf_tab(ng),bufmat ,offset ,indxof ,
411 1 etag , iddl ,ndof ,k_diag ,k_lt , iadk ,jdik ,
412 7 jhbe ,thke(nf1) ,ismstr ,x ,ikgeo ,
414 9 stack ,drape_sh4n ,drapeg%INDX_SH4N, sedrape,numel_drape)
418 numel_drape = numelc_drape
421 1 jft ,jlt ,nft ,iabs(npt) ,mlw ,
423 3 istra ,ipla ,pm ,geo ,ixc(1,nf1) ,
424 4 elbuf_tab(ng),bufmat ,offset ,indxof ,
425 1 etag , iddl ,ndof ,k_diag ,k_lt , iadk ,jdik ,
426 7 jhbe ,thke(nf1) ,ismstr ,x ,ikgeo ,
427 8 ipm ,igeo ,iexpan ,iparg(1,ng),isubstack,
428 9 stack ,drape_sh4n ,drapeg%INDX_SH4N, sedrape,numel_drape
445 CALL tke3( jft ,jlt ,pm ,geo ,ixt(1,nf1) ,
446 2 x ,elbuf_tab(ng) ,nel ,offset ,ikgeo ,
447 3 etag , iddl ,ndof ,k_diag ,k_lt ,
456 CALL pke3( jft ,jlt ,nel , mtn , ismstr,
457 1 pm ,ixp(1,nf1) ,x , elbuf_tab(ng) , geo ,
458 2 offset ,ikgeo ,etag , iddl , ndof ,
459 3 k_diag ,k_lt ,iadk , jdik )
466 igtyp = nint(geo(12,ixr(1,nf1)))
467 k1=1 + 6*(numelc+numeltg)*iepsdot + 15*(numelt+numelp+nft)
470 CALL r4ke3(jft ,jlt ,nel ,mtn ,pm ,
471 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
472 2 tf ,skew ,offset,fr_wave,
474 1 etag , iddl ,ndof ,k_diag ,k_lt ,
478 ELSEIF (igtyp==8)
THEN
479 CALL r8ke3(jft ,jlt ,nel ,mtn ,pm ,
480 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
481 2 tf ,skew ,offset,fr_wave,igeo ,
482 1 etag , iddl ,ndof ,k_diag ,k_lt ,
485 ELSEIF (igtyp==12)
THEN
486 CALL r12ke3(jft ,jlt ,nel ,mtn ,pm ,
487 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
488 2 tf ,skew ,offset,fr_wave,igeo ,
489 1 etag , iddl ,ndof ,k_diag ,k_lt ,
492 ELSEIF (igtyp==13)
THEN
493 CALL r13ke3(jft ,jlt ,nel ,mtn ,pm ,
494 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
495 2 tf ,skew ,offset,fr_wave,ikgeo ,igeo ,
496 1 etag , iddl ,ndof ,k_diag ,k_lt ,
504 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
505 WRITE(iout,1001)
' THIS SPRING'
506 WRITE(istdo,1001)
' THIS SPRING'
514 iad2 = iparg(4,ng+1) - 6 * nel
516 iad2 = lbufel - 6 * nel + 1
522 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
523 WRITE(iout,1001)
' S3N6 SHELL'
524 WRITE(istdo,1001)
' S3N6 SHELL'
529 IF (ish3n == 30)
THEN
530 IF (ncycle==1.AND.imconv==1)
THEN
532 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
533 WRITE(iout,1004)ish3n
538 numel_drape = numeltg_drape
541 1 jft ,jlt ,nft ,iabs(npt),mtn ,
543 3 istra ,ipla ,pm ,geo ,ixtg(1,nf1),
544 4 elbuf_tab(ng),bufmat ,offset ,indxof ,
545 5 etag , iddl ,ndof ,k_diag ,k_lt , iadk ,jdik ,
546 6 jhbe ,thke(numelc+nf1),ismstr ,x ,
547 7 ikgeo ,ipm ,igeo ,iexpan ,iparg(1,ng),
549 9 sedrape,numel_drape)
558 1001
FORMAT(
' *****WARNING : IMPLICITE FORMULATION IS NOT AVAILABLE
559 . WITH '/,2x,a11,
' ELEMENT : STIFFNESS IGNORED')
560 1002
FORMAT(
' *****WARNING : ELEMENT FORMULATION ISOLID= ',
561 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING;'
562 . ,
'USING GENERIC ONE INSTEAD, POSSIBLE CONVERGING ISSUE.')
563 1003
FORMAT(
' *****WARNING : ELEMENT FORMULATION ISHELL= ',
564 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING;'
565 . ,
'USING GENERIC ONE INSTEAD, POSSIBLE CONVERGING ISSUE.')
566 1004
FORMAT(
' *****WARNING : ELEMENT FORMULATION ISH3N = ',
567 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING;'
568 . ,
'USING GENERIC ONE INSTEAD, POSSIBLE CONVERGING ISSUE.')
569 1005
FORMAT(
' *****WARNING : TETRA ELEMENT FORMULATION W/ ITETRA= ',
570 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING;'
571 . ,
'USING ITETRA=0 INSTEAD, POSSIBLE CONVERGING ISSUE.')
590 SUBROUTINE get_kii(NI ,IDDL ,IADK,K_DIAG,K_LT ,KII,ND)
594#include "implicit_f.inc"
598#include "impl1_c.inc"
603 INTEGER NI,IDDL(*) ,IADK(*)
606 . K_DIAG(*) ,K_LT(*) ,KII(6,6)
615 kii(k,k) = k_diag(id+k)
624 kii(k,k) = k_diag(id+k)
652 SUBROUTINE put_kii(NI ,IDDL ,IADK,K_DIAG,K_LT ,KII,ND)
656#include "implicit_f.inc"
660#include "impl1_c.inc"
665 INTEGER NI,IDDL(*) ,IADK(*)
668 . K_DIAG(*) ,K_LT(*) ,KII(6,6)
677 k_diag(id+k) = k_diag(id+k) + kii(k,k)
681 k_lt(ik) = k_lt(ik) + kii(k,l)
686 k_diag(id+k) = k_diag(id+k) + kii(k,k)
690 k_lt(ik) = k_lt(ik) + kii(l,k)
711 SUBROUTINE get_kij( NI ,NJ ,IDDL ,IADK,JDIK,K_LT ,KIJ ,NK,NL ,
716#include "implicit_f.inc"
720#include "impl1_c.inc"
725 INTEGER NI,NJ,IDDL(*) ,IADK(*),JDIK(*)
732 INTEGER I,,K,EP,ID,JD,JDL,L,JJ
747 DO jj = iadk(id+k),iadk(id+1+k)-1
749 IF (jdik(jj)==jd)
THEN
769 DO jj = iadk(id+k),iadk(id+1+k)-1
770 IF (jdik(jj)==jd)
THEN
808 SUBROUTINE put_kij( NI ,NJ ,IDDL ,IADK,JDIK,K_LT,KIJ,NK,NL ,
813#include "implicit_f.inc"
817#include "impl1_c.inc"
822 INTEGER NI,NJ,IDDL(*) ,IADK(*),JDIK(*)
829 INTEGER ,J,K,EP,ID,JD,JDL,L,JJ
843 DO jj = iadk(id+k),iadk(id+1+k)-1
845 IF (jdik(jj)==jd)
THEN
853 k_lt(jdl+l) = k_lt(jdl+l) + kij(k,l)
858 DO jj = iadk(id+k),iadk(id+1+k)-1
859 IF (jdik(jj)==jd)
THEN
867 k_lt(jdl+l) = k_lt(jdl+l) + kij(l,k)
893#include "implicit_f.inc"
897#include "units_c.inc"
901 INTEGER NI ,NJ ,IFLAG
909 WRITE(iout,1001)ni,nj
910 WRITE(istdo,1001)ni,nj
911 ELSEIF (iflag==2)
THEN
912 WRITE(iout,1002)ni,nj
913 WRITE(istdo,1002)ni,nj
914 ELSEIF (iflag==3)
THEN
915 WRITE(iout,1003)ni,nj
916 WRITE(istdo,1003)ni,nj
917 ELSEIF (iflag==4)
THEN
918 WRITE(iout,1004)ni,nj
919 WRITE(istdo,1004)ni,nj
920 ELSEIF (iflag==5)
THEN
921 WRITE(iout,1005)ni,nj
922 WRITE(istdo,1005)ni,nj
924 WRITE(iout,1000)ni,nj
925 WRITE(istdo,1000)ni,nj
928 1000
FORMAT(
' *** WARNING : IN OPTION ? :'/,
929 .
'*** NO CONNECTIVITY BETWEEN NODES:',2i10)
930 1001
FORMAT(
' *** WARNING : IN RIGID BODY CONDENSATION:'/,
931 .
'*** NO CONNECTIVITY BETWEEN NODES:',2i10)
932 1002
FORMAT(
' *** WARNING : IN INTERFACE TYPE 2 CONDENSATION:'/,
933 .
'*** NO CONNECTIVITY BETWEEN NODES:',2i10)
934 1003
FORMAT(
' *** WARNING : IN REMESH KINEMATIC CONDENSATION:'/,
935 .
'*** NO CONNECTIVITY BETWEEN NODES:',2i10)
936 1004
FORMAT(
' *** WARNING : IN RBE3 CONDENSATION:'/,
937 .
'*** NO CONNECTIVITY BETWEEN NODES:',2i10)
938 1005
FORMAT(
' *** WARNING : IN RBE2 CONDENSATION:'/,
939 .
'*** NO CONNECTIVITY BETWEEN NODES:',2i10)
961 1 K_LT ,KII ,ND ,OFF )
965#include "implicit_f.inc"
969#include "impl1_c.inc"
970#include "comlock.inc"
975 INTEGER NI(*),NEL ,IDDL(*) , IADK(*)
978 . K_DIAG(*) ,K_LT(*) ,KII(ND,ND,*),OFF(*)
982 INTEGER N,K,EP,IK,ID,JD,L
987 IF (off(ep)>zero.AND.ni(ep)>0)
THEN
993 k_diag(id+k) = k_diag(id+k) + kii(k,k,ep)
999 k_lt(ik) = k_lt(ik) + kii(k,l,ep)
1006 k_diag(id+k) = k_diag(id+k) + kii(k,k,ep)
1012 k_lt(ik) = k_lt(ik) + kii(l,k,ep)
1019#include "lockoff.inc"
1040 1 K_DIAG,K_LT ,KIJ ,ND ,OFF )
1044#include "implicit_f.inc"
1048#include "mvsiz_p.inc"
1052#include "comlock.inc"
1053#include "impl1_c.inc"
1058 INTEGER NI(*),NJ(*),NEL ,IDDL(*) ,IADK(*),JDIK(*)
1061 . K_DIAG(*),K_LT(*) ,KIJ(ND,ND,*),OFF(*)
1065 INTEGER I,J,K,EP,ID,JD,JDL,L,JJ,NN(MVSIZ),NELD
1067 . KIJD(ND,ND,MVSIZ),OFFD(MVSIZ)
1071 IF (ni(ep)==nj(ep).AND.off(ep)>zero.AND.ni(ep)>0)
THEN
1077 kijd(i,j,neld)=kij(i,j,ep)+kij(j,i,ep)
1083 .
CALL assem_kii(nn ,neld ,iddl ,iadk ,k_diag,
1084 . k_lt ,kijd ,nd ,offd )
1086#include "lockon.inc"
1089 IF (off(ep)>zero.AND.ni(ep)/=nj(ep).AND.
1090 . ni(ep)>0.AND.nj(ep)>0)
THEN
1097 DO jj = iadk(id+k),iadk(id+1+k)-1
1099 IF (jdik(jj)==jd)
THEN
1106 k_lt(jdl+l) = k_lt(jdl+l) + kij(k,l,ep)
1112 DO jj = iadk(id+k),iadk(id+1+k)-1
1113 IF (jdik(jj)==jd)
THEN
1120 k_lt(jdl+l) = k_lt(jdl+l) + kij(l,k,ep)
1129 IF (off(ep)>zero.AND.ni(ep)/=nj(ep).AND.
1130 . ni(ep)>0.AND.nj(ep)>0)
THEN
1137 DO jj = iadk(id+k),iadk(id+1+k)-1
1139 IF (jdik(jj)==jd)
THEN
1146 k_lt(jdl+l) = k_lt(jdl+l) + kij(k,l,ep)
1152 DO jj = iadk(id+k),iadk(id+1+k)-1
1153 IF (jdik(jj)==jd)
THEN
1160 k_lt(jdl+l) = k_lt(jdl+l) + kij(l,k,ep)
1168#include "lockoff.inc"
1189#include "implicit_f.inc"
1193#include "impl1_c.inc"
1201 . K_DIAG(*) ,K_LT(*) ,KII(6,6)
1205 INTEGER K,IK,JD,L,IDM
1209 k_diag(id+k) = k_diag(id+k) + kii(k,k)
1213 k_lt(ik) = k_lt(ik) + kii(k,l)
1218 k_diag(id+k) = k_diag(id+k) + kii(k,k)
1222 k_lt(ik) = k_lt(ik) + kii(l,k)
1237 . KIJ ,NK ,NL ,IERR)
1241#include "implicit_f.inc"
1245#include "impl1_c.inc"
1250 INTEGER INI,INJ,IADK(*),JDIK(*)
1257 INTEGER I,J,K,EP,ID,JD,JDL,L,JJ
1271 DO jj = iadk(id+k),iadk(id+1+k)-1
1273 IF (jdik(jj)==jd)
THEN
1281 k_lt(jdl+l) = k_lt(jdl+l) + kij(k,l)
1286 DO jj = iadk(id+k),iadk(id+1+k)-1
1287 IF (jdik(jj)==jd)
THEN
1295 k_lt(jdl+l) = k_lt(jdl+l) + kij(l,k)
1308 1 K11 ,K12 ,K13 ,K14 ,K15 ,
1309 2 K16 ,K17 ,K18 ,K22 ,K23 ,
1310 3 K24 ,K25 ,K26 ,K27 ,K28 ,
1311 4 K33 ,K34 ,K35 ,K36 ,K37 ,
1312 5 K38 ,K44 ,K45 ,K46 ,K47 ,
1313 6 K48 ,K55 ,K56 ,K57 ,K58 ,
1314 7 K66 ,K67 ,K68 ,K77 ,K78 ,
1320#include "implicit_f.inc"
1321#include "mvsiz_p.inc"
1325 INTEGER IXS(NIXS,*),NFT,NEL,IUGEO
1328 . K11(3,3,*),K12(3,3,*),K13(3,3,*) ,K14(3,3,*) ,K15(3,3,*),
1329 . K16(3,3,*),K17(3,3,*),K18(3,3,*) ,K22(3,3,*) ,K23(3,3,*),
1330 . k24(3,3,*),k25(3,3,*),k26(3,3,*) ,k27(3,3,*) ,k28(3,3,*),
1331 . k33(3,3,*),k34(3,3,*),k35(3,3,*) ,k36(3,3,*) ,k37(3,3,*),
1332 . k38(3,3,*),k44(3,3,*),k45(3,3,*) ,k46(3,3,*) ,k47(3,3,*),
1333 . k48(3,3,*),k55(3,3,*),k56(3,3,*) ,k57(3,3,*) ,k58(3,3,*),
1334 . k66(3,3,*),k67(3,3,*),k68(3,3,*) ,k77(3,3,*) ,k78(3,3,*),
1339 INTEGER I,J,N,NT,IG(MVSIZ)
1347 CALL writeks(iugeo,nft,nel,ig,
'K11',k11)
1348 CALL writeks(iugeo,nft,nel,ig,
'K12',k12)
1349 CALL writeks(iugeo,nft,nel,ig,'k13
',K13)
1350 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k14
',K14)
1351 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k15
',K15)
1352 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k16
',K16)
1353 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k17
',K17)
1354 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k18
',K18)
1355 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k22
',K22)
1356 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k23
',K23)
1357 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k24
',K24)
1358 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k25
',K25)
1359 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k26
',K26)
1360 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k27
',K27)
1361 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k28
',K28)
1362 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k33
',K33)
1363 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k34
',K34)
1364 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k35
',K35)
1365 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k36
',K36)
1366 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k37
',K37)
1367 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k38
',K38)
1368 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k44
',K44)
1369 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k45
',K45)
1370 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k46
',K46)
1371 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k47
',K47)
1372 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k48
',K48)
1373 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k55
',K55)
1374 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k56
',K56)
1375 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k57
',K57)
1376 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k58
',K58)
1377 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k66
',K66)
1378 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k67
',K67)
1379 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k68
',K68)
1380 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k77
',K77)
1381 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k78
',K78)
1382 CALL WRITEKS(IUGEO,NFT,NEL,IG,'k88
',K88)
1387!||====================================================================
1388!|| writeks ../engine/source/implicit/imp_glob_k.F
1389!||--- called by ------------------------------------------------------
1390!|| impksout ../engine/source/implicit/imp_glob_k.F
1391!||====================================================================
1392 SUBROUTINE WRITEKS( IN,NFT,NEL,IG,CH,KIJ)
1396#include "implicit_f.inc"
1400 INTEGER IG(*),NFT,NEL,IN
1409 CHARACTER KEY*10,KEY1*23
1412 KEY1='#3d Solid Elements '//CH
1416 .
'#FORMAT: (2I8,1P4E16.9,6(/,1P5E16.9)) '
1417 WRITE(in,
'(2A)')
'# SYSSOL USRSOL K(I,J) I=1,3;J=1,3'
1420 WRITE(in,
'(2I8,1P4E16.9,6(/,1P5E16.9))'
1421 . )nt,ig(n),((kij(i,j,n),i=1,3),j=1,3)
1433 1 KE11 ,KE12 ,KE13 ,KE14 ,KE22 ,
1434 2 KE23 ,KE24 ,KE33 ,KE34 ,KE44 )
1439#include "implicit_f.inc"
1440#include "mvsiz_p.inc"
1444 INTEGER IXC(NIXC,*),NFT,NEL,IUGEO
1447 . ke11(6,6,*),ke22(6,6,*),ke33(6,6,*),ke44(6,6,*),
1448 . ke12(6,6,*),ke13(6,6,*),ke14(6,6,*),ke23(6,6,*),
1449 . ke24(6,6,*),ke34(6,6,*)
1453 INTEGER I,J,N,NT,IG(MVSIZ)
1461 CALL writekc(iugeo,nft,nel,ig,
'K11',ke11)
1462 CALL writekc(iugeo,nft,nel,ig,
'K12',ke12)
1463 CALL writekc(iugeo,nft,nel,ig,
'K13',ke13)
1464 CALL writekc(iugeo,nft,nel,ig,
'K14',ke14)
1465 CALL writekc(iugeo,nft,nel,ig,
'K22',ke22)
1466 CALL writekc(iugeo,nft,nel,ig,
'K23',ke23)
1467 CALL writekc(iugeo,nft,nel,ig,
'K24',ke24)
1468 CALL writekc(iugeo,nft,nel,ig,
'K33',ke33)
1469 CALL writekc(iugeo,nft,nel,ig,
'K34',ke34)
1470 CALL writekc(iugeo,nft,nel,ig,
'K44',ke44)
1484#include "implicit_f.inc"
1488 INTEGER IG(*),NFT,NEL,IN
1497 CHARACTER KEY*10,KEY1*23
1500 key1=
'#3d Shell Elements '//ch
1504 .
'#FORMAT: (2I8,1P4E16.9,6(/,1P5E16.9),/,1P2E16.9) '
1505 WRITE(in,
'(2A)')
'#SYSSHEL USRSHEL K(I,J) I=1,6;J=1,6'
1508 WRITE(in,
'(2I8,1P4E16.9,6(/,1P5E16.9),/,1P2E16.9)'
1509 . )nt,ig(n),((kij(i,j,n),i=1,6),j=1,6)
1520 SUBROUTINE impkpout( NIXPL,IXP,NFT,NEL,IUGEO,KE11,KE12,KE22 )
1525#include "implicit_f.inc"
1526#include "mvsiz_p.inc"
1531 INTEGER IXP(NIXPL,*),NEL,IUGEO,NFT
1534 . ke11(6,6,*),ke22(6,6,*),ke12(6,6,*)
1538 INTEGER I,J,N,NT,IG(MVSIZ)
1545 CALL writekp(iugeo,nft,nel,ig,
'K11',ke11)
1546 CALL writekp(iugeo,nft,nel,ig,
'K12',ke12)
1547 CALL writekp(iugeo,nft,nel,ig,
'K22',ke22)
1561#include
"implicit_f.inc"
1565 INTEGER IG(*),NFT,NEL,IN
1574 CHARACTER KEY*10,KEY1*23
1577 key1=
'#3d Beam Elements '//ch
1581 .
'#FORMAT: (2I8,1P4E16.9,6(/,1P5E16.9),/,1P2E16.9) '
1582 WRITE(in,
'(2A)')
'#SYSSHEL USRSHEL K(I,J) I=1,6;J=1,6'
1585 WRITE(in,
'(2I8,1P4E16.9,6(/,1P5E16.9),/,1P2E16.9)'
1586 . )nt,ig(n),((kij(i,j,n),i=1,6),j=1,6)
1597 SUBROUTINE impkiout( NIXPL,IXP,NFT,NEL,IUGEO,KE11,KE12,KE22 )
1602#include
"implicit_f.inc"
1603#include "mvsiz_p.inc"
1608 INTEGER IXP(NIXPL,*),NEL,IUGEO,NFT
1611 . ke11(3,3,*),ke22(3,3,*),ke12(3,3,*)
1615 INTEGER I,J,N,NT,IG(MVSIZ)
1622 CALL writeki(iugeo,nft,nel,ig,
'K11',ke11)
1623 CALL writeki(iugeo,nft,nel,ig,
'K12',ke12)
1624 CALL writeki(iugeo,nft,nel,ig,
'K22',ke22)
1638#include "implicit_f.inc"
1642 INTEGER IG(*),NFT,NEL,IN
1651 CHARACTER KEY*10,KEY1*23
1654 key1=
'#3d TRUSS Elements '//ch
1658 .
'#FORMAT: (2I8,1P4E16.9,6(/,1P5E16.9)) '
1659 WRITE(in,
'(2A)')
'#SYSSHEL USRSHEL K(I,J) I=1,3;J=1,3'
1662 WRITE(in,
'(2I8,1P4E16.9,6(/,1P5E16.9))'
1663 . )nt,ig(n),((kij(i,j,n),i=1,3),j=1,3)
1675 1 KE11 ,KE12 ,KE13 ,KE14 ,KE22 ,
1676 2 KE23 ,KE24 ,KE33 ,KE34 ,KE44 )
1680#include "implicit_f.inc"
1681#include "mvsiz_p.inc"
1686 INTEGER IXC(NIXCL,*),NFT,NEL,IUGEO
1689 . ke11(6,6,*),ke22(6,6,*),ke33(6,6,*),ke44(6,6,*),
1690 . ke12(6,6,*),ke13(6,6,*),ke14(6,6,*),ke23(6,6,*),
1691 . ke24(6,6,*),ke34(6,6,*)
1695 INTEGER I,J,N,NT,IG(MVSIZ),I2,I3,I4,J2,J3,J4
1697 . KE(24,24,MVSIZ),EW(24,MVSIZ),TOL,LAMDA(MVSIZ),
1698 . A,B,,LAMDAS(MVSIZ),EV(24,24),KTMP(2,2)
1714 ke(i,j,n)=ke11(i,j,n)
1715 ke(i2,j2,n)=ke22(i,j,n)
1716 ke(i3,j3,n)=ke33(i,j,n)
1717 ke(i4,j4,n)=ke44(i,j,n)
1730 ke(i,j2,n)=ke12(i,j,n)
1731 ke(i,j3,n)=ke13(i,j,n)
1732 ke(i,j4,n)=ke14(i,j,n)
1733 ke(i2,j3,n)=ke23(i,j,n)
1734 ke(i2,j4,n)=ke24(i,j,n)
1735 ke(i3,j4,n)=ke34(i,j,n)
1740 CALL jacobien(ke(1,1,n),24,ew(1,n),ev,tol,lamda(n))
1741 a=half*(ke11(1,1,n)+ke11(2,2,n))
1742 b=half*(ke11(1,1,n)-ke11(2,2,n))
1743 c=a+sqrt(b*b+ke11(1,2,n)*ke11(1,2,n))
1745 a=half*(ke22(1,1,n)+ke22(2,2,n))
1746 b=half*(ke22(1,1,n)-ke22(2,2,n))
1747 c=a+sqrt(b*b+ke22(1,2,n)*ke22(1,2,n))
1748 IF(c>lamdas(n))lamdas(n)=c
1749 a=half*(ke33(1,1,n)+ke33(2,2,n))
1750 b=half*(ke33(1,1,n)-ke33(2,2,n))
1751 c=a+sqrt(b*b+ke33(1,2,n)*ke33(1,2,n))
1752 IF(c>lamdas(n))lamdas(n)=c
1753 a=half*(ke44(1,1,n)+ke44(2,2,n))
1755 c=a+sqrt(b*b+ke44(1,2,n)*ke44(1,2,n))
1756 IF(c>lamdas(n))lamdas(n)=c
1758 WRITE(iugeo,
'(A)')
'#SHELL EIGENVALUES'
1760 .
'#FORMAT: (2I8,1P3E16.9,/,4(/,1P5E16.9),/,1P4E16.9) '
1762 .
'#SYSSHEL USRSHEL LAMDA1,LAMDAS,FAC, LAMDA(I),I=24'
1765 WRITE(iugeo,
'(2I8,1P3E16.9,/,4(/,1P5E16.9),/,1P4E16.9)'
1766 . )nt,ig(n),lamda(n),lamdas(n),lamda(n)/lamdas(n),
1793#include "implicit_f.inc"
1796 . a(n,n), ew(n), ev(n,n)
1797 . , b(n), z(n),tol,lamda
1798 INTEGER IZ,IS,ITER,J,NROT
1800 . SUMRS,EPS,G,H,T,C,S,TAU,THETA,R,LAMDA0
1804 IF(iz<is) a(is,iz) = a(iz,is)
1825 sumrs=sumrs+abs(a(iz,is))
1829 IF (sumrs ==zero)
GOTO 9000
1833 eps = one_fifth*sumrs/n**2
1843 g = 100. * abs(a(iz,is))
1844 IF (iter>4 .AND. abs(ew(iz))+g==abs(ew(iz))
1845 & .AND. abs(ew(is))+g==abs(ew(is)))
THEN
1847 ELSE IF (abs(a(iz,is)) > eps)
THEN
1849 IF (abs(h)+g==abs(h))
THEN
1852 theta = half*h/a(iz,is)
1853 t=one/(abs(theta)+sqrt(one+theta**2))
1854 IF (theta < zero) t=-t
1856 c=one/sqrt(one+t**2)
1868 a(j,iz)=g-s*(h+g*tau)
1869 a(j,is)=h+s*(g-h*tau)
1874 a(iz,j)=g-s*(h+g*tau)
1875 a(j,is)=h+s*(g-h*tau)
1880 a(iz,j)=g-s*(h+g*tau)
1881 a(is,j)=h+s*(g-h*tau)
1886 ev(j,iz)=g-s*(h+g*tau)
1887 ev(j,is)=h+s*(g-h*tau)
1895 IF (b(iz)>lamda)lamda=b(iz)
1900 r=abs(lamda/
max(em20,lamda0)-one)
1919 SUBROUTINE eleoff(JFT , JLT , IX, NIX ,NN ,ETAG, OFF)
1923#include "implicit_f.inc"
1931 INTEGER JFT, JLT, IX(NIX,*), ETAG(*),NN
1937 INTEGER I, J ,N,N1,NALL,IUN
1953!||====================================================================
1964!||--- uses -----------------------------------------------------
1965!|| sensor_mod ../common_source/modules/sensor_mod.f90
1968 2 SKEW ,NSENSOR,SENSOR_TAB,WEIGHT,IADC ,
1969 3 IDDL ,NDOF ,IADK ,JDIK ,K_DIAG,
1978#include "implicit_f.inc"
1979#include "comlock.inc"
1980#include "param_c.inc"
1984#include "com01_c.inc"
1985#include "com04_c.inc"
1986#include "com08_c.inc"
1990 INTEGER ,
INTENT(IN) :: NSENSOR
1994 INTEGER NPC(*),IB(NIBCLD,*)
1995 INTEGER (*), IADC(4,*)
1996 INTEGER (*) ,NDOF(*) ,IADK(*) ,JDIK(*)
1999 . fac(lfaccld,*), tf(*), x(3,*), skew(lskew,*),
2000 . k_diag(*) ,k_lt(*)
2001 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) ::
2005 INTEGER NL, N1, ISK, N2, N3, N4, N5, K1, K2, K3, ISENS,K,LL,
2006 . ,IAD,N_OLD,IPRES4,IERR,ND,I,J
2009 . AXI, AA, , VV, FX, FY, FZ, AX, DYDX, TS,
2010 . SIXTH,X_OLD, F1, F2,XSENS,FCX,FCY,SCALN
2012 . VKSI(4,4),VETA(4,4),VF4(4,4),
2013 . K11(6,6),K22(6,6),K33(6,6),K44(6,6),K12(6,6),
2014 . K13(6,6),K14(6,6),K23(6,6),K24(6,6),K34(6,6)
2029 IF(ib(6,nl)==sensor_tab(k)%SENS_ID) isens=k
2034 ts = tt-sensor_tab(isens)%TSTART
2046 IF (xsens==zero) cycle
2062 IF (ipres4==0)
RETURN
2063 IF (ipres4>1)
CALL kp4_ini(vksi,veta,vf4)
2077 IF(ib(6,nl)==sensor_tab(k)%SENS_ID) isens=k
2082 ts = tt-sensor_tab(isens)%TSTART
2083 IF(ts < zero)
GOTO 10
2094 IF(n_old/=n5.OR.x_old/=ts)
THEN
2095 f1 = finter(n5,ts*fcx,npc,tf,dydx)
2099 aa = -scaln*fcy*f1*xsens
2105 CALL kpquad(n1,n2,n3,n4,aa,x,vksi,veta,vf4,
2106 . k11,k22,k33,k44,k12,k13,k14,k23,k24,k34)
2113 CALL put_kij(n1 ,n2 ,iddl ,iadk,jdik,k_lt,k12,nd ,nd ,
2115 CALL put_kij(n1 ,n3 ,iddl ,iadk,jdik,k_lt,k13,nd ,nd ,
2117 CALL put_kij(n1 ,n4 ,iddl ,iadk,jdik,k_lt,k14,nd ,nd ,
2119 CALL put_kij(n2 ,n3 ,iddl ,iadk,jdik,k_lt,k23,nd ,nd ,
2121 CALL put_kij(n2 ,n4 ,iddl ,iadk,jdik,k_lt,k24,nd ,nd ,
2123 CALL put_kij(n3 ,n4 ,iddl ,iadk,jdik,k_lt,k34,nd ,nd ,
2127 CALL kptria(n1,n2,n3,aa,x,
2128 . k11,k22,k33,k12,k13,k23)
2133 CALL put_kij(n1 ,n2 ,iddl ,iadk,jdik,k_lt,k12,nd ,nd ,
2135 CALL put_kij(n1 ,n3 ,iddl ,iadk,jdik,k_lt,k13,nd ,nd ,
2137 CALL put_kij(n2 ,n3 ,iddl ,iadk,jdik,k_lt,k23,nd ,nd ,
2153 SUBROUTINE kpquad(N1,N2,N3,N4,P,X,VKSI,VETA,VF4,
2154 . K11,K22,K33,K44,K12,K13,K14,K23,K24,K34)
2158#include "implicit_f.inc"
2167 . p,x(3,*),vksi(4,4),veta(4,4),vf4(4,4),
2168 . k11(6,6),k22(6,6),k33(6,6),k44(6,6),k12(6,6),
2169 . k13(6,6),k14(6,6),k23(6,6),k24(6,6),k34(6,6)
2175 . pg,j0,j1,j2,deta(4),x1,y1,s1,pg2,
2176 . ksix,ksiy,ksiz,etax,etay,etaz,hx,hy,hz,
2177 . g1x(4),g1y(4),g1z(4),g2x(4),g2y(4),g2z(4)
2178 DATA pg/.577350269189626/
2180 ksix=(-x(1,n1)+x(1,n2)+x(1,n3)-x(1,n4))*fourth
2181 ksiy=(-x(2,n1)+x(2,n2)+x(2,n3)-x(2,n4))*fourth
2182 ksiz=(-x(3,n1)+x(3,n2)+x(3,n3)-x(3,n4))*fourth
2184 etax=(-x(1,n1)-x(1,n2)+x(1,n3)+x(1,n4))*fourth
2185 etay=(-x(2,n1)-x(2,n2)+x(2,n3)+x(2,n4))*fourth
2186 etaz=(-x(3,n1)-x(3,n2)+x(3,n3)+x(3,n4))*fourth
2188 hx=(x(1,n1)-x(1,n2)+x(1,n3)-x(1,n4))*fourth
2189 hy=(x(2,n1)-x(2,n2)+x(2,n3)-x(2,n4))*fourth
2190 hz=(x(3,n1)-x(3,n2)+x(3,n3)-x(3,n4))*fourth
2269 k12(1,2)=k12(1,2) + s1*vf4(1,np)*
2270 . (vksi(2,np)*g2z(np)-veta(2,np)*g1z(np))
2271 k12(1,3)=k12(1,3) - s1*vf4(1,np)*
2272 . (vksi(2,np)*g2y(np)-veta(2,np)*g1y(np))
2273 k12(2,3)=k12(2,3) + s1*vf4(1,np)*
2274 . (vksi(2,np)*g2x(np)-veta(2,np)*g1x(np))
2275 k13(1,2)=k13(1,2) + s1*vf4(1,np)*
2276 . (vksi(3,np)*g2z(np)-veta(3,np)*g1z(np))
2277 k13(1,3)=k13(1,3) - s1*vf4(1,np)*
2278 . (vksi(3,np)*g2y(np)-veta(3,np)*g1y(np))
2279 k13(2,3)=k13(2,3) + s1*vf4(1,np)*
2280 . (vksi(3,np)*g2x(np)-veta(3,np)*g1x(np))
2281 k14(1,2)=k14(1,2) + s1*vf4(1,np)*
2282 . (vksi(4,np)*g2z(np)-veta(4,np)*g1z(np))
2283 k14(1,3)=k14(1,3) - s1*vf4(1,np)*
2284 . (vksi(4,np)*g2y(np)-veta(4,np)*g1y(np))
2285 k14(2,3)=k14(2,3) + s1*vf4(1,np)*
2286 . (vksi(4,np)*g2x(np)-veta(4,np)*g1x(np))
2287 k23(1,2)=k23(1,2) + s1*vf4(2,np)*
2288 . (vksi(3,np)*g2z(np)-veta(3,np)*g1z(np))
2289 k23(1,3)=k23(1,3) - s1*vf4(2,np)*
2290 . (vksi(3,np)*g2y(np)-veta(3,np)*g1y(np))
2291 k23(2,3)=k23(2,3) + s1*vf4(2,np)*
2292 . (vksi(3,np)*g2x(np)-veta(3,np)*g1x(np))
2293 k24(1,2)=k24(1,2) + s1*vf4(2,np)*
2294 . (vksi(4,np)*g2z(np)-veta(4,np)*g1z(np))
2295 k24(1,3)=k24(1,3) - s1*vf4(2,np)*
2296 . (vksi(4,np)*g2y(np)-veta(4,np)*g1y(np))
2297 k24(2,3)=k24(2,3) + s1*vf4(2,np)*
2298 . (vksi(4,np)*g2x(np)-veta(4,np)*g1x(np)
2299 k34(1,2)=k34(1,2) + s1*vf4(3,np)*
2300 . (vksi(4,np)*g2z(np)-veta(4,np)*g1z(np))
2301 k34(1,3)=k34(1,3) - s1*vf4(3,np)*
2302 . (vksi(4,np)*g2y(np)-veta(4,np)*g1y(np))
2303 k34(2,3)=k34(2,3) + s1*vf4(3,np)*
2304 . (vksi(4,np)*g2x(np)-veta(4,np)*g1x(np))
2308 k12(1,2)=k12(1,2) - s1*vf4(2,np)*
2309 . (vksi(1,np)*g2z(np)-veta(1,np)*g1z(np))
2310 k12(1,3)=k12(1,3) + s1*vf4(2,np)*
2311 . (vksi(1,np)*g2y(np)-veta(1,np)*g1y(np))
2312 k12(2,3)=k12(2,3) - s1*vf4(2,np)*
2313 . (vksi(1,np)*g2x(np)-veta(1,np)*g1x(np))
2314 k13(1,2)=k13(1,2) - s1*vf4(3,np)*
2315 . (vksi(1,np)*g2z(np)-veta(1,np)*g1z(np))
2316 k13(1,3)=k13(1,3) + s1*vf4(3,np)*
2317 . (vksi(1,np)*g2y(np)-veta(1,np)*g1y(np))
2318 k13(2,3)=k13(2,3) - s1*vf4(3,np)*
2319 . (vksi(1,np)*g2x(np)-veta(1,np)*g1x(np))
2320 k14(1,2)=k14(1,2) - s1*vf4(4,np)*
2321 . (vksi(1,np)*g2z(np)-veta(1,np)*g1z(np))
2322 k14(1,3)=k14(1,3) + s1*vf4(4,np)*
2323 . (vksi(1,np)*g2y(np)-veta(1,np)*g1y(np))
2324 k14(2,3)=k14(2,3) - s1*vf4(4,np)*
2325 . (vksi(1,np)*g2x(np)-veta(1,np)*g1x(np))
2326 k23(1,2)=k23(1,2) - s1*vf4(3,np)*
2327 . (vksi(2,np)*g2z(np)-veta(2,np)*g1z(np))
2328 k23(1,3)=k23(1,3) + s1*vf4(3,np)*
2329 . (vksi(2,np)*g2y(np)-veta(2,np)*g1y(np))
2330 k23(2,3)=k23(2,3) - s1*vf4(3,np)*
2331 . (vksi(2,np)*g2x(np)-veta(2,np)*g1x(np))
2332 k24(1,2)=k24(1,2) - s1*vf4(4,np)*
2333 . (vksi(2,np)*g2z(np)-veta(2,np)*g1z(np))
2334 k24(1,3)=k24(1,3) + s1*vf4(4,np)*
2335 . (vksi(2,np)*g2y(np)-veta(2,np)*g1y(np))
2336 k24(2,3)=k24(2,3) - s1*vf4(4,np)*
2337 . (vksi(2,np)*g2x(np)-veta(2,np)*g1x(np))
2338 k34(1,2)=k34(1,2) - s1*vf4(4,np)*
2339 . (vksi(3,np)*g2z(np)-veta(3,np)*g1z(np))
2340 k34(1,3)=k34(1,3) + s1*vf4(4,np)*
2341 . (vksi(3,np)*g2y(np)-veta(3,np)*g1y(np))
2342 k34(2,3)=k34(2,3) - s1*vf4(4,np)*
2343 . (vksi(3,np)*g2x(np)-veta(3,np)*g1x(np))
2373#include "implicit_f.inc"
2379 . rx , ry , rz,sx , sy, sz, det
2388 e3x = ry * sz - rz * sy
2389 e3y = rz * sx - rx * sz
2390 e3z = rx * sy - ry * sx
2391 det= sqrt(e3x*e3x + e3y*e3y + e3z*e3z)
2397!||--- called by ------------------------------------------------------
2404#include "implicit_f.inc"
2412 . vksi(4,4),veta(4,4),vf4(4,4)
2419 DATA pg/.577350269189626/
2421 vksi(1,1)=-fourth*(one+pg)
2422 vksi(2,1)=-vksi(1,1)
2423 vksi(3,1)= fourth*(one-pg)
2424 vksi(4,1)=-vksi(3,1)
2425 veta(1,1)=-fourth*(one+pg)
2426 veta(2,1)=-fourth*(one-pg)
2427 veta(3,1)=-veta(2,1)
2428 veta(4,1)=-veta(1,1)
2429 vksi(1,2)= vksi(1,1)
2430 vksi(2,2)=-vksi(1,2)
2431 vksi(3,2)= vksi(3,1)
2432 vksi(4,2)=-vksi(3,2)
2433 veta(1,2)= veta(2,1)
2434 veta(2,2)= veta(1,1)
2435 veta(3,2)=-veta(2,2)
2436 veta(4,2)=-veta(1,2)
2437 vksi(1,3)=-vksi(3,1)
2438 vksi(2,3)=-vksi(1,3)
2439 vksi(3,3)=-vksi(1,1)
2440 vksi(4,3)=-vksi(3,3)
2441 veta(1,3)= veta(1,2)
2442 veta(2,3)= veta(2,2)
2443 veta(3,3)=-veta(2,3)
2445 vksi(1,4)= vksi(1,3)
2446 vksi(2,4)=-vksi(1,4)
2447 vksi(3,4)= vksi(3,3)
2448 vksi(4,4)=-vksi(3,4)
2449 veta(1,4)= veta(1,1)
2451 veta(3,4)=-veta(2,4)
2457 vf4(i,3)=fourth+(vksi(i,3)+veta(i,3))*pg
2458 vf4(i,4)=fourth+(-vksi(i,4)+veta(i,4))*pg
2460 vf4(1,1)=vf4(1,1)-pg2
2461 vf4(2,1)=vf4(2,1)+pg2
2462 vf4(3,1)=vf4(3,1)-pg2
2463 vf4(4,1)=vf4(4,1)+pg2
2464 vf4(1,2)=vf4(1,2)+pg2
2465 vf4(2,2)=vf4(2,2)-pg2
2466 vf4(3,2)=vf4(3,2)+pg2
2467 vf4(4,2)=vf4(4,2)-pg2
2468 vf4(1,3)=vf4(1,3)-pg2
2469 vf4(2,3)=vf4(2,3)+pg2
2470 vf4(3,3)=vf4(3,3)-pg2
2471 vf4(4,3)=vf4(4,3)+pg2
2472 vf4(1,4)=vf4(1,4)+pg2
2473 vf4(2,4)=vf4(2,4)-pg2
2474 vf4(3,4)=vf4(3,4)+pg2
2475 vf4(4,4)=vf4(4,4)-pg2
2480!||--- called by ------------------------------------------------------
2484 . K11,K22,K33,K12,K13,K23)
2488#include "implicit_f.inc"
2498 . k11(6,6),k22(6,6),k33(6,6),k12(6,6),
2505 . x21,y21,z21,x31,y31,z31,s1,g1x,g1y,g1z,g2x,g2y,g2z
2530 s1 = one_over_6*p*half
2550 k12(1,2)=s1*(g2z+g2z-g1z)
2551 k12(1,3)=-s1*(g2y+g2y-g1y)
2552 k12(2,3)=s1*(g2x+g2x-g1x)
2553 k13(1,2)=-s1*(g1z-g2z+g1z)
2554 k13(1,3)=s1*(g1y-g2y+g1y)
2555 k13(2,3)=-s1*(g1x-g2x+g1x)
2556 k23(1,2)=-s1*(g1z+g2z)
2557 k23(1,3)=s1*(g1y+g2y)
2558 k23(2,3)=-s1*(g1x+g2x)
2580 1 K_LT ,KII ,ND ,OFF ,NDOF )
2584#include "implicit_f.inc"
2588#include "impl1_c.inc"
2589#include "comlock.inc"
2594 INTEGER NI(*),NEL ,IDDL(*) , IADK(*),NDOF(*)
2597 . k_diag(*) ,k_lt(*) ,kii(nd,nd,*),off(*)
2602 INTEGER N,K,EP,IK,,JD,L
2605#include "lockon.inc"
2607 IF (off(ep)>zero.AND.ni(ep)>0)
THEN
2613 k_diag(
id+k) = k_diag(
id+k) + kii(k,k,ep)
2619 k_lt(ik) = k_lt(ik) + kii(k,l,ep)
2626 k_diag(
id+k) = k_diag(
id+k) + kii(k,k,ep)
2632 k_lt(ik) = k_lt(ik) + kii(l,k,ep)
2639#include "lockoff.inc"
2652 1 K_DIAG,K_LT ,KIJ ,ND ,OFF ,
2657#include "implicit_f.inc"
2661#include "mvsiz_p.inc"
2665#include "comlock.inc"
2666#include "impl1_c.inc"
2671 INTEGER NI(*),NJ(*),NEL ,IDDL(*) ,IADK(*),JDIK(*) ,NDOF(*)
2674 . k_diag(*),k_lt(*) ,kij(nd,nd,*),off(*)
2678 INTEGER I,J,K,EP,ID,JD,JDL,L,JJ,NN(MVSIZ),NELD,N,N1,N2
2680 . KIJD(ND,ND,MVSIZ),OFFD(MVSIZ)
2684 IF (ni(ep)==nj(ep).AND.off(ep)>zero.AND.ni(ep)>0)
THEN
2691 kijd(i,j,neld)=kij(i,j,ep)+kij(j,i,ep)
2697 .
CALL assemc_kii(nn ,neld ,iddl ,iadk ,k_diag,
2698 . k_lt ,kijd ,nd ,offd ,ndof )
2701#include "lockon.inc"
2704 IF (off(ep)>zero.AND.ni(ep)/=nj(ep).AND.
2705 . ni(ep)>0.AND.nj(ep)>0)
THEN
2716 IF (jdik(jj)==jd)
THEN
2723 k_lt(jdl+l) = k_lt(jdl+l) + kij(k,l,ep)
2729 DO jj = iadk(id+k),iadk(id+1+k)-1
2730 IF (jdik(jj)==jd)
THEN
2737 k_lt(jdl+l) = k_lt(jdl+l) + kij(l,k,ep)
2746 IF (off(ep)>zero.AND.ni(ep)/=nj(ep).AND.
2747 . ni(ep)>0.AND.nj(ep)>0)
THEN
2756 DO jj = iadk(id+k),iadk(id+1+k)-1
2758 IF (jdik(jj)==jd)
THEN
2765 k_lt(jdl+l) = k_lt(jdl+l) + kij(k,l,ep)
2771 DO jj = iadk(id+k),iadk(id+1+k)-1
2772 IF (jdik(jj)==jd)
THEN
2779 k_lt(jdl+l) = k_lt(jdl+l) + kij(l,k,ep)
2787#include "lockoff.inc"
2804#include "implicit_f.inc"
2808#include "com01_c.inc"
2809#include "param_c.inc"
2813 INTEGER IPARG(NPARG,*),IGROUC(*)
2817 INTEGER NG, ITY, NGROUC
2823 IF(ity==3.OR.ity==7)
THEN
2830 IF(ity==3.OR.ity==7)
THEN
2858 1 PM ,GEO ,IPM ,IGEO ,ELBUF ,
2859 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
2860 3 IXR ,IXTG ,IXTG1 ,IXS10 ,
2861 4 IXS20 ,IXS16 ,IPARG ,TF ,NPC ,
2862 5 FR_WAVE ,W16 ,BUFMAT ,THKE ,BUFGEO ,
2864 7 WA ,IDDL ,NDOF ,K_DIAG ,K_LT ,
2865 8 IADK ,JDIK ,IKGEO ,ETAG ,ITASK0 ,
2866 9 ELBUF_TAB ,STACK ,DRAPE_SH4N, DRAPE_SH3N ,DRAPEG )
2877#include "implicit_f.inc"
2878#include "comlock.inc"
2882#include "com01_c.inc"
2883#include "param_c.inc"
2884#include "task_c.inc"
2885#include "units_c.inc"
2886#include "impl1_c.inc"
2890 INTEGER IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*) ,
2891 . IPM(NPROPMI,*),IGEO(NPROPGI,*),IKGEO,ITASK0
2892 INTEGER IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*), IXT(NIXT,*),
2893 . IXP(NIXP,*),IXR(NIXR,*), IXTG(NIXTG,*),
2894 . NPC(*), IPARG(NPARG,*),
2895 . IXS10(6,*),IXS20(12,*),IXS16(8,*),IXTG1(4,*), ETAG(*)
2898 . PM(NPROPM,*),GEO(NPROPG,*),BUFMAT(*) ,TF(*) ,
2899 . FR_WAVE(*) ,ELBUF(*) ,THKE(*),RBY(*),SKEW(LSKEW,*),
2900 . BUFGEO(*),W16(*),X(3,*),WA(*)
2902 . k_diag(*) ,k_lt(*)
2903 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
2904 TYPE (STACK_PLY) :: STACK
2905 TYPE (DRAPE_),
TARGET :: DRAPE_SH4N(NUMELC_DRAPE), DRAPE_SH3N(NUMELTG_DRAPE)
2906 TYPE (DRAPEG_) :: DRAPEG
2911 INTEGER IGROUC(NGROUP),IPRMES_EL(40)
2913 INTEGER OMP_GET_THREAD_NUM
2914 EXTERNAL omp_get_thread_num
2916 IF (ncycle==1.AND.inconv==1)
THEN
2924 itask = omp_get_thread_num()
2928 1 pm ,geo ,ipm ,igeo ,elbuf ,
2929 2 ixs ,ixq ,ixc ,ixt ,ixp ,
2930 3 ixr ,ixtg ,ixtg1 ,ixs10 ,
2931 4 ixs20 ,ixs16 ,iparg ,tf ,npc ,
2932 5 fr_wave ,w16 ,bufmat ,thke ,bufgeo ,
2934 7 wa ,iddl ,ndof ,k_diag ,k_lt ,
2935 8 iadk ,jdik ,ikgeo ,etag ,itask ,
2936 9 elbuf_tab ,igrouc ,iprmes_el ,stack ,drape_sh4n, drape_sh3n ,
2940 IF (ncycle==1.AND.inconv==1)
THEN
2946 IF (ispmd == 0 )
THEN
2948 IF (iprmes_el(i)>0)
THEN
2955 WRITE(iout,1001)
' S16 SOLID'
2956 WRITE(istdo,1001)
' S16 SOLID'
2970 WRITE(iout,1001)
' USERS '
2971 WRITE(istdo,1001)
' USERS '
2973 WRITE(iout,1001)
' HEPH SOLID'
2975 WRITE(iout,1001)
' S8 SOLID'
2977 WRITE(iout,1001)
' QUAD 2D '
2978 WRITE(istdo,1001)
' QUAD 2D '
2996 WRITE(iout,1001)
' S3N6 SHELL'
2997 WRITE(istdo,1001)
' S3N6 SHELL'
3002 WRITE(iout,1001)
'USER-SPRING'
3003 WRITE(istdo,1001)
'USER-SPRING'
3010 1001
FORMAT(
' ***** WARNING : IMPLICIT FORMULATION IS NOT AVAILABLE
3011 . WITH '/,2x,a11,
' ELEMENT : STIFFNESS IGNORED *****')
3012 1002
FORMAT(
' ***** WARNING : ELEMENT FORMULATION ISOLID= ',
3013 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING,'
3014 . ,
' USING GENERIC ONE INSTEAD'/
3015 . ,5x,
' POSSIBLE CONVERGING ISSUE. *****')
3016 1003
FORMAT(
' ***** WARNING : ELEMENT FORMULATION ISHELL= ',
3017 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING,'
3018 . ,
' USING GENERIC ONE INSTEAD'/
3019 . ,5x,
' POSSIBLE CONVERGING ISSUE. *****')
3020 1004
FORMAT(
' ***** WARNING : ELEMENT FORMULATION ISH3N = ',
3021 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING,'
3022 . ,
' USING GENERIC ONE INSTEAD'/
3023 . ,5x,' possible converging issue. *****
')
3024 1005 FORMAT(' ***** warning : spring element prop.
TYPE =
',
3025 . I4/,5X,'is not available
for stiffness matrix building,
'
3026 . ,' stiffness ignored *****
')
3027 1006 FORMAT(' *****warning : tetra element formulation w/ itetra>0
'/,
3028 . 5X,'is not available
for stiffness matrix building;
'/,
3029 . 5X,'using itetra=0 instead, possible converging issue.
')
3032!||====================================================================
3033!|| imp_glob_k0 ../engine/source/implicit/imp_glob_k.F
3034!||--- called by ------------------------------------------------------
3035!|| imp_glob_khp ../engine/source/implicit/imp_glob_k.F
3036!||--- calls -----------------------------------------------------
3037!|| c3ke3 ../engine/source/elements/sh3n/coque3n/c3ke3.F
3038!|| cbake3 ../engine/source/elements/shell/coqueba/cbake3.F
3039!|| czke3 ../engine/source/elements/shell/coquez/czke3.F
3040!|| initbuf ../engine/share/resol/initbuf.F
3041!|| pke3 ../engine/source/elements/beam/pke3.F
3042!|| q4ke2 ../engine/source/elements/solid_2d/quad4/q4ke2.F
3043!|| r12ke3 ../engine/source/elements/spring/r12ke3.F
3044!|| r13ke3 ../engine/source/elements/spring/r13ke3.F
3045!|| r4ke3 ../engine/source/elements/spring/r4ke3.F
3046!|| r8ke3 ../engine/source/elements/spring/r8ke3.F
3047!|| ruser32ke3 ../engine/source/elements/spring/ruser32ke3.F
3048!|| s10ke3 ../engine/source/elements/solid/solide10/s10ke3.F
3049!|| s20ke3 ../engine/source/elements/solid/solide20/s20ke3.F
3050!|| s4ke3 ../engine/source/elements/solid/solide4/s4ke3.F
3051!|| s6cke3 ../engine/source/elements/thickshell/solide6c/s6cke3.F
3052!|| s8cke3 ../engine/source/elements/thickshell/solide8c/s8cke3.F
3053!|| s8ske3 ../engine/source/elements/solid/solide8s/s8ske3.F
3054!|| s8zke3 ../engine/source/elements/solid/solide8z/s8zke3.F
3055!|| startimeg ../engine/source/system/timer.F
3056!|| tke3 ../engine/source/elements/truss/tke3.F
3057!||--- uses -----------------------------------------------------
3058!|| drape_mod ../engine/share/modules/drape_mod.F
3059!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
3060!|| initbuf_mod ../engine/share/resol/initbuf.F
3061!|| stack_mod ../engine/share/modules/stack_mod.F
3062!||====================================================================
3063 SUBROUTINE IMP_GLOB_K0(
3064 1 PM ,GEO ,IPM ,IGEO ,ELBUF ,
3065 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
3066 3 IXR ,IXTG ,IXTG1 ,IXS10 ,
3067 4 IXS20 ,IXS16 ,IPARG ,TF ,NPC ,
3068 5 FR_WAVE ,W16 ,BUFMAT ,THKE ,BUFGEO ,
3070 7 WA ,IDDL ,NDOF ,K_DIAG ,K_LT ,
3071 8 IADK ,JDIK ,IKGEO ,ETAG ,ITASK ,
3072 9 ELBUF_TAB ,IGROUC ,IPRMES_EL ,STACK ,DRAPE_SH4N, DRAPE_SH3N ,
3084#include "implicit_f.inc"
3085#include "comlock.inc"
3089#include "mvsiz_p.inc"
3093#include "com01_c.inc"
3094#include "com04_c.inc"
3095#include "param_c.inc"
3096#include "vect01_c.inc"
3097#include "scr14_c.inc"
3098#include "task_c.inc"
3099#include "impl1_c.inc"
3103 INTEGER IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*) ,
3104 . IPM(NPROPMI,*),IGEO(NPROPGI,*),IKGEO,ITASK,IGROUC(NGROUP)
3105 INTEGER IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*), IXT(NIXT,*),
3106 . IXP(NIXP,*),IXR(NIXR,*), IXTG(NIXTG,*),
3107 . NPC(*), IPARG(NPARG,*),
3108 . IXS10(6,*),IXS20(12,*),IXS16(8,*),IXTG1(4,*), ETAG(*),
3112 . PM(NPROPM,*),GEO(NPROPG,*),BUFMAT(*) ,TF(*) ,
3113 . FR_WAVE(*) ,ELBUF(*) ,THKE(*),RBY(*),SKEW(LSKEW,*),
3114 . BUFGEO(*),W16(*),X(3,*),WA(*)
3116 . K_DIAG(*) ,K_LT(*)
3117 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
3118 TYPE (STACK_PLY) :: STACK
3119 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE), DRAPE_SH3N(NUMELTG_DRAPE)
3120 TYPE (DRAPEG_) :: DRAPEG
3124 INTEGER I,N, NG, NVC, MLW, JFT, JLT,ISOLNOD,ITHK ,IPLA ,
3125 . K1, K2, KAD,IAD2,NF1,IPRI, NELEM, OFFSET, NSGRP, K,
3126 . K0, K3, K5, K6, K7, K8, K9, NSG, NEL, KFTS,IOFC, ISTRA,
3127 . JJ19,NPE,NIPMAX,ICNOD,NFT1,LIAD,INPT,NF2,MPT,
3128 . L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,
3129 . L17,L18,L19,L20,L21,L22,L23,L24,L25,L26,L27,L28,L29,L30,
3130 . SEDRAPE, NUMEL_DRAPE
3131 INTEGER INDXOF(MVSIZ),ISH3N
3132 INTEGER ICP,ICS,IEXPAN,IETY,IG,ISUBSTACK
3138!$OMP DO SCHEDULE(DYNAMIC,1)
3146 IF(IPARG(8,NG)==1)GOTO 250
3147 IF (IDDW>0) CALL STARTIMEG(NG)
3152.OR.
IF (MLW == 0 MLW == 13) GOTO 250
3153 CALL INITBUF(IPARG ,NG ,
3154 2 MLW ,NEL ,NFT ,KAD ,ITY ,
3155 3 NPT ,JALE ,ISMSTR ,JEUL ,JTUR ,
3156 4 JTHE ,JLAG ,JMULT ,JHBE ,JIVF ,
3157 5 NVAUX ,JPOR ,JCVT ,JCLOSE ,IPLA ,
3158 6 IREP ,IINT ,IGTYP ,ISRAT ,ISROT ,
3159 7 ICSEN ,ISORTH ,ISORTHG ,IFAILURE,JSMS )
3160 ICNOD = IPARG(11,NG)
3164 ISTRA = IPARG(44,NG)
3167 ISOLNOD = IPARG(28,NG)
3169 IEXPAN = IPARG(49,NG)
3170 ISH3N = IPARG(23,NG)
3171 ISUBSTACK=IPARG(71,NG)
3175.OR.
IF(ITY==1ITY==2) JPLASOL=IPLA
3178 LLT = MIN(NVSIZ,NEL)
3187.AND.
IF(ITY==1 JLAG==1)THEN
3188 IGTYP = NINT(GEO(12,IXS(10,NF1)))
3191.AND.
IF (ISROT > 0 ISPMD==0) THEN
3192 IF (IPRMES_EL(IETY)==0) THEN
3198 2 ELBUF_TAB(NG)%GBUF, ETAG, IDDL,
3199 3 NDOF, K_DIAG, K_LT, IADK,
3200 4 JDIK, NEL, IPM, IGEO,
3201 5 IKGEO, BUFMAT, NFT, MTN,
3202 6 ISMSTR, JHBE, IREP, ISORTH,
3204 ELSEIF(ISOLNOD==10)THEN
3207 1 PM, GEO, IXS, IXS10,
3208 2 X, ELBUF_TAB(NG),ETAG, IDDL,
3209 3 NDOF, K_DIAG, K_LT, IADK,
3210 4 JDIK, NEL, IPM, IGEO,
3211 5 IKGEO, BUFMAT, NFT, MTN,
3212 6 NPT, ISMSTR, JHBE, IREP,
3215 ELSEIF(ISOLNOD==20)THEN
3217 1 PM, GEO, IXS, IXS20,
3218 2 X, ELBUF_TAB(NG),ETAG, IDDL,
3219 3 NDOF, K_DIAG, K_LT, IADK,
3220 4 JDIK, NEL, IPM, IGEO,
3221 5 IKGEO, BUFMAT, NFT, MTN,
3222 6 ISMSTR, JHBE, IREP, IGTYP,
3226 ELSEIF(ISOLNOD==16)THEN
3228 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3229.AND.
ELSEIF(JHBE==15ISOLNOD==6)THEN
3232 2 ELBUF_TAB(NG),ETAG, IDDL, NDOF,
3233 3 K_DIAG, K_LT, IADK, JDIK,
3234 4 NEL, ICP, ICS, IPM,
3235 5 IGEO, IKGEO, BUFMAT, NFT,
3236 6 MTN, JHBE, ISORTH, ISORTHG,
3239 ELSEIF(ISOLNOD==8)THEN
3240.AND..AND.
IF (JHBE/=14JHBE/=15JHBE/=17) THEN
3241.AND.
IF (NCYCLE==1IMCONV==1)THEN
3244 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3245.OR.
ELSEIF(JHBE==12JHBE==112)THEN
3247 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3250 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3253 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=JHBE
3259.OR..OR.
. (IGTYP == 20 IGTYP == 21 IGTYP == 22)) THEN
3262 2 ELBUF_TAB(NG),NEL, ICP, ICS,
3263 3 ETAG, IDDL, NDOF, K_DIAG,
3264 4 K_LT, IADK, JDIK, IPM,
3265 5 IGEO, IKGEO, BUFMAT, NFT,
3266 6 MTN, JHBE, JCVT, IGTYP,
3267 7 ISORTH, IREP, ISMSTR)
3268.AND.
ELSE IF(JHBE == 17 IPARG(36,NG) == 3) THEN
3272 2 ELBUF_TAB(NG),NEL, ICP, ICS,
3273 3 ETAG, IDDL, NDOF, K_DIAG,
3274 4 K_LT, IADK, JDIK, MPT,
3275 5 IPM, IGEO, IKGEO, BUFMAT,
3276 6 NFT, MTN, JHBE, JCVT,
3282 2 ELBUF_TAB(NG),NEL, ICP, ICS,
3283 3 ETAG, IDDL, NDOF, K_DIAG,
3284 4 K_LT, IADK, JDIK, MPT,
3285 5 IPM, IGEO, IKGEO, BUFMAT,
3286 6 NFT, MTN, ISMSTR, JHBE,
3287 7 JCVT, IGTYP, ISORTH, IREP)
3301 ELSEIF(IGTYP>=29)THEN
3303 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3320 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3323 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3325.AND..AND.
ELSEIF(NPT==8MTN/=0 ISOLNOD/=20)THEN
3328 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3331.AND..AND.
ELSEIF(ITY==2JMULT==0JLAG==1)THEN
3332.AND..OR.
IF ((N2D==2JHBE==17)
3333.AND.
. (N2D==1JHBE==22)) THEN
3338 2 ELBUF_TAB(NG),NEL, LIAD, ICP,
3339 3 ICS, ETAG, IDDL, NDOF,
3340 4 K_DIAG, K_LT, IADK, JDIK,
3341 5 INPT, IPM, IGEO, IKGEO,
3342 6 BUFMAT, NFT, MTN, JMULT,
3343 7 JHBE, JCVT, IGTYP, ISORTH,
3347 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3354 IAD2 = IPARG(4,NG+1) - 6 * NEL
3356 IAD2 = LBUFEL - 6 * NEL + 1
3359.AND.
IF (NCYCLE==1IMCONV==1) THEN
3362 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3365 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3368 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3371 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=JHBE
3376.AND.
IF(JHBE>=11JHBE<=19) THEN
3377 NUMEL_DRAPE = NUMELC_DRAPE
3380 1 JFT ,JLT ,NFT ,IABS(NPT) ,MLW ,
3382 3 ISTRA ,IPLA ,PM ,GEO ,IXC(1,NF1) ,
3383 4 ELBUF_TAB(NG),BUFMAT ,OFFSET ,INDXOF ,
3384 1 ETAG , IDDL ,NDOF ,K_DIAG ,K_LT , IADK ,JDIK ,
3385 7 JHBE ,THKE(NF1) ,ISMSTR ,X ,IKGEO ,
3386 8 IPM ,IGEO ,IEXPAN ,IPARG(1,NG),ISUBSTACK ,
3387 9 STACK ,DRAPE_SH4N ,DRAPEG%INDX_SH4N, SEDRAPE, NUMEL_DRAPE)
3391 NUMEL_DRAPE = NUMELC_DRAPE
3394 1 JFT ,JLT ,NFT ,IABS(NPT) ,MLW ,
3396 3 ISTRA ,IPLA ,PM ,GEO ,IXC(1,NF1) ,
3397 4 ELBUF_TAB(NG),BUFMAT ,OFFSET ,INDXOF ,
3398 1 ETAG , IDDL ,NDOF ,K_DIAG ,K_LT , IADK ,JDIK ,
3399 7 JHBE ,THKE(NF1) ,ISMSTR ,X ,IKGEO ,
3400 8 IPM ,IGEO ,IEXPAN ,IPARG(1,NG),ISUBSTACK ,
3401 9 STACK ,DRAPE_SH4N ,DRAPEG%INDX_SH4N , SEDRAPE, NUMEL_DRAPE)
3415 1 JFT ,JLT ,PM ,GEO ,IXT(1,NF1) ,
3416 2 X ,ELBUF_TAB(NG) ,NEL ,OFFSET ,IKGEO,
3417 3 ETAG , IDDL ,NDOF ,K_DIAG ,K_LT ,
3423 CALL PKE3(JFT ,JLT ,NEL ,MTN ,ISMSTR,
3424 1 PM ,IXP(1,NF1),X ,ELBUF_TAB(NG),
3425 2 GEO ,OFFSET , IKGEO,
3426 3 ETAG , IDDL ,NDOF ,K_DIAG ,K_LT ,
3434 IGTYP = NINT(GEO(12,IXR(1,NF1)))
3435 K1=1 + 6*(NUMELC+NUMELTG)*IEPSDOT + 15*(NUMELT+NUMELP+NFT)
3437 CALL R4KE3 (JFT ,JLT ,NEL ,MTN ,PM ,
3438 1 GEO ,IXR(1,NF1),X ,ELBUF_TAB(NG),NPC ,
3439 2 TF ,SKEW ,OFFSET,FR_WAVE,
3441 1 ETAG , IDDL ,NDOF ,K_DIAG ,K_LT ,
3444 ELSEIF (IGTYP==32)THEN
3445 CALL RUSER32KE3 (JFT ,JLT ,NEL ,MTN ,PM ,
3446 1 GEO ,IXR(1,NF1),X ,ELBUF_TAB(NG),NPC ,
3447 2 TF ,SKEW ,OFFSET,FR_WAVE,
3449 1 ETAG , IDDL ,NDOF ,K_DIAG ,K_LT ,
3452 ELSEIF (IGTYP==8)THEN
3453 CALL R8KE3(JFT ,JLT ,NEL ,MTN ,PM ,
3454 1 GEO ,IXR(1,NF1),X ,ELBUF_TAB(NG),NPC ,
3455 2 TF ,SKEW ,OFFSET,FR_WAVE,IGEO ,
3456 1 ETAG , IDDL ,NDOF ,K_DIAG ,K_LT ,
3459 ELSEIF (IGTYP==12)THEN
3460 CALL R12KE3(JFT ,JLT ,NEL ,MTN ,PM ,
3461 1 GEO ,IXR(1,NF1),X ,ELBUF_TAB(NG),NPC ,
3462 2 TF ,SKEW ,OFFSET,FR_WAVE,IGEO ,
3463 1 ETAG , IDDL ,NDOF ,K_DIAG ,K_LT ,
3466 ELSEIF (IGTYP==13)THEN
3467 CALL R13KE3 (JFT ,JLT ,NEL ,MTN ,PM ,
3468 1 GEO ,IXR(1,NF1),X ,ELBUF_TAB(NG),NPC ,
3469 2 TF ,SKEW ,OFFSET,FR_WAVE,IKGEO ,IGEO ,
3470 1 ETAG , IDDL ,NDOF ,K_DIAG ,K_LT ,
3478 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=IGTYP
3484 IAD2 = IPARG(4,NG+1) - 6 * NEL
3486 IAD2 = LBUFEL - 6 * NEL + 1
3491 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
3493 IF (ISH3N >= 30) THEN
3495 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=ISH3N
3497 NUMEL_DRAPE = NUMELTG_DRAPE
3500 1 JFT ,JLT ,NFT ,IABS(NPT),MTN ,
3502 3 ISTRA ,IPLA ,PM ,GEO ,IXTG(1,NF1),
3503 4 ELBUF_TAB(NG),BUFMAT ,OFFSET ,INDXOF ,
3504 5 ETAG , IDDL ,NDOF ,K_DIAG ,K_LT , IADK ,JDIK ,
3505 6 JHBE ,THKE(NUMELC+NF1),ISMSTR ,X ,
3506 7 IKGEO ,IPM ,IGEO ,IEXPAN ,IPARG(1,NG),
3507 8 ISUBSTACK , STACK , DRAPE_SH3N, DRAPEG%INDX_SH3N,
3508 9 SEDRAPE, NUMEL_DRAPE )
3514 IF (IPRMES_EL(IETY) == 0 ) IPRMES_EL(IETY)=1
subroutine c3ke3(jft, jlt, nft, npt, mtn, ithk, ncycle, istrain, ipla, pm, geo, ixtg, elbuf_str, bufmat, offset, indxof, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, ihbe, thke, ismstr, x, ikgeo, ipm, igeo, iexpan, iparg, isubstack, stack, drape_sh3n, indx_drape, sedrape, numel_drape)
subroutine cbake3(jft, jlt, nft, npt, mtn, ithk, ncycle, istrain, ipla, pm, geo, ixc, elbuf_str, bufmat, offset, indxof, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, ihbe, thke, ismstr, x, ikgeo, ipm, igeo, iexpan, iparg, isubstack, stack, drape_sh4n, indx_drape, sedrape, numel_drape)
subroutine czke3(jft, jlt, nft, npt, mtn, ithk, ncycle, istrain, ipla, pm, geo, ixc, elbuf_str, bufmat, offset, indxof, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, ihbe, thke, ismstr, x, ikgeo, ipm, igeo, iexpan, iparg, isubstack, stack, drape_sh4n, indx_drape, sedrape, numel_drape)
subroutine i2_impm(ipari, intbuf_tab, nmc2, imij2, x, ms, in, weight, ndof, nddl, iddl, iadk, jdik, lt_k, diag_k)
subroutine i2updkm1(ns1, irect, dpara, nsv, irtl, ns2, irect1, dpara1, nsv1, irtl1, x, kdd, ndof, iddl, iadk, jdik, lt_k, diag_k)
subroutine i2_imp1(ipari, intbuf_tab, itab, nsc2, isij2, nss2, iss2, x, ms, in, weight, ikc, ndof, nddl, iddl, iadk, jdik, diag_k, lt_k, b)
subroutine imp_glob_khp(pm, geo, ipm, igeo, elbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, ixs10, ixs20, ixs16, iparg, tf, npc, fr_wave, w16, bufmat, thke, bufgeo, rby, skew, x, wa, iddl, ndof, k_diag, k_lt, iadk, jdik, ikgeo, etag, itask0, elbuf_tab, stack, drape_sh4n, drape_sh3n, drapeg)
subroutine print_wkij(ni, nj, iflag)
subroutine impkpout(nixpl, ixp, nft, nel, iugeo, ke11, ke12, ke22)
subroutine impkcout(ixc, nft, nel, iugeo, ke11, ke12, ke13, ke14, ke22, ke23, ke24, ke33, ke34, ke44)
subroutine grpreorder(iparg, igrouc)
subroutine eleoff(jft, jlt, ix, nix, nn, etag, off)
subroutine kptria(n1, n2, n3, p, x, k11, k22, k33, k12, k13, k23)
subroutine writeks(in, nft, nel, ig, ch, kij)
subroutine put_kmii(id, iadk, k_diag, k_lt, kii, nd)
subroutine put_kii(ni, iddl, iadk, k_diag, k_lt, kii, nd)
subroutine jacobien(a, n, ew, ev, tol, lamda)
subroutine kelamda(ixc, nixcl, nft, nel, iugeo, ke11, ke12, ke13, ke14, ke22, ke23, ke24, ke33, ke34, ke44)
subroutine impksout(ixs, nft, nel, iugeo, k11, k12, k13, k14, k15, k16, k17, k18, k22, k23, k24, k25, k26, k27, k28, k33, k34, k35, k36, k37, k38, k44, k45, k46, k47, k48, k55, k56, k57, k58, k66, k67, k68, k77, k78, k88)
subroutine impkiout(nixpl, ixp, nft, nel, iugeo, ke11, ke12, ke22)
subroutine writekp(in, nft, nel, ig, ch, kij)
subroutine kp4_ini(vksi, veta, vf4)
subroutine assem_kii(ni, nel, iddl, iadk, k_diag, k_lt, kii, nd, off)
subroutine put_kij(ni, nj, iddl, iadk, jdik, k_lt, kij, nk, nl, ierr)
subroutine assemc_kij(ni, nj, nel, iddl, iadk, jdik, k_diag, k_lt, kij, nd, off, ndof)
subroutine kpquad(n1, n2, n3, n4, p, x, vksi, veta, vf4, k11, k22, k33, k44, k12, k13, k14, k23, k24, k34)
subroutine assem_kij(ni, nj, nel, iddl, iadk, jdik, k_diag, k_lt, kij, nd, off)
subroutine get_kii(ni, iddl, iadk, k_diag, k_lt, kii, nd)
subroutine produitv(rx, ry, rz, sx, sy, sz, det)
subroutine writekc(in, nft, nel, ig, ch, kij)
subroutine put_kmij(ini, inj, iadk, jdik, k_lt, kij, nk, nl, ierr)
subroutine imp_kpres(ib, fac, npc, tf, x, skew, nsensor, sensor_tab, weight, iadc, iddl, ndof, iadk, jdik, k_diag, k_lt)
subroutine imp_glob_k(pm, geo, ipm, igeo, elbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, ixs10, ixs20, ixs16, iparg, tf, npc, fr_wave, w16, bufmat, thke, bufgeo, rby, skew, x, wa, iddl, ndof, k_diag, k_lt, iadk, jdik, ikgeo, etag, elbuf_tab, stack, drape_sh4n, drape_sh3n, drapeg)
subroutine assemc_kii(ni, nel, iddl, iadk, k_diag, k_lt, kii, nd, off, ndof)
subroutine get_kij(ni, nj, iddl, iadk, jdik, k_lt, kij, nk, nl, ierr)
subroutine imp_glob_k0(pm, geo, ipm, igeo, elbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, ixs10, ixs20, ixs16, iparg, tf, npc, fr_wave, w16, bufmat, thke, bufgeo, rby, skew, x, wa, iddl, ndof, k_diag, k_lt, iadk, jdik, ikgeo, etag, itask, elbuf_tab, igrouc, iprmes_el, stack, drape_sh4n, drape_sh3n, drapeg)
subroutine writeki(in, nft, nel, ig, ch, kij)
for(i8=*sizetab-1;i8 >=0;i8--)
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
subroutine pke3(jft, jlt, nel, mtn, ismstr, pm, ncc, x, elbuf_tab, geo, offset, ikgeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
subroutine r12ke3(jft, jlt, nel, mtn, pm, geo, ixr, x, elbuf_tab, npf, tf, skew, offset, fr_wave, igeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
subroutine r13ke3(jft, jlt, nel, mtn, pm, geo, ixr, x, elbuf_tab, npf, tf, skew, offset, fr_wave, ikgeo, igeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
subroutine r4ke3(jft, jlt, nel, mtn, pm, geo, ixr, x, elbuf_tab, npf, tf, skew, offset, fr_wave, ikgeo, igeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
subroutine r8ke3(jft, jlt, nel, mtn, pm, geo, ixr, x, elbuf_tab, npf, tf, skew, offset, fr_wave, igeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
subroutine rbe2_imp0(irbe2, lrbe2, x, nsrb2, isb2, ikc, ndof, iddl, iadk, jdik, diag_k, lt_k, b, weight, itab, skew)
subroutine rbe2_imp1(m, nsn, isl, x, nsj, isj, jt, jr, ikc, ndof, iddl, iadk, jdik, diag_k, lt_k, b, itab, irad)
subroutine bc_updk2(n, iddl, j, l, k, ir, ej, el, iadk, jdik, diag_k, lt_k)
subroutine rby_impm(x, nmc, imi, isi, skew, iskew, itab, weight, ms, in, iadk, jdik, lt_k, ndof, iddl)
subroutine rby_imp0(x, rby, lpby, npby, skew, nrbyac, irbyac, nsc, isij, nmc, imij, nss, iss, iskew, itab, weight, ms, in, nddl, iadk, jdik, diag_k, lt_k, ndof, iddl, ikc, b)
subroutine s10ke3(pm, geo, ixs, ixs10, x, elbuf_str, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, nel, ipm, igeo, ikgeo, bufmat, nft, mtn, npt, ismstr, jhbe, irep, isorth, jlag)
subroutine s20ke3(pm, geo, ixs, ixs20, x, elbuf_str, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, nel, ipm, igeo, ikgeo, bufmat, nft, mtn, ismstr, jhbe, irep, igtyp, isorth)
subroutine s4ke3(pm, geo, ixs, x, gbuf, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, nel, ipm, igeo, ikgeo, bufmat, nft, mtn, ismstr, jhbe, irep, isorth, iformdt)
subroutine s6cke3(pm, geo, ixs, x, elbuf_str, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, nel, icp, icsig, ipm, igeo, ikgeo, bufmat, nft, mtn, jhbe, isorth, isorthg, ismstr)
subroutine s8cke3(pm, geo, ixs, x, elbuf_str, nel, icp, icsig, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, ipm, igeo, ikgeo, bufmat, nft, mtn, jhbe, jcvt, igtyp, isorth, irep, ismstr)
subroutine s8ske3(pm, geo, ixs, x, elbuf_str, nel, icp, icsig, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, mpt, ipm, igeo, ikgeo, bufmat, nft, mtn, jhbe, jcvt, igtyp, isorth)
subroutine s8zke3(pm, geo, ixs, x, elbuf_str, nel, icp, icsig, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, mpt, ipm, igeo, ikgeo, bufmat, nft, mtn, ismstr, jhbe, jcvt, igtyp, isorth, irep)
subroutine tke3(jft, jlt, pm, geo, nct, x, elbuf_tab, nel, offset, ikgeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)