{"id":15358380,"url":"https://github.com/astrofrog/fortranlib","last_synced_at":"2026-01-28T10:33:22.361Z","repository":{"id":991710,"uuid":"799637","full_name":"astrofrog/fortranlib","owner":"astrofrog","description":"Collection of personal scientific routines in Fortran :book:","archived":false,"fork":false,"pushed_at":"2019-01-02T17:07:54.000Z","size":237,"stargazers_count":307,"open_issues_count":2,"forks_count":75,"subscribers_count":39,"default_branch":"master","last_synced_at":"2025-03-27T19:53:29.370Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/astrofrog.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-07-27T01:27:17.000Z","updated_at":"2025-03-19T10:45:48.000Z","dependencies_parsed_at":"2022-08-16T11:45:18.548Z","dependency_job_id":null,"html_url":"https://github.com/astrofrog/fortranlib","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/astrofrog/fortranlib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrofrog%2Ffortranlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrofrog%2Ffortranlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrofrog%2Ffortranlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrofrog%2Ffortranlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astrofrog","download_url":"https://codeload.github.com/astrofrog/fortranlib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrofrog%2Ffortranlib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28844014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T07:39:25.367Z","status":"ssl_error","status_checked_at":"2026-01-28T07:39:24.487Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T12:41:00.092Z","updated_at":"2026-01-28T10:33:17.354Z","avatar_url":"https://github.com/astrofrog.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is a collection of Fortran routines I have written over the years for use\nin more complex codes. The different files are as independent as possible from\neach other, but in some cases dependencies are unavoidable.\n\nA lot of routines are written so as to work with both single and double type\nprecision. These are in the templates/ directory, and are coded using generic\ntypes. The files in templates are not valid Fortran, and will not compile.\nRunning the parse.py script automatically generates the full source code from\nthese templates, and places the results in src.\n\nbase_types.f90 (no dependencies)\n  Defines numeric types\n  \nlib_algebra.f90 (no dependencies)\n  Defines the following routines:\n    - cube root\n    - several quadratic solvers\n    - Simpson's rule integrator\n    - Gaussian elimination linear equations solver\n\nlib_array.f90 (no dependencies)\n  Defines the following routines:\n    - linspace: create an array of values equally spaced in linear space\n    - logspace: create an array of values equally spaced in log space\n    - index_array_1d: find the order array elements should be in to be sorted\n    - sort: sort one or two arrays\n    - integral: trapezium integration\n    - integral_linlog: trapezium integration with linear-log interpolation\n    - integral_loglin: trapezium integration with log-linear interpolation\n    - integral_loglog: trapezium integration with log-log interpolation\n    - cumulative_integral: cumulative version of integral\n    - cumulative_integral_linlog: cumulative version of integral_linlog\n    - cumulative_integral_loglin: cumulative version of integral_loglin\n    - cumulative_integral_loglog: cumulative version of integral_loglog\n    - locate: search for a value in a sorted array\n    - interp1d: 1-D linear interpolation\n    - interp2d: 2-D linear interpolation\n    - interp1d_linlog: 1-D linear interpolation in linear-log space\n    - interp1d_loglin: 1-D linear interpolation in log-linear space\n    - interp1d_loglog: 1-D linear interpolation in log-log space\n    - histogram1d: convert an array of values to a histogram\n    - histogram2d: convert two arrays of values to a 2-D histogram\n    - ipos: bin value for equally spaced bins\n    - xval: find center of bin for equally spaced bins\n    \nlib_cfitsio.f90 (requires the cfitsio library to be installed)\n  Defines wrapper routines for the cfitsio library\n  \nlib_conf.f90 (no dependencies)\n  Defines routines to make it easy to read Apache-style configuration files\n  \nlib_constants.f90 (no dependencies)\n  Defines some physical constants in SI and CGS units\n  \nlib_hdf5.f90 (requires the HDF5 library to be installed)\n  Defines wrapper routines for the HDF5 library\n  \nlib_io.f90 (requires the posix_*.f90 modules - see below)\n  Defines various I/O operations (file deletion with confirmation, etc.)\n\nlib_messages.f90\n  Defines warning/error routines\n  \nlib_random.f90\n  Defines routines to sample random numbers:\n    - uniform random numbers between 0 and 1\n    - uniform random numbers between two bounds\n    - random number from exp(-x) PDF\n    - random number from a normal distribution\n    - random position on a sphere\n    - random Poisson variables\n    - random frequency from a Planck function\n\nposix_default.f90 and posix_nag.f90\n  Define various low-level routines, such as checking for file/directory\n  existence, and a routine to sleep a program for an amount of time defined in\n  microseconds. If using the NAG f95 compiler, use posix_nag.f90, otherwise\n  use posix_default.f90\n  \ntype_angle3d.f90 (requires lib_random.f90)\n  Defines a derived type for 3D angles, and associated routines\n  \ntype_pdf.f90 (requires lib_array.f90 and lib_random.f90)\n  Defines derived types for discrete and continuous PDFs, and associated\n  routines (including for sampling the PDFs).\n\ntype_stokes.f90\n  Defines a derived type for Stokes vectors, and associated routines\n  \ntype_vector3d.f90 (requires lib_random.f90 and type_angle3d.f90)\n  Defines a derived type for 3D vectors, and associated routines\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrofrog%2Ffortranlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastrofrog%2Ffortranlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrofrog%2Ffortranlib/lists"}