home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / e / e003 / 13.ddi / PO1.FOR < prev    next >
Encoding:
Text File  |  1987-10-29  |  25.8 KB  |  960 lines

  1.       PROGRAM POST
  2.       COMMON  A(25000)
  3.       COMMON/PLT/DUMMY1(20),IFILE(4)
  4.       COMMON/CALCOM/DUM1(3)
  5.       COMMON/ELRANG/DUM2(21)
  6.       COMMON/GROUP/DUM3(304)
  7.       COMMON/HIDDEN/DUM4(3002)
  8.       COMMON/HP21/DUM5(5)
  9.       COMMON/IWINDO/DUM6(6)
  10.       COMMON/JUNK/DUM7(205)
  11.       COMMON/IFORMT/IFORM
  12.       COMMON/MSTREE/DUM8(4)
  13.       COMMON/PREP/DUM10(25)
  14.       COMMON/RAMTEK/DUM11(4)
  15.       COMMON/ROTAT/DUM12(4)
  16.       COMMON/SENOD1/DUM14(21)
  17.       COMMON/SHLOAD/DUM15(14)
  18.       COMMON/SHRINK/DUM16(2)
  19.       COMMON/STRESS/DUM17(10006)
  20.       COMMON/TRASH/DUM18(201)
  21.       COMMON/CDC100/IJJJ
  22.       COMMON/WATYPE/DUM21(21)
  23.       COMMON/FRECNT/LINE(80),DUM22(17)
  24.       COMMON/FRECNM/MULTIP
  25.       COMMON/VS11VA/IVS11,DUM20(2)
  26.       COMMON/IGL100/IGLKEY,IBAUD,IDEV,IOPT,PXSIZE,PYSIZE,TIM10
  27.       COMMON/NSAP6/ISAP6,DUM9(3)
  28.       COMMON/STOR20/NGPT,N14,MTOT
  29.       COMMON/MES/DUMMY2(23)
  30.       COMMON/PT/DUMMY3(5)
  31.       COMMON/BX/DUMMY4(15)
  32.       COMMON/ANG/DUMMY5(8)
  33.       COMMON/PAR/DUMMY6(6)
  34.       COMMON/ELARRY/NELAR(4,20)
  35.       COMMON/UNIT/II11,II22,DUM19(4)
  36.       COMMON/KAMY/DUM23(44)
  37.       COMMON/TITEL1/DUM24(26)
  38.       DATA IYES/1HY/,NO/1HN/
  39.       CALL STIME
  40.       CALL SECOND(TIM10)
  41.       MTOT=25000
  42.       ISAP6=1
  43.       IJJJ=0
  44.       II11=5
  45.       II22=2
  46.       IFILE(1)=17
  47.       IFILE(2)=18
  48.       IFILE(3)=19
  49.       IFILE(4)=20
  50.       IGLKEY=0
  51.       IVS11=0
  52.       IDFL=IYES
  53.       IFORM=1
  54.       IERROR=0
  55.       CALL OFILES(ERROR)
  56.       IF(IERROR.EQ.1)GO TO 300
  57.       IF(IFILE(4).EQ.0)IDFL=NO
  58. 110   CALL CRNCH6(MTOT,NRES)
  59. 199   NEXT=0
  60. 200   REWIND 18
  61.       READ(18)NGPT,NELT,NLCP
  62.       NLCP=IABS(NLCP)
  63.       NDF=NGPT
  64.       IF(IDFL.NE.IYES)NDF=1
  65.       N1=1
  66.       N2=N1+NGPT
  67.       N3=N2+NGPT
  68.       N4=N3+NGPT
  69.       N5=N4+NGPT
  70.       N6=N5+NGPT
  71.       N7=N6+NGPT
  72.       N8=N7+NDF
  73.       N9=N8+NDF
  74.       N10=N9+NDF
  75.       N11=N10+NELT
  76.       N12=N11+NLCP
  77.       N13=N12+NELT+1
  78.       N14=N13+NELT+1
  79. C     IF(N14.GT.MTOT)CALL ERROR(N14-MTOT)
  80.       CALL MYPLOT(A(N1),A(N2),A(N3),A(N4),A(N5),A(N6),A(N7),
  81.      1A(N8),A(N9),A(N10),A(N11),NGPT,NDF,NELT,NLCP,NEXT,A(N13))
  82.       IF(NEXT.EQ.1)GO TO 199
  83. 300   STOP
  84.       END
  85.       BLOCK DATA
  86.       INTEGER SECT,POINT,BEGIN,GETSEC,EPOINT,BLANK,AGET,AGETW
  87.       LOGICAL EOL,EOS,EOF,ERROR,INDEX,GETWRD,IGET,RGET,ERR1
  88.       COMMON/ELARRY/NELAR(4,20)
  89.       COMMON  /FRECNT/ LINE(80),SECT,EOL,EOS,EOF,
  90.      1ERROR,BLANK,ICOMMA,POINT,BEGIN,LENGTH,
  91.      2EPOINT,NSECT,LINENM,MAXSTR,KUNIT,JUNIT,IUNIT
  92.       COMMON /FRECNM/MULTIP
  93.       DATA MULTIP/0/
  94.       DATA BLANK/1H /,ICOMMA/1H,/,ERROR/.FALSE./,
  95.      2POINT/1/,BEGIN/1/,LENGTH/0/,EPOINT/1/,
  96.      3LINE/80*1H /,MAXSTR/1/,LINENM/1/
  97.       DATA NELAR/2,2,6,2,
  98.      13,2,12,26,
  99.      14,4,12,8,
  100.      14,4,8,4,
  101.      18,8,33,54,
  102.      14,4,42,12,
  103.      11,1,1,1,
  104.      14,4,8,4,
  105.      13,2,12,39,
  106.      120,20,60,54,
  107.      18,8,16,52,
  108.      18,8,16,52,
  109.      18,8,16,52,
  110.      14,1,6,6,
  111.      18,8,16,52,
  112.      19,9,27,52,
  113.      120,20,40,40,
  114.      116,16,32,52,8*0/
  115.       END
  116.       SUBROUTINE ANGS
  117.       COMMON /MES/L(10),V(10)
  118.       COMMON /ANG/H,SX,SY,CX,CY,IDC(3)
  119.       IF(L(1).EQ.0.0.AND.L(2).EQ.0.0.AND.L(3).EQ.0.0)GO TO 40
  120.       SX=0.
  121.       DO 11 I=1,3
  122.       IDC(I)=L(I)
  123.       V(I)=L(I)
  124. 11    SX=SX+V(I)*V(I)
  125.       SX=SQRT(SX)
  126.       DO 21 I=1,3
  127. 21    V(I)=V(I)/SX
  128.       SX=V(2)
  129.       CX=1.-SX*SX
  130.       IF (CX .EQ. 0.) GO TO 31
  131.       CX=SQRT(CX)
  132.       SY=-V(1)/CX
  133.       CY=V(3)/CX
  134.       RETURN
  135. 31    SY=0.
  136.       CY=1.
  137. 40    RETURN
  138.       END
  139.       SUBROUTINE AXESPT
  140.       COMMON /PLT/IPN,IEN,ILN,XB,YB,SC,SCL,SCD,SCFL,SCFD
  141.       COMMON/RAMTEK/MTEK1
  142.       COMMON/UNIT/I1,I2
  143.       CALL OFFSET (0)
  144.       CALL PLTAXS (1,SC)
  145.       CALL HOME
  146.       RETURN
  147.       END
  148.       SUBROUTINE BOX
  149.       COMMON /MES/L(10),V(10)
  150.       COMMON /BX/BM(3),BLM(6),BLS(6)
  151.       DO 21 I=1,5,2
  152.       I1=I+1
  153.       IF (V(I) .EQ. V(I1)) GO TO 11
  154.       BLM(I)=V(I)
  155.       BLM(I1)=V(I1)
  156.       GO TO 21
  157. 11    BLM(I)=BLS(I)
  158.       BLM(I1)=BLS(I1)
  159. 21    CONTINUE
  160.       DO 31 I=1,3
  161.       I1=2*I
  162. 31    BM(I)=.5*(BLM(I1-1)+BLM(I1))
  163.       RETURN
  164.       END
  165.       SUBROUTINE COMM
  166.       REAL*8 TIT6(13),BLAN8
  167.       INTEGER*2 NOFF(42),BLANK1,IPLAS
  168.       LOGICAL RGET,IGET
  169.       DIMENSION TF(42),LF(41),IDEGR(6),KGROUP(1000)
  170.       COMMON A(25000)
  171.       COMMON/STOR20/NGPT10,N1410,MTOT
  172.       COMMON/VS11VA/IVS11,IMOVE,NSTEP
  173.       COMMON /PLT/IPN,IEN,ILN,XB,YB,SC,SCL,SCD,SCFL,SCFD,ISR,INR,LABL
  174.      1,TYPEU,TYPED,WHAT,LNTYPD,LNTYPU,SCALE,IBCS,IPOINT,ILOAD,I33,I32
  175.       COMMON /MES/L(9),NPR,V(10),I,IS,IERR
  176.       COMMON/BOUND1/IDEGR
  177.       COMMON/UNIT/II11,II22
  178.       COMMON/HIDDEN/IHIDE,NTHIDE,NHIDE(2000)
  179.       COMMON/SHOWAX/ISHOW1
  180.       COMMON/CALCOM/ICAL,XSIZE,YSIZE
  181.       COMMON/MSTREE/S100,S101,KALOR
  182.       COMMON/SHLOAD/ LOAD6,JLOAD(6),SSS1(6),LCASE
  183.       COMMON/RAMTEK/MTEK1,SRAM1
  184.       COMMON/NSAP6/ISAP6,NUMBER
  185.       COMMON/IGL100/IGLKEY,IBAUD,IDEV,IOPT,PXSIZE,PYSIZE,TIM10
  186.       COMMON/ROTAT/IROT,TETA,DIREC,ANTETA
  187.       COMMON/WATYPE/KSTYPE,KOST(20)
  188.       COMMON/SENOD1/ISEND,IR0(2,10)
  189.       COMMON/GROUP/IGR1,IFG1,ILAG1,ITOTG1,IGROUP(100,3)
  190.       COMMON/IWINDO/IWIND,XM1,XM2,YM1,YM2,WINLEN
  191.       COMMON/BOXELN/BASH
  192.       COMMON/ELRANG/IRANG,IRA0(2,10)
  193.       COMMON/SHRINK/ISHR1,SHFACT
  194.       COMMON/STRESS/IFLOK,IST1,SCL1,NSIG,IDIR1
  195.       COMMON/HP21/IHP21
  196.       COMMON/TITEL1/TIT6
  197.       COMMON/WHICHF/IB9,IL9
  198.       DIMENSION N1(40),XR0(2,10),WIND1(10),WIND2(6)
  199.       DATA IPLAS/1H+/,DDDD/1HD/,SSSS/1HS/,UUUU/1HU/,YESYES/1HY/
  200.       DATA BLAN8/4H    /,CCC/1HC/
  201.       DATA TF(1),TF(2),TF(3)/2HPN,2HEN,4HELTS/
  202.       DATA LF(1),LF(2),LF(3)/0,0,0/
  203.       DATA TF(4),TF(5),TF(6)/4HDOTS,4HVDIR,3HBOX/
  204.       DATA LF(4),LF(5),LF(6)/0,30,6/
  205.       DATA TF(7),TF(8),TF(9)/3HVPT,4HRESE,4HPLOT/
  206.       DATA LF(7),LF(8),LF(9)/1,0,0/
  207.       DATA TF(10)/4HNEXT/
  208.       DATA LF(10)/0/
  209.       DATA TF(11)/4HLABE/
  210.       DATA LF(11)/0/
  211.       DATA TF(12),LF(12)/4HSCAL,1/
  212.       DATA TF(13),LF(13)/3HBCS,0/
  213.       DATA TF(14)/4HEXIT/
  214.       DATA TF(15)/4HSHOW/
  215.       DATA TF(16)/4HHELP/
  216.       DATA TF(17)/4HCOOR/
  217.       DATA TF(18)/4HHIST/
  218.       DATA TF(19)/2HHP/
  219.       DATA TF(20)/3HSTR/
  220.       DATA TF(21)/4HTITL/
  221.       DATA TF(22)/4HSHRI/
  222.       DATA TF(23)/4HSELE/
  223.       DATA TF(24)/4HWION/
  224.       DATA TF(25)/4HWIOF/
  225.       DATA TF(26)/4HROTA/
  226.       DATA TF(27)/4HSEND/
  227.       DATA TF(28)/4HSTYP/
  228.       DATA TF(29)/4HCHAR/
  229.       DATA TF(30)/4HEDIT/
  230.       DATA TF(31)/4HGROU/
  231.       DATA TF(32)/4HRAMT/
  232.       DATA TF(33)/4HLOAD/
  233.       DATA TF(34)/4HCAL /
  234.       DATA TF(35)/4HAXIS/
  235.       DATA TF(36)/4HHIDE/
  236.       DATA TF(37)/3HIGL/
  237.       DATA TF(38)/4HMOVE/
  238.       DATA TF(40)/4H    /
  239.       DATA TF(41)/4HWAIT/,TF(42)/4HLINE/,OOO/1H0/,IWHAT/0/
  240.       DATA BL/1H /,BBBB/1HB/
  241.       DATA BLANK1/1H /,PERRI/4HPERI/
  242.       DATA N1/35,13,6,34,29,17,4,30,3,2,14,31,16,36,18,19,37,11,33
  243.      1,38,10,9,1,32,8,26,12,23,27,15,22,20,28,21,5,7,25,24,42,40/
  244.       DATA WIND1/4HDIGI,4HTIZE,4H WIN,4HDOW ,4H,BOT
  245.      1,4HTOM ,4HLEFT,4H HAN,4HD CO,4HRNER/
  246.       DATA WIND2/4HTOP ,4HRIGH,4HT HA,4HND C,4HORNE,1HR/
  247. 10    DO    20 L9L=1,42
  248. 20    NOFF(L9L)=BLANK1
  249.       WINLEN=800.0
  250.       IF(IPN.EQ.1)NOFF(1)=IPLAS
  251.       IF(IEN.EQ.1)NOFF(2)=IPLAS
  252.       IF(ILN.EQ.1)NOFF(3)=IPLAS
  253.       IF(LABL.EQ.1)NOFF(11)=IPLAS
  254.       IF(IPOINT.EQ.1)NOFF(4)=IPLAS
  255.       IF(IBCS.EQ.1)NOFF(13)=IPLAS
  256.       IF(IHP21.EQ.1)NOFF(19)=IPLAS
  257.       IF(IST1.EQ.1)NOFF(20)=IPLAS
  258.       IF(ISHR1.EQ.1)NOFF(22)=IPLAS
  259.       IF(IRANG.EQ.1)NOFF(23)=IPLAS
  260.       IF(IWIND.EQ.1)NOFF(24)=IPLAS
  261.       IF(IROT.EQ.1)NOFF(26)=IPLAS
  262.       IF(ISEND.EQ.1)NOFF(27)=IPLAS
  263.       IF(KSTYPE.EQ.1)NOFF(28)=IPLAS
  264.       IF(IGR1.EQ.1)NOFF(31)=IPLAS
  265.       IF(LOAD6.EQ.1)NOFF(33)=IPLAS
  266.       IF(ICAL.EQ.1)NOFF(34)=IPLAS
  267.       IF(ISHOW1.EQ.1)NOFF(35)=IPLAS
  268.       IF(IHIDE.EQ.1)NOFF(36)=IPLAS
  269.       IF(IMOVE.EQ.1)NOFF(38)=IPLAS
  270.       GO TO 200
  271. 25    I=42
  272.       IS=42
  273. 26    CONTINUE
  274. 60    FORMAT(A1)
  275.       IWHAT=0
  276. 70    WRITE(*,   80)
  277. 80    FORMAT(' LINE FOR UNDEFORMED STRUCTURE ? (SOLID, DASHED OR NONE)')
  278. 90    WRITE(*,  85 )
  279. 85    FORMAT('  (S/D/0) ?')
  280.       READ(*,   60,ERR=   90)TYPEU
  281.       IF(TYPEU.EQ.BL)TYPEU=OOO
  282.       IF(TYPEU.EQ.OOO)GO TO 120
  283.       WHAT=UUUU
  284.       IF(TYPEU.EQ.SSSS)GO TO   120
  285.       WRITE(*,  170)
  286.       WRITE(*,  430)
  287. 100   READ(*,  190,ERR=  460)LNTYPU
  288.       IF(LNTYPU.LE.0)LNTYPU=3434
  289.       IF(IGLKEY.EQ.1.AND.LNTYPU.LE.0)LNTYPU=4
  290. 120   IF(NUMBER.EQ.0)GO TO 200
  291.       WRITE(*,  140)
  292. 130   WRITE(*,85)
  293. 140   FORMAT(' LINE FOR DEFORMED STRUCTURE ? (SOLID, DASHED OR NONE)')
  294.       READ(*,   60,ERR=  130)TYPED
  295. 150   FORMAT('   DEFAULT DEFORMED SCALE = ',E12.5)
  296.       IF(TYPED.EQ.BL)TYPED=OOO
  297.       IF(TYPED.EQ.OOO)GO TO 200
  298.       WHAT=DDDD
  299.       IF(TYPEU.NE.OOO)WHAT=BBBB
  300.       IWHAT=1
  301.       IF(TYPED.EQ.SSSS)GO TO   195
  302. 160   WRITE(*,  170)
  303.       WRITE(*,  430)
  304. 170   FORMAT('  TYPE DASHED LINE CODE OR HIT CARRIAGE RETURN ')
  305. 180   READ(*,  190,ERR=  470)LNTYPD
  306.       IF(LNTYPD.LE.0)LNTYPD=3434
  307.       IF(LNTYPD.LE.0.AND.IGLKEY.EQ.1)LNTYPD=4
  308. 190   FORMAT(I4)
  309. 195   IF(I.EQ.10)RETURN
  310. 200   IF (IS .EQ. 9) GO TO   290
  311.       IF(IS.NE.0)GO TO   280
  312.       CALL NEWPAG
  313.       WRITE(*,211)
  314. 211   FORMAT(10X,'*** PLEASE ENTER POST MAIN LEVEL COMMANDS ***')
  315.       GO TO 280
  316. 215   CONTINUE
  317.       WRITE(*,  220)
  318. 220   FORMAT(24X,'*** P O S T  JAN-1982 ***')
  319.       WRITE(*,  230)
  320. 230   FORMAT(3X,67(1H-))
  321.       WRITE(*,  240)
  322. 240   FORMAT(3X,1H ,15X,'COMMAND SELECTION')
  323.       WRITE(*,  250)
  324. 250   FORMAT(3X,1H ,8X,'+ ,MEANS THAT THE <ON/OFF> SWITCH IS <ON>.')
  325.       WRITE(*,  230)
  326.       DO   270 NN=1,38,4
  327.       K1=N1(NN)
  328. 260   FORMAT(3X,1H ,4(5X,A4,2X,A1,2X,1H,),5X,1H )
  329.       K2=N1(NN+1)
  330.       K3=N1(NN+2)
  331.       K4=N1(NN+3)
  332.       WRITE(*,  260)TF(K1),NOFF(K1),TF(K2),NOFF(K2)
  333.      1,TF(K3),NOFF(K3),TF(K4),NOFF(K4)
  334. 270   CONTINUE
  335.       WRITE(*,  230)
  336. 280   WRITE(*,  400)
  337. 290   READ(*,  410,ERR=  810)ANS,HELPA
  338.       IF(TF(41).EQ.ANS) GOTO 1680
  339.       IF(TF(42).EQ.ANS)GO TO 25
  340.       DO   300 IS=1,38
  341.       IF (TF(IS) .EQ. ANS) GO TO   310
  342. 300   CONTINUE
  343.       IF (ANS .NE. BL) WRITE(*,  420)
  344.       GO TO   280
  345. 310   I=IS
  346.       GO TO (  750, 1610,  760,  770,  320,  320,  320,  320,  320,392
  347.      1,  780,  320,  480, 1660,  215,  280,  370, 1440,  800, 1460
  348.      2, 1000, 1040, 1080, 1140, 1130, 1240,  950, 1310, 1360,  370
  349.      3,  820,  380,  550,  640,  740,  700,  680,  910),I
  350.       WRITE(*,  420)
  351.       GO TO   280
  352. 320   IF (LF(I).EQ. 0)RETURN
  353. 330   WRITE(*,  430)
  354. 340   CONTINUE
  355.       IF(I.NE.5)GO TO   350
  356.       CALL GETNL(GET001)
  357.       IF(IGET(L(1)))GO TO   340
  358.       IF(IGET(L(2)))GO TO   340
  359.       IF(IGET(L(3)))GO TO   340
  360.       IF(IHIDE.EQ.1)WRITE(*, 1650)
  361.       IF(IHIDE.EQ.1)IHIDE=-1
  362. 350   IF(I.NE.6)GO TO   360
  363.       CALL GETNL(GET001)
  364.       IF(RGET(V(1)))GO TO   340
  365.       IF(RGET(V(2)))GO TO   340
  366.       IF(RGET(V(3)))GO TO   340
  367.       IF(RGET(V(4)))GO TO   340
  368.       IF(RGET(V(5)))GO TO   340
  369.       IF(RGET(V(6)))GO TO   340
  370. 360   IF(LF(I).NE.1)RETURN
  371.       WRITE(*,  150)SCALE
  372.       WRITE(*,  430)
  373.       CALL GETNL(GET001)
  374.       IF(RGET(V(1)))GO TO   340
  375.       IF(V(1).EQ.0.0)V(1)=SCALE
  376. 370   RETURN
  377. 380   MTEK1=-MTEK1
  378.       WRITE(*, 1650)
  379.       GO TO    10
  380. 392   CONTINUE
  381.       NUMBER=1
  382.       IF(IWHAT.EQ.0)GO TO 26
  383.       RETURN
  384. 400   FORMAT (2H &)
  385. 410   FORMAT (A4,1X,A4)
  386. 420   FORMAT (16H ILLEGAL COMMAND)
  387. 430   FORMAT (2H ?)
  388. 440   FORMAT(' ILLEGAL DATA ,INPUT DATA AGAIN ')
  389. 450   WRITE(*,  440)
  390.       GO TO   330
  391. 460   WRITE(*,  440)
  392.       GO TO   100
  393. 470   WRITE(*,  440)
  394.       GO TO   180
  395. 480   WRITE(*,  510)
  396. 510   FORMAT('  UNAVAILABLE COMMAND ON AT')
  397.       GOTO 10
  398. 550   WRITE(*,  630)
  399. 630   FORMAT(' UNAVAILABLE COMMAND ON AT')
  400.       GO TO    10
  401. 640   ICAL=-ICAL
  402.       IF(ICAL.EQ.1)GO TO   650
  403.       WRITE(*, 1650)
  404.       GO TO    10
  405. 650   WRITE(*,  660)
  406. 660   FORMAT(' INPUT PLOT SIZE . X,Y (INCH)')
  407.       WRITE(*,  430)
  408. 670   CALL GETNL(GET001)
  409.       IF(RGET(XSIZE))GO TO   670
  410.       IF(RGET(YSIZE))GO TO   670
  411.       IF(XSIZE.LE.0)XSIZE=7.0
  412.       IF(YSIZE.LE.0)YSIZE=7.0
  413.       GO TO    10
  414. 680   IGLKEY=-IGLKEY
  415.       WRITE(*, 1650)
  416.       GO TO    10
  417. 700   IHIDE=-IHIDE
  418.       IF(IHIDE.EQ.1)GO TO   710
  419.       WRITE(*, 1650)
  420.       GO TO    10
  421. 710   WRITE(*,  720)
  422. 720   FORMAT(' *** START FINDING HIDDEN NODES ***')
  423.       CALL SECOND(T1T1)
  424.       NN1=N1410
  425.       N2=NN1+NGPT10
  426.       N3=N2+NGPT10
  427.       N4=N3+NGPT10
  428.       N5=N4+NGPT10
  429.       N6=N5+NGPT10
  430.       N7=N6+NGPT10
  431.       N8=N7+NGPT10
  432.       N9=N8+NGPT10
  433.       N10=N9+NGPT10
  434.       N11=N10+NGPT10
  435.       IF(N11.GT.MTOT)CALL ERROR(N11-MTOT)
  436.       CALL FINODE(NGPT10,A(NN1),A(N2),A(N3),A(N4),A(N5),A(N6)
  437.      1,A(N7),A(N8),A(N9),A(N10))
  438.       CALL SECOND(T1T2)
  439.       T1TT=T1T2-T1T1
  440.       WRITE(*,  730)T1TT
  441. 730   FORMAT(' --- TOTAL CPU USED TO FIND THE HIDDEN NODES ',F12.3
  442.      1,' SECONDS ---')
  443.       GO TO    10
  444. 740   CONTINUE
  445. 1111  FORMAT (' UNAVAILABLE COMMAND ON AT !')
  446.       WRITE(*, 1111)
  447.       GO TO    10
  448. 750   IF(IPN.EQ.1)GO TO  1640
  449.       RETURN
  450. 760   IF(ILN.EQ.1)GO TO  1640
  451.       RETURN
  452. 770   IF(IPOINT.EQ.1)GO TO  1640
  453.       RETURN
  454. 780   IF(LABL.EQ.1)GO TO  1640
  455.       RETURN
  456. 800   IF(IGLKEY.NE.1)IHP21=-IHP21
  457.       WRITE(*, 1650)
  458.       GO TO    10
  459. 810   WRITE(*,  420)
  460.       GO TO   280
  461. 820   IF(ISAP6.NE.1)GO TO   840
  462.       WRITE(*,  830)
  463. 830   FORMAT(' THIS COMMAND IS ONLY FOR SAP6NL PROGRAM ')
  464.       GO TO    10
  465. 840   IGR1=-IGR1
  466.       IF(IGR1.EQ.1)GO TO   850
  467.       WRITE(*, 1650)
  468.       GO TO    10
  469. 850   WRITE(*,  860)
  470. 860   FORMAT(' TYPE ELEMENT GROUP NUMBER')
  471.       WRITE(*,  430)
  472. 870   CALL GETNL(GET001)
  473.       IF(IGET(ISE1))GO TO   870
  474.       DO   880 MG1=1,ITOTG1
  475.       IF(IGROUP(MG1,1).EQ.ISE1)GO TO   900
  476. 880   CONTINUE
  477.       WRITE(*,  890)ISE1
  478. 890   FORMAT(' ELEMENT GROUP NUMBER = ',I5,' DOES NOT EXIST')
  479.       GO TO   850
  480. 900   IFG1=IGROUP(MG1,2)
  481.       ILAG1=IGROUP(MG1,3)
  482.       GO TO    10
  483. 910   IMOVE=-IMOVE
  484.       IF(IMOVE.EQ.1)GO TO   920
  485.       WRITE(*, 1650)
  486.       GO TO    10
  487. 920   WRITE(*,  930)
  488. 930   FORMAT(' .INPUT THE NUMBER OF MOVE INCREMENTS.')
  489.       WRITE(*,  430)
  490. 940   CALL GETNL(GET001)
  491.       IF(IGET(NSTEP))GO TO   940
  492.       IF(NSTEP.LE.0)NSTEP=8
  493.       GO TO    10
  494. 950   ISEND=-ISEND
  495.       IF(ISEND.EQ.1)GO TO   960
  496.       WRITE(*, 1650)
  497.       GO TO    10
  498. 960   WRITE(*,  970)
  499. 970   FORMAT(' TYPE NODE RANGE (MAY TYPE UP TO 10 GROUP)')
  500.       WRITE(*,  430)
  501. 980   CALL GETNL(GET001)
  502.       DO   990 LL=1,10
  503.       IF(IGET(IR0(1,LL)))GO TO   980
  504.       IF(IGET(IR0(2,LL)))GO TO   980
  505. 990   CONTINUE
  506.       GO TO    10
  507. 1000  WRITE(*, 1010)
  508. 1010  FORMAT('  TYPE PLOT TITLE:')
  509.       WRITE(*,  430)
  510.       DO  1020 JJ211=1,13
  511. 1020  TIT6(JJ211)=BLAN8
  512.       READ(*, 1030,ERR= 1000)TIT6
  513. 1030  FORMAT(13A4)
  514.       GO TO   280
  515. 1040  ISHR1=-ISHR1
  516.       IF(ISHR1.EQ.1)GO TO  1050
  517.       WRITE(*, 1650)
  518.       GO TO   280
  519. 1050  WRITE(*, 1060)
  520. 1060  FORMAT(' TYPE SHRINK FACTOR ')
  521.       WRITE(*,  430)
  522. 1070  CALL GETNL(GET001)
  523.       IF(RGET(SHFACT))GO TO  1070
  524.       IF(SHFACT.GT.1)SHFACT=1
  525.       IF(SHFACT.LE.0)SHFACT=0.8
  526.       GO TO   280
  527. 1080  IRANG=-IRANG
  528.       IF(IRANG.EQ.1)GO TO  1090
  529.       WRITE(*, 1650)
  530.       GO TO   280
  531. 1090  WRITE(*, 1100)
  532. 1100  FORMAT('  ELEMENT RANGE (MAY TYPE UP TO 10 DIFFERENT GROUPS)')
  533.       WRITE(*,  430)
  534. 1110  CALL GETNL(GET001)
  535.       DO  1120 LL=1,10
  536.       IF(IGET(IRA0(1,LL)))GO TO  1110
  537.       IF(IGET(IRA0(2,LL)))GO TO  1110
  538. 1120  CONTINUE
  539.       GO TO    10
  540. 1130  IWIND=-1
  541.       WRITE(*, 1650)
  542.       XM1=0.
  543.       XM2=800.
  544.       YM1=0.
  545.       YM2=800.
  546.       GO TO    10
  547. 1140  WRITE(*, 1150)
  548. 1150  FORMAT(' USING CURSOR ?   `Y/N!')
  549.       WRITE(*,  430)
  550.       READ(*,   60,ERR= 1140)AN1
  551.       IF(AN1.EQ.YESYES)GO TO  1200
  552. 1160  WRITE(*, 1170)
  553. 1170  FORMAT('  INPUT SCREEN WINDOW MINX,MAXX,MINY,MAXY ')
  554.       WRITE(*,  430)
  555. 1180  CALL GETNL(GET001)
  556.       IF(IGET(MINX))GO TO  1180
  557.       IF(IGET(MAXX))GO TO  1180
  558.       IF(IGET(MINY))GO TO  1180
  559.       IF(IGET(MAXY))GO TO  1180
  560.       XM1=FLOAT(MINX)
  561.       XM2=FLOAT(MAXX)
  562.       YM1=FLOAT(MINY)
  563.       YM2=FLOAT(MAXY)
  564.       GO TO  1210
  565. 1200  CALL MOVABS(20,20)
  566.       CALL ANMODE
  567.       CALL TEXT10(WIND1,40)
  568.       CALL VCURSR(IC1,XM1,YM1)
  569.       CALL MOVABS(600,700)
  570.       CALL ANMODE
  571.       CALL TEXT10(WIND2,21)
  572.       CALL VCURSR(IC1,XM2,YM2)
  573. 1210  DIFX=XM2-XM1
  574.       DIFY=YM2-YM1
  575.       IF(DIFX.GT.DIFY)GO TO  1220
  576.       XM2=XM1+DIFY
  577.       GO TO  1230
  578. 1220  YM2=YM1+DIFX
  579. 1230  I=9
  580.       RETURN
  581. 1240  IROT=-IROT
  582.       IF(IROT.EQ.1)GO TO  1250
  583.       WRITE(*, 1650)
  584.       GO TO    10
  585. 1250  WRITE(*, 1260)
  586. 1260  FORMAT('  AXES FOR ROTATION ,X,Y,Z ')
  587.       WRITE(*,  430)
  588.       READ(*, 1270,ERR= 1250)DIREC
  589. 1270  FORMAT(A1)
  590. 1280  WRITE(*, 1290)
  591. 1290  FORMAT('  ANGLE OF ROTATION')
  592.       WRITE(*,  430)
  593. 1300  CALL GETNL(GET001)
  594.       IF(RGET(TETA))GO TO  1300
  595.       ANTETA=TETA
  596.       TETA=4.*ATAN(1.0)*(TETA)/180.0
  597.       RETURN
  598. 1310  KSTYPE=-(KSTYPE)
  599.       IF(KSTYPE.EQ.1)GO TO  1320
  600.       WRITE(*, 1650)
  601.       GO TO    10
  602. 1320  WRITE(*, 1330)
  603. 1330  FORMAT(' SELECT ELEMENT TYPE (1,2,4,..) ,RETURN SELECT ALL ')
  604.       WRITE(*,  430)
  605. 1340  CALL GETNL(GET001)
  606.       DO  1350 JOJO=1,20
  607.       IF(IGET(KOST(JOJO)))GO TO  1340
  608. 1350  CONTINUE
  609.       GO TO    10
  610. 1360  WRITE(*, 1370)
  611. 1370  FORMAT(' SELECT CHARACTER SIZE (1,2,3,4) 4014/15 ONLY ')
  612.       WRITE(*,  430)
  613. 1380  CALL GETNL(GET001)
  614.       IF(IGET(ICHAR))GO TO  1380
  615.       IF(ICHAR.LE.0)ICHAR=1
  616. 1430  CALL TERM(3,1024)
  617.       CALL CHRSIZ(ICHAR)
  618.       GO TO    10
  619. 1440  XSAVE1=XM1
  620.       XSAVE2=XM2
  621.       YSAVE1=YM1
  622.       YSAVE2=YM2
  623.       WINLEN=1024.
  624. 1450    CONTINUE
  625. C1450  CALL PCURVE
  626.       WINLEN=800.0
  627.       XM1=XSAVE1
  628.       XM2=XSAVE2
  629.       YM1=YSAVE1
  630.       YM2=YSAVE2
  631.       GO TO   280
  632. 1460  IF(IFLOK.EQ.1)GO TO  1490
  633. 1470  WRITE(*, 1480)
  634. 1480  FORMAT(' THERE IS NO STRESS FILE ')
  635.       GO TO   280
  636. 1490  IST1=-IST1
  637.       IF(IST1.EQ.1)GO TO  1500
  638.       WRITE(*, 1650)
  639.       KALOR=0
  640.       GO TO    10
  641. 1500  WRITE(*, 1510)
  642. 1510  FORMAT(' TYPE STRESS COLUMN ')
  643.       WRITE(*,  430)
  644. 1520  CALL GETNL(GET001)
  645.       IF(IGET(NSIG))GO TO  1520
  646.       IF(NSIG.GT.10.OR.NSIG.LT.1)GO TO  1590
  647. 1560  WRITE(*, 1570)
  648. 1570  FORMAT(' HORIZONTAL OR VERTICAL STRESS VECTOR `H/V! ')
  649.       WRITE(*,  430)
  650.       READ(*,   60,ERR= 1560)IDIR1
  651. 1580  CALL READST(IOK1)
  652.       IF(IOK1.EQ.1)GO TO    10
  653.       IST1=-1
  654.       KALOR=0
  655.       WRITE(*, 1480)
  656.       GO TO    10
  657. 1590  WRITE(*, 1600)
  658. 1600  FORMAT(' SELECT STRESS COLUMN BETWEEN 1,10 ')
  659.       GO TO  1500
  660. 1610  IF(IEN.NE.1)GO TO  1620
  661.       GO TO  1640
  662. 1620  WRITE(*, 1630)
  663. 1630  FORMAT(' BOX AROUND ELEMENT NUMBER ? `Y/N! ')
  664.       WRITE(*,  430)
  665.       READ(*,   60,ERR= 1610)BASH
  666.       RETURN
  667. 1640  WRITE(*, 1650)
  668. 1650  FORMAT(' ..TURNED OFF .')
  669.       RETURN
  670. 1660  CONTINUE
  671.       CALL SECOND(TIM20)
  672.       TIMET=TIM20-TIM10
  673.       WRITE(*, 1670)TIMET
  674. 1670  FORMAT(2X,10(1H-),'TOTAL CPU TIME =',F12.3,' SECONDS'
  675.      1,10(1H-))
  676.       STOP
  677. 1680  CONTINUE
  678.       GOTO 280
  679. 1690  FORMAT(F4.0)
  680.       STOP
  681.       END
  682.       SUBROUTINE CONV (I,T)
  683.       DIMENSION T(1)
  684.       XX=FLOAT(I)
  685.       KK=LENSTR(T,XX)
  686.       RETURN
  687.       END
  688.       SUBROUTINE CRNCH6(MTOTM,NRES)
  689.       IMPLICIT REAL*8(A-H,O-Z)
  690.       COMMON  A(25000)
  691.       REAL*8 NPAR
  692.       COMMON /TRASH/IA,IDDMHI(200)
  693.       COMMON/UNIT/II11,II22
  694.       COMMON /PREP/ XMX,XAD,KSKIP,NDYN,I1,I99,POS,PRTCOD
  695.      1,POSSAV,PRTOFF,PRTON,PRTDUM,IDIRC,KK(4)
  696.       COMMON /ELPAR/ NPAR(14),NUMNP,MBAND,NELTYP,N1,N2,N3,N4,N5,MTOT,NEQ
  697.      1,N2P,N3P,NMRI,NTRI,N1P,NUMEL,NUMEL2,KZ(10,2),NEMN
  698.       COMMON /JUNK/ DUM(100),G,JJ(3)
  699.       COMMON/NSAP6/ISAP6
  700.       COMMON/MODEL/MODEL1
  701.       COMMON/TITEL1/TIT1(13)
  702.       COMMON/IFORMT/IFORM
  703.       DIMENSION HED(20)
  704.       MCARDS=4
  705.       REWIND 31
  706.       MTOT=MTOTM
  707. 10    CONTINUE
  708.       XAD=0.5E00
  709.       NADND=0
  710.       I1=100000
  711.       NRES=12
  712.       NSELEM=0
  713.       MONE=-1
  714.       MITWO=-2
  715.       MODEL1=0
  716.       NC=0
  717.       NLC=0
  718.       KSKIP=0
  719.       MSKIP=0
  720.       NUMEL=0
  721.       NUMEL2=0
  722.       NUMNP=0
  723.       XMX=55000.
  724.       KET=0
  725.       NTRI=0
  726.       NMRI=0
  727.       NELD=1
  728.       MBAND=1
  729.       KKG=0
  730.       NEAD=1
  731.       NDKOD=0
  732.       NZZAD=0
  733.       IES=0
  734.       DO 20 I=1,MCARDS
  735. 20    KK(I)=0
  736.       ISAPP=IYES
  737. 40    CONTINUE
  738. 71    KG=0
  739.       GSAV=COMND
  740.       NTY=0
  741.       NTERM=NEAD
  742. 90    NP=1
  743.       IF(KK(1).GT.0)NP=NUMNP
  744.       KK(1) =1
  745. 91    IF(IFORM.EQ.0)READ(31)TIT1
  746.       IF(IFORM.EQ.1)READ(31,92)TIT1
  747.       IF(IFORM.EQ.0)READ(31)NUMNP
  748.       IF(IFORM.EQ.1)READ(31,506)NUMNP
  749. 506   FORMAT(5X,I5)
  750. 92    FORMAT(13A4)
  751.       IF(NUMNP.EQ.MONE)ISAP6=1
  752.       IF(NUMNP.EQ.MONE.AND.IFORM.EQ.0)READ(31)NUMNP
  753.       IF(NUMNP.EQ.MITWO)MODEL1=1
  754.       IF(NUMNP.EQ.MONE.AND.IFORM.EQ.1)READ(31,506)NUMNP
  755.       IF(NUMNP.EQ.MITWO.AND.IFORM.EQ.1)READ(31,506)NUMNP
  756.       IF(NUMNP.GT.0)GO TO 106
  757.       WRITE(*,507)NUMNP
  758. 507   FORMAT(' TOTAL NUMBER OF NODE FOR PLOTTING IS =',I5)
  759.       STOP
  760. 106   IF(NUMNP.EQ.0)NUMNP=NP
  761. 110   CONTINUE
  762.       N2=NUMNP*3
  763.       IF(N2.GT.MTOT)  CALL ERROR (N2-MTOT)
  764.       NZZ=NUMNP
  765.       IF(NP.GT.NUMNP) NZZ=NP
  766.       CALL NODINP (NC,NUMNP,NP,A(1),NZZ,ISAPP)
  767. 120   NE=1
  768.       IF(KK(2).GT.0)NE=NUMEL
  769.       KK(2) =1
  770. 121   IF(IFORM.EQ.0)READ(31)NF22
  771.       IF(IFORM.EQ.1)READ(31,508)NF22
  772. 508   FORMAT(5X,I5)
  773.       JJ(1)=NF22
  774.       IF(NF22.GT.0)GO TO 131
  775.       WRITE(*,510)NF22
  776. 510   FORMAT(' TOTAL NUMBER OF ELEMENTS FOR PLOTTING IS = ',I5)
  777.       STOP
  778. 131   JJ(2)=20
  779.       NUMEL=JJ(1)
  780.       IF(NUMEL.EQ.0) NUMEL=NE
  781.       IF(JJ(2).GT.0) NDMX=JJ(2)
  782.       IF(NDMX.LE.8) NEAD=1
  783.       IF(NDMX.GT.8)  NADND=(NDMX-9)/3+1
  784.       IF(NDMX.GT.8)NZZAD=NUMEL
  785.       IF(NEAD.GT.NUMEL) NZZAD=NEAD
  786.       NZZ=NUMEL
  787.       IF(NE.GT.NUMEL) NZZ=NE
  788.       N2=NZZ*5+1
  789.       N3=N2+NADND*NZZAD
  790.       IF(N3.GT.MTOT) CALL ERROR(N3-MTOT)
  791.       IF(NDMX.GT.8) NDKOD=1
  792.       NZZ35=NZZAD
  793.       NAD35=NADND
  794.       IF(NZZ35.LE.0)NZZ35=1
  795.       IF(NAD35.LE.0)NAD35=1
  796.       CALL ELINP(NUMEL,A(1),NE,NZZ,A(N2),NEAD,NZZAD,NADND,NDKOD,
  797.      1NZZ35,NAD35,ISAPP)
  798. 160   CONTINUE
  799.       NADEL=1
  800.       IF(NEAD.GT.1) NADEL=NUMEL
  801.       N2=NUMEL*5+1
  802.       DO 170 I=1,4
  803.       MM=I
  804.       NE35=NADEL
  805.       ND35=NADND
  806.       IF(NE35.LE.0)NE35=1
  807.       IF(ND35.LE.0)ND35=1
  808. 170   CALL PROUT(MM,A(1),A(1),A(1),A(N2),NUMNP,NUMEL,NUMEL2,NADND,NADEL,
  809.      1NDKOD,NDMX,IES,NRES,NE35,ND35)
  810. 240   RETURN
  811.       END
  812.       SUBROUTINE DINIT
  813.       COMMON/IWINDO/IWIND,XM1,XM2,YM1,YM2
  814.       COMMON/IGL100/IGLKEY
  815.       COMMON/LAB/ILAB
  816.       CALL ERASE
  817.       CALL NEWPAG
  818.       IF(ILAB.EQ.0) GOTO 500
  819.       CALL SWINDO(0,1000,0,800)
  820.       GOTO 600
  821. 500   CALL SWINDO(0,800,0,800)
  822. 600   CALL DWINDO(XM1,XM2,YM1,YM2)
  823.       CALL MOVEA(0.,0.)
  824.       RETURN
  825.       END
  826.       SUBROUTINE ELINP(NUMEL,ID2,NE,NZZ,ID4,NEAD,NZZAD,NADND,NDKOD,
  827.      1NZZ35,NAD35,ISAPP)
  828.       IMPLICIT REAL*8(A-H,O-Z)
  829.       DIMENSION ID2(NZZ,5),ID4(NZZ35,NAD35)
  830.       REAL*8  MLT2
  831.       REAL*8  ID2,ID4
  832.       COMMON/PREP/XMX,XAD,KSKIP,NDYN,I1
  833.       COMMON/UNIT/II11,II22
  834.       COMMON/JUNK/IX(8),IXI(8),IP(4),IPI(5),I,J,N,MT,
  835.      1MTYPI,MTYP,K1,K2,K3,KN1,KN2,NI,KO,L,NG,MG,KM,NNI
  836.       COMMON /ELARRY/NELAR(4,20)
  837.       COMMON/NSAP6/ISAP6
  838.       COMMON/GROUP/IGR1,IFG1,ILAG1,ITOTG1,IGROUP(100,3)
  839.       COMMON/IFORMT/IFORM
  840.       COMMON/TRASH/ IA(100),IAI(100)
  841.       IG1=1
  842.       II4=4
  843.       ITOTG1=0
  844.       IP(1)=0
  845.       IP(2)=0
  846.       IP(3)=0
  847.       IP(4)=0
  848.       MLT=10000
  849.       MLT2=MLT*MLT
  850.       DO 5 I=1,8
  851. 5     IX(I)=0
  852.       KO=1
  853. 80    CONTINUE
  854. 113   KN1=0
  855.       KN2=0
  856.       IF(IFORM.EQ.0)READ(31)MTYP
  857.       IF(IFORM.EQ.1)READ(31,700)MTYP,IGRRR
  858. 84    FORMAT(I5)
  859. 700   FORMAT(5X,I5,6X,I5)
  860.       IF(MTYP.LE.0)GO TO 420
  861.       MHI=NELAR(1,MTYP)
  862. 114   IF(MTYP.EQ.10.OR.MTYP.EQ.16.OR.MTYP.EQ.17)GO TO 510
  863.       IF(MTYP.EQ.18)GO TO 510
  864.       GO TO 118
  865. 510   IF(IFORM.EQ.0)
  866.      1READ(31)N,(IX(I),I=1,8),(IA(J20),J20=9,20)
  867.       IF(IFORM.EQ.1)
  868.      2READ(31,183)N,(IX(I),I=1,8),(IA(J20),J20=9,20)
  869. 183   FORMAT(5X,I5,20(I5))
  870.       GO TO 124
  871. 118   IF(IFORM.EQ.0)
  872.      1READ(31)N,(IX(I),I=1,MHI)
  873.       IF(IFORM.EQ.1)
  874.      2READ(31,183)N,(IX(I),I=1,MHI)
  875. 83    FORMAT(10(I5,1X),I5)
  876. 124   IF(N.EQ.0) GO TO 420
  877.       WRITE(17)N,MTYP
  878. 130   FORMAT(16I5)
  879. 132   IF(ID2(N,1).GT.0.0 .AND. IX(1).EQ.0) GO TO 360
  880. 230   KO=0
  881. 231   IF(MTYP.NE.0) CALL ELSZ(MTYP)
  882. 232   IF(KN1.GT.0) GO TO 240
  883.       MTYPI=MTYP*10**8
  884. 240   NII=NI
  885.       NI=N
  886.       DO 250  I=1,8
  887. 250   IXI(I)=IX(I)
  888.       DO 260  I=1,4
  889. 260   ID2(N,I)=IX(I)+IX(I+4)*I1
  890.       ID2(N,5)=MTYPI
  891.       IF(NUMEL.EQ.1) GO TO 270
  892.       IF(NZZAD.LE.1) GO TO 80
  893. 270   CONTINUE
  894.       IF(MTYP.EQ.0) GO TO 80
  895.       IF(NELAR(1,MTYP).LE.8) GO TO 80
  896.       NODES=NELAR(1,MTYP)
  897. 330   KOUNT=0
  898.       DO 340 I=9,NODES
  899. 340   IAI(I)=IA(I)
  900.       DO 350 J=9,NODES,3
  901.       KOUNT=KOUNT+1
  902.       M2=IA(J+1)
  903.       M3=IA(J+2)
  904.       IF((J+1).GT.NODES) M2=0
  905.       IF((J+2).GT.NODES) M3=0
  906.       ID4(N,KOUNT)=IA(J)+M2*MLT+M3*MLT2
  907. 350   CONTINUE
  908.       NDKOD = 1
  909.       GO TO 80
  910. 360   NI=N
  911.       IF(KN1.EQ.0) KN1=NI
  912.       IF(KN2.EQ.0)KN2=1
  913.       KDT=KN1-N
  914.       IF(KDT.EQ.0.AND.KN2.EQ.1)  GO TO 370
  915.       KDT= MOD(KDT,KN2)
  916.       IF(KDT.NE.0) KSKIP=1
  917.       IF(KDT.NE.0) GO TO 80
  918. 370   CONTINUE
  919.       DO 410 J=N,KN1,KN2
  920.       MT=ID2(J,5)
  921.       KM=100
  922.       DO 380 I=1,4
  923.       IPI(I)= MOD(MT,KM)
  924. 380   MT=MT/KM
  925.       IF(MTYP.GT.0) MT=MTYP
  926.       IF(MTYP.NE.0) CALL ELSZ(MTYP)
  927.       DO 390 I=1,4
  928.       IF(IP(I).GT.0) IPI(I)=IP(I)
  929.       IF(IP(I).LT.0) IPI(I)=0
  930. 390   CONTINUE
  931.       IPI(5)=MT
  932.       MTI=IPI(1)
  933.       DO 400 I=1,4
  934.       KM=100**I
  935. 400   MTI=MTI+IPI(I+1)*KM
  936. 410   ID2(J,5)=MTI
  937.       GO TO 80
  938. 420   REWIND II4
  939.       WRITE (II4) ((ID2(I,J),J=1,5),I=1,NUMEL)
  940.       IF(NDKOD.EQ.1) NEAD=NUMEL
  941.       IF(NDKOD.EQ.1) WRITE (II4) ((ID4(I,J),J=1,NADND),I=1,NUMEL)
  942.       RETURN
  943.       END
  944.       SUBROUTINE ELSZ(N)
  945.       COMMON/SIZE/NDMX,MXDF,NSMX,NTERM,NADND
  946.       COMMON/ELARRY/NELAR(4,20)
  947.       COMMON/UNIT/II11,II22
  948.       MAXEL=20
  949.       IF(N.GT.0.AND.N.LE.MAXEL) GO TO 20
  950. 10    CONTINUE
  951.       WRITE(*,30)N
  952. 30    FORMAT(' *** ILLEGAL ELEMENT TYPE = ',I5,'  ***')
  953.       STOP
  954. 20    IF(NELAR(1,N).EQ.0) GO TO 10
  955.       IF(NELAR(1,N).GT.NDMX) NDMX=NELAR(1,N)
  956.       IF(NELAR(3,N).GT.MXDF) MXDF=NELAR(3,N)
  957.       IF(NELAR(4,N).GT.NSMX) NSMX=NELAR(4,N)
  958.       RETURN
  959.       END
  960.