33 use element_mod , only : nixt,nixp,nixr
34
35
36
37#include "implicit_f.inc"
38
39
40
41#include "com01_c.inc"
42#include "com04_c.inc"
43#include "param_c.inc"
44
45
46
47 INTEGER IADD(*),IPARG(NPARG,*),
48 . (NIXT,*),IXP(NIXP,*),IXR(NIXR,*),
49 . MATER(*),EL2FA(*),
50 . IPARTT(*),IPARTP(*),IPARTR(*),
51 . NFACPTX(3,*),IXEDGE(2,*)
52
53 INTEGER II(4),IE,NG, ITY, LFT, LLT, N, I, J,
54 . IPRT, NEL, IAD, NPAR, NFT,MTN,
55 . NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,JJ,NAX1D
56
57 ie = 0
58
59 nn1 = 1
60 nn2 = 1
61 nn3 = 1
62 nn4 = nn3
63 nn5 = nn4
64 nn6 = nn5
65 nn7 = nn6 + numelt
66 nn8 = nn7 + numelp
67
68
69
70 npar = 0
71
72
73
74 IF(numelp + numelt + numelr/=0)THEN
75 jj = 0
76 DO 500 iprt=1,npart
77 IF(mater(iprt)/=3)GOTO 500
78 IF(numelx>0)THEN
79 IF(nfacptx(1,iprt)>0)GOTO 500
80 ENDIF
81 npar = npar + 1
82 DO 490 ng=1,ngroup
83 mtn =iparg(1,ng)
84 nel =iparg(2,ng)
85 nft =iparg(3,ng)
86 iad =iparg(4,ng)
87 ity =iparg(5,ng)
88 lft=1
89 llt=nel
90
91
92
93 IF(ity==4)THEN
94 DO 140 i=lft,llt
95 n = i + nft
96 IF(ipartt(n)/=iprt)GOTO 140
97 ii(1) = ixt(2,n)-1
98 ii(2) = ixt(3,n)-1
100 ie = ie + 1
101 el2fa(nn6+n) = ie
102 jj = jj + 2
103 140 CONTINUE
104
105
106
107 ELSEIF(ity==5)THEN
108 DO 150 i=lft,llt
109 n = i + nft
110 IF(ipartp(n)/=iprt)GOTO 150
111 ii(1) = ixp(2,n)-1
112 ii(2) = ixp(3,n)-1
114 ie = ie + 1
115 el2fa(nn7+n) = ie
116 jj = jj + 2
117 150 CONTINUE
118
119
120
121 ELSEIF(ity==6)THEN
122 DO 160 i=lft,llt
123 n = i + nft
124 IF(ipartr(n)/=iprt)GOTO 160
125 ii(1) = ixr(2,n)-1
126 ii(2) = ixr(3,n)-1
128 ie = ie + 1
129 el2fa(nn8+n) = ie
130 jj = jj + 2
131 IF(mtn==3)THEN
132 ii(1) = ixr(3,n)-1
133 ii(2) = ixr(4,n)-1
135 ie = ie + 1
136 jj = jj + 2
137 ENDIF
138 160 CONTINUE
139 ELSE
140 ENDIF
141 490 CONTINUE
142
143
144
145 iadd(npar) = ie
146 500 CONTINUE
147 ENDIF
148
149
150
151 IF (nanim1d>0) THEN
152 nax1d=0
153 DO 600 iprt=1,npart
154 IF(mater(iprt)/=3)GOTO 600
155 IF(nfacptx(1,iprt)/=0) THEN
156 npar = npar + 1
157 DO j=1,nfacptx(1,iprt)
158 ii(1)=ixedge(1,nax1d+j)-1
159 ii(2)=ixedge(2,nax1d+j)-1
161 jj = jj+2
162 ENDDO
163 nax1d=nax1d+nfacptx(1,iprt)
164 ie=ie+nfacptx(1,iprt)
165 iadd(npar)=ie
166 ENDIF
167 600 CONTINUE
168 ENDIF
169
170 RETURN
void write_i_c(int *w, int *len)