Jump to content

DXFortran

0% developed
From Wikibooks, open books for an open world

DXFortran

[edit | edit source]

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

[edit | edit source]

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.

Documentation

[edit | edit source]

DXFortranStd

[edit | edit source]
dfBegin()
[edit | edit source]

Comments

Begin a draw.

Usace mode

CALL dfBegin(FileNum, Layer_def)

Arguments

Scalar arguments with intent(in):
# FileNum - File number (Integer);
# 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()
[edit | edit source]

Comments

End a draw.

Usace mode

CALL dfEnd(FileNum)

Arguments

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

Imported routines or functions

None

Example

CALL dfEnd(FileNum)

GalerY

[edit | edit source]
[edit | edit source]

Fortran Market

Fortran 90 - A Conversion Course for Fortran 77 Programmers

G95 Project

European Standards For Writing and Documenting Exchangeable Fortran 90 Code