c main program lineb3.f lasl=12 r=1.0 g=1.0 b=1.0 c call initvrml c do 100 jj=1,7 r=1.0 g=1.0 b=1.0 if(jj.eq.2) b=0.0 if(jj.eq.3) g=0.0 if(jj.eq.4) r=0.0 if(jj.eq.5) b=0.0 if(jj.eq.5) g=0.0 if(jj.eq.6) b=0.0 if(jj.eq.6) r=0.0 if(jj.eq.7) g=0.0 if(jj.eq.7) r=0.0 call linebe(r,g,b) c do 40 ii=1,lasl lin=ii li1=3*(lin-1)+1 li2=3*(lin-1)+2 li3=3*lin c x=po(li1) c y=po(li2) c z=po(li3) x=0.1*float(ii-1) y=0.1*float(ii-1)-0.2*float(jj) z=0.1*float(ii-1) c call linep(x,y,z,ii,lasl) c 40 continue c call lineen(lasl) 100 continue c stop end c subroutine initvrml subroutine initvrml c write(10,*) "#VRML V2.0 utf8" write(10,10) 10 format("#VRML V2.0 utf8") return end subroutine linep(x,y,z,ii,lasl) c if(ii.lt.lasl) then write(10,10) x,z,y 10 format(1h ,f5.1,1x,f5.1,1x,f5.1,1h,) else write(10,20) x,z,y 20 format(1h ,f5.1,1x,f5.1,1x,f5.1) end if return end c subroutine linebe(r,g,b) subroutine linebe(r,g,b) c write(10,*) " Shape {" write(10,*) " geometry IndexedLineSet {" write(10,*) " color Color {" c write(10,*) " color [" write(10,20) r,g,b 20 format(" color [ ",f3.1,1x,f3.1,1x,f3.1," ]") write(10,*) " }" write(10,*) " coord Coordinate {" write(10,*) " point [" return end subroutine lineen(lasl) integer ic(1000) c do 10 i=1,1000 ic(i)=i-1 10 continue write(10,*) " ]" write(10,*) " }" write(10,*) " colorIndex [ 0 ]" write(10,*) " coordIndex [" c write(10,20) (ic(i),i=1,lasl) 20 format(1h ,10i2,90i3,900i4) c write(10,*) " ]" write(10,*) " colorPerVertex FALSE" write(10,*) " }" write(10,*) " }" return end