home *** CD-ROM | disk | FTP | other *** search
- SUBROUTINE LABEL (IM)
- INTEGER*4 MODE,MOD22,LOMO
- DIMENSION F2NAME(4),PLNAME(3),SNAP(3),SAP6(3),USER(4),USC(4)
- DIMENSION DAT(7),VD(3),PL(3),CL(3),VDR(3),TIMSS(4),CALIF(4)
- DIMENSION ARROW(3),ONEIN(3),ASQ1(3),TIT(13),LOMO(6),CROT(4)
- DIMENSION X0X(3)
- DIMENSION FREQ(3),MOD22(3)
- DIMENSION MODE(3),FSCAL(4),MOMOX(2)
- COMMON /ANG/H,SX,SY,CX,CY,IDC(3)
- COMMON/ABNAME/XFNAME
- COMMON/RAMTEK/MTEK1
- COMMON/VS11VA/IVS11,IMOVE,NNSTEP
- COMMON/ROTAT/IROT,TETA,DIREC,ANTETA
- COMMON/NSAP6/ISAP6,LOAD6,MODESH,FREQUE
- COMMON/MODEL/MODEL1
- COMMON/TITEL1/DUM(26)
- COMMON/MSTREE/S100,S101,KALOR
- COMMON/ABNAM1/ICH22
- COMMON/HP21/IHP21,PAT21,HI21,X21,Y21
- COMMON/CDC100/IJJJ
- COMMON/STRESS/IFLOK,IST1,SCL1,NSIG,IDIR,SHOST
- COMMON /BX/BM(3),BL(6)
- COMMON /PLT/IPN,IEN,ILN,XB,YB,SC,SCL,SCD,SCFL,SCFD,ISR,INR,LABL
- 1,TYPEU,TYPED,WHAT,LNTYPD,LNTYPU,SCALE
- COMMON /PAR/XJOB(2),NOFST,NWFM,NLCT,LCASE
- COMMON/LAB/ILAB
- DIMENSION IDATE0(7),IDATE1(4),ITIME0(4)
- DATA VDR/4HVIEW,4H DIR,2H.:/,DATE00/4HDATE/,TIME00/4HTIME/
- DATA VD,PL/4HVIEW,4HING ,4HDIST,4HPLOT,4H LIM,4HITS:/
- DATA CL/1HX,1HY,1HZ/
- DATA MODE/4HMODE,4H SHA,2HPE/
- DATA FREQ/4HFREQ,4HUENC,1HY/
- DATA SNAP/4HPOST,4H/SAP,4H7 /
- DATA MOD22/4HPOST,4H/MOD,2HEL/
- DATA CROT/4HROTA,4HTION,4H AXE,2HS:/
- DATA SAP6/4HPOST,4H-SAP,4H6/AT /
- DATA USER/4HINST,4HITUT,4HE OF,4H COM/
- DATA USC/4HPUTE,4HR TE,4HC. O,4HF T./
- DATA CALIF/4HU.P ,4HBEIJ,4HING ,2H87/
- DATA LOMO/4HLOAD,4H CAS,4HE , ,4HMODE,4H SHA,2HPE/
- DATA ONEIN/4HONE ,4HINCH,2H :/
- DATA UUU/1HU/
- DATA ARROW/4HARRO,4HW SC,3HALE/
- DATA BLAN/1H /
- DATA PLNAME/4HPLOT,4H NAM,3HE.:/
- DATA FSCAL/4HDEFO,4HRMED,4H SCA,2HLE/
- IJJJ=0
- CALL OFFSET (0)
- IF(ILAB.EQ.0) GOTO 500
- CALL SETPT(1000,800)
- CALL LINA(0,800,1,0)
- CALL LINA(0,0,1,0)
- CALL LINA(1000,0,1,0)
- CALL LINA(1000,800,1,0)
- RETURN
- 500 CALL SETPT (800,800)
- CALL LINA (0,800,1,0)
- CALL LINA (0,0,1,0)
- CALL LINA (800,0,1,0)
- JU1=1
- DO 40 M1=1,26,2
- TIT(JU1)=DUM(M1)
- JU1=JU1+1
- 40 CONTINUE
- DO 42 M1=1,13
- J1J1=14-M1
- IF(TIT(J1J1).NE.BLAN)GO TO 43
- 42 CONTINUE
- GO TO 50
- 43 M1=J1J1
- M1=M1*4
- IXPO1=400-M1*7
- IYPO1=770
- CALL SETPT(IXPO1,IYPO1)
- CALL TEXT10(TIT,M1)
- IF(MODESH.EQ.0)GO TO 20
- CALL SETPT(150,21)
- CALL TEXT10(MODE,10)
- CALL ENF1(MODESH,MOMO)
- CALL SETPT(310,21)
- CALL TEXT10(MOMO,4)
- CALL SETPT(420,21)
- CALL TEXT10(FREQ,9)
- CALL ENF(FREQUE,DAT(1))
- CALL SETPT(570,21)
- IJJJ=1
- CALL TEXT10(DAT(1),10)
- IJJJ=0
- GO TO 50
- 20 IF(WHAT.EQ.UUU)GO TO 50
- CALL SETPT(200,21)
- CALL TEXT10(LOMO,24)
- CALL ENF1(LOAD6,MOMO)
- CALL SETPT(520,21)
- CALL TEXT10(MOMO,4)
- 50 CALL HOME
- CALL OFFSET(1)
- CALL SETPT (0,0)
- CALL LINA (223,0,1,0)
- CALL LINA (223,800,1,0)
- CALL LINA (0,800,1,0)
- CALL LINA (0,0,1,0)
- CALL PLTAXS(1,SC)
- CALL SETPT(0,294)
- CALL LINA (223,294,1,0)
- CALL SETPT(41,272)
- CALL TEXT10 (VDR(1),10)
- DO 81 I=1,3
- LL00=70*I-70
- CALL SETPT (LL00,250)
- CALL CONV (IDC(I),X)
- 81 CALL TEXT10 (X,4)
- CALL SETPT (20,245)
- CALL LINA (203,245,1,3434)
- CALL SETPT(20,218)
- CALL TEXT10 (VD(1),12)
- CALL SETPT(41,196)
- CALL ENF (H,DAT(1))
- IJJJ=1
- CALL TEXT10 (DAT(1),10)
- IJJJ=0
- CALL SETPT (0,190)
- CALL LINA (223,190,1,0)
- IF(IROT.NE.1)GO TO 400
- CALL SETPT(20,169)
- CALL TEXT10(CROT,14)
- CALL SETPT(25,148)
- CALL TEXT10(DIREC,1)
- CALL ENF(ANTETA,DAT(1))
- CALL SETPT(45,149)
- IJJJ=1
- CALL TEXT10(DAT,10)
- IJJJ=0
- CALL SETPT(0,143)
- CALL LINA(223,143,1,0)
- 400 CONTINUE
- IF(WHAT.EQ.UUU)GO TO 101
- CALL SETPT(20,770)
- CALL TEXT10(FSCAL,14)
- CALL SETPT(34,743)
- CALL ENF(SCALE,DAT(1))
- IJJJ=1
- CALL TEXT10(DAT(1),10)
- IJJJ=0
- 101 CALL SETPT(0,738)
- CALL LINA(223,738,1,0)
- CALL SETPT(34,711)
- CALL TEXT10 (PL(1),11)
- DO 91 I=1,3
- IY=757-51*I
- CALL SETPT (20,IY)
- CALL LINA (203,IY,1,3434)
- CALL SETPT(20,IY-37)
- X=CL(I)
- CALL TEXT10 (X,1)
- CALL SETPT(62,IY-22)
- CALL ENF (BL(2*I-1),DAT(1))
- IJJJ=1
- CALL TEXT10 (DAT(1),10)
- CALL SETPT(62,IY-46)
- CALL ENF (BL(2*I),DAT(1))
- CALL TEXT10 (DAT(1),10)
- IJJJ=0
- 91 CONTINUE
- IJJJ=0
- CALL SETPT(0,552)
- CALL LINA(223,552,1,0)
- IF(IST1.NE.1)GO TO 60
- CALL SETPT(20,525)
- CALL TEXT10(ARROW,11)
- CALL SETPT(20,498)
- CALL TEXT10(ONEIN,10)
- CALL SETPT(41,460)
- CALL ENF(SHOST,ASQ1)
- IJJJ=1
- CALL TEXT10(ASQ1,10)
- IJJJ=0
- GO TO 69
- 60 CALL SETPT(76,525)
- CALL WDATE(DAT(1))
- DAT(1)=DAT(3)
- DAT(2)=DAT(4)
- DAT(3)=DAT(6)
- CALL TEXT10(DATE00,4)
- I41=41
- CALL SETPT(I41,498)
- CALL TEXT10(DAT(1),10)
- CALL SETPT(20,494)
- CALL LINA(203,494,1,3434)
- CALL SETPT(76,467)
- CALL TEXT10(TIME00,4)
- CALL SETPT(41,440)
- CALL FDATE(TIMSS(1))
- TIMSS(1)=TIMSS(3)
- TIMSS(2)=TIMSS(4)
- CALL TEXT10(TIMSS,8)
- 69 CALL SETPT(0,435)
- CALL LINA(223,435,1,0)
- CALL SETPT(20,408)
- IF(MODEL1.NE.1)GO TO 134
- DHI21=HI21
- HI21=17.0
- CALL TEXT10(MOD22,10)
- HI21=DHI21
- GO TO 131
- 134 CONTINUE
- 130 CALL TEXT10(SAP6,11)
- 131 CALL SETPT(20,381)
- CALL TEXT10(USER,14)
- CALL SETPT(20,354)
- CALL TEXT10(USC,13)
- CALL SETPT(20,327)
- CALL TEXT10(CALIF,14)
- 800 CALL HOME
- CALL OFFSET(0)
- RETURN
- END
- FUNCTION LENSTR (CHAR,VAL)
- INTEGER STRING(12),FIG(10),E,DOT,BLANK
- LOGICAL*1 CHAR(12),W,BBBB
- EQUIVALENCE (IPOS,W)
- REAL DEC(5),FRACT(6)
- DATA FIG/1H0,1H1,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9/, E/1HE/, MINUS
- 1/1H-/, DOT/1H./, BLANK/1H /,DEC/1.,10.,100.,1000.,1.E4/,
- 1FRACT/.5,.05,.005,5.E-4,5.E-5,5.E-6/,
- 1BBBB/1H /
- X=VAL
- DO 2 MMM=1,12
- 2 CHAR(MMM)=BBBB
- IND=1
- IF (X.NE.0.) GO TO 11
- STRING(IND)=FIG(1)
- GO TO 999
- 11 Y=ABS(X)
- IPOWER=0
- IF (X.GT.0.) GO TO 22
- STRING(IND)=MINUS
- IND=IND+1
- 22 IF (Y.GE.1.) GO TO 33
- 44 X=Y*10.
- IF (X.GE.1.) GO TO 60
- IPOWER=IPOWER-1
- Y=X
- GO TO 44
- 33 IF (Y.LT.1.E5) GO TO 55
- 30 IPOWER=IPOWER+1
- Y=Y/10.
- IF (Y.GE.1.) GO TO 30
- 60 IPOS=0
- Y=Y+FRACT(6)
- IF (Y.GE.1.) IPOS=1
- GO TO 66
- 55 IPOS=6
- 77 IPOS=IPOS-1
- IF (Y.LT.DEC(IPOS)) GO TO 77
- III=6-IPOS
- Y=Y+FRACT(III)
- IF (Y.GE.10.*DEC(IPOS)) IPOS=IPOS+1
- IF (IPOS.LT.6) GO TO 66
- IPOS=0
- IPOWER=6
- Y=Y/1.E6
- 66 IDIG=0
- 88 IF (IPOS.LT.1) GO TO 99
- I=Y/DEC(IPOS)
- STRING(IND)=FIG(I+1)
- IND=IND+1
- Y=Y-DEC(IPOS)*I
- IDIG=IDIG+1
- IPOS=IPOS-1
- GO TO 88
- 99 CONTINUE
- STRING(IND)=DOT
- IND=IND+1
- 111 IF (IDIG.EQ.5) GO TO 122
- Y=Y*10.
- I=Y
- STRING(IND)=FIG(I+1)
- IND=IND+1
- IDIG=IDIG+1
- Y=Y-I
- GO TO 111
- 122 IND=IND-1
- I=STRING(IND)
- IF (I.EQ.FIG(1)) GO TO 133
- IF (I.NE.DOT) GO TO 144
- STRING(IND)=BLANK
- IND=IND-1
- GO TO 144
- 133 STRING(IND)=BLANK
- GO TO 122
- 144 IF (IPOWER.EQ.0) GO TO 999
- X=IPOWER
- STRING(IND+1)=E
- IND=IND+2
- GO TO 11
- 999 LENSTR=IND
- IPOWER=(IND+3)/4*4
- IF (IND.EQ.IPOWER) GO TO 888
- IPOS=IND+1
- DO 155 IDIG=IPOS,IPOWER
- 155 STRING(IDIG)=BLANK
- 888 DO 166 IDIG=1,IPOWER
- IPOS=STRING(IDIG)
- 166 CHAR(IDIG)=W
- RETURN
- END
- SUBROUTINE LINA (IX,IY,INT,LINTYP)
- COMMON/HP21/IHP21,PAT
- COMMON/CALCOM/ICAL
- COMMON/IGL100/IGLKEY
- COMMON/RAMTEK/MTEK1,SRAM1,XRAMT,YRAMT
- IF(ICAL.EQ.1)GO TO 60
- X=IX
- LDHP=2
- Y=IY
- IF (INT .EQ. 1) GO TO 11
- CALL MOVEA(X,Y)
- RETURN
- 11 IF(LINTYP.EQ.0)GO TO 21
- CALL DASHA(X,Y,LINTYP)
- RETURN
- 21 CALL DRAWA(X,Y)
- 31 RETURN
- 60 X=IX
- Y=IY
- IF(INT.EQ.1)GO TO 61
- IPEN=1
- GO TO 65
- 61 IF(LINTYP.EQ.0)IPEN=2
- IF(LINTYP.NE.0)IPEN=LINTYP
- 65 WRITE(10,66)IPEN,X,Y
- 66 FORMAT(I10,2F10.3)
- RETURN
- END
- SUBROUTINE LINABS(IX,IY,I)
- IF(I.EQ.1)CALL DRWABS(IX,IY)
- IF(I.NE.1)CALL MOVABS(IX,IY)
- RETURN
- END
- SUBROUTINE PLINE (IX,IY,INT)
- COMMON/HP21/IHP21
- COMMON/CALCOM/ICAL
- COMMON/IGL100/IGLKEY
- COMMON/BEAPOS/IX1,IY1
- COMMON/RAMTEK/MTEK1,SRAM,XRAMT,YRAMT
- X=IX
- Y=IY
- IF(ICAL.EQ.1)GO TO 40
- IF (INT .EQ. 1) GO TO 11
- CALL MOVER (X,Y)
- RETURN
- 11 CALL DRAWR (X,Y)
- RETURN
- 40 IF(INT.EQ.1)IPEN=4
- IF(INT.NE.1)IPEN=3
- WRITE(10,41)IPEN,X,Y
- 41 FORMAT(I10,2F10.3)
- RETURN
- END
- SUBROUTINE LINREL(IX,IY,I)
- COMMON/IGL100/IGLKEY
- COMMON/STRCLR/ICLR
- COMMON/IWINDO/IWIND,XM1,XM2,YM1,YM2,WINLEN
- IF(I.EQ.1)GO TO 5
- CALL MOVREL(IX,IY)
- RETURN
- 5 IF(ICLR.EQ.1) GOTO 15
- CALL DRWREL(IX,IY)
- RETURN
- 15 CALL DRWREL1(IX,IY)
- RETURN
- END
- SUBROUTINE MEROT(VC)
- COMMON/ROTAT/IROT,TETA,DIREC
- DIMENSION VC(3)
- DATA XXX/1HX/,YYY/1HY/,ZZZ/1HZ/
- X=VC(1)
- Y=VC(2)
- Z=VC(3)
- IF(DIREC.EQ.XXX)GO TO 100
- IF(DIREC.EQ.YYY)GO TO 200
- IF(DIREC.EQ.ZZZ)GO TO 300
- RETURN
- 100 ZT=Z*COS(TETA)-Y*SIN(TETA)
- Y=Y*COS(TETA)+Z*SIN(TETA)
- Z=ZT
- GO TO 500
- 200 XT=X*COS(TETA)-Z*SIN(TETA)
- Z=Z*COS(TETA)+X*SIN(TETA)
- X=XT
- GO TO 500
- 300 XT=X*COS(TETA)+Y*SIN(TETA)
- Y=Y*COS(TETA)-X*SIN(TETA)
- X=XT
- 500 VC(1)=X
- VC(2)=Y
- VC(3)=Z
- RETURN
- END
- SUBROUTINE NODINP (NC,NUMNP,NP,ID,NZZ,ISAPP)
- IMPLICIT REAL*8(A-H,O-Z)
- COMMON/UNIT/II11,II22
- DIMENSION ID(NZZ,3),XYZT(3)
- COMMON/PREP/XMX,XAD,KSKIP,NDYN,I1
- COMMON/LFIRST/IFIRST
- COMMON/IFORMT/IFORM
- REAL*8 ID
- COMMON/QTSARG/ X(3,50),Y(3,50),Z(3,50),TI(3,3,50),XC(3),XI(3)
- 1,XX(3),DX(3)
- 2,CORD(20,3),PERR,PERS,PERT,H(20),CZ(3)
- DIMENSION NOD(8),N3D(20)
- DATA IYES/1HY/,RRR/1HR/
- 20 KO=1
- KS=0
- IFIRST=0
- IF(IFORM.EQ.0)READ(31)N
- IF(IFORM.EQ.1)READ(31,800)N
- 800 FORMAT(5X,I5)
- BACKSPACE 31
- IF(N.LE.1)GO TO 56
- IFIRST=N
- 56 KN=0
- 60 CONTINUE
- IF(IFORM.EQ.0)READ(31)N
- IF(IFORM.EQ.1)READ(31,800)N
- 76 FORMAT(I5)
- 510 IF(N.EQ.0) GO TO 270
- IF(N.LT.0)GO TO 291
- IF(IFORM.EQ.0) READ(31)XX
- IF(IFORM.EQ.1)READ(31,131)XX
- 131 FORMAT(3E12.5)
- 515 IF(IFIRST.NE.0)N=N-IFIRST+1
- KT=1
- IF(N.GT.NUMNP) GO TO 280
- 230 KO=0
- NI=N
- DO 240 J=1,3
- 240 XI(J)=XX(J)
- DO 241 J=1,3
- XC(J)=XI(J)
- 241 CONTINUE
- DO 260 I=1,3
- 260 ID(N,I)=XC(I)
- GO TO 60
- 270 REWIND 28
- WRITE (28) ((ID(I,J),J=1,3),I= 1,NUMNP)
- RETURN
- 280 CONTINUE
- WRITE(*,100)N
- 100 FORMAT(' *ERROR* NODE NUMBER = ',I5,' GREATER THAN TOTAL NODES')
- STOP
- 291 WRITE(*,292)N
- 292 FORMAT(' *ERROR* NEGATIVE NODE NUMBER ',I6)
- STOP
- END
- SUBROUTINE NOPL10
- CC-----------------------------------------------------------I
- CC LINK POST WITH THIS SUBROUTINE IF YOU DO NOT HAVE I
- CC PLOT 10 (TCS) SUBROUTINES AND YOU HAVE IGL PLOT10 I
- CC-----------------------------------------------------------I
- ENTRY ANMODE
- ENTRY BELL
- C ENTRY NEWPAG
- ENTRY HOME
- C ENTRY ANSTR
- ENTRY CHRSIZ
- ENTRY CSIZE
- C ENTRY DASHA
- C ENTRY DRAWA
- C ENTRY DRAWR
- C ENTRY DRWABS
- C ENTRY DRWREL
- C ENTRY DWINDO
- C ENTRY ERASE
- C ENTRY INITT
- C ENTRY MOVABS
- C ENTRY MOVEA
- C ENTRY MOVER
- C ENTRY MOVREL
- C ENTRY POINTA
- C ENTRY SWINDO
- ENTRY TERM
- C ENTRY TOUTPT
- C ENTRY TWINDO
- ENTRY V2ST
- C ENTRY VCURSR
- C ENTRY VWINDO
- CC ...HP PLOTTER
- ENTRY ARCREL
- ENTRY DASLNA
- ENTRY LIMIT
- ENTRY HPPLOTS
- ENTRY PLOTS
- ENTRY MAPUU
- ENTRY NEWPEN
- ENTRY PENUP
- C ENTRY PLOT
- ENTRY PLOTOF
- ENTRY PLOTON
- ENTRY IPLOT
- ENTRY RPLOT
- ENTRY SETIN
- ENTRY SYMBOL
- RETURN
- END
- SUBROUTINE OFFSET (I)
- COMMON/LAB/ILAB
- COMMON/IGL100/IGLKEY
- COMMON/IWINDO/IWIND,XM1,XM2,YM1,YM2
- COMMON/CALCOM/ICAL
- IF(ICAL.EQ.1)GO TO 50
- IF (I .EQ. 1) GO TO 11
- CALL VWINDO (0.,800.,0.,800.)
- IF(ILAB.EQ.0) GOTO 500
- CALL SWINDO(0,1000,0,800)
- GOTO 600
- 500 CALL SWINDO (0,800,0,800)
- 600 RETURN
- 11 CALL VWINDO (0.,223.,0.,800.)
- CALL SWINDO (800,223,0,800)
- RETURN
- 50 IF(I.EQ.1)GO TO 60
- XORG=0.0
- YORG=0.0
- GO TO 62
- 60 XORG=800.0
- YORG=0.0
- 62 IPEN=999
- WRITE(10,63)IPEN,XORG,YORG
- 63 FORMAT(I10,2F10.3)
- RETURN
- END
- SUBROUTINE PPAUSE(IO,IN)
- DATA BL/1H /
- WRITE(IO,2000)
- 2000 FORMAT(/' **** PRESS <RETURN> TO CONTINUE:')
- READ(IN,1000)A
- 1000 FORMAT(A1)
- RETURN
- END
- SUBROUTINE NICEY(YMIN,YMAX,NTY)
- YMAX1=ABS(YMIN)
- YMAX2=ABS(YMAX)
- YMAXMX=YMAX1
- IF(YMAX2.GT.YMAXMX)YMAXMX=YMAX2
- FACTOR=1.
- YMAXSC=YMAXMX
- 90 IF(YMAXSC.LE.10.)GO TO 100
- FACTOR =0.1*FACTOR
- YMAXSC=FACTOR*YMAXMX
- GO TO 90
- 100 IF(YMAXSC.GE.10.)GO TO 110
- FACTOR=10.*FACTOR
- YMAXSC=FACTOR*YMAXMX
- GO TO 100
- 110 MAXSC=YMAXSC/10.
- MAXNOR=MAXSC*10+10
- IF(MAXNOR.EQ.20)NTY=41
- IF(MAXNOR.EQ.30)NTY=61
- IF(MAXNOR.EQ.40)NTY=41
- IF(MAXNOR.EQ.50)NTY=51
- IF(MAXNOR.EQ.60)NTY=61
- IF(MAXNOR.EQ.70)MAXNOR=80
- IF(MAXNOR.EQ.80)NTY=41
- IF(MAXNOR.EQ.90)MAXNOR=100
- IF(MAXNOR.EQ.100)NTY=51
- YMAXPT=MAXNOR
- YNICE=YMAXPT/FACTOR
- YMIN=-YNICE
- YMAX=+YNICE
- RETURN
- END
- SUBROUTINE PPOINT(X,Y,LTYPE1)
- COMMON/IGL100/IGLKEY
- KEY=LTYPE1+1
- IF(KEY.LT.1)GO TO 1
- IF(KEY.GT.10)GO TO 10
- GO TO (1,2,3,4,5,6,7,8,9,10),KEY
- 1 CALL DRAWA(X,Y)
- RETURN
- 2 CALL DASHA(X,Y,1414)
- RETURN
- 3 CALL DASHA(X,Y,3434)
- RETURN
- 4 CALL DASHA(X,Y,5454)
- RETURN
- 5 CALL DASHA(X,Y,5212)
- RETURN
- 6 CALL DASHA(X,Y,5232)
- RETURN
- 7 CALL DASHA(X,Y,5414145)
- RETURN
- 8 CALL DASHA(X,Y,5656)
- RETURN
- 9 CALL DASHA(X,Y,521215)
- RETURN
- 10 CALL DASHA(X,Y,3636)
- RETURN
- END