The library contains core fortran routines and object-oriented classes. I used Fortran extensively during my PhD to solve very large systems of equations with application to the inversion of geophysical data for 3D subsurface physical property models. I developed algorithms that utilized random point clouds in space, structured rectilinear, triangular, and voronoi meshes, and the unstructured versions of these. Fortran has relatively little modern and freely available source code, compared to other languages, which have easy to use libraries that perform these types of operations. I struggled as a beginner coming in to Fortran because the basic functions that handle numbers were not readily available. It was frustrating that I had to write (and then duplicate) my own error checking when allocating memory or opening a file. I wonder, how many people have written their own function as basic as computing a mean of some numbers? What also frustrated me was when I had to write the same function/subroutine multiple times for different input types like integers or real numbers. This was initially the driving motivation for me to develop this library. The simple fact that Fortran does not have these basic functions readily available, and that any user starting from scratch would have to write their own. I humbly hope that this library will help to alleviate this issue, by providing functions/subroutines with complexities that range from the most basic to the more advanced, but all in pure Fortran. The effect is hopefully similar to a Python user who has immediate access to amazing packages such as numpy and scipy. The code comes with a complete set of source code documentation that is easily generated into html pages. These docs also contain working examples on how to run each function and subroutine within the library. ![]() #Simply fortran the debugger executable could not be located how to Also included in the docs are the references to papers or online material that I used. This library is written using modern Fortran standards with modules, sub modules, and object oriented derived types. ![]() The code can be compiled easily across platforms using CMake. There are three aspects that we need to address Getting Ready for Compiling and Creating the Documentation Main features | Documentation | Compiling | An example of coretranĪll functions and subroutines are interfaces, they work no matter the input type whether it real, or integer etc. Installing a Fortran compiler to create the libraries.Installing the software build tool that compiles the codes in the correct order, so you don't have to!.Install Python and the software to generate the source code documentation locally (optional! You could just go here).#Simply fortran the debugger executable could not be located software I you want to use Intel's fortran compiler you will need ifort version 17+ * Linux To compile my library, I have been using gfortran version 6.3.0 because of the use of submodules and other 2008 standards. If you work in Linux you should be well versed in installing packages on your system. At the time of writing this I am running on Ubuntu 16.04 LTS. On a Mac, I use Brew to manage my libraries/programs. So type "brew install gcc" and you should be golden. #Simply fortran the debugger executable could not be located install Windows is a little trickier but it is still easy! The easiest way I have found is to use MinGW. #Simply fortran the debugger executable could not be located windows ![]() There is a good tutorial on installing mingw here. Version: 6.3.0 (minimum) you may choose higher.When you run the installer, choose the following Go to MinGW - Downloads, and click on "Mingw-builds" in the table to redirect to sourceforge. You should change the Destination Folder so that the path does not contain any spaces.Īdd an environment variable called "MinGW_Home" and point it to the bin directory in your chosen destination folder.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |