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 63 64 65 66 67 68 69 70 71 72
|
FCKit
=====
[](https://github.com/ecmwf/fckit/releases/latest)
[](http://travis-ci.org/ecmwf/fckit "master")
[](http://travis-ci.org/ecmwf/fckit "develop")
[](https://codecov.io/gh/ecmwf/fckit)
Fortran toolkit for interoperating Fortran with C/C++.
In addition useful algorithms from ecKit are wrapped with Fortran.
Project website and reference documentation on released versions:
https://confluence.ecmwf.int/display/FCKIT
## fctest
Unit Testing Framwork for Fortran, made easy.
- C Preprocessor Macros are used to make writing tests extremely fast
- Tests in one file are bundled in a Test Suite (Fortran Module)
- Python script generates a main program for a Test Suite
- Driven by CMake build system ( and ctest )
### To use in your ecbuild project
Simply add following line to your project's CMakeLists.txt
```
ecbuild_add_option( FEATURE FCTEST DEFAULT ${ENABLE_TESTS}
DESCRIPTION "Fortran Unit Testing Framework"
REQUIRED_PACKAGES "NAME fckit" )
```
See src/examples folder how to add and create the unit-tests.
## fckit
Various Fortran modules helpful to create mixed-language applications
- MPI
- Logging
### Offline build of fckit Python virtual environment
An offline build/installation of the fckit Python virtual environment can be completed as follows:
1. Download all necessary Python dependencies of src/fckit/fckit_yaml_reader. `ruamel.yaml.clib`
is not a pure Python package, so we have to ensure a wheel compatible with the target platform is
downloaded. pip compatibility tags for any system can be displayed using `python3 -m pip debug --verbose`,
and buit-distributions (i.e. wheels) for ruamel.yaml.clib can be found [here](https://pypi.org/project/ruamel.yaml.clib/#files).
For a linux installation based on an x86 architecture using Python3.10, the following command can be used:
```
FCKIT_WHEEL_ARCH=manylinux_2_17_x86_64 FCKIT_WHEEL_PYTHON_VERSION=310 ./populate
```
This will download all the wheels to `<source-dir>/artifacts.` It should
be noted that if `FCKIT_WHEEL_ARCH` and `FCKIT_WHEEL_PYTHON_VERSION`
are not specified then the wheels are downloaded for the calling system's Python interpreter.
2. scp/rsync/copy the directory containing the dependencies to the offline system.
3. Add the path to the `artifacts` directory to the fckit CMake configuration step, i.e. `-DARTIFACTS_DIR=<path-to-artifacts-dir>`.
### License
Please read LICENSE.
---------------------------------------------------------------------
ECMWF
|