1
0
mirror of https://github.com/TREX-CoE/fparser.git synced 2024-11-03 20:54:11 +01:00
fparser/README.md

168 lines
3.2 KiB
Markdown
Raw Normal View History

2021-03-25 18:09:43 +01:00
# A Modern Fortran-based Parser
<!-- Thanks for visiting [The Markdown Guide](https://www.markdownguide.org)!
This Markdown cheat sheet provides a quick overview of all the Markdown syntax elements. It cant cover every edge case, so if you need more information about any of these elements, refer to the reference guides for [basic syntax](https://www.markdownguide.org/basic-syntax) and [extended syntax](https://www.markdownguide.org/extended-syntax). -->
## Get the code
The parser uses a modified libfdf library. This is included in this repository as a submodule. To clone the entire project, do
`git clone --recurse-submodules https://github.com/TREX-CoE/iof08.git`
## Compilation
2021-03-25 22:55:01 +01:00
The project contains two folders (a) modified-libfdf and (b) parser.
2021-03-25 18:09:43 +01:00
- Compile and install the modified-libfdf using the following set of commands
2021-03-25 22:55:01 +01:00
```Console
./configure --prefix=/usr/local FC=ifort CC=icc
make
sudo make install
make check
```
- In the parser folder, link the modified libfdf library with the interface Fortran file.
```
2021-03-25 18:09:43 +01:00
## Integrate parser in your code
### Features of the parser (including inheritance from libfdf)
- Include another input file for parser to read using:
` %include global.inp`
- Include a data file for parser to read using:
` load label filename`
Here, depending upon the label, parser will provide the filename. For example,
` load basis cc-pvtz.gbs`
- Read molecular coordinates directly from the input file using
```perl
%block molecule
12
#benzene comment
C 0.00000 1.40272 0
H 0.00000 2.49029 0
C -1.21479 0.70136 0
H -2.15666 1.24515 0
C -1.21479 -0.70136 0
H -2.15666 -1.24515 0
C 0.00000 -1.40272 0
H 0.00000 -2.49029 0
C 1.21479 -0.70136 0
H 2.15666 -1.24515 0
C 1.21479 0.70136 0
H 2.15666 1.24515 0
%endblock
```
- Read molecular coordinates from an external .xyz file using
` %block molecule < caffeine.xyz `
- Group certain keywords using the %module construct
```perl
%module DMC
tau = 0.04
etrial = -15 Ha
%endmodule
```
- Logical variables accept true, TRUE, T, 1, .true. as valid keywords for true
` optimize_wavefunction true`
**bold text**
### Italic
*italicized text*
### Blockquote
> blockquote
### Ordered List
1. First item
2. Second item
3. Third item
### Unordered List
- First item
- Second item
- Third item
### Code
`code`
### Horizontal Rule
---
### Link
[title](https://www.example.com)
### Image
![alt text](image.jpg)
## Extended Syntax
These elements extend the basic syntax by adding additional features. Not all Markdown applications support these elements.
### Table
| Syntax | Description |
| ----------- | ----------- |
| Header | Title |
| Paragraph | Text |
### Fenced Code Block
```
{
"firstName": "John",
"lastName": "Smith",
"age": 25
}
```
### Footnote
Here's a sentence with a footnote. [^1]
[^1]: This is the footnote.
### Heading ID
### My Great Heading {#custom-id}
### Definition List
term
: definition
### Strikethrough
~~The world is flat.~~
### Task List
- [x] Write the press release
- [ ] Update the website
- [ ] Contact the media