45 . RTRANS ,LSUBMODEL,IS_DYNA)
58#include "implicit_f.inc"
67 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
68 INTEGER ITAB(*),ITABM1(
70 . x(3,*),rtrans(ntransf,*)
74 TYPE (GROUP_) ,
TARGET,
DIMENSION(NGRNOD) :: IGRNOD
78 INTEGER I,I0,I1,I2,I3,I4,I5,I6,
79 . n0,n1,n2,n3,n4,n5,n6,ierror,
80 . j,is,
id,uid,igu,igs,nn,ntrans,stat,itranssub,ibid,
81 . ntag,ctag,isu,idu,idnod,
82 . inum,k,cpt,id_transsub,numnusr
83 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGNODSUB
84 INTEGER :: WORK(70000)
85 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEX,INDEX1,TAGNODSUB_TMP,IDNODSUB
88 . lx,ly,lz,tx,ty,tz,r,s,rx,ry,rz,sx,sy,sz,angle,at,fac_l
90 . vr(3),x0(3),x1(3),x2(3),x3(3),x4(3),x5(3),x6(3),
91 . rot(9),pp(3,3),qq(3,3),p(3),norm1, norm2, norm3, scal1,
92 . scal2, scal3, eps,xc(3)
94 CHARACTER(LEN=NCHARLINE) ::CART,SOLVERKEYWORD
95 CHARACTER(LEN=NCHARTITLE) :: TITR
96 CHARACTER(LEN=NCHARFIELD) ::VERS_IN,STRING
98 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
103 INTEGER NGR2USR,USRTOS
104 EXTERNAL ngr2usr,usrtos
106 ALLOCATE(tagnodsub(numnod))
112 CALL cpp_node_count(numnusr)
113 ALLOCATE( index(2*numnusr) )
117 ALLOCATE( index1(2*numnod) )
121 ALLOCATE( tagnodsub_tmp(numnusr) )
125 ALLOCATE( idnodsub(numnusr) )
132 is_available = .false.
137 CALL cpp_node_sub_tag_dyna(tagnodsub_tmp,idnodsub)
139 CALL my_orders( 0, work, idnodsub, index, numnusr , 1)
140 CALL my_orders( 0, work, itab, index1, numnod , 1)
143 tagnodsub(index1(i)) = tagnodsub_tmp(index(i))
149 CALL cpp_node_sub_tag(tagnodsub)
156 IF (ntrans > 0)
WRITE (iout,100)
171 . option_titr = titr,
175 CALL hm_get_intv(
'GR_NODE',igu,is_available,lsubmodel)
176 CALL hm_get_intv(
'SUBMODEL',id_transsub,is_available,lsubmodel)
179 IF(id_transsub/=0)
THEN
181 IF (lsubmodel(j)%NOSUBMOD == id_transsub)
THEN
194 rtrans(i,1) = itranssub
196 IF(igu /= 0 .AND. id_transsub /= 0)
THEN
204 IF (itranssub == 0) cycle
206 rtrans(i,1) = itranssub
207 IF (key(1:3) ==
'TRA')
THEN
211 CALL hm_get_intv(
'node1',n0,is_available,lsubmodel)
212 CALL hm_get_intv(
'node2',n1,is_available,lsubmodel)
214 CALL hm_get_floatv(
'translation_x',tx,is_available,lsubmodel,unitab)
215 CALL hm_get_floatv(
'translation_y',ty,is_available,lsubmodel,unitab)
216 CALL hm_get_floatv(
'translation_z',tz,is_available,lsubmodel,unitab)
218 IF (n0 > 0 .OR. n1 > 0)
THEN
219 i0 = usrtos(n0,itabm1)
220 i1 = usrtos(n1,itabm1)
239 IF(tagnodsub(i0) == itranssub)
THEN
241 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x0,j,rtrans)
244 IF(tagnodsub(i1) == itranssub)
THEN
246 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x1,j,rtrans)
260 s = sqrt(tx*tx + ty*ty + tz*tz)
267 WRITE(iout,500)
id,id_transsub
268 IF (n0
WRITE(iout,200) n0,n1
269 WRITE(iout,510) s,tx,ty,tz
271 ELSEIF (key(1:3) ==
'ROT')
THEN
275 CALL hm_get_intv(
'node1',n0,is_available,lsubmodel)
276 CALL hm_get_intv(
'node2',n1,is_available,lsubmodel)
278 CALL hm_get_floatv(
'rotation_point1_x',x0(1),is_available,lsubmodel,unitab)
279 CALL hm_get_floatv(
'rotation_point1_y',x0(2),is_available,lsubmodel,unitab)
280 CALL hm_get_floatv(
'rotation_point1_z',x0(3),is_available,lsubmodel,unitab)
281 CALL hm_get_floatv(
'rotation_point2_x',x1(1),is_available,lsubmodel,unitab)
282 CALL hm_get_floatv(
'rotation_point2_y',x1(2),is_available,lsubmodel,unitab)
283 CALL hm_get_floatv(
'rotation_point2_z',x1(3),is_available,lsubmodel,unitab)
284 CALL hm_get_floatv(
'rotation_angle',angle,is_available,lsubmodel,unitab)
286 IF (n0 > 0 .OR. n1 > 0)
THEN
287 i0 = usrtos(n0,itabm1)
288 i1 = usrtos(n1,itabm1)
313 IF(tagnodsub(i0) == itranssub)
THEN
315 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x0,j,rtrans)
318 IF(tagnodsub(i1) == itranssub)
THEN
320 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x1,j,rtrans)
325 x0(1) = x0(1) * fac_l
326 x0(2) = x0(2) * fac_l
327 x0(3) = x0(3) * fac_l
328 x1(1) = x1(1) * fac_l
329 x1(2) = x1(2) * fac_l
330 x1(3) = x1(3) * fac_l
335 s = sqrt(tx*tx + ty*ty + tz*tz)
336 at = angle * pi/hundred80 /
max(em20,s)
342 rtrans(i,j+2) = rot(j)
345 rtrans(i,j+11) = x0(j)
348 rtrans(i,j+14) = x0(j)
351 WRITE(iout,600)
id,id_transsub
352 IF (n0 > 0 .AND. n1 > 0)
WRITE(iout,200) n0,n1
353 WRITE(iout,610) x0(1),x0(2),x0(3),tx,ty,tz,angle
355 ELSEIF (key(1:6) ==
'MATRIX')
THEN
359 CALL hm_get_floatv(
'vector_1_x',rtrans(i,3),is_available,lsubmodel,unitab)
360 CALL hm_get_floatv(
'vector_1_y',rtrans(i,6),is_available,lsubmodel,unitab)
361 CALL hm_get_floatv(
'vector_1_z',rtrans(i,9),is_available,lsubmodel,unitab)
362 CALL hm_get_floatv(
'vector_2_x',rtrans(i,4),is_available,lsubmodel,unitab)
363 CALL hm_get_floatv(
'vector_2_y',rtrans(i,7),is_available,lsubmodel,unitab)
364 CALL hm_get_floatv(
'vector_2_z',rtrans(i,10),is_available,lsubmodel,unitab)
365 CALL hm_get_floatv(
'vector_3_x',rtrans(i,5),is_available,lsubmodel,unitab)
366 CALL hm_get_floatv(
'vector_3_y',rtrans(i,8),is_available,lsubmodel,unitab)
367 CALL hm_get_floatv(
'vector_3_z',rtrans(i,11),is_available,lsubmodel,unitab)
368 CALL hm_get_floatv(
'position_x',rtrans(i,15),is_available,lsubmodel,unitab)
369 CALL hm_get_floatv(
'position_y',rtrans(i,16),is_available,lsubmodel,unitab)
370 CALL hm_get_floatv(
'position_z',rtrans(i,17),is_available,lsubmodel,unitab)
373 norm1 = sqrt(rtrans(i,3)**2+rtrans(i,6)**2+rtrans(i,9)**2)
374 norm2 = sqrt(rtrans(i,4)*
375 norm3 = sqrt(rtrans(i,5)**2+rtrans(i,8)**2+rtrans(i,11)**2)
376 scal1 = rtrans(i,3)*rtrans(i,4)+rtrans(i,6)*rtrans(i,7)+
377 . rtrans(i,9)*rtrans(i,10)
378 scal2 = rtrans(i,3)*rtrans(i,5)+rtrans(i,6)*rtrans(i,8)+
379 . rtrans(i,9)*rtrans(i,11)
381 . rtrans(i,10)*rtrans(i,11)
382 IF(abs(one-norm1) > eps .OR. abs(one-norm2) > eps .OR.
383 . abs(one-norm3) > eps .OR.
384 . scal1 > (eps * norm1*norm2) .OR. scal2 > (eps * norm1*norm3)
385 . .OR. scal3 > (eps * norm2*norm3))
THEN
391 WRITE(iout,700)
id,id_transsub
394 . rtrans(i,3),rtrans(i,6),rtrans(i,9),rtrans(i,15),
395 . rtrans(i,4),rtrans(i,7),rtrans(i,10),rtrans(i,16),
396 . rtrans(i,5),rtrans(i,8),rtrans(i,11),rtrans(i,17)
398 ELSEIF (key(1:8) ==
'POSITION')
THEN
402 CALL hm_get_intv(
'node1',n1,is_available,lsubmodel)
403 CALL hm_get_intv(
'node2',n2,is_available,lsubmodel)
404 CALL hm_get_intv(
'node3',n3,is_available,lsubmodel)
405 CALL hm_get_intv(
'node4',n4,is_available,lsubmodel)
406 CALL hm_get_intv(
'node5',n5,is_available,lsubmodel)
407 CALL hm_get_intv(
'node6',n6,is_available,lsubmodel)
409 CALL hm_get_floatv('x_point_1
',X1(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
410 CALL HM_GET_FLOATV('y_point_1
',X1(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
411 CALL HM_GET_FLOATV('z_point_1
',X1(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
412 CALL HM_GET_FLOATV('x_point_2
',X2(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
413 CALL HM_GET_FLOATV('y_point_2
',X2(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
414 CALL HM_GET_FLOATV('z_point_2
',X2(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
415 CALL HM_GET_FLOATV('x_point_3
',X3(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
416 CALL HM_GET_FLOATV('y_point_3
',X3(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
417 CALL HM_GET_FLOATV('z_point_3
',X3(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
418 CALL HM_GET_FLOATV('x_point_4
',X4(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
419 CALL HM_GET_FLOATV('y_point_4
',X4(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
420 CALL HM_GET_FLOATV('z_point_4
',X4(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
421 CALL HM_GET_FLOATV('x_point_5
',X5(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
422 CALL HM_GET_FLOATV('y_point_5
',X5(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
423 CALL HM_GET_FLOATV('z_point_5
',X5(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
424 CALL HM_GET_FLOATV('x_point_6
',X6(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
425 CALL HM_GET_FLOATV('y_point_6
',X6(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
426 CALL HM_GET_FLOATV('z_point_6
',X6(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
428.OR..OR..OR.
IF (N1 > 0 N2 > 0 N3 > 0
429.OR..OR.
. N4 > 0 N5 > 0 N6 > 0) THEN
430 I1 = USRTOS(N1,ITABM1)
431 I2 = USRTOS(N2,ITABM1)
432 I3 = USRTOS(N3,ITABM1)
433 I4 = USRTOS(N4,ITABM1)
434 I5 = USRTOS(N5,ITABM1)
435 I6 = USRTOS(N6,ITABM1)
437 CALL ANCMSG(MSGID=694,
448 CALL ANCMSG(MSGID=694,
459 CALL ANCMSG(MSGID=694,
470 CALL ANCMSG(MSGID=694,
481 CALL ANCMSG(MSGID=694,
492 CALL ANCMSG(MSGID=694,
504 IF(TAGNODSUB(I1) == ITRANSSUB) THEN
506 IF(RTRANS(J,1) == ITRANSSUB) CALL RTRANSPOS(X1,J,RTRANS)
509 IF(TAGNODSUB(I2) == ITRANSSUB) THEN
511 IF(RTRANS(J,1) == ITRANSSUB) CALL RTRANSPOS(X2,J,RTRANS)
514 IF(TAGNODSUB(I3) == ITRANSSUB) THEN
516 IF(RTRANS(J,1) == ITRANSSUB) CALL RTRANSPOS(X3,J,RTRANS)
519 IF(TAGNODSUB(I4) == ITRANSSUB) THEN
521 IF(RTRANS(J,1) == ITRANSSUB) CALL RTRANSPOS(X4,J,RTRANS)
524 IF(TAGNODSUB(I5) == ITRANSSUB) THEN
526 IF(RTRANS(J,1) == ITRANSSUB) CALL RTRANSPOS(X5,J,RTRANS)
529 IF(TAGNODSUB(I6) == ITRANSSUB) THEN
531 IF(RTRANS(J,1) == ITRANSSUB) CALL RTRANSPOS(X6,J,RTRANS)
535 X1(1) = X1(1) * FAC_L
536 X1(2) = X1(2) * FAC_L
537 X1(3) = X1(3) * FAC_L
538 X2(1) = X2(1) * FAC_L
539 X2(2) = X2(2) * FAC_L
540 X2(3) = X2(3) * FAC_L
541 X3(1) = X3(1) * FAC_L
542 X3(2) = X3(2) * FAC_L
543 X3(3) = X3(3) * FAC_L
544 X4(1) = X4(1) * FAC_L
545 X4(2) = X4(2) * FAC_L
546 X4(3) = X4(3) * FAC_L
547 X5(1) = X5(1) * FAC_L
548 X5(2) = X5(2) * FAC_L
549 X5(3) = X5(3) * FAC_L
550 X6(1) = X6(1) * FAC_L
551 X6(2) = X6(2) * FAC_L
552 X6(3) = X6(3) * FAC_L
555 CALL POINTS_TO_FRAME(X1,X2,X3,PP,IERROR)
556.OR.
IF(IERROR==1IERROR==3)THEN
557 CALL ANCMSG(MSGID=1866,
559 . ANMODE=ANINFO_BLIND_1,
563 CALL ANCMSG(MSGID=1867,
564 . MSGTYPE=MSGWARNING,
565 . ANMODE=ANINFO_BLIND_1,
568 CALL POINTS_TO_FRAME(X4,X5,X6,QQ,IERROR)
570 CALL ANCMSG(MSGID=1868,
572 . ANMODE=ANINFO_BLIND_1,
580 RTRANS(I,J+2) = ROT(J)
582 RTRANS(I,12:14) = ZERO
583 RTRANS(I,15:17) = ZERO
588 CALL ANCMSG(MSGID=1869,
589 . MSGTYPE=MSGWARNING,
590 . ANMODE=ANINFO_BLIND_1,
594 ROT(1)=QQ(1,1)*PP(1,1)+QQ(1,2)*PP(1,2)+QQ(1,3)*PP(1,3) ! QQ . Transpose(PP)
595 ROT(4)=QQ(1,1)*PP(2,1)+QQ(1,2)*PP(2,2)+QQ(1,3)*PP(2,3)
596 ROT(7)=QQ(1,1)*PP(3,1)+QQ(1,2)*PP(3,2)+QQ(1,3)*PP(3,3)
597 ROT(2)=QQ(2,1)*PP(1,1)+QQ(2,2)*PP(1,2)+QQ(2,3)*PP(1,3)
598 ROT(5)=QQ(2,1)*PP(2,1)+QQ(2,2)*PP(2,2)+QQ(2,3)*PP(2,3)
599 ROT(8)=QQ(2,1)*PP(3,1)+QQ(2,2)*PP(3,2)+QQ(2,3)*PP(3,3)
600 ROT(3)=QQ(3,1)*PP(1,1)+QQ(3,2)*PP(1,2)+QQ(3,3)*PP(1,3)
601 ROT(6)=QQ(3,1)*PP(2,1)+QQ(3,2)*PP(2,2)+QQ(3,3)*PP(2,3)
602 ROT(9)=QQ(3,1)*PP(3,1)+QQ(3,2)*PP(3,2)+QQ(3,3)*PP(3,3)
605 RTRANS(I,J+2) = ROT(J)
608 RTRANS(I,J+11) = X1(J)
611 RTRANS(I,J+14) = X4(J) ! Xnew = X4 + ROT(Xold-X1)
616 WRITE(IOUT,800) ID,ID_TRANSSUB
619 . (RTRANS(I,K+11) , K=1,3),
620 . (RTRANS(I,K+14) , K=1,3),
621 . RTRANS(I,3),RTRANS(I,6), RTRANS(I,9),
622 . RTRANS(I,4),RTRANS(I,7),RTRANS(I,10),
623 . RTRANS(I,5),RTRANS(I,8),RTRANS(I,11)
625 ELSE IF (KEY(1:3) == 'sym
') THEN
629 CALL HM_GET_INTV('gr_node
',IGU,IS_AVAILABLE,LSUBMODEL)
630 CALL HM_GET_INTV('node1
',N0,IS_AVAILABLE,LSUBMODEL)
631 CALL HM_GET_INTV('node2
',N1,IS_AVAILABLE,LSUBMODEL)
632 CALL HM_GET_INTV('submodel
',ITRANSSUB,IS_AVAILABLE,LSUBMODEL)
634 CALL HM_GET_FLOATV('reflect_point1_x
',X0(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
635 CALL HM_GET_FLOATV('reflect_point1_y
',X0(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
636 CALL HM_GET_FLOATV('reflect_point1_z
',X0(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
637 CALL HM_GET_FLOATV('reflect_point2_x
',X1(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
638 CALL HM_GET_FLOATV('reflect_point2_y
',X1(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
639 CALL HM_GET_FLOATV('reflect_point2_z
',X1(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
641 INGR2USR => IGRNOD(1:NGRNOD)%ID
642 IGS = NGR2USR(IGU,INGR2USR,NGRNOD)
644.OR.
IF (N0 > 0 N1 > 0) THEN
645 I0 = USRTOS(N0,ITABM1)
646 I1 = USRTOS(N1,ITABM1)
648 CALL ANCMSG(MSGID=694,
656 CALL ANCMSG(MSGID=694,
670 X0(1) = X0(1) * FAC_L
671 X0(2) = X0(2) * FAC_L
672 X0(3) = X0(3) * FAC_L
673 X1(1) = X1(1) * FAC_L
674 X1(2) = X1(2) * FAC_L
675 X1(3) = X1(3) * FAC_L
678 IF(TAGNODSUB(I0) == ITRANSSUB) THEN
680 IF(RTRANS(J,1) == ITRANSSUB) CALL RTRANSPOS(X0,J,RTRANS)
684 IF(TAGNODSUB(I1) == ITRANSSUB) THEN
686 IF(RTRANS(J,1) == ITRANSSUB) CALL RTRANSPOS(X1,J,RTRANS)
691 RTRANS(I,J+11) = X0(J)
695 RTRANS(I,J+14) = X1(J)
698 WRITE(IOUT,900) ID,IGU
699.AND.
IF (N0 > 0 N1 > 0) WRITE(IOUT,200) N0,N1
700 WRITE(IOUT,910) X0(1),X0(2),X0(3),TX,TY,TZ
702 ELSE IF (KEY(1:3) == 'sca
') THEN
706 CALL HM_GET_INTV('node1',n0,is_available,lsubmodel)
708 CALL hm_get_floatv(
'scalefactor_x',rtrans(i,20),is_available,lsubmodel,unitab)
709 CALL hm_get_floatv(
'scalefactor_y',rtrans(i,21),is_available,lsubmodel,unitab)
710 CALL hm_get_floatv(
'scalefactor_z',rtrans(i,22),is_available,lsubmodel,unitab)
713 i0 = usrtos(n0,itabm1)
732 rtrans(i,j+11) = x0(j)
735 IF(tagnodsub(i0) == itranssub)
THEN
737 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x0,j,rtrans)
741 WRITE(iout,1000)
id,id_transsub
742 WRITE(iout,1010) rtrans(i,12),rtrans(i,13),rtrans(i,14),rtrans(i,20),rtrans(i,21),rtrans(i,22)
748 IF (
ALLOCATED(index))
DEALLOCATE(index)
749 IF (
ALLOCATED(index1))
DEALLOCATE(index1)
750 IF (
ALLOCATED(tagnodsub_tmp))
DEALLOCATE(tagnodsub_tmp)
751 IF (
ALLOCATED(idnodsub))
DEALLOCATE(idnodsub)
754 DEALLOCATE(tagnodsub)
758 .
' NODAL TRANSFORMATIONS '/,
759 .
' ---------------------- ')
760 200
FORMAT(10x,
' NODES N0 . . . . .= ',i10/,
761 . 10x,
' N1 . . . . .= ',i10)
762 300
FORMAT(10x,
' CENTER NODE N0 . . . . .= ',i10)
764 .
' SUBMODEL TRANSLATION, TRANSFORMATION ID = ',i10/,
765 .
' SUBMODEL ID. . . . . . . . . . . .= ',i10/,
766 .
' TRANSLATION VECTOR :')
767 510
FORMAT(10x,
' VALUE. . . . . . . . . . . . .= ',e20.13/,
768 .
' COORDINATES X. . . . . . .= ',e20.13/,
769 .
' Y. . . . . . .= '
770 .
' Z. . . . . . .= ',e20.13)
772 .
' SUBMODEL ROTATION, TRANSFORMATION ID. = ',i10
773 .
' SUBMODEL ID. . . . . . . . . . . .= ',i10/,
774 .
' ROTATION VECTOR: ')
775 610
FORMAT(10x,
' CENTER X. . . . . . .= ',e20.13/,
776 .
' Y. . . . . . .= ',e20.13/,
777 .
' Z. . . . . . .= ',e20.13/,
778 .
' DIRECTION X. . . . . . .= ',e20.13/,
779 .
' Y. . . . . . .= ',e20.13/,
780 .
' Z. . . . . . .= ',e20.13/,
781 .
' ANGLE . . . . . . .= ',e20.13)
783 . ' submodel matrix transformation, transformation
id.=
',I10/,
784 . ' submodel
id. . . . . . . . . . . .=
',I10/)
785 710 FORMAT(4X,'matrix
'/,
787 . 17X,'m11
',17X,'m12
',17X,'m13
',18X,'tx
' /,
789 . 17X,'m21
',17X,'m22
',17X,'m23
',18X,'ty
' /,
791 . 17X,'m31
',17X,'m32
',17X,'m33
',18X,'tz
' /,
794 . ' submodel transformation wrt 6 positions
',/,
795 . ' transformation
id. . . . . . . . . . . =
',I10/,
796 . ' submodel
id. . . . . . . . . . . . . . =
',I10/)
798 . ' center n1 x1 . . . . . .=
',E20.13/,
799 . ' y1 . . . . . .=
',E20.13/,
800 . ' z1 . . . . . .=
',E20.13/,
801 . ' center n4 x4 . . . . . .=
',E20.13/,
802 . ' y4 . . . . . .=
',E20.13/,
803 . ' z4 . . . . . .=
',E20.13/,
804 . ' rotation matrix . . . . . . . =
',/,
805 . ' . . . . . . . . m11 . . . . . . . . m12 . . . . . . . . m13
',/,
807 . ' . . . . . . . . m21 . . . . . . . . m22 . . . . . . . . m23
',/,
809 . ' . . . . . . . . m31 . . . . . . . . m32 . . . . . . . . m33
',/,
812 . ' submodel transformation plane symmetry
',/,
813 . ' transformation
id. . . . . . . . . . . =
',I10/,
814 . ' submodel
id. . . . . . . . . . . . . . =
',I10/)
815 910 FORMAT(10X,' center x. . . . . . .=
',E20.13/,
816 . ' y. . . . . . .=
',E20.13/,
817 . ' z. . . . . . .=
',E20.13/,
818 . ' direction x. . . . . . .=
',E20.13/,
819 . ' y. . . . . . .=
',E20.13/,
820 . ' z. . . . . . .=
',E20.13)
823 . ' submodel scale
',/,
824 . ' transformation
id. . . . . . . . . . . =
',I10/,
825 . ' submodel
id. . . . . . . . . . . . . . =
',I10/)
826 1010 FORMAT(10X,' center x. . . . . . .=
',E20.13/,
827 . ' y. . . . . . .=
',E20.13/,
828 . ' z. . . . . . .=
',E20.13/,
829 . ' scale x . . . . . .=
',E20.13/,
830 . ' y . . . . . .=
',E20.13/,
831 . ' z . . . . . .=
',E20.13)
833 3000 FORMAT(/10X,'new node coordinates
',14X,'x
',24X,'y
',24X,'z
')
834 3500 FORMAT( 17X,I10,3(5X,E20.13))