home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / e / e003 / 13.ddi / MYPLOT.FOR < prev    next >
Encoding:
Text File  |  1987-04-16  |  3.8 KB  |  143 lines

  1.       SUBROUTINE MYPLOT(X,Y,Z,IBC,LCDX,LCDY,DNX,DNY,DNZ,NCP,LCP,
  2.      1NGPT,NDF,NELT,NLCP,NEXT,IWTYP)
  3.       LOGICAL IGET,RGET
  4.       COMMON/UNIT/II11,II22
  5.       DIMENSION X(NGPT),Y(NGPT),Z(NGPT),IBC(NGPT),LCDX(NGPT),
  6.      1LCDY(NGPT),DNX(NDF),DNY(NDF),DNZ(NDF),NCP(NELT),LCP(NLCP)
  7.       DIMENSION IWTYP(NELT)
  8.       COMMON /PLT/DUMMY(18),SCALE,IBCS,IFILE(4)
  9.       COMMON/NSAP6/ISAP6,LOAD6,MODESH,FREQUE
  10.       DATA BLANK/1H /,UUU/1HU/
  11.       NUMBER=0
  12.       LOAD6=0
  13.       INEXT=-1
  14.       XMIN=10.E+20
  15.       XMAX=-10.E+20
  16.       XLEN=0.
  17.       YMIN=XMIN
  18.       YMAX=XMAX
  19.       ZMIN=XMIN
  20.       ZMAX=XMAX
  21.       DEFMAX=0.
  22.       MONE=-1
  23. 10    REWIND 19
  24.       DO    20 I=1,NGPT
  25.       READ(19)X(I),Y(I),Z(I)
  26.       XMIN=AMIN1(X(I),XMIN)
  27.       XMAX=AMAX1(X(I),XMAX)
  28.       YMIN=AMIN1(Y(I),YMIN)
  29.       YMAX=AMAX1(Y(I),YMAX)
  30.       ZMIN=AMIN1(Z(I),ZMIN)
  31.       ZMAX=AMAX1(Z(I),ZMAX)
  32. 20    CONTINUE
  33.       XLL=ABS(XMAX-XMIN)
  34.       YLL=ABS(YMAX-YMIN)
  35.       ZLL=ABS(ZMAX-ZMIN)
  36.       XLEN=AMAX1(XLEN,XLL,YLL,ZLL)
  37.       REWIND 17
  38. 30    READ(17,END=   40)NE12,MTMTYP
  39.       IWTYP(NE12)=MTMTYP
  40.       GO TO    30
  41. 40    CONTINUE
  42.       IF(ISAP6.NE.1)GO TO   160
  43.       IF(NEXT.EQ.0)GO TO 250
  44.       IF(IFILE(4).NE.32)GO TO   250
  45. 50    WRITE(*,   60)
  46. 60    FORMAT(' LOAD CASE OR MODE SHAPE NUMBER')
  47.       IHAST=0
  48.       WRITE(*,   70)
  49. 70    FORMAT(2H ?)
  50. 80    READ(*,*)LOAD6
  51.       IF(LOAD6.EQ.0)DUMMY(16)=UUU
  52.       IF(LOAD6.EQ.0)GO TO 250
  53.       REWIND 32
  54.       J6=1
  55. 90    READ(32,  100,END=  140,ERR=  120)IN6,IL6,P6X,P6Y,P6Z
  56. 100   FORMAT(2I5,3F20.10)
  57.       IF(IL6.EQ.LOAD6)GO TO   110
  58.       GO TO    90
  59. 110   DNX(J6)=P6X
  60.       DNY(J6)=P6Y
  61.       DNZ(J6)=P6Z
  62.       DEFMAX=AMAX1(DEFMAX,ABS(P6X),ABS(P6Y),ABS(P6Z))
  63.       IHAST=1
  64.       J6=J6+1
  65.       IF(J6.GT.NGPT)GO TO   140
  66.       GO TO    90
  67. 120   CONTINUE
  68.       WRITE(*,  130)
  69. 130   FORMAT('  INPUT CONVERSION ERROR ON UNIT 32 ')
  70.       GO TO   250
  71. 140   IF(IHAST.EQ.1)GO TO   250
  72.       WRITE(*,  150)LOAD6
  73. 150   FORMAT(' LOAD CASE OR MODE SHAPE = ',I4,' DOES NOT EXIST')
  74.       GO TO    50
  75. 160   IF(IFILE(4).EQ.0)GO TO   250
  76.       IF(NUMBER.EQ.0)GO TO 250
  77. 170   IF(NUMBER.EQ.1)GO TO   200
  78.       IRX=2
  79.       READ(33,210,END=340,ERR=340)IDUM
  80.       IF(IDUM.EQ.MONE)IRX=3
  81.       NUMBER=NUMBER-1
  82.       REWIND 33
  83.       DO 175 I=1,NUMBER
  84.       DO 173 K=1,NGPT
  85.       DO 173 J=1,IRX
  86. 173   READ(33,210)
  87.       READ(33,210)
  88. 175   CONTINUE
  89. 200   READ(33,  210)I
  90. 210   FORMAT(I5)
  91.       IF(I.EQ.0)GO TO   250
  92.       IF(I.NE.MONE)GO TO   230
  93.       BACKSPACE 33
  94.       READ(33,  220)I,MODESH,FREQUE
  95. 220   FORMAT(2I5,F20.10)
  96.       READ(33,  210)I
  97. 230   READ(33,  240)DNX(I),DNY(I),DNZ(I)
  98.       DEFMAX=AMAX1(DEFMAX,ABS(DNX(I)),ABS(DNY(I)),
  99.      &ABS(DNZ(I)))
  100. 240   FORMAT(F20.10,1X,F20.10,1X,F20.10)
  101.       GO TO   200
  102. 250   N1=1
  103.       IF(NEXT.EQ.1)GO TO 262
  104.       DO   260 I=1,NELT
  105.       READ(19)NCP(I)
  106.       IF(NCP(I).EQ.0)GO TO   260
  107.       N2=N1+NCP(I)-1
  108.       READ(19)(LCP(J),J=N1,N2)
  109.       N1=N2+1
  110. 260   CONTINUE
  111. 262   CONTINUE
  112.       MAXL=1
  113.       IF(INEXT.GE.1)GO TO 280
  114.       IF(DEFMAX.NE.0.0)GO TO   270
  115.       SCALE=0.0
  116.       GO TO   280
  117. 270   SCALE=XLEN/(10.*DEFMAX)
  118. 280   CALL ELTPLT(NLCP,NDF,MAXL,NGPT,NELT,NCP,LCP,X,Y,Z,DNX,DNY,DNZ
  119.      1,LCDX,LCDY,IBC,IWTYP,NEXT)
  120.       IF(IFILE(4).EQ.0)GO TO   320
  121.       INEXT=INEXT+1
  122.       NEXT=1
  123.       IF(ISAP6.EQ.1)GO TO    40
  124.       WRITE(*,  290)
  125. 290   FORMAT('  INPUT STEP NUMBER ','?')
  126. 300   FORMAT(' ?')
  127. 310   CALL GETNL(GET001)
  128.       IF(IGET(NUMBER))GO TO   310
  129.       IF(NUMBER.LT.0)NUMBER=0
  130.       LOAD6=NUMBER
  131.       IF(NUMBER.EQ.0)DUMMY(16)=UUU
  132.       GO TO    40
  133. 320   WRITE(*,  330)
  134. 330   FORMAT(' THE DEFLECTED-SHAPE FILE IS EMPTY.')
  135.       CALL BELL
  136.       DUMMY(16)=UUU
  137.       RETURN
  138. 340   NEXT=0
  139.       WRITE(*,  350)
  140. 350   FORMAT(' THE DEFLECTED-SHAPE FILE CONTAINS NO MORE DATA')
  141.       RETURN
  142.       END
  143.