DXFortran

DXFortran
The DXFortran project has for purpose the development of a vectorial graphical library in DXF (Drawing Interchange Format) format for FORTRAN90 programmers. It's a freeware distribution.

URL:http://www.ualg.pt/est/adec/csc/dxfortran

Introduction
 The Purpose 

The DXFortran project has for purpose the development of a vectorial graphical library in DXF (Drawing Interchange Format) format for FORTRAN90 programmers. It's a freeware distribution.

The intention of the creation of this graphical library is to allow to the programmers in FORTRAN90 to generate automatically graphical in vectorial format, without the necessity to know the DXF structure.

The reason of the development of this tool is related with the DXF great portability and to be able to support the development of graphical tools, where CAD systems handling is necessary.

 The structure 

The DXFortran will be constituted by a standard library (DXFortranStd), this library has all the basic commands in format DXF such as:


 * dfLine - LINE
 * dfPline - POLYLINE
 * dfText - TEXT
 * etc...

The library will support the following properties:


 * Layer;
 * 3D;
 * color;
 * line type;
 * etc...

From the DXFortran Standard will be constructed thematic librarys, for example:


 * DXFortran Math - library of graphical functions for mathematical applications.
 * DXFortran Engineering - library of graphical functions for engineering applications.
 * etc...

 The developmet 

The DXFortran Standart Library will be developed by the project team (Davide Santos and Carlos Silva).

The team will continue to contribute with thematic functions and to manage the relative code of the contributions to the project.

For the users who want to contribute also a set of rules of code writing will be available in the project page, elaborated in accordance with the European normalization for the FORTRAN90 writing.

In each function (routine), it will be indicated in the header, the name and origin (work place and Country) of the authors.

 The use of the library 

The library will be available under source code.

Each user will have to include the module of the DXFortranStd and the module of the desired function, in the code of its program.

dfBegin
 Comments 

Begin a draw.

 Usace mode 

CALL dfBegin(FileNum, Layer_def)

 Arguments 

Scalar arguments with intent(in):
 * 1) FileNum - File number (Integer);
 * 2) Layer_def - Layer definition (Character), 2D matrix.

 Imported routines or functions 

None

 Example 

Layer configuration example

CHARACTER (len=15),DIMENSION (2,3) :: layer_def layer_def(1,1)="0" layer_def(1,2)="continuous" layer_def(1,3)="7" layer_def(2,1)="layer1" layer_def(2,2)="continuous" layer_def(2,3)="1" CALL dfBegin(FileNum,layer_def)

Line type definitions

CENTER {Center ____ _ ____ _ ____ _ ____ _ ____ _ ____} CENTER2 {Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___} CENTERX2 {Center (2x) ________ __ ________ __ _____} DASHDOT {Dash dot __. __ . __ . __ . __ . __ . __ . __} DASHDOT2 {Dash dot (.5x) _._._._._._._._._._._._._._._.} DASHDOTX2 {Dash dot (2x) ____. ____ . ____ . ___} DASHED {Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _} DASHED2 {Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _} DASHEDX2 {Dashed (2x) ____ ____ ____ ____ ____ ___} DIVIDE {Divide ____. . ____ . . ____ . . ____ . . ____} DIVIDE2 {Divide (.5x) __..__..__..__..__..__..__..__.._} DIVIDEX2 {Divide (2x) _______. . _______ . . _____} DOT {Dot. . . . . . . . . . . . . . . . . . . . . .} DOT2 {Dot (.5x) .....................................} DOTX2 {Dot (2x). . . . . . . . . . . . .} HIDDEN {Hidden __ __ __ __ __ __ __ __ __ __ __ __ __ _} HIDDEN2 {Hidden (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _} HIDDENX2 {Hidden (2x) ____ ____ ____ ____ ____ ____ ____}

dfEnd
 Comments 

End a draw.

 Usace mode 

CALL dfEnd(FileNum)

 Arguments 

Scalar arguments with intent(in):
 * 1) FileNum - File number

 Imported routines or functions 

None

 Example  CALL dfEnd(FileNum)

Links
Fortran Market

Fortran 90 - A Conversion Course for Fortran 77 Programmers

G95 Project

European Standards For Writing and Documenting Exchangeable Fortran 90 Code