42 use element_mod , only : nixc,nixtg
43
44
45
46#include "implicit_f.inc"
47
48
49#include "com01_c.inc"
50#include "com04_c.inc"
51#include "param_c.inc"
52#include "task_c.inc"
53
54
55
56 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),IPARG(NPARG,*),
57 . EL2FA(*),INUM(*),
58 . INVERT(*), NBF,NELCUT,NBPART,IADG(NSPMD,*)
59 INTEGER DD_IAD(NSPMD+1,*), IADD(*), NBF_L,IPLY,
60 . NEL_PLY,NBF_PXFEMG,NODGLOB(*)
61
62
63 INTEGER II, NG, ITY, LFT, LLT, N, I,
64 . NEL, IAD, NFT,
65 . IDCMAX,ISHPLYXFEM,IDPLY,
66 . IPT,ELC,PLYELEMS(NUMELC),PLYS,RBUF,NELCOUNT,ELEM
67 INTEGER GET_PLY_ELEM
69
70 nelcount = 0
73
74 plyelems=0
78 plyelems(elc)=ipt
79 ENDDO
80
81 idply = idcmax + nel_ply
82 ii = 0
83 DO 490 ng=1,ngroup
84 nel =iparg(2,ng)
85 nft =iparg(3,ng)
86 iad =iparg(4,ng)
87 ity =iparg(5,ng)
88 ishplyxfem = iparg(50,ng)
89 lft=1
90 llt=nel
91
92
93
94 IF(ishplyxfem > 0) THEN
95
96
97
98 IF(ity==3)THEN
99 DO i=lft,llt
100 n = i + nft
101 IF(plyelems(n) > 0) THEN
102 ii = ii + 1
104 inum(el2fa(nel_ply + ii)) =
106 ENDIF
107 ENDDO
108
109
110
111 ELSEIF(ity==7)THEN
112 DO i=lft,llt
113
114
115 ENDDO
116
117
118
119 ENDIF
120 ENDIF
121 490 CONTINUE
122
123 nel_ply = nel_ply +
plyshell(iply)%PLYNUMSHELL
124 ENDDO
125
126 IF (nspmd == 1) THEN
127 DO i=1,nbf
128 inum(i) = inum(i) + idcmax
129 ENDDO
131
132 idcmax=0
133 DO i=1,nbf
134 idcmax=
max(idcmax,inum(i))
135 ENDDO
136
137 ELSE
138
139 IF (ispmd==0) THEN
140 rbuf = nbf_pxfemg
142 * idcmax)
143 ELSE
144 rbuf = 1
146 * idcmax)
147 END IF
148 ENDIF
149
150
151
152 RETURN
integer function get_ply_elem(iply, elemid)
integer, dimension(:), allocatable indx_ply
type(plyshells), dimension(:), allocatable plyshell
subroutine spmd_iget_partn_ply(size, nbf_l, np, nbpart, iadg, srbuf, iflag, idply)
void write_i_c(int *w, int *len)