45 . RTRANS ,LSUBMODEL,IS_DYNA,ISKWN,LISKN,
46 . NSPCOND ,NUMSPH ,SISKWN)
59#include "implicit_f.inc"
68 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
69 INTEGER ITAB(*),ITABM1(*)
71 . x(3,*),rtrans(ntransf,*)
74 INTEGER,
INTENT(IN) :: LISKN,NSPCOND,NUMSPH,SISKWN
75 INTEGER,
INTENT(IN) :: ISKWN(LISKN,SISKWN/LISKN)
77 TYPE (GROUP_) ,
TARGET,
DIMENSION(NGRNOD) :: IGRNOD
81 INTEGER I,I0,I1,I2,I3,I4,I5,I6,
82 . N0,N1,N2,N3,N4,N5,N6,IERROR,
83 . j,is,
id,uid,igu,igs,nn,ntrans,stat,itranssub,ibid,
84 . ntag,ctag,isu,idu,idnod,
85 . inum,k,cpt,id_transsub,numnusr,isk0,isk,sub_index
86 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGNODSUB
87 INTEGER :: WORK(70000)
88 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEX,INDEX1,TAGNODSUB_TMP,IDNODSUB
91 . lx,ly,lz,tx,ty,tz,r,s,rx,ry,rz,sx,sy,sz,angle,at,fac_l
93 . vr(3),x0(3),x1(3),x2(3),x3(3),x4(3),x5(3),x6(3),
94 . rot(9),pp(3,3),qq(3,3),p(3),norm1, norm2, norm3, scal1,
95 . scal2, scal3, eps,xc(3)
96 CHARACTER(LEN=NCHARFIELD) :: KEY
97 CHARACTER(LEN=NCHARLINE) ::CART,SOLVERKEYWORD
98 CHARACTER(LEN=NCHARTITLE) :: TITR
99 CHARACTER(LEN=NCHARFIELD) ::VERS_IN,STRING
101 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
102 LOGICAL IS_AVAILABLE,IS_FOUND
106 INTEGER NGR2USR,USRTOS
107 EXTERNAL NGR2USR,USRTOS
109 ALLOCATE(tagnodsub(numnod))
115 CALL cpp_node_count(numnusr)
116 ALLOCATE( index(2*numnusr) )
120 ALLOCATE( index1(2*numnod) )
124 ALLOCATE( tagnodsub_tmp(numnusr) )
128 ALLOCATE( idnodsub(numnusr) )
135 is_available = .false.
140 CALL cpp_node_sub_tag_dyna(tagnodsub_tmp,idnodsub)
142 CALL my_orders( 0, work, idnodsub, index, numnusr , 1)
143 CALL my_orders( 0, work, itab, index1, numnod , 1)
146 tagnodsub(index1(i)) = tagnodsub_tmp(index(i))
152 CALL cpp_node_sub_tag(tagnodsub)
159 IF (ntrans > 0)
WRITE (iout,100)
174 . submodel_index = sub_index,
175 . option_titr = titr,
179 CALL hm_get_intv(
'GR_NODE',igu,is_available,lsubmodel)
180 CALL hm_get_intv(
'SUBMODEL',id_transsub,is_available,lsubmodel)
183 IF(id_transsub/=0)
THEN
185 IF (lsubmodel(j)%NOSUBMOD == id_transsub)
THEN
198 rtrans(i,1) = itranssub
200 IF(igu /= 0 .AND. id_transsub /= 0)
THEN
208 IF (itranssub == 0) cycle
210 rtrans(i,1) = itranssub
211 IF (key(1:3) ==
'TRA')
THEN
215 CALL hm_get_intv(
'node1',n0,is_available,lsubmodel)
216 CALL hm_get_intv(
'node2',n1,is_available,lsubmodel)
218 CALL hm_get_floatv(
'translation_x',tx,is_available,lsubmodel,unitab)
219 CALL hm_get_floatv(
'translation_y',ty,is_available,lsubmodel,unitab)
220 CALL hm_get_floatv(
'translation_z',tz,is_available,lsubmodel,unitab)
221 CALL hm_get_intv(
'skew_ID',isk0,is_available,lsubmodel)
227 IF (isk0 == iskwn(4,j+1))
THEN
233 IF(.NOT. is_found)
THEN
243 IF (n0 > 0 .OR. n1 > 0)
THEN
245 i0 = usrtos(n0,itabm1)
246 i1 = usrtos(n1,itabm1)
268 IF(tagnodsub(i0) == itranssub)
THEN
270 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x0,j,rtrans)
276 IF(tagnodsub(i1) == itranssub)
THEN
278 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x1,j,rtrans)
292 s = sqrt(tx*tx + ty*ty + tz*tz)
300 WRITE(iout,500)
id,id_transsub
301 IF (n0 > 0 .AND. n1 > 0)
WRITE(iout,200) n0,n1
302 WRITE(iout,510) s,tx,ty,tz,isk0
304 ELSEIF (key(1:3) ==
'ROT')
THEN
308 CALL hm_get_intv(
'node1',n0,is_available,lsubmodel)
309 CALL hm_get_intv(
'node2',n1,is_available,lsubmodel)
311 CALL hm_get_floatv(
'rotation_point1_x',x0(1),is_available,lsubmodel,unitab)
312 CALL hm_get_floatv(
'rotation_point1_y',x0(2),is_available,lsubmodel,unitab)
313 CALL hm_get_floatv(
'rotation_point1_z',x0(3),is_available,lsubmodel,unitab)
314 CALL hm_get_floatv(
'rotation_point2_x',x1(1),is_available,lsubmodel,unitab)
315 CALL hm_get_floatv(
'rotation_point2_y',x1(2),is_available,lsubmodel,unitab)
316 CALL hm_get_floatv(
'rotation_point2_z',x1(3),is_available,lsubmodel,unitab)
317 CALL hm_get_floatv(
'rotation_angle',angle,is_available,lsubmodel,unitab)
319 IF (n0 > 0 .OR. n1 > 0)
THEN
320 i0 = usrtos(n0,itabm1)
321 i1 = usrtos(n1,itabm1)
346 IF(tagnodsub(i0) == itranssub)
THEN
348 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x0,j,rtrans)
351 IF(tagnodsub(i1) == itranssub)
THEN
353 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x1,j,rtrans)
358 x0(1) = x0(1) * fac_l
359 x0(2) = x0(2) * fac_l
360 x0(3) = x0(3) * fac_l
361 x1(1) = x1(1) * fac_l
362 x1(2) = x1(2) * fac_l
363 x1(3) = x1(3) * fac_l
368 s = sqrt(tx*tx + ty*ty + tz*tz)
369 at = angle * pi/hundred80 /
max(em20,s)
375 rtrans(i,j+2) = rot(j)
378 rtrans(i,j+11) = x0(j)
381 rtrans(i,j+14) = x0(j)
384 WRITE(iout,600)
id,id_transsub
385 IF (n0 > 0 .AND. n1 > 0)
WRITE(iout,200) n0,n1
386 WRITE(iout,610) x0(1),x0(2),x0(3),tx,ty,tz,angle
388 ELSEIF (key(1:6) ==
'MATRIX')
THEN
392 CALL hm_get_floatv('vector_1_x
',RTRANS(I,3),IS_AVAILABLE,LSUBMODEL,UNITAB)
393 CALL HM_GET_FLOATV('vector_1_y
',RTRANS(I,6),IS_AVAILABLE,LSUBMODEL,UNITAB)
394 CALL HM_GET_FLOATV('vector_1_z
',RTRANS(I,9),IS_AVAILABLE,LSUBMODEL,UNITAB)
395 CALL HM_GET_FLOATV('vector_2_x
',RTRANS(I,4),IS_AVAILABLE,LSUBMODEL,UNITAB)
396 CALL HM_GET_FLOATV('vector_2_y
',RTRANS(I,7),IS_AVAILABLE,LSUBMODEL,UNITAB)
397 CALL HM_GET_FLOATV('vector_2_z
',RTRANS(I,10),IS_AVAILABLE,LSUBMODEL,UNITAB)
398 CALL HM_GET_FLOATV('vector_3_x
',RTRANS(I,5),IS_AVAILABLE,LSUBMODEL,UNITAB)
399 CALL HM_GET_FLOATV('vector_3_y
',RTRANS(I,8),IS_AVAILABLE,LSUBMODEL,UNITAB)
400 CALL HM_GET_FLOATV('vector_3_z',rtrans(i,11),is_available,lsubmodel,unitab)
401 CALL hm_get_floatv(
'position_x',rtrans(i,15),is_available,lsubmodel,unitab)
403 CALL hm_get_floatv(
'position_z',rtrans(i,17),is_available,lsubmodel,unitab)
406 norm1 = sqrt(rtrans(i,3)**2+rtrans(i,6)**2+rtrans(i,9)**2)
407 norm2 = sqrt(rtrans(i,4)**2+rtrans(i,7)**2+rtrans(i,10)**2)
408 norm3 = sqrt(rtrans(i,5)**2+rtrans(i,8)**2+rtrans(i,11)**2)
409 scal1 = rtrans(i,3)*rtrans(i,4)+rtrans(i,6)*rtrans(i,7)+
410 . rtrans(i,9)*rtrans(i,10)
411 scal2 = rtrans(i,3)*rtrans(i,5)+rtrans(i,6)*rtrans(i,8)+
412 . rtrans(i,9)*rtrans(i,11)
413 scal3 = rtrans(i,4)*rtrans(i,5)+rtrans(i,7)*rtrans(i,8)+
414 . rtrans(i,10)*rtrans(i,11)
415 IF(abs(one-norm1) > eps .OR. abs(one-norm2) > eps .OR.
416 . abs(one-norm3) > eps .OR.
417 . scal1 > (eps * norm1*norm2) .OR. scal2 > (eps * norm1*norm3)
418 . .OR. scal3 > (eps * norm2*norm3))
THEN
424 WRITE(iout,700)
id,id_transsub
427 . rtrans(i,3),rtrans(i,6),rtrans(i,9),rtrans(i,15),
428 . rtrans(i,4),rtrans(i,7),rtrans(i,10),rtrans(i,16),
429 . rtrans(i,5),rtrans(i,8),rtrans(i,11),rtrans(i,17)
431 ELSEIF (key(1:8) ==
'POSITION')
THEN
435 CALL hm_get_intv(
'node1',n1,is_available,lsubmodel)
436 CALL hm_get_intv(
'node2',n2,is_available,lsubmodel)
437 CALL hm_get_intv(
'node3',n3,is_available,lsubmodel)
438 CALL hm_get_intv(
'node4',n4,is_available,lsubmodel)
439 CALL hm_get_intv(
'node5',n5,is_available,lsubmodel)
440 CALL hm_get_intv(
'node6',n6,is_available,lsubmodel)
442 CALL hm_get_floatv(
'X_Point_1',x1(1),is_available,lsubmodel,unitab)
443 CALL hm_get_floatv(
'Y_Point_1',x1(2),is_available,lsubmodel,unitab)
444 CALL hm_get_floatv(
'Z_Point_1',x1(3),is_available,lsubmodel,unitab)
445 CALL hm_get_floatv(
'X_Point_2',x2(1),is_available,lsubmodel,unitab)
446 CALL hm_get_floatv(
'Y_Point_2',x2(2),is_available,lsubmodel,unitab)
447 CALL hm_get_floatv(
'Z_Point_2',x2(3),is_available,lsubmodel,unitab)
448 CALL hm_get_floatv(
'X_Point_3',x3(1),is_available,lsubmodel,unitab)
449 CALL hm_get_floatv(
'Y_Point_3',x3(2),is_available,lsubmodel,unitab)
450 CALL hm_get_floatv(
'Z_Point_3',x3(3),is_available,lsubmodel,unitab)
451 CALL hm_get_floatv(
'X_Point_4',x4(1),is_available,lsubmodel,unitab)
452 CALL hm_get_floatv(
'Y_Point_4',x4(2),is_available,lsubmodel,unitab)
453 CALL hm_get_floatv(
'Z_Point_4',x4(3),is_available,lsubmodel,unitab)
454 CALL hm_get_floatv(
'X_Point_5',x5(1),is_available,lsubmodel,unitab)
455 CALL hm_get_floatv(
'Y_Point_5',x5(2),is_available,lsubmodel,unitab)
456 CALL hm_get_floatv(
'Z_Point_5',x5(3),is_available,lsubmodel,unitab)
457 CALL hm_get_floatv(
'X_Point_6',x6(1),is_available,lsubmodel,unitab)
458 CALL hm_get_floatv(
'Y_Point_6',x6(2),is_available,lsubmodel,unitab)
459 CALL hm_get_floatv(
'Z_Point_6',x6(3),is_available,lsubmodel,unitab)
461 IF (n1 > 0 .OR. n2 > 0 .OR. n3 > 0 .OR.
462 . n4 > 0 .OR. n5 > 0 .OR. n6 > 0)
THEN
463 i1 = usrtos(n1,itabm1)
464 i2 = usrtos(n2,itabm1)
465 i3 = usrtos(n3,itabm1)
466 i4 = usrtos(n4,itabm1)
467 i5 = usrtos(n5,itabm1)
468 i6 = usrtos(n6,itabm1)
537 IF(tagnodsub(i1) == itranssub)
THEN
539 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x1,j,rtrans)
542 IF(tagnodsub(i2) == itranssub)
THEN
544 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x2,j,rtrans)
547 IF(tagnodsub(i3) == itranssub)
THEN
549 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x3,j,rtrans)
552 IF(tagnodsub(i4) == itranssub)
THEN
554 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x4,j,rtrans)
557 IF(tagnodsub(i5) == itranssub)
THEN
559 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x5,j,rtrans)
562 IF(tagnodsub(i6) == itranssub)
THEN
564 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x6,j,rtrans)
568 x1(1) = x1(1) * fac_l
569 x1(2) = x1(2) * fac_l
570 x1(3) = x1(3) * fac_l
571 x2(1) = x2(1) * fac_l
572 x2(2) = x2(2) * fac_l
573 x2(3) = x2(3) * fac_l
574 x3(1) = x3(1) * fac_l
575 x3(2) = x3(2) * fac_l
576 x3(3) = x3(3) * fac_l
577 x4(1) = x4(1) * fac_l
578 x4(2) = x4(2) * fac_l
579 x4(3) = x4(3) * fac_l
580 x5(1) = x5(1) * fac_l
581 x5(2) = x5(2) * fac_l
582 x5(3) = x5(3) * fac_l
583 x6(1) = x6(1) * fac_l
584 x6(2) = x6(2) * fac_l
585 x6(3) = x6(3) * fac_l
589 IF(ierror==1.OR.ierror==3)
THEN
592 . anmode=aninfo_blind_1,
597 . msgtype=msgwarning,
598 . anmode=aninfo_blind_1,
605 . anmode=aninfo_blind_1,
613 rtrans(i,j+2) = rot(j)
615 rtrans(i,12:14) = zero
616 rtrans(i,15:17) = zero
622 . msgtype=msgwarning,
623 . anmode=aninfo_blind_1,
627 rot(1)=qq(1,1)*pp(1,1)+qq(1,2)*pp(1,2)+qq(1,3)*pp(1,3)
628 rot(4)=qq(1,1)*pp(2,1)+qq
629 rot(7)=qq(1,1)*pp(3,1)+qq(1,2)*pp(3,2)+qq(1,3)*pp(3,3)
630 rot(2)=qq(2,1)*pp(1,1)+qq(2,2)*pp(1,2)+qq(2,3)*pp(1,3)
631 rot(5)=qq(2,1)*pp(2,1)+qq(2,2)*pp(2,2)+qq(2,3)*pp(2,3)
632 rot(8)=qq(2,1)*pp(3,1)+qq(2,2)*pp(3,2)+qq(2,3
633 rot(3)=qq(3,1)*pp(1,1)+qq(3,2)*pp(1,2)+qq(3,3)*pp(1,3)
634 rot(6)=qq(3,1)*pp(2,1)+qq(3,2)*pp(2,2)+qq(3,3)*pp(2,3)
635 rot(9)=qq(3,1)*pp(3,1)+qq(3,2)*pp
641 rtrans(i,j+11) = x1(j)
644 rtrans(i,j+14) = x4(j)
652 . (rtrans(i,k+11) , k=1,3),
653 . (rtrans(i,k+14) , k=1,3),
654 . rtrans(i,3),rtrans(i,6), rtrans(i,9),
655 . rtrans(i,4),rtrans(i,7),rtrans(i,10),
656 . rtrans(i,5),rtrans(i,8),rtrans(i,11)
658 ELSE IF (key(1:3) ==
'SYM')
THEN
662 CALL hm_get_intv(
'GR_NODE',igu,is_available,lsubmodel)
663 CALL hm_get_intv(
'node1',n0,is_available,lsubmodel)
664 CALL hm_get_intv(
'node2',n1,is_available,lsubmodel)
665 CALL hm_get_intv(
'SUBMODEL',itranssub,is_available,lsubmodel)
667 CALL hm_get_floatv(
'reflect_point1_x',x0(1),is_available,lsubmodel,unitab)
668 CALL hm_get_floatv(
'reflect_point1_y',x0(2),is_available,lsubmodel,unitab)
669 CALL hm_get_floatv(
'reflect_point1_z',x0(3),is_available,lsubmodel,unitab)
670 CALL hm_get_floatv(
'reflect_point2_x',x1(1),is_available,lsubmodel,unitab)
671 CALL hm_get_floatv(
'reflect_point2_y',x1(2),is_available,lsubmodel,unitab
672 CALL hm_get_floatv(
'reflect_point2_z',x1(3),is_available,lsubmodel,unitab)
674 ingr2usr => igrnod(1:ngrnod)%ID
675 igs = ngr2usr(igu,ingr2usr,ngrnod)
677 IF (n0 > 0 .OR. n1 > 0)
THEN
678 i0 = usrtos(n0,itabm1)
679 i1 = usrtos(n1,itabm1)
695 IF(tagnodsub(i0) == itranssub)
THEN
697 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x0,j,rtrans)
716 IF(tagnodsub(i1) == itranssub)
THEN
718 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x1,j,rtrans)
723 x0(1) = x0(1) * fac_l
724 x0(2) = x0(2) * fac_l
725 x0(3) = x0(3) * fac_l
726 x1(1) = x1(1) * fac_l
727 x1(2) = x1(2) * fac_l
728 x1(3) = x1(3) * fac_l
732 rtrans(i,j+11) = x0(j)
736 rtrans(i,j+14) = x1(j)
739 WRITE(iout,900)
id,igu
740 IF (n0 > 0 .AND. n1 > 0)
WRITE(iout,200) n0,n1
741 WRITE(iout,910) x0(1),x0(2),x0(3),tx,ty,tz
743 ELSE IF (key(1:3) ==
'SCA')
THEN
747 CALL hm_get_intv(
'node1',n0,is_available,lsubmodel)
749 CALL hm_get_floatv(
'scalefactor_x',sx,is_available,lsubmodel,unitab)
750 CALL hm_get_floatv(
'scalefactor_y',sy,is_available,lsubmodel,unitab)
751 CALL hm_get_floatv(
'scalefactor_z',sz,is_available,lsubmodel,unitab)
753 IF (sx == zero) sx = one
754 IF (sy == zero) sy = one
755 IF (sz == zero) sz = one
762 i0 = usrtos(n0,itabm1)
777 IF(tagnodsub(i0) == itranssub)
THEN
779 IF(rtrans(j,1) == itranssub)
CALL rtranspos(x0,j,rtrans)
790 rtrans(i,j+11) = x0(j)
794 WRITE(iout,1000)
id,id_transsub
795 WRITE(iout,1010) rtrans(i,12),rtrans(i,13),rtrans(i,14),rtrans(i,20),rtrans(i,21),rtrans(i,22)
801 IF (
ALLOCATED(index))
DEALLOCATE(index)
802 IF (
ALLOCATED(index1))
DEALLOCATE(index1)
803 IF (
ALLOCATED(tagnodsub_tmp))
DEALLOCATE(tagnodsub_tmp)
804 IF (
ALLOCATED(idnodsub))
DEALLOCATE(idnodsub)
807 DEALLOCATE(tagnodsub)
811 .
' NODAL TRANSFORMATIONS '/,
812 .
' ---------------------- ')
813 200
FORMAT(10x,
' NODES N0 . . . . .= ',i10/,
814 . 10x,
' N1 . . . . .= ',i10)
816 .
' SUBMODEL TRANSLATION, TRANSFORMATION ID = ',i10/,
817 .
' SUBMODEL ID. . . . . . . . . . . .= ',i10/,
818 .
' TRANSLATION VECTOR :')
819 510
FORMAT(10x,
' VALUE. . . . . . . . . . . . .= ',e20.13/,
820 .
' COORDINATES X. . . . . . .= ',e20.13/,
821 .
' Y. . . . . . .= ',e20.13/,
822 .
' Z. . . . . . .= ',e20.13/,
823 .
' Skew_ID . . . . . . . . . . .= ',i10)
825 .
' SUBMODEL ROTATION, TRANSFORMATION ID. = ',i10/,
826 .
' SUBMODEL ID. . . . . . . . . . . .= ',i10/,
827 .
' ROTATION VECTOR: ')
828 610
FORMAT(10x,
' CENTER X. . . . . . .= ',e20.13/,
829 .
' Y. . . . . . .= ',e20.13/,
830 .
' Z. . . . . . .= ',e20.13/,
831 .
' DIRECTION X. . . . . . .= ',e20.13/,
832 .
' Y. . . . . . .= ',e20.13/,
833 .
' Z. . . . . . .= ',e20.13/,
834 .
' ANGLE . . . . . . .= ',e20.13)
836 .
' SUBMODEL MATRIX TRANSFORMATION, TRANSFORMATION ID.= ',i10/,
837 .
' SUBMODEL ID. . . . . . . . . . . .= ',i10/)
838 710
FORMAT(4x,
'MATRIX '/,
840 . 17x,
'M11',17x,
'M12',17x,
'M13',18x,
'TX' /,
842 . 17x,
'M21',17x,
'M22',17x,
'M23',18x,
'TY' /,
844 . 17x,
'M31',17x,
'M32',17x,
'M33',18x,
'TZ' /,
847 .
' SUBMODEL TRANSFORMATION WRT 6 POSITIONS'
848 .
' TRANSFORMATION ID. . . . . . . . . . . = '
849 .
' SUBMODEL ID. . . . . . . . . . . . . . = '
851 .
' CENTER N1 X1 . . . . . .= ',e20.13/,
852 .
' Y1 . . . . . .= ',e20.13/,
853 .
' Z1 . . . . . .= ',e20.13/,
854 .
' CENTER N4 X4 . . . . . .= ',e20.13/,
855 .
' Y4 . . . . . .= ',e20.13/,
856 .
' Z4 . . . . . .= ',e20.13/,
857 .
' ROTATION MATRIX . . . . . . . = ',/,
858 .
' . . . . . . . . M11 . . . . . . . . M12 . . . . . . . . M13',/,
860 .
' . . . . . . . . M21 . . . . . . . . M22 . . . . . . . . M23',/,
862 .
' . . . . . . . . M31 . . . . . . . . M32 . . . . . . . . M33',/,
865 .
' SUBMODEL TRANSFORMATION PLANE SYMMETRY',/,
866 .
' TRANSFORMATION ID. . . . . . . . . . . = '
867 .
' SUBMODEL ID. . . . . . . . . . . . . . = ',i10/)
868 910
FORMAT(10x,
' CENTER X. . . . . . .= '
869 .
' Y. . . . . . .= ',e20.13/,
870 .
' Z. . . . . . .= ',e20.13/,
871 .
' DIRECTION X. . . . . . .= ',e20.13/,
872 .
' Y. . . . . . .= ',e20.13/,
873 .
' Z. . . . . . .= ',e20.13)
876 .
' SUBMODEL SCALE',/,
877 .
' TRANSFORMATION ID. . . . . . . . . . . = ',i10/,
878 .
' SUBMODEL ID. . . . . . . . . . . . . . = ',i10/)
879 1010
FORMAT(10x,
' CENTER X. . . . . . .= ',e20.13/,
880 .
' Y. . . . . . .= ',e20.13/,
881 .
' Z. . . . . . .= ',e20.13/,
882 .
' SCALE X . . . . . .= ',e20.13/,
883 .
' Y . . . . . .= ',e20.13/,
884 .
' Z . . . . . .= ',e20.13)
886 3500
FORMAT( 17x,i10,3(5x,e20.13))