32 1 ISOLNOD,IXR, R_SKEW,ISKWN, IXP ,
33 2 IXT ,X , IXC ,IXTG ,THKE ,
34 3 SH4ANG ,THKEC,SH3ANG,KXSP ,IPARTSP,
35 4 IPART ,IXR_KJ,KXX ,IXX , IPARTX ,
36 5 IXRI ,IXS16 ,IXQ ,IBEAM_VECTOR,RBEAM_VECTOR)
47#include "implicit_f.inc"
59 INTEGER,
INTENT(IN) :: IXS(,*), IXS10(6,*), IPM(NPROPMI,*), IGEO(NPROPGI,*)
60 INTEGER,
INTENT(IN) :: ITAB(*), ISOLNOD(*),IXR_KJ(5,*)
61 INTEGER,
INTENT(IN) :: IXR(NIXR,*), R_SKEW(*), ISKWN(LISKN,*), IXP(NIXP,*), IXT(NIXT,*),
62 . IXC(NIXC,*),IXTG(NIXTG,*),KXSP(NISP,*),IPARTSP(*),IPART(LIPART1,*),
63 . KXX(NIXX,*),IXX(*),IPARTX(*),IXRI(4,*),IXS16(8,*),IXQ(NIXQ,*)
64 INTEGER,
INTENT(IN) :: IBEAM_VECTOR(NUMELP)
67 . thke(*),thkec(*),sh4ang(*),sh3ang(*)
68 my_real,
INTENT(IN) :: rbeam_vector(3,numelp)
72 INTEGER I, J, MY_ID, TEMP_INT, NS, MY_MID, MY_PID, MY_NOD, MY_SKEW,NC
73 INTEGER :: WORK(70000),NUMEL_KJ
74 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: INDEX,ITR1
75 CHARACTER(LEN=NCHARTITLE)::TITR
76 CHARACTER (LEN=255) :: VARNAME
77 DOUBLE PRECISION TEMP_DOUBLE
78 INTEGER ITETRA4(4),IPENTA6(6)
79 DATA itetra4/2,4,7,6/,ipenta6/2,3,4,6,7,8/
90 CALL my_alloc(index,2*numels)
91 CALL my_alloc(itr1,numels)
96 CALL my_orders(0,work,itr1,index,numels8,1)
101 CALL qaprint(
'A_SOLID_ELEMENT_ID', my_id,0.0_8)
103 my_mid = ipm(1,ixs(1,ns))
104 CALL qaprint(
'A_SOLID_ELEMENT_MID', my_mid,0.0_8)
106 my_pid = igeo(1,ixs(10,ns))
107 CALL qaprint(
'A_SOLID_ELEMENT_PID', my_pid,0.0_8)
109 IF(isolnod(ns)==4)
THEN
111 IF(ixs(itetra4(j),ns)/=0)
THEN
115 my_nod = itab(ixs(itetra4(j),ns))
116 WRITE(varname,
'(A,I0)')
'NODE_',j
117 CALL qaprint(varname(1:len_trim(varname)), my_nod,0.0_8)
120 ELSEIF(isolnod(ns)==6)
THEN
122 IF(ixs(ipenta6(j),ns)/=0)
THEN
126 my_nod = itab(ixs(ipenta6(j),ns))
127 WRITE(varname,
'(A,I0)')
'NODE_',j
128 CALL qaprint(varname(1:len_trim(varname)), my_nod,0.0_8)
131 ELSEIF(isolnod(ns)==8)
THEN
137 my_nod = itab(ixs(j,ns))
138 WRITE(varname,
'(A,I0)')
'NODE_',j-1
139 CALL qaprint(varname(1:len_trim(varname)), my_nod,0.0_8)
150 itr1(i)=ixs(nixs,numels8+i)
152 CALL my_orders(0,work,itr1,index,numels10,1)
157 my_id = ixs(nixs,numels8+ns)
158 CALL qaprint(
'A_TETRA10_ELEMENT_ID', my_id,0.0_8)
160 my_mid = ipm(1,ixs(1,numels8+ns))
161 CALL qaprint(
'A_TETRA10_ELEMENT_MID', my_mid,0.0_8)
163 my_pid = igeo(1,ixs(10,numels8+ns))
164 CALL qaprint(
'A_TETRA10_ELEMENT_PID', my_pid,0.0_8)
167 IF(ixs(itetra4(j),numels8+ns)/=0)
THEN
171 my_nod = itab(ixs(itetra4(j),numels8+ns))
172 WRITE(varname,
'(A,I0)')
'NODE_',j
173 CALL qaprint(varname(1:len_trim(varname)), my_nod,0.0_8)
178 IF(ixs10(j,ns)/=0)
THEN
182 my_nod = itab(ixs10(j,ns))
183 WRITE(varname,
'(A,I0)')
'NODE_',j+4
184 CALL qaprint(varname(1:len_trim(varname)), my_nod,0.0_8)
193 itr1(i)=ixs(nixs,numels8+numels10+numels20+i)
195 CALL my_orders(0,work,itr1,index,numels16,1)
200 my_id = ixs(nixs,numels8+numels10+numels20+ns)
201 CALL qaprint(
'A_SHEL16_ELEMENT_ID', my_id,0.0_8)
203 my_mid = ipm(1,ixs(1,numels8+numels10+numels20+ns))
204 CALL qaprint(
'A_SHEL16_ELEMENT_MID', my_mid,0.0_8)
206 my_pid = igeo(1,ixs(10,numels8+numels10+numels20+ns))
207 CALL qaprint(
'A_SHEL16_ELEMENT_PID', my_pid,0.0_8)
210 IF(ixs(j,numels8+numels10+numels20+ns)/=0)
THEN
214 my_nod = itab(ixs(j,numels8+numels10+numels20+ns))
215 WRITE(varname,
'(A,I0)')
'NODE_'
216 CALL qaprint(varname(1:len_trim(varname)), my_nod,0.0_8)
221 IF(ixs16(j,ns)/=0)
THEN
225 my_nod = itab(ixs16(j,ns))
226 WRITE(varname,
'(A,I0)')
'NODE_',j+8
227 CALL qaprint(varname(1:len_trim(varname)), my_nod,0.0_8)
233 DEALLOCATE(index,itr1)
239 CALL my_alloc(index,2*numelr)
240 CALL my_alloc(itr1,numelr)
245 CALL my_orders(0,work,itr1,index,numelr,1)
251 CALL qaprint(
'A_SPRING_ELEMENT_ID', my_id,0.0_8)
254 IF (ixr(5,ns) > 0) my_mid = ipm(1,ixr(5,ns))
255 CALL qaprint(
'A_SPRING_ELEMENT_MID', my_mid,0.0_8)
257 my_pid = igeo(1,ixr(1,ns))
258 CALL qaprint(
'A_SPRING_ELEMENT_PID', my_pid,0.0_8)
262 my_nod = itab(ixr(j,ns))
263 WRITE(varname,
'(A,I0)')
'NODE_',j-1
264 CALL qaprint(varname(1:len_trim(varname)), my_nod,0.0_8)
269 my_nod = itab(ixr(4,ns))
270 WRITE(varname,
'(A,I0)')
'NODE_',3
271 CALL qaprint(varname(1:len_trim(varname)), my_nod,0.0_8)
273 temp_double = x(1,ixr(4,ns))-x(1,ixr(2,ns))
274 CALL qaprint('--> vec_n1n3_x
', 0,TEMP_DOUBLE)
275 TEMP_DOUBLE = X(2,IXR(4,NS))-X(2,IXR(2,NS))
276 CALL QAPRINT('--> vec_n1n3_y
', 0,TEMP_DOUBLE)
277 TEMP_DOUBLE = X(3,IXR(4,NS))-X(3,IXR(2,NS))
278 CALL QAPRINT('--> vec_n1n3_z
', 0,TEMP_DOUBLE)
281 IF(R_SKEW(NS)/=0)THEN
282 MY_SKEW = ISKWN(4,R_SKEW(NS))
283 WRITE(VARNAME,'(a,i0)
') 'skew_
',J-1
284 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)), MY_SKEW,0.0_8)
287 END DO ! DO I=1,NUMELR
289 DEALLOCATE(INDEX,ITR1)
295 NUMEL_KJ = IXR_KJ(1,NUMELR+1)
296 CALL MY_ALLOC(INDEX,2*NUMEL_KJ)
297 CALL MY_ALLOC(ITR1,NUMEL_KJ)
302 CALL MY_ORDERS(0,WORK,ITR1,INDEX,NUMEL_KJ,1)
308 IF(IXR_KJ(J,NS)/=0)THEN
309 MY_NOD = ITAB(IXR_KJ(J,NS))
310 WRITE(VARNAME,'(a,x,i0,x,a,i0)
') 'kjoint_id
',IXR_KJ(4,NS),'additional_node_
',3+J
311 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)), MY_NOD,0.0_8)
317 DEALLOCATE(INDEX,ITR1)
325 CALL MY_ALLOC(INDEX,2*NUMELP)
326 CALL MY_ALLOC(ITR1,NUMELP)
331 CALL MY_ORDERS(0,WORK,ITR1,INDEX,NUMELP,1)
337 CALL QAPRINT('a_beam_element_id
', MY_ID,0.0_8)
339 MY_MID = IPM(1,IXP(1,NS))
340 CALL QAPRINT('a_beam_element_mid
', MY_MID,0.0_8)
342 MY_PID = IGEO(1,IXP(5,NS))
343 CALL QAPRINT('a_beam_element_pid
', MY_PID,0.0_8)
347 MY_NOD = ITAB(IXP(J,NS))
348 WRITE(VARNAME,'(a,i0)
') 'node_
',J-1
349 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)), MY_NOD,0.0_8)
353 IF (IBEAM_VECTOR(NS) == 1) THEN
354 TEMP_DOUBLE = RBEAM_VECTOR(1,NS)
355 CALL QAPRINT('--> input_vec_x
', 0,TEMP_DOUBLE)
356 TEMP_DOUBLE = RBEAM_VECTOR(2,NS)
357 CALL QAPRINT('--> input_vec_y
', 0,TEMP_DOUBLE)
358 TEMP_DOUBLE = RBEAM_VECTOR(3,NS)
359 CALL QAPRINT('--> input_vec_z
', 0,TEMP_DOUBLE)
360 ELSEIF(IXP(4,NS)/=0)THEN
361 MY_NOD = ITAB(IXP(4,NS))
362 WRITE(VARNAME,'(a,i0)
') 'node_
',J-1
363 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)), MY_NOD,0.0_8)
365 TEMP_DOUBLE = X(1,IXP(4,NS))-X(1,IXP(2,NS))
366 CALL QAPRINT('--> vec_n1n3_x
', 0,TEMP_DOUBLE)
367 TEMP_DOUBLE = X(2,IXP(4,NS))-X(2,IXP(2,NS))
368 CALL QAPRINT('--> vec_n1n3_y
', 0,TEMP_DOUBLE)
369 TEMP_DOUBLE = X(3,IXP(4,NS))-X(3,IXP(2,NS))
370 CALL QAPRINT('--> vec_n1n3_z
', 0,TEMP_DOUBLE)
373 END DO ! DO I=1,NUMELP
375 DEALLOCATE(INDEX,ITR1)
381 CALL MY_ALLOC(INDEX,2*NUMELT)
382 CALL MY_ALLOC(ITR1,NUMELT)
387 CALL MY_ORDERS(0,WORK,ITR1,INDEX,NUMELT,1)
393 CALL QAPRINT('a_truss_element_id
', MY_ID,0.0_8)
395 MY_MID = IPM(1,IXT(1,NS))
396 CALL QAPRINT('a_truss_element_mid
', MY_MID,0.0_8)
398 MY_PID = IGEO(1,IXT(4,NS))
399 CALL QAPRINT('a_truss_element_pid
', MY_PID,0.0_8)
403 MY_NOD = ITAB(IXT(J,NS))
404 WRITE(VARNAME,'(a,i0)
') 'node_
',J-1
405 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)), MY_NOD,0.0_8)
409 END DO ! DO I=1,NUMELT
411 DEALLOCATE(INDEX,ITR1)
416 CALL MY_ALLOC(INDEX,2*NUMELC)
417 CALL MY_ALLOC(ITR1,NUMELC)
423 CALL MY_ORDERS(0,WORK,ITR1,INDEX,NUMELC,1)
428 CALL QAPRINT('a_shell_element_id
', MY_ID,0.0_8)
430 MY_MID = IPM(1,IXC(1,NC))
431 CALL QAPRINT('a_shell_element_mid
', MY_MID,0.0_8)
433 MY_PID = IGEO(1,IXC(6,NC))
434 CALL QAPRINT('a_shell_element_pid
', MY_PID,0.0_8)
437 MY_NOD = ITAB(IXC(J+1,NC))
438 WRITE(VARNAME,'(a,i0)
') 'node_
',J
439 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)), MY_NOD,0.0_8)
442 WRITE(VARNAME,'(a,i0)
') 'thk_
'
443 TEMP_DOUBLE = THKE(NC)
444 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
446 WRITE(VARNAME,'(a,i0)
') 'angle_
'
447 TEMP_DOUBLE = SH4ANG(NC)
448 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
451 DEALLOCATE(INDEX,ITR1)
455 CALL MY_ALLOC(INDEX,2*NUMELQ)
456 CALL MY_ALLOC(ITR1,NUMELQ)
462 CALL MY_ORDERS(0,WORK,ITR1,INDEX,NUMELQ,1)
467 CALL QAPRINT('a_quad_element_id
', MY_ID,0.0_8)
469 MY_MID = IPM(1,IXQ(1,NC))
470 CALL QAPRINT('a_quad_element_mid
', MY_MID,0.0_8)
472 MY_PID = IGEO(1,IXQ(6,NC))
473 CALL QAPRINT('a_quad_element_pid
', MY_PID,0.0_8)
476 MY_NOD = ITAB(IXQ(J+1,NC))
477 WRITE(VARNAME,'(a,i0)
') 'node_
',J
478 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)), MY_NOD,0.0_8)
482 DEALLOCATE(INDEX,ITR1)
486 CALL MY_ALLOC(INDEX,2*NUMELTG)
487 CALL MY_ALLOC(ITR1,NUMELTG)
490 ITR1(I)=IXTG(NIXTG,I)
493 CALL MY_ORDERS(0,WORK,ITR1,INDEX,NUMELTG,1)
497 MY_ID = IXTG(NIXTG,NC)
498 CALL QAPRINT('a_sh3n_element_id
', MY_ID,0.0_8)
500 MY_MID = IPM(1,IXTG(1,NC))
501 CALL QAPRINT('a_sh3n_element_mid
', MY_MID,0.0_8)
503 MY_PID = IGEO(1,IXTG(5,NC))
504 CALL QAPRINT('a_sh3n_element_pid
', MY_PID,0.0_8)
507 MY_NOD = ITAB(IXTG(J+1,NC))
508 WRITE(VARNAME,'(a,i0)
') 'node_
',J
509 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)), MY_NOD,0.0_8)
512 WRITE(VARNAME,'(a,i0)
') 'thk_
'
513 TEMP_DOUBLE = THKEC(NC)
514 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
516 WRITE(VARNAME,'(a,i0)
') 'angle_
'
517 TEMP_DOUBLE = SH3ANG(NC)
518 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
521 DEALLOCATE(INDEX,ITR1)
526 CALL MY_ALLOC(INDEX,2*NUMSPH)
527 CALL MY_ALLOC(ITR1,NUMSPH)
532 CALL MY_ORDERS(0,WORK,ITR1,INDEX,NUMSPH,1)
538 MY_ID = KXSP(NISP,NS)
539 CALL QAPRINT('a_sph_cell_element_id
', MY_ID,0.0_8)
542 CALL QAPRINT('a_sph_cell_part_id
', MY_ID,0.0_8)
544 MY_MID = IPART(1,IPARTSP(NS))
545 CALL QAPRINT('a_sph_cell_mid
', MY_MID,0.0_8)
547 MY_PID = IGEO(1,IPART(2,IPARTSP(NS)))
548 CALL QAPRINT('a_sph_cell_pid
', MY_PID,0.0_8)
553 WRITE(VARNAME,'(a,i0)
') 'kxsp_
',J
554 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)), MY_ID,0.0_8)
559 DEALLOCATE(INDEX,ITR1)
563 CALL MY_ALLOC(INDEX,2*NUMELX)
564 CALL MY_ALLOC(ITR1,NUMELX)
569 CALL MY_ORDERS(0,WORK,ITR1,INDEX,NUMELX,1)
576 CALL QAPRINT('a_xelem_element_id
', MY_ID,0.0_8)
579 CALL QAPRINT('a_xelem_part_id
', MY_ID,0.0_8)
582 MY_ID = ITAB(IXX(KXX(4,NS)+J-1))
584 WRITE(VARNAME,'(a,i0)
') 'ixx_
',KXX(4,NS)+J
585 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)), MY_ID,0.0_8)
590 DEALLOCATE(INDEX,ITR1)
594 CALL MY_ALLOC(INDEX,2*NRIVET)
595 CALL MY_ALLOC(ITR1,NRIVET)
600 CALL MY_ORDERS(0,WORK,ITR1,INDEX,NRIVET,1)
607 CALL QAPRINT('a_rivet_element_id
', MY_ID,0.0_8)
609 MY_ID = IGEO(1,IXRI(1,NS))
610 CALL QAPRINT('a_rivet_pid
', MY_ID,0.0_8)
613 MY_ID = ITAB(IXRI(J+1,NS))
615 WRITE(VARNAME,'(a,i0)
') 'ixri_
',J
616 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)), MY_ID,0.0_8)
621 DEALLOCATE(INDEX,ITR1)
subroutine st_qaprint_element(ixs, ixs10, ipm, igeo, itab, isolnod, ixr, r_skew, iskwn, ixp, ixt, x, ixc, ixtg, thke, sh4ang, thkec, sh3ang, kxsp, ipartsp, ipart, ixr_kj, kxx, ixx, ipartx, ixri, ixs16, ixq, ibeam_vector, rbeam_vector)