40 . ITAB ,IXSKIN ,TAG_SKINS6,IBCL ,
41 . ILOADP,LLOADP ,NODAL_IPART,IMAPSKP,
51 use element_mod ,
only : nixs,nixq
55#include "implicit_f.inc"
66 INTEGER,
DIMENSION(NUMSKINP0),
INTENT(IN) :: IMAPSKP
67 INTEGER IPARG(NPARG,*),IXS(NIXS,*),IPARTS(*),ITAB(*),(NIXQ,*),
68 . IXS10(6,*) ,TAG_SKINS6(*),IBCL(*),ILOADP(*),LLOADP(*),
70 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
71 TYPE (LOADS_) ,
INTENT(IN) :: LOADS
72 TYPE (PBLAST_),
INTENT(IN) :: PBLAST
76 INTEGER I, NSKIN, ISOLNOD, ICS, NG, N
78 . MLW ,NEL ,NFT ,IAD ,ITY ,
79 . npt ,jale ,ismstr ,jeul ,jtur ,
80 . jthe ,jlag ,jmult ,jhbe ,jivf ,
81 . nvaux ,jpor ,kcvt ,jclose ,jplasol ,
82 . irep ,iint ,igtyp ,israt ,isrot ,
83 . icsen ,isorth ,isorthg ,ifailure,jsms ,
89 isolnod = iparg(28,ng)
92 2 mlw ,nel ,nft ,iad ,ity ,
93 3 npt ,jale ,ismstr ,jeul ,jtur ,
94 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
95 5 nvaux ,jpor ,kcvt ,jclose
96 6 irep ,iint ,igtyp ,israt ,isrot ,
97 7 icsen ,isorth ,isorthg ,ifailure,jsms )
99 IF(mlw == 13 .OR. mlw == 0) cycle
110 IF (ity == 1.AND.(igtyp==20 .OR. igtyp==21 .OR. igtyp==22))
THEN
115 ixskin(1,nskin+i) = iparts(n)
116 ixskin(7,nskin+i) = nskin+i
124 ixskin(2,nskin+i) = itab(ixs(2,n))
125 ixskin(3,nskin+i) = itab(ixs(5,n))
126 ixskin(4,nskin+i) = itab(ixs(9,n))
127 ixskin(5,nskin+i) = itab(ixs(6,n))
128 ixskin(6,nskin+i) = ixs(nixs-1,n)
135 ixskin(2,nskin+i) = itab(ixs(2,n))
136 ixskin(3,nskin+i) = itab(ixs(3,n))
137 ixskin(4,nskin+i) = itab(ixs(4,n))
138 ixskin(5,nskin+i) = itab(ixs(5,n))
139 ixskin(6,nskin+i) = ixs(nixs-1,n)
146 ixskin(2,nskin+i) = itab(ixs(2,n))
147 ixskin(3,nskin+i) = itab(ixs(6,n))
148 ixskin(4,nskin+i) = itab(ixs(7,n))
149 ixskin(5,nskin+i) = itab(ixs(3,n))
150 ixskin(6,nskin+i) = ixs(nixs-1,n)
154 ELSEIF (isolnod==6)
THEN
158 ixskin(2,nskin+i) = itab(ixs(2,n))
159 ixskin(3,nskin+i) = itab(ixs(3,n))
160 ixskin(4,nskin+i) = itab(ixs(4,n))
161 ixskin(5,nskin+i) = itab(ixs(4,n))
162 ixskin(6,nskin+i) = ixs(nixs-1,n)
170 ixskin(2,nskin+i) = itab(ixs(2,n))
171 ixskin(3,nskin+i) = itab(ixs(3,n))
172 ixskin(4,nskin+i) = itab(ixs(4,n))
173 ixskin(5,nskin+i) = itab(ixs(5,n))
174 ixskin(6,nskin+i) = ixs(nixs-1,n)
182 ixskin(1,nskin+i) = iparts(n)
183 ixskin(7,nskin+i) = nskin+i
191 ixskin(2,nskin+i) = itab(ixs(3,n))
192 ixskin(3,nskin+i) = itab(ixs(4,n))
193 ixskin(4,nskin+i) = itab(ixs(8,n))
194 ixskin(5,nskin+i) = itab(ixs(7,n))
195 ixskin(6,nskin+i) = ixs(nixs-1,n)
202 ixskin(2:5,nskin+i) = itab(ixs(6:9,n))
203 ixskin(6,nskin+i) = ixs(nixs-1,n)
210 ixskin(2,nskin+i) = itab(ixs(5,n))
211 ixskin(3,nskin+i) = itab(ixs(9,n))
212 ixskin(4,nskin+i) = itab(ixs(8,n))
213 ixskin(5,nskin+i) = itab(ixs(4,n))
214 ixskin(6,nskin+i) = ixs(nixs-1,n)
218 ELSEIF (isolnod==6)
THEN
222 ixskin(2:4,nskin+i) = itab(ixs(6:8,n))
223 ixskin(5,nskin+i) = ixskin(4,nskin+i)
224 ixskin(6,nskin+i) = ixs(nixs-1,n)
231 ixskin(2:5,nskin+i) = itab(ixs(6:9,n))
232 ixskin(6,nskin+i) = ixs(nixs-1,n)
245 . ixskin ,tag_skins6,nskin )
247 ixskin(2:5,i) = itab(ixskin(2:5,i))
254 . ixskin ,nskin ,imapskp,loads,pblast )
256 ixskin(2:5,i) = itab(ixskin(2:5,i))
345#include "implicit_f.inc"
349#include "param_c.inc"
350#include "com01_c.inc"
355 INTEGER IPARG(NPARG,*),NUMSKIN, TAG_SKINS6(*)
360 . MLW ,NEL ,NFT ,IAD ,ITY ,
361 . NPT ,JALE ,ISMSTR ,JEUL ,JTUR ,
362 . JTHE ,JLAG ,JMULT ,JHBE ,JIVF ,
363 . nvaux ,jpor ,kcvt ,jclose ,jplasol ,
364 . irep ,iint ,igtyp ,israt ,isrot ,
365 . icsen ,isorth ,isorthg ,ifailure,jsms ,
370 2 mlw ,nel ,nft ,iad ,ity ,
371 3 npt ,jale ,ismstr ,jeul ,jtur ,
372 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
373 5 nvaux ,jpor ,kcvt ,jclose ,jplasol ,
374 6 irep ,iint ,igtyp ,israt ,isrot ,
375 7 icsen ,isorth ,isorthg ,ifailure,jsms )
377 IF(mlw == 13 .OR. mlw == 0.OR.ity /= 1) cycle
379 IF (igtyp==20 .OR. igtyp==21 .OR. igtyp==22)
THEN
380 numskin = numskin + 2*nel
403#include "implicit_f.inc"
407#include "param_c.inc"
408#include "com01_c.inc"
413 INTEGER IPARG(NPARG,*),NUMSKIN, TAG_SKINS6(*)
418 . MLW ,NEL ,NFT ,IAD ,ITY ,
419 . NPT ,JALE ,ISMSTR ,JEUL ,JTUR ,
420 . JTHE ,JLAG ,JMULT ,JHBE ,JIVF ,
421 . nvaux ,jpor ,kcvt ,jclose ,jplasol ,
422 . irep ,iint ,igtyp ,israt ,isrot ,
423 . icsen ,isorth ,isorthg ,ifailure,jsms ,
424 . nn,ics,isolnod,nn1,jj,ii,k1,k2,nf(3),nskin2,idb
425 INTEGER FACES(4, 6), PWR(7), LL
426 DATA PWR/1,2,4,8,16,32,64/
443 2 mlw ,nel ,nft ,iad ,ity ,
444 3 npt ,jale ,ismstr ,jeul ,jtur ,
445 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
446 5 nvaux ,jpor ,kcvt ,jclose ,jplasol ,
447 6 irep ,iint ,igtyp ,israt ,isrot ,
448 7 icsen ,isorth ,isorthg ,ifailure,jsms )
450 IF(mlw == 13 .OR. mlw == 0.OR.ity /= 1) cycle
452 IF (igtyp==6 .OR. igtyp==14 )
THEN
453 isolnod = iparg(28,ng)
461 IF(mod(ll,pwr(jj+1))/pwr(jj) /= 0)cycle
462 numskin = numskin + 1
465 ELSEIF(isolnod == 6)
THEN
466 ELSEIF(isolnod == 10)
THEN
472 IF(mod(ll,pwr(jj+1))/pwr(jj) /= 0)cycle
473 numskin = numskin + 4
482 IF(mod(ll,pwr(jj+1))/pwr(jj) /= 0)cycle
483 numskin = numskin + 1
511#include "implicit_f.inc"
512#include "param_c.inc"
516#include "com04_c.inc"
517#include "tabsiz_c.inc"
524 INTEGER LLOADP(SLLOADP),NSKIN,NSKIN0
525 INTEGER ILOADP(SIZLOADP,*),IB(NIBCLD,*)
526 TYPE (LOADS_) ,
INTENT(IN) :: LOADS
527 TYPE(PBLAST_),
INTENT(IN) :: PBLAST
531 INTEGER NL, N1, N2, N3, N4, J,
532 . IAD ,NP ,IFUNC ,NPRES ,N,NSKIN_I,NSKINP0,IERR,IXST,SHIFT
533 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAGN
534 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IRECT
544 IF (n1>0.AND.n2>0.AND.n3>0.AND.n4/=-1) nskin = nskin + 1
547 shift = nloadp_f+pblast%NLOADP_B
548 DO nl=1+shift,nloadp_hyd+shift
550 DO n=1, iloadp(1,nl)/4
551 n1 = lloadp(iad+4*(n-1))
552 n2 = lloadp(iad+4*(n-1)+1)
553 n3 = lloadp(iad+4*(n-1)+2)
554 n4 = lloadp(iad+4*(n-1)+3)
555 IF (n1>0.AND.n2>0.AND.n3>0) nskin = nskin + 1
559 DO nl=1,nloadp_f+pblast%NLOADP_B
561 DO n=1, iloadp(1,nl)/4
562 n1 = lloadp(iad+4*(n-1))
563 n2 = lloadp(iad+4*(n-1)+1)
564 n3 = lloadp(iad+4*(n-1)+2)
565 n4 = lloadp(iad+4*(n-1)+3)
566 IF (n1>0.AND.n2>0.AND.n3>0) nskin = nskin + 1
570 DO nl = 1,loads%NLOAD_CYL
571 DO n = 1,loads%LOAD_CYL(nl)%NSEG
572 n1 = loads%LOAD_CYL(nl)%SEGNOD(n,1)
573 n2 = loads%LOAD_CYL(nl)%SEGNOD(n,2)
574 n3 = loads%LOAD_CYL(nl)%SEGNOD(n,3)
575 n4 = loads%LOAD_CYL(nl)%SEGNOD(n,4)
576 IF (n1>0.AND.n2>0.AND.n3>0) nskin = nskin + 1
581 nskinp0 = nskin0 - nskin_i
583 ALLOCATE(irect(4,nskinp0),itagn(numnod),stat=ierr)
593 IF (n1==0.OR.n2==0.OR.n3==0.OR.n4==-1) cycle
600 irect(1:4,np) = ib(1:4,nl)
603 shift = nloadp_f+pblast%NLOADP_B
604 DO nl=1+shift,nloadp_hyd+shift
606 DO n=1, iloadp(1,nl)/4
607 n1 = lloadp(iad+4*(n-1))
608 n2 = lloadp(iad+4*(n-1)+1)
609 n3 = lloadp(iad+4*(n-1)+2)
610 n4 = lloadp(iad+4*(n-1)+3)
611 IF (n1==0.OR.n2==0.OR.n3==0) cycle
613 IF(itagn(n1)+itagn(n2)+itagn(n3)+itagn(n4)<4)
THEN
626 DO WHILE (ixst==0 .AND. j < np)
628 IF (n1 /= irect(1,j)) cycle
629 IF (n2 /= irect(2,j)) cycle
630 IF (n3 /= irect(3,j)) cycle
631 IF (n4 /= irect(4,j)) cycle
648 DO nl=1,nloadp_f + pblast%NLOADP_B
650 DO n=1, iloadp(1,nl)/4
651 n1 = lloadp(iad+4*(n-1))
652 n2 = lloadp(iad+4*(n-1)+1)
653 n3 = lloadp(iad+4*(n-1)+2)
654 n4 = lloadp(iad+4*(n-1)+3)
655 IF (n1==0.OR.n2==0.OR.n3==0) cycle
657 IF(itagn(n1)+itagn(n2)+itagn(n3)+itagn(n4)<4)
THEN
670 DO WHILE (ixst==0 .AND. j < np)
672 IF (n1 /= irect(1,j)) cycle
673 IF (n2 /= irect(2,j)) cycle
674 IF (n3 /= irect(3,j)) cycle
675 IF (n4 /= irect(4,j)) cycle
692 DO nl = 1,loads%NLOAD_CYL
693 DO n = 1,loads%LOAD_CYL(nl)%NSEG
694 n1 = loads%LOAD_CYL(nl)%SEGNOD(n,1)
695 n2 = loads%LOAD_CYL(nl)%SEGNOD(n,2)
696 n3 = loads%LOAD_CYL(nl)%SEGNOD(n,3)
697 n4 = loads%LOAD_CYL(nl)%SEGNOD(n,4)
699 IF(itagn(n1)+itagn(n2)+itagn(n3)+itagn(n4)<4)
THEN
712 DO WHILE (ixst==0 .AND. j < np)
714 IF (n1 /= irect(1,j)) cycle
715 IF (n2 /= irect(2,j)) cycle
716 IF (n3 /= irect(3,j)) cycle
717 IF (n4 /= irect(4,j)) cycle
735 DEALLOCATE(irect,itagn)
753 . IXSKIN ,NSKIN ,IMAPSKP,LOADS,PBLAST )
761 use element_mod ,
only : nixq
765#include "implicit_f.inc"
766#include "param_c.inc"
770#include "com04_c.inc"
771#include "tabsiz_c.inc"
778 INTEGER ,
DIMENSION(NUMSKINP0),
INTENT(IN) :: IMAPSKP
779 INTEGER LLOADP(SLLOADP),NSKIN,IXSKIN(NIXQ,*)
780 INTEGER ILOADP(SIZLOADP,*),IB(NIBCLD,*),NODAL_IPART(*)
781 TYPE (LOADS_) ,
INTENT(IN) :: LOADS
782 TYPE(PBLAST_),
INTENT(IN) :: PBLAST
786 INTEGER NL, N1, N2, N3, N4,
787 . iad ,np ,ifunc ,npres,nskin0,nskin1,n,i,pid0,shift
799 IF (n1==0.OR.n2==0.OR.n3==0.OR.n4==-1) cycle
802 nskin = nskin0+ imapskp(np)
811 ixskin(1,nskin)=nodal_ipart(n1)
812 ixskin(6,nskin)=nskin0+nl
816 shift = nloadp_f+pblast%NLOADP_B
817 DO nl=1+shift,nloadp_hyd+shift
819 DO n=1, iloadp(1,nl)/4
820 n1 = lloadp(iad+4*(n-1))
821 n2 = lloadp(iad+4*(n-1)+1)
822 n3 = lloadp(iad+4*(n-1)+2)
823 n4 = lloadp(iad+4*(n-1)+3)
824 IF (n1==0.OR.n2==0.OR.n3==0) cycle
827 IF (imapskp(np) < np) cycle
828 nskin = nskin0+ imapskp(np)
837 ixskin(1,nskin)=nodal_ipart(n1)
838 ixskin(6,nskin)=nskin1+nl
845 DO i = 1,iloadp(1,nl)/4
846 n1=lloadp(iad+4*(i-1))
847 n2=lloadp(iad+4*(i-1)+1)
848 n3=lloadp(iad+4*(i-1)+2)
849 n4=lloadp(iad+4*(i-1)+3)
850 IF (n1==0.OR.n2==0.OR.n3==0) cycle
853 IF (imapskp(np) < np) cycle
854 nskin = nskin0+ imapskp(np)
863 ixskin(1,nskin)=nodal_ipart(n1)
864 ixskin(6,nskin)=nskin1+nl
869 DO nl=1+nloadp_f,nloadp_f+pblast%NLOADP_B
871 DO i = 1,iloadp(1,nl)/4
872 n1=lloadp(iad+4*(i-1))
873 n2=lloadp(iad+4*(i-1)+1)
874 n3=lloadp(iad+4*(i-1)+2)
875 n4=lloadp(iad+4*(i-1)+3)
879 IF (imapskp(np) < np) cycle
880 nskin = nskin0+ imapskp(np)
889 ixskin(1,nskin)=nodal_ipart(n1)
890 ixskin(6,nskin)=nskin1+nl
895 DO nl=1,loads%NLOAD_CYL
896 DO i = 1,loads%LOAD_CYL(nl)%NSEG
897 n1 = loads%LOAD_CYL(nl)%SEGNOD(i,1)
898 n2 = loads%LOAD_CYL(nl)%SEGNOD(i,2)
899 n3 = loads%LOAD_CYL(nl)%SEGNOD(i,3)
903 IF (imapskp(np) < np) cycle
904 nskin = nskin0+ imapskp(np)
913 ixskin(1,nskin)=nodal_ipart(n1)
914 ixskin(6,nskin)=nskin1+nl
932 . IXC, IXTG, IXS,IXS10,IXS16,IXS20,
939 use element_mod ,
only : nixs,nixc,nixtg
943#include "implicit_f.inc"
947#include "com01_c.inc"
948#include "com04_c.inc"
949#include "param_c.inc"
954 INTEGER IPARG(NPARG,*),IXS(NIXS,*),IPARTS(*),
955 . IXC(NIXC,*),IXTG(NIXTG,*),IXS10(6,*),IXS16(8,*) ,
956 . IXS20(12,*),IPARTC(*),IPARTTG(*),NODAL_IPART(*)
957 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
961 INTEGER I, ISOLNOD, NG, N, J, NJ
963 . MLW ,NEL ,NFT ,IAD ,ITY ,
964 . npt ,jale ,ismstr ,jeul ,jtur ,
965 . jthe ,jlag ,jmult ,jhbe ,jivf ,
966 . nvaux ,jpor ,kcvt ,jclose ,jplasol ,
967 . irep ,iint ,igtyp ,israt ,isrot ,
968 . icsen ,isorth ,isorthg ,ifailure,jsms ,
972 isolnod = iparg(28,ng)
974 2 mlw ,nel ,nft ,iad ,ity ,
975 3 npt ,jale ,ismstr ,jeul ,jtur ,
976 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
977 5 nvaux ,jpor ,kcvt ,jclose ,jplasol ,
978 6 irep ,iint ,igtyp ,israt ,isrot ,
979 7 icsen ,isorth ,isorthg ,ifailure,jsms )
981 IF(mlw == 13 .OR. mlw == 0) cycle
988 nodal_ipart(ixc(2:5,n))=ipartc(n)
990 ELSEIF (ity == 7)
THEN
993 nodal_ipart(ixtg(2:4,n))=iparttg(n)
998 ELSEIF (ity == 1)
THEN
1000 SELECT CASE (isolnod)
1004 nodal_ipart(ixs(2,n)) =iparts(n)
1005 nodal_ipart(ixs(4,n)) =iparts(n)
1006 nodal_ipart(ixs(7,n)) =iparts(n)
1007 nodal_ipart(ixs(6,n)) =iparts(n)
1012 nodal_ipart(ixs(2,n)) =iparts(n)
1013 nodal_ipart(ixs(3,n)) =iparts(n)
1014 nodal_ipart(ixs(4,n)) =iparts(n)
1015 nodal_ipart(ixs(7,n)) =iparts(n)
1016 nodal_ipart(ixs(6,n)) =iparts(n)
1017 nodal_ipart(ixs(8,n)) =iparts(n)
1022 nodal_ipart(ixs(2:9,n)) =iparts(n)
1027 nodal_ipart(ixs(2,n)) =iparts(n)
1028 nodal_ipart(ixs(4,n)) =iparts(n)
1029 nodal_ipart(ixs(7,n)) =iparts(n)
1030 nodal_ipart(ixs(6,n)) =iparts(n)
1034 IF (nj>0) nodal_ipart(nj) =iparts(n)
1038 nn1 = n - (numels8+numels10+numels20)
1041 nodal_ipart(ixs(2:9,n)) =iparts(n)
1044 IF (nj>0) nodal_ipart(nj) =iparts(n)
1048 nn1 = n - (numels8+numels10)
1051 nodal_ipart(ixs(2:9,n)) =iparts(n)
1054 IF (nj>0) nodal_ipart(nj) =iparts(n)