SUBROUTINE AX3D(SX,DX,SY,DY,SZ,DZ,NU,NV,NW,IAX) DIMENSION CORNER(2,2,2,2) REAL MC DATA AZ,CMM/0.01,0.06/ IF(IAX.EQ.0) RETURN DO 1 I=1,2 DO 1 J=1,2 DO 1 K=1,2 CALL PERSPC(FLOAT(I),FLOAT(J),FLOAT(K),CORNER(I,J,K,1), * CORNER(I,J,K,2)) 1 CONTINUE XL=CORNER(2,1,1,1) XR=CORNER(1,2,1,1) YT=CORNER(1,1,2,2) YB=CORNER(2,2,1,2) X=(XR-XL-YT+YB) IF (X) 10,30,20 10 XL=XL+X XR=XR-X GOTO 30 20 YB=YB-X YT=YT+X 30 C1=.9/(XR-XL) C3=.9/(YT-YB) DO 2 I=1,2 DO 2 J=1,2 DO 2 K=1,2 CORNER(I,J,K,1)=C1*(CORNER(I,J,K,1)-XL)+.05 CORNER(I,J,K,2)=C3*(CORNER(I,J,K,2)-YB)+.05 2 CONTINUE CALL POINT(CORNER(2,1,2,1),CORNER(2,1,2,2)) CALL JOIN(CORNER(2,1,1,1),CORNER(2,1,1,2)) CALL JOIN(CORNER(2,2,1,1),CORNER(2,2,1,2)) CALL JOIN(CORNER(1,2,1,1),CORNER(1,2,1,2)) CALL BROKEN(1) CALL JOIN(CORNER(1,1,1,1),CORNER(1,1,1,2)) CALL JOIN(CORNER(2,1,1,1),CORNER(2,1,1,2)) IF (IAX.GT.0) GOTO 3 CALL FULL CALL POINT(CORNER(2,2,1,1),CORNER(2,2,1,2)) CALL JOIN(CORNER(2,2,2,1),CORNER(2,2,2,2)) CALL JOIN(CORNER(1,2,2,1),CORNER(1,2,2,2)) CALL JOIN(CORNER(1,1,2,1),CORNER(1,1,2,2)) CALL JOIN(CORNER(2,1,2,1),CORNER(2,1,2,2)) CALL JOIN(CORNER(2,2,2,1),CORNER(2,2,2,2)) CALL POINT(CORNER(1,2,1,1),CORNER(1,2,1,2)) CALL JOIN(CORNER(1,2,2,1),CORNER(1,2,2,2)) CALL BROKEN(1) CALL POINT(CORNER(1,1,2,1),CORNER(1,1,2,2)) CALL JOIN(CORNER(1,1,1,1),CORNER(1,1,1,2)) 3 CALL FULL IF(IABS(IAX).EQ.1) RETURN C LABELLING OF Z-AXIS FI=(NV-1)*DZ AI=AINTER(FI,6) SI=STPOIN(SZ,AI) ZM=(CORNER(2,1,2,2)-CORNER(2,1,1,2))/FI C3=CORNER(2,1,1,2)-SZ*ZM C1=(CORNER(2,1,2,1)-CORNER(2,1,1,1))/FI C2=CORNER(2,1,1,1)-SZ*C1 FI=FI+SZ IS=IEXPON(AI) IF(IS.LT.0) IS=IS+1 MC=0.1**IS X=SI 76 X1=X*ZM+C3 X2=C2+C1*X CALL POINT(X2,X1) CALL LINE(-AZ,0.0) CALL PLOTNF(X2-CMM,X1,X*MC,1) X=X+AI IF (X.LE.FI) GOTO 76 IF(IS.EQ.0) GOTO 80 CALL PLOTCL(CORNER(2,1,2,1)-CMM,CORNER(2,1,2,2)+CMM,'X 10',4) CALL SUPFIX CALL TYPENI(IS) CALL NORMAL C LABELLING OF Y-AXIS 80 FI=(NV-1)*DY AI=AINTER(FI,6) SI=STPOIN(SY,AI) YM=(CORNER(2,2,1,2)-CORNER(2,1,1,2))/FI C3=CORNER(2,1,1,2)-SY*YM C1=(CORNER(2,2,1,1)-CORNER(2,1,1,1))/FI C2=CORNER(2,1,1,1)-SY*C1 FI=FI+SY IS=IEXPON(AI) IF(IS.LT.0) IS=IS+1 MC=0.1**IS X=SI 90 X1=X*YM+C3 X2=C2+C1*X CALL POINT(X2,X1) CALL LINE(-AZ,0.0) CALL PLOTNF(X2-CMM ,X1,X*MC,1) X=X+AI IF(X.LE.FI) GOTO 90 IF(IS.EQ.0) GOTO 97 CALL PLOTCL(0.9*CORNER(2,1,1,1)+0.1*CORNER(2,2,1,1), * 0.6*CORNER(2,2,1,2)+0.4*CORNER(2,1,1,2),'X 10',4) CALL SUPFIX CALL TYPENI(IS) CALL NORMAL C LABELLING OF X-AXIS 97 FI=(NU-1)*DX AI=AINTER(FI,6) SI=STPOIN(SX,AI) XM=(CORNER(2,2,1,2)-CORNER(1,2,1,2))/FI C3=CORNER(1,2,1,2)-SX*XM C1=(CORNER(2,2,1,1)-CORNER(1,2,1,1))/FI C2=CORNER(1,2,1,1)-C1*SX FI=FI+SX IS=IEXPON(AI) IF(IS.LT.0) IS=IS+1 MC=0.1**IS X=SI 107 X1=X*XM+C3 X2=C2+C1*X CALL POINT(X2,X1) CALL LINE(AZ,0.0) CALL PLOTNF(X2+CMM,X1,X*MC,1) X=X+AI IF(X.LE.FI) GOTO 107 IF(IS.EQ.0) RETURN CALL PLOTCL(0.9*CORNER(1,2,1,1)+0.1*CORNER(2,2,1,1), * 0.4*CORNER(1,2,1,2)+0.6*CORNER(2,2,1,2),'X 10',4) CALL SUPFIX CALL TYPENI(IS) CALL NORMAL RETURN END