SUBROUTINE VISDC (Z1,ZE,Z2,NZ,NX,MX,NY,MY,US,VS,L,PL) C [DIAGONAL CONTOURED SEQUENCE] C ZE(J,I) ARRAY OF FUNCTION VALUES C (Z1,Z2) SPAN OF Z VALUES C NX,NY RANGES OF J AND I C MX,MY MAXIMA ATTAINABLE BY J AND I C US,VS TOTAL SHEARS IN U AND V DIRECTIONS C L DIRECTION OF VIEW (1=WEST, -1=EAST) C PL PEN MOVEMENT SUBROUTINE C [16-MAY-74] EXTERNAL PL DIMENSION ZE(1) DIMENSION A(501),B(501) DIMENSION D(501),E(501),G(501) DIMENSION U(501),V(501),W(501) DATA M,MK/1,501/ IX(J,I)=(I-1)*MX+J SC(Z)=ZS*(Z-Z1) NA=0 ND=0 N=L*M MM=1 EL=FLOAT(L) EM=FLOAT(M) TE=0.5*(EL+1.0) ZS=(1.0-VS)/(Z2-Z1) DZ=(Z2-Z1)/FLOAT(NZ-1) DUI=-(EL*US)/FLOAT(MY-1) DUJ=(1.0-US)/FLOAT(MX-1) DVI=VS/FLOAT(MY-1) I0=(NY+1-M*(NY-3))/2 J0=(NX+1-L*(NX-1))/2 K0=((MK+1)*(1-N))/2 10 K=K0 I=MAX0(MIN0(I0,NY+1),0) J=J0 EU=TE*US+DUI*FLOAT(I-1)+DUJ*FLOAT(J-1) VE= DVI*FLOAT(I-1) 20 IF ((I.LT.1).OR.(I.GT.NY)) GO TO 22 K=MAX0(MIN0(K+N,MK),1) U(K)=EU V(K)=VE+SC(ZE(IX(J,I))) 22 I=I-M EU=EU-DUI VE=VE-EM*DVI IF ((I.LT.1).OR.(I.GT.NY)) GO TO 30 K=MAX0(MIN0(K+N,MK),1) U(K)=EU V(K)=VE+SC(ZE(IX(J,I))) J=J+L EU=EU+EL*DUJ IF ((J.GE.1).AND.(J.LE.NX)) GO TO 20 30 ZI=Z1 DO 60 IZ=1,NZ K=K0 I=MAX0(MIN0(I0,NY+1),0) J=J0 EU=TE*US+DUI*FLOAT(I-1)+DUJ*FLOAT(J-1) VE= DVI*FLOAT(I-1) 40 IF ((I.LT.1).OR.(I.GT.NY)) GO TO 42 K=MAX0(MIN0(K+N,MK),1) W(K)=VE+SC(ZI) 42 I=I-M EU=EU-DUI VE=VE-EM*DVI IF ((I.LT.1).OR.(I.GT.NY)) GO TO 50 K=MAX0(MIN0(K+N,MK),1) W(K)=VE+SC(ZI) J=J+L EU=EU+EL*DUJ IF ((J.GE.1).AND.(J.LE.NX)) GO TO 40 50 CALL VISRB (A,B,NA,MK,U,V,K,U,W,K,-1.0) CALL VISHH (D,E,G,ND,A,B,NA,MM,PL) MM=-MM 60 ZI=ZI+DZ I0=I0+M IF ((I0.GE.0).AND.(I0.LE.NY+1)) GO TO 10 J0=J0+L IF ((J0.GE.1).AND.(J0.LE.NX)) GO TO 10 RETURN END