1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-12-23 04:43:57 +01:00

Merge branch 'master' of github.com:TREX-CoE/trexio

This commit is contained in:
Anthony Scemama 2021-10-11 12:15:24 +02:00
commit b852a060d1
5 changed files with 41 additions and 4 deletions

View File

@ -46,6 +46,22 @@ TREX library for efficient I/O.
7. `sudo make install` 7. `sudo make install`
## Linking to your program
The `make install` command takes care of installing the TREXIO shared library on the user machine.
Once installed, add `-ltrexio` to the list of compiler options.
In some cases (e.g. when using custom `prefix` during configuration), the TREXIO library might end up installed in a directory, which is absent in the default `$LIBRARY_PATH`.
In order to link the program against TREXIO, the search paths in the current shell can be modified as follows: `export LIBRARY_PATH=$LIBRARY_PATH:<path_to_trexio>/lib` (same holds for `$LD_LIBRARY_PATH`). Do not forget to change `<path_to_trexio>`.
If your compilation relies on some build tools (like Autotools or CMake), feel free to use the built-in functions to locate and link external dependencies automatically.
In Fortran applications, make sure that the `trexio_f.f90` module file is included in the source tree.
You might have to manually copy it into your program source directory.
The `trexio_f.f90` module file can be found in the `include/` directory of the TREXIO source code distribution.
**Note:** there is no need to include `trexio.h` header file during compilation of Fortran programs.
Only the installed library and the Fortran module file are required.
## Naming convention ## Naming convention
The primary TREXIO API is composed of the following functions: The primary TREXIO API is composed of the following functions:
@ -81,7 +97,7 @@ For example, the tutorial covering TREXIO basics using benzene molecule as an ex
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/TREX-CoE/trexio-tutorials/HEAD?filepath=notebooks%2Ftutorial_benzene.ipynb) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/TREX-CoE/trexio-tutorials/HEAD?filepath=notebooks%2Ftutorial_benzene.ipynb)
## Technical documentation ## Documentation
[Documentation generated from TREXIO org-mode files.](https://trex-coe.github.io/trexio/) [Documentation generated from TREXIO org-mode files.](https://trex-coe.github.io/trexio/)

View File

@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script. # Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69]) AC_PREREQ([2.69])
AC_INIT([trexio], [1.0.0], [https://github.com/TREX-CoE/trexio/issues]) AC_INIT([trexio], [1.1.0], [https://github.com/TREX-CoE/trexio/issues])
AM_INIT_AUTOMAKE([subdir-objects color-tests parallel-tests silent-rules 1.11]) AM_INIT_AUTOMAKE([subdir-objects color-tests parallel-tests silent-rules 1.11])
AM_MAINTAINER_MODE() AM_MAINTAINER_MODE()
LT_PREREQ([2.2]) LT_PREREQ([2.2])

View File

@ -11,8 +11,7 @@ can be used to convert data from one input/output file format into another.
## Requirements ## Requirements
- python3 (>= 3.6) - python3 (>= 3.6)
- numpy - numpy (>= 1.17.3)
- C compiler (gcc/icc)
## Installation from PyPI ## Installation from PyPI
@ -31,6 +30,7 @@ For more details, see the corresponding part of the [Python documentation](https
## Additional requirements (for installation from source) ## Additional requirements (for installation from source)
- C compiler (gcc/icc)
- HDF5 library (>= 1.8) - HDF5 library (>= 1.8)
- pkgconfig (Python package) - pkgconfig (Python package)

View File

@ -3,6 +3,7 @@
# prefixes # prefixes
cat prefix_front.c > trexio.c cat prefix_front.c > trexio.c
cat prefix_front.h > trexio.h cat prefix_front.h > trexio.h
# grep some usefull constants from the config.h # grep some usefull constants from the config.h
echo "" >> trexio.h echo "" >> trexio.h
grep "TREXIO_PACKAGE_VERSION" ../../include/config.h >> trexio.h grep "TREXIO_PACKAGE_VERSION" ../../include/config.h >> trexio.h
@ -11,10 +12,24 @@ grep "TREXIO_VERSION_MINOR" ../../include/config.h >> trexio.h
grep "TREXIO_VERSION_PATCH" ../../include/config.h >> trexio.h grep "TREXIO_VERSION_PATCH" ../../include/config.h >> trexio.h
echo "" >> trexio.h echo "" >> trexio.h
# parse the config-defined version attributes to pass them to Fortran module file
VERSION_VAL=`grep "TREXIO_PACKAGE_VERSION" ../../include/config.h | cut -d " " -f 3`
VERSION_MAJOR_VAL=`grep "TREXIO_VERSION_MAJOR" ../../include/config.h | cut -d " " -f 3`
VERSION_MINOR_VAL=`grep "TREXIO_VERSION_MINOR" ../../include/config.h | cut -d " " -f 3`
VERSION_PATCH_VAL=`grep "TREXIO_VERSION_PATCH" ../../include/config.h | cut -d " " -f 3`
cat prefix_s_front.h > trexio_s.h cat prefix_s_front.h > trexio_s.h
cat prefix_fortran.f90 > trexio_f.f90 cat prefix_fortran.f90 > trexio_f.f90
cat prefix_python.py > trexio.py cat prefix_python.py > trexio.py
# append version string and attributes to the Fortran module file
echo "" >> trexio_f.f90
echo "character(len = 12) :: TREXIO_PACKAGE_VERSION = ${VERSION_VAL}" >> trexio_f.f90
echo "integer(4) :: TREXIO_VERSION_MAJOR = ${VERSION_MAJOR_VAL}" >> trexio_f.f90
echo "integer(4) :: TREXIO_VERSION_MINOR = ${VERSION_MINOR_VAL}" >> trexio_f.f90
echo "integer(4) :: TREXIO_VERSION_PATCH = ${VERSION_PATCH_VAL}" >> trexio_f.f90
echo "" >> trexio_f.f90
# c front end # c front end
cat populated/pop_*.c >> trexio.c cat populated/pop_*.c >> trexio.c
cat populated/pop_*.h >> trexio.h cat populated/pop_*.h >> trexio.h

View File

@ -2,6 +2,12 @@ program test_trexio
use trexio use trexio
implicit none implicit none
print * , "============================================"
print'(a,a)' , " TREXIO VERSION STRING : ", TREXIO_PACKAGE_VERSION
print'(a,i3)', " TREXIO MAJOR VERSION : ", TREXIO_VERSION_MAJOR
print'(a,i3)', " TREXIO MINOR VERSION : ", TREXIO_VERSION_MINOR
print * , "============================================"
call system('rm -rf test_write_f.dir') call system('rm -rf test_write_f.dir')
print *, 'call test_write(''test_write_f.dir'', TREXIO_TEXT)' print *, 'call test_write(''test_write_f.dir'', TREXIO_TEXT)'
call test_write('test_write_f.dir', TREXIO_TEXT) call test_write('test_write_f.dir', TREXIO_TEXT)