SUBROUTINE VISOS(F1,F2,J1,J2,NP,I1,I2,NT,L,M,S,B,O,PL) C [OUTER SEQUENCE] C L=1 WESTERN VIEW, L=-1 EASTERN VIEW C M=1 SOUTHERN VIEW, M=-1 NORTHERN VIEW C [02-JUN-74] C COPIED FROM DECUS C [STEIGER 20-DEC-75] EXTERNAL PL LOGICAL B DIMENSION F1(1),F2(1),O(3,3) DIMENSION AZ(201),R1(201),R2(201) DIMENSION PO(501),RO(501) DATA MA,MK/501,201/ IX(J,I)=(I-1)*NP+MOD(NP+J-1,NP)+1 N=L*M NN=1 EL=FLOAT(L) EM=FLOAT(M) DP=6.28318/FLOAT(NP) DT=3.14159/FLOAT(NT) CALL VISNP(PH,TH,JP,IT,NP,NT,O) I0=((I1+I2)+M*(I1-I2))/2+M J0=((J1+J2)+L*(J1-J2))/2 K0=((MK+1)*(1-N))/2 10 K=K0 I=MAX0(MIN0(I0,I2+1),I1-1) J=J0 T=TH+DT*FLOAT(I-IT) P=PH+DP*FLOAT(J-JP) 20 IF((I.GT.I2).OR.(I.LT.I1)) GOTO 22 K=MAX0(MIN0(K+N,MK),1) CALL VISSP(R1(K),AZ(K),F1(IX(J,I)),T,P,O) CALL VISSP(R2(K),AZ(K),F2(IX(J,I)),T,P,O) 22 I=I-M T=T-EM*DT IF((I.GT.I2).OR.(I.LT.I1)) GOTO 30 K=MAX0(MIN0(K+N,MK),1) CALL VISSP(R1(K),AZ(K),F1(IX(J,I)),T,P,O) CALL VISSP(R1(K),AZ(K),F2(IX(J,I)),T,P,O) J=J+L P=P+EL*DP IF((J.LE.J2).AND.(J.GE.J1)) GOTO 20 30 IF(N.GT.0) GOTO 32 M1=MK-K+1 DO 31 MM=1,M1 AZ(MM)=AZ(K+MM-1) R1(MM)=R1(K+MM-1) R2(MM)=R2(K+MM-1) 31 CONTINUE K=M1 32 IF(B) GOTO 36 DO 35 MM=1,K 35 IF(AZ(MM).LT.0.0) AZ(MM)=AZ(MM)+1.0 36 IF(AZ(1).LE.AZ(K)) GOTO 38 DO 37 MM=1,K TE=AZ(MM) AZ(MM)=AZ(K-MM+1) AZ(K-MM+1)=TE TE=R1(MM) R1(MM)=R1(K-MM+1) R1(K-MM+1)=TE TE=R2(MM) R2(MM)=R2(K-MM+1) R2(K-MM+1)=TE 37 CONTINUE 38 CONTINUE K1=1 IF(K.LE.2) GOTO 40 DO 39 MM=3,K K1=MM-2 39 IF((AZ(MM-2).LE.AZ(MM-1)).AND.(AZ(MM-1).LE.AZ(MM))) GOTO 40 K1=K-1 40 K3=K1+2 K2=K1 IF(K3.LE.2) GOTO 42 IF(K3.GT.K) GOTO 42 IF(K.LE.2) GOTO 42 DO 41 MM=K3,K K2=MM-1 41 IF(AZ(MM-1).GT.AZ(MM)) GOTO 42 K2=K 42 IF(K2.LE.1) GOTO 50 IF(K2-K1+1.LE.1) GOTO 50 KK=K2-K1+1 CALL VISRB(PO,RO,NO,MA,AZ(K1),R1(K1),KK,AZ(K1),R2(K1),KK,S) CALL VISHO(PO,RO,NO,NN,PL) 50 NN=-NN I0=I0+M IF((I0.GE.I1-1).AND.(I0.LE.I2+1)) GOTO 10 J0=J0+L IF((J0.GE.J1).AND.(J0.LE.J2)) GOTO 10 RETURN END