c*************************************************************** c FORTRAN CAD c 2021-12-17 Version 0.1 c 2023-07-14 Version 0.2 c 2024-10-13 Version 24.10 c 2024-11-11 Version 24.11 c 2025-02-11 version 25.02 c 2026-02-15 version 26.02 c 2026-03-09 version 26.03 c Pere Casellas c Laboratori d'envol c http://www.laboratoridenvol.com c pere AT laboratoridenvol DOT com c gfortran (GNU/Linux) c GNU General Public License 3.0 (http://www.gnu.org) c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c c PROGRAM FORTRAN CAD c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c 1. VARIABLE NAMES ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccciiiiiiiiiiiiiiiiiiiiiiiic cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c 2. VARIABLES TYPE DECLARATION ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Double precision reals real*8 x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5 real*8 x6,y6,z6,x7,y7,z7,x8,y8,z8,x9,y9,z9,x10,y10,z10 real*8 x(0:900000),y(0:900000),z(0:900000) real*8 points(900000,10) real*8 llarg,peralt,radc real*8 xini,yini,zini,xfin,yfin,zfin real*8 alpha,theta real*8 xtra,ytra,ztra real*8 R,cv_R(0:500,0:500) real*8 a,b,x21,x23,x123,y123 real*8 ax,ay,bx,by,xsin,xcos,d real*8 pkini,pkfin,pkstp real*8 elevmin,elevmax,elevstp real*8 vscale,txtsize real*8 xpk,ypk c Character names character*50 gname,layer_name,layer,filein,filename,title character*50 fcadv,fcadd,fcadn,fcadu character*100 xtext character*6 xcase character*4 aname(0:3) character*100 cv_alname(0:500,0:500) character*100 axe_name(0:500) c Integers integer np,ncolor,nitems,nalign integer itype,iflag,iflagcursor integer stat integer cv_alnum(0:500,0:500) integer axe_nalign(0:500) common/blocintercanvi/ xini,yini,zini,xfin,yfin,zfin common/flags/ iflagr,iflags,iflagt common xtra,ytra,ztra c Parameters real*8 pi,zero cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Initialize some parameters cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc zero=0.0d0 pi=4.0d0*datan(1.0d0) iflagr=0 ! flag relative iflags=1 ! flag side xini=0.0d0 yini=0.0d0 zini=0.0d0 xfin=0.0d0 yfin=0.0d0 zfin=0.0d0 xtra=0.0d0 ytra=0.0d0 ztra=0.0d0 inum=0 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Basic Fortran CAD identification cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc fcadv="26.03" ! Version fcadd="2026-03-09" ! Date fcadn='"FortranCAD"' ! Code name fcadu="GENERAL" ! User cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c 3. INIT cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Customized header write (*,*) write (*,*) "**************************************************" c write (*,'(1x,A72)') lepuser write (*,*) "**************************************************" write (*,*) write (*,*) "FORTRANCAD" write (*,*) "Draw following the instructions" write (*,*) write (*,'(A14,1x,A6,1x,A7,1x,A50)') "FortranCAD",fcadv, + "version",fcadn write (*,'(1x,A10)') fcadd write (*,*) write (*,*) "Pere Hernàndez i Casellas" write (*,*) "pere@phc-enginyeria.com" write (*,*) "GNU General Public License 3.0 http://www.gnu.org" write (*,*) cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Open units cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc open(unit=20,file='drawing.dxf') open(unit=22,file='data.txt') c open(unit=23,file='report.txt') c open(unit=30,file='report2.txt') open(unit=25,file='drawing_img.dxf') open(unit=26,file='b1.txt') open(unit=27,file='b2.txt') open(unit=28,file='b3.txt') open(unit=29,file='b4.txt') c Init drawing.dxf call dxfinit(20) ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c 4. DATA READING ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Lectura de dades del fitxer rewind (22) rewind (23) rewind (30) c Read header read (22,*) gname read (22,*) gname read (22,*) gname read (22,*) gname c Read data IOS=0 do while (IOS.eq.0) read (22, *, IOstat=IOS) gname c write (*,*) gname, IOS If (IOS.eq.0) then ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c 4.1 Read basic commands ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read comment if (gname.eq."c".or.gname.eq."C") then ! do nothing end if c Read line2d if (gname.eq."line2d".or.gname.eq."LINE2D") then backspace(22) read (22,*) gname,x(1),y(1),x(2),y(2),layer_name,ncolor z(1)=0.0d0 z(2)=0.0d0 call line3d(x,y,z,layer_name,ncolor) end if c Read line2dr if (gname.eq."line2dr".or.gname.eq."LINE2R") then backspace(22) read (22,*) gname,x(2),y(2),layer_name,ncolor x(1)=xfin y(1)=yfin z(1)=zfin x(2)=x(1)+x(2) y(2)=y(1)+y(2) z(2)=z(1)+0.0d0 if (iflagr.eq.1) then ! override relative iflagr=0 end if call line3d(x,y,z,layer_name,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read line3d ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."line3d".or.gname.eq."LINE3D") then backspace(22) read (22,*) gname,x(1),y(1),z(1),x(2),y(2),z(2),layer_name,ncolor call line3d(x,y,z,layer_name,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read point2d ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."point".or.gname.eq."point2d". + or.gname.eq."POINT".or.gname.eq."POINT2D") then backspace(22) read (22,*) gname,x(1),y(1),layer_name,ncolor z(1)=0.0d0 call point3d(x,y,z,layer_name,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read point3d ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."point3d".or.gname.eq."POINT3D") then backspace(22) read (22,*) gname,x(1),y(1),z(1),layer_name,ncolor call point3d(x,y,z,layer_name,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read linep ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."linep".or.gname.eq."LINEP") then backspace(22) read (22,*) gname,l,x1,y1,llarg,peralt,layer,ncolor iflags=l z1=0.0d0 alpha=datan(peralt/100.) if(iflagr.eq.1) then ! use last cursor point x1=xfin y1=yfin z1=zfin end if iflagr=0 x(1)=x1 y(1)=y1 z(1)=z1 x(2)=x(1)+dfloat(iflags)*llarg y(2)=y(1)-llarg*dsin(alpha) z(2)=z(1) call line3d(x,y,z,layer,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read poly2d ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."poly2d".or.gname.eq."POLY2D") then backspace(22) read (22,*) gname,np,layer_name,ncolor do i=1,np read (22,*) x(i),y(i) z(i)=0.0d0 end do call poly3d(x,y,z,np,layer_name,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read poly3d ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."poly3d".or.gname.eq."POLY3D") then backspace(22) read (22,*) gname,np,layer_name,ncolor do i=1,np read (22,*) x(i),y(i),z(i) end do call poly3d(x,y,z,np,layer_name,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read epoly2d ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."epoly2d".or.gname.eq."EPOLY2D") then backspace(22) read (22,*) gname,filename,layer_name,ncolor call epoly3d(filename,points,np) do i=1,np x(i)=points(i,1) y(i)=points(i,2) z(i)=0.0d0 end do call poly3d(x,y,z,np,layer_name,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read chartpoly ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."chartpoly".or.gname.eq."CHARTPOLY") then backspace(22) read (22,*) gname,filename,layer_name,ncolor read (22,*) title read (22,*) xini,yini read (22,*) pkini,pkfin,pkstp read (22,*) elevmin,elevmax,elevstp read (22,*) vscale,txtsize call epoly2d(filename,points,np) do i=1,np x(i)=points(i,1) y(i)=points(i,2) z(i)=0.0d0 end do call poly3d(x,y,z,np,layer_name,ncolor) end if c Chart title xtext=title call txt(xini,yini+elevmax+elevstp,txtsize*3,0.0d0,xtext, + layer_name,7) c PK axis text n=int((pkfin-pkini)/pkstp) do i=0,n xpk=pkini+dfloat(i)*pkstp write (xtext,'(F10.3)') xpk call txt(xpk,yini+elevmin-elevstp,txtsize,90.0d0,xtext, + layer_name,7) end do c Elevation axis text n=int((elevmax-elevmin)/elevstp) do i=0,n ypk=elevmin+dfloat(i)*elevstp write (xtext,'(F10.3)') ypk call txt(xini+pkini-pkstp,yini+ypk,txtsize,0.0d0,xtext, + layer_name,7) end do c Grid c Vertical lines n=int((pkfin-pkini)/pkstp) do i=0,n xpk=pkini+dfloat(i)*pkstp write (*,*) "Ep ",xpk x(1)=xini+xpk y(1)=yini+elevmin x(2)=xini+xpk y(2)=yini+elevmax iflagr=0 call line2d(x,y,layer_name,8) end do c Horizontal lines n=int((elevmax-elevmin)/elevstp) do i=0,n ypk=elevmin+dfloat(i)*elevstp write (*,*) "Ep ",ypk x(1)=xini+pkini y(1)=yini+ypk x(2)=xini+pkfin y(2)=yini+ypk iflagr=0 call line2d(x,y,layer_name,8) end do ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read epoly3d ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."epoly3d".or.gname.eq."EPOLY3D") then backspace(22) read (22,*) gname,filename,layer_name,ncolor call epoly3d(filename,points,np) do i=1,np x(i)=points(i,1) y(i)=points(i,2) z(i)=points(i,3) end do call poly3d(x,y,z,np,layer_name,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read circle ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."circle".or.gname.eq."CIRCLE") then backspace(22) read (22,*) gname,x(1),y(1),radc,layer,ncolor z(1)=0.0d0 call circle(x,y,z,radc,layer,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read clotoide ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."clotoide".or.gname.eq."CLOTOIDE") then backspace(22) read (22,*) gname,itype,xcase,layer,ncolor read (22,*) x0,y0,x1,y1 read (22,*) x2,y2,x3,y3 call clotoide(itype,xcase,x0,y0,x1,y1,x2,y2,x3,y3, + layer,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read text ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."text".or.gname.eq."TEXT") then backspace(22) read (22,*) gname,x1,y1,x2,y2,layer,ncolor read (22,*) xtext call txt(x1,y1,x2,y2,xtext,layer,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read itext ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."itext".or.gname.eq."ITEXT") then backspace(22) read (22,*) gname,x1,y1,x2,y2,layer,ncolor read (22,*) itext call itxt(x1,y1,x2,y2,itext,layer,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c 4.2 Read modification commands ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read setcursor (not implemented!) ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."setcursor".or.gname.eq."SETCURSOR") then backspace(22) read (22,*) gname,x0,y0 iflagcursor=1 xfin=x0 yfin=y0 end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read relative ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."relative".or.gname.eq."RELATIVE") then backspace(22) read (22,*) gname iflagr=1 end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read move to (not implemented) ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."moveto".or.gname.eq."MOVETO") then backspace(22) read (22,*) gname x1 y1 xini=x1 yini=y1 iflaga=1 end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read translate ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."translate".or.gname.eq."TRANSLATE") then backspace(22) read (22,*) gname,x1,y1,z1 xtra=x1 ytra=y1 ztra=z1 iflagt=1 end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c 4.3 Read preconfigured elements ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read ditch03 if (gname.eq."ditch03".or.gname.eq."DITCH03") then backspace(22) read (22,*) gname,iflag,x1,y1,x2,x3,y2,layer_name,ncolor if (iflagr.eq.1) then ! use last cursor point x1=xfin y1=yfin end if np=3 x(1)=x1 y(1)=y1 x(2)=x1+dfloat(iflag)*x2 y(2)=y1-y2 x(3)=x1+dfloat(iflag)*(x2+x3) y(3)=y1 call poly3d(x,y,z,np,layer_name,ncolor) xini=x(1) yini=y(1) zini=0.0d0 xfin=x(3) yfin=y(3) zfin=0.0d0 iflagr=0 end if c Read ditch04 if (gname.eq."ditch04".or.gname.eq."DITCH04") then backspace(22) read (22,*) gname,iflag,x1,y1,x2,x3,x4,y2,layer_name,ncolor if (iflagr.eq.1) then ! use last cursor point x1=xfin y1=yfin end if np=4 x(1)=x1 y(1)=y1 x(2)=x1+dfloat(iflag)*x2 y(2)=y1-y2 x(3)=x1+dfloat(iflag)*(x2+x3) y(3)=y1-y2 x(4)=x1+dfloat(iflag)*(x2+x3+x4) y(4)=y1 call poly3d(x,y,z,np,layer_name,ncolor) xini=x(1) yini=y(1) zini=0.0d0 xfin=x(4) yfin=y(4) zfin=0.0d0 iflagr=0 end if c Read concrete "T" wall if (gname.eq."wallt".or.gname.eq."WALLT") then backspace(22) read (22,*) gname,iflag,x5,y5,layer_name,ncolor read (22,*) y3,y4 read (22,*) x1,x2,x3 read (22,*) y1,y2 if (iflagr.eq.1) then ! use last cursor point x5=xfin y5=yfin if (iflag.eq.-1) then x5=x5+x2 y5=y5-y1+y3+y4 end if end if np=9 x(1)=x5 y(1)=y5-y3 x(2)=x(1)-dfloat(iflag)*x1 y(2)=y(1) x(3)=x(2) y(3)=y(2)-y2 x(4)=x(3)+dfloat(iflag)*(x1+x2+x3) y(4)=y(3) x(5)=x(4) y(5)=y(4)+y2 x(6)=x(5)-dfloat(iflag)*x3 y(6)=y(5) x(7)=x(6) y(7)=y(6)+y1 x(8)=x(7)-dfloat(iflag)*x2 y(8)=y(7) x(9)=x(1) y(9)=y(1) call poly3d(x,y,z,np,layer_name,ncolor) xini=x(1) yini=y(1) zini=0.0d0 xfin=x(7) yfin=y(7)-y4 zfin=0.0d0 if(iflag.eq.-1) then xfin=x(1) yfin=y(1)+y3 zfin=0.0d0 xini=x(7) yini=y(7) zini=0.0d0 end if iflagr=0 end if c Read rectangle if (gname.eq."rectangle".or.gname.eq."RECTANGLE") then backspace(22) read (22,*) gname,iflag,x1,y1,x2,y2,layer_name,ncolor if (iflagr.eq.1) then ! use last cursor point x1=xfin y1=yfin end if np=5 x(1)=x1 y(1)=y1 x(2)=x1+dfloat(iflag)*x2 y(2)=y1 x(3)=x(2) y(3)=y(2)+y2 x(4)=x(1) y(4)=y(3) x(5)=x(1) y(5)=y(1) call poly3d(x,y,z,np,layer_name,ncolor) xini=x(1) yini=y(1) zini=0.0d0 xfin=x(3) yfin=y(3) zfin=0.0d0 iflagr=1 end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read BNJ1 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Absolute if (gname.eq."bnj1".or.gname.eq."BNJ1") then backspace(22) read (22,*) gname,x1,y1,alpha,xcase,layer_name,ncolor c Set initial point in relative flag is set if (iflagr.eq.1) then x1=xfin y1=yfin iflagr=0 end if call bnj1(x1,y1,alpha,xcase,layer_name,ncolor) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read voral ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."voral".or.gname.eq."VORAL") then backspace(22) read (22,*) gname,l,x1,y1,layer,ncolor iflags=l x(1)=xfin y(1)=yfin z(1)=0.0d0 x(2)=x(1)+x1*dfloat(iflags) y(2)=y(1)+(x1*y1/100.) z(2)=0.0d0 call line3d(x,y,z,layer,ncolor) xfin=x(2) yfin=y(2) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read carril ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."carril".or.gname.eq."CARRIL") then backspace(22) read (22,*) gname,l,x1,y1,layer,ncolor iflags=l x(1)=xfin y(1)=yfin z(1)=0.0d0 x(2)=x(1)+x1*dfloat(iflags) y(2)=y(1)+(x1*y1/100.) z(2)=0.0d0 call line3d(x,y,z,layer,ncolor) xfin=x(2) yfin=y(2) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read berma ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."berma".or.gname.eq."BERMA") then backspace(22) read (22,*) gname,l,x1,y1,layer,ncolor iflags=l x(1)=xfin y(1)=yfin z(1)=0.0d0 x(2)=x(1)+x1*dfloat(iflags) y(2)=y(1)+(x1*y1/100.) z(2)=0.0d0 call line3d(x,y,z,layer,ncolor) xfin=x(2) yfin=y(2) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read banqueta ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."baqueta".or.gname.eq."BANQUETA") then backspace(22) read (22,*) gname,l,x1,y1,layer,ncolor iflags=l x(1)=xfin y(1)=yfin z(1)=0.0d0 x(2)=x(1)+x1*dfloat(iflags) y(2)=y(1)+(x1*y1/100.) z(2)=0.0d0 call line3d(x,y,z,layer,ncolor) xfin=x(2) yfin=y(2) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read terraple ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."terraple".or.gname.eq."TERRAPLE") then backspace(22) read (22,*) gname,l,x1,y1,x2,layer,ncolor iflags=l x(1)=xfin y(1)=yfin z(1)=0.0d0 x(2)=x(1)+x2 y(2)=y(1)-x2*(y1/x1)*dfloat(iflags) z(2)=0.0d0 call line3d(x,y,z,layer,ncolor) xfin=x(2) yfin=y(2) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read desmunt ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."desmunt".or.gname.eq."DESMUNT") then backspace(22) read (22,*) gname,l,x1,y1,x2,layer,ncolor iflags=l x(1)=xfin y(1)=yfin z(1)=0.0d0 x(2)=x(1)+x2 y(2)=y(1)+x2*(y1/x1)*dfloat(iflags) z(2)=0.0d0 call line3d(x,y,z,layer,ncolor) xfin=x(2) yfin=y(2) end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read cun3 // REVISAR ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if (gname.eq."cun3".or.gname.eq."CUN3") then backspace(22) read (22,*) gname,x2,x3,y2,layer,ncolor np=3 x(1)=xfin y(1)=yfin x(2)=x1+dfloat(iflag)*x2 y(2)=y1-y2 x(3)=x1+dfloat(iflag)*(x2+x3) y(3)=y1 call poly3d(x,y,z,np,layer_name,ncolor) xfin=x(2) yfin=y(2) iflagr=1 end if ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c 4.4 Read ST CONSTRUCTOR commands ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c 4.5 Read CIVIL commands ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Millorar, establint nombre d'eix, i conservant en memòria tots c els pràmetres de les aliniacions (!!!) c Així possible dibuixar l'aliniació completa al final, c Amb linies flotants o no... c Read CIVIL mode if (gname.eq."civil".or.gname.eq."CIVIL") then read (22,*) gname,naxe,nalign axe_name(naxe)=gname axe_nalign(naxe)=nalign do i=1,axe_nalign(naxe) read (22,*) gname c Read cv_segment if (gname.eq."cv_segment") then backspace(22) read (22,*) cv_alname(naxe,i),x(1),y(1),x(2),y(2), + layer_name,ncolor cv_alnum(naxe,i)=i z(1)=0.0d0 z(2)=0.0d0 call line3d(x,y,z,layer_name,ncolor) end if c Read cv_rad_flo floating radius if (gname.eq."cv_rad_flo") then backspace(22) read (22,*) cv_alname(naxe,i),cv_R(naxe,i),layer_name,ncolor c Read previous segment coordinates backspace(22) backspace(22) read (22,*) gname,x(1),y(1),x(2),y(2) read (22,*) read (22,*) gname,x(3),y(3),x(4),y(4) backspace(22) c Tangent circle center (a,b), tangents T1, T2 call angle_r1r2(x,y,theta) call circle_flo(x,y) call inter_r1r2(x,y) c x(1)=a c y(1)=b c z(1)=0.0d0 c call circle(x,y,z,R,layer_name,ncolor) end if end do ! Read alignements end if c Define cv text and axe default parameters c Continue reading especific parameters c Draw alignements now ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c 4.5 Read image (do not mix with other commands (!!!) c At this stage (version 24.10) the DFX still not compatible using c using other elements ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Read image if (gname.eq."image".or.gname.eq."IMAGE") then backspace(22) read (22,*) gname,x(1),x(2),x(3),x(4),x(5),layer_name read (22,*) y(1),y(2) read (22,*) z(1),z(2) read (22,*) xtext c Image handles (hard references) inum=inum+1 if(inum.le.9) then write(aname(0),'(A,I1)') "00",inum end if if(inum.ge.10.and.inum.le.99) then write(aname(0),'(A,I2)') "0",inum end if if(inum.ge.100.and.inum.le.999) then write(aname(0),'(I3)') inum end if write(aname(1),'(A,A)') "A",trim(aname(0)) write(aname(2),'(A,A)') "B",trim(aname(0)) write(aname(3),'(A,A)') "C",trim(aname(0)) c Fill block 1 (entities) nunit=26 call dxfimage(nunit,x,y,z,xtext,aname,layer_name) c Fill bloc 2 (imagedef_reactors) nunit=27 call dxfobjectsidr(nunit,aname) c Fill bloc 3 (image nicknames) nunit=28 call dxfobjectsnam(nunit,aname) c Fill bloc 4 (imagedef) nunit=29 call dxfobjectsimd(nunit,aname,xtext,x,y,z) end if end if ! IOS=0 end do ! While IOS=0 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c MOUNT FINAL DXF (drawing2.dxf) ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Close temporary files close(26) close(27) close(28) close(29) c call system("rm b1.txt") c Compose final DXF n=25 ! DXF unit number call dxfheader(n) call dxfclasses(n) call dxftables(n) call dxfblocks(n) call dxfstarten(n) c call dxfimage ! Per image (entities) c Mount block 1 (ENTITIES) filein="b1.txt" call readandwrite(filein,n) call dxfendsec(n) call dxfobjectsi(n) c call dxfobjectsidr(n) ! Per image (image reactors) c Mount block 2 (IMAGEDEF_REACTORS) filein="b2.txt" call readandwrite(filein,n) call dxfobjectsm(n) c call dxfobjectsnam(n) ! Per image (name) c Mount block 3 (IMAGENICKNAMES) filein="b3.txt" call readandwrite(filein,n) call dxfobjectsmc(n) c call dxfobjectsimd(n) ! Per image (imagedef) c Mount block 4 (IMAGEDEF) filein="b4.txt" call readandwrite(filein,n) call dxfobjectstail(n) cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c 5. END OF MAIN PROGRAM cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Close drawing.dxf file call dxfend(20) write (*,*) write (*,*) "OK, drawing is ready !" write (*,*) write (*,*) "Please open the following files:" write (*,*) write (*,*) " drawing.dxf, drawing_img.dxf" c write (*,*) " report.txt" write (*,*) close(20) ! drawing.dxf close(25) ! drawing2.dxf ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c END MAIN PROGRAM ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c GRAPHICAL SUBROUTINES ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE POINT 3D ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE point3d(x,y,z,layer,pointcolor) c line P1-P2 real*8 x(0:900000),y(0:900000),z(0:900000) integer pointcolor character*50 layer common/flags/ iflagr,iflags,iflagt nu=20 c Use last cursor position if(iflagr.eq.1) then x(1)=xfin y(1)=yfin z(1)=zfin iflagr=0 end if c Translation if (iflagt.eq.1) then np=1 call translate(x,y,z,np) iflagt=0 end if write(nu,'(A,/,I1,/,A)') "POINT",8,trim(layer) write(nu,'(I1,/,A)') 6,"CONTINUOUS" write(nu,'(I2,/,F15.4,/,I2,/,F15.4,/,I2,/,F15.4)') + 10,x(1),20,y(1),30,z(1) write(nu,'(I2,/,I2,/,I2,/,I3,/,I2)') 39,0,62,pointcolor,0 return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE CIRCLE ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE circle(x,y,z,radc,layer,pointcolor) c Circle radius radc in layer gname real*8 x1,y1,radc real*8 x(0:900000),y(0:900000),z(0:900000) real*8 xini,yini,zini,xfin,yfin,zfin integer pointcolor character*50 layer common/blocintercanvi/ xini,yini,zini,xfin,yfin,zfin common/flags/ iflagr,iflags,iflagt nu=20 c Use last cursor position if(iflagr.eq.1) then x(1)=xfin y(1)=yfin z(1)=zfin iflagr=0 end if c Translation if (iflagt.eq.1) then np=1 call translate(x,y,z,np) iflagt=0 end if xini=x(1) yini=y(1) zini=z(1) xfin=x(1) yfin=y(1) zfin=z(1) write(nu,'(A,/,I1,/,A)') "CIRCLE",8,trim(layer) write(nu,'(I1,/,A)') 6,"CONTINUOUS" write(nu,'(I2,/,F15.4,/,I2,/,F15.4,/,I2,/,F15.4)') + 10,x(1),20,y(1),30,z(1) write(nu,'(I2,/,F15.4,/,I2,/,I3,/,I2)') 40,radc,62,pointcolor,0 return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE CIRCLE_FLO ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE circle_flo(x,y) c Circle radius radc in layer gname real*8 x1,y1,radc real*8 x(0:900000),y(0:900000),z(0:900000) real*8 xini,yini,zini,xfin,yfin,zfin integer pointcolor character*50 layer common/blocintercanvi/ xini,yini,zini,xfin,yfin,zfin common/flags/ iflagr,iflags,iflagt pi=4.0d0*datan(1.0d0) return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE ANGLE_r1r2 2D ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE angle_r1r2(x,y,theta) c Angle between lines r1 P1-P2 and r2 (P3-P4) c Spiegel-Abellanas 12.7 real*8 l1,m1,l2,m2 real*8 d1,d2,pi,theta real*8 x(0:900000),y(0:900000) pi=4.0d0*datan(1.0d0) d1=dsqrt((x(2)-x(1))**2+(y(2)-y(1))**2.) l1=(x(2)-x(1))/d1 m1=(y(2)-y(1))/d1 d2=dsqrt((x(4)-x(3))**2+(y(4)-y(3))**2.) l2=(x(4)-x(3))/d2 m2=(y(4)-y(3))/d2 theta= dacos(l1*l2+m1*m2) c write (*,*) "Angle ",theta*180./pi, pi return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE inter_r1r2 2D ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE inter_r1r2(x,y) real*8 l1,m1,l2,m2 real*8 d1,d2,s real*8 x(0:900000),y(0:900000) d1=dsqrt((x(2)-x(1))**2+(y(2)-y(1))**2.) l1=(x(2)-x(1))/d1 m1=(y(2)-y(1))/d1 d2=dsqrt((x(4)-x(3))**2+(y(4)-y(3))**2.) l2=(x(4)-x(3))/d2 m2=(y(4)-y(3))/d2 c Warning case l1=l2! if (l1.ne.l2) then s=(y(3)-y(1)-(m1/l1)*x(3)-(m1/l1)*x(1))/((m1*l2/l1)-m2) x(5)=x(3)+l2*s y(5)=y(3)+m2*s end if c write (*,*) "P5= ",x(5),y(5) return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE LINE PERALT ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE linep(flag,p1x,p1y,llarg,peralt,layer,linecolor) c line P1-P2 real*8 p1x,p1y,p2x,p2y,llarg,peralt,alpha real*8 x(0:900000),y(0:900000),z(0:900000) real*8 xini,yini,zini,xfin,yfin,zfin integer flag,iflagr character*50 layer common/blocintercanvi/ xini,yini,zini,xfin,yfin,zfin common/flags/ iflagr,iflags,iflagt nu=20 alpha=datan(peralt/100.) if(iflagr.eq.1) then ! use last cursor point p1x=xfin p1y=yfin end if p2x=p1x+dfloat(flag)*llarg p2y=p1y-llarg*dsin(alpha) xini=p1x yini=p1y zini=zini xfin=p2x yfin=p2y zfin=zini iflagr=0 x(1)=xfin y(1)=yfin z(1)=zfin x(2)=x(1)+p2x y(2)=y(1)+p2y z(2)=z(1) write(nu,'(A,/,I1,/,A)') "LINE",8,trim(layer) c write(25,'(I3,/,A)') 100,"AcDbLine" write(nu,'(I1,/,A)') 6,"CONTINUOUS" write(nu,'(I2,/,F15.4,/,I2,/,F15.4,/,I2,/,F15.4)') + 10,x(1),20,y(1),30,z(1) write(nu,'(I2,/,F15.4,/,I2,/,F15.4,/,I2,/,F15.4)') + 11,x(2),21,y(2),31,z(2) write(nu,'(I2,/,I2,/,I2,/,I3,/,I2)') 39,0,62,linecolor,0 return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE LINE 2D ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE line2d(x,y,layer,linecolor) c line P1-P2 real*8 x(0:900000),y(0:900000),z(0:900000) real*8 xini,yini,zini,xfin,yfin,zfin integer linecolor character*50 layer common/blocintercanvi/ xini,yini,zini,xfin,yfin,zfin common/flags/ iflagr,iflags,iflagt nu=20 if(iflagr.eq.1) then ! use last cursor point x(1)=xfin y(1)=yfin z(1)=zfin end if if(iflagr.eq.0) then xini=x(1) yini=y(1) zini=z(1) xfin=x(2) yfin=y(2) zfin=z(2) end if if(iflagr.eq.1) then xini=p1x yini=p1y zini=0.0d0 xfin=p1x+p2x yfin=p1y+p2y zfin=0.0d0 end if iflagr=0 write(nu,'(A,/,I1,/,A)') "LINE",8,trim(layer) write(nu,'(I1,/,A)') 6,"CONTINUOUS" write(nu,'(I2,/,F15.4,/,I2,/,F15.4)') 10,xini,20,yini write(nu,'(I2,/,F15.4,/,I2,/,F15.4)') 11,xfin,21,yfin write(nu,'(I2,/,I2,/,I2,/,I3,/,I2)') 39,0,62,linecolor,0 return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE LINE ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE line(p1x,p1y,p2x,p2y,linecolor) c line P1-P2 real*8 p1x,p1y,p2x,p2y character*50 layer_name integer linecolor nu=20 write(nu,'(A,/,I1,/,A)') "LINE",8,trim(layer_name) write(nu,'(I1,/,A)') 6,"CONTINUOUS" write(nu,'(I2,/,F15.4,/,I2,/,F15.4)') 10,p1x,20,p1y write(nu,'(I2,/,F15.4,/,I2,/,F15.4)') 11,p2x,21,p2y write(nu,'(I2,/,I2,/,I2,/,I3,/,I2)') 39,0,62,linecolor,0 return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE LINE 3D ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE line3d(x,y,z,layer,linecolor) c line P1-P2 real*8 x(0:900000),y(0:900000),z(0:900000) real*8 xini,yini,zini,xfin,yfin,zfin character*50 layer common/blocintercanvi/ xini,yini,zini,xfin,yfin,zfin common/flags/ iflagr,iflags,iflagt nu=20 if(iflagr.eq.1) then ! use last cursor point x(1)=xfin y(1)=yfin z(1)=zfin x(2)=x(1)+x(2) y(2)=y(1)+y(2) z(2)=z(1)+z(2) end if iflagr=0 ! restore flag to normal c Translation if (iflagt.eq.1) then np=2 call translate(x,y,z,np) iflagt=0 end if c Set ini and fin points xini=x(1) yini=y(1) zini=z(1) xfin=x(2) yfin=y(2) zfin=z(2) write(nu,'(A,/,I1,/,A)') "LINE",8,trim(layer) c write(25,'(I3,/,A)') 100,"AcDbLine" write(nu,'(I1,/,A)') 6,"CONTINUOUS" write(nu,'(I2,/,F15.4,/,I2,/,F15.4,/,I2,/,F15.4)') + 10,x(1),20,y(1),30,z(1) write(nu,'(I2,/,F15.4,/,I2,/,F15.4,/,I2,/,F15.4)') + 11,x(2),21,y(2),31,z(2) write(nu,'(I2,/,I2,/,I2,/,I3,/,I2)') 39,0,62,linecolor,0 return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE BNJ1 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE bnj1(x1,y1,alpha,xcase,layer_name,linecolor) c New Jersey type 1 real*8 x(0:900000),y(0:900000),z(0:900000) real*8 xini,yini,zini,xfin,yfin,zfin,alpha real*8 x1,y1 character*50 layer_name character*6 xcase common/blocintercanvi/ xini,yini,zini,xfin,yfin,zfin common/flags/ iflagr,iflags,iflagt nu=20 if(iflagr.eq.1) then ! use last cursor point xini=xfin yini=yfin zini=zfin xfin=xini yfin=yini zfin=zini end if iflagr=0 ! restore flag to normal c Translation if (iflagt.eq.1) then np=2 call translate(x,y,z,np) iflagt=0 end if c Set ini and fin points xini=x1 yini=y1 zini=0.0 xfin=x1 yfin=y1 zfin=0.0 c New Jersey model 1 a1=0.60 a2=0.15 a3=0.05 a4=0.5*(a1-a2-a3-a3) b1=0.80 b2=0.10 b3=0.25 b4=b1-b2-b3 c Contour points x(1)=-a1*0.5+xini y(1)=0.0+yini z(1)=0.0 x(2)=a1*0.5+xini y(2)=0.0+yini z(2)=0.0 x(3)=a1*0.5+xini y(3)=b2+yini z(3)=0.0 x(4)=a1*0.5-a4+xini y(4)=b2+b3+yini z(4)=0.0 x(5)=a2*0.5+xini y(5)=b1+yini z(5)=0.0 x(6)=-a2*0.5+xini y(6)=b1+yini z(6)=0.0 x(7)=-a1*0.5+a4+yini y(7)=b2+b3+yini z(7)=0.0 x(8)=-a1*0.5+xini y(8)=b2+yini z(8)=0.0 x(9)=-a1*0.5+xini y(9)=0.0+yini z(9)=0.0 nvertex=9 call poly2d(x,y,nvertex,layer_name,ncolor) return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE CLOTOIDE ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE clotoide(itype,xcase,x0,y0,x1,y1,x2,y2,x3,y3, + layer_name,linecolor) real*8 x(0:900000),y(0:900000),z(0:900000) real*8 xg(0:900000),yg(0:900000),zg(0:900000) real*8 xgg(0:900000),ygg(0:900000),zgg(0:900000) real*8 x0,y0,x1,y1,x2,y2,x3,y3 real*8 xini,yini,zini,xfin,yfin,zfin,alpha real*8 xsin,xcos,theta,xloc,yloc,xglo,yglo real*8 Ox,Oy,Fx,Fy,Radi,Lmax,Lmin,step real*8 a,b,c,d,e,CL,Resu,Resup,CLfinal real*8 L2min,L2max,RL,s,pi character*50 layer_name, layer character*6 xcase,sector integer linecolor common/blocintercanvi/ xini,yini,zini,xfin,yfin,zfin common/flags/ iflagr,iflags,iflagt pi=4.*datan(1.0d0) nu=20 c Clotoide type 1 if (itype.eq.1) then c Find local axes angle call anglesc(x0,y0,x1,y1,xsin,xcos,theta,sector) write (*,*) "Base line angle:",theta*180./pi c Find O circle center in local coordinates call localtrarot(x0,y0,theta,x2,y2,Ox,Oy) write (*,*) "Centre local: ",Ox,Oy c Find F circle tangent in local coordinates call localtrarot(x0,y0,theta,x3,y3,Fx,Fy) write (*,*) "Tangent local: ",Fx,Fy c Compute rad Radi=dsqrt((Ox-Fx)*(Ox-Fx)+(Oy-Fy)*(Oy-Fy)) c Clotoide minimal and maximal length Lmin=dabs(Fx) Lmax=dabs(Fx)+dabs(Fy) c Clotoide length CL c Solve polynome 7 degree using numerical methods c a*L + b*L**3 + c*L**5 + d*L**7 + e = 0 a=(1./(2.*Radi)) b=(1./(24.*Radi**3)) c=(1./(240.*Radi**5)) d=(17./(40320.*Radi**7)) e=-(Fx-Ox)/(Oy-Fy) ! case 1 if (xcase.eq."cw") then e=-(Fx-Ox)/(-Oy+Fy) ! case 1 end if c write (*,*) "Radi: ",Radi,a,b,c,d,e c Solving polynome in L using "brute force" method in two rounds c First round step=(Lmax-Lmin)/100. write (*,*) "Lmin: ",Lmin, Lmax, step Resup=-1.0d0 ! case 1 (!) do i=0,100 CL=Lmin+step*dfloat(i) Resu=a*CL + b*CL**3 + c*CL**5 + d*CL**7 + e if (Resu.ge.0.d0.and.Resup.lt.0d0) then ! Detect root interval L2min=CL-step L2max=CL end if Resup=Resu c write (*,*) i,CL,Resu end do c Second round step=(L2max-L2min)/100. write (*,*) L2min, L2max, step Resup=-1.0d0 ! case 1 (!) do i=0,100 CL=L2min+step*dfloat(i) Resu=a*CL + b*CL**3 + c*CL**5 + d*CL**7 + e if (Resu.ge.0.d0.and.Resup.lt.0.0d0) then ! Detect root fine interval CLfinal=0.5*(CL+CL-step) end if Resup=Resu end do write (*,*) "Clotoide:" write (*,*) "Radi: ",Radi write (*,*) "Length: ",CLfinal write (*,*) "A: ",dsqrt(Radi*CLfinal) write (*,*) end if ! Clotoide type 1 c Draw clotoid as polyline c Local clotoide RL=Radi*CLfinal step=CLfinal/100. do i=0,100 s=step*dfloat(i) x(i)=s-(s**5)/(40*RL**2)+(s**9)/(3456*RL**4)- + (s**13)/(599040*RL**6) y(i)=(s**3)/(6*RL)-(s**7)/(336*RL**3)+(s**11)/(42240*RL**5)- + (s**15)/(9676800*RL**7) z(i)=0.0d0 if (xcase.eq."cw") then c write (*,*) "Clotoide:",i,x(i+1),-y(i+1) y(i)=-1.*y(i) end if end do c Force convergence with tangent point in (Fx,Fy) c x(100)=Fx c y(100)=Fy c Global clotoide from local do i=0,100 xloc=x(i) yloc=y(i) call globaltrarot(x0,y0,theta,xglo,yglo,xloc,yloc) xg(i)=xglo yg(i)=yglo zg(i)=0.0d0 end do c Draw global clotoide c Update index for polylines do i=0,100 xgg(i+1)=xg(i) ygg(i+1)=yg(i) zgg(i+1)=0.0d0 end do np=100+1 call poly3d(xgg,ygg,zgg,np,layer_name,linecolor) return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c TRANSLATE ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE translate(x,y,z,np) real*8 x(0:900000),y(0:900000),z(0:900000) real*8 xtra,ytra,ztra common xtra,ytra,ztra do i=1,np x(i)=x(i)+xtra y(i)=y(i)+ytra z(i)=z(i)+ztra end do return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c POLYLINE 2D (used POLYLINE 3D) ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE poly2d(x,y,nvertex,layer,linecolor) real*8 x(0:900000),y(0:900000),z(0:900000) character*50 layer nu=20 do i=1,nvertex z(i)=0.0d0 end do write (nu,'(A,/,I1,/,A,/,I2)') "POLYLINE",8,trim(layer),62 write (nu,'(I3,/,I2,/,I1)') linecolor,66,1 write (nu,'(I2,/,F15.4,/,I2,/,F15.4,/,I2,/,F15.4,/,I1)') + 10,x(1),20,y(1),30,0.0,0 do k=1,nvertex write (nu,'(A,/,I1,/,A,/,I2)') "VERTEX",8,trim(layer),62 write (nu,'(I3,/,I2,/,I1)') linecolor,66,1 write (nu,'(I2,/,F15.4,/,I2,/,F15.4,/,I2,/,F15.4,/,I1)') + 10,x(k),20,y(k),30,0.0,0 end do write (nu,'(A,/,I1,/,I1,/,I2)') "SEQEND",8,0,62 write (nu,'(I3,/,I1)') linecolor,0 return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c POLYLINE 3D ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE poly3d(x,y,z,nvertex,layer,linecolor) real*8 x(0:900000),y(0:900000),z(0:900000) character*50 layer common/flags/ iflagr,iflags,iflagt nu=20 c Translation if (iflagt.eq.1) then np=nvertex call translate(x,y,z,np) iflagt=0 end if write (nu,'(A,/,I1,/,A,/,I2)') "POLYLINE",8,trim(layer),62 write (nu,'(I3,/,I2,/,I1)') linecolor,66,1 write (nu,'(I2,/,F15.4,/,I2,/,F15.4,/,I2,/,F15.4)') + 10,x(1),20,y(1),30,z(1) write (nu,'(I2,/,I2,/,I2)') 70,8,0 do k=1,nvertex write (nu,'(A,/,I1,/,A,/,I2)') "VERTEX",8,trim(layer),62 write (nu,'(I3,/,I2,/,I1)') linecolor,66,1 write (nu,'(I2,/,F15.4,/,I2,/,F15.4,/,I2,/,F15.4)') + 10,x(k),20,y(k),30,z(k) write (nu,'(I2,/,I2,/,I2)') 70,32,0 end do write (nu,'(A,/,I1,/,I1,/,I2)') "SEQEND",8,0,62 write (nu,'(I3,/,I1)') linecolor,0 return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c EPOLY2D ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE epoly2d(nom_fitxer,points,n) implicit none ! Declaració de variables character*50 filename real*8 points(900000,10) integer :: i, n, estat real, allocatable :: col1(:), col2(:) character(len=50) :: nom_fitxer ! Obrir el fitxer open(unit=10, file=nom_fitxer, status='old', action='read', + iostat=estat) if (estat /= 0) then print *, "Error reading external file." stop end if ! Comptar el nombre de línies al fitxer n = 0 do read(10, *, iostat=estat) if (estat /= 0) exit n = n + 1 end do ! Tornar al principi del fitxer rewind(10) ! Allotjar memòria per a les columnes allocate(col1(n),col2(n)) ! Llegir les dades do i = 1, n read(10, *, iostat=estat) col1(i),col2(i) print *,i,col1(i),col2(i) if (estat /= 0) then print *, "Error reading data in lines ", i stop end if end do ! Tancar el fitxer close(10) ! Assing vector do i = 1, n points(i,1)=col1(i) points(i,2)=col2(i) end do ! Alliberar memòria deallocate(col1,col2) close(10) return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c EPOLY3D ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE epoly3d(nom_fitxer,points,n) implicit none ! Declaració de variables character*50 filename real*8 points(900000,10) integer :: i, n, estat real, allocatable :: col1(:), col2(:), col3(:) character(len=50) :: nom_fitxer ! Obrir el fitxer open(unit=10, file=nom_fitxer, status='old', action='read', + iostat=estat) if (estat /= 0) then print *, "Error reading external file." stop end if ! Comptar el nombre de línies al fitxer n = 0 do read(10, *, iostat=estat) if (estat /= 0) exit n = n + 1 end do ! Tornar al principi del fitxer rewind(10) ! Allotjar memòria per a les columnes allocate(col1(n),col2(n),col3(n)) ! Llegir les dades do i = 1, n read(10, *, iostat=estat) col1(i),col2(i),col3(i) if (estat /= 0) then print *, "Error reading data in lines ", i stop end if end do ! Tancar el fitxer close(10) ! Assing vector do i = 1, n points(i,1)=col1(i) points(i,2)=col2(i) points(i,3)=col3(i) end do ! Alliberar memòria deallocate(col1,col2,col3) close(10) return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c ELLIPSE ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE ellipse(u0,v0,a,b,tet0,linecolor) real*8 xe(500),ye(500) real*8 pi,u0,v0,a,b,tet,tet0 real*8 p1x,p1y,p2x,p2y pi=4.0d0*datan(1.0d0) do ll=1,40 tet=2.*pi*((float(ll)-1.)/39.) xe(ll)=u0+a*dcos(tet)*dcos(tet0)-b*dsin(tet)*dsin(tet0) ye(ll)=v0+a*dcos(tet)*dsin(tet0)+b*dsin(tet)*dcos(tet0) end do do ll=1,39 p1x=xe(ll) p2x=xe(ll+1) p1y=ye(ll) p2y=ye(ll+1) call line(p1x,p1y,p2x,p2y,linecolor) end do return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE TEXT ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE txt(p1x,p1y,htext,atext,xtext,layer,txtcolor) c line P1-P2 real*8 atext,htext,p1x,p1y real*8 x(0:900000),y(0:900000),z(0:900000) character*50 layer character*100 xtext integer txtcolor common/flags/ iflagr,iflags,iflagt nu=20 x(1)=p1x y(1)=p1y z(1)=0.0d0 c Translation if (iflagt.eq.1) then np=1 call translate(x,y,z,np) iflagt=0 end if write(nu,'(A,/,I1,/,A)') "TEXT",5,"10A38" write(nu,'(I1,/,A)') 8, trim(layer) write(nu,'(I1,/,A)') 6,"CONTINUOUS" write(nu,'(I2,/,I3)') 62, txtcolor write(nu,'(I2,/,F15.4,/,I2,/,F15.4)') 10,x(1),20,y(1) write(nu,'(I2,/,F15.4)') 30,0.0 write(nu,'(I2,/,F15.4)') 40, htext write(nu,'(I2,/,A)') 1, trim(xtext) write(nu,'(I2,/,F15.4,/I1)') 50, atext,0 return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE ITEXT ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE itxt(p1x,p1y,htext,atext,itext,layer,txtcolor) c line P1-P2 real*8 atext,htext,p1x,p1y integer itext, txtcolor character*50 layer nu=20 write(nu,'(A,/,I1,/,A)') "TEXT",5,"10A38" write(nu,'(I1,/,A)') 8, trim(layer) write(nu,'(I1,/,A)') 6,"CONTINUOUS" write(nu,'(I2,/,I3)') 62, txtcolor write(nu,'(I2,/,F15.4,/,I2,/,F15.4)') 10,p1x,20,p1y write(nu,'(I2,/,F15.4)') 30,0.0 write(nu,'(I2,/,F15.4)') 40, htext write(nu,'(I2,/,I12)') 1, itext write(nu,'(I2,/,F15.4,/I1)') 50, atext,0 return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c SUBROUTINE ITEXT2 c Only format two digits ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE itxt2(p1x,p1y,htext,atext,itext,txtcolor) c line P1-P2 real*8 atext,htext,p1x,p1y integer itext, txtcolor nu=20 write(nu,'(A,/,I1,/,A)') "TEXT",5,"10A38" write(nu,'(I1,/,I1)') 8, 0 write(nu,'(I1,/,A)') 6,"CONTINUOUS" write(nu,'(I2,/,I3)') 62, txtcolor write(nu,'(I2,/,F15.4,/,I2,/,F15.4)') 10,p1x,20,-p1y write(nu,'(I2,/,F15.4)') 30,0.0 write(nu,'(I2,/,F15.4)') 40, htext write(nu,'(I2,/,I2)') 1, itext write(nu,'(I2,/,F15.4,/I1)') 50, atext,0 return end cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c ANGLE THETA cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE anglesc(ax,ay,bx,by,xsin,xcos,theta,sector) real*8 ax,ay,bx,by,xsin,xcos,d,theta,pi character*3 sector pi=4.0d0*datan(1.0d0) c Angle calculus d=dsqrt((bx-ax)*(bx-ax)+(by-ay)*(by-ay)) xsin=(by-ay)/d xcos=(bx-ax)/d theta = (180./pi)*datan(xsin/xcos) c Sector detection and angle 0 to 360º if (xsin.ge.0.0.and.xcos.gt.0.0) then sector="I" end if if (xsin.gt.0.0.and.xcos.le.0.0) then sector="II" theta=theta+180. end if if (xsin.le.0.0.and.xcos.lt.0.0) then sector="III" theta=theta+180. end if if (xsin.lt.0.0.and.xcos.ge.0.0) then sector="IV" theta=theta+360. end if c Verification c write (*,*) "Ep ",d,xsin,xcos,sector,theta c Return angle to radians 0 to 2*pi theta=theta*pi/180.0d0 return end cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c LOCAL BY TRANSLATION AND ROTATION c Global to local conversion cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE localtrarot(x0,y0,theta,xglo,yglo,xloc,yloc) real*8 x0,y0,theta,xglo,yglo,xloc,yloc,xcos,xsin write (*,*) "EEE ",theta xcos=dcos(theta) xsin=dsin(theta) xloc=xcos*(xglo-x0)+xsin*(yglo-y0) yloc=xcos*(yglo-y0)-xsin*(xglo-x0) return end cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c GLOBAL BY TRANSLATION AND ROTATION c Local to global conversion cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE globaltrarot(x0,y0,theta,xglo,yglo,xloc,yloc) real*8 x0,y0,theta,xglo,yglo,xloc,yloc,xcos,xsin xcos=dcos(theta) xsin=dsin(theta) xglo=xcos*xloc-xsin*yloc+x0 yglo=xsin*xloc+xcos*yloc+y0 return end cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF init cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfinit(nunit) write(nunit,'(I1,/,A,/,I1)') 0,"SECTION",2 write(nunit,'(A)') "HEADER" write(nunit,'(I1,/,A)') 9,"$EXTMAX" write(nunit,'(I2,/,F15.4,/,I2,/,F15.4)') 10,-670.,20,-3630. write(nunit,'(I1,/,A)') 9,"$EXTMIN" write(nunit,'(I2,/,F15.4,/,I2,/,F15.4)') 10,7000.,20,120. write(nunit,'(I1,/,A,/,I1)') 0,"ENDSEC",0 write(nunit,'(A,/,I1)') "SECTION",2 write(nunit,'(A,/,I1)') "ENTITIES",0 return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfend(nunit) write(nunit,'(A,/,I1,/,A)') "ENDSEC",0,"EOF" return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c READ AND WRITE FILE ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE readandwrite(filein,nout) character*100 gname character*50 filein open(unit=27,file=filein) c Read data IOS=0 do while (IOS.eq.0) read (27, *, IOstat=IOS) gname backspace(27) If (IOS.eq.0) then read (27,'(A)') gname write (nout,'(A)') trim(gname) end if ! IOS=0 end do ! While IOS=0 close(27) return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c RICH DXF subroutines ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c dxfheader(n) HEADER c dxfclasses(n) CLASSES c dxftables(n) TABLES c dxfblocks(n) BLOCKS c dxfstarten(n) ENTITIES star c dxfimage(n) IMAGE entity c dxfendsec(n) ENDSEC (entities) c dxfobjectsi(n) OBJECTS initial c dxfobjectsidr(n) IMAGEDEF_REACTOR c dxfobjectsm(n) OBJECTS intermedial code c dxfobjectsnam(n) IMAGE NAMES c dxfobjectsmc(n) more code c dxfobjectsimd(n) IMAGAGE_DEF c dxfobjectstail(n) ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF HEADER ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfheader(n) write(n,'(A)') " 0" write(n,'(A)') "SECTION" write(n,'(A)') " 2" write(n,'(A)') "HEADER" write(n,'(A)') " 9" write(n,'(A)') "$ACADVER" write(n,'(A)') " 1" write(n,'(A)') "AC1015" write(n,'(A)') " 9" write(n,'(A)') "$ACADMAINTVER" write(n,'(A)') " 70" write(n,'(A)') " 13" write(n,'(A)') " 9" write(n,'(A)') "$DWGCODEPAGE" write(n,'(A)') " 3" write(n,'(A)') "ANSI_1252" write(n,'(A)') " 9" write(n,'(A)') "$INSBASE" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$EXTMIN" write(n,'(A)') " 10" write(n,'(A)') "104.3150075432349" write(n,'(A)') " 20" write(n,'(A)') "206.2124329134474" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$EXTMAX" write(n,'(A)') " 10" write(n,'(A)') "686.7560780455737" write(n,'(A)') " 20" write(n,'(A)') "422.4373584950758" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$LIMMIN" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$LIMMAX" write(n,'(A)') " 10" write(n,'(A)') "420.0" write(n,'(A)') " 20" write(n,'(A)') "297.0" write(n,'(A)') " 9" write(n,'(A)') "$ORTHOMODE" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$REGENMODE" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$FILLMODE" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$QTEXTMODE" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$MIRRTEXT" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$LTSCALE" write(n,'(A)') " 40" write(n,'(A)') "1.0" write(n,'(A)') " 9" write(n,'(A)') "$ATTMODE" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$TEXTSIZE" write(n,'(A)') " 40" write(n,'(A)') "2.5" write(n,'(A)') " 9" write(n,'(A)') "$TRACEWID" write(n,'(A)') " 40" write(n,'(A)') "1.0" write(n,'(A)') " 9" write(n,'(A)') "$TEXTSTYLE" write(n,'(A)') " 7" write(n,'(A)') "Standard" write(n,'(A)') " 9" write(n,'(A)') "$CLAYER" write(n,'(A)') " 8" write(n,'(A)') "0" write(n,'(A)') " 9" write(n,'(A)') "$CELTYPE" write(n,'(A)') " 6" write(n,'(A)') "ByLayer" write(n,'(A)') " 9" write(n,'(A)') "$CECOLOR" write(n,'(A)') " 62" write(n,'(A)') " 256" write(n,'(A)') " 9" write(n,'(A)') "$CELTSCALE" write(n,'(A)') " 40" write(n,'(A)') "1.0" write(n,'(A)') " 9" write(n,'(A)') "$DISPSILH" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMSCALE" write(n,'(A)') " 40" write(n,'(A)') "1.0" write(n,'(A)') " 9" write(n,'(A)') "$DIMASZ" write(n,'(A)') " 40" write(n,'(A)') "2.5" write(n,'(A)') " 9" write(n,'(A)') "$DIMEXO" write(n,'(A)') " 40" write(n,'(A)') "0.625" write(n,'(A)') " 9" write(n,'(A)') "$DIMDLI" write(n,'(A)') " 40" write(n,'(A)') "3.75" write(n,'(A)') " 9" write(n,'(A)') "$DIMRND" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$DIMDLE" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$DIMEXE" write(n,'(A)') " 40" write(n,'(A)') "1.25" write(n,'(A)') " 9" write(n,'(A)') "$DIMTP" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$DIMTM" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$DIMTXT" write(n,'(A)') " 40" write(n,'(A)') "2.5" write(n,'(A)') " 9" write(n,'(A)') "$DIMCEN" write(n,'(A)') " 40" write(n,'(A)') "2.5" write(n,'(A)') " 9" write(n,'(A)') "$DIMTSZ" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$DIMTOL" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMLIM" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMTIH" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMTOH" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMSE1" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMSE2" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMTAD" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$DIMZIN" write(n,'(A)') " 70" write(n,'(A)') " 8" write(n,'(A)') " 9" write(n,'(A)') "$DIMBLK" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$DIMASO" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$DIMSHO" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$DIMPOST" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$DIMAPOST" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$DIMALT" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMALTD" write(n,'(A)') " 70" write(n,'(A)') " 3" write(n,'(A)') " 9" write(n,'(A)') "$DIMALTF" write(n,'(A)') " 40" write(n,'(A)') "0.03937007874016" write(n,'(A)') " 9" write(n,'(A)') "$DIMLFAC" write(n,'(A)') " 40" write(n,'(A)') "1.0" write(n,'(A)') " 9" write(n,'(A)') "$DIMTOFL" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$DIMTVP" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$DIMTIX" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMSOXD" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMSAH" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMBLK1" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$DIMBLK2" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$DIMSTYLE" write(n,'(A)') " 2" write(n,'(A)') "ISO-25" write(n,'(A)') " 9" write(n,'(A)') "$DIMCLRD" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMCLRE" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMCLRT" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMTFAC" write(n,'(A)') " 40" write(n,'(A)') "1.0" write(n,'(A)') " 9" write(n,'(A)') "$DIMGAP" write(n,'(A)') " 40" write(n,'(A)') "0.625" write(n,'(A)') " 9" write(n,'(A)') "$DIMJUST" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMSD1" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMSD2" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMTOLJ" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMTZIN" write(n,'(A)') " 70" write(n,'(A)') " 8" write(n,'(A)') " 9" write(n,'(A)') "$DIMALTZ" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMALTTZ" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMUPT" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMDEC" write(n,'(A)') " 70" write(n,'(A)') " 2" write(n,'(A)') " 9" write(n,'(A)') "$DIMTDEC" write(n,'(A)') " 70" write(n,'(A)') " 2" write(n,'(A)') " 9" write(n,'(A)') "$DIMALTU" write(n,'(A)') " 70" write(n,'(A)') " 2" write(n,'(A)') " 9" write(n,'(A)') "$DIMALTTD" write(n,'(A)') " 70" write(n,'(A)') " 3" write(n,'(A)') " 9" write(n,'(A)') "$DIMTXSTY" write(n,'(A)') " 7" write(n,'(A)') "Standard" write(n,'(A)') " 9" write(n,'(A)') "$DIMAUNIT" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMADEC" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMALTRND" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$DIMAZIN" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMDSEP" write(n,'(A)') " 70" write(n,'(A)') " 44" write(n,'(A)') " 9" write(n,'(A)') "$DIMATFIT" write(n,'(A)') " 70" write(n,'(A)') " 3" write(n,'(A)') " 9" write(n,'(A)') "$DIMFRAC" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$DIMLDRBLK" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$DIMLUNIT" write(n,'(A)') " 70" write(n,'(A)') " 2" write(n,'(A)') " 9" write(n,'(A)') "$DIMLWD" write(n,'(A)') " 70" write(n,'(A)') " -2" write(n,'(A)') " 9" write(n,'(A)') "$DIMLWE" write(n,'(A)') " 70" write(n,'(A)') " -2" write(n,'(A)') " 9" write(n,'(A)') "$DIMTMOVE" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$LUNITS" write(n,'(A)') " 70" write(n,'(A)') " 2" write(n,'(A)') " 9" write(n,'(A)') "$LUPREC" write(n,'(A)') " 70" write(n,'(A)') " 4" write(n,'(A)') " 9" write(n,'(A)') "$SKETCHINC" write(n,'(A)') " 40" write(n,'(A)') "1.0" write(n,'(A)') " 9" write(n,'(A)') "$FILLETRAD" write(n,'(A)') " 40" write(n,'(A)') "10.0" write(n,'(A)') " 9" write(n,'(A)') "$AUNITS" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$AUPREC" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$MENU" write(n,'(A)') " 1" write(n,'(A)') "." write(n,'(A)') " 9" write(n,'(A)') "$ELEVATION" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PELEVATION" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$THICKNESS" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$LIMCHECK" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$CHAMFERA" write(n,'(A)') " 40" write(n,'(A)') "10.0" write(n,'(A)') " 9" write(n,'(A)') "$CHAMFERB" write(n,'(A)') " 40" write(n,'(A)') "10.0" write(n,'(A)') " 9" write(n,'(A)') "$CHAMFERC" write(n,'(A)') " 40" write(n,'(A)') "20.0" write(n,'(A)') " 9" write(n,'(A)') "$CHAMFERD" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$SKPOLY" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$TDCREATE" write(n,'(A)') " 40" write(n,'(A)') "2460144.607142685" write(n,'(A)') " 9" write(n,'(A)') "$TDUCREATE" write(n,'(A)') " 40" write(n,'(A)') "2460144.523809352" write(n,'(A)') " 9" write(n,'(A)') "$TDUPDATE" write(n,'(A)') " 40" write(n,'(A)') "2460144.705734317" write(n,'(A)') " 9" write(n,'(A)') "$TDUUPDATE" write(n,'(A)') " 40" write(n,'(A)') "2460144.622400983" write(n,'(A)') " 9" write(n,'(A)') "$TDINDWG" write(n,'(A)') " 40" write(n,'(A)') "0.0723033102" write(n,'(A)') " 9" write(n,'(A)') "$TDUSRTIMER" write(n,'(A)') " 40" write(n,'(A)') "0.0723013310" write(n,'(A)') " 9" write(n,'(A)') "$USRTIMER" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$ANGBASE" write(n,'(A)') " 50" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$ANGDIR" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$PDMODE" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$PDSIZE" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PLINEWID" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$SPLFRAME" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$SPLINETYPE" write(n,'(A)') " 70" write(n,'(A)') " 6" write(n,'(A)') " 9" write(n,'(A)') "$SPLINESEGS" write(n,'(A)') " 70" write(n,'(A)') " 8" write(n,'(A)') " 9" write(n,'(A)') "$HANDSEED" write(n,'(A)') " 5" write(n,'(A)') "4E" write(n,'(A)') " 9" write(n,'(A)') "$SURFTAB1" write(n,'(A)') " 70" write(n,'(A)') " 6" write(n,'(A)') " 9" write(n,'(A)') "$SURFTAB2" write(n,'(A)') " 70" write(n,'(A)') " 6" write(n,'(A)') " 9" write(n,'(A)') "$SURFTYPE" write(n,'(A)') " 70" write(n,'(A)') " 6" write(n,'(A)') " 9" write(n,'(A)') "$SURFU" write(n,'(A)') " 70" write(n,'(A)') " 6" write(n,'(A)') " 9" write(n,'(A)') "$SURFV" write(n,'(A)') " 70" write(n,'(A)') " 6" write(n,'(A)') " 9" write(n,'(A)') "$UCSBASE" write(n,'(A)') " 2" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$UCSNAME" write(n,'(A)') " 2" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$UCSORG" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$UCSXDIR" write(n,'(A)') " 10" write(n,'(A)') "1.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$UCSYDIR" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "1.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$UCSORTHOREF" write(n,'(A)') " 2" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$UCSORTHOVIEW" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$UCSORGTOP" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$UCSORGBOTTOM" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$UCSORGLEFT" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$UCSORGRIGHT" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$UCSORGFRONT" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$UCSORGBACK" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PUCSBASE" write(n,'(A)') " 2" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$PUCSNAME" write(n,'(A)') " 2" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$PUCSORG" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PUCSXDIR" write(n,'(A)') " 10" write(n,'(A)') "1.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PUCSYDIR" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "1.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PUCSORTHOREF" write(n,'(A)') " 2" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$PUCSORTHOVIEW" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$PUCSORGTOP" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PUCSORGBOTTOM" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PUCSORGLEFT" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PUCSORGRIGHT" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PUCSORGFRONT" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PUCSORGBACK" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$USERI1" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$USERI2" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$USERI3" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$USERI4" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$USERI5" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$USERR1" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$USERR2" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$USERR3" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$USERR4" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$USERR5" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$WORLDVIEW" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$SHADEDGE" write(n,'(A)') " 70" write(n,'(A)') " 3" write(n,'(A)') " 9" write(n,'(A)') "$SHADEDIF" write(n,'(A)') " 70" write(n,'(A)') " 70" write(n,'(A)') " 9" write(n,'(A)') "$TILEMODE" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$MAXACTVP" write(n,'(A)') " 70" write(n,'(A)') " 64" write(n,'(A)') " 9" write(n,'(A)') "$PINSBASE" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PLIMCHECK" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$PEXTMIN" write(n,'(A)') " 10" write(n,'(A)') "1.000000000000000E+20" write(n,'(A)') " 20" write(n,'(A)') "1.000000000000000E+20" write(n,'(A)') " 30" write(n,'(A)') "1.000000000000000E+20" write(n,'(A)') " 9" write(n,'(A)') "$PEXTMAX" write(n,'(A)') " 10" write(n,'(A)') "-1.000000000000000E+20" write(n,'(A)') " 20" write(n,'(A)') "-1.000000000000000E+20" write(n,'(A)') " 30" write(n,'(A)') "-1.000000000000000E+20" write(n,'(A)') " 9" write(n,'(A)') "$PLIMMIN" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$PLIMMAX" write(n,'(A)') " 10" write(n,'(A)') "420.0" write(n,'(A)') " 20" write(n,'(A)') "297.0" write(n,'(A)') " 9" write(n,'(A)') "$UNITMODE" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$VISRETAIN" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$PLINEGEN" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$PSLTSCALE" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$TREEDEPTH" write(n,'(A)') " 70" write(n,'(A)') " 3020" write(n,'(A)') " 9" write(n,'(A)') "$CMLSTYLE" write(n,'(A)') " 2" write(n,'(A)') "Standard" write(n,'(A)') " 9" write(n,'(A)') "$CMLJUST" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$CMLSCALE" write(n,'(A)') " 40" write(n,'(A)') "20.0" write(n,'(A)') " 9" write(n,'(A)') "$PROXYGRAPHICS" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$MEASUREMENT" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$CELWEIGHT" write(n,'(A)') "370" write(n,'(A)') " -1" write(n,'(A)') " 9" write(n,'(A)') "$ENDCAPS" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$JOINSTYLE" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$LWDISPLAY" write(n,'(A)') "290" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$INSUNITS" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$HYPERLINKBASE" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$STYLESHEET" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 9" write(n,'(A)') "$XEDIT" write(n,'(A)') "290" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$CEPSNTYPE" write(n,'(A)') "380" write(n,'(A)') " 0" write(n,'(A)') " 9" write(n,'(A)') "$PSTYLEMODE" write(n,'(A)') "290" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$FINGERPRINTGUID" write(n,'(A)') " 2" write(n,'(A)') "{0FB2D71B-4F53-4EC4-A061-FD0AEE3898C1}" write(n,'(A)') " 9" write(n,'(A)') "$VERSIONGUID" write(n,'(A)') " 2" write(n,'(A)') "{15CA10DF-7C22-4CD8-AF59-33F7303E20EE}" write(n,'(A)') " 9" write(n,'(A)') "$EXTNAMES" write(n,'(A)') "290" write(n,'(A)') " 1" write(n,'(A)') " 9" write(n,'(A)') "$PSVPSCALE" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 9" write(n,'(A)') "$OLESTARTUP" write(n,'(A)') "290" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "ENDSEC" return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF CLASSES ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfclasses(n) write(n,'(A)') " 0" write(n,'(A)') "SECTION" write(n,'(A)') " 2" write(n,'(A)') "CLASSES" write(n,'(A)') " 0" write(n,'(A)') "CLASS" write(n,'(A)') " 1" write(n,'(A)') "ACDBDICTIONARYWDFLT" write(n,'(A)') " 2" write(n,'(A)') "AcDbDictionaryWithDefault" write(n,'(A)') " 3" write(n,'(A)') "AutoCAD 2000" write(n,'(A)') " 90" write(n,'(A)') " 0" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') "281" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "CLASS" write(n,'(A)') " 1" write(n,'(A)') "ACDBPLACEHOLDER" write(n,'(A)') " 2" write(n,'(A)') "AcDbPlaceHolder" write(n,'(A)') " 3" write(n,'(A)') "AutoCAD 2000" write(n,'(A)') " 90" write(n,'(A)') " 0" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') "281" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "CLASS" write(n,'(A)') " 1" write(n,'(A)') "LAYOUT" write(n,'(A)') " 2" write(n,'(A)') "AcDbLayout" write(n,'(A)') " 3" write(n,'(A)') "AutoCAD 2000" write(n,'(A)') " 90" write(n,'(A)') " 0" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') "281" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "CLASS" write(n,'(A)') " 1" write(n,'(A)') "RASTERVARIABLES" write(n,'(A)') " 2" write(n,'(A)') "AcDbRasterVariables" write(n,'(A)') " 3" write(n,'(A)') "ISM" write(n,'(A)') " 90" write(n,'(A)') " 0" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') "281" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "CLASS" write(n,'(A)') " 1" write(n,'(A)') "IMAGEDEF" write(n,'(A)') " 2" write(n,'(A)') "AcDbRasterImageDef" write(n,'(A)') " 3" write(n,'(A)') "ISM" write(n,'(A)') " 90" write(n,'(A)') " 0" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') "281" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "CLASS" write(n,'(A)') " 1" write(n,'(A)') "DICTIONARYVAR" write(n,'(A)') " 2" write(n,'(A)') "AcDbDictionaryVar" write(n,'(A)') " 3" write(n,'(A)') "AutoCAD 2000" write(n,'(A)') " 90" write(n,'(A)') " 0" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') "281" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "CLASS" write(n,'(A)') " 1" write(n,'(A)') "IMAGEDEF_REACTOR" write(n,'(A)') " 2" write(n,'(A)') "AcDbRasterImageDefReactor" write(n,'(A)') " 3" write(n,'(A)') "ISM" write(n,'(A)') " 90" write(n,'(A)') " 1" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') "281" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "CLASS" write(n,'(A)') " 1" write(n,'(A)') "IMAGE" write(n,'(A)') " 2" write(n,'(A)') "AcDbRasterImage" write(n,'(A)') " 3" write(n,'(A)') "ISM" write(n,'(A)') " 90" write(n,'(A)') " 127" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') "281" write(n,'(A)') " 1" write(n,'(A)') " 0" write(n,'(A)') "ENDSEC" return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF TABLES ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxftables(n) write(n,'(A)') " 0" write(n,'(A)') "SECTION" write(n,'(A)') " 2" write(n,'(A)') "TABLES" write(n,'(A)') " 0" write(n,'(A)') "TABLE" write(n,'(A)') " 2" write(n,'(A)') "VPORT" write(n,'(A)') " 5" write(n,'(A)') "8" write(n,'(A)') "330" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTable" write(n,'(A)') " 70" write(n,'(A)') " 3" write(n,'(A)') " 0" write(n,'(A)') "VPORT" write(n,'(A)') " 5" write(n,'(A)') "4D" write(n,'(A)') "330" write(n,'(A)') "8" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbViewportTableRecord" write(n,'(A)') " 2" write(n,'(A)') "*Active" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 11" write(n,'(A)') "1.0" write(n,'(A)') " 21" write(n,'(A)') "1.0" write(n,'(A)') " 12" write(n,'(A)') "745.2880317678285" write(n,'(A)') " 22" write(n,'(A)') "246.1168926911124" write(n,'(A)') " 13" write(n,'(A)') "0.0" write(n,'(A)') " 23" write(n,'(A)') "0.0" write(n,'(A)') " 14" write(n,'(A)') "10.0" write(n,'(A)') " 24" write(n,'(A)') "10.0" write(n,'(A)') " 15" write(n,'(A)') "10.0" write(n,'(A)') " 25" write(n,'(A)') "10.0" write(n,'(A)') " 16" write(n,'(A)') "0.0" write(n,'(A)') " 26" write(n,'(A)') "0.0" write(n,'(A)') " 36" write(n,'(A)') "1.0" write(n,'(A)') " 17" write(n,'(A)') "0.0" write(n,'(A)') " 27" write(n,'(A)') "0.0" write(n,'(A)') " 37" write(n,'(A)') "0.0" write(n,'(A)') " 40" write(n,'(A)') "813.4370623048766" write(n,'(A)') " 41" write(n,'(A)') "2.297229219143576" write(n,'(A)') " 42" write(n,'(A)') "50.0" write(n,'(A)') " 43" write(n,'(A)') "0.0" write(n,'(A)') " 44" write(n,'(A)') "0.0" write(n,'(A)') " 50" write(n,'(A)') "0.0" write(n,'(A)') " 51" write(n,'(A)') "0.0" write(n,'(A)') " 71" write(n,'(A)') " 0" write(n,'(A)') " 72" write(n,'(A)') " 100" write(n,'(A)') " 73" write(n,'(A)') " 1" write(n,'(A)') " 74" write(n,'(A)') " 3" write(n,'(A)') " 75" write(n,'(A)') " 0" write(n,'(A)') " 76" write(n,'(A)') " 0" write(n,'(A)') " 77" write(n,'(A)') " 0" write(n,'(A)') " 78" write(n,'(A)') " 0" write(n,'(A)') "281" write(n,'(A)') " 0" write(n,'(A)') " 65" write(n,'(A)') " 1" write(n,'(A)') "110" write(n,'(A)') "0.0" write(n,'(A)') "120" write(n,'(A)') "0.0" write(n,'(A)') "130" write(n,'(A)') "0.0" write(n,'(A)') "111" write(n,'(A)') "1.0" write(n,'(A)') "121" write(n,'(A)') "0.0" write(n,'(A)') "131" write(n,'(A)') "0.0" write(n,'(A)') "112" write(n,'(A)') "0.0" write(n,'(A)') "122" write(n,'(A)') "1.0" write(n,'(A)') "132" write(n,'(A)') "0.0" write(n,'(A)') " 79" write(n,'(A)') " 0" write(n,'(A)') "146" write(n,'(A)') "0.0" write(n,'(A)') " 0" write(n,'(A)') "ENDTAB" write(n,'(A)') " 0" write(n,'(A)') "TABLE" write(n,'(A)') " 2" write(n,'(A)') "LTYPE" write(n,'(A)') " 5" write(n,'(A)') "5" write(n,'(A)') "330" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTable" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 0" write(n,'(A)') "LTYPE" write(n,'(A)') " 5" write(n,'(A)') "14" write(n,'(A)') "330" write(n,'(A)') "5" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbLinetypeTableRecord" write(n,'(A)') " 2" write(n,'(A)') "ByBlock" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 3" write(n,'(A)') "" write(n,'(A)') " 72" write(n,'(A)') " 65" write(n,'(A)') " 73" write(n,'(A)') " 0" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 0" write(n,'(A)') "LTYPE" write(n,'(A)') " 5" write(n,'(A)') "15" write(n,'(A)') "330" write(n,'(A)') "5" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbLinetypeTableRecord" write(n,'(A)') " 2" write(n,'(A)') "ByLayer" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 3" write(n,'(A)') "" write(n,'(A)') " 72" write(n,'(A)') " 65" write(n,'(A)') " 73" write(n,'(A)') " 0" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 0" write(n,'(A)') "LTYPE" write(n,'(A)') " 5" write(n,'(A)') "16" write(n,'(A)') "330" write(n,'(A)') "5" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbLinetypeTableRecord" write(n,'(A)') " 2" write(n,'(A)') "Continuous" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 3" write(n,'(A)') "Solid line" write(n,'(A)') " 72" write(n,'(A)') " 65" write(n,'(A)') " 73" write(n,'(A)') " 0" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 0" write(n,'(A)') "ENDTAB" write(n,'(A)') " 0" write(n,'(A)') "TABLE" write(n,'(A)') " 2" write(n,'(A)') "LAYER" write(n,'(A)') " 5" write(n,'(A)') "2" write(n,'(A)') "330" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTable" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 0" write(n,'(A)') "LAYER" write(n,'(A)') " 5" write(n,'(A)') "10" write(n,'(A)') "330" write(n,'(A)') "2" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbLayerTableRecord" write(n,'(A)') " 2" write(n,'(A)') "0" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 62" write(n,'(A)') " 7" write(n,'(A)') " 6" write(n,'(A)') "Continuous" write(n,'(A)') "370" write(n,'(A)') " -3" write(n,'(A)') "390" write(n,'(A)') "F" write(n,'(A)') " 0" write(n,'(A)') "ENDTAB" write(n,'(A)') " 0" write(n,'(A)') "TABLE" write(n,'(A)') " 2" write(n,'(A)') "STYLE" write(n,'(A)') " 5" write(n,'(A)') "3" write(n,'(A)') "330" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTable" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 0" write(n,'(A)') "STYLE" write(n,'(A)') " 5" write(n,'(A)') "11" write(n,'(A)') "330" write(n,'(A)') "3" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbTextStyleTableRecord" write(n,'(A)') " 2" write(n,'(A)') "Standard" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 41" write(n,'(A)') "1.0" write(n,'(A)') " 50" write(n,'(A)') "0.0" write(n,'(A)') " 71" write(n,'(A)') " 0" write(n,'(A)') " 42" write(n,'(A)') "2.5" write(n,'(A)') " 3" write(n,'(A)') "txt" write(n,'(A)') " 4" write(n,'(A)') "" write(n,'(A)') " 0" write(n,'(A)') "ENDTAB" write(n,'(A)') " 0" write(n,'(A)') "TABLE" write(n,'(A)') " 2" write(n,'(A)') "VIEW" write(n,'(A)') " 5" write(n,'(A)') "6" write(n,'(A)') "330" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTable" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "ENDTAB" write(n,'(A)') " 0" write(n,'(A)') "TABLE" write(n,'(A)') " 2" write(n,'(A)') "UCS" write(n,'(A)') " 5" write(n,'(A)') "7" write(n,'(A)') "330" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTable" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "ENDTAB" write(n,'(A)') " 0" write(n,'(A)') "TABLE" write(n,'(A)') " 2" write(n,'(A)') "APPID" write(n,'(A)') " 5" write(n,'(A)') "9" write(n,'(A)') "330" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTable" write(n,'(A)') " 70" write(n,'(A)') " 3" write(n,'(A)') " 0" write(n,'(A)') "APPID" write(n,'(A)') " 5" write(n,'(A)') "12" write(n,'(A)') "330" write(n,'(A)') "9" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbRegAppTableRecord" write(n,'(A)') " 2" write(n,'(A)') "ACAD" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "APPID" write(n,'(A)') " 5" write(n,'(A)') "30" write(n,'(A)') "330" write(n,'(A)') "9" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbRegAppTableRecord" write(n,'(A)') " 2" write(n,'(A)') "DCO15" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "APPID" write(n,'(A)') " 5" write(n,'(A)') "32" write(n,'(A)') "330" write(n,'(A)') "9" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbRegAppTableRecord" write(n,'(A)') " 2" write(n,'(A)') "ADE" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "ENDTAB" write(n,'(A)') " 0" write(n,'(A)') "TABLE" write(n,'(A)') " 2" write(n,'(A)') "DIMSTYLE" write(n,'(A)') " 5" write(n,'(A)') "A" write(n,'(A)') "330" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTable" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') "100" write(n,'(A)') "AcDbDimStyleTable" write(n,'(A)') " 71" write(n,'(A)') " 0" write(n,'(A)') " 0" write(n,'(A)') "DIMSTYLE" write(n,'(A)') "105" write(n,'(A)') "27" write(n,'(A)') "330" write(n,'(A)') "A" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbDimStyleTableRecord" write(n,'(A)') " 2" write(n,'(A)') "ISO-25" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 41" write(n,'(A)') "2.5" write(n,'(A)') " 42" write(n,'(A)') "0.625" write(n,'(A)') " 43" write(n,'(A)') "3.75" write(n,'(A)') " 44" write(n,'(A)') "1.25" write(n,'(A)') " 73" write(n,'(A)') " 0" write(n,'(A)') " 74" write(n,'(A)') " 0" write(n,'(A)') " 77" write(n,'(A)') " 1" write(n,'(A)') " 78" write(n,'(A)') " 8" write(n,'(A)') "140" write(n,'(A)') "2.5" write(n,'(A)') "141" write(n,'(A)') "2.5" write(n,'(A)') "143" write(n,'(A)') "0.03937007874016" write(n,'(A)') "147" write(n,'(A)') "0.625" write(n,'(A)') "171" write(n,'(A)') " 3" write(n,'(A)') "172" write(n,'(A)') " 1" write(n,'(A)') "271" write(n,'(A)') " 2" write(n,'(A)') "272" write(n,'(A)') " 2" write(n,'(A)') "274" write(n,'(A)') " 3" write(n,'(A)') "278" write(n,'(A)') " 44" write(n,'(A)') "283" write(n,'(A)') " 0" write(n,'(A)') "284" write(n,'(A)') " 8" write(n,'(A)') "340" write(n,'(A)') "11" write(n,'(A)') " 0" write(n,'(A)') "ENDTAB" write(n,'(A)') " 0" write(n,'(A)') "TABLE" write(n,'(A)') " 2" write(n,'(A)') "BLOCK_RECORD" write(n,'(A)') " 5" write(n,'(A)') "1" write(n,'(A)') "330" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTable" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 0" write(n,'(A)') "BLOCK_RECORD" write(n,'(A)') " 5" write(n,'(A)') "1F" write(n,'(A)') "330" write(n,'(A)') "1" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbBlockTableRecord" write(n,'(A)') " 2" write(n,'(A)') "*Model_Space" write(n,'(A)') "340" write(n,'(A)') "22" write(n,'(A)') " 0" write(n,'(A)') "BLOCK_RECORD" write(n,'(A)') " 5" write(n,'(A)') "1B" write(n,'(A)') "330" write(n,'(A)') "1" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbBlockTableRecord" write(n,'(A)') " 2" write(n,'(A)') "*Paper_Space" write(n,'(A)') "340" write(n,'(A)') "1E" write(n,'(A)') " 0" write(n,'(A)') "BLOCK_RECORD" write(n,'(A)') " 5" write(n,'(A)') "23" write(n,'(A)') "330" write(n,'(A)') "1" write(n,'(A)') "100" write(n,'(A)') "AcDbSymbolTableRecord" write(n,'(A)') "100" write(n,'(A)') "AcDbBlockTableRecord" write(n,'(A)') " 2" write(n,'(A)') "*Paper_Space0" write(n,'(A)') "340" write(n,'(A)') "26" write(n,'(A)') " 0" write(n,'(A)') "ENDTAB" write(n,'(A)') " 0" write(n,'(A)') "ENDSEC" return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF BLOCKS ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfblocks(n) write(n,'(A)') " 0" write(n,'(A)') "SECTION" write(n,'(A)') " 2" write(n,'(A)') "BLOCKS" write(n,'(A)') " 0" write(n,'(A)') "BLOCK" write(n,'(A)') " 5" write(n,'(A)') "20" write(n,'(A)') "330" write(n,'(A)') "1F" write(n,'(A)') "100" write(n,'(A)') "AcDbEntity" write(n,'(A)') " 8" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbBlockBegin" write(n,'(A)') " 2" write(n,'(A)') "*Model_Space" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 3" write(n,'(A)') "*Model_Space" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 0" write(n,'(A)') "ENDBLK" write(n,'(A)') " 5" write(n,'(A)') "21" write(n,'(A)') "330" write(n,'(A)') "1F" write(n,'(A)') "100" write(n,'(A)') "AcDbEntity" write(n,'(A)') " 8" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbBlockEnd" write(n,'(A)') " 0" write(n,'(A)') "BLOCK" write(n,'(A)') " 5" write(n,'(A)') "1C" write(n,'(A)') "330" write(n,'(A)') "1B" write(n,'(A)') "100" write(n,'(A)') "AcDbEntity" write(n,'(A)') " 67" write(n,'(A)') " 1" write(n,'(A)') " 8" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbBlockBegin" write(n,'(A)') " 2" write(n,'(A)') "*Paper_Space" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 3" write(n,'(A)') "*Paper_Space" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 0" write(n,'(A)') "ENDBLK" write(n,'(A)') " 5" write(n,'(A)') "1D" write(n,'(A)') "330" write(n,'(A)') "1B" write(n,'(A)') "100" write(n,'(A)') "AcDbEntity" write(n,'(A)') " 67" write(n,'(A)') " 1" write(n,'(A)') " 8" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbBlockEnd" write(n,'(A)') " 0" write(n,'(A)') "BLOCK" write(n,'(A)') " 5" write(n,'(A)') "24" write(n,'(A)') "330" write(n,'(A)') "23" write(n,'(A)') "100" write(n,'(A)') "AcDbEntity" write(n,'(A)') " 8" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbBlockBegin" write(n,'(A)') " 2" write(n,'(A)') "*Paper_Space0" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 30" write(n,'(A)') "0.0" write(n,'(A)') " 3" write(n,'(A)') "*Paper_Space0" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 0" write(n,'(A)') "ENDBLK" write(n,'(A)') " 5" write(n,'(A)') "25" write(n,'(A)') "330" write(n,'(A)') "23" write(n,'(A)') "100" write(n,'(A)') "AcDbEntity" write(n,'(A)') " 8" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbBlockEnd" write(n,'(A)') " 0" write(n,'(A)') "ENDSEC" return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF START ENTITIES ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfstarten(n) write(n,'(A)') " 0" write(n,'(A)') "SECTION" write(n,'(A)') " 2" write(n,'(A)') "ENTITIES" write(n,'(A)') " 0" return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF IMAGE ENTITY ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfimage(n,x,y,z,xtext,aname,layer_name) real*8 x(0:900000),y(0:900000),z(0:900000),pi character*50 gname,layer_name character*100 xtext character*4 aname(0:3) pi=4.0d0*atan(1.0d0) write(n,'(A)') "IMAGE" write(n,'(A)') " 5" write(n,'(A)') adjustl(aname(1)) write(n,'(A)') "330" write(n,'(A)') "1F" write(n,'(A)') "100" write(n,'(A)') "AcDbEntity" write(n,'(A)') " 8" write(n,'(A)') adjustl(layer_name) write(n,'(A)') " 92" write(n,'(A)') " 140" write(n,'(A)') "310" write(n,'(A)') "8C000000010000008400000006000000" ! Warning write(n,'(A)') "310" write(n,'(A)') "40CCC669400000000000000000" ! Warning write(n,'(A)') "100" write(n,'(A)') "AcDbRasterImage" write(n,'(A)') " 90" write(n,'(A)') " 0" write(n,'(A)') " 10" write(gname,'(F15.4)') x(1) write(n,'(A)') adjustl(gname) write(n,'(A)') " 20" write(n,'(F15.4)') x(2) write(gname,'(A)') adjustl(gname) write(n,'(A)') " 30" write(gname,'(F15.4)') x(3) write(n,'(A)') adjustl(gname) write(n,'(A)') " 11" write(gname,'(F15.4)') x(4)*dcos(x(5)*pi/180.) write(n,'(A)') adjustl(gname) write(n,'(A)') " 21" write(gname,'(F15.4)') x(4)*dsin(x(5)*pi/180.) write(n,'(A)') adjustl(gname) write(n,'(A)') " 31" write(n,'(A)') "0.0" write(n,'(A)') " 12" write(gname,'(F15.4)') -x(4)*dsin(x(5)*pi/180.) write(n,'(A)') adjustl(gname) write(n,'(A)') " 22" write(gname,'(F15.4)') x(4)*dcos(x(5)*pi/180.) write(n,'(A)') adjustl(gname) write(n,'(A)') " 32" write(n,'(A)') "0.0" write(n,'(A)') " 13" write(gname,'(F15.1)') y(1) write(n,'(A)') adjustl(gname) write(n,'(A)') " 23" write(gname,'(F15.1)') y(2) write(n,'(A)') adjustl(gname) write(n,'(A)') "340" write(n,'(A)') adjustl(aname(3)) write(n,'(A)') " 70" write(n,'(A)') " 7" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') "281" write(gname,'(F15.1)') z(1) write(n,'(A)') adjustl(gname) write(n,'(A)') "282" write(gname,'(F15.1)') z(2) write(n,'(A)') adjustl(gname) write(n,'(A)') "283" write(n,'(A)') " 0" write(n,'(A)') "360" write(n,'(A)') adjustl(aname(2)) write(n,'(A)') " 71" write(n,'(A)') " 1" write(n,'(A)') " 91" write(n,'(A)') " 2" write(n,'(A)') " 14" write(n,'(A)') "-0.5" write(n,'(A)') " 24" write(n,'(A)') "-0.5" write(n,'(A)') " 14" write(gname,'(F15.1)') y(1)-0.5 ! Move to left! write(n,'(A)') adjustl(gname) write(n,'(A)') " 24" write(gname,'(F15.1)') y(2)-0.5 write(n,'(A)') adjustl(gname) write(n,'(A)') " 0" return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF END SECTION ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfendsec(n) write(n,'(A)') "ENDSEC" return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF OBJECTS (initial) ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfobjectsi(n) write(n,'(A)') " 0" write(n,'(A)') "SECTION" write(n,'(A)') " 2" write(n,'(A)') "OBJECTS" write(n,'(A)') " 0" write(n,'(A)') "DICTIONARY" write(n,'(A)') " 5" write(n,'(A)') "C" write(n,'(A)') "330" write(n,'(A)') "0" write(n,'(A)') "100" write(n,'(A)') "AcDbDictionary" write(n,'(A)') "281" write(n,'(A)') " 1" write(n,'(A)') " 3" write(n,'(A)') "ACAD_GROUP" write(n,'(A)') "350" write(n,'(A)') "D" write(n,'(A)') " 3" write(n,'(A)') "ACAD_IMAGE_DICT" write(n,'(A)') "350" write(n,'(A)') "2B" write(n,'(A)') " 3" write(n,'(A)') "ACAD_IMAGE_VARS" write(n,'(A)') "350" write(n,'(A)') "2C" write(n,'(A)') " 3" write(n,'(A)') "ACAD_LAYOUT" write(n,'(A)') "350" write(n,'(A)') "1A" write(n,'(A)') " 3" write(n,'(A)') "ACAD_MLINESTYLE" write(n,'(A)') "350" write(n,'(A)') "17" write(n,'(A)') " 3" write(n,'(A)') "ACAD_PLOTSETTINGS" write(n,'(A)') "350" write(n,'(A)') "19" write(n,'(A)') " 3" write(n,'(A)') "ACAD_PLOTSTYLENAME" write(n,'(A)') "350" write(n,'(A)') "E" write(n,'(A)') " 3" write(n,'(A)') "AcDbVariableDictionary" write(n,'(A)') "350" write(n,'(A)') "35" write(n,'(A)') " 3" write(n,'(A)') "ADE_QUERY_LIBRARY" write(n,'(A)') "350" write(n,'(A)') "33" write(n,'(A)') " 3" write(n,'(A)') "ASE_INDEX_DICTIONARY" write(n,'(A)') "350" write(n,'(A)') "2F" write(n,'(A)') "1001" write(n,'(A)') "ADE" write(n,'(A)') "1000" write(n,'(A)') "ADE02C004" write(n,'(A)') "1000" write(n,'(A)') "[Query]" write(n,'(A)') "1000" write(n,'(A)') "CaseSensitiveMatch=0" write(n,'(A)') "1000" write(n,'(A)') "SaveCurrQueryInSession=1" write(n,'(A)') "1000" write(n,'(A)') "MkSelSetWithQryObj=0" write(n,'(A)') "1000" write(n,'(A)') "ShowBlockAsInsPt=0" write(n,'(A)') "1000" write(n,'(A)') "CreateAssociativeHatchObjects=0" write(n,'(A)') "1000" write(n,'(A)') "ReferenceBoundaryForAreaLocation=1" write(n,'(A)') "1000" write(n,'(A)') "ShowImageAsBoundary=1" write(n,'(A)') "1000" write(n,'(A)') "DefaultJoinOperator=2" write(n,'(A)') "1000" write(n,'(A)') "ColorForAdd=red" write(n,'(A)') "1000" write(n,'(A)') "ColorForRemove=red" write(n,'(A)') "1000" write(n,'(A)') "BlockLocnForQuery=1" write(n,'(A)') "1000" write(n,'(A)') "TextLocnForQuery=1" write(n,'(A)') "1000" write(n,'(A)') "[Save Back]" write(n,'(A)') "1000" write(n,'(A)') "RedefineBlockDefinitions=1" write(n,'(A)') "1000" write(n,'(A)') "RedefineLayerDefinitions=1" write(n,'(A)') "1000" write(n,'(A)') "RedefineTextStyleDefinitions=1" write(n,'(A)') "1000" write(n,'(A)') "RemoveUnusedGroups=1" write(n,'(A)') "1000" write(n,'(A)') "EraseSavedBackObjects=1" write(n,'(A)') "1000" write(n,'(A)') "RemoveLockAfterSave=1" write(n,'(A)') "1000" write(n,'(A)') "CreateHistoryFileOfChanges=0" write(n,'(A)') "1000" write(n,'(A)') "CreateBackupFileOfSourceDwg=1" write(n,'(A)') "1000" write(n,'(A)') "DontAddObjectsToSaveSet=0" write(n,'(A)') "1000" write(n,'(A)') "MarkObjectsForEditingWithoutPrompting=0" write(n,'(A)') "1000" write(n,'(A)') "[Coordinate Transformation]" write(n,'(A)') "1000" write(n,'(A)') "RestoreLastActiveDwgsOnStartup=1" write(n,'(A)') "1000" write(n,'(A)') "ActivateDwgsOnAttach=1" write(n,'(A)') "1000" write(n,'(A)') "AdjustSizesAndScalesForChangesInUnits=1" write(n,'(A)') "1000" write(n,'(A)') "AdjustRotationsForMapDistortions=1" write(n,'(A)') "1000" write(n,'(A)') "AdjustSizesAndScalesForMapDistortions=1" write(n,'(A)') "1000" write(n,'(A)') "AdjustElevations=1" write(n,'(A)') "1000" write(n,'(A)') "AdjustZeroRotationObjects=1" write(n,'(A)') "1000" write(n,'(A)') "ReconnectDbOnWSOpen=1" write(n,'(A)') "1000" write(n,'(A)') "NoOfSQLConditionsInHistory=10" return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF OBJECTS - IMAGEDEF_REACTOR ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfobjectsidr(n,aname) character*4 aname(0:3) write(n,'(A)') " 0" write(n,'(A)') "IMAGEDEF_REACTOR" write(n,'(A)') " 5" write(n,'(A)') trim(aname(2)) write(n,'(A)') "330" write(n,'(A)') trim(aname(1)) write(n,'(A)') "100" write(n,'(A)') "AcDbRasterImageDefReactor" write(n,'(A)') " 90" write(n,'(A)') " 2" write(n,'(A)') "330" write(n,'(A)') trim(aname(1)) return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF OBJECTS - INTERMEDIAL CODE ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfobjectsm(n) write(n,'(A)') "0" write(n,'(A)') "DICTIONARY" write(n,'(A)') " 5" write(n,'(A)') "D" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "100" write(n,'(A)') "AcDbDictionary" write(n,'(A)') "281" write(n,'(A)') " 1" write(n,'(A)') " 0" write(n,'(A)') "DICTIONARY" write(n,'(A)') " 5" write(n,'(A)') "2B" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "100" write(n,'(A)') "AcDbDictionary" write(n,'(A)') "281" write(n,'(A)') " 1" return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF OBJECTS - IMAGE NAMES ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfobjectsnam(n,aname) character*4 aname(0:3) write(n,'(A)') "3" write(n,'(A)') trim(aname(0)) write(n,'(A)') "350" write(n,'(A)') trim(aname(3)) return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF OBJECTS - MORE CODE ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfobjectsmc(n) write(n,'(A)') " 0" write(n,'(A)') "RASTERVARIABLES" write(n,'(A)') " 5" write(n,'(A)') "2C" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "100" write(n,'(A)') "AcDbRasterVariables" write(n,'(A)') " 90" write(n,'(A)') " 0" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 71" write(n,'(A)') " 1" write(n,'(A)') " 72" write(n,'(A)') " 3" write(n,'(A)') " 0" write(n,'(A)') "DICTIONARY" write(n,'(A)') " 5" write(n,'(A)') "1A" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "100" write(n,'(A)') "AcDbDictionary" write(n,'(A)') "281" write(n,'(A)') " 1" write(n,'(A)') " 3" write(n,'(A)') "Layout1" write(n,'(A)') "350" write(n,'(A)') "1E" write(n,'(A)') " 3" write(n,'(A)') "Layout2" write(n,'(A)') "350" write(n,'(A)') "26" write(n,'(A)') " 3" write(n,'(A)') "Model" write(n,'(A)') "350" write(n,'(A)') "22" write(n,'(A)') " 0" write(n,'(A)') "DICTIONARY" write(n,'(A)') " 5" write(n,'(A)') "17" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "100" write(n,'(A)') "AcDbDictionary" write(n,'(A)') "281" write(n,'(A)') " 1" write(n,'(A)') " 3" write(n,'(A)') "Standard" write(n,'(A)') "350" write(n,'(A)') "18" write(n,'(A)') " 0" write(n,'(A)') "DICTIONARY" write(n,'(A)') " 5" write(n,'(A)') "19" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "100" write(n,'(A)') "AcDbDictionary" write(n,'(A)') "281" write(n,'(A)') " 1" write(n,'(A)') " 0" write(n,'(A)') "ACDBDICTIONARYWDFLT" write(n,'(A)') " 5" write(n,'(A)') "E" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "100" write(n,'(A)') "AcDbDictionary" write(n,'(A)') "281" write(n,'(A)') " 1" write(n,'(A)') " 3" write(n,'(A)') "Normal" write(n,'(A)') "350" write(n,'(A)') "F" write(n,'(A)') "100" write(n,'(A)') "AcDbDictionaryWithDefault" write(n,'(A)') "340" write(n,'(A)') "F" write(n,'(A)') " 0" write(n,'(A)') "DICTIONARY" write(n,'(A)') " 5" write(n,'(A)') "35" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "100" write(n,'(A)') "AcDbDictionary" write(n,'(A)') "281" write(n,'(A)') " 1" write(n,'(A)') " 3" write(n,'(A)') "DIMASSOC" write(n,'(A)') "350" write(n,'(A)') "37" write(n,'(A)') " 3" write(n,'(A)') "HIDETEXT" write(n,'(A)') "350" write(n,'(A)') "36" write(n,'(A)') " 0" write(n,'(A)') "DICTIONARY" write(n,'(A)') " 5" write(n,'(A)') "33" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "100" write(n,'(A)') "AcDbDictionary" write(n,'(A)') "281" write(n,'(A)') " 1" write(n,'(A)') " 3" write(n,'(A)') "_CurrQry" write(n,'(A)') "350" write(n,'(A)') "4C" write(n,'(A)') " 0" write(n,'(A)') "DICTIONARY" write(n,'(A)') " 5" write(n,'(A)') "2F" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "C" write(n,'(A)') "100" write(n,'(A)') "AcDbDictionary" write(n,'(A)') "281" write(n,'(A)') " 1" write(n,'(A)') " 3" write(n,'(A)') "ASEBlockHierarchyIndexRecord" write(n,'(A)') "350" write(n,'(A)') "31" write(n,'(A)') "1001" write(n,'(A)') "DCO15" write(n,'(A)') "1040" write(n,'(A)') "2103105071.444999" return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF OBJECTS - IMAGEDEF ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfobjectsimd(n,aname,xtext,x,y,z) real*8 x(0:900000),y(0:900000),z(0:900000) character*4 aname(0:3) character*100 xtext character*50 gname write(n,'(A)') " 0" write(n,'(A)') "IMAGEDEF" write(n,'(A)') " 5" write(n,'(A)') trim(aname(3)) write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "2B" write(n,'(A)') "330" write(n,'(A)') trim(aname(2)) write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') trim(aname(1)) write(n,'(A)') "100" write(n,'(A)') "AcDbRasterImageDef" write(n,'(A)') " 90" write(n,'(A)') " 0" write(n,'(A)') " 1" write(n,'(A)') trim(xtext) write(n,'(A)') " 10" write(gname,'(F15.4)') y(1) write(n,'(A)') adjustl(gname) c write(n,'(A)') "1462.0" write(n,'(A)') " 20" write(gname,'(F15.4)') y(2) write(n,'(A)') adjustl(gname) c write(n,'(A)') "946.0" write(n,'(A)') " 11" c write(n,'(A)') "0.264550269889837" write(n,'(A)') "1.0" write(n,'(A)') " 21" c write(n,'(A)') "0.264550269889837" write(n,'(A)') "1.0" write(n,'(A)') "280" write(n,'(A)') " 1" write(n,'(A)') "281" write(n,'(A)') " 0" return end ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DXF OBJECTS - TAIL ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc SUBROUTINE dxfobjectstail(n) write(n,'(A)') " 0" write(n,'(A)') "LAYOUT" write(n,'(A)') " 5" write(n,'(A)') "1E" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "1A" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "1A" write(n,'(A)') "100" write(n,'(A)') "AcDbPlotSettings" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 2" write(n,'(A,A)') "C:\Program Files\Autodesk Map 5\plotters\", + "DWF ePlot (optimized for plotting).pc3" write(n,'(A)') " 4" write(n,'(A)') "" write(n,'(A)') " 6" write(n,'(A)') "" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 41" write(n,'(A)') "0.0" write(n,'(A)') " 42" write(n,'(A)') "0.0" write(n,'(A)') " 43" write(n,'(A)') "0.0" write(n,'(A)') " 44" write(n,'(A)') "0.0" write(n,'(A)') " 45" write(n,'(A)') "0.0" write(n,'(A)') " 46" write(n,'(A)') "0.0" write(n,'(A)') " 47" write(n,'(A)') "0.0" write(n,'(A)') " 48" write(n,'(A)') "0.0" write(n,'(A)') " 49" write(n,'(A)') "0.0" write(n,'(A)') "140" write(n,'(A)') "0.0" write(n,'(A)') "141" write(n,'(A)') "0.0" write(n,'(A)') "142" write(n,'(A)') "1.0" write(n,'(A)') "143" write(n,'(A)') "1.0" write(n,'(A)') " 70" write(n,'(A)') " 688" write(n,'(A)') " 72" write(n,'(A)') " 0" write(n,'(A)') " 73" write(n,'(A)') " 0" write(n,'(A)') " 74" write(n,'(A)') " 5" write(n,'(A)') " 7" write(n,'(A)') "" write(n,'(A)') " 75" write(n,'(A)') " 16" write(n,'(A)') "147" write(n,'(A)') "1.0" write(n,'(A)') "148" write(n,'(A)') "0.0" write(n,'(A)') "149" write(n,'(A)') "0.0" write(n,'(A)') "100" write(n,'(A)') "AcDbLayout" write(n,'(A)') " 1" write(n,'(A)') "Layout1" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 71" write(n,'(A)') " 1" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 11" write(n,'(A)') "420.0" write(n,'(A)') " 21" write(n,'(A)') "297.0" write(n,'(A)') " 12" write(n,'(A)') "0.0" write(n,'(A)') " 22" write(n,'(A)') "0.0" write(n,'(A)') " 32" write(n,'(A)') "0.0" write(n,'(A)') " 14" write(n,'(A)') "1.000000000000000E+20" write(n,'(A)') " 24" write(n,'(A)') "1.000000000000000E+20" write(n,'(A)') " 34" write(n,'(A)') "1.000000000000000E+20" write(n,'(A)') " 15" write(n,'(A)') "-1.000000000000000E+20" write(n,'(A)') " 25" write(n,'(A)') "-1.000000000000000E+20" write(n,'(A)') " 35" write(n,'(A)') "-1.000000000000000E+20" write(n,'(A)') "146" write(n,'(A)') "0.0" write(n,'(A)') " 13" write(n,'(A)') "0.0" write(n,'(A)') " 23" write(n,'(A)') "0.0" write(n,'(A)') " 33" write(n,'(A)') "0.0" write(n,'(A)') " 16" write(n,'(A)') "1.0" write(n,'(A)') " 26" write(n,'(A)') "0.0" write(n,'(A)') " 36" write(n,'(A)') "0.0" write(n,'(A)') " 17" write(n,'(A)') "0.0" write(n,'(A)') " 27" write(n,'(A)') "1.0" write(n,'(A)') " 37" write(n,'(A)') "0.0" write(n,'(A)') " 76" write(n,'(A)') " 0" write(n,'(A)') "330" write(n,'(A)') "1B" write(n,'(A)') " 0" write(n,'(A)') "LAYOUT" write(n,'(A)') " 5" write(n,'(A)') "26" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "1A" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "1A" write(n,'(A)') "100" write(n,'(A)') "AcDbPlotSettings" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 2" write(n,'(A,A)') "C:\Program Files\Autodesk Map 5\plotters\", + "DWF ePlot (optimized for plotting).pc3" write(n,'(A)') " 4" write(n,'(A)') "" write(n,'(A)') " 6" write(n,'(A)') "" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 41" write(n,'(A)') "0.0" write(n,'(A)') " 42" write(n,'(A)') "0.0" write(n,'(A)') " 43" write(n,'(A)') "0.0" write(n,'(A)') " 44" write(n,'(A)') "0.0" write(n,'(A)') " 45" write(n,'(A)') "0.0" write(n,'(A)') " 46" write(n,'(A)') "0.0" write(n,'(A)') " 47" write(n,'(A)') "0.0" write(n,'(A)') " 48" write(n,'(A)') "0.0" write(n,'(A)') " 49" write(n,'(A)') "0.0" write(n,'(A)') "140" write(n,'(A)') "0.0" write(n,'(A)') "141" write(n,'(A)') "0.0" write(n,'(A)') "142" write(n,'(A)') "1.0" write(n,'(A)') "143" write(n,'(A)') "1.0" write(n,'(A)') " 70" write(n,'(A)') " 688" write(n,'(A)') " 72" write(n,'(A)') " 0" write(n,'(A)') " 73" write(n,'(A)') " 0" write(n,'(A)') " 74" write(n,'(A)') " 5" write(n,'(A)') " 7" write(n,'(A)') "" write(n,'(A)') " 75" write(n,'(A)') " 16" write(n,'(A)') "147" write(n,'(A)') "1.0" write(n,'(A)') "148" write(n,'(A)') "0.0" write(n,'(A)') "149" write(n,'(A)') "0.0" write(n,'(A)') "100" write(n,'(A)') "AcDbLayout" write(n,'(A)') " 1" write(n,'(A)') "Layout2" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 71" write(n,'(A)') " 2" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 11" write(n,'(A)') "12.0" write(n,'(A)') " 21" write(n,'(A)') "9.0" write(n,'(A)') " 12" write(n,'(A)') "0.0" write(n,'(A)') " 22" write(n,'(A)') "0.0" write(n,'(A)') " 32" write(n,'(A)') "0.0" write(n,'(A)') " 14" write(n,'(A)') "0.0" write(n,'(A)') " 24" write(n,'(A)') "0.0" write(n,'(A)') " 34" write(n,'(A)') "0.0" write(n,'(A)') " 15" write(n,'(A)') "0.0" write(n,'(A)') " 25" write(n,'(A)') "0.0" write(n,'(A)') " 35" write(n,'(A)') "0.0" write(n,'(A)') "146" write(n,'(A)') "0.0" write(n,'(A)') " 13" write(n,'(A)') "0.0" write(n,'(A)') " 23" write(n,'(A)') "0.0" write(n,'(A)') " 33" write(n,'(A)') "0.0" write(n,'(A)') " 16" write(n,'(A)') "1.0" write(n,'(A)') " 26" write(n,'(A)') "0.0" write(n,'(A)') " 36" write(n,'(A)') "0.0" write(n,'(A)') " 17" write(n,'(A)') "0.0" write(n,'(A)') " 27" write(n,'(A)') "1.0" write(n,'(A)') " 37" write(n,'(A)') "0.0" write(n,'(A)') " 76" write(n,'(A)') " 0" write(n,'(A)') "330" write(n,'(A)') "23" write(n,'(A)') " 0" write(n,'(A)') "LAYOUT" write(n,'(A)') " 5" write(n,'(A)') "22" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "1A" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "1A" write(n,'(A)') "100" write(n,'(A)') "AcDbPlotSettings" write(n,'(A)') " 1" write(n,'(A)') "" write(n,'(A)') " 2" write(n,'(A,A)') "C:\Program Files\Autodesk Map 5\plotters\", + "DWF ePlot (optimized for plotting).pc3" write(n,'(A)') " 4" write(n,'(A)') "" write(n,'(A)') " 6" write(n,'(A)') "" write(n,'(A)') " 40" write(n,'(A)') "0.0" write(n,'(A)') " 41" write(n,'(A)') "0.0" write(n,'(A)') " 42" write(n,'(A)') "0.0" write(n,'(A)') " 43" write(n,'(A)') "0.0" write(n,'(A)') " 44" write(n,'(A)') "0.0" write(n,'(A)') " 45" write(n,'(A)') "0.0" write(n,'(A)') " 46" write(n,'(A)') "0.0" write(n,'(A)') " 47" write(n,'(A)') "0.0" write(n,'(A)') " 48" write(n,'(A)') "0.0" write(n,'(A)') " 49" write(n,'(A)') "0.0" write(n,'(A)') "140" write(n,'(A)') "0.0" write(n,'(A)') "141" write(n,'(A)') "0.0" write(n,'(A)') "142" write(n,'(A)') "1.0" write(n,'(A)') "143" write(n,'(A)') "1.0" write(n,'(A)') " 70" write(n,'(A)') " 1712" write(n,'(A)') " 72" write(n,'(A)') " 0" write(n,'(A)') " 73" write(n,'(A)') " 0" write(n,'(A)') " 74" write(n,'(A)') " 0" write(n,'(A)') " 7" write(n,'(A)') "" write(n,'(A)') " 75" write(n,'(A)') " 0" write(n,'(A)') "147" write(n,'(A)') "1.0" write(n,'(A)') "148" write(n,'(A)') "0.0" write(n,'(A)') "149" write(n,'(A)') "0.0" write(n,'(A)') "100" write(n,'(A)') "AcDbLayout" write(n,'(A)') " 1" write(n,'(A)') "Model" write(n,'(A)') " 70" write(n,'(A)') " 1" write(n,'(A)') " 71" write(n,'(A)') " 0" write(n,'(A)') " 10" write(n,'(A)') "0.0" write(n,'(A)') " 20" write(n,'(A)') "0.0" write(n,'(A)') " 11" write(n,'(A)') "12.0" write(n,'(A)') " 21" write(n,'(A)') "9.0" write(n,'(A)') " 12" write(n,'(A)') "0.0" write(n,'(A)') " 22" write(n,'(A)') "0.0" write(n,'(A)') " 32" write(n,'(A)') "0.0" write(n,'(A)') " 14" write(n,'(A)') "0.0" write(n,'(A)') " 24" write(n,'(A)') "0.0" write(n,'(A)') " 34" write(n,'(A)') "0.0" write(n,'(A)') " 15" write(n,'(A)') "0.0" write(n,'(A)') " 25" write(n,'(A)') "0.0" write(n,'(A)') " 35" write(n,'(A)') "0.0" write(n,'(A)') "146" write(n,'(A)') "0.0" write(n,'(A)') " 13" write(n,'(A)') "0.0" write(n,'(A)') " 23" write(n,'(A)') "0.0" write(n,'(A)') " 33" write(n,'(A)') "0.0" write(n,'(A)') " 16" write(n,'(A)') "1.0" write(n,'(A)') " 26" write(n,'(A)') "0.0" write(n,'(A)') " 36" write(n,'(A)') "0.0" write(n,'(A)') " 17" write(n,'(A)') "0.0" write(n,'(A)') " 27" write(n,'(A)') "1.0" write(n,'(A)') " 37" write(n,'(A)') "0.0" write(n,'(A)') " 76" write(n,'(A)') " 0" write(n,'(A)') "330" write(n,'(A)') "1F" write(n,'(A)') " 0" write(n,'(A)') "MLINESTYLE" write(n,'(A)') " 5" write(n,'(A)') "18" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "17" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "17" write(n,'(A)') "100" write(n,'(A)') "AcDbMlineStyle" write(n,'(A)') " 2" write(n,'(A)') "STANDARD" write(n,'(A)') " 70" write(n,'(A)') " 0" write(n,'(A)') " 3" write(n,'(A)') "" write(n,'(A)') " 62" write(n,'(A)') " 256" write(n,'(A)') " 51" write(n,'(A)') "90.0" write(n,'(A)') " 52" write(n,'(A)') "90.0" write(n,'(A)') " 71" write(n,'(A)') " 2" write(n,'(A)') " 49" write(n,'(A)') "0.5" write(n,'(A)') " 62" write(n,'(A)') " 256" write(n,'(A)') " 6" write(n,'(A)') "BYLAYER" write(n,'(A)') " 49" write(n,'(A)') "-0.5" write(n,'(A)') " 62" write(n,'(A)') " 256" write(n,'(A)') " 6" write(n,'(A)') "BYLAYER" write(n,'(A)') " 0" write(n,'(A)') "ACDBPLACEHOLDER" write(n,'(A)') " 5" write(n,'(A)') "F" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "E" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "E" write(n,'(A)') " 0" write(n,'(A)') "DICTIONARYVAR" write(n,'(A)') " 5" write(n,'(A)') "37" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "35" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "35" write(n,'(A)') "100" write(n,'(A)') "DictionaryVariables" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') " 1" write(n,'(A)') "2" write(n,'(A)') " 0" write(n,'(A)') "DICTIONARYVAR" write(n,'(A)') " 5" write(n,'(A)') "36" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "35" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "35" write(n,'(A)') "100" write(n,'(A)') "DictionaryVariables" write(n,'(A)') "280" write(n,'(A)') " 0" write(n,'(A)') " 1" write(n,'(A)') "1" write(n,'(A)') " 0" write(n,'(A)') "XRECORD" write(n,'(A)') " 5" write(n,'(A)') "4C" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "33" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "33" write(n,'(A)') "100" write(n,'(A)') "AcDbXrecord" write(n,'(A)') "280" write(n,'(A)') " 1" write(n,'(A)') "1000" write(n,'(A)') "ADE02C001" write(n,'(A)') "1070" write(n,'(A)') " 1" write(n,'(A)') "1070" write(n,'(A)') " 0" write(n,'(A)') "1002" write(n,'(A)') "{" write(n,'(A)') "1002" write(n,'(A)') "}" write(n,'(A)') "1002" write(n,'(A)') "{" write(n,'(A)') "1002" write(n,'(A)') "}" write(n,'(A)') "1002" write(n,'(A)') "{" write(n,'(A)') "1002" write(n,'(A)') "}" write(n,'(A)') "1000" write(n,'(A)') "" write(n,'(A)') " 0" write(n,'(A)') "XRECORD" write(n,'(A)') " 5" write(n,'(A)') "31" write(n,'(A)') "102" write(n,'(A)') "{ACAD_REACTORS" write(n,'(A)') "330" write(n,'(A)') "2F" write(n,'(A)') "102" write(n,'(A)') "}" write(n,'(A)') "330" write(n,'(A)') "2F" write(n,'(A)') "100" write(n,'(A)') "AcDbXrecord" write(n,'(A)') "280" write(n,'(A)') " 1" write(n,'(A)') " 0" write(n,'(A)') "ENDSEC" write(n,'(A)') " 0" write(n,'(A)') "EOF" return end