36 . IXTG ,IPARTC ,IPARTTG ,DYNAIN_DATA ,
37 . NODTAG ,DYNAIN_INDXC,DYNAIN_INDXTG,IPARG ,
38 . ELBUF_TAB,THKE ,IPART )
44 use element_mod ,
only : nixc,nixtg
48#include "implicit_f.inc"
61 INTEGER ITAB(*), ITABG(*), LENG, IGEO(NPROPGI,*),
62 . IXC(NIXC,*), IXTG(NIXTG,*),IPARTC(*), IPARTTG(*),
63 . NODTAG(*) , DYNAIN_INDXC(*) ,DYNAIN_INDXTG(*),
64 . iparg(nparg,*),ipart(lipart1,*)
66 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
69 TYPE (DYNAIN_DATABASE),
INTENT(INOUT) :: DYNAIN_DATA
73 INTEGER I, N, JJ, IPRT, K, II
74 INTEGER NG, NEL, NFT, LFT, LLT, ITY, MLW, ITHK,IOFF,
75 . IPROP,ID_PROP,IERR , N4SHELL, N3SHELL, IGTYP, IGTYP0
77 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: NPC , NPTG
78 INTEGER ,
DIMENSION(:,:),
ALLOCATABLE :: CLEF
79 double precision THKN ,BETA
80 double precision ,
DIMENSION(:),
ALLOCATABLE :: THKC
81TYPE(g_bufel_) ,
POINTER :: GBUF
88 ALLOCATE(npc(8*numelc),stat=ierr)
89 ALLOCATE(nptg(7*numeltg),stat=ierr)
90 ALLOCATE(clef(2,
max(numelc,numeltg)),stat=ierr)
91 ALLOCATE(thkc(numelc),stat=ierr)
92 ALLOCATE(thktg(numeltg),stat=ierr)
94 ALLOCATE(betatg(numeltg),stat=ierr)
108 gbuf => elbuf_tab(ng)%GBUF
112 id_prop=igeo(1,iprop)
114 IF(igtyp/= 1) igtyp = 2
122 IF(dynain_data%IPART_DYNAIN(iprt)==0)cycle
124 npc(jj+1) = ixc(nixc,n)
125 npc(jj+2) = itab(ixc(2,n))
126 npc(jj+3) = itab(ixc(3,n))
127 npc(jj+4) = itab(ixc(4,n))
128 npc(jj+5) = itab(ixc(5,n))
129 npc(jj+6) = ipart(4,iprt)
130 npc(jj+7) = nint(gbuf%OFF(i))
133 IF (mlw /= 0 .AND. mlw /= 13)
THEN
135 thkc(ii) = gbuf%THK(i)
144 dynain_data%DYNAIN_NUMELC = dynain_data%DYNAIN_NUMELC+1
146 clef(1,dynain_data%DYNAIN_NUMELC)=igtyp
147 clef(2,dynain_data%DYNAIN_NUMELC)=ixc(nixc,n)
155 betac(ii) = (hundred80*acos(gbuf%BETAORTH(i)))/pi
164 DO n=1,dynain_data%DYNAIN_NUMELC
167 CALL my_orders(0,work,clef,dynain_indxc,dynain_data%DYNAIN_NUMELC,2)
181 gbuf => elbuf_tab(ng)%GBUF
185 id_prop=igeo(1,iprop)
187 IF(igtyp/= 1) igtyp = 2
195 IF(dynain_data%IPART_DYNAIN(iprt)==0)cycle
197 nptg(jj+1) = ixtg(nixtg,n)
198 nptg(jj+2) = itab(ixtg(2,n))
199 nptg(jj+3) = itab(ixtg(3,n))
200 nptg(jj+4) = itab(ixtg(4,n))
201 nptg(jj+5) = ipart(4,iprt)
202 nptg(jj+6) = nint(gbuf%OFF(i))
205 IF (mlw /= 0 .AND. mlw /= 13)
THEN
207 thktg(ii) = gbuf%THK(i)
216 dynain_data%DYNAIN_NUMELTG =dynain_data%DYNAIN_NUMELTG+1
218 clef(1,dynain_data%DYNAIN_NUMELTG)=igtyp
219 clef(2,dynain_data%DYNAIN_NUMELTG)=ixtg(nixtg,n)
226 betatg(ii) = (hundred80*acos(gbuf%BETAORTH(i)))/pi
235 DO n=1,dynain_data%DYNAIN_NUMELTG
238 CALL my_orders(0,work,clef,dynain_indxtg,dynain_data%DYNAIN_NUMELTG,2)
246 DO n=1,dynain_data%DYNAIN_NUMELC
254 IF(igtyp/=igtyp0)
THEN
255 IF(dynain_data%ZIPDYNAIN==0)
THEN
256 WRITE(iudynain,
'(A)')
'*ELEMENT_SHELL_THICKNESS'
257 WRITE(iudynain,
'(A)')
258 .
'$SHELLID PART_ID NOD1 NOD2 NOD3 NOD4'
259 WRITE(iudynain,
'(A)')
260 .
'$ THIC1 THIC2 THIC3 THIC4'
262 WRITE(line,
'(A)')
'*ELEMENT_SHELL_THICKNESS'
265 .
'$SHELLID PART_ID NOD1 NOD2 NOD3 NOD4'
268 .
'$ THIC1 THIC2 THIC3 THIC4'
274 IF(dynain_data%ZIPDYNAIN==0)
THEN
275 WRITE(iudynain,
'(6I8)')
276 . npc(jj+1),npc(jj+6),npc(jj+2),npc(jj+3),npc(jj+4),npc(jj+5)
277 WRITE(iudynain,
'(1P4G16.9)')
278 . thkn,thkn,thkn,thkn
281 . npc(jj+1),npc(jj+6),npc(jj+2),npc(jj+3),npc(jj+4),npc(jj+5)
283 WRITE(line,
'(1P4G16.9)')
284 . thkn,thkn,thkn,thkn
297 DO n=1,dynain_data%DYNAIN_NUMELTG
305 IF(dynain_data%ZIPDYNAIN==0)
THEN
306 WRITE(iudynain,
'(5I8)')
307 . nptg(jj+1),nptg(jj+5),nptg(jj+2),nptg(jj+3),nptg(jj+4)
308 WRITE(iudynain,
'(1P3G16.9)')
312 . nptg(jj+1),nptg(jj+5),nptg(jj+2),nptg(jj+3),nptg(jj+4)
314 WRITE(line,
'(1P3G16.9)')
328 DO n=n4shell,dynain_data%DYNAIN_NUMELC
336 IF(igtyp/=igtyp0)
THEN
338 IF(dynain_data%ZIPDYNAIN==0)
THEN
339 WRITE(iudynain,
'(A)')
'*ELEMENT_SHELL_THICKNESS_BETA'
340 WRITE(iudynain,
'(A)')
341 .
'$SHELLID PART_ID NOD1 NOD2 NOD3 NOD4'
342 WRITE(iudynain,
'(A)')
343 .
'$ THIC1 THIC2 THIC3 THIC4 BETA'
345 WRITE(line,
'(A)')
'*ELEMENT_SHELL_THICKNESS_BETA'
348 .
'$SHELLID PART_ID NOD1 NOD2 NOD3 NOD4'
351 . '$ thic1 thic2 thic3 thic4 beta
'
352 CALL STRS_TXT50(LINE,100)
355 IF(DYNAIN_DATA%ZIPDYNAIN==0) THEN
356 WRITE(IUDYNAIN,'(6i8)
')
357 . NPC(JJ+1),NPC(JJ+6),NPC(JJ+2),NPC(JJ+3),NPC(JJ+4),NPC(JJ+5)
358 WRITE(IUDYNAIN,'(1p5g16.9)
')
359 . THKN,THKN,THKN,THKN,BETA
362 . NPC(JJ+1),NPC(JJ+6),NPC(JJ+2),NPC(JJ+3),NPC(JJ+4),NPC(JJ+5)
363 CALL STRS_TXT50(LINE,100)
364 WRITE(LINE,'(1p5g16.9)
')
365 . THKN,THKN,THKN,THKN,BETA
366 CALL STRS_TXT50(LINE,100)
373 DO N=N3SHELL,DYNAIN_DATA%DYNAIN_NUMELTG
380 IF(DYNAIN_DATA%ZIPDYNAIN==0) THEN
381 WRITE(IUDYNAIN,'(5i8)
')
382 . NPTG(JJ+1),NPTG(JJ+5),NPTG(JJ+2),NPTG(JJ+3),NPTG(JJ+4)
383 WRITE(IUDYNAIN,'(1p3g16.9,16x,1pg16.9)
')
384 . THKN,THKN,THKN,BETA
387 . NPC(JJ+1),NPC(JJ+6),NPC(JJ+2),NPC(JJ+3),NPC(JJ+4)
388 CALL STRS_TXT50(LINE,100)
389 WRITE(LINE,'(1p3g16.9,16x,1pg16.9)
')
390 . THKN,THKN,THKN,BETA
391 CALL STRS_TXT50(LINE,100)
400 DEALLOCATE(NPC,NPTG,CLEF,THKC,THKTG,BETAC,BETATG)