51 SUBROUTINE gendynain(X ,ELBUF_TAB, BUFEL ,IXC ,IXTG ,
52 2 IPARG ,IPM , IGEO ,ITAB ,IPART ,
53 3 PM ,GEO , IPARTC ,IPARTTG ,LENG ,
54 4 LENGC ,LENGTG , WEIGHT ,NODGLOB ,THKE ,
55 5 NPBY ,LPBY , STACK ,DRAPE_SH4N ,DRAPE_SH3N ,
56 6 DYNAIN_DATA,DRAPEG ,MAT_PARAM)
67 use element_mod ,
only : nixc,nixtg
71#include "implicit_f.inc"
86 . IXC(NIXC,*),IXTG(NIXTG,*),(*),IGEO(*),
87 . ITAB(*) ,IPART(LIPART1,*) ,IPARTC(*) ,IPARTTG(*),
88 . WEIGHT(*), NODGLOB(*), NPBY(NNPBY,*), LPBY(*)
89 INTEGER LENG,LENGC,LENGTG
92 . pm(npropm,*), geo(npropg,*) ,thke(*)
93 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
94 TYPE (STACK_PLY) :: STACK
95 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE),DRAPE_SH3N(NUMELTG_DRAPE)
96 TYPE (DRAPEG_) :: DRAPEG
97 TYPE (DYNAIN_DATABASE),
INTENT(INOUT) :: DYNAIN_DATA
98 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
102 CHARACTER CHSTAT*4, FILNAM*100, T10*10, MES*40
103 INTEGER FILEN, I, IERR, J, N
104 INTEGER SIZLOC, SIZP0
105 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: ITABG, NODTAG ,DYNAIN_INDXC ,
109 . ,
DIMENSION(:),
ALLOCATABLE :: wa,wap0
111 INTEGER :: LEN_TMP_NAME
112 CHARACTER(len=2148) :: TMP_NAME
121 IF(dynain_data%IDYNAINF>=10000)dynain_data%IDYNAINF=1
122 WRITE(chstat,
'(I4.4)')dynain_data%IDYNAINF
123 IF(dynain_data%ZIPDYNAIN==0)
THEN
124 filnam=rootnam(1:rootlen)//
'_'//chstat//
'.dynain'
129 OPEN(unit=iudynain,file=tmp_name(1:len_tmp_name),access=
'SEQUENTIAL',form=
'FORMATTED',status=
'UNKNOWN')
130 WRITE(iudynain,
'(2A)')
'$RADIOSS DYNAIN FILE ',filnam(1:filen)
133 filnam=rootnam(1:rootlen)//
'_'//chstat//
'.dynain'
138 ctext(i)=ichar(tmp_name(i:i))
142 CALL open_c(ctext,len_tmp_name,6)
143 WRITE(line,
'(2A)')
'$RADIOSS DYNAIN FILE ',filnam(1:filen)
153 ALLOCATE(nodtag(numnod),stat=ierr)
154 ALLOCATE(itabg(leng),stat=ierr)
155 ALLOCATE(dynain_indxc(2*lengc),stat=ierr)
156 ALLOCATE(dynain_indxtg(2*lengtg),stat=ierr)
165 dynain_data%DYNAIN_NUMELC =0
166 dynain_data%DYNAIN_NUMELTG =0
171 . ixtg ,ipartc ,iparttg ,dynain_data ,
172 . nodtag ,dynain_indxc,dynain_indxtg,iparg ,
173 . elbuf_tab,thke ,ipart )
174 dynain_data%DYNAIN_NUMELC_G =dynain_data%DYNAIN_NUMELC
175 dynain_data%DYNAIN_NUMELTG_G =dynain_data%DYNAIN_NUMELTG
179 . ixtg ,ipartc ,iparttg ,dynain_data ,
180 . nodtag ,dynain_indxc,dynain_indxtg,iparg ,
181 . elbuf_tab,thke ,lengc ,lengtg ,ipart )
191 IF (nodtag(n)/=0)
THEN
192 nodtag(npby(1,i)) = 1
198 CALL dynain_node(x,numnod,itab,itabg,leng,nodglob,weight,nodtag,dynain_data)
201 CALL dynain_size_c(iparg ,elbuf_tab, sizp0 ,sizloc ,dynain_data )
208 ALLOCATE(wa(sizloc),stat=ierr)
213 CALL ancmsg(msgid=252,anmode=aninfo,
220 ALLOCATE(wap0(sizp0),stat=ierr)
222 CALL ancmsg(msgid=252,anmode=aninfo,
231 IF(dynain_data%DYNAIN_C(4)==1)
THEN
233 1 elbuf_tab ,iparg ,igeo ,ixc ,
234 2 ixtg ,wa ,wap0 ,ipartc,iparttg,
235 3 dynain_data,dynain_indxc,dynain_indxtg,sizp0 ,
236 4 geo ,stack ,drape_sh4n ,drape_sh3n,x ,
237 5 thke , drapeg ,nummat ,mat_param )
241 IF(dynain_data%DYNAIN_C(5)==1)
THEN
243 1 elbuf_tab ,iparg ,ipm ,igeo ,ixc ,
244 2 ixtg ,wa ,wap0 ,ipartc,iparttg,
245 3 dynain_data,dynain_indxc,dynain_indxtg,sizp0 ,
246 4 geo ,stack ,drape_sh4n ,drape_sh3n,x ,
252 IF(sizloc >= 1)
DEALLOCATE(wa)
253 IF(sizp0 >= 1)
DEALLOCATE(wap0)
257 DEALLOCATE(nodtag,itabg,dynain_indxc,dynain_indxtg)
262 IF(dynain_data%ZIPDYNAIN==0)
THEN
263 WRITE(iudynain,
'(A)')
'*END '
270 WRITE (iout,1000) filnam(1:filen)
271 WRITE (istdo,1000) filnam(1:filen)
275 1000
FORMAT (4x,
' DYNAIN FILE:',1x,a,
' WRITTEN')
subroutine gendynain(x, elbuf_tab, bufel, ixc, ixtg, iparg, ipm, igeo, itab, ipart, pm, geo, ipartc, iparttg, leng, lengc, lengtg, weight, nodglob, thke, npby, lpby, stack, drape_sh4n, drape_sh3n, dynain_data, drapeg, mat_param)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)