83
84
85
86 USE elbufdef_mod
90 USE output_mod , ONLY : output_
91 use element_mod , only : nixs,nixq,nixc,nixp,nixr,nixt,nixtg
92
93
94
95#include "implicit_f.inc"
96
97
98
99#include "com01_c.inc"
100#include "com04_c.inc"
101
102#include "com08_c.inc"
103#include "com09_c.inc"
104#include "param_c.inc"
105#include "units_c.inc"
106#include "scr03_c.inc"
107#include "scr11_c.inc"
108#include "scr14_c.inc"
109#include "scr16_c.inc"
110#include "scr17_c.inc"
111#include "chara_c.inc"
112#include "task_c.inc"
113#include "sphcom.inc"
114#include "filescount_c.inc"
115
116
117
118 INTEGER IPARG(*),IPART(LIPART1,*),
119 . IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*),IXTG(NIXTG,*),
120 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),ITAB(*),
121 . WEIGHT(*), DD_IAD(*),IPM(*),IGEO(*),KXSP(NISP,*),
122 . LENG,NODGLOB(*), NOM_OPT(*), NPBY(*)
124 . x(*), d(*), v(*), vr(*), a(*),
125 . pm(npropm,*), ms(*),
126 . cont(*), partsav(*),fint(*),fext(*),tani(6,*),eani(*),
127 . spbuf(*), fopt(*), fncont(3,*), ftcont(3,*),geo(*),thke(*)
128 TYPE (), DIMENSION(NGROUP) :: ELBUF_TAB
129 TYPE (STACK_PLY) :: STACK
130 TYPE(DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE), DRAPE_SH3N(NUMELTG_DRAPE)
131 TYPE(DRAPEG_) :: DRAPEG
132 TYPE(OUTPUT_),INTENT(INOUT) :: OUTPUT
133
134
135
136 CHARACTER CHOUTP*4,FILNAM*100,T10*10,MES*40,VAR_CHAR*11,CHAR_JJ*2,
137 . TITRE*40
138 INTEGER FILEN,I,INNODA,J,JJ
139 INTEGER SIZLOC,SIZP0
140 INTEGER I161,I16A,I16B,I16C,I16D,I16E,I16F,I16G,I16H,I16I
141 INTEGER SIZWR_CT(3),SIZP0_CT(3),SIZLOC_CT(3),
142 . SIZWR_CS(2),SIZP0_CS(2),SIZLOC_CS(2),
143 . SIZWR_SS(2),SIZP0_SS(2),SIZLOC_SS(2),
144 . SIZWR_ST(3),SIZP0_ST(3),SIZLOC_ST(3)
145 INTEGER SIZW_P0
146 INTEGER, DIMENSION(:), ALLOCATABLE :: SIZLOC_WRITE
147 INTEGER OUTPSIZE
148 INTEGER, DIMENSION(:), ALLOCATABLE :: ITABG
149 INTEGER :: LEN_TMP_NAME
150 CHARACTER(len=2148) :: TMP_NAME
151
152 ALLOCATE(itabg(leng))
153 i161=1
154 i16a=i161+lnopt1*nrbody0
155 i16b=i16a+lnopt1*naccelm
156 i16c=i16b+lnopt1*nvolu
157 i16d=i16c+lnopt1*(ninter+nintsub)
158 i16e=i16d+lnopt1*nrwall
159 i16f=i16e
160 i16g=i16f+lnopt1*njoint
161 i16h=i16g+lnopt1*nsect
162 i16i=i16h+lnopt1*nlink
163
164
165
166 IF(ispmd == 0) THEN
167 IF(irootyy == 2)THEN
168 IF(ioutp>=1000)ioutp=1
169 WRITE(choutp,'(I3.3)')ioutp
170 filnam=rootnam(1:rootlen)//'Y'//choutp
171 filen = rootlen + 4
172 ELSE
173 IF(ioutp>=10000)ioutp=1
174 WRITE(choutp,'(I4.4)')ioutp
175 filnam=rootnam(1:rootlen)//'_'//choutp//'.sty'
176 filen = rootlen + 9
177 ENDIF
180 OPEN(unit=iugeo,file=tmp_name(1:len_tmp_name),
181 . access='SEQUENTIAL',
182 . form='FORMATTED',status='UNKNOWN')
183
184
185
186 WRITE(iugeo,'(2A)')'#RADIOSS OUTPUT FILE V21 ',
187 . filnam(1:filen)
188
189
190
191 WRITE(iugeo,'(A)')'/GLOBAL '
192 WRITE(iugeo,'(A)')' '
193 WRITE(iugeo,'(A)')'#FORMAT: (1P5E16.9)'
194 WRITE(iugeo,'(2A)')'# TIME INTERNAL_ENERGY',
195 . ' KINETIC_ENERGY ROT_KINE_ENERGY EXTE_FORCE_WORK'
196 WRITE(iugeo,'(1P5E16.9)') tt,enint,encin,enrot,output%TH%WFEXT
197 ENDIF
198
199
200
201 CALL outp_mt(pm,npart,partsav,ipart,ipm)
202
203
204
205 IF (nspmd > 1)
208 . ' Coordinates ',
209 . 20,x,numnod,itab,
210 . itabg,leng,nodglob,weight)
211
212 IF(outp_v(1) == 1)
CALL outp_n_v(
'VELOCITY ',
213 . ' Velocity ',
214 . 20,v,numnod,itab,
215 . itabg,leng,nodglob,weight)
216
217 IF(outp_v(2) == 1)
CALL outp_n_v(
'DISPLACEME',
218 . ' Displacement ',
219 . 20,d,numnod,itab,
220 . itabg,leng,nodglob,weight)
221
222 IF(outp_v(3) == 1)
CALL outp_n_v(
'ACCELERATI',
223 . ' Acceleration ',
224 . 20,a,numnod,itab,
225 . itabg,leng,nodglob,weight)
226
227 IF(outp_v(4) == 1)
CALL outp_n_vc(
'CONT_FORCE',
228 . ' Contact Forces ',
229 . 20,cont,numnod,itab,
230 . itabg,leng,nodglob,weight)
231
232 IF(outp_v(5) == 1)
CALL outp_n_v(
'INTE_FORCE',
233 . ' Internal Forces ',
234 . 20,fint,numnod,itab,
235 . itabg,leng,nodglob,weight)
236
237 IF(outp_v(6) == 1)
CALL outp_n_v(
'EXTE_FORCE',
238 . ' External Forces ',
239 . 20,fext,numnod,itab,
240 . itabg,leng,nodglob,weight)
241
242 IF(outp_v(9) == 1 .AND. (idrot==1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0 ) .AND. iroddl/=0)
244 . ' Rotational Velocity ',
245 . 20,vr,numnod,itab,
246 . itabg,leng,nodglob,weight)
247
248 IF(outp_v(12) == 1) THEN
250 . ' Contact Pressure from Normal Contact Forces ',
251 . 50,fncont,numnod,itab,
252 . itabg,leng,nodglob,weight)
254 . ' Contact Pressure from Tangential Contact Forces ',
255 . 50,ftcont,numnod,itab,
256 . itabg,leng,nodglob,weight)
257 END IF
258
259
260
261
262
263 innoda=0
264 IF(outp_n(1) == 1)
CALL outp_no(
'NODAL_DT ',
265 . ' Nodal Time Step ',
266 . 20,output%DATA%SCAL_DT,numnod,itab,innoda,
267 . itabg,leng,nodglob,weight)
268
269 IF(outp_n(1)+anim_n(1)>=1)
270 . innoda=innoda+numnod
271
272 IF(outp_n(2) == 1)
CALL outp_no(
'NOD_ADMAS ',
273 . ' Added Mass ',
274 . 20,output%DATA%SCAL_DMAS,numnod,itab,0,
275 . itabg,leng,nodglob,weight)
276
277 IF(outp_n(2)+anim_n(2)>=1)
278 . innoda=innoda+numnod
279
280 IF(outp_n(3) == 1)
CALL outp_no(
'NOD_ADINER',
281 . ' Added Inertia ',
282 . 20,output%DATA%SCAL_DINER,numnod,itab,0,
283 . itabg,leng,nodglob,weight)
284
285
286
287
288
289
290
291 IF (nspmd > 1) THEN
292 CALL outp_arsz_ss(iparg,dd_iad,ipm,ixs,sizp0_ss,sizloc_ss,sizwr_ss)
293 ELSE
294 ALLOCATE(sizloc_write(2*nspgroup+2))
295 CALL count_arsz_ss(iparg,dd_iad,ipm,ixs,sizloc_ss,sizloc_write)
296 sizp0_ss(:)=sizloc_ss(:)
297 sizwr_ss(1:2) = -1
298 DO i=1,nspgroup
299 sizwr_ss(1) =
max(sizwr_ss(1),sizloc_write(i))
300 sizwr_ss(2) =
max(sizwr_ss(2),sizloc_write(nspgroup+i))
301 ENDDO
302 sizwr_ss(1) = sizwr_ss(1)+6
303 sizwr_ss(2) = sizwr_ss(2)+6
304 DEALLOCATE(sizloc_write)
305 ENDIF
306 IF(outp_ss(1) == 1)
CALL outp_s_s( 1,
'OFF ',
307 . ' Delete flag (1.0:On 0.0:Off) '
308 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
309
310 IF(outp_ss(2) == 1)
CALL outp_s_s(10,
'EPSP ',
311 . ' Plastic Strain '
312 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
313
314 IF(outp_ss(3) == 1)
CALL outp_s_s( 3,
'ENER ',
315 . ' Internal Specific Energy '
316 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
317
318 IF(outp_ss(4) == 1)
CALL outp_s_s( 4,
'DENS ',
319 . ' Density '
320 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
321
322 IF(outp_ss(5) == 1)
CALL outp_s_s(11,
'TEMP ',
323 . ' Temperature '
324 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
325
326 IF(outp_ss(6) == 1)
CALL outp_s_s( 2,
'PRES ',
327 . ' Pressure '
328 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
329
330 IF(outp_ss(7) == 1)
CALL outp_s_s(-2,
'VONM ',
331 . ' Von Mises Stress '
332 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
333
334 IF(outp_ss(25) == 1)
CALL outp_s_s(25,
'HOUR ',
335 . ' Hourglass Specific Energy '
336 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
337
338 IF(outp_ss(20) == 1)
CALL outp_s_s(20,
'USER1 ',
339 . ' User Variable 1 '
340 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
341
342 IF(outp_ss(21) == 1)
CALL outp_s_s(21,
'USER2 ',
343 . ' User Variable 2 '
344 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
345
346 IF(outp_ss(22) == 1)
CALL outp_s_s(22,
'USER3 ',
347 . ' User Variable 3 '
348 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
349
350 IF(outp_ss(23) == 1)
CALL outp_s_s(23,
'USER4 ',
351 . ' User Variable 4 '
352 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
353
354 IF(outp_ss(24) == 1)
CALL outp_s_s(24,
'USER5 ',
355 . ' User Variable 5 '
356 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(1),sizp0_ss(1),sizwr_ss(1))
357
358 IF(outp_ss(26) == 1)
CALL outp_s_s(26,
'USERS ',
359 . ' All User Variable '
360 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(2),sizp0_ss(2),sizwr_ss(2))
361
362
363
364 IF(outp_ss(27) == 1)
CALL outp_s_s(26,
'EQ stress ',
365 . ' Equivalent Stress '
366 . ,elbuf_tab,iparg,eani,ixs, ipm,dd_iad,sizloc_ss(2),sizp0_ss(2),sizwr_ss(2))
367
368
369
370
371 IF (nspmd > 1) THEN
373 . sizp0_cs,sizloc_cs,sizwr_cs)
374 ELSE
375 ALLOCATE(sizloc_write(2*nspgroup+2))
377 . sizloc_cs,sizloc_write)
378 sizp0_cs(1:2)=sizloc_cs(1:2)+6
379 sizwr_cs(1:2) = -1
380 DO i=1,nspgroup
381 sizwr_cs(1) =
max(sizwr_cs(1),sizloc_write(i))
382 sizwr_cs(2) =
max(sizwr_cs(2),sizloc_write(nspgroup+i))
383 ENDDO
384 sizwr_cs(1) = sizwr_cs(1)+6
385 sizwr_cs(2) = sizwr_cs(2)+6
386 DEALLOCATE(sizloc_write)
387 ENDIF
388
389 IF (outp_cs(1) == 1)
CALL outp_c_s( 6,
'OFF ',
390 . ' Delete flag (1.0:On 0.0:Off) '
391 . ,elbuf_tab,iparg,eani ,ipm ,igeo,
392 . ixc ,ixtg ,dd_iad,sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1))
393
394 IF (outp_cs(2) == 1) THEN
396 . ' Plastic Strain '
397 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,sizloc_cs(1),
398 . sizp0_cs(1),thke,sizwr_cs(1) )
399
401 . ' Maximum Plastic Strain '
402 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,sizloc_cs(1
403 . sizp0_cs(1),thke,sizwr_cs(1) )
404
405 ENDIF
406
407 IF (outp_cs(3) == 1)
CALL outp_c_s( 5,
'ENER ',
408 . ' Internal Energy '
409 . ,elbuf_tab,iparg,eani ,ipm ,igeo,
410 . ixc ,ixtg ,dd_iad,sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1) )
411
412 IF (outp_cs(4) == 1)
CALL outp_c_s( 3,
'THICK ',
413 . ' Thickness '
414 . ,elbuf_tab,iparg,eani ,ipm ,igeo,
415 . ixc ,ixtg ,dd_iad,sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1) )
416
417 IF (outp_cs(7) == 1)
CALL outp_c_s( 1,
'VONM ',
418 . ' Membrane Von Mises Stress '
419 . ,elbuf_tab,iparg,eani ,ipm ,igeo,
420 . ixc ,ixtg ,dd_iad,sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1
421
422 IF (outp_cs(25) == 1)
CALL outp_c_s(25,
'HOUR ',
423 . ' Hourglass Energy '
424 . ,elbuf_tab,iparg,eani ,ipm ,igeo,
425 . ixc ,ixtg ,dd_iad,sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1))
426
427 IF (outp_cs(20) == 1) THEN
429 . ' User Variable 1 '
430 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,
431 . sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1) )
432
434 . ' Maximum User Variable 1 '
435 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,
436 . sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1))
437
438 ENDIF
439
440 IF (outp_cs(21) == 1) THEN
442 . ' User Variable 2 '
443 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,
444 . sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1) )
445
447 . ' Maximum User Variable 2 '
448 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,
449 . sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1)
450
451 ENDIF
452
453 IF (outp_cs(22) == 1) THEN
455 . ' User Variable 3 '
456 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,
457 . sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1))
458
460 . ' Maximum User Variable 3 '
461 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,
462 . sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs
463
464 ENDIF
465
466 IF (outp_cs(23) == 1) THEN
468 . ' User Variable 4 '
469 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,
470 . sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1) )
471
473 . ' Maximum User Variable 4 '
474 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,
475 . sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1) )
476
477 ENDIF
478
479 IF (outp_cs(24) == 1) THEN
481 . ' User Variable 5 '
482 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,
483 . sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1) )
484
486 . ' Maximum User Variable 5 '
487 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,
488 . sizloc_cs(1),sizp0_cs(1),thke,sizwr_cs(1) )
489
490 ENDIF
491
492 IF (outp_cs(26) == 1)
CALL outp_c_s(26,
'USERS '
493 . ' All User Variables '
494 . ,elbuf_tab,iparg,eani ,ipm ,igeo,ixc ,ixtg ,dd_iad,
495 . sizloc_cs(2),sizp0_cs(2),thke,sizwr_cs(2) )
496 DO j = 27, 86
497 jj = j - 26
498 write(char_jj,'(i2.2)')JJ
499 VAR_CHAR = 'user'//CHAR_JJ//'_full'
500 TITRE = ' user variable'//CHAR_JJ//' '
501 IF(OUTP_CS(J) == 1)CALL OUTP_C_S(J,VAR_CHAR,
502 . TITRE ,
503 . ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,IXC ,IXTG ,DD_IAD,
504 . SIZLOC_CS(2),SIZP0_CS(2),THKE,SIZWR_CS(2) )
505 ENDDO
506
507
508
509 IF (OUTP_CS(87) == 1) CALL OUTP_C_S(87,'eq stress ',
510 . ' membrane equivalent stress '
511 . ,ELBUF_TAB,IPARG,EANI ,IPM ,IGEO,
512 . IXC ,IXTG ,DD_IAD,SIZLOC_CS(2),SIZP0_CS(2),THKE,SIZWR_CS(2) )
513
514
515
516 IF (NSPMD > 1) THEN
517 CALL OUTP_ARSZ_SPS(IPARG,DD_IAD,SIZLOC,SIZP0,SIZW_P0)
518 ELSE
519 ALLOCATE(SIZLOC_WRITE(NSPGROUP+1))
520 CALL COUNT_ARSZ_SPS(IPARG,DD_IAD,SIZLOC,SIZLOC_WRITE)
521 SIZP0 = SIZLOC
522 SIZW_P0 = -1
523 DO I=1,NSPGROUP
524 SIZW_P0 = MAX(SIZW_P0,SIZLOC_WRITE(I))
525 ENDDO
526 SIZW_P0 = SIZW_P0 + 6
527 DEALLOCATE(SIZLOC_WRITE)
528 ENDIF
529
530 IF(OUTP_SPS(1) == 1) CALL OUTP_SP_S( 1,'off ',
531 . ' delete flag(1.0:on 0.0:off) '
532 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
533
534 IF(OUTP_SPS(2) == 1) CALL OUTP_SP_S(10,'epsp ',
535 . ' plastic strain '
536 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
537
538 IF(OUTP_SPS(3) == 1) CALL OUTP_SP_S( 3,'ener ',
539 . ' internal specific energy '
540 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
541
542 IF(OUTP_SPS(4) == 1) CALL OUTP_SP_S( 4,'dens ',
543 . ' density '
544 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
545
546 IF(OUTP_SPS(5) == 1) CALL OUTP_SP_S(11,'temp ',
547 . ' temperature '
548 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
549
550 IF(OUTP_SPS(6) == 1) CALL OUTP_SP_S( 2,'pres ',
551 . ' pressure '
552 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
553
554 IF(OUTP_SPS(7) == 1) CALL OUTP_SP_S(-2,'vonm ',
555 . ' von mises stress '
556 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
557
558 IF(OUTP_SPS(25) == 1) CALL OUTP_SP_S(25,'slen ',
559 . ' smoothing length '
560 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
561
562 IF(OUTP_SPS(20) == 1) CALL OUTP_SP_S(20,'user1 ',
563 . ' user variable 1 '
564 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
565
566 IF(OUTP_SPS(21) == 1) CALL OUTP_SP_S(21,'user2 ',
567 . ' user variable 2 '
568 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
569
570 IF(OUTP_SPS(22) == 1) CALL OUTP_SP_S(22,'user3 ',
571 . ' user variable 3 '
572 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
573
574 IF(OUTP_SPS(23) == 1) CALL OUTP_SP_S(23,'user4 ',
575 . ' user variable 4 '
576 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
577
578 IF(OUTP_SPS(24) == 1) CALL OUTP_SP_S(24,'user5 ',
579 . ' user variable 5 '
580 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
581
582
583
584 IF(OUTP_SPS(26) == 1) CALL OUTP_SP_S(24,'eq stress ',
585 . ' equivalent stress '
586 . ,ELBUF_TAB,IPARG,EANI,DD_IAD,KXSP,IPM,SPBUF,SIZLOC,SIZP0,SIZW_P0)
587
588
589
590 IF (NSPMD > 1) THEN
591 CALL OUTP_ARSZ_ST(IPARG,DD_IAD,SIZLOC_ST,SIZWR_ST,SIZP0_ST)
592 ELSE
593 SIZP0_ST = -1
594 SIZLOC_ST = -1
595 ALLOCATE( SIZLOC_WRITE(3*NSPGROUP+3) )
596 CALL COUNT_ARSZ_ST(IPARG,DD_IAD,SIZLOC_ST,SIZLOC_WRITE)
597 SIZP0_ST(1:3) = SIZLOC_WRITE(3*NSPGROUP+1:3*NSPGROUP+3)+8
598 SIZWR_ST(1:3) = -1
599 DO I=1,NSPGROUP
600 SIZWR_ST(1) = MAX(SIZWR_ST(1),SIZLOC_WRITE(I))
601 SIZWR_ST(2) = MAX(SIZWR_ST(2),SIZLOC_WRITE(NSPGROUP+I))
602 SIZWR_ST(3) = MAX(SIZWR_ST(3),SIZLOC_WRITE(2*NSPGROUP+I))
603 ENDDO
604 SIZWR_ST(1:3)= SIZWR_ST(1:3)+8
605 DEALLOCATE( SIZLOC_WRITE )
606 ENDIF
607
608 IF(OUTP_ST(1) == 1) CALL OUTP_S_T( 2,'stress ',
609 . ' stress ',
610 . ELBUF_TAB,IPARG,DD_IAD,SIZLOC_ST(1),SIZP0_ST(1),SIZWR_ST(1))
611
612 IF(OUTP_ST(2) == 1) CALL OUTP_S_TT( 2,'str_ful ',
613 . ' full stress tensor + plastic strain ',
614 . ELBUF_TAB,IPARG,DD_IAD,IPM, IXS,
615 . SIZLOC_ST(2),SIZP0_ST(2),SIZWR_ST(2))
616
617 IF(OUTP_ST(3) == 1) CALL OUTP_S_TT( 3,'strain_ful ',
618 . ' full strain tensor ',
619 . ELBUF_TAB,IPARG,DD_IAD,IPM, IXS,
620 . SIZLOC_ST(3),SIZP0_ST(3),SIZWR_ST(3))
621
622
623
624 IF (NSPMD > 1) THEN
625 CALL OUTP_ARSZ_CT(IPARG,DD_IAD,SIZLOC_CT,SIZP0_CT,SIZWR_CT,ELBUF_TAB)
626 ELSE
627 ALLOCATE(SIZLOC_WRITE(3*NSPGROUP+3))
628 CALL COUNT_ARSZ_CT(IPARG,DD_IAD,SIZLOC_CT,SIZLOC_WRITE,ELBUF_TAB)
629 SIZP0_CT(1)=SIZLOC_CT(1)
630 SIZP0_CT(2:3)=SIZLOC_CT(2:3)
631 SIZWR_CT(1:3)=-1
632 DO I=1,NSPGROUP
633 SIZWR_CT(1) = MAX(SIZWR_CT(1),SIZLOC_WRITE(I))
634 SIZWR_CT(2) = MAX(SIZWR_CT(2),SIZLOC_WRITE(NSPGROUP+I))
635 SIZWR_CT(3) = MAX(SIZWR_CT(3),SIZLOC_WRITE(2*NSPGROUP+I))
636 ENDDO
637 SIZWR_CT(1) = SIZWR_CT(1) + 6
638 DEALLOCATE(SIZLOC_WRITE)
639 ENDIF
640
641 IF(OUTP_CT(1) == 1) CALL OUTP_C_T( 1,'stress_mem',
642 . ' membrane stress ',
643 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
644
645 IF(OUTP_CT(2) == 1) CALL OUTP_C_T( 2,'stress_ben',
646 . ' bending stress ',
647 . ELBUF_TAB,IPARG,TANI,DD_IAD,SIZLOC_CT(1),SIZP0_CT(1),SIZWR_CT(1) )
648
649 IF(OUTP_CT(3) == 1) CALL OUTP_C_T( 3,'stress_upp',
650 . ' upper surface stress ',
651 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1) )
652
653 IF(outp_ct(4) == 1)
CALL outp_c_t( 4,
'STRESS_LOW',
654 . ' Lower Surface Stress ',
655 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1) )
656
657 IF(outp_ct(5) == 1)
CALL outp_c_t( 5,
'STRAIN_MEM',
658 . ' Membrane Strain ',
659 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1) )
660
661 IF(outp_ct(6) == 1)
CALL outp_c_t( 6,
'STRAIN_BEN',
662 . ' Bending Strain ',
663 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1) )
664
665 IF(outp_ct(7) == 1)
CALL outp_c_t( 7,
'STRAIN_UPP',
666 . ' Upper Surface Strain ',
667 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1) )
668
669 IF(outp_ct(8) == 1)
CALL outp_c_t( 8,
'STRAIN_LOW',
670 . ' Lower Surface Strain ',
671 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1) )
672
673 IF(outp_ct(91) == 1)
CALL outp_c_t(91,
'EPSDOT_MEM',
674 . ' Membrane Strain Rate ',
675 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1) )
676
677 IF(outp_ct(92) == 1)
CALL outp_c_t(92,
'EPSDOT_BEN',
678 . ' Bending Strain Rate ',
679 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1))
680
681 IF(outp_ct(93) == 1)
CALL outp_c_t(93,
'EPSDOT_UPP',
682 . ' Upper Surface Strain Rate ',
683 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1))
684
685 IF(outp_ct(94) == 1)
CALL outp_c_t(94,
'EPSDOT_LOW',
686 . ' Lower Surface Strain Rate ',
687 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1) )
688
689 DO i=1,30
690 IF(outp_ct(10+i) == 1)THEN
691 WRITE(mes,'(A,I2,A)')
692 . ' Stress (layer',i,') '
693 WRITE(t10,'(A,I2)')'STRESS_L',i
695 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1) )
696 ENDIF
697
698 IF(outp_ct(50+i) == 1)THEN
699 WRITE(mes,'(A,I2,A)')
700 . ' Strain (layer',i,') '
701 WRITE(t10,'(A,I2)')'STRAIN_L',i
703 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1) )
704 ENDIF
705
706 IF(outp_ct(100+i) == 1)THEN
707 WRITE(mes,'(A,I2,A)')
708 . ' Epsdot (layer',i,') '
709 WRITE(t10,'(A,I2)')'EPSDOT_L',i
711 . elbuf_tab,iparg,tani,dd_iad,sizloc_ct(1),sizp0_ct(1),sizwr_ct(1) )
712 ENDIF
713 ENDDO
714 IF(outp_ct(95) == 1)
CALL outp_c_tf(95,
'STRESS_FUL',
715 . ' Full stress tensor + plastic strain ',
716 . elbuf_tab,iparg ,dd_iad,sizloc_ct(2),sizp0_ct(2),thke,geo,
717 . igeo ,stack ,drape_sh4n, drape_sh3n,ixc ,ixtg,sizwr_ct(2),
718 . drapeg )
719
720
721 IF(outp_ct(96) == 1)
CALL outp_c_tf(96,
'STRAIN_FUL',
722 . ' Full strain tensor + plastic strain ',
723 . elbuf_tab,iparg ,dd_iad,sizloc_ct(3),sizp0_ct(3),thke,geo,
724 . igeo ,stack ,drape_sh4n, drape_sh3n,ixc ,ixtg,sizwr_ct(3),
725 . drapeg )
726
727
728
729
730 IF (nspmd > 1) THEN
732 ELSE
733 ALLOCATE(sizloc_write(nspgroup+1))
735 sizp0 = sizloc
736 sizw_p0 = -1
737 DO i=1,nspgroup
738 sizw_p0 =
max(sizw_p0,sizloc_write(i))
739 ENDDO
740 sizw_p0 = sizw_p0 + 6
741 DEALLOCATE(sizloc_write)
742 ENDIF
743
744 IF(outp_spt(1) == 1)
CALL outp_sp_t(
'STRESS ',
745 . ' Stress ',
746 . elbuf_tab,iparg,dd_iad,sizloc,sizp0,sizw_p0)
747
748 IF (nspmd > 1) THEN
750 ELSE
751 ALLOCATE(sizloc_write(nspgroup+1))
753 sizp0 = sizloc
754 sizw_p0 = -1
755 DO i=1,nspgroup
756 sizw_p0 =
max(sizw_p0,sizloc_write(i))
757 ENDDO
758 DEALLOCATE(sizloc_write)
759 ENDIF
760
761 IF(outp_spt(2) == 1)
CALL outp_sp_tt(
'STR_FUL ',
762 . ' Full stress tensor + plastic strain ',
763 . elbuf_tab,iparg,dd_iad,ipm, kxsp,spbuf,sizloc,sizp0,sizw_p0)
764
765
766
767 IF (nspmd > 1) THEN
769 ELSE
770 ALLOCATE(sizloc_write(nspgroup+1))
772 sizp0 = sizloc_write(nspgroup+1)
773 sizw_p0 = -1
774 DO i=1,nspgroup
775 sizw_p0 =
max(sizw_p0,sizloc_write(i))
776 ENDDO
777 sizw_p0 = sizw_p0 + 6
778 DEALLOCATE(sizloc_write)
779 ENDIF
780
781 IF(outp_rs(1) == 1)
CALL outp_r_s(1,
'OFF ',
782 . ' Delete flag (1.0:On 0.0:Off) '
783 . ,elbuf_tab,iparg,dd_iad,sizloc,sizp0,sizw_p0)
784
785
786
787
788 IF (nspmd > 1) THEN
790 . sizloc,sizp0,sizw_p0)
791 ELSE
792 ALLOCATE(sizloc_write(nspgroup+1))
794 . sizloc,sizloc_write)
795 sizp0 = sizloc
796 sizw_p0 = -1
797 DO i=1,nspgroup
798 sizw_p0 =
max(sizw_p0,sizloc_write(i))
799 ENDDO
800 sizw_p0 = sizw_p0 + 6
801 DEALLOCATE(sizloc_write)
802 ENDIF
803
804 IF(outp_rs(2) == 1)
CALL outp_r_t(
'FULL ',
805 . ' forces and moments ',
806 . elbuf_tab,iparg,dd_iad,ixr,igeo,geo,sizloc,sizp0,sizw_p0)
807
808
809
810
811 IF(outp_v(8) == 1)
812 .
CALL outp_n_v2(fopt ,npby ,nom_opt(i16g),nom_opt(i16d))
813
814
815
816
817 IF(ispmd == 0) THEN
818 WRITE(iugeo,'(A)')'/ENDDATA '
819 CLOSE(unit=iugeo)
821 outpfilesize=outpfilesize + outpsize/1024
822 WRITE (iout,1000) filnam(1:filen)
823 WRITE (istdo,1000) filnam(1:filen)
824 ENDIF
825 1000 FORMAT (4x,' OUTPUT FILE:',1x,a,' WRITTEN')
826
827 RETURN
character(len=outfile_char_len) outfile_name
subroutine outp_c_s(nbxx, key, text, elbuf_tab, iparg, eani, ipm, igeo, ixc, ixtg, dd_iad, sizloc, sizp0, thke, siz_wr)
subroutine count_arsz_cs(iparg, ixc, ixtg, igeo, ipm, dd_iad, wasz, siz_write_loc)
subroutine outp_c_t(itens, key, text, elbuf_tab, iparg, epsdot, dd_iad, sizloc, sizp0, siz_wr)
subroutine outp_c_tf(itens, key, text, elbuf_tab, iparg, dd_iad, sizloc, sizp0, thke, geo, igeo, stack, drape_sh4n, drape_sh3n, ixc, ixtg, siz_wr, drapeg)
subroutine outp_mt(pm, npart, partsav, ipart, ipm)
subroutine outp_n_vc(key, text, len, vect, numnod, itab, itabg, leng, nodglob, weight)
subroutine outp_n_v(key, text, len, vect, numnod, itab, itabg, leng, nodglob, weight)
subroutine outp_n_v2(fopt, npby, nom_sect, nom_wall)
subroutine outp_no(key, text, len, anin, numnod, itab, innoda, itabg, leng, nodglob, weight)
subroutine outp_r_s(nbx, key, text, elbuf_tab, iparg, dd_iad, sizloc, sizp0, siz_wr)
subroutine count_arsz_rs(iparg, dd_iad, wasz, siz_write_loc)
subroutine count_arsz_rt(iparg, igeo, geo, ixr, dd_iad, wasz, siz_write_loc)
subroutine outp_r_t(key, text, elbuf_tab, iparg, dd_iad, ixr, igeo, geo, sizloc, sizp0, siz_wr)
subroutine outp_s_s(nbx, key, text, elbuf_tab, iparg, eani, ixs, ipm, dd_iad, sizloc, sizp0, siz_wr)
subroutine count_arsz_ss(iparg, dd_iad, ipm, ixs, wasz, siz_write_loc)
subroutine outp_sp_t(key, text, elbuf_tab, iparg, dd_iad, sizloc, sizp0, siz_wr)
subroutine outp_sp_tt(key, text, elbuf_tab, iparg, dd_iad, ipm, kxsp, spbuf, sizloc, sizp0, siz_wr)
subroutine count_arsz_sptt(iparg, dd_iad, wasz, siz_write_loc)
subroutine count_arsz_spt(iparg, dd_iad, wasz, siz_write_loc)
subroutine outp_arsz_rs(iparg, dd_iad, wasz, waszp, wasz_wr)
subroutine outp_arsz_rt(iparg, igeo, geo, ixr, dd_iad, wasz, waszp, wasz_wr)
subroutine outp_arsz_spt(iparg, dd_iad, wasz, waszp, wasz_wr)
subroutine outp_arsz_cs(iparg, ixc, ixtg, igeo, ipm, dd_iad, p0ars, wasz, wasz_wr)
subroutine spmd_outpitab(v, weight, nodglob, vglob)
subroutine outp_arsz_ss(iparg, dd_iad, ipm, ixs, p0ars, wasz, wasz_wr)
subroutine outp_arsz_sptt(iparg, dd_iad, wasz, waszp, wasz_wr)
subroutine slen(x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, j, area, aream)
void filelen_sys(char *ffilnam, int *len, int *size)