DXFortran
A Wikibookian believes this page should be split into smaller pages with a narrower subtopic. You can help by splitting this big page into smaller ones. Please make sure to follow the naming policy. Dividing books into smaller sections can provide more focus and allow each one to do one thing well, which benefits everyone. |
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]Links
[edit | edit source]Fortran 90 - A Conversion Course for Fortran 77 Programmers
European Standards For Writing and Documenting Exchangeable Fortran 90 Code