58 . IXR ,X ,GEO ,XMAS ,NPC ,
59 . PLD ,XIN ,SKEW ,DTELEM ,NEL ,
60 . STIFN ,STIFR ,PARTSAV ,V ,IPART ,
62 . INR ,STIFINT ,STR ,IGEO ,SIGRS ,
63 . NSIGRS ,IMERGE2 ,IADMERGE2,MSRT ,IXR_KJ,
64 . NOM_OPT ,STRR ,PTSPRI ,IPM ,PM ,
65 . UPARAM ,R_SKEW ,PRELOAD_A,IPRELD ,NPRELOAD_A,
75 USE format_mod ,
ONLY : fmt_10i
76 use element_mod ,
only : nixr
80#include "implicit_f.inc"
90#include "vect01_c.inc"
93#include "random_c.inc"
98#include "kincod_c.inc"
102 INTEGER IXR(NIXR,*), NPC(*),IPART(*),ITAB(*),NEL,
103 . IGEO(NPROPGI,*),NSIGRS,IMERGE2(NUMNOD+1),
104 . IADMERGE2(NUMNOD+1),IXR_KJ(5,*),PTSPRI(*),
105 . IPM(NPROPMI,*),R_SKEW(*)
106 INTEGER NOM_OPT(LNOPT1,*)
107 INTEGER ,
INTENT (IN) :: IPRELD,NPRELOAD_A
108 INTEGER ,
INTENT (IN) :: IKINE(3*NUMNOD)
111 . x(3,*), geo(npropg,*), xmas(*), pld(*), xin(*),
112 . skew(lskew,*), dtelem(*),stifn(*),stifr(*),partsav(20,*), v(*),
113 . msr(3,*), inr(3,*),
114 . stifint(*), str(*),sigrs(nsigrs,*), msrt(*),
strr(*),uparam(*),
117 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
118 TYPE(PREL1D_) ,
DIMENSION(NPRELOAD_A),
TARGET :: PRELOAD_A
122 INTEGER I,J,I2, IGTYP, NDEPAR,
124 . I1, I0, I3,NUVAR,NUPARAM,NFUNC,IADFUN,
127 . imat,k1,k11,k14,k12,k13,iadbuf,imass,slip,fra,ih,nkin,
131 . dt, dtc, xkm, xcm, xkr, xcr, xm, xine, ex, ey, ez,
132 . al2, sti,rho,kx,kxy,kxz,
134 . uiner(mvsiz) ,ustifm(mvsiz) ,
135 . ustifr(mvsiz),uvism(mvsiz) ,
136 . uvisr(mvsiz), xl(mvsiz), dx(mvsiz,3),ems(mvsiz)
138 . length, ratio, lmin
140 . minl, maxl, rfac, ixx, iyy, ine2
141 INTEGER IDS, CNT1, CNT2, NSPRG, NSPRG4, NSPRG8, NSPRG12,
142 . NSPRG13, NSPRG25, NSPRG26, NSPRGU, IUN,NSPRG23,NSPRG27
143 DATA NSPRG /0/, NSPRG4 /0/, NSPRG8 /0/, NSPRG12 /0/,
144 . NSPRG13 /0/, NSPRG25 /0/,NSPRG26/0/,NSPRGU /0/,
145 . NSPRG23 /0/,NSPRG27/0/
146 INTEGER MINIDL, MAXIDL,IPID,IFUNC
150 CHARACTER(LEN=NCHARTITLE)::TITR
153 TYPE(g_bufel_),
POINTER :: GBUF
155 my_real :: dfs(2), dv(2)
159 gbuf => elbuf_str%GBUF
162 ii(i) = (i-1)*nel + 1
166 noise = two*sqrt(three)*xalea
171 CALL fretitl2(titr,igeo(npropgi-ltitr+1,i),ltitr)
172 IF (igtyp == 4 .OR. igtyp == 12 .OR. igtyp == 27)
THEN
173 CALL rkini3(igeo(101,i),npc,pld,geo(2,i),geo(7,i),igeo(1,i),
174 . geo(10,i) ,geo(39,i) ,id,titr,nom_opt)
175 ELSEIF (igtyp == 8 .OR. igtyp == 13)
THEN
176 CALL rkini3(igeo(101,i),npc,pld,geo(3,i) , geo(7,i) , igeo(1,i),
177 . geo(41,i) ,geo(39,i) ,id,titr,nom_opt)
178 CALL rkini3(igeo(104,i),npc,pld,geo(10,i), geo(14,i), igeo(1,i),
179 . geo(45,i) ,geo(174,i) ,id,titr,nom_opt)
180 CALL rkini3(igeo(107,i),npc,pld,geo(15,i), geo(18,i), igeo(1,i),
181 . geo(49,i) ,geo(175,i) ,id,titr,nom_opt)
182 CALL rkini3(igeo(110,i),npc,pld,geo(19,i), geo(22,i), igeo(1,i),
183 . geo(53,i) ,geo(176,i) ,id,titr,nom_opt)
184 CALL rkini3(igeo(113,i),npc,pld,geo(23,i), geo(26,i), igeo(1,i),
185 . geo(57,i) ,geo(177,i) ,id,titr,nom_opt)
186 CALL rkini3(igeo(116,i),npc,pld,geo(27,i), geo(30,i), igeo(1,i),
187 . geo(61,i) ,geo(178,i) ,id,titr,nom_opt)
188 ELSEIF (igtyp == 25)
THEN
189 CALL rkini3(igeo(102,i),npc,pld,geo(3,i) , geo(7,i) , igeo(1,i),
190 . geo(41,i) ,geo(39,i) ,id,titr,nom_opt)
191 CALL rkini3(igeo(106,i),npc,pld,geo(10,i), geo(14,i), igeo(1,i),
192 . geo(45,i) ,geo(174,i) ,id,titr,nom_opt)
193 CALL rkini3(igeo(110,i),npc,pld,geo(19,i), geo(22,i), igeo(1,i),
194 . geo(53,i) ,geo(176,i) ,id,titr,nom_opt)
195 CALL rkini3(igeo(114,i),npc,pld,geo(23,i), geo(26,i), igeo(1,i),
196 . geo(57,i) ,geo(177,i) ,id,titr,nom_opt)
197 ELSEIF (igtyp == 26)
THEN
203 . one ,one ,id,titr,nom_opt)
207 CALL rkini3(igeo(iadfun+j,i),npc,pld,geo(2,i),one, igeo(1,i),
208 . one ,one ,id,titr,nom_opt)
210 ELSEIF (igtyp == 23)
THEN
216 . msgtype=msgwarning,
217 . anmode=aninfo_blind_1,
222 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ipid),ltitr)
230 IF (i1 == i2 .OR. i1 == i3 .OR. i2 == i3)
THEN
231 IF (i1 == i2 .OR. i1 == i3) itmp = i1
232 IF (i2 == i3) itmp = i2
233 IF (imerge2(itmp) /= 0)
THEN
235 . msgtype=msgwarning,
236 . anmode=aninfo_blind_1,
239 WRITE (iout,1000) itab(itmp)
241 DO k=1,iadmerge2(itmp+1) - iadmerge2(itmp)
244 WRITE (iout,fmt=fmt_10i)(itab(imerge2(iadmerge2(itmp)+kk1)),kk1=0,kk-1)
249 WRITE (iout,fmt=fmt_10i)
250 . (itab(imerge2(iadmerge2(itmp)+kk1)),kk1=0,kk-1)
255 . anmode=aninfo_blind_1,
261 IF (igtyp /= 4 .AND. igtyp /= 8 .AND.
262 . igtyp /= 12 .AND. igtyp /= 13 .AND. igtyp /= 25 .AND.
263 . igtyp /= 44 .AND. igtyp /= 26 .AND. igtyp < 29 .AND.
264 . igtyp /= 46 .AND. igtyp /= 23 .AND. igtyp /= 27)
THEN
267 . anmode=aninfo_blind_1,
272 IF (igtyp > 33 .AND. igtyp /= 35 .AND. igtyp /= 36 .AND.
273 . igtyp /= 44 .AND. igtyp /= 45 .AND. igtyp /= 46)
THEN
276 . anmode=aninfo_blind_1,
284 CALL fretitl2(titr,igeo(npropgi-ltitr+1,i0),ltitr)
286 IF (igtyp == 12)
THEN
288 IF (ixr(4,i+nft) == 0)
THEN
295 . i2=ixr(nixr,i+nft))
312 ileng=nint(geo(93,i0))
315 ELSE IF (igtyp == 8)
THEN
317 ELSE IF (igtyp == 12)
THEN
318 nsprg12 = nsprg12 + 1
319 ELSE IF (igtyp == 13)
THEN
320 nsprg13 = nsprg13 + 1
321 ELSE IF (igtyp == 23)
THEN
322 nsprg23 = nsprg23 + 1
324 iadbuf = ipm(7,imat) - 1
325 ileng = nint(uparam(iadbuf + 2))
330 lmin =
max(uparam(iadbuf + 119),uparam(iadbuf + 126))
332 ELSE IF (igtyp == 25)
THEN
333 nsprg25 = nsprg25 + 1
334 ELSE IF (igtyp == 26)
THEN
335 nsprg26 = nsprg26 + 1
336 ELSE IF (igtyp == 27)
THEN
337 nsprg27 = nsprg27 + 1
343 . (x(1,i1)-x(1,i2))*(x(1,i1)-x(1,i2))
344 + + (x(2,i1)-x(2,i2))*(x(2,i1)-x(2,i2))
345 + + (x(3,i1)-x(3,i2))*(x(3,i1)-x(3,i2)) )
346 IF (igtyp == 12)
THEN
347 xl(i) = xl(i) + sqrt(
348 . (x(1,i3)-x(1,i2))*(x(1,i3)-x(1,i2))
349 + + (x(2,i3)-x(2,i2))*(x(2,i3)-x(2,i2))
350 + + (x(3,i3)-x(3,i2))*(x(3,i3)-x(3,i2)) )
352 IF (mtn == 114) xl(i) =
max(xl(i),lmin)
353 IF (xl(i) <=
noise)
THEN
357 . anmode=aninfo_blind_1,
382 . (x(1,i1)-x(1,i2))*(x(1,i1)-x(1,i2))
383 + + (x(2,i1)-x(2,i2))*(x(2,i1)-x(2,i2))
384 + + (x(3,i1)-x(3,i2))*(x(3,i1)-x(3,i2)) )
385 IF (igtyp == 12)
THEN
386 length = length + sqrt(
387 . (x(1,i3)-x(1,i2))*(x(1,i3)-x(1,i2))
388 + + (x(2,i3)-x(2,i2))*(x(2,i3)-x(2,i2))
389 + + (x(3,i3)-x(3,i2))*(x(3,i3)-x(3,i2)) )
392 IF (minl <= 0 .OR. (length < minl .AND. length > em15))
THEN
397 IF (length > maxl)
THEN
402 IF(igtyp == 8 .OR. igtyp==13 .OR. igtyp==25)
THEN
403 ileng=nint(geo(93,i0))
414 IF ((igtyp == 8).AND.( r_skew(i+nft) > 0))
THEN
415 gbuf%SKEW_ID(i) = r_skew(i+nft)
416 ELSEIF (igtyp == 8)
THEN
418 gbuf%SKEW_ID(i) = igeo(2,i0)
419 r_skew(i+nft) = igeo(2,i0)
422 ratio = xm * length * length
423 IF ( (.NOT.((igtyp == 8).AND.(length < em15))) .AND.
424 . (xine < ratio/ep03 .OR. xine > ratio*ep03) )
THEN
425 CALL fretitl2(titr,igeo(npropgi-ltitr+1,i0),ltitr)
427 . msgtype=msgwarning,
428 . anmode=aninfo_blind_2,
433 . i2=ixr(nixr,i+nft),
436 ELSEIF(igtyp == 23)
THEN
438 iadbuf = ipm(7,imat) - 1
439 ileng = nint(uparam(iadbuf + 2))
445 IF ((mtn == 108).AND.( r_skew(i+nft) > 0))
THEN
446 gbuf%SKEW_ID(i) = r_skew(i+nft)
447 ELSEIF (mtn == 108)
THEN
449 gbuf%SKEW_ID(i) = igeo(2,i0)
450 ELSEIF (mtn == 114)
THEN
453 IF (gbuf%RETRACTOR_ID(i) < 0)
THEN
454 lmin =
max(uparam(iadbuf + 119),uparam(iadbuf + 126))
456 lmin = uparam(iadbuf + 119)
458 rfac = uparam(iadbuf + 124)
459 ixx = uparam(iadbuf + 122)
460 iyy = uparam(iadbuf + 123)
461 length =
max(length,lmin)
462 IF (uparam(iadbuf + 127) > zero)
THEN
467 uiner(i) =
max(em20,rfac*
max((rho*geo(1,i0)*length*length*length)/twelve + rho*iyy*length,rho*ixx*length))
471 gbuf%MASS(i) = geo(1,i0)*length*rho
472 IF ((length == zero).AND.(rho /= zero))
THEN
475 kcond1 = irb(nkin)+irb2(nkin)
478 CALL fretitl2(titr,igeo(npropgi-ltitr+1,i0),ltitr)
479 IF (((xmas(i1) > zero).OR.(kcond1 > 0)).AND.((xmas(i2) > zero).OR.(kcond1 > 0)).AND.(mtn == 108))
THEN
483 . msgtype=msgwarning,
484 . anmode=aninfo_blind_1,
491 . anmode=aninfo_blind_1,
497 ELSEIF(imass == 2)
THEN
498 gbuf%MASS(i) = geo(1,i0)*rho
506 ratio = xm * length * length
508 IF ( ((length < em15)) .AND.
509 . (xine < ratio/ep03 .OR. xine > ratio*ep03) )
THEN
510 CALL fretitl2(titr,igeo(npropgi-ltitr+1,i0),ltitr)
512 . msgtype=msgwarning,
513 . anmode=aninfo_blind_2,
518 . i2=ixr(nixr,i+nft),
526 . msgtype=msgwarning,
527 . anmode=aninfo_blind_2,
532 IF (i7stifs /= 0)
THEN
533 IF (igtyp == 4 .OR. igtyp == 12 .OR. igtyp == 27)
THEN
540 sti = geo(2,i0)*geo(10,i0)/
max(em30,xl(i))
549 sti =
max(geo(3,i0)*geo(41,i0),geo(10,i0)*geo(45,i0),geo(15,i0)*geo(49,i0))/
max(em30,xl(i))
552 ELSEIF (igtyp == 23 )
THEN
560 iadbuf = ipm(7,imat) - 1
561 kx = uparam(iadbuf + k11 + 1)
562 kxy = uparam(iadbuf + k11 + 2)
563 kxz = uparam(iadbuf + k11 + 3)
564 sti =
max(kx,kxy,kxz)/
max(em30,xl(i))
567 ELSEIF (igtyp == 25)
THEN
573 sti =
max(geo(3,i0)*geo(41,i0),geo(10,i0)*geo(45,i0))/
max(em30,xl(i))
576 ELSEIF (igtyp == 26)
THEN
583 sti = geo(2,i0)/
max(em30,xl(i))
598 ndepar=numels+numelc+numelt+numelp+nft
605 CALL rmass(ixr ,geo ,xmas ,xin ,partsav ,
606 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
607 3 inr(1,nft+1),msrt ,ems )
608 CALL r1buf3(gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)) ,ixr ,gbuf%POSX,
612 .
CALL r4ini(sigrs ,ixr ,nsigrs ,gbuf%EINT ,gbuf%FOR ,
613 2 gbuf%TOTDEPL ,gbuf%FOREP ,gbuf%DEP_IN_TENS ,gbuf%DEP_IN_COMP,gbuf%LENGTH,
614 3 dfs , dv,igtyp ,ptspri ,gbuf%DEFINI(ii(1)),
615 4 gbuf%FORINI(ii(1)))
616 ELSEIF (igtyp == 26)
THEN
617 CALL rmass(ixr ,geo ,xmas ,xin ,partsav ,
618 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
619 3 inr(1,nft+1),msrt ,ems )
620 CALL r1buf3(gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)) ,ixr ,gbuf%POSX,
624 .
CALL r4ini(sigrs ,ixr ,nsigrs ,gbuf%EINT ,gbuf%FOR ,
625 2 gbuf%TOTDEPL ,gbuf%FOREP ,
bidon ,
bidon ,gbuf%LENGTH,
626 3 dfs ,gbuf%DV ,igtyp ,ptspri ,gbuf%DEFINI,
630 ELSEIF (igtyp == 8)
THEN
632 CALL rmass(ixr ,geo ,xmas ,xin,partsav ,
633 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
634 3 inr(1,nft+1),msrt,ems )
635 CALL r2buf3(gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)) ,gbuf%LENGTH(ii(2)),
636 2 gbuf%LENGTH(ii(3)) ,ixr ,skew ,gbuf%POSX,gbuf%POSY,
637 3 gbuf%POSZ ,gbuf%POSXX,gbuf%POSYY,gbuf%POSZZ,igeo ,
642 2 igtyp ,nel ,sigrs ,ixr ,nsigrs ,
643 3 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
644 4 gbuf%MOM(ii(3)) ,gbuf%FOREP(ii(1)) ,gbuf%FOREP(ii(2)) ,gbuf%FOREP(ii(3)) ,gbuf%MOMEP(ii(1)) ,
645 5 gbuf%MOMEP(ii(2)) ,gbuf%MOMEP(ii(3)) ,gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),
646 6 gbuf%ROT_IN_TENS(ii(1)),gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),
647 7 gbuf%DEP_IN_COMP(ii(3)),gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),gbuf%TOTDEPL(ii(1)) ,
648 8 gbuf%TOTDEPL(ii(2)) ,gbuf%TOTDEPL(ii(3)) ,gbuf%TOTROT(ii(1)) ,gbuf%TOTROT(ii(2)) ,gbuf%TOTROT(ii(3)) ,
649 9 gbuf%LENGTH(ii(1)) ,gbuf%LENGTH(ii(2)) ,gbuf%LENGTH(ii(3)) ,gbuf%EINT ,gbuf%E6 ,
650 a ptspri ,gbuf%DEFINI(ii(1)) ,gbuf%DEFINI(ii(2)) ,gbuf%DEFINI(ii(3)) ,gbuf%DEFINI(ii(4)) ,
651 b gbuf%DEFINI(ii(5)) ,gbuf%DEFINI(ii(6)) ,gbuf%FORINI(ii(1)) ,gbuf%FORINI(ii(2)) ,gbuf%FORINI(ii(3)) ,
652 b gbuf%FORINI(ii(4)) ,gbuf%FORINI(ii(5)) ,gbuf%FORINI(ii(6)) )
654 ELSEIF (igtyp == 12)
THEN
656 CALL rmas12 (ixr ,geo,partsav ,
657 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
662 CALL r3buf3(gbuf%OFF,geo ,x ,gbuf%LENGTH(ii(1)) ,ixr ,gbuf%POSX,igeo ,itab )
665 .
CALL r4ini(sigrs ,ixr ,nsigrs ,gbuf%EINT ,gbuf%FOR ,
666 2 gbuf%TOTDEPL ,gbuf%FOREP ,gbuf%DEP_IN_TENS,gbuf%DEP_IN_TENS,gbuf%LENGTH,
667 3 gbuf%DFS ,dv,igtyp ,ptspri ,gbuf%DEFINI,
670 ELSEIF (igtyp == 13)
THEN
672 CALL rmass(ixr ,geo ,xmas ,xin,partsav ,
673 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
674 3 inr(1,nft+1),msrt,ems )
680 1 gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)),gbuf%LENGTH(ii(2)),
681 2 gbuf%LENGTH(ii(3)),ixr ,skew ,gbuf%SKEW ,gbuf%POSX,
682 3 gbuf%POSY ,gbuf%POSZ ,gbuf%POSXX,gbuf%POSYY ,gbuf%POSZZ,
683 4 itab ,gbuf%E6 ,igeo ,ipm)
687 2 igtyp ,nel ,sigrs ,ixr ,nsigrs ,
688 3 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
689 4 gbuf%MOM(ii(3)) ,gbuf%FOREP(ii(1)) ,gbuf%FOREP(ii(2)) ,gbuf%FOREP(ii(3)) ,gbuf%MOMEP(ii(1)) ,
690 5 gbuf%MOMEP(ii(2)) ,gbuf%MOMEP(ii(3)) ,gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),
691 6 gbuf%ROT_IN_TENS(ii(1)),gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),
692 7 gbuf%DEP_IN_COMP(ii(3)),gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),gbuf%TOTDEPL(ii(1)) ,
693 8 gbuf%TOTDEPL(ii(2)) ,gbuf%TOTDEPL(ii(3)) ,gbuf%TOTROT(ii(1)) ,gbuf%TOTROT(ii(2)) ,gbuf%TOTROT(ii(3)) ,
694 9 gbuf%LENGTH(ii(1)) ,gbuf%LENGTH(ii(2)) ,gbuf%LENGTH(ii(3)) ,gbuf%EINT ,gbuf%E6 ,
695 a ptspri ,gbuf%DEFINI(ii(1)) ,gbuf%DEFINI(ii(2)) ,gbuf%DEFINI(ii(3)) ,gbuf%DEFINI(ii(4)) ,
696 b gbuf%DEFINI(ii(5)) ,gbuf%DEFINI(ii(6)) ,gbuf%FORINI(ii(1)) ,gbuf%FORINI(ii(2)) ,gbuf%FORINI(ii(3)) ,
697 b gbuf%FORINI(ii(4)) ,gbuf%FORINI(ii(5)) ,gbuf%FORINI(ii(6)) )
699 ELSEIF (igtyp == 23)
THEN
704 CALL r23mass(ixr ,geo ,xmas ,xin,partsav ,
705 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
706 3 inr(1,nft+1),msrt,ems ,gbuf%MASS ,uiner,mtn)
709 CALL r2buf3(gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)) ,gbuf%LENGTH(ii(2)),
710 2 gbuf%LENGTH(ii(3)) ,ixr ,skew ,gbuf%POSX,gbuf%POSY,
711 3 gbuf%POSZ ,gbuf%POSXX,gbuf%POSYY,gbuf%POSZZ,igeo ,
714 ELSEIF (mtn==113)
THEN
716 1 gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)),gbuf%LENGTH(ii(2)),
717 2 gbuf%LENGTH(ii(3)),ixr ,skew ,gbuf%SKEW ,gbuf%POSX,
718 3 gbuf%POSY ,gbuf%POSZ ,gbuf%POSXX,gbuf%POSYY ,gbuf%POSZZ,
719 4 itab ,gbuf%E6 ,igeo ,ipm)
722 ELSEIF(mtn == 114)
THEN
724 1 gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)),gbuf%LENGTH(ii(2)),
725 2 gbuf%LENGTH(ii(3)),ixr ,skew ,gbuf%SKEW ,gbuf%POSX,
726 3 gbuf%POSY ,gbuf%POSZ ,gbuf%POSXX,gbuf%POSYY ,gbuf%POSZZ,
727 4 itab ,gbuf%E6 ,igeo ,ipm)
733 2 igtyp ,nel ,sigrs ,ixr ,nsigrs
734 3 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
735 4 gbuf%MOM(ii(3)) ,gbuf%FOREP(ii(1)) ,gbuf%FOREP(ii(2)) ,gbuf%FOREP(ii(3)) ,gbuf%MOMEP(ii(1)) ,
736 5 gbuf%MOMEP(ii(2)) ,gbuf%MOMEP(ii(3)) ,gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),
737 6 gbuf%ROT_IN_TENS(ii(1)),gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),
738 7 gbuf%DEP_IN_COMP(ii(3)),gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),gbuf%TOTDEPL(ii(1)) ,
739 8 gbuf%TOTDEPL(ii(2)) ,gbuf%TOTDEPL(ii(3)) ,gbuf%TOTROT(ii(1)) ,gbuf%TOTROT(ii(2)) ,gbuf%TOTROT(ii(3)) ,
740 9 gbuf%LENGTH(ii(1)) ,gbuf%LENGTH(ii(2)) ,gbuf%LENGTH(ii(3)) ,gbuf%EINT ,gbuf%E6 ,
741 a ptspri ,gbuf%DEFINI(ii(1)) ,gbuf%DEFINI(ii(2)) ,gbuf%DEFINI(ii(3)) ,gbuf%DEFINI(ii(4)) ,
742 b gbuf%DEFINI(ii(5)) ,gbuf%DEFINI(ii(6)) ,gbuf%FORINI(ii(1)) ,gbuf%FORINI(ii(2)) ,gbuf%FORINI(ii(3)) ,
743 b gbuf%FORINI(ii(4)) ,gbuf%FORINI(ii(5)) ,gbuf%FORINI(ii(6)) )
745 ELSEIF (igtyp == 25)
THEN
747 CALL rmass(ixr ,geo ,xmas ,xin,partsav ,
748 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
749 3 inr(1,nft+1),msrt,ems )
753 CALL r4buf3(gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)),gbuf%LENGTH(ii(2)) ,
754 2 gbuf%LENGTH(ii(3)),ixr ,skew ,gbuf%SKEW ,gbuf%POSX,
755 3 gbuf%POSY ,gbuf%POSZ,gbuf%POSXX,gbuf%POSYY ,gbuf%POSZZ,
756 4 itab ,gbuf%E6 ,igeo ,ipm)
760 2 igtyp ,nel ,sigrs ,ixr ,nsigrs ,
761 3 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
762 4 gbuf%MOM(ii(3)) ,gbuf%FOREP(ii(1)) ,gbuf%FOREP(ii(2)) ,gbuf%FOREP(ii(3)) ,gbuf%MOMEP(ii(1)) ,
763 5 gbuf%MOMEP(ii(2)) ,gbuf%MOMEP(ii(3)) ,gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS
764 6 gbuf%ROT_IN_TENS(ii(1)),gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),
765 7 gbuf%DEP_IN_COMP(ii(3)),gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),gbuf%TOTDEPL(ii(1)) ,
766 8 gbuf%TOTDEPL(ii(2)) ,gbuf%TOTDEPL(ii(3)) ,gbuf%TOTROT(ii(1)) ,gbuf%TOTROT
767 9 gbuf%LENGTH(ii(1)) ,gbuf%LENGTH(ii(2)) ,gbuf%LENGTH(ii(3)) ,gbuf%EINT ,gbuf%E6 ,
768 a ptspri ,gbuf%DEFINI(ii(1)) ,gbuf%DEFINI(ii(2)) ,gbuf%DEFINI(ii(3)) ,gbuf%DEFINI(ii(4)) ,
770 b gbuf%FORINI(ii(4)) ,gbuf%FORINI(ii(5)) ,gbuf%FORINI(ii(6)) )
772 ELSEIF (igtyp == 27)
THEN
774 CALL rmass(ixr ,geo ,xmas ,xin ,partsav ,
775 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
776 3 inr(1,nft+1),msrt ,ems )
777 CALL r1buf3(gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)) ,ixr ,gbuf%POSX,
781 .
CALL r4ini(sigrs ,ixr ,nsigrs ,gbuf%EINT ,gbuf%FOR ,
782 2 gbuf%TOTDEPL ,gbuf%FOREP ,gbuf%DEP_IN_TENS ,gbuf%DEP_IN_COMP,gbuf%LENGTH,
783 3 dfs,dv,igtyp ,ptspri ,gbuf%DEFINI(ii(1)),
784 4 gbuf%FORINI(ii(1)))
786 ELSEIF (igtyp == 32 .OR. igtyp == 33 .OR. igtyp == 45)
THEN
788 CALL rini1u(gbuf%OFF ,geo ,x ,ul ,ixr ,
789 2 skew ,gbuf%SKEW,itab ,uix ,igeo)
790 nuvar = nint(geo(25,i0))
791 nuparam = nint(geo(26,i0))
792 IF (igtyp == 32)
THEN
795 2 uix ,ul ,gbuf%MASS,uiner ,ustifm ,
796 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar ,id,titr,
797 4 gbuf%EINT,npc ,pld )
798 ELSEIF (igtyp == 33)
THEN
803 dx(i,1) = (x(1,i2)-x(1,i1))
804 dx(i,2) = (x(2,i2)-x(2,i1))
805 dx(i,3) = (x(3,i2)-x(3,i1))
807 CALL rini33(nel ,iout ,i0 ,uix,dx,
808 1 gbuf%MASS ,uiner ,ustifm ,ustifr,
809 2 uvism ,uvisr ,gbuf%VAR,nuvar )
810 ELSEIF (igtyp == 45)
THEN
815 dx(i,1) = (x(1,i2)-x(1,i1))
816 dx(i,2) = (x(2,i2)-x(2,i1))
817 dx(i,3) = (x(3,i2)-x(3,i1))
819 CALL rini45(nel ,iout ,i0 ,uix ,x ,dx,
820 . gbuf%MASS,uiner ,ustifm ,ustifr ,uvism ,
821 . uvisr ,gbuf%VAR,nuvar ,ixr ,ixr_kj,id ,titr)
837 stifn(i1)=stifn(i1)+xkm
838 stifn(i2)=stifn(i2)+xkm
839 stifr(i1)=stifr(i1)+xkr
840 stifr(i2)=stifr(i2)+xkr
842 IF (xcm+xkm<em15) xm =one
843 IF (xcr+xkr<em15) xine=one
846 dt=(sqrt(xcm*xcm+xm*xkm)-xcm)/xkm
847 dtc=half*xm /
max(em15,xcm)
849 dtc=(sqrt(xcr*xcr+xine*xkr)-xcr)/xkr
851 dtc=half*xine /
max( em15,xcr)
857 1 ixr ,gbuf%MASS,uiner,
858 2 partsav ,x ,v ,ipart(nft+1),msr(1,nft+1),
859 3 inr(1,nft+1),msrt ,ems )
862 2 sigrs ,nsigrs ,nuvar ,gbuf%FOR(ii(1)) ,
863 3 gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,gbuf%MOM(ii(3)) ,
864 4 gbuf%V_REPCVT(ii(1)) ,gbuf%V_REPCVT(ii(2)),gbuf%V_REPCVT(ii(3)),gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii
865 5 gbuf%VR_REPCVT(ii(3)),gbuf%VAR ,gbuf%EINT ,
868 ELSEIF (igtyp == 35 .OR. igtyp == 36)
THEN
870 CALL rini3u(gbuf%OFF ,geo ,x ,ul ,ixr ,
871 2 skew ,gbuf%SKEW ,itab ,uix ,igeo)
872 nuvar = nint(geo(25,i0))
873 nuparam = nint(geo(26,i0))
875 IF (igtyp == 35)
THEN
878 2 uix ,ul ,gbuf%MASS,uiner ,ustifm ,
879 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
880 ELSEIF (igtyp == 36)
THEN
883 2 ul ,gbuf%MASS,uiner ,ustifm ,
884 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
900 stifn(i1)=stifn(i1)+xkm
901 stifn(i2)=stifn(i2)+xkm
902 stifr(i1)=stifr(i1)+xkr
903 stifr(i2)=stifr(i2)+xkr
905 IF (xcm+xkm<em15) xm =one
906 IF (xcr+xkr<em15) xine=one
909 dt=(sqrt(xcm*xcm+xm*xkm)-xcm)/xkm
910 dtc=half*xm /
max(em15,xcm)
912 dtc=(sqrt(xcr*xcr+xine*xkr)-xcr)/xkr
914 dtc=half*xine /
max( em15,xcr)
919 1 ixr ,gbuf%MASS,uiner,
920 2 partsav ,x ,v ,ipart(nft+1),msr(1,nft+1),
921 3 inr(1,nft+1),msrt ,ems )
924 2 sigrs ,nsigrs ,nuvar ,gbuf%FOR(ii(1)) ,
925 3 gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,gbuf%MOM(ii(3)) ,
926 4 gbuf%V_REPCVT(ii(1)) ,gbuf%V_REPCVT(ii(2)),gbuf%V_REPCVT(ii(3)),gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),
927 5 gbuf%VR_REPCVT(ii(3)),gbuf%VAR ,gbuf%EINT ,
931 ELSEIF (igtyp > 28 .AND. igtyp < 43)
THEN
933 CALL rini3u(gbuf%OFF ,geo ,x ,ul ,ixr ,
934 2 skew ,gbuf%SKEW ,itab ,uix ,igeo)
935 nuvar = nint(geo(25,i0))
936 nuparam = nint(geo(26,i0))
938 IF (igtyp == 29)
THEN
939 IF (userl_avail == 1)
THEN
940 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
942 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
943 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
946 option=
'/PROP/USER29'
952 ELSEIF (igtyp == 30)
THEN
953 IF (userl_avai l == 1)
THEN
954 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
956 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
957 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
960 option=
'/PROP/USER30'
966 ELSEIF (igtyp == 31)
THEN
967 IF (userl_avail == 1)
THEN
968 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
970 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
971 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
974 option=
'/PROP/USER31'
980 ELSEIF (igtyp == 37)
THEN
981 IF (userl_avail == 1)
THEN
982 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
984 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
985 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
988 option=
'/PROP/USER37'
994 ELSEIF (igtyp == 38)
THEN
995 IF (userl_avail == 1)
THEN
996 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
998 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
999 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
1002 option=
'/PROP/USER38'
1008 ELSEIF (igtyp == 39)
THEN
1009 IF (userl_avail == 1)
THEN
1010 CALL st_userlib_riniuser(igtyp,rootnam
1012 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
1013 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
1016 option=
'/PROP/USER39'
1022 ELSEIF (igtyp == 40)
THEN
1023 IF (userl_avail == 1)
THEN
1024 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
1026 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
1027 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
1030 option=
'/PROP/USER40'
1036 ELSEIF (igtyp == 41)
THEN
1037 IF (userl_avail == 1)
THEN
1038 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
1040 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
1041 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
1044 option=
'/PROP/USER41'
1050 ELSEIF (igtyp == 42)
THEN
1051 IF (userl_avail == 1)
THEN
1052 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
1054 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
1055 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
1058 option=
'/PROP/USER42'
1079 stifn(i1)=stifn(i1)+xkm
1080 stifn(i2)=stifn(i2)+xkm
1081 stifr(i1)=stifr(i1)+xkr
1082 stifr(i2)=stifr(i2)+xkr
1084 IF (xcm+xkm<em15) xm =one
1085 IF (xcr+xkr<em15) xine=one
1088 dt=(sqrt(xcm*xcm+xm*xkm)-xcm)/xkm
1089 dtc=half*xm /
max(em15,xcm)
1091 dtc=(sqrt(xcr*xcr+xine*xkr)-xcr)/xkr
1093 dtc=half*xine /
max( em15,xcr)
1095 dtelem(ndepar+i)= dt
1099 1 ixr ,gbuf%MASS,uiner,
1100 2 partsav ,x ,v ,ipart(nft+1),msr(1,nft+1),
1101 3 inr(1,nft+1),msrt ,ems )
1104 2 sigrs ,nsigrs ,nuvar ,gbuf%FOR(ii(1)) ,
1105 3 gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,gbuf%MOM(ii(3)) ,
1106 4 gbuf%V_REPCVT(ii(1)) ,gbuf%V_REPCVT(ii(2)),gbuf%V_REPCVT(ii(3)),gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),
1107 5 gbuf%VR_REPCVT(ii(3)),gbuf%VAR ,gbuf%EINT ,
1110 ELSEIF (igtyp == 44)
THEN
1112 CALL rini3u(gbuf%OFF ,geo ,x ,ul ,ixr ,
1113 2 skew ,gbuf%SKEW ,itab ,uix ,igeo)
1114 nuvar = nint(geo(25,i0))
1115 nuparam = nint(geo(26,i0))
1118 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
1119 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
1134 stifn(i1)=stifn(i1)+xkm
1135 stifn(i2)=stifn(i2)+xkm
1136 stifr(i1)=stifr(i1)+xkr
1137 stifr(i2)=stifr(i2)+xkr
1139 IF(xcm+xkm<em15)xm =one
1140 IF(xcr+xkr<em15)xine=one
1143 dt=(sqrt(xcm*xcm+xm*xkm)-xcm)/xkm
1144 dtc=half*xm /
max(em15,xcm)
1146 dtc=(sqrt(xcr*xcr+xine*xkr)-xcr)/xkr
1148 dtc=half*xine /
max( em15,xcr)
1150 dtelem(ndepar+i)= dt
1153 1 ixr ,gbuf%MASS,uiner,
1154 2 partsav ,x ,v ,ipart(nft+1),msr(1,nft+1),
1155 3 inr(1,nft+1),msrt ,ems )
1158 2 sigrs ,nsigrs ,nuvar
1159 3 gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,gbuf%MOM(ii(3)) ,
1160 4 gbuf%V_REPCVT(ii(1)) ,gbuf%V_REPCVT(ii(2)),gbuf%V_REPCVT(ii(3)),gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),
1161 5 gbuf%VR_REPCVT(ii(3)),gbuf%VAR ,gbuf%EINT ,
1164 ELSEIF (igtyp == 46)
THEN
1166 CALL rini3u(gbuf%OFF ,geo ,x ,ul ,ixr ,
1167 2 skew ,gbuf%SKEW ,itab ,uix ,igeo)
1168 nuvar = nint(geo(25,i0))
1169 nuparam = nint(geo(26,i0))
1172 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
1173 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
1188 stifn(i1)=stifn(i1)+xkm
1189 stifn(i2)=stifn(i2)+xkm
1190 stifr(i1)=stifr(i1)+xkr
1191 stifr(i2)=stifr(i2)+xkr
1193 IF (xcm+xkm<em15) xm =one
1194 IF (xcr+xkr<em15) xine=one
1197 dt=(sqrt(xcm*xcm+xm*xkm)-xcm)/xkm
1198 dtc=half*xm /
max(em15,xcm)
1200 dtc=(sqrt(xcr*xcr+xine*xkr)-xcr)/xkr
1202 dtc=half*xine /
max( em15,xcr)
1204 dtelem(ndepar+i)= dt
1208 1 ixr ,gbuf%MASS,uiner,
1209 2 partsav ,x ,v ,ipart(nft+1),msr(1,nft+1),
1210 3 inr(1,nft+1),msrt ,ems )
1214 2 sigrs ,nsigrs ,nuvar ,gbuf%FOR(ii(1)) ,
1215 3 gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,gbuf%MOM(ii(3)) ,
1216 4 gbuf%V_REPCVT(ii(1)) ,gbuf%V_REPCVT(ii(2)),gbuf%V_REPCVT(ii(3)),gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),
1217 5 gbuf%VR_REPCVT(ii(3)),gbuf%VAR ,gbuf%EINT ,
1239 IF (igtyp == 4)
THEN
1241 xkm= geo(2,i0)*geo(10,i0)/xl(i)
1242 xcm= (geo(3,i0)) +geo(141,i0) /xl(i)
1244 dt=xm/(sqrt(xcm*xcm+xkm*xm)+xcm)
1245 ELSEIF (xkm /= zero)
THEN
1247 ELSEIF (xcm /= zero)
THEN
1252 dtc=half*xm /
max(em15,xcm)
1253 dtelem(ndepar+i)=
min(dt,dtc)
1256 sti = (sqrt(xcm**2+xkm*mas2)+xcm)**2/mas2
1260 stifn(i1)=stifn(i1)+sti
1261 stifn(i2)=stifn(i2)+sti
1262 ELSEIF (igtyp == 26)
THEN
1263 xm = geo(1,i0)*xl(i)
1264 xkm= geo(2,i0)/xl(i)
1266 IF (xkm > zero)
THEN
1271 dtc=half*xm /
max(em15,xcm)
1272 dtelem(ndepar+i)=
min
1273 stifn(i1)=stifn(i1)+xkm
1274 stifn(i2)=stifn(i2)+xkm
1275 ELSEIF (igtyp == 8)
THEN
1276 xkm=
max(geo(3,i0)*geo(41,i0),
1277 . geo(10,i0)*geo(45,i0),
1278 . geo(15,i0)*geo(49,i0))/xl(i)
1279 xcm= (
max(geo(4,i0),geo(11,i0),geo(16,i0))
1280 . +
max(geo(141,i0),geo(142,i0),geo(143,i0)))/xl(i)
1281 xkr=
max(geo(19,i0)*geo(53,i0),
1282 . geo(23,i0)*geo(57,i0),
1283 . geo(27,i0)*geo(61,i0))/xl(i)
1284 xcr= (
max(geo(20,i0),geo(24,i0),geo(28,i0))
1285 . +
max(geo(144,i0),geo(145,i0),geo(146,i0)))/xl(i)
1287 xine=geo(9,i0)*xl(i)
1288 IF (xcm+xkm<em15) xm =one
1289 IF (xcr+xkr<em15) xine=one
1292 dt=xm/
max(em15,sqrt(xcm*xcm+xkm*xm)+xcm)
1293 dtc=xine/
max(em15,sqrt(xcr*xcr+xine*xkr)+xcr)
1294 dtelem(ndepar+i)=
min(dt,dtc)
1297 sti = (sqrt(xcm**2+xkm*mas2)+xcm)**2/mas2
1301 stifn(i1)=stifn(i1)+sti
1302 stifn(i2)=stifn(i2)+sti
1305 sti = (sqrt(xcr**2+xkr*mas2)+xcr)**2/mas2
1309 stifr(i1)=stifr(i1)+sti
1312 ELSEIF(igtyp == 12)
THEN
1313 xm = geo(1,i0)*xl(i)
1314 xkm= geo(2,i0)/xl(i)
1315 xcm= (geo(3,i0)+geo(141,i0))/xl(i)
1316 IF (xcm /= zero .AND. xkm /= zero)
THEN
1317 dt=xm/(two*sqrt(xcm*xcm+xkm*xm)+xcm)
1318 ELSEIF (xkm /= zero)
THEN
1320 ELSEIF (xcm /= zero)
THEN
1325 dtc=half*xm /
max(em15,xcm)
1326 dtelem(ndepar+i)=
min(dt,dtc)
1329 sti = (sqrt(xcm**2+xkm*mas2)+xcm)**2/mas2
1333 stifn(i2)=stifn(i2)+sti
1335 sti = (sqrt(xcm**2+xkm*mas2)+xcm)**2/mas2
1336 stifn(i1)=stifn(i1)+sti
1337 stifn(i3)=stifn(i3)+sti
1338 ELSEIF (igtyp == 13)
THEN
1342 al2= ex*ex+ey*ey+ez*ez
1343 xkm=
max(geo(3,i0)*geo(41,i0),
1344 . geo(10,i0)*geo(45,i0),
1345 . geo(15,i0)*geo(49,i0))/xl(i)
1346 xcm= (
max(geo(4,i0),geo(11,i0),geo(16,i0))
1347 . +
max(geo(141,i0),geo(142,i0),geo(143,i0)) )/xl(i)
1348 xkr=
max(geo(10,i0)*geo(45,i0),
1349 . geo(15,i0)*geo(49,i0)) * al2
1350 xcr= (
max(geo(11,i0),geo(16,i0))+
max(geo(142,i0),geo(143,i0)))* al2
1352 . +
max(geo(19,i0)*geo(53,i0),
1353 . geo(23,i0)*geo(57,i0),
1354 . geo(27,i0)*geo(61,i0)))/xl(i)
1355 xcr= (xcr+
max(geo(20,i0),geo(24,i0),geo(28,i0))
1356 . +
max(geo(144,i0),geo(145,i0),geo(146,i0)) )/xl(i)
1358 xine=geo(9,i0)*xl(i)
1359 IF (xcm+xkm<em15) xm =one
1360 IF (xcr+xkr<em15) xine=one
1363 dt=xm/
max(em15,sqrt(xcm*xcm+xkm*xm)+xcm)
1364 dtc=xine/
max(em15,sqrt(xcr*xcr+xine*xkr)+xcr)
1366 dtelem(ndepar+i)= dt
1369 sti = (sqrt(xcm**2+xkm*mas2)+xcm)**2/mas2
1373 stifn(i1)=stifn(i1)+sti
1374 stifn(i2)=stifn(i2)+sti
1377 sti = (sqrt(xcr**2+xkr*mas2)+xcr)**2/mas2
1381 stifr(i1)=stifr(i1)+sti
1382 stifr(i2)=stifr(i2)+sti
1384 ELSEIF (igtyp == 23)
THEN
1386 iadbuf = ipm(7,imat) - 1
1389 xkm=
max(uparam(iadbuf + k11 + 1)*uparam(iadbuf + k1 + 1),
1390 . uparam(iadbuf + k11 + 2)*uparam
1391 . uparam(iadbuf + k11 + 3)*uparam(iadbuf + k1 + 3))/xl(i)
1392 xcm=
max(uparam(iadbuf + k12 + 1),uparam(iadbuf + k12 + 2),uparam(iadbuf + k12 + 3))
1394 xkr=
max(uparam(iadbuf + k11 + 4)*uparam(iadbuf + k1 + 4),
1395 . uparam(iadbuf + k11 + 5)*uparam(iadbuf + k1 + 5),
1396 . uparam(iadbuf + k11 + 6)*uparam(iadbuf + k1 + 6))/xl(i)
1398 xcr= (
max(uparam(iadbuf + k12 + 4),uparam(iadbuf + k12 + 5),uparam(iadbuf + k12 + 6)))/xl(i)
1400 xm = gbuf%MASS(i)*xl(i)
1401 xine= geo(2,i0)*xl(i)
1402 IF (xcm+xkm<em15) xm =one
1403 IF (xcr+xkr<em15) xine=one
1406 dt =xm/
max(em15,sqrt(xcm*xcm+xkm*xm)+xcm)
1407 dtc=xine/
max(em15,sqrt(xcr*xcr+xine*xkr)+xcr)
1408 dtelem(ndepar+i)=
min(dt,dtc)
1409 geo(4,i0)=
min(geo(4,i0),dt,dtc)
1412 ELSEIF (mtn==113)
THEN
1416 al2= ex*ex+ey*ey+ez*ez
1417 xkm=
max(uparam(iadbuf + k11 + 1)*uparam(iadbuf + k1 + 1),
1418 . uparam(iadbuf + k11 + 2)*uparam(iadbuf + k1 + 2),
1419 . uparam(iadbuf + k11 + 3)*uparam(iadbuf + k1 + 3))/xl(i)
1420 xcm= (
max(uparam(iadbuf + k12 +1),uparam(iadbuf + k12 +2 ),uparam(iadbuf + k12 + 3))
1421 . +
max(uparam(iadbuf + k14 + 1),uparam(iadbuf + k14 + 2),uparam(iadbuf + k14 + 3)))/xl(i)
1422 xkr=
max(uparam(iadbuf + k11 + 2)*uparam(iadbuf + k1 + 2),
1423 . uparam(iadbuf + k11 + 3)*uparam(iadbuf + k1 + 3)) * al2
1425 .
max(uparam(iadbuf + k14 + 2),uparam(iadbuf + k14 + 3)))* al2
1427 . +
max(uparam(iadbuf + k11 + 4)*uparam(iadbuf + k1 + 4),
1428 . uparam(iadbuf + k11 + 5)*uparam(iadbuf + k1 + 5),
1429 . uparam(iadbuf + k11 + 6)*uparam(iadbuf + k1 + 6)))/xl(i)
1430 xcr= (xcr+
max(uparam(iadbuf + k12 + 4),uparam(iadbuf + k12 + 5),uparam(iadbuf + k12 + 6))
1431 . +
max(uparam(iadbuf + k14 + 4),uparam(iadbuf + k14 + 5),uparam(iadbuf + k14 + 6)) )/xl(i)
1433 xine=geo(2,i0)*xl(i)
1434 IF (xcm+xkm<em15) xm =one
1435 IF (xcr+xkr<em15) xine=one
1438 dt =xm/
max(em15,sqrt(xcm*xcm+xkm*xm)+xcm)
1439 dtc=xine/
max(em15,sqrt(xcr*xcr+xine*xkr)+xcr)
1441 geo(4,i0)=
min(geo(4,i0),dt)
1442 dtelem(ndepar+i)= dt
1445 ELSEIF (mtn==114)
THEN
1449 al2= ex*ex+ey*ey+ez*ez
1451 xkm=
max(uparam(iadbuf + k11 + 1)*uparam(iadbuf + k1 + 1),
1452 . uparam(iadbuf + k11 + 2)*uparam(iadbuf + k1 + 2),
1453 . uparam(iadbuf + k11 + 3)*uparam(iadbuf + k1 + 3),
1454 . uparam(iadbuf+117)*geo(1,i0))/xl(i)
1456 xcm= (
max(uparam(iadbuf + k12 +1),uparam(iadbuf + k12 +2 ),uparam(iadbuf + k12 + 3))
1457 . +
max(uparam(iadbuf + k14 + 1),uparam(iadbuf + k14 + 2),uparam(iadbuf + k14 + 3)))/xl(i)
1458 xkr=
max(uparam(iadbuf + k11 + 2)*uparam(iadbuf + k1 + 2),
1459 . uparam(iadbuf + k11 + 3)*uparam(iadbuf + k1 + 3)) * al2
1460 xcr= (
max(uparam(iadbuf + k12 + 2),uparam(iadbuf + k12 + 3)) +
1461 .
max(uparam(iadbuf + k14 + 2),uparam(iadbuf + k14 + 3)))* al2
1463 . +
max(uparam(iadbuf + k11 + 4)*uparam(iadbuf + k1 + 4),
1464 . uparam(iadbuf + k11 + 5)*uparam(iadbuf + k1 + 5),
1465 . uparam(iadbuf + k11 + 6)*uparam(iadbuf + k1 + 6)))/xl(i
1466 xcr= (xcr+
max(uparam(iadbuf+k12 + 1),uparam(iadbuf+ k12 + 2),uparam(iadbuf+ k12 + 3))
1467 . +
max(uparam(iadbuf+k14 + 4),uparam(iadbuf+ k14 + 5),uparam(iadbuf+ k14 + 6)) )/xl(i)
1469 IF (uparam(iadbuf + 127) > zero)
THEN
1471 rho = uparam(iadbuf+128)
1472 xm = rho*xl(i)*geo(1,i0)
1473 xine=
max(em20,
max((rho*geo(1,i0)*length*length*length)/twelve+ rho*iyy*length,rho*ixx*length))
1474 gbuf%MASS(i) = xm*gbuf%FRAM_FACTOR(i)
1475 gbuf%INTVAR(i) = xine*gbuf%FRAM_FACTOR(i)
1479 gbuf%FRAM_FACTOR(i) = one
1482 gbuf%INTVAR(i) = xine
1487 IF (gbuf%SLIPRING_STRAND(i) > 0)
THEN
1489 slip = gbuf%SLIPRING_ID(i)
1490 fra = gbuf%SLIPRING_FRAM_ID(i)
1492 IF ((
slipring(slip)%FRAM(fra)%NODE(kk)/=i1).AND.(
slipring(slip)%FRAM(fra)%NODE(kk)/=i2))
THEN
1493 ixr(4,j)=
slipring(slip)%FRAM(fra)%NODE(kk)
1496 ELSEIF (gbuf%RETRACTOR_ID(i) < 0)
THEN
1499 gbuf%RETRACTOR_ID(i) = 0
1502 IF (xcm+xkm<em15) xm =one
1503 IF (xcr+xkr<em15) xine=one
1506 dt =xm/
max(em15,sqrt(xcm*xcm+xkm*xm)+xcm)
1507 dtc=xine/
max(em15,sqrt(xcr*xcr+xine*xkr)+xcr)
1509 geo(4,i0)=
min(geo(4,i0),dt)
1510 dtelem(ndepar+i)= dt
1513 sti = (sqrt(xcm**2+xkm*mas2)+xcm)**2/mas2
1517 stifn(i1)=stifn(i1)+sti
1518 stifn(i2)=stifn(i2)+sti
1520 sti = (sqrt(xcr**2+xkr*ine2)+xcr)**2/ine2
1524 stifr(i1)=stifr(i1)+sti
1525 stifr(i2)=stifr(i2)+sti
1527 ELSEIF (igtyp == 25)
THEN
1531 al2= ex*ex+ey*ey+ez*ez
1532 xkm=
max(geo(3,i0)*geo(41,i0),
1533 . geo(10,i0)*geo(45,i0))/xl(i)
1534 xcm= (
max(geo(4,i0),geo(11,i0))
1535 . +
max(geo(141,i0),geo(142,i0)))/xl(i)
1536 xkr= geo(10,i0)*geo(45,i0)*al2
1538 . +
max(geo(19,i0)*geo(53,i0),geo(23,i0)*geo(57,i0)))/xl(i)
1539 xcr= (geo(11,i0)+geo(142,i0))*al2
1541 .
max(geo(141,i0),geo(142,i0))+
max(geo(20,i0),geo(24,i0))
1542 . +
max(geo(143,i0),geo(144,i0)) )/xl(i)
1544 xine=geo(9,i0)*xl(i)
1545 IF (xcm+xkm<em15) xm =one
1546 IF (xcr+xkr<em15) xine=one
1549 dt=xm/
max(em15,sqrt(xcm*xcm+xkm*xm)+xcm)
1550 dtc=xine/
max(em15,sqrt(xcr*xcr+xine*xkr)+xcr)
1551 dtelem(ndepar+i)=
min(dt,dtc)
1554 sti = (sqrt(xcm**2+xkm*mas2)+xcm)**2/mas2
1558 stifn(i1)=stifn(i1)+sti
1559 stifn(i2)=stifn(i2)+sti
1562 sti = (sqrt(xcr**2+xkr*mas2)+xcr)**2/mas2
1566 stifr(i1)=stifr(i1)+sti
1567 stifr(i2)=stifr(i2)+sti
1569 ELSEIF (igtyp == 27)
THEN
1570 xm = geo(1,i0)*xl(i)
1571 xkm= geo(2,i0)*geo(10,i0)/xl(i)
1572 xcm= (geo(3,i0)+geo(141,i0))/xl(i)
1573 IF (xcm /= zero .AND. xkm /= zero)
THEN
1574 dt=xm/(sqrt(xcm*xcm+xkm*xm)+xcm)
1575 ELSEIF (xkm /= zero)
THEN
1577 ELSEIF (xcm /= zero)
THEN
1582 dtc=half*xm /
max(em15,xcm)
1583 dtelem(ndepar+i)=
min(dt,dtc)
1586 sti = (sqrt(xcm**2+xkm*mas2)+xcm)**2/mas2
1590 stifn(i1)=stifn(i1)+sti
1591 stifn(i2)=stifn(i2)+sti
1600 ih = nint(geo(7,i0))
1601 ifunc = igeo(101,i0)
1603 IF (ih==0.OR.ih==8)
THEN
1606 . anmode=aninfo_blind_1,
1613 undamp = xm/dtelem(ndepar+i)
1614 gbuf%BPRELD(i) = preload_a(ipreld)%preload
1615 gbuf%BPRELD(i+nel) = undamp*preload_a(ipreld)%damp
1623 ifunc = ipm(10 + 1,imat)
1624 iadbuf = ipm(7,imat) - 1
1625 ih= nint(uparam(iadbuf + 4 + 12*6 + 1))
1627 IF (ih==0.OR.ih==8)
THEN
1630 . anmode=aninfo_blind_1,
1637 undamp = xm/dtelem(ndepar+i)
1638 gbuf%BPRELD(i) = preload_a(ipreld)%preload
1639 gbuf%BPRELD(i+nel) = undamp*preload_a(ipreld)%damp
1645 . anmode=aninfo_blind_1,
1653 . anmode=aninfo_blind_1,
1661 1000
FORMAT(
'LIST OF POSSIBLE CNODES MERGED WITH NODE OF ID=',i10)