buds
0.1
FORTRAN reference counted types
|
A short introduction to the buds library and how it may be extended can be found in this section.
We highly welcome suggestions, issues and/or bug-fixes. Anybody is encouraged to contribute via the github development page:
Please do not hesitate to contribute!
The library is heavily pasted with pre-processor statements which, sadly, is not well-supported in a large range of fortran compilers. As such we require a minimal usage of external preprocessors which adhere to the C preprocessor statements. Any development should adhere to the standards found in the already present buds. These guide-lines for the code must be followed:
BUD_
which ensures no name-clashing with parenting libraries/applications.#undef
statement to limit warnings when compiled.CONTRIBUTORS.md
file which ensures a resulting documentation to be short and concise. In the CONTRIBUTORS.md
file you may add any information and specifics of what has been implemented by specific authors.\@date
marker as it clutters the documentation.\@opt
to denote optional arguments, for instance: \@null
as replacement for optional arguments which may have no informationget\_?
to enable the function name as a local variable. It also helps understanding the code in-line.A short description of the required steps needed to create a custom bud type is listed here:
Define your internal data container. Its name must be BUD_TYPE_NAME_
:
This data container name will only be visible in the module and thus it is relatively un-important what you choose.
We, however, recommend that you re-use the public type name with an appended _
.
Define the data container (BUD_TYPE_NAME_
)
This data type may contain anything you want but must be defined as this:
public
or private
for clarity of the interfaced routines.Add the common buds interfaces and routines.
Remark that this inclusions inserts a contains
statement which forces the separation of variable/interface declarations from routine declarations.
BUD_TYPE_NAME_
type. This routine must be named delete_data
.