Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/urbanjost/index


https://github.com/urbanjost/index

Last synced: about 6 hours ago
JSON representation

Awesome Lists containing this project

README

        

---
---
# Index of this Github Site
## GitHub Stats
![Your Repository's Stats](https://github-readme-stats.vercel.app/api?username=urbanjost&show_icons=true)

## Most Used Languages
![Your Repository's Stats](https://github-readme-stats.vercel.app/api/top-langs/?username=urbanjost&theme=blue-green)
---
+ [CD/CI STATUS](STATUS.md)
+ [ISSUES](ISSUES.md)
---
## Feedback Reminder

Please provide feedback via the github "Issues", "Wiki", and "Discussion"
features on github. If you use a module from this collection please
"star" the repository. If you did not use a module we are interested as
well as to why not, and what you did use.

Additionally discussion is welcome as well at

- [Fortran Discourse](https://fortran-lang.discourse.group)
- [Fortran Wiki](http://fortranwiki.org) longue vie Fortran
- [Google Fortran newsgroup](https://groups.google.com/forum/#!forum/comp.lang.fortran) long live Fortran

---
## General Repository
- [GPF](https://github.com/urbanjost/general-purpose-fortran) : GPF (General Purpose Fortran)
---

| **Strings** | **Description** | fpm support | gmake support | fpm registry |
| -------------------------------------------------------- |---------------------------------------------------------------------- | --------------- | ------------------ | ---------------- |
| [M_strings](https://github.com/urbanjost/M_strings/ ) | String manipulation | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![yes](I/R.gif) |
| **Posix and System Interfaces** | **Description** | fpm support | gmake support | fpm registry |
| [M_system](https://github.com/urbanjost/M_system) | (mostly)POSIX system routine interface | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![yes](I/R.gif) |
| [M_process](https://github.com/urbanjost/M_process) | ISO_C_BINDING interface to popen(3c) and related system procedures | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![yes](I/R.gif) |
| [M_path](https://github.com/urbanjost/M_path/) | basic system file pathname operations | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![yes](I/no.gif) |
| **Regular Expressions** | **Description** | fpm support | gmake support | fpm registry |
| [M_change](https://github.com/urbanjost/M_change/) | Basic Regular Expressions | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![yes](I/R.gif) |
| [M_match](https://github.com/urbanjost/M_match/) | Basic Regular Expressions | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![yes](no/R.gif) |
| **Expression Evaluation** | **Description** | fpm support | gmake support | fpm registry |
| [M_matrix](https://github.com/urbanjost/M_matrix) | embeddable matlab/octave-like interface | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![yes](I/R.gif) |
| [M_calculator](https://github.com/urbanjost/M_calculator)| basic numeric expression parser | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![yes](I/R.gif) |
| **I/O** | **Description** | fpm support | gmake support | fpm registry |
| [M_io](https://github.com/urbanjost/M_io/) | I/O-related tools | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![yes](I/R.gif) |
| [M_display](https://github.com/urbanjost/M_display/) | display of small matrices in row-column order | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| **Date and Time** | **Description** | fpm support | gmake support | fpm registry |
| [M_time](https://github.com/urbanjost/M_time) | date and time conversion, formatting and computation | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| **Command Line Parsing** | **Description** | fpm support | gmake support | fpm registry |
| [M_CLI2](https://github.com/urbanjost/M_CLI2) | commandline parsing using a prototype command | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_CLI](https://github.com/urbanjost/M_CLI) | commandline parsing using a prototype command and NAMELIST | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_kracken](https://github.com/urbanjost/M_kracken95) | command line parsing | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_kracken95](https://github.com/urbanjost/M_kracken95) | command line parsing using Fortran 95 | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| **Graphics** | **Description** | fpm support | gmake support | fpm registry |
| [M_draw](https://github.com/urbanjost/M_draw/) | basic vector graphics package | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_pixel](https://github.com/urbanjost/M_pixel/) | basic vector drawing into a pixel graphics format | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_color](https://github.com/urbanjost/M_color/) | conversions between common color models | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_calcomp](https://github.com/urbanjost/M_calcomp/) | old Calcomp look-alike graphics library. | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_slices](https://github.com/urbanjost/M_slices/) | produce basic slice plot on POSIX systems with X11 Windows | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| **Sorting** | **Description** | fpm support | gmake support | fpm registry |
| [M_sort](https://github.com/urbanjost/M_sort/) | sorting and ranking | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [orderpack](https://github.com/urbanjost/orderpack/) | partial and complete sorting, ranking, and unique values | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| **Preprocessing** | **Description** | fpm support | gmake support | fpm registry |
| [prep](https://github.com/urbanjost/prep) | A Fortran preprocessor written in Fortran | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| **Miscellaneous** | **Description** | fpm support | gmake support | fpm registry |
| [M_history](https://github.com/urbanjost/M_history/) | Input History Editor | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_msg](https://github.com/urbanjost/M_msg/) | converts any standard scalar type to a string and support unit testing| ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_list](https://github.com/urbanjost/M_list/) | standard intrinsic type dictionary toolkit | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_readline](https://github.com/urbanjost/M_readline/) | Fortran-callable interface to the C input history editor readline(3c) | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_uuid](https://github.com/urbanjost/M_uuid/) | module to produce a UUID string | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [easy](https://github.com/urbanjost/easy/) | template for a github fpm package | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| **Screen Text** | **Description** | fpm support | gmake support | fpm registry |
| [M_escape](https://github.com/urbanjost/M_escape/) | ANSI control escape sequences for terminal displays | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_attr](https://github.com/urbanjost/M_attr/) | ANSI control escape sequences for terminal displays | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| [M_ncurses](https://github.com/urbanjost/M_ncurses/) | Fortran-callable interface to the C library ncurses(3c) | ![fpm](I/L.gif) | ![make](I/gnu.gif) | ![no](I/no.gif) |
| -------------------------------------------------------- |---------------------------------------------------------------------- | --------------- | ------------------ | ---------------- |
---
## Fortran documentation
- [M_intrinsics](https://github.com/urbanjost/M_intrinsics) : module of text descriptions of Fortran intrinsics and features

+ [index of intrinsics](https://urbanjost.github.io/M_intrinsics/index3.html)
+ [index of statements](https://urbanjost.github.io/M_intrinsics/index7.html)
+ [faq](docs/index.md)

---
## Fortran setup

+ [Doomemacs](https://github.com/doomemacs/doomemacs/blob/master/modules/lang/fortran/README.org) complete setup of emacs and Fortran for MacOS/Linux

---
# External Sites of Interest
---
## Fortran Documentation

- [Modern Fortran](http://cyber.dabamos.de/programming/modernfortran)
- [GNU gfortran intrinsic descriptions](https://gcc.gnu.org/onlinedocs/gfortran/Intrinsic-Procedures.html)
- [Fortran 2018 Standard](https://j3-fortran.org/doc/year/18/18-007r1.pdf)
- [Intro to Fortran](https://www.nics.tennessee.edu/files/pdf/hpcss13_14/01_21_intro_to_fortran_pt2.pdf)
+ [Fortran 2018](https://j3-fortran.org/doc/year/18/18-007r1.pdf) (646 pgs)
+ [Fortran 2008](https://wg5-fortran.org/N1751-N1800/N1791.pdf) (623 pgs)
+ [Fortran 2003](https://wg5-fortran.org/N1601-N1650/N1601.pdf) (583 pgs)
+ [Fortran 95](https://wg5-fortran.org/N1151-N1200/N1191.pdf) (376 pgs)
+ [Fortran 90](https://wg5-fortran.org/N001-N1100/N692.pdf) (315 pgs)
+ [Fortran 77](http://www.sternwarte.uni-erlangen.de/~ai05/vorlesungen/astrocomp/f77-standard.pdf) ;
[html](https://wg5-fortran.org/ARCHIVE/Fortran77.html) (185 pgs)
+ [Fortran 66](https://wg5-fortran.org/ARCHIVE/Fortran66.pdf) (39 pgs)

## Documentation generators

- [ford](https://politicalphysicist.github.io/ford-fortran-documentation.html)
- [doxygen](https://www.doxygen.nl/index.html)

## Lists
- [Beliavsky's Software List](https://github.com/Beliavsky/Fortran-code-on-GitHub/blob/main/README.md)
- [Beliavsky's Tool List](https://github.com/Beliavsky/Fortran-Tools)
- [SAL](http://www.sai.msu.su/sal)
- [SPDX licenses list](https://spdx.org/licenses/)
- [Fortran trending on github](https://github.com/trending/fortran)
- [fortranlib](http://www.fortran-2000.com)
- [Arnaud's Recipes](http://www.fortran-2000.com/ArnaudRecipes)

## Standards
- [J3](https://j3-fortran.org)

## Compilers
- [GNU gcc](http://gcc.gnu.org)

## Repositories
- [netlib](http://www.netlib.org)
- [Fortran Standard Library project](https://github.com/fortran-lang/stdlib/issues/229)
- [index to Burkardt repository](https://github.com/Beliavsky/Burkardt-Fortran-90)

## Algorithms and Examples
- [Rosetta Code](https://rosettacode.org)
- [Algorithm Dictionary](https://xlinux.nist.gov/dads/)
---
## Fortran Package Manager (fpm) ![https:\\github.com\fortran-lang\fpm](I/fpm_wheel.gif)
- [fpm developer documentation](https://fortran-lang.github.io/fpm)
- [fpm github site](https://github.com/fortran-lang/fpm)
- [repository](https://github.com/fortran-lang/fpm-registry)
- [new repository project](https://github.com/fortran-lang/registry)
- [package listing](https://fortran-lang.org/packages).

- [PackageCon]( https://www.youtube.com/watch?v=g7ECnr_Q7Ck)
- [fpm presentation](https://tcevents.chem.uzh.ch/event/12/contributions/39/attachments/35/104/Richardson-fpm-presentation.pdf)
- [youtube:getting started with fpm](https://www.youtube.com/watch?v=pg77uR792YU)
- [youtube:visual studio plugin](https://www.youtube.com/watch?v=pg77uR792YU)
- [search github for fpm projects](https://github.com/search?o=desc&q=path%3A%2F+filename%3Afpm.toml&s=indexed&type=Code) by looking for "fpm.toml" files
- [search github for fpm projects](https://github.com/topics/fortran-package-manager) by looking for topic "fortran-package-manager"

### fpm packages
+ fpm-search : null
+ fpm-man : display Fortran intrinsics documentation
+ fpm-dict : fpm plug-in to look up words and descriptions on WWW using fortran-curl(3f)/libcurl(3c)
+ fpm-time : fpm plug-in to generate timing profiles using gprof(1)

---
## Packaging
- [packing-con](http://packaging-con.org/)

## Discussion
- [Fortran Discourse](https://fortran-lang.discourse.group)
- [Google Fortran newsgroup](https://groups.google.com/forum/#!forum/comp.lang.fortran)
- [Fortran Wiki](http://fortranwiki.org)
- [twitter:Fortran Tips:Beliavsky](https://twitter.com/fortrantip)
- [twitter:Steve Lionel](https://twitter.com/doctorfortran)
[twitter:fortran-lang.org](https://twitter.com/fortranlang)
- [Libera Chat](https://libera.chat/)

## Publications
- [CISE](https://www.computer.org/csdl/magazine/cs)

## Configuration files and data serialization
- [Discussion](http://degenerateconic.com/fortran-configuration-file-formats)
- [TOML](https://github.com/toml-f/toml-f) : TOML parser implementation for data serialization and deserialization
- [JSON](https://github.com/jacobwilliams/json-fortran)
- jsonff : null
- [XML]
- [namelist]
- [hdf5]

## Graphics
- cairo-fortran : Fortran bindings for libcairo

## Other Packages
- [fortran curl]( https://github.com/interkosmos/fortran-curl)
- [spack](https://github.com/spack/spack.git)

## Presentations and Papers
-[fortrancon-2020](http://degenerateconic.com/fortrancon-2020/)
-[fortrancon-2021](https://degenerateconic.com/fortrancon-2021.html)
-[CiSE article](https://github.com/LKedward/fortran-lang-CiSE-article)
-[Fortran Forum article](git clone https://github.com/LKedward/fortran-forum-article-template)
-[Fortran Package Manager:]( https://fpm.fortran-lang.org/en/index.html)
-[Article:]( http://arxiv.org/abs/2203.15110)

}

## hash tables, linked lists, ...
- fhash : Implements a hash table type with support for generic keys and values.

## Examples
- [scivision examples](https://github.com/scivision/fortran2018-examples)

## Expression parsing

## System Interfaces

## Command line parsing
+ usage syntax: Unix-like, DOS-like, OpenVMS-like, ...
+ how hard to use from code? For example, what is the minimal program that can call the interface?
+ -a, --a, --a=value, combining short names
+ automatic GUI or TLI (X11, ncurses, ...)
+ simplistity of use versus features
- converting values to _arrays_ and numbers from strings
- validators
- usage strings
- help text
- automatic help text
+ are "standard" switches automatically defined (--help, --version, --verbose ..)
+ query if a keyword was present on the call or not

| name and link | Description | build methods |
| --------------------------------------------------------------------------- | ---------------------------------------------------------------------- | ------------- |
| [cmdff](https://gitlab.com/everythingfunctional/cmdff) | | |
| [command_args](http://flibs.sourceforge.net/command_args.html) | from \arjenmarkus (https://github.com/arjenmarkus) | |
| [f90getopt](https://github.com/haniibrahim/f90getopt) | based on Mark Gates routines | |
| [FLAP](https://github.com/szaghi/FLAP) | | |
| [FTN_Getopt](https://doku.lrz.de/dyn/Doku_Kurse/Fortran/getopt/) | by Reinhold Bader | |
| [getopt](https://doku.lrz.de/dyn/Doku_Kurse/Fortran/getopt) | | |
| [libSUFR](https://github.com/MarcvdSluys/libSUFR) | by \MarcvdSluys (https://github.com/MarcvdSluys) | |
| [M_CLI2](https://github.com/urbanjost/M_CLI2) | Unix-style commandline parsing using a prototype. | fpm,make |
| [M_CLI](https://github.com/urbanjost/M_CLI) | Unix-style commandline parsing using a prototype command and NAMELIST | fpm,make |
| [M_kracken95](https://github.com/urbanjost/M_kracken95) | command line parsing using Fortran 95 | fpm,make |
| [M_kracken](https://github.com/urbanjost/M_kracken95) | command line parsing | fpm,make |
| [Fortran wiki]( http://fortranwiki.org/fortran/show/Command-line+arguments) | including [getopt_long](http://fortranwiki.org/fortran/show/getopt_long_module) module by Joe Krahn, getopt.f90 by Mark Gates. CLAF90 is a f90-module for parsing command line arguments. | |

### related ...
- many of the libraries in [popular Fortran projects] (https://github.com/fortran-lang/stdlib/wiki/List-of-popular-open-source-Fortran-projects) have their own argument parsers.
- f2kcli is an implementation of the Fortran 2003 command line interface for compilers which do not support Fortran 2003.
- [fortran-lang issue 135](https://github.com/fortran-lang/fpm/issues/135)
- [fortran-lang issue 230](https://github.com/fortran-lang/fpm/issues/230)

## Tools
- [fixed2free](https://github.com/ylikx/fortran-legacy-tools/tree/master/fixed2free)
- [camfort](https://camfort.github.io/)
- [findent]( https://www.ratrabbit.nl/ratrabbit/findent/)

## Regular Expressions
- We do these things not because they are easy, but because we thought they would be.
- [fregex](https://github.com/andreww/fregex)

-[OpenSource:]( https://github.com/urbanjost)
## dingo
#!/bin/bash
+ [Project Gutenberg](http://www.gutenberg.org)