SUBROUTINE VISDS (Z1,ZE,Z2,J1,J2,MX,I1,I2,MY,US,VS,L,M,PL) C [DIAGONAL 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 MAXNMA 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 [06-OCT-74] EXTERNAL PL DIMENSION ZE(1),U(501),V(501) DATA MK/501/ IX(J,I)=(I-1)*MX+J SC(Z)=ZS*(Z-Z1) NL=ISIGN(1,L) NM=ISIGN(1,M) N=NL*NM IL=I1-IABS(M) IU=I2+IABS(M) MM=1 TE=0.5*FLOAT(NL+1) ZS=(1.0-VS)/(Z2-Z1) DUI=-(FLOAT(NL)*US)/FLOAT(MY-1) EUI=DUI*FLOAT(M) DUJ=(1.0-US)/FLOAT(MX-1) EUJ=DUJ*FLOAT(L) DVI=VS/FLOAT(MY-1) EVI=DVI*FLOAT(M) I0=(I2+I1-NM*(I2-I1))/2+M J0=(J2+J1-NL*(J2-J1))/2 K0=((MK+1)*(1-N))/2 10 K=K0 I=MAX0(MIN0(I0,IU),IL) J=J0 EU=TE*US+DUI*FLOAT(I-1)+DUJ*FLOAT(J-1) VE= DVI*FLOAT(I-1) 20 IF ((I.LT.I1).OR.(I.GT.I2)) 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-EUI VE=VE-EVI IF ((I.LT.I1).OR.(I.GT.I2)) 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+EUJ IF ((J.GE.J1).AND.(J.LE.J2)) GO TO 20 30 KK=(K+1-N*(K-1))/2 CALL VISHO (U(KK),V(KK),(MK+1-N*(MK-2*K+1))/2,MM,PL) MM=-MM I0=I0+M IF ((I0.GE.IL).AND.(I0.LE.IU)) GO TO 10 J0=J0+L IF ((J0.GE.J1).AND.(J0.LE.J2)) GO TO 10 RETURN END