73 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
74 3 IXR ,IXTG ,IPARG ,PM ,IGEO ,
75 4 MS ,CONT ,ITAB ,PARTSAV,FINT ,
76 5 FEXT ,TANI ,EANI ,ANIN ,IPART ,
77 6 VR ,ELBUF_TAB ,DD_IAD,WEIGHT,
78 7 IPM ,KXSP ,SPBUF ,NODGLOB,LENG ,
79 8 FOPT ,NOM_OPT ,NPBY ,FNCONT ,FTCONT,
80 9 GEO ,THKE ,STACK ,DRAPE_SH4N, DRAPE_SH3N,
89 USE output_mod ,
ONLY : output_
93#include "implicit_f.inc"
100#include "com08_c.inc"
101#include "com09_c.inc"
102#include "param_c.inc"
103#include "units_c.inc"
104#include "scr03_c.inc"
105#include "scr11_c.inc"
106#include "scr14_c.inc"
107#include "scr16_c.inc"
108#include "scr17_c.inc"
109#include "chara_c.inc"
112#include "filescount_c.inc"
116 INTEGER IPARG(*),IPART(LIPART1,*),
117 . IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*),(NIXTG,*),
118 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),ITAB(*),
119 . WEIGHT(*), DD_IAD(*),IPM(*),IGEO(*),KXSP(NISP,*),
120 . LENG,NODGLOB(*), NOM_OPT(*), NPBY(*)
122 . X(*), D(*), V(*), VR(*), A(*),
123 . PM(,*), MS(*),ANIN(*),
124 . CONT(*), PARTSAV(*),FINT(*),FEXT(*),TANI(6,*),(*),
125 . spbuf(*), fopt(*), fncont(3,*), ftcont(3,*),geo(*),thke(*)
126 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
128 TYPE(DRAPE_) :: (NUMELC_DRAPE), DRAPE_SH3N(NUMELTG_DRAPE)
129 TYPE(DRAPEG_) :: DRAPEG
130 TYPE(output_),
INTENT(INOUT) :: OUTPUT
134 CHARACTER CHOUTP*4,FILNAM*100,T10*10,MES*40,VAR_CHAR*11,CHAR_JJ*2,
136 INTEGER FILEN,I,INNODA,J,JJ
137 INTEGER LENR,SIZLOC,SIZP0,SIZP0_95_96
138 INTEGER I161,I16A,I16B,I16C,I16D,I16E,I16F,I16G,I16H,I16I
139 INTEGER SIZWR_CT(3),SIZP0_CT(3),SIZLOC_CT(3),
140 . SIZWR_CS(2),SIZP0_CS(2),SIZLOC_CS(2),
141 . SIZWR_SS(2),SIZP0_SS(2),SIZLOC_SS(2),
142 . SIZWR_ST(3),SIZP0_ST(3),SIZLOC_ST(3)
144 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SIZLOC_WRITE
146 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITABG
147 INTEGER :: LEN_TMP_NAME
148 CHARACTER(len=2148) :: TMP_NAME
150 ALLOCATE(ITABG(LENG))
152 i16a=i161+lnopt1*nrbody0
153 i16b=i16a+lnopt1*naccelm
154 i16c=i16b+lnopt1*nvolu
155 i16d=i16c+lnopt1*(ninter+nintsub)
156 i16e=i16d+lnopt1*nrwall
158 i16g=i16f+lnopt1*njoint
159 i16h=i16g+lnopt1*nsect
160 i16i=i16h+lnopt1*nlink
166 IF(ioutp>=1000)ioutp=1
167 WRITE(choutp,
'(I3.3)')ioutp
168 filnam=rootnam(1:rootlen)//
'Y'//choutp
171 IF(ioutp>=10000)ioutp=1
172 WRITE(choutp,
'(I4.4)')ioutp
173 filnam=rootnam(1:rootlen)//
'_'//choutp//
'.sty'
178 OPEN(unit=iugeo,file=tmp_name(1:len_tmp_name),
179 . access=
'SEQUENTIAL',
180 . form=
'FORMATTED',status=
'UNKNOWN')
184 WRITE(iugeo,
'(2A)')
'#RADIOSS OUTPUT FILE V21 ',
189 WRITE(iugeo,
'(A)')
'/GLOBAL '
190 WRITE(iugeo,
'(A)')
' '
191 WRITE(iugeo,
'(A)')
'#FORMAT: (1P5E16.9)'
192 WRITE(iugeo,
'(2A)')
'# TIME INTERNAL_ENERGY',
193 .
' KINETIC_ENERGY ROT_KINE_ENERGY EXTE_FORCE_WORK'
194 WRITE(iugeo,
'(1P5E16.9)') tt,enint,encin,enrot,output%TH%WFEXT
199 CALL outp_mt(pm,npart,partsav,ipart,ipm)
208 . itabg,leng,nodglob,weight)
210 IF(outp_v(1) == 1)
CALL outp_n_v(
'VELOCITY ',
213 . itabg,leng,nodglob,weight)
215 IF(outp_v(2) == 1)
CALL outp_n_v(
'DISPLACEME',
218 . itabg,leng,nodglob,weight)
220 IF(outp_v(3) == 1)
CALL outp_n_v(
'ACCELERATI',
223 . itabg,leng,nodglob,weight)
225 IF(outp_v(4) == 1)
CALL outp_n_vc(
'CONT_FORCE',
226 .
' Contact Forces ',
227 . 20,cont,numnod,itab,
228 . itabg,leng,nodglob,weight)
230 IF(outp_v(5) == 1)
CALL outp_n_v(
'INTE_FORCE',
231 .
' Internal Forces ',
232 . 20,fint,numnod,itab,
233 . itabg,leng,nodglob,weight)
235 IF(outp_v(6) == 1)
CALL outp_n_v(
'EXTE_FORCE',
236 .
' External Forces ',
237 . 20,fext,numnod,itab,
238 . itabg,leng,nodglob,weight)
240 IF(outp_v(9) == 1 .AND. (idrot==1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0 ) .AND. iroddl/=0)
242 .
' Rotational Velocity ',
244 . itabg,leng,nodglob,weight)
246 IF(outp_v(12) == 1)
THEN
248 .
' Contact Pressure from Normal Contact Forces ',
249 . 50,fncont,numnod,itab,
250 . itabg,leng,nodglob,weight)
252 .
' Contact Pressure from Tangential Contact Forces ',
253 . 50,ftcont,numnod,itab,
254 . itabg,leng,nodglob,weight)
262 IF(outp_n(1) == 1)
CALL outp_no(
'NODAL_DT ',
263 .
' Nodal Time Step '
264 . 20,anin,numnod,itab,innoda,
265 . itabg,leng,nodglob,weight)
267 IF(outp_n(1)+anim_n(1)>=1)
268 . innoda=innoda+numnod
270 IF(outp_n(2) == 1)
CALL outp_no(
'NOD_ADMAS ',
272 . 20,anin,numnod,itab,innoda,
273 . itabg,leng,nodglob,weight)
275 IF(outp_n(2)+anim_n(2)>=1)
276 . innoda=innoda+numnod
278 IF(outp_n(3) == 1)
CALL outp_no(
'NOD_ADINER',
280 . 20,anin,numnod,itab,innoda,
281 . itabg,leng,nodglob,weight)
290 CALL outp_arsz_ss(iparg,dd_iad,ipm,ixs,sizp0_ss,sizloc_ss
292 ALLOCATE(sizloc_write(2*nspgroup+2))
293 CALL count_arsz_ss(iparg,dd_iad,ipm,ixs,sizloc_ss,sizloc_write)
294 sizp0_ss(:)=sizloc_ss(:)
297 sizwr_ss(1) =
max(sizwr_ss(1),sizloc_write(i))
298 sizwr_ss(2) =
max(sizwr_ss(2),sizloc_write(nspgroup+i))
300 sizwr_ss(1) = sizwr_ss(1)+6
301 sizwr_ss(2) = sizwr_ss(2)+6
302 DEALLOCATE(sizloc_write)
304 IF(outp_ss(1) == 1)
CALL outp_s_s( 1,
'OFF ',
305 .
' Delete flag (1.0:On 0.0:Off) '
306 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
308 IF(outp_ss(2) == 1)
CALL outp_s_s(10,'epsp
',
310 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(1),SIZP0_SS(1),SIZWR_SS(1))
312 IF(OUTP_SS(3) == 1) CALL OUTP_S_S( 3,'ener
',
313 . ' internal specific energy
'
314 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(1),SIZP0_SS(1),SIZWR_SS(1))
316 IF(OUTP_SS(4) == 1) CALL OUTP_S_S( 4,'dens
',
318 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(1),SIZP0_SS(1),SIZWR_SS(1))
320 IF(OUTP_SS(5) == 1) CALL OUTP_S_S(11,'temp
',
322 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(1),SIZP0_SS(1),SIZWR_SS(1))
324 IF(OUTP_SS(6) == 1) CALL OUTP_S_S( 2,'pres
',
326 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(1),SIZP0_SS(1),SIZWR_SS(1))
328 IF(OUTP_SS(7) == 1) CALL OUTP_S_S(-2,'vonm
',
329 . ' von mises stress
'
330 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(1),SIZP0_SS(1),SIZWR_SS(1))
332 IF(OUTP_SS(25) == 1) CALL OUTP_S_S(25,'hour
',
333 . ' hourglass specific energy
'
334 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(1),SIZP0_SS(1),SIZWR_SS(1))
336 IF(OUTP_SS(20) == 1) CALL OUTP_S_S(20,'user1
',
337 . ' user variable 1
'
338 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(1),SIZP0_SS(1),SIZWR_SS(1))
340 IF(OUTP_SS(21) == 1) CALL OUTP_S_S(21,'user2
',
341 . ' user variable 2
'
342 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(1),SIZP0_SS(1),SIZWR_SS(1))
344 IF(OUTP_SS(22) == 1) CALL OUTP_S_S(22,'user3
',
345 . ' user variable 3
'
346 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(1),SIZP0_SS(1),SIZWR_SS(1))
348 IF(OUTP_SS(23) == 1) CALL OUTP_S_S(23,'user4
',
349 . ' user variable 4
'
350 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(1),SIZP0_SS(1),SIZWR_SS(1))
352 IF(OUTP_SS(24) == 1) CALL OUTP_S_S(24,'user5
',
353 . ' user variable 5
'
354 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(1),SIZP0_SS(1),SIZWR_SS(1))
356 IF(OUTP_SS(26) == 1)CALL OUTP_S_S(26,'users
',
357 . ' all user variable
'
358 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(2),SIZP0_SS(2),SIZWR_SS(2))
362 IF(OUTP_SS(27) == 1)CALL OUTP_S_S(26,'eq stress
',
363 . ' equivalent stress
'
364 . ,ELBUF_TAB,IPARG,EANI,IXS, IPM,DD_IAD,SIZLOC_SS(2),SIZP0_SS(2),SIZWR_SS(2))
370 CALL OUTP_ARSZ_CS(IPARG,IXC,IXTG,IGEO,IPM,DD_IAD,
371 . SIZP0_CS,SIZLOC_CS,SIZWR_CS)
373 ALLOCATE(SIZLOC_WRITE(2*NSPGROUP+2))
374 CALL COUNT_ARSZ_CS(IPARG,IXC,IXTG,IGEO,IPM,DD_IAD,
375 . SIZLOC_CS,SIZLOC_WRITE)
376 SIZP0_CS(1:2)=SIZLOC_CS(1:2)+6
379 SIZWR_CS(1) = MAX(SIZWR_CS(1),SIZLOC_WRITE(I))
380 SIZWR_CS(2) = MAX(SIZWR_CS(2),SIZLOC_WRITE(NSPGROUP+I))
382 SIZWR_CS(1) = SIZWR_CS(1)+6
383 SIZWR_CS(2) = SIZWR_CS(2)+6
384 DEALLOCATE(SIZLOC_WRITE)
387 IF (OUTP_CS(1) == 1) CALL OUTP_C_S( 6,'off
',
388 . ' delete flag (1.0:on 0.0:off)
'
389 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,
390 . IXC ,IXTG ,DD_IAD,SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1))
392 IF (OUTP_CS(2) == 1) THEN
393 CALL OUTP_C_S(15,'epsp
',
395 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,SIZLOC_CS(1),
396 . SIZP0_CS(1),THKE,SIZWR_CS(1) )
398 CALL OUTP_C_S(-15,'epsp_max
',
399 . ' maximum plastic strain
'
400 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,SIZLOC_CS(1),
401 . SIZP0_CS(1),THKE,SIZWR_CS(1) )
405 IF (OUTP_CS(3) == 1) CALL OUTP_C_S( 5,'ener
',
406 . ' internal energy
'
407 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,
408 . IXC ,IXTG ,DD_IAD,SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1) )
410 IF (OUTP_CS(4) == 1) CALL OUTP_C_S( 3,'thick
',
412 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,
413 . IXC ,IXTG ,DD_IAD,SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1) )
415 IF (OUTP_CS(7) == 1) CALL OUTP_C_S( 1,'vonm
',
416 . ' membrane von mises stress
'
417 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,
418 . IXC ,IXTG ,DD_IAD,SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1))
420 IF (OUTP_CS(25) == 1) CALL OUTP_C_S(25,'hour
',
421 . ' hourglass energy
'
422 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,
423 . IXC ,IXTG ,DD_IAD,SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1))
425 IF (OUTP_CS(20) == 1) THEN
426 CALL OUTP_C_S(20,'user1
',
427 . ' user variable 1
'
428 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
429 . SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1) )
431 CALL OUTP_C_S(-20,'user1_max
',
432 . ' maximum user variable 1
'
433 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
434 . SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1))
438 IF (OUTP_CS(21) == 1) THEN
439 CALL OUTP_C_S(21,'user2
',
440 . ' user variable 2
'
441 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
442 . SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1) )
444 CALL OUTP_C_S(-21,'user2_max
',
445 . ' maximum user variable 2
'
446 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
447 . SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1) )
451 IF (OUTP_CS(22) == 1) THEN
452 CALL OUTP_C_S(22,'user3
',
453 . ' user variable 3
'
454 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
455 . SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1))
457 CALL OUTP_C_S(-22,'user3_max
',
458 . ' maximum user variable 3
'
459 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
460 . SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1) )
464 IF (OUTP_CS(23) == 1) THEN
465 CALL OUTP_C_S(23,'user4
',
466 . ' user variable 4
'
467 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
468 . SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1) )
470 CALL OUTP_C_S(-23,'user4_max
',
471 . ' maximum user variable 4
'
472 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
473 . SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1) )
477 IF (OUTP_CS(24) == 1) THEN
478 CALL OUTP_C_S(24,'user5
',
479 . ' user variable 5
'
480 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
481 . SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1) )
483 CALL OUTP_C_S(-24,'user5_max
',
484 . ' maximum user variable 5
'
485 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
486 . SIZLOC_CS(1),SIZP0_CS(1),THKE,SIZWR_CS(1) )
490 IF (OUTP_CS(26) == 1)CALL OUTP_C_S(26,'users
',
491 . ' all user variables
'
492 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
493 . SIZLOC_CS(2),SIZP0_CS(2),THKE,SIZWR_CS(2) )
496 write(CHAR_JJ,'(i2.2)
')JJ
497 VAR_CHAR = 'user
'//CHAR_JJ//'_full
'
498 TITRE = ' user variable
'//CHAR_JJ//' '
499 IF(OUTP_CS(J) == 1)CALL OUTP_C_S(J,VAR_CHAR,
501 . ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
502 . SIZLOC_CS(2),SIZP0_CS(2),THKE,SIZWR_CS(2) )
507 IF (OUTP_CS(87) == 1) CALL OUTP_C_S(87,'eq stress
',
508 . ' membrane equivalent stress
'
509 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,
510 . IXC ,IXTG ,DD_IAD,SIZLOC_CS(2),SIZP0_CS(2),THKE,SIZWR_CS(2) )
515 CALL OUTP_ARSZ_SPS(IPARG,DD_IAD,SIZLOC,SIZP0,SIZW_P0)
517 ALLOCATE(SIZLOC_WRITE(NSPGROUP+1))
518 CALL COUNT_ARSZ_SPS(IPARG,DD_IAD,SIZLOC,SIZLOC_WRITE)
522 SIZW_P0 = MAX(SIZW_P0,SIZLOC_WRITE(I))
524 SIZW_P0 = SIZW_P0 + 6
525 DEALLOCATE(SIZLOC_WRITE)
528 IF(OUTP_SPS(1) == 1) CALL OUTP_SP_S( 1,'off
',
529 . ' delete flag(1.0:on 0.0:off)
'
530 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
532 IF(OUTP_SPS(2) == 1) CALL OUTP_SP_S(10,'epsp
',
534 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
536 IF(OUTP_SPS(3) == 1) CALL OUTP_SP_S( 3,'ener
',
537 . ' internal specific energy
'
538 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
540 IF(OUTP_SPS(4) == 1) CALL OUTP_SP_S( 4,'dens
',
542 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
544 IF(OUTP_SPS(5) == 1) CALL OUTP_SP_S(11,'temp
',
546 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
548 IF(OUTP_SPS(6) == 1) CALL OUTP_SP_S( 2,'pres
',
550 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
552 IF(OUTP_SPS(7) == 1) CALL OUTP_SP_S(-2,'vonm
',
553 . ' von mises stress
'
554 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
556 IF(OUTP_SPS(25) == 1) CALL OUTP_SP_S(25,'slen ',
557 . ' smoothing length
'
558 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
560 IF(OUTP_SPS(20) == 1) CALL OUTP_SP_S(20,'user1
',
561 . ' user variable 1
'
562 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
564 IF(OUTP_SPS(21) == 1) CALL OUTP_SP_S(21,'user2
',
565 . ' user variable 2
'
566 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
568 IF(OUTP_SPS(22) == 1) CALL OUTP_SP_S(22,'user3
',
569 . ' user variable 3
'
570 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
572 IF(OUTP_SPS(23) == 1) CALL OUTP_SP_S(23,'user4
',
573 . ' user variable 4
'
574 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
576 IF(OUTP_SPS(24) == 1) CALL OUTP_SP_S(24,'user5
',
577 . ' user variable 5
'
578 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
582 IF(OUTP_SPS(26) == 1) CALL OUTP_SP_S(24,'eq stress
',
583 . ' equivalent stress
'
584 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
589 CALL OUTP_ARSZ_ST(IPARG,DD_IAD,SIZLOC_ST,SIZWR_ST,SIZP0_ST)
593 ALLOCATE( SIZLOC_WRITE(3*NSPGROUP+3) )
594 CALL COUNT_ARSZ_ST(IPARG,DD_IAD,SIZLOC_ST,SIZLOC_WRITE)
595 SIZP0_ST(1:3) = SIZLOC_WRITE(3*NSPGROUP+1:3*NSPGROUP+3)+8
598 SIZWR_ST(1) = MAX(SIZWR_ST(1),SIZLOC_WRITE(I))
599 SIZWR_ST(2) = MAX(SIZWR_ST(2),SIZLOC_WRITE(NSPGROUP+I))
600 SIZWR_ST(3) = MAX(SIZWR_ST(3),SIZLOC_WRITE(2*NSPGROUP+I))
602 SIZWR_ST(1:3)= SIZWR_ST(1:3)+8
603 DEALLOCATE( SIZLOC_WRITE )
606 IF(OUTP_ST(1) == 1) CALL OUTP_S_T( 2,'stress
',
608 . ELBUF_TAB,IPARG,DD_IAD,SIZLOC_ST(1),SIZP0_ST(1),SIZWR_ST(1))
610 IF(OUTP_ST(2) == 1) CALL OUTP_S_TT( 2,'str_ful
',
611 . ' full stress tensor + plastic strain
',
612 . ELBUF_TAB,IPARG,DD_IAD,IPM, IXS,
613 . SIZLOC_ST(2),SIZP0_ST(2),SIZWR_ST(2))
615 IF(OUTP_ST(3) == 1) CALL OUTP_S_TT( 3,'strain_ful
',
616 . ' full strain tensor
',
617 . ELBUF_TAB,IPARG,DD_IAD,IPM, IXS,
618 . SIZLOC_ST(3),SIZP0_ST(3),SIZWR_ST(3))
623 CALL OUTP_ARSZ_CT(IPARG,DD_IAD,SIZLOC_CT,SIZP0_CT,SIZWR_CT,ELBUF_TAB)
625 ALLOCATE(SIZLOC_WRITE(3*NSPGROUP+3))
626 CALL COUNT_ARSZ_CT(IPARG,DD_IAD,SIZLOC_CT,SIZLOC_WRITE,ELBUF_TAB)
627 SIZP0_CT(1)=SIZLOC_CT(1)
628 SIZP0_CT(2:3)=SIZLOC_CT(2:3)
631 SIZWR_CT(1) = MAX(SIZWR_CT(1),SIZLOC_WRITE(I))
632 SIZWR_CT(2) = MAX(SIZWR_CT(2),SIZLOC_WRITE(NSPGROUP+I))
633 SIZWR_CT(3) = MAX(SIZWR_CT(3),SIZLOC_WRITE(2*NSPGROUP+I))
635 SIZWR_CT(1) = SIZWR_CT(1) + 6
636 DEALLOCATE(SIZLOC_WRITE)
639 IF(OUTP_CT(1) == 1) CALL OUTP_C_T( 1,'stress_mem
',
640 . ' membrane stress
',
641 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
643 IF(OUTP_CT(2) == 1) CALL OUTP_C_T( 2,'stress_ben
',
644 . ' bending stress
',
645 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
647 IF(OUTP_CT(3) == 1) CALL OUTP_C_T( 3,'stress_upp
',
648 . ' upper surface stress
',
649 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
651 IF(OUTP_CT(4) == 1) CALL OUTP_C_T( 4,'stress_low
',
652 . ' lower surface stress
',
653 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
655 IF(OUTP_CT(5) == 1) CALL OUTP_C_T( 5,'strain_mem
',
656 . ' membrane strain
',
657 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
659 IF(OUTP_CT(6) == 1) CALL OUTP_C_T( 6,'strain_ben
',
660 . ' bending strain
',
661 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
663 IF(OUTP_CT(7) == 1) CALL OUTP_C_T( 7,'strain_upp
',
664 . ' upper surface strain
',
665 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
667 IF(OUTP_CT(8) == 1) CALL OUTP_C_T( 8,'strain_low
',
668 . ' lower surface strain
',
669 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
671 IF(OUTP_CT(91) == 1) CALL OUTP_C_T(91,'epsdot_mem
',
672 . ' membrane strain rate
',
673 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
675 IF(OUTP_CT(92) == 1) CALL OUTP_C_T(92,'epsdot_ben
',
676 . ' bending strain rate
',
677 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1))
679 IF(OUTP_CT(93) == 1) CALL OUTP_C_T(93,'epsdot_upp
',
680 . ' upper surface strain rate
',
681 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1))
683 IF(OUTP_CT(94) == 1) CALL OUTP_C_T(94,'epsdot_low
',
684 . ' lower surface strain rate
',
685 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
688 IF(OUTP_CT(10+I) == 1)THEN
689 WRITE(MES,'(a,i2,a)
')
690 . ' stress(layer
',I,')
'
691 WRITE(T10,'(a,i2)
')'stress_l
',I
692 CALL OUTP_C_T( 10+I,T10 ,MES,
693 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
696 IF(OUTP_CT(50+I) == 1)THEN
697 WRITE(MES,'(a,i2,a)
')
698 . ' strain(layer
',I,')
'
699 WRITE(T10,'(a,i2)
')'strain_l
',I
700 CALL OUTP_C_T( 50+I,T10 ,MES,
701 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
704 IF(OUTP_CT(100+I) == 1)THEN
705 WRITE(MES,'(a,i2,a)
')
706 . ' epsdot(layer
',I,')
'
707 WRITE(T10,'(a,i2)
')'epsdot_l
',I
708 CALL OUTP_C_T( 100+I,T10 ,MES,
709 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
712 IF(OUTP_CT(95) == 1) CALL OUTP_C_TF(95,'stress_ful
',
713 . ' full stress tensor + plastic strain
',
714 . ELBUF_TAB,IPARG ,DD_IAD,SIZLOC_CT(2),SIZP0_CT(2),THKE,GEO,
715 . IGEO ,STACK ,DRAPE_SH4N, DRAPE_SH3N,IXC ,IXTG,SIZWR_CT(2),
719 IF(OUTP_CT(96) == 1) CALL OUTP_C_TF(96,'strain_ful
',
720 . ' full strain tensor + plastic strain
',
721 . ELBUF_TAB,IPARG ,DD_IAD,SIZLOC_CT(3),SIZP0_CT(3),THKE,GEO,
722 . IGEO ,STACK ,DRAPE_SH4N, DRAPE_SH3N,IXC ,IXTG,SIZWR_CT(3),
729 CALL OUTP_ARSZ_SPT(IPARG,DD_IAD,SIZLOC,SIZP0,SIZW_P0)
731 ALLOCATE(SIZLOC_WRITE(NSPGROUP+1))
732 CALL COUNT_ARSZ_SPT(IPARG,DD_IAD,SIZLOC,SIZLOC_WRITE)
736 SIZW_P0 = MAX(SIZW_P0,SIZLOC_WRITE(I))
738 SIZW_P0 = SIZW_P0 + 6
739 DEALLOCATE(SIZLOC_WRITE)
742 IF(OUTP_SPT(1) == 1) CALL OUTP_SP_T('stress
',
744 . ELBUF_TAB,IPARG,DD_IAD,SIZLOC,SIZP0,SIZW_P0)
747 CALL OUTP_ARSZ_SPTT(IPARG,DD_IAD,SIZLOC,SIZP0,SIZW_P0)
749 ALLOCATE(SIZLOC_WRITE(NSPGROUP+1))
750 CALL COUNT_ARSZ_SPTT(IPARG,DD_IAD,SIZLOC,SIZLOC_WRITE)
754 SIZW_P0 = MAX(SIZW_P0,SIZLOC_WRITE(I))
756 DEALLOCATE(SIZLOC_WRITE)
759 IF(OUTP_SPT(2) == 1) CALL OUTP_SP_TT('str_ful
',
760 . ' full stress tensor + plastic strain
',
761 . ELBUF_TAB,IPARG,DD_IAD,IPM, KXSP,SPBUF,SIZLOC,SIZP0,SIZW_P0)
766 CALL OUTP_ARSZ_RS(IPARG,DD_IAD,SIZLOC,SIZP0,SIZW_P0)
768 ALLOCATE(SIZLOC_WRITE(NSPGROUP+1))
769 CALL COUNT_ARSZ_RS(IPARG,DD_IAD,SIZLOC,SIZLOC_WRITE)
770 SIZP0 = SIZLOC_WRITE(NSPGROUP+1)
773 SIZW_P0 = MAX(SIZW_P0,SIZLOC_WRITE(I))
775 SIZW_P0 = SIZW_P0 + 6
776 DEALLOCATE(SIZLOC_WRITE)
779 IF(OUTP_RS(1) == 1)CALL OUTP_R_S(1,'off
',
780 . ' delete flag(1.0:on 0.0:off)
'
781 . ,ELBUF_TAB,IPARG,DD_IAD,SIZLOC,SIZP0,SIZW_P0)
787 CALL OUTP_ARSZ_RT(IPARG,IGEO,GEO,IXR,DD_IAD,
788 . SIZLOC,SIZP0,SIZW_P0)
790 ALLOCATE(SIZLOC_WRITE(NSPGROUP+1))
791 CALL COUNT_ARSZ_RT(IPARG,IGEO,GEO,IXR,DD_IAD,
792 . SIZLOC,SIZLOC_WRITE)
796 SIZW_P0 = MAX(SIZW_P0,SIZLOC_WRITE(I))
798 SIZW_P0 = SIZW_P0 + 6
799 DEALLOCATE(SIZLOC_WRITE)
802 IF(OUTP_RS(2) == 1)CALL OUTP_R_T('full
',
803 . ' forces and moments
',
804 . ELBUF_TAB,IPARG,DD_IAD,IXR,IGEO,GEO,SIZLOC,SIZP0,SIZW_P0)
810 . CALL OUTP_N_V2(FOPT ,NPBY ,NOM_OPT(I16G),NOM_OPT(I16D))
816 WRITE(IUGEO,'(a)
')'/enddata
'
818 CALL FILELEN_SYS(FILNAM,FILEN, OUTPSIZE)
819 OUTPFILESIZE=OUTPFILESIZE + OUTPSIZE/1024
820 WRITE (IOUT,1000) FILNAM(1:FILEN)
821 WRITE (ISTDO,1000) FILNAM(1:FILEN)
823 1000 FORMAT (4X,' output file:
',1X,A,' written
')
subroutine genoutp(x, d, v, a, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, iparg, pm, igeo, ms, cont, itab, partsav, fint, fext, tani, eani, anin, ipart, vr, elbuf_tab, dd_iad, weight, ipm, kxsp, spbuf, nodglob, leng, fopt, nom_opt, npby, fncont, ftcont, geo, thke, stack, drape_sh4n, drape_sh3n, drapeg, output)