37 . IXTG ,IPARTC ,IPARTTG ,DYNAIN_DATA ,
38 . NODTAG ,DYNAIN_INDXC,DYNAIN_INDXTG,IPARG ,
39 . ELBUF_TAB,THKE ,LENGC ,LENGTG ,IPART )
48#include "implicit_f.inc"
63 INTEGER ITAB(*), ITABG(*), LENG,
64 . IGEO(NPROPGI,*), IXC(NIXC,*), IXTG(NIXTG,*),
65 . IPARTC(*), IPARTTG(*),(*),
66 . dynain_indxc(*), dynain_indxtg(*),
67 . lengc, lengtg, iparg(nparg,*),ipart(lipart1,*)
68 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
71 TYPE (DYNAIN_DATABASE),
INTENT(INOUT) :: DYNAIN_DATA
75 INTEGER I, N, JJ, IPRT, BUF, IPRT0, K, II
76 INTEGER NG, NEL, NFT, LFT, LLT, ITY, LEN, ITHK, MLW,IOFF,IPROP,
77 . ID_PROP, IERR, N4SHELL , N3SHELL ,IGTYP ,IGTYP0
78 INTEGER IADD(NPART+1), IADG(NSPMD,NPART)
80 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: NPC , NPTG ,NPGLOBC ,NPGLOBTG
81 INTEGER ,
DIMENSION(:,:),
ALLOCATABLE :: CLEF
82 double precision THKN ,BETA
83 double precision ,
DIMENSION(:),
ALLOCATABLE :: THKC, THKC0 , THKTG, THKTG0,
84 . betac, betac0, betatg, betatg0
85 TYPE() ,
POINTER :: GBUF
92 ALLOCATE(npc(8*numelc),stat=ierr)
93 ALLOCATE(nptg(7*numeltg),stat=ierr)
94 ALLOCATE(npglobc(8*lengc),stat=ierr)
95 ALLOCATE(npglobtg(7*lengtg),stat=ierr)
96 ALLOCATE(clef(2,
max(numelcg,numeltgg)),stat=ierr)
97 ALLOCATE(thkc(
max(1,numelc)),stat=ierr)
98 ALLOCATE(thktg(
max(1,numeltg)),stat=ierr)
99 ALLOCATE(thkc0(
max(1,numelcg)),stat=ierr)
100 ALLOCATE(thktg0(
max(1,numeltgg)),stat=ierr)
101 ALLOCATE(betac(
max(1,numelc)),stat=ierr)
102 ALLOCATE(betatg(
max(1,numeltg)),stat=ierr)
103 ALLOCATE(betac0(
max(1,numelcg)),stat=ierr)
104 ALLOCATE(betatg0(
max(1,numeltgg)),stat=ierr)
109 npglobc(1:8*lengc) = 0
110 npglobtg(1:7*lengtg) = 0
120 gbuf => elbuf_tab(ng)%GBUF
124 id_prop=igeo(1,iprop)
126 IF(igtyp/= 1) igtyp = 2
133 IF(dynain_data%IPART_DYNAIN(iprt)==0)cycle
135 npc(jj+1) = ixc(nixc,n)
136 npc(jj+2) = itab(ixc(2,n))
137 npc(jj+3) = itab(ixc(3,n))
138 npc(jj+4) = itab(ixc(4,n))
139 npc(jj+5) = itab(ixc(5,n))
140 npc(jj+6) = ipart(4,iprt)
141 npc(jj+7) = nint(gbuf%OFF(i))
144 IF (mlw /= 0 .AND. mlw /= 13)
THEN
146 thkc(ii) = gbuf%THK(i)
155 dynain_data%DYNAIN_NUMELC =dynain_data%DYNAIN_NUMELC+1
163 betac(ii) = (hundred80*acos(gbuf%BETAORTH(i)))/pi
170 dynain_data%DYNAIN_NUMELC_G=0
171 CALL spmd_iget_partn_sta(8,dynain_data%DYNAIN_NUMELC,dynain_data%DYNAIN_NUMELC_G,lengc,npc,
172 . iadg,npglobc,dynain_indxc)
192 gbuf => elbuf_tab(ng)%GBUF
196 id_prop=igeo(1,iprop)
198 IF(igtyp/= 1) igtyp = 2
206 IF(dynain_data%IPART_DYNAIN(iprt)==0)cycle
208 nptg(jj+1) = ixtg(nixtg,n)
209 nptg(jj+2) = itab(ixtg(2,n))
210 nptg(jj+3) = itab(ixtg(3,n))
211 nptg(jj+4) = itab(ixtg(4,n))
212 nptg(jj+5) = ipart(4,iprt)
213 nptg(jj+6) = nint(gbuf%OFF(i))
216 IF (mlw /= 0 .AND. mlw /= 13)
THEN
218 thktg(ii) = gbuf%THK(i)
228 dynain_data%DYNAIN_NUMELTG =dynain_data%DYNAIN_NUMELTG+1
235 betatg(ii) = (hundred80*acos(gbuf%BETAORTH(i)))/pi
242 dynain_data%DYNAIN_NUMELTG_G=0
243 CALL spmd_iget_partn_sta(7,dynain_data%DYNAIN_NUMELTG,dynain_data%DYNAIN_NUMELTG_G,lengtg,nptg,
244 . iadg,npglobtg,dynain_indxtg)
259 DO n=1,dynain_data%DYNAIN_NUMELC_G
261 clef(1,n)=npglobc(8*(n-1)+8)
262 clef(2,n)=npglobc(8*(n-1)+1)
264 CALL my_orders(0,work,clef,dynain_indxc,dynain_data%DYNAIN_NUMELC_G,2)
266 DO n=1,dynain_data%DYNAIN_NUMELTG_G
268 clef(1,n)=npglobtg(7*(n-1)+7)
269 clef(2,n)=npglobtg(7*(n-1)+1)
271 CALL my_orders(0,work,clef,dynain_indxtg,dynain_data%DYNAIN_NUMELTG_G,2)
275 DO n=1,dynain_data%DYNAIN_NUMELC_G
279 igtyp = npglobc(jj+8)
283 IF(igtyp/=igtyp0)
THEN
285 IF(dynain_data%ZIPDYNAIN==0)
THEN
286 WRITE(iudynain,
'(A)')
'*ELEMENT_SHELL_THICKNESS'
287 WRITE(iudynain,
'(A)')
288 .
'$SHELLID PART_ID NOD1 NOD2 NOD3 NOD4'
289 WRITE(iudynain,
'(A)')
290 .
'$ THIC1 THIC2 THIC3 THIC4'
292 WRITE(line,
'(A)')
'*ELEMENT_SHELL_THICKNESS'
295 .
'$SHELLID PART_ID NOD1 NOD2 NOD3 NOD4'
298 .
'$ THIC1 THIC2 THIC3 THIC4'
303 IF(dynain_data%ZIPDYNAIN==0)
THEN
304 WRITE(iudynain,
'(6I8)')
305 . npglobc(jj+1),npglobc(jj+6),
306 . npglobc(jj+2),npglobc(jj+3),npglobc(jj+4),npglobc(jj+5)
307 WRITE(iudynain,
'(1P4G16.9)')
308 . thkn,thkn,thkn,thkn
311 . npglobc(jj+1),npglobc(jj+6),
312 . npglobc(jj+2),npglobc(jj+3),npglobc(jj+4),npglobc(jj+5)
314 WRITE(line,
'(1P4G16.9)')
315 . thkn,thkn,thkn,thkn
327 DO n=1,dynain_data%DYNAIN_NUMELTG_G
331 igtyp = npglobtg(jj+7)
335 IF(dynain_data%ZIPDYNAIN==0)
THEN
336 WRITE(iudynain,
'(5I8)')
337 . npglobtg(jj+1),npglobtg(jj+5),
338 . npglobtg(jj+2),npglobtg(jj+3),npglobtg(jj+4)
339 WRITE(iudynain,
'(1P3G16.9)')
343 . npglobtg(jj+1),npglobtg(jj+5),
344 . npglobtg(jj+2),npglobtg(jj+3),npglobtg(jj+4)
346 WRITE(line,
'(1P3G16.9)')
362 DO n=n4shell,dynain_data%DYNAIN_NUMELC_G
366 igtyp = npglobc(jj+8)
371 IF(igtyp/=igtyp0)
THEN
373 IF(dynain_data%ZIPDYNAIN==0)
THEN
374 WRITE(iudynain,
'(A)')
'*ELEMENT_SHELL_THICKNESS_BETA'
375 WRITE(iudynain,
'(A)')
376 .
'$SHELLID PART_ID NOD1 NOD2 NOD3 NOD4'
377 WRITE(iudynain,
'(A)')
378 .
'$ THIC1 THIC2 THIC3 THIC4 BETA'
380 WRITE(line,
'(A)')
'*ELEMENT_SHELL_THICKNESS_BETA'
383 . '$shellid part_id nod1 nod2 nod3 nod4
'
384 CALL STRS_TXT50(LINE,100)
386 . '$ thic1 thic2 thic3 thic4 beta
'
387 CALL STRS_TXT50(LINE,100)
392 IF(DYNAIN_DATA%ZIPDYNAIN==0) THEN
393 WRITE(IUDYNAIN,'(6i8)
')
394 . NPGLOBC(JJ+1),NPGLOBC(JJ+6),
395 . NPGLOBC(JJ+2),NPGLOBC(JJ+3),NPGLOBC(JJ+4),NPGLOBC(JJ+5)
396 WRITE(IUDYNAIN,'(1p5g16.9)
')
397 . THKN,THKN,THKN,THKN,BETA
400 . NPGLOBC(JJ+1),NPGLOBC(JJ+6),
401 . NPGLOBC(JJ+2),NPGLOBC(JJ+3),NPGLOBC(JJ+4),NPGLOBC(JJ+5)
402 CALL STRS_TXT50(LINE,100)
403 WRITE(LINE,'(1p5g16.9)
')
404 . THKN,THKN,THKN,THKN,BETA
405 CALL STRS_TXT50(LINE,100)
411 DO N=N3SHELL,DYNAIN_DATA%DYNAIN_NUMELTG
418 IF(DYNAIN_DATA%ZIPDYNAIN==0) THEN
419 WRITE(IUDYNAIN,'(5i8)
')
420 . NPGLOBTG(JJ+1),NPGLOBTG(JJ+5),
421 . NPGLOBTG(JJ+2),NPGLOBTG(JJ+3),NPGLOBTG(JJ+4)
422 WRITE(IUDYNAIN,'(1p3g16.9,16x,1pg16.9)
')
423 . THKN,THKN,THKN,BETA
426 . npglobtg(jj+1),npglobtg(jj+5),
427 . npglobtg(jj+2),npglobtg(jj+3),npglobtg(jj+4)
429 WRITE(line,
'(1P3G16.9,16X,1PG16.9)')
430 . thkn,thkn,thkn,beta
442 DEALLOCATE(npc,nptg,npglobc,npglobtg,clef,thkc,thktg,thkc0,thktg0,betac,betatg,betac0,betatg0)