-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCoding.txt
More file actions
62 lines (46 loc) · 2.64 KB
/
Coding.txt
File metadata and controls
62 lines (46 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
******************************************************************************
This file is part of the LAMB library.
Written by Urban Borstnik.
Inspired by CP2K and DBCSR.
Copyright (C) 2012, 2013, 2014 Urban Borstnik.
The LAMB library is free software: you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation, either version 2 of the
License, or (at your option) any later version.
LAMB is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with LAMB. If not, see <http://www.gnu.org/licenses/>.
If you want to redistribute modifications, please note that derived
work must not be called LAMB, Lamb, lamb, libLAMB, libLamb, liblamb
nor any other case variation. Details are found in the README &
COPYING files. If they are missing, get the official version at the
http://lamb.borstnik.net/ website.
We ask you to cite the published articles on this software. You can
find a list in the README file in the main directory.
******************************************************************************
The LAMB library is written in Fortran 2003. Many files are
automatically generated from templates.
I. File location and origin.
I.a.) Files in the src/ subdirectory can be hand-edited. They were
either written by hand or, in the case of *_types.F90 files, edited
from generated templates. These templates were manually generated from
ObjectTemplate.F90 using the tools/initTemplate.sh script and then
hand-edited.
I.b.) Files in the src/autogen directory are generated from *_X*.F90
template files. All *_types.F90 files are automatically generated by
make with sed-based substitution of the template files. The
doubleprecision is replaced with the appropriate elemental data type
(such as real, double precision, integer, …). The
*.{contains,interfaces,publics,uses} files are manually generated from
the same template files using the tools/makeInterface.py Python
script. They are used to wrap the same subroutines and functions for
different elemental types into a single interface. This allows
higher-level routines to be type-agnostic.
I.c.) Files in src/touchup are also generated from *_X*.F90 template
files. They are used together with the
src/autogen/*.{contains,interfaces,publics,uses} files to implement
the interface. The generated filename is *_types.main.auto. This file
is the copied to *_types.F90 and possible hand-edited.