{
  "$schema": "https://beliavsky.github.io/fortran-playground/catalog/catalog-v1.schema.json",
  "schema_version": 1,
  "publisher": "fortran-playground",
  "provenance": {
    "repository": "https://github.com/Beliavsky/fortran-playground",
    "source_commit": "39b549344f43b821328e2f712ac0792a746f301e",
    "base_commit": "39b549344f43b821328e2f712ac0792a746f301e",
    "inputs_modified": false,
    "hash_normalization": "utf-8-lf",
    "inputs": [
      {
        "path": "catalog/catalog-v1.schema.json",
        "sha256": "b9b3a58d7464cb3c679ff3cab87772443f3827f9c20f8c27ece547fccffee991"
      },
      {
        "path": "catalog_export.py",
        "sha256": "47f456c1c6dfd6d408c4f8babb75c0b88822174723c718acf5a3f9727e7b1c24"
      },
      {
        "path": "docs/fpm-precompiled-validation.json",
        "sha256": "a47d68151c01fb1b1a8ba5d19934d6c48e9ba57c900fce2cbde00c38292220db"
      },
      {
        "path": "docs/gams-adaptive-ad-validation.json",
        "sha256": "a0817ab0542da72ecd69c732e4527cc103f94261054694de41890c912bba2dab"
      },
      {
        "path": "docs/gams-applied-methods-validation.json",
        "sha256": "6e11ad712638df8043569a522f58a0ec0c84819015f1bfb3c54bf72a3eaaf4f8"
      },
      {
        "path": "docs/gams-arithmetic-validation.json",
        "sha256": "c1909353e013f3ee10d674d35a7c358d4c7dd9c4fcd431511635303b04b4fc6b"
      },
      {
        "path": "docs/gams-boundary-validation.json",
        "sha256": "b64b7119a9567fbfdfe727ef975a737c7fecfb6e8dd8867ff275e229405e226e"
      },
      {
        "path": "docs/gams-circuits-beta-validation.json",
        "sha256": "1d0d09b46bb38b5573b7cfe69fd1e6b19c1f4f836a3bd21c711f404e927ad809"
      },
      {
        "path": "docs/gams-constrained-validation.json",
        "sha256": "13825004c5241c0525fc938562b6a3c47e7824f8a85341e3f197680acf9c33f0"
      },
      {
        "path": "docs/gams-conversion-triangulation-validation.json",
        "sha256": "9df88d3dc55f0a8868d07afb606f62e557fb247553af62723835668988c4a50d"
      },
      {
        "path": "docs/gams-convolution-validation.json",
        "sha256": "8873cb4b08d66565341de1433c70eabd6892c480b4e22d179468bd1069ddbd1f"
      },
      {
        "path": "docs/gams-cubature-validation.json",
        "sha256": "d6038bb5ecd500058c88366089b3d6ab804a747142dba661b524ab64f58e1d57"
      },
      {
        "path": "docs/gams-dae-fft-validation.json",
        "sha256": "ea37a1834009f022d776d1efe99d4758655f2093279d8bc6b2f8b0d49ccfe9ff"
      },
      {
        "path": "docs/gams-data-kinds-validation.json",
        "sha256": "727d84446fc631e113826a8fb08af867c1b792773daddf8e8db72ba080de495c"
      },
      {
        "path": "docs/gams-delay-embedding-validation.json",
        "sha256": "990bc3057952ea44d12cbd5becb101d2c99d789d4161c8bb8b158113ef3fec91"
      },
      {
        "path": "docs/gams-dense-spectra-validation.json",
        "sha256": "f722d2ead289226169cc6176ada7ad8f1491c836c6cd61467bd069cecc5129c1"
      },
      {
        "path": "docs/gams-diagonal-response-validation.json",
        "sha256": "11c1edcbc99a8b951c5bae84e22045fb49495d9d7215a126590c476c8dbe402f"
      },
      {
        "path": "docs/gams-differentiation-validation.json",
        "sha256": "82dfd36b21628b5b1d66a7490b27463c43f24a48eda9685a990a75fbc01970f9"
      },
      {
        "path": "docs/gams-directions-fitting-validation.json",
        "sha256": "fb4a012ca412cd0e3ceed445c6254515db6970c904747afcaea441715f57f514"
      },
      {
        "path": "docs/gams-dispersion-validation.json",
        "sha256": "f1ffe977a78a800088f8052d283d8f0beb586222e7fbb7fb7e7adb49de69ac58"
      },
      {
        "path": "docs/gams-expression-evaluation-validation.json",
        "sha256": "758bc170067b835a48e49a65b4f369809ee40da90c90e1fa0f4400c1d70da4a3"
      },
      {
        "path": "docs/gams-expressions-sky-validation.json",
        "sha256": "d35c92423e577bbf9b543313651d9683b434e545cad939b1c90d20fb06c4bc14"
      },
      {
        "path": "docs/gams-fitpack-polynomials-validation.json",
        "sha256": "62788776ddb459f8194c2aa6b8fba1538654023ffc3bf0adcdd601b551ca8700"
      },
      {
        "path": "docs/gams-fourier-geometry-validation.json",
        "sha256": "fefc952453a65c555f4468d3f116bdfd48ff99082a4efed99bcfa8fe34f97464"
      },
      {
        "path": "docs/gams-friction-torch-validation.json",
        "sha256": "3d5e50c59efebbb7ee7c05e291cccbe0b0ce2d5378613e0079136384e6e021ab"
      },
      {
        "path": "docs/gams-g1-validation.json",
        "sha256": "12be741e29b89111c957dc6c7d46d64919241b8339c6924395d615f645945f68"
      },
      {
        "path": "docs/gams-geodesy-forlab-validation.json",
        "sha256": "00a00eac0b9732724f6e85fc38b4edb3a68c9139fcc41b6ddc28d9e0d494e3f6"
      },
      {
        "path": "docs/gams-gmres-inverse-validation.json",
        "sha256": "01c0e4b6697203b7198ad285365a67771d540cdc0df73b41179ecb6141bc8a72"
      },
      {
        "path": "docs/gams-gradient-swarm-validation.json",
        "sha256": "caa03ee0fa5c8b962d54e5edea8bf387ebc6869d5666f6626832ba0653df881d"
      },
      {
        "path": "docs/gams-graph-sorting-validation.json",
        "sha256": "94bda34c001082aef5b00a5814929b31bf0bcef16ce417933f42679fa9aafec2"
      },
      {
        "path": "docs/gams-helmholtz-streams-validation.json",
        "sha256": "020b812ce7d0f33c97d4819b1525f2597e2a76579c674d0ed5eaa4a72acaa5b9"
      },
      {
        "path": "docs/gams-higher-ad-validation.json",
        "sha256": "3b5230c906f3edd8833d15a84862311ea16bef68d086199f9d366becbc2b10df"
      },
      {
        "path": "docs/gams-inference-pairs-validation.json",
        "sha256": "436e43a23de5ee6fd93b6429e37c55ff627ea8b776ebf8896ca89b7217fee5fe"
      },
      {
        "path": "docs/gams-interpolation-validation.json",
        "sha256": "2d0af6112731f8abfe0833157b0d08f0da2f0b326684b17294c8f3ae113185a9"
      },
      {
        "path": "docs/gams-inverse-tvd-validation.json",
        "sha256": "f77d32d9951f1dabca97a044b5e3ab4e0038ca2175c7d26c23dd5b6758394535"
      },
      {
        "path": "docs/gams-io-bounds-validation.json",
        "sha256": "56f9806626d35f57dbbebf4cfddf46ff2eff448ed8b6378f8042ebf4d0ee5c36"
      },
      {
        "path": "docs/gams-iterative-ls-validation.json",
        "sha256": "dae19fdb4b9b636d33388001343a8c97af4af871b44af11782d1f0b824f58451"
      },
      {
        "path": "docs/gams-jacobian-roots-validation.json",
        "sha256": "19224fd703f32bde75bded94461128ee421746ddac10e832ffa410c495f10589"
      },
      {
        "path": "docs/gams-jacobian-transforms-validation.json",
        "sha256": "bddf0ff079ecf117376e02fc81ec2035eb7924ed34d6e7f78cb5460ad9d6f137"
      },
      {
        "path": "docs/gams-kriging-network-validation.json",
        "sha256": "ed50fb4f27b720caddde297b0f46f1c3ee5bab0383e1d093bdf52b2f6458f8bf"
      },
      {
        "path": "docs/gams-least-interpolation-validation.json",
        "sha256": "2cc89e62ff9e9404d434e464264c547c0d6e7f72376d938624abd03aabf78d53"
      },
      {
        "path": "docs/gams-linear-algebra-validation.json",
        "sha256": "62e7dad2383d2f6aab2b30fdf5c9d0247039314e5de8f98b0632feadd1289f29"
      },
      {
        "path": "docs/gams-lookup-fastmath-validation.json",
        "sha256": "6d333568c2929a548a858d67546eb7c044345c15138d4e04e77a9ff0638ec08f"
      },
      {
        "path": "docs/gams-lu-orbits-validation.json",
        "sha256": "7130299dd9dab71e76c83093ac0c4e3101fca4a246ee1e7d56676179c79a31d5"
      },
      {
        "path": "docs/gams-matrix-equations-validation.json",
        "sha256": "c75cd18808f351c3045868805f0d028491725af48028855c83c4e8ae1dee4348"
      },
      {
        "path": "docs/gams-matrix-roots-box-validation.json",
        "sha256": "431866be68e97ba7abb0799477514163164268649e942ef5c089a05071a0c8a3"
      },
      {
        "path": "docs/gams-moments-nufft2d-validation.json",
        "sha256": "7a4a2c8e1814ca5b4dbb1c6d332eeb36a20681732999c2cd289cfef7458cdca2"
      },
      {
        "path": "docs/gams-multidimensional-fft-validation.json",
        "sha256": "1197f0294ad01ea65e2df69fc40fc1e1d95997039049762a23987f303a1bfcb3"
      },
      {
        "path": "docs/gams-neighbors-sparse-validation.json",
        "sha256": "2a464ac41a2b46d0ecef23f8584e6618b12e63276a30c65fd01e1ab86a348474"
      },
      {
        "path": "docs/gams-number-theory-validation.json",
        "sha256": "0b77789f542e6de1f883560a9ff64aa97717ae658ae8a35ae3fe4b894faf5f0b"
      },
      {
        "path": "docs/gams-ode-validation.json",
        "sha256": "f8dcb6192f864445182d19dbdc44110741c1879b86b787c4321f53807a38592e"
      },
      {
        "path": "docs/gams-optimization-spacing-validation.json",
        "sha256": "3fdeb3658cbe091d0e425ead66b0cac71a1d2e78b61a72fe0ccb924f427aa1cf"
      },
      {
        "path": "docs/gams-pde-validation.json",
        "sha256": "8234006b1f88ee14aee9df984e31b4e310671a9082934be93098da211ce2b117"
      },
      {
        "path": "docs/gams-periodic-calculus-validation.json",
        "sha256": "4f50db86ff6206feb14248b8f26c6bb31821a494424137c8b6822ccfe5a1601f"
      },
      {
        "path": "docs/gams-polynomial-validation.json",
        "sha256": "c7f6539202da4dfc1156e1a5dbd0b301144589963696e546731bb7b361fe2586"
      },
      {
        "path": "docs/gams-products-partitions-validation.json",
        "sha256": "4f892af69695a195ce3f0c2e657e60a5001ddf6be65420898b32eb6ebd0a92ef"
      },
      {
        "path": "docs/gams-products-status-validation.json",
        "sha256": "8ab058ba6878902b19051292e5c73b7fb31d0d40b8a1b4783562a7a76cdfbe94"
      },
      {
        "path": "docs/gams-projection-lbfgs-validation.json",
        "sha256": "41f6a53bedf913019817940d750083eed0d66ec1ad2f72fe4bd9f139e3297f55"
      },
      {
        "path": "docs/gams-projection-training-validation.json",
        "sha256": "e8dd85190861dc972c2d98889ed69791b2ae25e4aa6695be14c35ab88c6ce049"
      },
      {
        "path": "docs/gams-propack-fmm-validation.json",
        "sha256": "6281bce4b2fccc09f74efa64ca76931dbcd8225990cb74ba457e397c57731261"
      },
      {
        "path": "docs/gams-qr-autodiff-validation.json",
        "sha256": "3272a096116679bae7266097f78cf2ce436a451a7313f46215beaa71b3d1456e"
      },
      {
        "path": "docs/gams-quadrature-validation.json",
        "sha256": "b9dfcc65fe22219726c6b876e8bdf1bddbad90649385f1bdfb237f6adf1d53e7"
      },
      {
        "path": "docs/gams-quantities-spherical-validation.json",
        "sha256": "fd8cf4651eeddab65965b4f6b53999f9e47265d181e35e30d6d8f0ca893ac281"
      },
      {
        "path": "docs/gams-radial-dense-validation.json",
        "sha256": "2050bff240c3187e8257e8842693bcee1686f3bd66061a7ec1cc11a6d414cee1"
      },
      {
        "path": "docs/gams-random-references-validation.json",
        "sha256": "71df2e525ce47b61e17c053fd9dd2903aa234ae8c4344a77d904f33ddcd590c5"
      },
      {
        "path": "docs/gams-random-validation.json",
        "sha256": "f57869c574517f2808e79c76dce6af24569db5b8193d9ae81b6f57021e8f09e9"
      },
      {
        "path": "docs/gams-ranking-magic-validation.json",
        "sha256": "015b8b988b3b71dd3bd453f8cc268fc1661e653ec25029c3d65dd2e1868c1da5"
      },
      {
        "path": "docs/gams-raster-distributions-validation.json",
        "sha256": "b6ae072e9bc3e5832f5b9a4f8373cacf391aa8f4ba3e79dd8a49c73cde8bd86f"
      },
      {
        "path": "docs/gams-regression-validation.json",
        "sha256": "12f1a9aa22f23542fced4c0304034d57b0a24d68f203680e3a9f6e4cc74be9af"
      },
      {
        "path": "docs/gams-regrid-rk45-validation.json",
        "sha256": "3a2f625312b77f8f5356ec83b655a3259fc316b51d0973ff72dcdbeb15132e3a"
      },
      {
        "path": "docs/gams-resampling-markov-validation.json",
        "sha256": "af45e32f57cc3314b20581dad0c37d5b10306c58ff7c1d849d106f38a6952325"
      },
      {
        "path": "docs/gams-rkf-qags-validation.json",
        "sha256": "57450517820afc5d118ec833a69b5d16044afd1c8314d2fadc2297d8e2d1e0ee"
      },
      {
        "path": "docs/gams-roots-splines-quadrature-validation.json",
        "sha256": "e9333ce03ead0cd63832679ef8c7ee50060c8c00c3a36fcd2ff0f9e55e85c3d7"
      },
      {
        "path": "docs/gams-roots-validation.json",
        "sha256": "d5d3d280d70d4edce174348b442b6ac8894cde57826dbe12d11d27111062fc05"
      },
      {
        "path": "docs/gams-rules-differences-validation.json",
        "sha256": "b22cfc1849e728dd11247b7a23a3b1c7a2ee0c32e630b8bbce7269849df33a7b"
      },
      {
        "path": "docs/gams-sorting-validation.json",
        "sha256": "e0e21e216a8db24718ad498ec18c4a9261e30b6020f7bc50abe8c3b532db5364"
      },
      {
        "path": "docs/gams-sparse-advection-validation.json",
        "sha256": "47769635431ff24dcfce043aa783dcc5decdda0c401f17d2330942d50508e132"
      },
      {
        "path": "docs/gams-sparse-integral-validation.json",
        "sha256": "a71a639eca40f950670fa0045366507a572d73dc2367f066fc50476bea95ed9e"
      },
      {
        "path": "docs/gams-sparse-spectra-validation.json",
        "sha256": "bdcd78819914d71aa10e9f2e28373f280ac6b7b19954aa34361b34556af16c60"
      },
      {
        "path": "docs/gams-sparse-validation.json",
        "sha256": "dee54d46d8c4fdf63ea25730e1215035b87a3b4dc366b920579d1ead254ef708"
      },
      {
        "path": "docs/gams-spatial-nufft-validation.json",
        "sha256": "2203d5ebedf0b4d539c0315a2fa508582b205381aa77bd14f3b3e42c55734224"
      },
      {
        "path": "docs/gams-special-functions-validation.json",
        "sha256": "5415712e89763bd6458b27374491219e4e967f2ef4ec03cb8ab3e5e65dd337cc"
      },
      {
        "path": "docs/gams-spectral-wrappers-validation.json",
        "sha256": "ebaea8319053ac8a625495338db665ad65d467bbccd6184acf655553439c905a"
      },
      {
        "path": "docs/gams-statistics-validation.json",
        "sha256": "a7e2375ca71efb72f23093f501582e40c81f418121ac35c275453ac76c87d928"
      },
      {
        "path": "docs/gams-stiff-validation.json",
        "sha256": "26fd9dba0e72e52266f6bd37712932a7c0acdf63f136a3e07e9708a0bd81bcf1"
      },
      {
        "path": "docs/gams-surfaces-validation.json",
        "sha256": "ff1392027ba0ade2d1e0def5f5098c0236b0598a0164b37f602bfc6c05342ade"
      },
      {
        "path": "docs/gams-systems-validation.json",
        "sha256": "a001657fba5ad4655bbdb9763f05d436a340bef1f5e119d40a395e032337d807"
      },
      {
        "path": "docs/gams-tangents-blocks-validation.json",
        "sha256": "fc924cf99f45dd02a2eb0e5f0e1ab1a117fb7debf37e6fcfcd8d113265cdc1bc"
      },
      {
        "path": "docs/gams-transforms-validation.json",
        "sha256": "15ac386aed4626f1578efbbe9182985908cee02d323aaec45ceb68b72e27671b"
      },
      {
        "path": "docs/gams-unsigned-bitsets-validation.json",
        "sha256": "744ad24451fcf10c4ea8da9786d17d1ab27a405e87aee30f85d85cd44d2229e4"
      },
      {
        "path": "fpm_catalog.json",
        "sha256": "24aeb33fc6ccbfaf9f4893790c0b1e585e9612e8de789e04c0227ec92d32b194"
      },
      {
        "path": "fpm_catalog/demos/2decomp-fft.f90",
        "sha256": "23e31566e81c01c70e36ea905d3917ab064eb561edb3893142d8584350b04fab"
      },
      {
        "path": "fpm_catalog/demos/ad_dnsvm.f90",
        "sha256": "142dd17cbbe671597b5012e1f056e084be064e1308d0d3f3db0a9d1e5d6f0ead"
      },
      {
        "path": "fpm_catalog/demos/amosf90.f90",
        "sha256": "85860c7f1e45f3c1e0b9c20149d513a1beea0c30f0e44f7c813d5cc4db7083e6"
      },
      {
        "path": "fpm_catalog/demos/any.f90",
        "sha256": "c791c7de896c3e6f53988caf9575e7d6f2a0a2a14cf124cf8cfc6caf06b1ca86"
      },
      {
        "path": "fpm_catalog/demos/aotus.f90",
        "sha256": "2326a22cc1454df677f25c6b06669dbab9be33677362805316851ae9886b99b3"
      },
      {
        "path": "fpm_catalog/demos/argparse-f.f90",
        "sha256": "ca4c6d59fbd34ff7f74a22b5b45a2973965218bc862553dd2d5554dd26571a82"
      },
      {
        "path": "fpm_catalog/demos/argv-fortran.f90",
        "sha256": "66a8a8725ff4ae0f91b98b256a44662a5397e6cf273a466edc55d98bcf6ae218"
      },
      {
        "path": "fpm_catalog/demos/arpack-ng.f90",
        "sha256": "44356fab70ddf7be80c828914a0bfc6866f4f709abbca761058825b88cf056f6"
      },
      {
        "path": "fpm_catalog/demos/array_range.f90",
        "sha256": "909543efcb535b0594447d9fa9770cf062f9ad24394b6752cd5a834f9b709381"
      },
      {
        "path": "fpm_catalog/demos/astro-fortran.f90",
        "sha256": "52fe6414e51dd37320e2c926c6fcab0b89b5bbde6570217c7d86659bba06d490"
      },
      {
        "path": "fpm_catalog/demos/athena.f90",
        "sha256": "8f04495cdeb595be7089fec7a5c96844ed5125e0d22847204e29e0931a32a5c3"
      },
      {
        "path": "fpm_catalog/demos/befor64.f90",
        "sha256": "5b3968e0d0cd11b2eb02fefeccbcd0b526d44bc1ae31c6d0a43ffc1d712b1840"
      },
      {
        "path": "fpm_catalog/demos/berkeley-assert.f90",
        "sha256": "a8656a3823bfc6b4252d2b68e7b30f93d67caa8a80c8f87942f9f74d1a8e9f68"
      },
      {
        "path": "fpm_catalog/demos/blas-interface.f90",
        "sha256": "5d5c4689e5920fa73104f50264bd7cbc481a36eb77efe82f37269a1ef9ec92ec"
      },
      {
        "path": "fpm_catalog/demos/bspline-fortran.f90",
        "sha256": "1d975d9374e16f24b444cd4c1825967b49d2f5b94419d0a413cf3fc8c80c776c"
      },
      {
        "path": "fpm_catalog/demos/bstrith.f90",
        "sha256": "4c42c06abae937b735a93bb813e0dfe0449e971bcfa3db70f171a0d841a7057d"
      },
      {
        "path": "fpm_catalog/demos/cairo-fortran.f90",
        "sha256": "cb77368a72462d5a754000b8f0a7b0c81e58be5a483e429db088041088e29c15"
      },
      {
        "path": "fpm_catalog/demos/carlson-elliptic-integrals.f90",
        "sha256": "902bedb25b56cb11a72d91f9bdcfad4301a662b34c177f0d6093b602256a6c49"
      },
      {
        "path": "fpm_catalog/demos/ciaaw.f90",
        "sha256": "c208861f1e4ce53319caa3b06a4213c372db2d1780740d11955583fc6920e986"
      },
      {
        "path": "fpm_catalog/demos/codata.f90",
        "sha256": "2a6368afdfbed5253b21d416f634d5cff8bb65cb3c90273cfddfdbb95274021b"
      },
      {
        "path": "fpm_catalog/demos/collections.f90",
        "sha256": "079054a8e6cbfac5304655b4d99c8550441b5c04c09eda44caaeee6692b3db18"
      },
      {
        "path": "fpm_catalog/demos/config-fortran.f90",
        "sha256": "f65f0e8ff44a418236ac15b06b6f6fc8c268aeee982eb5339caef63b5bb33ccb"
      },
      {
        "path": "fpm_catalog/demos/conmax.f90",
        "sha256": "6c6109970a1e4b918453bbdfb6c3e6a816b67903b7496644efe21e9e767a71d6"
      },
      {
        "path": "fpm_catalog/demos/conmin.f90",
        "sha256": "1a667c58aa19fee029b5107d153c55ebafe65aaf560f9155a844732bbe8b3706"
      },
      {
        "path": "fpm_catalog/demos/coretran.f90",
        "sha256": "78caf6f9e958b712d29aa17fd26e11478a930eca880c56739588b3121c95bea1"
      },
      {
        "path": "fpm_catalog/demos/csv-fortran.f90",
        "sha256": "fc9b5cf13bcabc1a568c5ad977708312ec7bcb73579247d0d4071829bd1d5b9d"
      },
      {
        "path": "fpm_catalog/demos/daglib.f90",
        "sha256": "5ae1a2418d6e95e68e4724f1ad2f31804b0e4d5a36c2afd135ade22dff572e40"
      },
      {
        "path": "fpm_catalog/demos/daskr.f90",
        "sha256": "7757aba3067affd2b88ab796913a986223cc538f8891ebb1c29ed60ecb19e138"
      },
      {
        "path": "fpm_catalog/demos/datetime-fortran.f90",
        "sha256": "f4f5ebd1215bee07dae37d8de2d4679e21f2f08da404b2a2266e98a2c34b50d0"
      },
      {
        "path": "fpm_catalog/demos/dbcsr.f90",
        "sha256": "9bd59bd3c3f205d6787396d1ff4d538d55dfa40985258d415e8b2f91eae4b9fc"
      },
      {
        "path": "fpm_catalog/demos/dcuhre.f90",
        "sha256": "87739e99718d2575ed4d63ecca092cd9121838b85335f820e1b9ab37f37af95c"
      },
      {
        "path": "fpm_catalog/demos/dde_solver.f90",
        "sha256": "f148c34fd0d7dcc82add9f5d55764ccb109c16179eaf54f924475ecd174a0de8"
      },
      {
        "path": "fpm_catalog/demos/ddeabm.f90",
        "sha256": "9111e39a3872639e9dfaf77cb406dfb72b2d0618cd992dbb0a66a0b8b01c34f5"
      },
      {
        "path": "fpm_catalog/demos/ddpcm.f90",
        "sha256": "1cc4c37ad91956ef36fecf878399658b6f21fc2f99704de8746a31f52e4aa4af"
      },
      {
        "path": "fpm_catalog/demos/delaunaysparse.f90",
        "sha256": "2639f6d3c276b1ee5073fa48a4e8fef728eaf0007f649fb32991b65d3358242c"
      },
      {
        "path": "fpm_catalog/demos/dftatom.f90",
        "sha256": "8ee70aa55e5cbc3d9794b4560a78f806920df204cd87c21d575dcb5c0fcac373"
      },
      {
        "path": "fpm_catalog/demos/dftd4.f90",
        "sha256": "4e2ca8fdf973c1ca39122e76a8c51eac9366c39c6bdebb5e1a165815a4a4e996"
      },
      {
        "path": "fpm_catalog/demos/diffeq.f90",
        "sha256": "eead828109c30eaca4aa69c27bbb32ea354baae23187ab0b0dfca69e1a5ec40e"
      },
      {
        "path": "fpm_catalog/demos/differentia.f90",
        "sha256": "d2e2713d34eb7f03c91d0df8668b065aa7ce03e2194ccef7ad782dc37183b68f"
      },
      {
        "path": "fpm_catalog/demos/diffstruc.f90",
        "sha256": "397e18afd29ec87d1581255f13d4f711b290181c6f3781c951ac506bd4a84fb6"
      },
      {
        "path": "fpm_catalog/demos/dnaoad-fpm.f90",
        "sha256": "c95ff264f64a018edccd3a23949f5646e1a7ddb8527abd2e85f0253750c00d5f"
      },
      {
        "path": "fpm_catalog/demos/dop853.f90",
        "sha256": "dab90f237637ce5e97cd0cd14c40aa0682de13fd5535eebb1203fa51da6b88dd"
      },
      {
        "path": "fpm_catalog/demos/dtfft.f90",
        "sha256": "f51037db5a92c6cc10076759ad32474d544c75effc497180914135c4d629a68b"
      },
      {
        "path": "fpm_catalog/demos/dvode.f90",
        "sha256": "8119e67c9c3fd21bef885755de3f18471ced4bf33b29ad1b6b8f6231eee94dc6"
      },
      {
        "path": "fpm_catalog/demos/dynamics.f90",
        "sha256": "07d547e95b7a8f5504ee5ebecca8715581dfc48dbb3e7df5f040abb97fb8d239"
      },
      {
        "path": "fpm_catalog/demos/easy-plplot.f90",
        "sha256": "a07bfbe9ab19a5e608cfa599d1637f2fefd27c862b3463b91edf7ab96cfb1b29"
      },
      {
        "path": "fpm_catalog/demos/econ-toolchain.f90",
        "sha256": "1836f3e088db1b8d5e9b4fca85d76a6e5f3d62eadd4d4c666ca4a954c064a07b"
      },
      {
        "path": "fpm_catalog/demos/ecx.f90",
        "sha256": "3deee68d105f318abe53018e64015faea80384adef71815e1aaa50933d3da7ca"
      },
      {
        "path": "fpm_catalog/demos/enclose.f90",
        "sha256": "9a0190870e01edb2e86c87b5bcd77339a4abc470c757ae9fa755c622ce1c8e01"
      },
      {
        "path": "fpm_catalog/demos/ennuf.f90",
        "sha256": "bdf49713f9e21518812314e3325cf4be2e2e21b290c48a1277e6eaf8f3bee469"
      },
      {
        "path": "fpm_catalog/demos/erloff.f90",
        "sha256": "f21e5561c2e5a0c03983e992d9e2778c2d91daa66f77ca77a1a4a38669ead1fa"
      },
      {
        "path": "fpm_catalog/demos/errstat.f90",
        "sha256": "96ae8eb80913eeefd5d58cd5c3991a6ad754bc83e0b06e1cef3ca74c39187c31"
      },
      {
        "path": "fpm_catalog/demos/fassert.f90",
        "sha256": "89c243974f26f51d2d23f7d402317f1197ac544d7490e5993bb90742fea53633"
      },
      {
        "path": "fpm_catalog/demos/fastconv.f90",
        "sha256": "e68b123e60444b7e0e3d92dd5d2649af1ca3500e1be82993bfac1b6db6a9bd4f"
      },
      {
        "path": "fpm_catalog/demos/fastmath.f90",
        "sha256": "ea4c83d7e3471a118d0a32d6ea82292c06099fd0b27ed8a7e955ccf5c7697b47"
      },
      {
        "path": "fpm_catalog/demos/fatode.f90",
        "sha256": "554bec760684767a67524d7e477de7c9dec778bb23a5719c549da0945cc3b34c"
      },
      {
        "path": "fpm_catalog/demos/fdict.f90",
        "sha256": "f99733f2e0e1405eed7bf2940ed17a05275a5f25c4a596ef8ec4cd6201862331"
      },
      {
        "path": "fpm_catalog/demos/featom.f90",
        "sha256": "db0554244e5bcaed305661c93d878c5a1a6ddae98868703546f6b845c65c6c8b"
      },
      {
        "path": "fpm_catalog/demos/fed.f90",
        "sha256": "9ac35bada9d3292c1c41bcb1e8cfb8c0b78fd34e7378c16c7c01c7c72c58bddf"
      },
      {
        "path": "fpm_catalog/demos/feq-parse.f90",
        "sha256": "3609f35399080ab8ec554d97fc926c8c5b2bbdb773384d2360cce0b493d5fb65"
      },
      {
        "path": "fpm_catalog/demos/ferror.f90",
        "sha256": "0f5e7ff5ceab93e28a04183189a6ddca98dd2343f8782322cd7f470d4c1ee15a"
      },
      {
        "path": "fpm_catalog/demos/ffilesystem.f90",
        "sha256": "a96d72ed52a4e512de22a04785b6c02ae96b64c18ef4225f5b2f6c703cbd14fc"
      },
      {
        "path": "fpm_catalog/demos/fftpack.f90",
        "sha256": "006e98c5fbf26c767ee99fbac472a69d8876d09671ce48d34a465110d58d9689"
      },
      {
        "path": "fpm_catalog/demos/fglm.f90",
        "sha256": "4c0be6163b6b4f283b4e23d81e26a1b9933395f689f354da0a2037e98448aa2b"
      },
      {
        "path": "fpm_catalog/demos/fgsl.f90",
        "sha256": "bbd46afacb88187d405c33fd1d10fa550799cf8bb1c29e0eb210af3f7d705180"
      },
      {
        "path": "fpm_catalog/demos/fhash.f90",
        "sha256": "3ded535863529c89a81e99f40a156d742f2a6ec3371ed76fb39a4558480ac37b"
      },
      {
        "path": "fpm_catalog/demos/fiats.f90",
        "sha256": "25365b238c2af119f2de00cd38a24810b21c72408a3b3d5a70a5d5e10396a2b5"
      },
      {
        "path": "fpm_catalog/demos/finterp.f90",
        "sha256": "9281b42993ac1ca33ca107a94a5dde5c7144151d26595766baaa0b166700d3d2"
      },
      {
        "path": "fpm_catalog/demos/fishpack.f90",
        "sha256": "5bfc3e119732ee14381ea266431bcf15efeee9fb68e4a9e611a8e14e1c1f0e98"
      },
      {
        "path": "fpm_catalog/demos/fitpack.f90",
        "sha256": "55353dc85af65a2bebfd496d09b0c9eb1b49fb781a5b8663cf85d5fb98aea220"
      },
      {
        "path": "fpm_catalog/demos/fjsample.f90",
        "sha256": "3d7cd7e1623d76a45460b4e94d898a42e38f535a402811ac23d5f16e5d40ec32"
      },
      {
        "path": "fpm_catalog/demos/fkb.f90",
        "sha256": "638fb20985b3c8f0707e5e038e021ee1a82f136b306081c05b88443d880318b0"
      },
      {
        "path": "fpm_catalog/demos/flibcpp.f90",
        "sha256": "00b121584e0a4b8cc56e2bb02b0dcdedd6afe298107f682514ae98a0df14e282"
      },
      {
        "path": "fpm_catalog/demos/flint.f90",
        "sha256": "3525075c7c9c46705d6200ca2965c4acab281b4102126b5bccbb8c4088957d3f"
      },
      {
        "path": "fpm_catalog/demos/flist.f90",
        "sha256": "b27870bafbe5562d5d48a7d8dddba4df102f35fff782f9de7c15e914cfcffd25"
      },
      {
        "path": "fpm_catalog/demos/flook.f90",
        "sha256": "cb2b4895ecfeb131ad8dfd7bb4aaaafcd4b61f6b2663c1958e3366e03e41bd63"
      },
      {
        "path": "fpm_catalog/demos/fmin.f90",
        "sha256": "767de3e53db2c970d38866039afdd3d3cbfc79bf7ca369eba6829fdcec598910"
      },
      {
        "path": "fpm_catalog/demos/fmm2d.f90",
        "sha256": "37b1d799f10587a6bbf4a38ce95df71d79206dbf82254974d85ebfb36da37789"
      },
      {
        "path": "fpm_catalog/demos/fmmap.f90",
        "sha256": "16cca4977d769efb16d77f4c6248a2ab3a07762eac47ba36cfa4f5e89464fdb7"
      },
      {
        "path": "fpm_catalog/demos/for_fifo_queue.f90",
        "sha256": "d89062451085174aeb37a5aabb34a43c4b1a3f55d67999e8242d0c7cca1185e4"
      },
      {
        "path": "fpm_catalog/demos/forcolormap.f90",
        "sha256": "9c11ca340892983113e0630fc3180ceb33839e18cf16f499b4b5744dc351ec78"
      },
      {
        "path": "fpm_catalog/demos/fordiff.f90",
        "sha256": "c7e2b812e8c7b7cc0fdafa045f0e206e887265ae6587333e086e92cc5e17b496"
      },
      {
        "path": "fpm_catalog/demos/fordot.f90",
        "sha256": "7bfafe2012d6cad882de0d9b86e00a6027e237465f33d005d6a26cf300a8fe5a"
      },
      {
        "path": "fpm_catalog/demos/foreig.f90",
        "sha256": "3f7916c5f9be969450d9c8e643a794e0b380eb2792b51d562207197e130a77a1"
      },
      {
        "path": "fpm_catalog/demos/forgex.f90",
        "sha256": "0b0604d446957d70b5484fd1185141c92eb9fbc95a369dced5b1944e47b112a7"
      },
      {
        "path": "fpm_catalog/demos/forimage.f90",
        "sha256": "663f584ee57d37be345a184aaa971304e52698e543f3bc72e04edc24d9d6f942"
      },
      {
        "path": "fpm_catalog/demos/forinv.f90",
        "sha256": "278455b6c771ab1369fa55105672bdf91f8d69bc8ca19f56d40e12849bee82fc"
      },
      {
        "path": "fpm_catalog/demos/forlab.f90",
        "sha256": "83758192f74c1288c8e451e74fe6eceac7fe1b40da0f3fc8625e75e93edc6640"
      },
      {
        "path": "fpm_catalog/demos/formal.f90",
        "sha256": "39e8847b80422516e1d613e5fed4a331eb49ccf616cc794e318e86a36c4eca74"
      },
      {
        "path": "fpm_catalog/demos/formatmul.f90",
        "sha256": "b16b74a755966a26a15b87e109e74351b0d558faf3ea17180a7f51721f7b7985"
      },
      {
        "path": "fpm_catalog/demos/forpca.f90",
        "sha256": "4a92e7e3f382bce67f6c462054b8efbc45e8267e3b0423b6e2adce55acb1b2f9"
      },
      {
        "path": "fpm_catalog/demos/forpy.f90",
        "sha256": "df55ba9f556143bbeeb8122ee2e47bafbcea7b5cb21162d7e818a3ff97815180"
      },
      {
        "path": "fpm_catalog/demos/forsolver.f90",
        "sha256": "a554011e0ed51d3aa12cf5891f4343b63ff7fdb96f22d372e1175491587f6f61"
      },
      {
        "path": "fpm_catalog/demos/forsudoku.f90",
        "sha256": "174a010095521ed72fcb94eef466b8a1ecf0119d4e2ff9106731eee268303316"
      },
      {
        "path": "fpm_catalog/demos/forsvd.f90",
        "sha256": "7d3d99462007e2c9c51e2c052611a693322d2de42497cdd00eed55623598c36e"
      },
      {
        "path": "fpm_catalog/demos/fortime.f90",
        "sha256": "6d322e08ec284753be5521d2f431288d0f5efd254348341eadc69acc0caa770b"
      },
      {
        "path": "fpm_catalog/demos/fortimize.f90",
        "sha256": "15d5e2f97e232e8c9bd233ebc0aecce34f04f3e26057d5eaf38f1a3d5a7f4ff3"
      },
      {
        "path": "fpm_catalog/demos/fortran-astrodynamics-toolkit.f90",
        "sha256": "934862b34490767b65250c2cdac28a91b951574f107c2d98309ff03bee325395"
      },
      {
        "path": "fpm_catalog/demos/fortran-bessels.f90",
        "sha256": "17e3b5892380d89ef7bfe7a9a5e7e713fa75b7e49ad3dae6b56fba268bc06cde"
      },
      {
        "path": "fpm_catalog/demos/fortran-curl.f90",
        "sha256": "df023220e34b9dc5619cbfaa0f4f34b4155b8a07d4b6d6d7ec37915c1ed76230"
      },
      {
        "path": "fpm_catalog/demos/fortran-error-handler.f90",
        "sha256": "b2731334cf8bb64932b3f3b985c57b2dfa6a3237d08842aca6501716259bb081"
      },
      {
        "path": "fpm_catalog/demos/fortran-fast-float.f90",
        "sha256": "3faed9ca14d382bcf516cb861f6520db22a85a275229440a53de4be0dc929834"
      },
      {
        "path": "fpm_catalog/demos/fortran-flann.f90",
        "sha256": "3d7aa99307528cbc8c4eac2a1c329cc7036061be2a019068b06a692ce261c658"
      },
      {
        "path": "fpm_catalog/demos/fortran-lapack.f90",
        "sha256": "66c6d1b1edbe1b6da10d6bf41a0aff2975d6ccbe0d2b220c04292162189987fb"
      },
      {
        "path": "fpm_catalog/demos/fortran-lmdb.f90",
        "sha256": "7a80deaca5387feac6ab7003abd41eed5d100fc3ca4c9e2150e92ac1b4e84def"
      },
      {
        "path": "fpm_catalog/demos/fortran-lua53.f90",
        "sha256": "7c5089eaea49fbb39a493dd195480bcbf6a093e5e0d08f7f2c8cf3e8681b9a2b"
      },
      {
        "path": "fpm_catalog/demos/fortran-lua54.f90",
        "sha256": "c9b1a09825deea76782f0cab21f4768c566a9cfea90c343cf41245eb94341719"
      },
      {
        "path": "fpm_catalog/demos/fortran-messagepack.f90",
        "sha256": "329da28498c7f5d33b6ffc03f23bd964b22941e4a4560438f8d7775fa23228d9"
      },
      {
        "path": "fpm_catalog/demos/fortran-modbus.f90",
        "sha256": "a2a46efd866f1c189edff0c2f9d120b98cf318a9caa8ce05d76ea89d367a1992"
      },
      {
        "path": "fpm_catalog/demos/fortran-pcre2.f90",
        "sha256": "cfccbd11c31135e05132f4464b83fec5c693e403183c0ca6f5b32a80ed4bcb53"
      },
      {
        "path": "fpm_catalog/demos/fortran-primes.f90",
        "sha256": "99718d896d36e2b277b500a65b1edbd3c788c8c0f37ff8d650ecf8471c88c44b"
      },
      {
        "path": "fpm_catalog/demos/fortran-regex.f90",
        "sha256": "7d3920a6b5f1c560665ea98f229f29cda121301b36f3c23d2f0c6bfd1f1e8eed"
      },
      {
        "path": "fpm_catalog/demos/fortran-sdl2.f90",
        "sha256": "59344bd9f5c0f6372ba31a0beaae76aa32b2e50ca701002582c6c5d64e0152d2"
      },
      {
        "path": "fpm_catalog/demos/fortran-search-and-sort.f90",
        "sha256": "f89ec5d7342ef5683198abc7a5bfa42889cd443a1927b071872af902165cda07"
      },
      {
        "path": "fpm_catalog/demos/fortran-shlex.f90",
        "sha256": "8d9bc325ca764585d993c6330717a0066a02b11e427dd565f67c90b1ae1799c6"
      },
      {
        "path": "fpm_catalog/demos/fortran-simplify.f90",
        "sha256": "e2651c4bb7d9a41b345f04ee18eadb5051c175eabdf8405bd9a89b0c65c3f312"
      },
      {
        "path": "fpm_catalog/demos/fortran-sqlite3.f90",
        "sha256": "c7a535f69b00be80f1a78240599168ca96d3ae46a3a9d4a2c7b6b9d100da27fe"
      },
      {
        "path": "fpm_catalog/demos/fortran-string-to-real.f90",
        "sha256": "5b30707ac700bdb409f4b51dfb4d2af2af817a946d6fb16ff874363b7ee02a1d"
      },
      {
        "path": "fpm_catalog/demos/fortran-tcl86.f90",
        "sha256": "747c628986240974d6ecaec4a00ea0dedbbd4d79915b81dfeb63977823833dfd"
      },
      {
        "path": "fpm_catalog/demos/fortran-tokenizer.f90",
        "sha256": "8b9bc4212dcbf78bc1358246225526de629e0ebecface3ff2c29552e5e98f8c6"
      },
      {
        "path": "fpm_catalog/demos/fortran-unix.f90",
        "sha256": "949a6762cf02a6a06593058dfe1656244f47a38d287fcb025d2fd0c49a78aa2b"
      },
      {
        "path": "fpm_catalog/demos/fortran-utils.f90",
        "sha256": "4f49ae6813366328afcf9f32c485d89e060f4b08252055f080214903d8acda75"
      },
      {
        "path": "fpm_catalog/demos/fortran-zlib.f90",
        "sha256": "a924cdf893c2024f93197ad050134f7648adf5ed6a5875481180c225c4b2d90b"
      },
      {
        "path": "fpm_catalog/demos/fortran-zstd.f90",
        "sha256": "a58ec43c70682d27934e542c34fabaae41758d884d0b053ab2eace249cce0674"
      },
      {
        "path": "fpm_catalog/demos/fortran_cubatures.f90",
        "sha256": "d1890191799fbfc3ce7421e74b3e1342c4148d0548fc682ac9d4b64f847137dc"
      },
      {
        "path": "fpm_catalog/demos/fortran_function_parser.f90",
        "sha256": "064649d549884d8e3c2c3cfa4b527ceb0acd07d964f454873c8578078c55abac"
      },
      {
        "path": "fpm_catalog/demos/fortran_huffman.f90",
        "sha256": "a2845f7cf7ace98a80fa3109de6ef5ff97f4892d82705bcf95faf97a2fb80c64"
      },
      {
        "path": "fpm_catalog/demos/fortran_stb_image.f90",
        "sha256": "d7e4c2a3c12208a44f9e73f896cccacfc64d213206e6369fae65ba0e99f911da"
      },
      {
        "path": "fpm_catalog/demos/fortran_test_helper.f90",
        "sha256": "bb73327d768f7c37a378352c9b1e40dfc45a447b2a6069cdb96633f3ade8e443"
      },
      {
        "path": "fpm_catalog/demos/fortran_vector.f90",
        "sha256": "9cb520eb6b7b278caaa126aa55d078576b5bdc38d7bfefa8d6cf94d53c7af159"
      },
      {
        "path": "fpm_catalog/demos/fortrandf.f90",
        "sha256": "07a49525fabd459c52aafe412ace552f644f1c051084f2a9788063ae3d037f1d"
      },
      {
        "path": "fpm_catalog/demos/fortranlib.f90",
        "sha256": "17aa2eb57471c73ae7b108c6bdc4f174eee77e6b45de5cc28b1050fa89560f7f"
      },
      {
        "path": "fpm_catalog/demos/fortsa.f90",
        "sha256": "7fa0280eee93568dce8f8baca7a38d8170cc567b4b416cc09c13de5d36864265"
      },
      {
        "path": "fpm_catalog/demos/forwarddiff.f90",
        "sha256": "dd2ada5d6a52126ab00677f8812a98ffb64af503f1594143bfcf457646b80311"
      },
      {
        "path": "fpm_catalog/demos/friction.f90",
        "sha256": "0318e4d8e772383e58c39b5b7495fb1d979269753b253a3bc85389a524a556bc"
      },
      {
        "path": "fpm_catalog/demos/fsparse.f90",
        "sha256": "f81550216dfa6804b6832d3a646d0c7d3faf840149a0b6ebfbc202a2c556e0c2"
      },
      {
        "path": "fpm_catalog/demos/fstats.f90",
        "sha256": "5f59de90d4494ddc13641d5fecc68b31b0a889f8a3a27dfad7e2e0e9aecd82a9"
      },
      {
        "path": "fpm_catalog/demos/ftl.f90",
        "sha256": "718f527c8ba8a7d5d56063f493b03af3c5e74ced04d50c1f9f9b86c1ff81243d"
      },
      {
        "path": "fpm_catalog/demos/ftorch.f90",
        "sha256": "d244a3261312b0252cbc8cbceaaebe764b2fd0e011381c20385515c40a916560"
      },
      {
        "path": "fpm_catalog/demos/functional-fortran.f90",
        "sha256": "77ebc1e031eb2edbfe9b9986f7f93fce6f1c20b055c2cfac95e17a279e3d57a0"
      },
      {
        "path": "fpm_catalog/demos/fundamental_constants.f90",
        "sha256": "f4976cc7b2e3d1fa4ebd8db656192a5a8fa86990f1b65ab5fdbc5beaef83d1b9"
      },
      {
        "path": "fpm_catalog/demos/fycollections.f90",
        "sha256": "343f9331750636f784db6b713d6bf0c11d855c9f4f0855c9cf0ae02249169fdf"
      },
      {
        "path": "fpm_catalog/demos/gaussjacobiquad.f90",
        "sha256": "bd839cf5f7377a82382638bb7836de270e4c3359ef1855f6d9b1a9f64aa6fe25"
      },
      {
        "path": "fpm_catalog/demos/geodesic-fortran.f90",
        "sha256": "ac90afaca96eb1c208041d97b66e4d3d92064bbc89d5da28d5d685134698fec0"
      },
      {
        "path": "fpm_catalog/demos/geompack.f90",
        "sha256": "ddcb5ae0b22edfe9cee615eae2bd7f1a4ee3bf5c345c8bc0dbb8cb449a4334ba"
      },
      {
        "path": "fpm_catalog/demos/gftl-shared.f90",
        "sha256": "12d3f268cf0045b799330964bfa41a16e9f29d9d5844d39120c7ac218ee12987"
      },
      {
        "path": "fpm_catalog/demos/gftl.f90",
        "sha256": "333cee5fa167ba29c402022410bd40a14a32ccfd71274d8ad1bb4ecade999de3"
      },
      {
        "path": "fpm_catalog/demos/graphstruc.f90",
        "sha256": "d97a818af17369255cc47ffa5367377232cb18dd4fe123644a5e48ad30a093d1"
      },
      {
        "path": "fpm_catalog/demos/gslib.f90",
        "sha256": "7d9e62cfeaa6e1e6d3f338570e8e4b4249e90fc061a7f03aa7447e6f6cb99a0c"
      },
      {
        "path": "fpm_catalog/demos/gtk-fortran.f90",
        "sha256": "afc6575739b8b1a2d194a790129a6328b9f2c250d6971996b8560a5e0e1a276c"
      },
      {
        "path": "fpm_catalog/demos/h5fortran.f90",
        "sha256": "c44ab3eecedf25fc9ebc3d2f19292a687bdef71a9ff61e3d0581682a7c682b34"
      },
      {
        "path": "fpm_catalog/demos/heatflow.f90",
        "sha256": "4395fbccc1e2d5130e0cd8c7d5f58fc571c125ae0873393e852262cee539c723"
      },
      {
        "path": "fpm_catalog/demos/hrweno.f90",
        "sha256": "61e5e6026a35464e89ac1dd44e48d0c8394e1783521cbc2a40aa9482ea7d1f28"
      },
      {
        "path": "fpm_catalog/demos/iapws.f90",
        "sha256": "f51514ee1cd242b1cc58bb4ed2b2a9ff3895bb481f3327eb09b0a30a79c3bae3"
      },
      {
        "path": "fpm_catalog/demos/integer_set.f90",
        "sha256": "8128be88e99967deea42424e22b84ddeac5c956e5baae3e430ca78122551480b"
      },
      {
        "path": "fpm_catalog/demos/integrate_fortran.f90",
        "sha256": "393a8db24fae89a2ebb45aeef039f0fcc2075d177e40b1ba6b3bab495ba704a6"
      },
      {
        "path": "fpm_catalog/demos/interpolation.f90",
        "sha256": "879b7c51c77348937d45c21d5dea071e65c0181976776ccbd784e311e41d27f4"
      },
      {
        "path": "fpm_catalog/demos/io-fortran-library.f90",
        "sha256": "fb89db17c66b35d2ad9d19709a3dcfb791ca4a324241b390b66fb00e9611e2ce"
      },
      {
        "path": "fpm_catalog/demos/io_utilities.f90",
        "sha256": "8c54b6d6efaaed5e53142797ccbcbf744239187b0474504f5fc6720d2faec825"
      },
      {
        "path": "fpm_catalog/demos/iso_varying_string.f90",
        "sha256": "dcb46b4d6a8a50320d024db5f4ee71c49568b0f0f152b1fba630f66a0b8a85c7"
      },
      {
        "path": "fpm_catalog/demos/jeyemhex-regex.f90",
        "sha256": "54189e2c4ce91df3b0ddc8af3ba7ff956f4612a06a68f251525edc8f43092d43"
      },
      {
        "path": "fpm_catalog/demos/jonquil.f90",
        "sha256": "7c5ae8e23c1bcd20c8bde9c608f99cfcc22abd8b3fe3e42fd7d5bff3d1b36eef"
      },
      {
        "path": "fpm_catalog/demos/json-fortran.f90",
        "sha256": "88ebfa11741e99ef4c64f912d15255f79fe1c6bd0892235d6c5143fd03661ac0"
      },
      {
        "path": "fpm_catalog/demos/julienne.f90",
        "sha256": "f1104ebd9295314cbe06282d0f528fc8502e75468a7e4a2f786fd4dbda9f6d6c"
      },
      {
        "path": "fpm_catalog/demos/kdtree2.f90",
        "sha256": "77d3a0763ea8d542d689fc85922be56e12500402d432134b1e0824f44baaa051"
      },
      {
        "path": "fpm_catalog/demos/kinds.f90",
        "sha256": "342156b4ca1266d3843e86c61dcd0f7b18e23b7b543d81d330d1af3bb0ac59ea"
      },
      {
        "path": "fpm_catalog/demos/kiss.f90",
        "sha256": "3f9f9d8e8f920f4e57271c2544a2f8dd08f4408ad928aadff480c99eb363b3c5"
      },
      {
        "path": "fpm_catalog/demos/kissfft-f.f90",
        "sha256": "19e559aa2d6d004c9bbd095f3338ea89a8ec2136bdd266f483f391753e0282e2"
      },
      {
        "path": "fpm_catalog/demos/kronrod.f90",
        "sha256": "bafd03bd2eef8a6ac7e8d60909ba717788ab9372c96624678a9666b8199611f9"
      },
      {
        "path": "fpm_catalog/demos/lbfgsb.f90",
        "sha256": "96872b902f9eb664df381874b9ded3fa8e990194756ca6ea344edd52de04b382"
      },
      {
        "path": "fpm_catalog/demos/lib_statistics.f90",
        "sha256": "bbdb2e776946afde6ac6f51b271b0865ce62124c1600367cebd3cafb7594c673"
      },
      {
        "path": "fpm_catalog/demos/libdogleg-f.f90",
        "sha256": "5ad1e2c19efaab10f94f2d75d6e42c6a3e616d6c6a2e262667d45a51804747b0"
      },
      {
        "path": "fpm_catalog/demos/libmbd.f90",
        "sha256": "4389061fb559e64401d63638bd8ab3ac58a2c5b8b92e82a1aea1f09a0cd6a90a"
      },
      {
        "path": "fpm_catalog/demos/lightkrylov.f90",
        "sha256": "52c6079f2c56aa3c43133d034233fabc35cb793e77d8501ad397cd77fc74cdc3"
      },
      {
        "path": "fpm_catalog/demos/linalg.f90",
        "sha256": "75ece43120bc9f62a5d9ae13afd5a42003055c3a2f58ba44fbea27a6f471f94b"
      },
      {
        "path": "fpm_catalog/demos/linalg_fortran.f90",
        "sha256": "d7dbec89d1c1f73a6e0f32f06b11b245fd29bda7984430627166d9b190916715"
      },
      {
        "path": "fpm_catalog/demos/list.f90",
        "sha256": "2d4554e4e385b8099ee0ca0572fe4ea84aea6b9fc0d96526f22007d1f823a7b4"
      },
      {
        "path": "fpm_catalog/demos/lookup-table-fortran.f90",
        "sha256": "2247c7358e3bfa2ce064b1007bebeb0a994917b06f3e51355f766c5156ba3c92"
      },
      {
        "path": "fpm_catalog/demos/lsmr.f90",
        "sha256": "acb7b4670c7469aa12099b8b7a8a12520ffc614021ccf6648f1c7925d2a78e6d"
      },
      {
        "path": "fpm_catalog/demos/lsqr.f90",
        "sha256": "bde69c8b8305e5d5f829a2a1fbac8e1d8f4bda8f20c6558dc9ab4f2a63d07049"
      },
      {
        "path": "fpm_catalog/demos/lusol.f90",
        "sha256": "3fae5375fd7053ae16a796a047df1f9d2cf91656951b77c6fdc01aba2cf7c208"
      },
      {
        "path": "fpm_catalog/demos/m-process.f90",
        "sha256": "f3674d182a3bf395dff8b07eefd55321368436ba85bb1f7550d061cf81688090"
      },
      {
        "path": "fpm_catalog/demos/m-system.f90",
        "sha256": "90bf33650f228e6e7459b32bf77852d18e1e6d8cd961a1354653fc3e923b69cd"
      },
      {
        "path": "fpm_catalog/demos/m_attr.f90",
        "sha256": "5af6ab0ffcdcab0047650b74e1fcf18d24f15645946e95d8f4a53d5a7ff687ea"
      },
      {
        "path": "fpm_catalog/demos/m_calculator.f90",
        "sha256": "b0a2e2aaf2a00ffd4c58329cfe673ee23f94c0f3b6d6a2320b53952b29d3296f"
      },
      {
        "path": "fpm_catalog/demos/m_cli.f90",
        "sha256": "ed92f727647b8441916944a369f30d8bc983b2ac5ab94ac0bf9c24ac78bac3c7"
      },
      {
        "path": "fpm_catalog/demos/m_cli2.f90",
        "sha256": "441887cf9fabc705700021c82b6bd83a9886f2e1cd58c43ec85edc476c25b329"
      },
      {
        "path": "fpm_catalog/demos/m_color.f90",
        "sha256": "049b4f836d885f3fab9ccbca8739728069f637f2918083d25d3d7c9d2e5aa6c0"
      },
      {
        "path": "fpm_catalog/demos/m_draw.f90",
        "sha256": "7dfd427c9916881a5336dff723348d77dd14f8d9905ea6d17aa29c13321394f9"
      },
      {
        "path": "fpm_catalog/demos/m_framework.f90",
        "sha256": "ad7bbad2a2569a58aa995e1cfe9b65f1f7814656726ecbeb7dcbe1447f862537"
      },
      {
        "path": "fpm_catalog/demos/m_history.f90",
        "sha256": "7e822e70809767485bb4375dba7606103c0290659ea9ff8076c3d35a266718ac"
      },
      {
        "path": "fpm_catalog/demos/m_io.f90",
        "sha256": "85e04b68f945638605b22ff738e316386345f971d531fc7dddcce6ea0fa0090a"
      },
      {
        "path": "fpm_catalog/demos/m_la.f90",
        "sha256": "3c89dd90d25d689aeca1509f2914fe94e2243be10dfc5e1ca156ed79a223f4de"
      },
      {
        "path": "fpm_catalog/demos/m_list.f90",
        "sha256": "12f0b5c7628f7d9bb316f72b4a47bb29e7c94f4ccae1b08c216dec12e6f7d730"
      },
      {
        "path": "fpm_catalog/demos/m_match.f90",
        "sha256": "b58d08d9a70fb18f84583ac49dbe9e43e0efda1b17e8e1fa7312ec5288f7f835"
      },
      {
        "path": "fpm_catalog/demos/m_sets.f90",
        "sha256": "b75c6c035576c4144133ea87d63652d04a3a370987c8672fac88fcf7f5e3ce89"
      },
      {
        "path": "fpm_catalog/demos/m_sort.f90",
        "sha256": "060eae02913a585a01593d76ea1a4e53b2b8d3e6742c1cc78ed1051ce35289be"
      },
      {
        "path": "fpm_catalog/demos/m_strings.f90",
        "sha256": "4523737fbe04fb871a900181ebb3bb6300cfdab0a7c78f39c569841f239a2a65"
      },
      {
        "path": "fpm_catalog/demos/m_time.f90",
        "sha256": "28c73e93ad55bf79b211f2e616df6a8f385a70d2090d5a1618d0e6196946a965"
      },
      {
        "path": "fpm_catalog/demos/maptran3d.f90",
        "sha256": "8381fe323889ceda89a5c6a20cfc2b7f0d60844792f03c86aea0ee90845f4672"
      },
      {
        "path": "fpm_catalog/demos/mersenne-twister-fortran.f90",
        "sha256": "163e3483e21efbecabd772c417a660c0eebb63389356d32fca1873a946c87915"
      },
      {
        "path": "fpm_catalog/demos/metis-fpm.f90",
        "sha256": "0bd10d335f11667074a96ee20f64fe421d48f94d3a635fa35939704fcde6455e"
      },
      {
        "path": "fpm_catalog/demos/minpack.f90",
        "sha256": "cf0693ed8c2d2e864525dd4d354666d235a0fbbdaf16ed202990e12c99b2d0ea"
      },
      {
        "path": "fpm_catalog/demos/minres.f90",
        "sha256": "4e41f67bb64d01e0e81603f15c419a4febead71fc58dc7bc213ba3844002e22c"
      },
      {
        "path": "fpm_catalog/demos/mpfun2020-var1.f90",
        "sha256": "4a623b20c087773d185ce1c43a7650be5218be3cb90b6f34b984dae124c1da6a"
      },
      {
        "path": "fpm_catalog/demos/mpifx.f90",
        "sha256": "a91ad18b2c69a047199d362c079e94207b8eb2ea2dcd14c3e8ec8fcdf87556ee"
      },
      {
        "path": "fpm_catalog/demos/nafpack.f90",
        "sha256": "347789bb31514ff80223015be8b5f5e23e59bbbceff089ce6a5b44a09bf80389"
      },
      {
        "path": "fpm_catalog/demos/nc4fortran.f90",
        "sha256": "2f5698b3827bf052722fa89097c6d1d94116d4304b888e6bda8d15939bdfa814"
      },
      {
        "path": "fpm_catalog/demos/ncio.f90",
        "sha256": "95fe35d43248d10cd9a2b95492c52b0bbc8d34627566fa763ba53551686094d4"
      },
      {
        "path": "fpm_catalog/demos/netcdf-fortran.f90",
        "sha256": "8ddeb807c1756ebadc44ef51f5c33e0da181b503855c08817ae9ff545da87946"
      },
      {
        "path": "fpm_catalog/demos/neural-fortran.f90",
        "sha256": "af8c830fedb2ae38084825d3112b71441d04773cd4facc0a6649da9f61330ac4"
      },
      {
        "path": "fpm_catalog/demos/nlesolver-fortran.f90",
        "sha256": "cbb9c9c9f87d704464c74ef7f3dda650de3834bf33c72fe44bc7225e23819a7c"
      },
      {
        "path": "fpm_catalog/demos/nlopt-f.f90",
        "sha256": "eefa6a6f25ce0ab89c0e89c0d9da0598156c21b2988512d01195d56958b9ab13"
      },
      {
        "path": "fpm_catalog/demos/nonlin.f90",
        "sha256": "4c25ae882446282ee2e168b8a47d004792d76c59ade47021f4babda850b9610e"
      },
      {
        "path": "fpm_catalog/demos/npy-for-fortran.f90",
        "sha256": "a55cca9864eb37b53ad453ba9b27ebe641d13ae1b47f18ed7a2c8e36ae8bf678"
      },
      {
        "path": "fpm_catalog/demos/ntpoly.f90",
        "sha256": "7d4371cca19c9871a0c7e884d0076c9f98b414ac5cdefd939cf1126f87f6c02c"
      },
      {
        "path": "fpm_catalog/demos/nufft1d.f90",
        "sha256": "7db0f10921945887f8216b155b90e64032864c33d5df6489603241e865553172"
      },
      {
        "path": "fpm_catalog/demos/nufft2d.f90",
        "sha256": "79b500a9e11d45ed81a7b0ea2edef4b672aace42506443cf357590c7ca41aabe"
      },
      {
        "path": "fpm_catalog/demos/numdiff.f90",
        "sha256": "50a55c4c34c6c8bd0e78813af9918b448029f07b7b9a64ed63ba925b4bbe96bb"
      },
      {
        "path": "fpm_catalog/demos/odepack.f90",
        "sha256": "c0357375499d095429bc622d2d1a653eaff678c676350861d69e72071fed6870"
      },
      {
        "path": "fpm_catalog/demos/odrpack95.f90",
        "sha256": "774ef734ceb18114b516993f86219aff6290f58e74caf7012143431e505ff280"
      },
      {
        "path": "fpm_catalog/demos/ogpf.f90",
        "sha256": "cfb660e591ebe8908e52cee810763d15b4a121a08d9270d717d5b5fadc0c7308"
      },
      {
        "path": "fpm_catalog/demos/optgra.f90",
        "sha256": "f3043b80361d8ed1e5bda4cd010a265da29c387149f46cdcac263d91fe86712d"
      },
      {
        "path": "fpm_catalog/demos/opti.f90",
        "sha256": "93c70dc077446872feb4a1962dfa3b4579cc1b661a6e97435a58270736abdaf5"
      },
      {
        "path": "fpm_catalog/demos/orbs.f90",
        "sha256": "11104e37f36be3c44fcc593741d47d68e6d2bcf67bb8349600dee24cb08adbfc"
      },
      {
        "path": "fpm_catalog/demos/orderpack.f90",
        "sha256": "c8dd69f84ff91a5bdf7030b73747a992373f8b345f12f49ca1e79ce242db62f5"
      },
      {
        "path": "fpm_catalog/demos/paramcard.f90",
        "sha256": "70b2485d4de08d92c6ea25726ca81d0b4d0baea1dddd93234ded50954c9716f0"
      },
      {
        "path": "fpm_catalog/demos/parff.f90",
        "sha256": "ccb1e96e2b9a091a3109437ca539dc4a7541412d274e29161baefc725da9e219"
      },
      {
        "path": "fpm_catalog/demos/pchip.f90",
        "sha256": "db49fe3937cd2abccb2c0e5f49216ac47043e9436df7fcebcc3490b8441fd8cb"
      },
      {
        "path": "fpm_catalog/demos/peaks.f90",
        "sha256": "f71c0b48cf8774ed6790d77748c3b55cef8ecdb42916e95b890868fc51557a99"
      },
      {
        "path": "fpm_catalog/demos/penf.f90",
        "sha256": "23fc78b22918aeda32e5738dc68100b13b7813cc46f9135ac19514aa57f1b216"
      },
      {
        "path": "fpm_catalog/demos/pflogger.f90",
        "sha256": "d487629dbccb878a61e03fa0a31964356ea7ebc1f47613f9404f72599145281e"
      },
      {
        "path": "fpm_catalog/demos/pfunit.f90",
        "sha256": "0638bb9cd777962a211f978412d8bf144b6fccc62b50489ce7b4599f9ac514b9"
      },
      {
        "path": "fpm_catalog/demos/pikaia.f90",
        "sha256": "3e2363b011ace51d8306b03c5f7968f0e714bcb1684a236d79b3dfd8b9eba745"
      },
      {
        "path": "fpm_catalog/demos/plplot.f90",
        "sha256": "cdd45260d4096781031061feed4e28d7f23ff65e3a9416041c16c74d5c73828f"
      },
      {
        "path": "fpm_catalog/demos/pointsets.f90",
        "sha256": "a625a788343a1f5cd72f588f332622ade499468bc3d27ebcb26d4d3efb55d208"
      },
      {
        "path": "fpm_catalog/demos/poisfft.f90",
        "sha256": "047c9768aaf0cf7d592605d206e5c4b4fee77a0e99b3919a28fa0ba4ed8d9acf"
      },
      {
        "path": "fpm_catalog/demos/polyroots-fortran.f90",
        "sha256": "db4fcba33a4969192dc2eb0a7c3989b3e4069efee83486506e5f7d0f33aa4bbb"
      },
      {
        "path": "fpm_catalog/demos/popen-fortran.f90",
        "sha256": "3607babd42189d98ba4e9d47efc4cb1d863af9a8382baab2cd55af4d869b608e"
      },
      {
        "path": "fpm_catalog/demos/powellopt.f90",
        "sha256": "cd857f726ec3f473f9cfbeb3a3728c58e6a6fabc8a2eaecc4cfe2ff2f23e20fa"
      },
      {
        "path": "fpm_catalog/demos/propack.f90",
        "sha256": "a01b67fdcdf1fe648c0c5eb7d9829db26d604ac205fa37df8b405d33fec0e71d"
      },
      {
        "path": "fpm_catalog/demos/psqp.f90",
        "sha256": "8f4edf5eb224200c1d41e75371b19561b33741950215f8deaaa344cb1224abe1"
      },
      {
        "path": "fpm_catalog/demos/pyplot-fortran.f90",
        "sha256": "99e12d83c262c7326668f5351724e445f452b4b5d233a6a61a92e2502ebad61d"
      },
      {
        "path": "fpm_catalog/demos/qcontainers.f90",
        "sha256": "616e0fc39c95bc2695434e2f39901766dc765e4ffd980aad125e8088edeabd4b"
      },
      {
        "path": "fpm_catalog/demos/qdldl-fortran.f90",
        "sha256": "5fd5ec25814763ee862ff104b7637831c0234399267d07ad9431e76a522b9f5d"
      },
      {
        "path": "fpm_catalog/demos/qdutillib.f90",
        "sha256": "89e1f5f8ab95cef1fba9c4b546a5b742d31a4b15d644a28e9f0757656a68f421"
      },
      {
        "path": "fpm_catalog/demos/qnstop.f90",
        "sha256": "105572adfcf27d0389cc2046ac5a1e2b4ef01bb8ca2935e416138cf1f60166be"
      },
      {
        "path": "fpm_catalog/demos/quadpack.f90",
        "sha256": "915ba6b25315da0c1b5bacbc209e41e7de24e8b5e983411aa467829fb855144b"
      },
      {
        "path": "fpm_catalog/demos/quadrature-fortran.f90",
        "sha256": "8f7b5ba97eff8093f0324e9db518f7f21946df21ca16ca01814b31887044d22b"
      },
      {
        "path": "fpm_catalog/demos/quaff.f90",
        "sha256": "97150dd9ba968dd2b99a8c535b3c47186c6131df075ce688ca6d7a37bdd2f529"
      },
      {
        "path": "fpm_catalog/demos/raffle.f90",
        "sha256": "5d0ad5ed4a11ae8e412fb8b6b166af902857d0b5b7b37f690877625bb947e2e4"
      },
      {
        "path": "fpm_catalog/demos/rational_number.f90",
        "sha256": "021231a26d11a742dad72e5d79637102eff1d4797e5e498c0a1dfae12e09c669"
      },
      {
        "path": "fpm_catalog/demos/rearrayfx.f90",
        "sha256": "42ab029721bf925f67b012d87827aab737d3fee492266cfd88919d16e86b892f"
      },
      {
        "path": "fpm_catalog/demos/regridpack.f90",
        "sha256": "36c0ea6a8f05d179fd9762415ec4eb6f0c6c14c266281fc1d34eba0c9b45ac02"
      },
      {
        "path": "fpm_catalog/demos/rkf45.f90",
        "sha256": "7ba540221dc22212c61437f4ea22982026da428de0ff4ab151dfbfeb6160e842"
      },
      {
        "path": "fpm_catalog/demos/rklib.f90",
        "sha256": "8ca1e61a1ce96fa460f9c5c0deb5d29531bc3d21282bb6ecf54ad3649c5f55dc"
      },
      {
        "path": "fpm_catalog/demos/rndgen-fortran.f90",
        "sha256": "d73dcb206e00f10f75f1ee43db7855bc3dd061b60ed138437ac39d1b934de9f4"
      },
      {
        "path": "fpm_catalog/demos/rng-fortran.f90",
        "sha256": "711acfef0457f1f3e4bae024d97f403847bf18c97df85bf56caf766429c534a8"
      },
      {
        "path": "fpm_catalog/demos/rngff.f90",
        "sha256": "f78c6671247b7da69e340d761b62ffb48f0af9ddb4a0f3f4a3466e91c6aef584"
      },
      {
        "path": "fpm_catalog/demos/rojff.f90",
        "sha256": "5025f64999574af56e0316f2174261c30a2509027d5eaddbf5aa32a16cf1749f"
      },
      {
        "path": "fpm_catalog/demos/roots-fortran.f90",
        "sha256": "5cbbf582739e7cca634550ad33aebf2cbcfc1c093bc43bceff2a61148ac71632"
      },
      {
        "path": "fpm_catalog/demos/rpn-calculator-fortran.f90",
        "sha256": "af4f82c0bea3a05b9032fbfbd1d5c5cb051add7b2d5ca4be9fb39e742ce3cce5"
      },
      {
        "path": "fpm_catalog/demos/ryu_fortran.f90",
        "sha256": "c49d0d9b2991d5900fca4e1692e4b3ea099b6e3d6216d33c219b7e21ea8769f6"
      },
      {
        "path": "fpm_catalog/demos/scalapackfx.f90",
        "sha256": "dfc0a74a6d014ee2026cb0dca3ee22c5646a83c8c0f5bdd898ac436c62e8967f"
      },
      {
        "path": "fpm_catalog/demos/scanner.f90",
        "sha256": "2a26ac5acd461dd59e4ae78b9ce6f16b14988a2b74b5491bf213418a763e0a28"
      },
      {
        "path": "fpm_catalog/demos/scifortran.f90",
        "sha256": "00c832772ffb10062656d96d492492c2dd68ccb0c9d7009743ea6e90535bfbb7"
      },
      {
        "path": "fpm_catalog/demos/seiscope-optimization.f90",
        "sha256": "0ee11b1fe7b91545d305103b11e715689e87139108a7b2be5ec5db98bdf4466a"
      },
      {
        "path": "fpm_catalog/demos/shunting-yard-fortran.f90",
        "sha256": "b0a9d3f49c2a5165cc45184c21fd6d137fa1e1c2f461aa5f032112445b3cbb33"
      },
      {
        "path": "fpm_catalog/demos/simulated-annealing.f90",
        "sha256": "9591f3cb29f9512a694f0af87be58ab01086831d98aa260c714f3310d060871a"
      },
      {
        "path": "fpm_catalog/demos/slicot.f90",
        "sha256": "aa5b7af78cadc67c08b78e00f10d95d82c06d4c8b758f8667078f2f7320d6bf9"
      },
      {
        "path": "fpm_catalog/demos/slinked-list.f90",
        "sha256": "c15e46b73b6a9b1bb85f8488fa2fac82f0bf0690d8be708a95544f7832d678b3"
      },
      {
        "path": "fpm_catalog/demos/slsqp.f90",
        "sha256": "e384930884dfee5f4d867046b440cc9c0fecd3ee1cc9cd834d8d6aba1cd91dda"
      },
      {
        "path": "fpm_catalog/demos/smart-pointers.f90",
        "sha256": "b47909cd67469bbe4c0e212b838aae77f8526191b9da038d842cfb37259b849a"
      },
      {
        "path": "fpm_catalog/demos/sparse_fortran.f90",
        "sha256": "993bf086caf1f7d4c9632411c093318e7c1a8482cf368a677458707ecae81003"
      },
      {
        "path": "fpm_catalog/demos/specfun.f90",
        "sha256": "885e59b97b08643364bf948a92e7277ef86f5212a63f625cf579c94227271f49"
      },
      {
        "path": "fpm_catalog/demos/specfunc-fullerton.f90",
        "sha256": "9b81442c57aafb8088b31e9dd80647fe3b98c1d5c5c7266d00a5044bfbd2df2b"
      },
      {
        "path": "fpm_catalog/demos/specialmatrices.f90",
        "sha256": "f6e9f856c46733320804ef956be8df9bf6de65614541819677d3835413cdd770"
      },
      {
        "path": "fpm_catalog/demos/spectrum.f90",
        "sha256": "67a3c45d401e844312052026ed6743fdc6234c7f9adb876f5a0dd2b858e93be9"
      },
      {
        "path": "fpm_catalog/demos/spherepack.f90",
        "sha256": "0f4d7750a45ffff3a8474834a3c3823ddeee6bfb005017a03b31943044d6faaa"
      },
      {
        "path": "fpm_catalog/demos/splpak.f90",
        "sha256": "fadfa994f51767ac9a78e8512024429aceae52e762bd657af04cb19d5def8cc6"
      },
      {
        "path": "fpm_catalog/demos/sqliteff.f90",
        "sha256": "7ff8d30a09bcc6e1450c62f7bc38957d7e2c0a83da8c25d48dafdd6a2900e6f7"
      },
      {
        "path": "fpm_catalog/demos/stdlib-os.f90",
        "sha256": "e203c0792caa37090663e628d46b81e03f6372ffbf4f1bb04c256407ff654c15"
      },
      {
        "path": "fpm_catalog/demos/stdlib.f90",
        "sha256": "bd9f6d28306dcb78af5cc2350b11f42682e31eec2972bb2e1667ddd9b973b114"
      },
      {
        "path": "fpm_catalog/demos/stiff3.f90",
        "sha256": "24cfc8cf62e358d818c898c4ecaa8ad9aa71c955a442a6415a14cecc09f144bd"
      },
      {
        "path": "fpm_catalog/demos/strff.f90",
        "sha256": "aefd2f4a035adf89988ba7b21db368142ea4730a3b94009f290ccc6340e0dec5"
      },
      {
        "path": "fpm_catalog/demos/string-utf-8.f90",
        "sha256": "7ba7476905d9a55c14ecdb28ed1fad2e0e0dafcffcb14135f7aef469903deb87"
      },
      {
        "path": "fpm_catalog/demos/stringsort.f90",
        "sha256": "fe0d76725dc7c4bb161dcd69983c0407f972a20cdb11257f8cfe0b6bf21bf2de"
      },
      {
        "path": "fpm_catalog/demos/strith.f90",
        "sha256": "3714004b470be72de787902a7bfa8518bd998a6d89600e127e28c7d9e8550152"
      },
      {
        "path": "fpm_catalog/demos/test-drive.f90",
        "sha256": "16cedb750b0a6fe26fd3a02c3c94376126364ba0abb5665a49416f602fdc0d91"
      },
      {
        "path": "fpm_catalog/demos/toml-f.f90",
        "sha256": "e83d6c5167577c76eeb027e879ce88e38a7838a2c8680ec0b5f5d4c5da0e44f9"
      },
      {
        "path": "fpm_catalog/demos/tsunami.f90",
        "sha256": "be49e341413a5bdcef2fee130a81aeba350079e53c26780782c7946e1d7b5694"
      },
      {
        "path": "fpm_catalog/demos/twopnt.f90",
        "sha256": "c470ef0cd5d304a01ef29f187458c1629fbe4ef684c83290dc0707fbe32c196c"
      },
      {
        "path": "fpm_catalog/demos/uint-fortran.f90",
        "sha256": "5e1eaa1f34cc871f60c32fa95db5efe870004ece24769c368ca48b491f2f577d"
      },
      {
        "path": "fpm_catalog/demos/utf8-f.f90",
        "sha256": "4606c09a0fae42ad204140f425c8bb20c6336807a4bfac52c64bce9b64729b56"
      },
      {
        "path": "fpm_catalog/demos/veggies.f90",
        "sha256": "09055ca0bd2a350896922b8abc667d236c3d99a96440709fc740b08d8b001642"
      },
      {
        "path": "fpm_catalog/demos/vtmop.f90",
        "sha256": "95b24a88eb09b2f229352e69cc91dc8a19c102c3d6b976dfd9401fdb64e4ce48"
      },
      {
        "path": "fpm_catalog/demos/y12m.f90",
        "sha256": "c01a620520e97528228e175121a4e0cbbe992ba501e998f6e40fa8169a863aed"
      },
      {
        "path": "fpm_catalog/demos/yafyaml.f90",
        "sha256": "fb50dd73a83690c0c629db930a85d6d72de2b3baad503fb0cffb71ccb5fb979c"
      },
      {
        "path": "fpm_catalog/gams-drivers.json",
        "sha256": "edc9d6e11e45fde9acf027ef4911b217a85e23f11cb5dcb9d4c774cf0944c406"
      },
      {
        "path": "fpm_catalog/gams-drivers/ad-dnsvm-analytic-derivatives.f90",
        "sha256": "01800ef46c21cb6213c4d4a96fd7ba77d87de9c8cb2ca5d7dcd781d153f54ca8"
      },
      {
        "path": "fpm_catalog/gams-drivers/amos-complex-series.f90",
        "sha256": "2eb598956e51271bf2e6279d5df58502fe96d7b359284f43b802fc9aa7c35f54"
      },
      {
        "path": "fpm_catalog/gams-drivers/annealing-rastrigin-reference.f90",
        "sha256": "160e814fedd5667e5b3d6aa8132fc4af267761b4b1604cb96415754e4fdc8b90"
      },
      {
        "path": "fpm_catalog/gams-drivers/arpack-poisson-eigenpairs.f90",
        "sha256": "888805c74e75c2ad89b03cdf57caf00009b28f789ffad052608cdfe52a6a94d5"
      },
      {
        "path": "fpm_catalog/gams-drivers/astro-sky-reference.f90",
        "sha256": "6b4af785124f05710f5c9d0a58078f515c2799230824968ba8e21c98d847fa46"
      },
      {
        "path": "fpm_catalog/gams-drivers/athena-dense-reference.f90",
        "sha256": "e4d64b2c8c81c81abda82a20aff3c55f7d3f7e7dee9e1428c3362a083c8f9009"
      },
      {
        "path": "fpm_catalog/gams-drivers/bernoulli-power-sums.f90",
        "sha256": "c66d87140b0d7c91578b21f36bb7b37bf094ca6d4a0028333ee3c2738d599657"
      },
      {
        "path": "fpm_catalog/gams-drivers/bessels-modified-values.f90",
        "sha256": "2d4b189e1de1fdc7b5c78cbce3c58c4989a1f1f14b2ce7c386fee5847a3d45f4"
      },
      {
        "path": "fpm_catalog/gams-drivers/blas-gemm-reference.f90",
        "sha256": "ecd6ee60d3258a987d9f7d33122066a6448700bd4335d70445b8f7b6494713d2"
      },
      {
        "path": "fpm_catalog/gams-drivers/bobyqa-box-reference.f90",
        "sha256": "de387d69c60791ca2b39e4aba25eaea2626caa6f5670c86e929de666a0073726"
      },
      {
        "path": "fpm_catalog/gams-drivers/bspline-fortran-shape-interpolation.f90",
        "sha256": "7ef51d8d302161ef4f0004fbef041b0f0a158198f695f756203dd4144bc39165"
      },
      {
        "path": "fpm_catalog/gams-drivers/bspline-tensor-surface.f90",
        "sha256": "9f83bdd1960631ae64ad92b97e4391b785bdfd94849fdf85a2b2b9428d0377e7"
      },
      {
        "path": "fpm_catalog/gams-drivers/bstrith-bit-reference.f90",
        "sha256": "cbd04c49b8be26f7f15cd86698318a384135c23621adf579a17ffb9a4d879ede"
      },
      {
        "path": "fpm_catalog/gams-drivers/carlson-rf-reference.f90",
        "sha256": "ee57be8f8cf2a716d3c3a3852430323f4c9aa43651f7127273b51d77d59fb44b"
      },
      {
        "path": "fpm_catalog/gams-drivers/conmax-linear-program-certificate.f90",
        "sha256": "e2718480e9e0b23e09a66fa203f4805265801e4b6a87a632e8d3d22163df71a0"
      },
      {
        "path": "fpm_catalog/gams-drivers/conmin-ball-reference.f90",
        "sha256": "cc20236ba1250b38209df27e658269d2cbe335890354098363acea9c86151d0e"
      },
      {
        "path": "fpm_catalog/gams-drivers/coretran-sort-reference.f90",
        "sha256": "81119f8c85069827af19cd249572e2d7659d14b9dd4d330527f928cb1f1e986a"
      },
      {
        "path": "fpm_catalog/gams-drivers/cpolyroots-complex-reference.f90",
        "sha256": "3dba1af1cabdee90c3ecba03467cf0221d2109dfe9547df6b1fb91efc26888c2"
      },
      {
        "path": "fpm_catalog/gams-drivers/cubatures-simplex-moments.f90",
        "sha256": "da3d5aea45fb47fb72f35733f4c77eeddff12c8c15e19710deae9d96e843b30d"
      },
      {
        "path": "fpm_catalog/gams-drivers/daglib-order-reference.f90",
        "sha256": "f9ffcb6fa7c3034abaf666c4cad9c1fd2a0a0dfedf42a16b29d0a71a81d9aada"
      },
      {
        "path": "fpm_catalog/gams-drivers/daskr-dae-reference.f90",
        "sha256": "5005e2300b4cb008aa9be3142e84977ed5ee4a7bbb8b92615f49a45dea36bec6"
      },
      {
        "path": "fpm_catalog/gams-drivers/dbcsr-products-reference.f90",
        "sha256": "5cfd94e752ea08ce27efe20ae5f146dbb72795e5cb7f8911f7787615f6d319cb"
      },
      {
        "path": "fpm_catalog/gams-drivers/dcuhre-box-integrals.f90",
        "sha256": "d388e80444555f27fed3499c63e2e308c02da09111f7ac5897b4977f19672ce5"
      },
      {
        "path": "fpm_catalog/gams-drivers/dde-method-steps-reference.f90",
        "sha256": "708925ef930df443d65ca61e330b744f5d05edbbd9f6d2b6dd0df2194a3722b8"
      },
      {
        "path": "fpm_catalog/gams-drivers/ddeabm-decay-oscillator.f90",
        "sha256": "4949e249013e61ad9be5f18242703f9cb1c5b96e05680f5d9dc90032a0bfec29"
      },
      {
        "path": "fpm_catalog/gams-drivers/decomp-3d-reference.f90",
        "sha256": "93a2a6c05b504688adffc64057ad82981e82c97c0a436b7be4f6dd94ea6c8bec"
      },
      {
        "path": "fpm_catalog/gams-drivers/delaunay-affine-reference.f90",
        "sha256": "035a629cb750121f0ce767a624b673a01f077347c7b03bc86bced42845834233"
      },
      {
        "path": "fpm_catalog/gams-drivers/dftatom-hydrogen-reference.f90",
        "sha256": "97df4d73bc45c13f1400b43d8ee3d98f6c072ae299083db797cf9c8b14ece4e5"
      },
      {
        "path": "fpm_catalog/gams-drivers/dftd4-dispersion-reference.f90",
        "sha256": "aa36f1c5c9fbecc2f106ee512e20bbc125c5bc3bb56c343e8d089bc4f65628db"
      },
      {
        "path": "fpm_catalog/gams-drivers/diffeq-rk45-reference.f90",
        "sha256": "f252cc57898045fcd362bc6612c5e537ca83fb3a7785df63ce5802eaf2aaa186"
      },
      {
        "path": "fpm_catalog/gams-drivers/differentia-analytic-reference.f90",
        "sha256": "ac08fc4d8377466c4b21648c4671f58ca497e1a0369711e61dc7d51876f93a26"
      },
      {
        "path": "fpm_catalog/gams-drivers/diffstruc-hessian-reference.f90",
        "sha256": "b323c54938f1ae28b10b91f24a9b90e2dd5e61fcf4482a309ece23d5e8ae05b5"
      },
      {
        "path": "fpm_catalog/gams-drivers/dnaoad-higher-reference.f90",
        "sha256": "f814d97754839cd8f4757b0cdf9a965f5889f3f775159c8be23d163af9e1456e"
      },
      {
        "path": "fpm_catalog/gams-drivers/dop853-decay-oscillator.f90",
        "sha256": "4b0f2761bcd5bda2b76e274efbfe07d6f73f52d0c5ac7a0a2b20dd426f1921ac"
      },
      {
        "path": "fpm_catalog/gams-drivers/dtfft-2d-reference.f90",
        "sha256": "e00e0ce97841d10418d4e4c5b7444b6dc2aa6103d1d045d8bb13934ed7994600"
      },
      {
        "path": "fpm_catalog/gams-drivers/dvode-stiff-two-scale.f90",
        "sha256": "654817d98b17b61a500d0fc9fcb00b4d9bcff5c8ecdfea8c1fb035dec897d0b5"
      },
      {
        "path": "fpm_catalog/gams-drivers/dynamics-response-reference.f90",
        "sha256": "7a6a2e21eeaafd0332bd2be54fff2ce44358c197c7a41a2f29e760a1fc2c6ca7"
      },
      {
        "path": "fpm_catalog/gams-drivers/econ-markov-reference.f90",
        "sha256": "183fbd053cd12ff1021a8208363ab2b0893ab255c9385df82a6f9da9169f00cc"
      },
      {
        "path": "fpm_catalog/gams-drivers/ecx-rlc-reference.f90",
        "sha256": "fa76ce6a2bb2133fc314a54d366f91032b999c90cd41a48eeba9ab7ddafa8d33"
      },
      {
        "path": "fpm_catalog/gams-drivers/ennuf-inference-reference.f90",
        "sha256": "6d790ee3ae273d069b768262683a4e4a42746902f49cb9d54312f9ee31bb2ce0"
      },
      {
        "path": "fpm_catalog/gams-drivers/error-bounds-reference.f90",
        "sha256": "8874366239c15470759127da9f668a2b4dce874a63976906b701c02988d84a5c"
      },
      {
        "path": "fpm_catalog/gams-drivers/errstat-recovery-reference.f90",
        "sha256": "3f1f4a88c289bbe98d21152f6ac5f4fab8fab88f4726c51ac33c3d4e182ce9d9"
      },
      {
        "path": "fpm_catalog/gams-drivers/fassert-captured-reference.f90",
        "sha256": "2ad1803ea6fdcf0edb061d27b87144f22082831a300b610427d7ad0e0b1a3343"
      },
      {
        "path": "fpm_catalog/gams-drivers/fast-float-parsing-reference.f90",
        "sha256": "bd0453e104ddc9c0295d71c1780c556eb3c06c02fe6c21f8da535584f4cf62ed"
      },
      {
        "path": "fpm_catalog/gams-drivers/fastconv-convolution-reference.f90",
        "sha256": "bcf5bd80bf88f7c82d9eefec38a85896a333580d5b7d766f1a3c7f7d09135c6a"
      },
      {
        "path": "fpm_catalog/gams-drivers/fastmath-exp-log-reference.f90",
        "sha256": "a819984310bc078fbd37ea29349b60ad30bbd1906b83715981b86d20123b1e22"
      },
      {
        "path": "fpm_catalog/gams-drivers/fastmath-rsqrt-reference.f90",
        "sha256": "e62e28f132bd3cfae2b24f105278d76a7bf1d5f14d44530b08f528ff54d1d6f6"
      },
      {
        "path": "fpm_catalog/gams-drivers/fat-orbit-reference.f90",
        "sha256": "2a6093544f53a7bdaddcd02fc4ce2fb3f2672be30efb447590b79629995837e8"
      },
      {
        "path": "fpm_catalog/gams-drivers/fatode-tangent-reference.f90",
        "sha256": "ef1a2acc7fbe36e5211d1fa007da7c28151ddad0aafb5a9a9b808b43cd88e1e7"
      },
      {
        "path": "fpm_catalog/gams-drivers/featom-coulomb-spectrum.f90",
        "sha256": "88ffd09ff9b3cfb8f1904c16a33054e010b6e0734794864e7abb5d6f1c46bc41"
      },
      {
        "path": "fpm_catalog/gams-drivers/feq-expression-reference.f90",
        "sha256": "cb7c2033d144e8fb98cc2f6287a7331010d789722019214ae1c4ba45fa965f15"
      },
      {
        "path": "fpm_catalog/gams-drivers/fftpack-complex-transform.f90",
        "sha256": "18713ee85f074960ccc40ff4e4bb6a9b290f5cf4ba80fb384a369f955263fdfe"
      },
      {
        "path": "fpm_catalog/gams-drivers/fftpack-cosine-transform.f90",
        "sha256": "aa17dafe278533d0ebe00a6208341e54eecf08d5688e32c779813a050b2acb02"
      },
      {
        "path": "fpm_catalog/gams-drivers/fglm-transform-reference.f90",
        "sha256": "7297c6c67674b5bfb31582d223ea1b28101c7ce6e2ef3e1db2a15a57a5d54fe3"
      },
      {
        "path": "fpm_catalog/gams-drivers/fgsl-qags-reference.f90",
        "sha256": "e25f76d74bf14df4454f74c7ec1a2890f7f9bd26a95705ffff890207595bdb4b"
      },
      {
        "path": "fpm_catalog/gams-drivers/fiats-inference-reference.f90",
        "sha256": "e2dce19b09920b9f48e9270a13f850518d1723a797dadd9c5c92f885f4910ca3"
      },
      {
        "path": "fpm_catalog/gams-drivers/fifo-storage-reference.f90",
        "sha256": "3841804b3c9b689f0142dade6654cfe784a659345837e520b7869190139774ec"
      },
      {
        "path": "fpm_catalog/gams-drivers/finterp-bilinear-surface.f90",
        "sha256": "ab4bdf2140a5e3fb216b3acc69f67ad4a35622b92cbbe1acdc4e6789b8c312eb"
      },
      {
        "path": "fpm_catalog/gams-drivers/finterp-shape-interpolation.f90",
        "sha256": "26ea6d0c95211f09b89285daf1fd90a146264480a20854912b1cdff3124ff0e4"
      },
      {
        "path": "fpm_catalog/gams-drivers/fishpack-helmholtz-reference.f90",
        "sha256": "64000da197429f2c456a2abaf6ea491cb08bd4bd6883675f3f920972f6c5307e"
      },
      {
        "path": "fpm_catalog/gams-drivers/fitpack-polynomial-derivatives.f90",
        "sha256": "bfe89769df9d335d53505972c2020a7acaa8da4adaec6160f5d847980e0e027d"
      },
      {
        "path": "fpm_catalog/gams-drivers/fitpack-polynomial-values.f90",
        "sha256": "9ba81bef128066ef3d1bcf260f505c6ba8f3d44e2c33dc55c34671d6faab841d"
      },
      {
        "path": "fpm_catalog/gams-drivers/fitpack-spline-integral.f90",
        "sha256": "cbd1a1ca862b8b26ba1fd0064621c7a0e6092948ad78518b892aee7129553d51"
      },
      {
        "path": "fpm_catalog/gams-drivers/fjsample-jackknife-reference.f90",
        "sha256": "8630ac966b9f37fee223100e77d705b86d597a57ab5e3d1b7f3676563aed3a42"
      },
      {
        "path": "fpm_catalog/gams-drivers/fkb-network-reference.f90",
        "sha256": "e130270ff4f85aed2f1e04ddeff06a4af63b0b6f4383316bcffb299771db5706"
      },
      {
        "path": "fpm_catalog/gams-drivers/flann-knn-reference.f90",
        "sha256": "446187c186aa1b7867b98586536bf1791e569c0cba550064110262fa25b349f3"
      },
      {
        "path": "fpm_catalog/gams-drivers/flint-ivp-reference.f90",
        "sha256": "ac13d4bb801e863cc123b34ee22a41e99c67b17e8e04ee84ac20ff5b28024bb5"
      },
      {
        "path": "fpm_catalog/gams-drivers/fmin-sine.f90",
        "sha256": "75d67528702dd9ed4b2aad9d7e65ba448689f2b89eb2830bed1fcaa103e0916b"
      },
      {
        "path": "fpm_catalog/gams-drivers/fmm2d-laplace-reference.f90",
        "sha256": "13e5f61b69008231099ce85200e5a505c871215192ffad9265ef1a2e0dd603ad"
      },
      {
        "path": "fpm_catalog/gams-drivers/fordiff-analytic-derivatives.f90",
        "sha256": "e121b7a8edb8867a3d8d67c8db6c6114a39abc88bcb3cb1c9f49655e108115d8"
      },
      {
        "path": "fpm_catalog/gams-drivers/fordot-exact-reference.f90",
        "sha256": "8ec8e641b916e33c134ac251c512cbdbe1cfd8ea0cc55802c7e946233779a7d4"
      },
      {
        "path": "fpm_catalog/gams-drivers/foreig-symmetric-reference.f90",
        "sha256": "073f8e955ad21487f04218f771ef05f91f4194a366d9ac468d4ad9b6e7a92229"
      },
      {
        "path": "fpm_catalog/gams-drivers/forinv-pseudoinverse-reference.f90",
        "sha256": "88d7fa4d20e5274c9573c1593e6787ad382450d64519f916c32afda8ee3beab5"
      },
      {
        "path": "fpm_catalog/gams-drivers/forlab-least-squares-reference.f90",
        "sha256": "d89843a91625e986a957a328495171403d48d896b9f0ed95438717ffcd5f727c"
      },
      {
        "path": "fpm_catalog/gams-drivers/formal-polynomial-reference.f90",
        "sha256": "ca5834c5d31b70b1d482ab743cd6395a9868042ad6f036f489453e0e0feb920a"
      },
      {
        "path": "fpm_catalog/gams-drivers/formatmul-products-reference.f90",
        "sha256": "73c5f580d6f576149b6ee8eb726f44679f19adf5fdacc7ad2431d10665fac13a"
      },
      {
        "path": "fpm_catalog/gams-drivers/forsolver-newton-reference.f90",
        "sha256": "5a173f930d638c2a2bbf4eba9c37686718c08b4132ca5658f4f6ba6e2179e841"
      },
      {
        "path": "fpm_catalog/gams-drivers/forsvd-spectrum-reference.f90",
        "sha256": "b634c459938780386d739f0dcc23ce5476b4febdc8121a54cdee7b968751942d"
      },
      {
        "path": "fpm_catalog/gams-drivers/fortimize-gradient-reference.f90",
        "sha256": "b2d0cb88e28987916f5d5352b4aa2ce527e6bb8a2735e42b641eccdcefc64ae3"
      },
      {
        "path": "fpm_catalog/gams-drivers/fortimize-nelder-reference.f90",
        "sha256": "840a3f55c03b95db3e93c1816078dd52ae2c56fc946a537b84f59fb24276c915"
      },
      {
        "path": "fpm_catalog/gams-drivers/fortran-lapack-dense-solve.f90",
        "sha256": "1144040245497c975761d3eaa66f27d7666db19269c0674c37c09c74afd0a728"
      },
      {
        "path": "fpm_catalog/gams-drivers/fortran-lapack-least-squares.f90",
        "sha256": "17cd25d04e8664e6dde51ec8de5a2967bccce304e65e54ef7f92cb311b4df228"
      },
      {
        "path": "fpm_catalog/gams-drivers/fortran-lapack-qr-decomposition.f90",
        "sha256": "8c7fdb487ee10e22c76a7988bc6545d5b4fa313357b92b63114b9bdbd2af9341"
      },
      {
        "path": "fpm_catalog/gams-drivers/fortran-lapack-svd-decomposition.f90",
        "sha256": "6d5f5de9ce40a3da59915fa05c8a3de5a8a65b8d1b2deedcdb0213a5d372bcd9"
      },
      {
        "path": "fpm_catalog/gams-drivers/fortran-lapack-symmetric-eigen.f90",
        "sha256": "c4723998d1b2aceceaf2be848c50622ca0bcfe32489d27a0a2cdb0ee095b03b1"
      },
      {
        "path": "fpm_catalog/gams-drivers/fortran-utils-spline-reference.f90",
        "sha256": "850b2b4e3a7805516a4668cf2645c5aa9ff4acda5f69efc296285dcde55b7a9a"
      },
      {
        "path": "fpm_catalog/gams-drivers/fortranlib-quadratic-reference.f90",
        "sha256": "1a669c73c3219c76d08513c43e9b102a4d12209192b6956c24d0dd47e8ca1984"
      },
      {
        "path": "fpm_catalog/gams-drivers/fortsa-autocorrelation-reference.f90",
        "sha256": "cfa9af624220d0c5d02fe659071ca4c547f55d632facf900ed73529dc6395b63"
      },
      {
        "path": "fpm_catalog/gams-drivers/forwarddiff-analytic-reference.f90",
        "sha256": "c4ad7997dc63e925d8ac20eccb6519d100cd18728282b91075ed91332dd80b15"
      },
      {
        "path": "fpm_catalog/gams-drivers/friction-lugre-reference.f90",
        "sha256": "1dd30adb88bc2585c5d6172f83f0b55b2bff68c219854775a3714cf62101e854"
      },
      {
        "path": "fpm_catalog/gams-drivers/fsparse-matvec-reference.f90",
        "sha256": "2be06e1fa785ade5d0d6496bf56952de88ccc66d41301cec859b67c77847b156"
      },
      {
        "path": "fpm_catalog/gams-drivers/fsparse-storage-reference.f90",
        "sha256": "7d28582914f11e95766663c78b648422e155fa164eb9c45468eb20cb0312c5c8"
      },
      {
        "path": "fpm_catalog/gams-drivers/fstats-mean-checks.f90",
        "sha256": "64c573f02b4b5f4382952d54aae7f7a7f10345aeb2d8fe8e8a05b8df93159b8a"
      },
      {
        "path": "fpm_catalog/gams-drivers/fstats-sample-variance-checks.f90",
        "sha256": "b456208c66428c6123d948817f3e34317537afcf53f6493b59148dd3e002ce3a"
      },
      {
        "path": "fpm_catalog/gams-drivers/ftorch-affine-reference.f90",
        "sha256": "d3a2d7792084293edf415796d893aff0b431c26bddf59cd95e18cb3b96224509"
      },
      {
        "path": "fpm_catalog/gams-drivers/fullerton-digamma-values.f90",
        "sha256": "b89dcbec739c89eb2b72cd5db0f23c811dfb83c12205671feafd73e7e91c547c"
      },
      {
        "path": "fpm_catalog/gams-drivers/fullerton-gamma-values.f90",
        "sha256": "b94611a206dd511c5875683ef87b912fa66ff2b17b7d104ca0d0c0bce4890140"
      },
      {
        "path": "fpm_catalog/gams-drivers/function-parser-identities.f90",
        "sha256": "b4e8b41d169bbc6b490f82473e809752fa2995e833ad5ee6c67a515acc3e1e14"
      },
      {
        "path": "fpm_catalog/gams-drivers/gauss-jacobi-polynomial-moments.f90",
        "sha256": "60b4368a009690895d34a2a727a8462daa3779943b11979e2566a67c375ce4c2"
      },
      {
        "path": "fpm_catalog/gams-drivers/geodesic-reference.f90",
        "sha256": "b50c4bc9c319b433b5933db241172b26860253c86cbf614f0bc1ca191f212ec5"
      },
      {
        "path": "fpm_catalog/gams-drivers/geompack-delaunay-reference.f90",
        "sha256": "94346355ba44428cf97a2a0897a4e5b2e8fafc0e715a6847d939683b6a0d1fd4"
      },
      {
        "path": "fpm_catalog/gams-drivers/gslib-kriging-reference.f90",
        "sha256": "dc723c3e68dfbfce82348889e6e87142d5e920c318ba15ca2d5381b9f3ff9de3"
      },
      {
        "path": "fpm_catalog/gams-drivers/heatflow-bicg-reference.f90",
        "sha256": "c7b4e8d5cbc0565e8e76212d1b16e15c30de4b0d8040aeb3fe6616ad8af2dd86"
      },
      {
        "path": "fpm_catalog/gams-drivers/hrweno-advection-reference.f90",
        "sha256": "f903d1c80fc9959e17d631c7431dca8312a179281b1ea4afcd24c2e00c3b9cbc"
      },
      {
        "path": "fpm_catalog/gams-drivers/hrweno-tvd-ode-reference.f90",
        "sha256": "9f111436e18f69b78450d256e876520de1c915e758cce43c6d29b380337ec471"
      },
      {
        "path": "fpm_catalog/gams-drivers/integrate-nd-polynomial-reference.f90",
        "sha256": "fdefe5f965b003bf5f7d1688aea2f72e95165f004ace276d8d49cef33db44c67"
      },
      {
        "path": "fpm_catalog/gams-drivers/interp1-reference.f90",
        "sha256": "5240b4aa2d61a8e25d704594d3ef1e1a86283b3e17bdd561ffe15dce3f0223bc"
      },
      {
        "path": "fpm_catalog/gams-drivers/io-numeric-file-reference.f90",
        "sha256": "8f8e54da98a1554cf62345a902b8e22738c27b199086e6a2e1304ce0f8eb0a5c"
      },
      {
        "path": "fpm_catalog/gams-drivers/kdtree-neighbor-reference.f90",
        "sha256": "ffb2d3f491a4c53b2799bce1cc4c782703953936499b53499d047e423b17cc9c"
      },
      {
        "path": "fpm_catalog/gams-drivers/kiss-positive-definite-solve.f90",
        "sha256": "6180ad709fab9e0a6e4a7954b25225617dce6fa489ef17e1f28510deb7ecf9c1"
      },
      {
        "path": "fpm_catalog/gams-drivers/kissfft-f-complex-transform.f90",
        "sha256": "6998711916bd6fabbee95967e0f6706d294491a166c1f4ad7b07808f7a245e8f"
      },
      {
        "path": "fpm_catalog/gams-drivers/kronrod-moments-reference.f90",
        "sha256": "cbef46d86d0950c904f2f286d5c37a3c988324a8f0a5eac030fae0cd878056d5"
      },
      {
        "path": "fpm_catalog/gams-drivers/lbfgsb-box-quadratic.f90",
        "sha256": "b820f536f166a3dca3bbd5cfed40e5dfb51b0372dbdf64c22627e976119ba261"
      },
      {
        "path": "fpm_catalog/gams-drivers/libdogleg-bard.f90",
        "sha256": "dbceb9f1c7b6f8f43f3bc4599393acd2d68205cf68d71129e87bb0cb709f7f24"
      },
      {
        "path": "fpm_catalog/gams-drivers/libmbd-dimer-spectrum.f90",
        "sha256": "d40a12846860ffe887037250da70557f0ef5fe0822b4dcf6f6fa9b7657f005d6"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/ad_dnsvm-MIT.txt",
        "sha256": "3e1fe631e1ccb8ebfc6c554c8d4548ab0ca2f2059d890bfe7eae88fbac8cf653"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/adaptive-ad-drivers-MIT.txt",
        "sha256": "1ac93ef273a41d102015559d5959c9c6da6d556ded65ef283461f6411f430213"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/applied-methods-drivers-MIT.txt",
        "sha256": "c7e0e2420545362adbe39e73d0d7454a845e04d1719ee718df106dcee1e64314"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/arithmetic-drivers-MIT.txt",
        "sha256": "08b2e1eca64f0d092281fca56f231f8faf19fbdfe4de33206389db0af4c43d0e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/boundary-spectral-drivers-MIT.txt",
        "sha256": "ee1541aaa67c654360af8d502046892f712acd1ca9f3598b3b531203c25c282b"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/bspline-fortran-BSD.txt",
        "sha256": "2314e17f315a9850b0bb7fdc2e6f0c7850c38879f00d23eb9d70f9f22cc33c10"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/circuits-beta-drivers-MIT.txt",
        "sha256": "15db5e2233fa60787e9bca5a33db884df72d485d4125d8a26152c1d416a510f7"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/conversion-triangulation-drivers-MIT.txt",
        "sha256": "637df74fa31195e8900fa2922f42df826db6a720a65b3cc5b5a12a37f207bee9"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/dae-fft-drivers-MIT.txt",
        "sha256": "dc11b0bc6ed16824733c296013e1972c5878678c525415eabc29705f282fb5be"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/data-kinds-drivers-MIT.txt",
        "sha256": "4f7d52eacef56c326e5d54ac1cce8c23a29b9db9d5d636e720813ef9eadc2e96"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/dcuhre-ACM.txt",
        "sha256": "65fce46ccc2460a631a0617da1927b5d4b8d8ce311c07d709a857248eb766e1e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/ddeabm-BSD.txt",
        "sha256": "61c4bbaa32472cd652283619567d0b50dd09a483e61fcc5b4735c0b365cdd0f0"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/delay-embedding-drivers-MIT.txt",
        "sha256": "c55672949a2a247cd8fb4d2d3db55806bda8aab36cddbebdfd4d0c88dfced099"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/dftd4-COPYING",
        "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/dftd4-COPYING.LESSER",
        "sha256": "e3a994d82e644b03a792a930f574002658412f62407f5fee083f2555c5f23118"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/dftd4-geometry-Apache-2.0.txt",
        "sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/dftd4-geometry-NOTICE.txt",
        "sha256": "12f6f80c0aec0719d222ffc39fef861bfba8c4949fabea1618637a40050dc0b8"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/diagonal-response-drivers-MIT.txt",
        "sha256": "429b8392d2b86b5478589f0ea9fcc1183d247c268e03d60fdba9082de846be3b"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/directions-fitting-drivers-MIT.txt",
        "sha256": "fa02e7ed26602c678db5006db14a0e0bd821f7de79af4221af75e6228e7fcd9e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/dispersion-drivers-MIT.txt",
        "sha256": "d61cce25a22a813ba548b1b3bebd9da21584423fe02c8d63a2e66767e6fd5bd7"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/dop853-BSD.txt",
        "sha256": "54dba93ef0acd562b4856903652e833dc7bb3e25c7cd8f8290d876151833b1bc"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/dvode-BSD.txt",
        "sha256": "13d032a62d49df4fba60ff2cb416f3cd319a7e4824d538febf6b09b273850d50"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/expression-evaluation-drivers-MIT.txt",
        "sha256": "90412b9358f0b25ca148a06bc4885db8615d7699494636d84780cb21b196910a"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/expressions-sky-drivers-MIT.txt",
        "sha256": "f6bf60440b7d1c42a7d32bf4b4e06272c73a3dcf8c1974088ae5a421fabead15"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/fastconv-BSD-3.txt",
        "sha256": "ef8463e28f2bf3237b5dc058f5cafe463a4eef9d44344f64c65526eccf509b37"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/fftpack-MIT.txt",
        "sha256": "869f9003a4ce6a80faec8bcae8fc375187680745348c0444722f20794ee90ab4"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/finterp-BSD.txt",
        "sha256": "2f55357b92e9dc4fff91a80d3b81695f48707b51fd80cfd94a80a72f5f9133e2"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/fitpack-polynomials-drivers-MIT.txt",
        "sha256": "14e1ed4eda69713b8ee081028dda3d324bf4b8eb5de1eb75610d6e56134af26c"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/fmin-BSD-3.txt",
        "sha256": "e43c1058c2f25f3ca5e7dac011f87f1b147b67ea9693d53a4b51248fa6546e4e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/fordiff-BSD-3.txt",
        "sha256": "2bed75d5b84af240b433822f9720fd7c2eb269cbc46a721c851df9ae94513210"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/fortran-bessels-MIT.txt",
        "sha256": "20d518162b45dfe270daf7903e6c1c9eb3810a00f2db13b20f555ee8d1b0f28f"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/fortran-lapack-BSD.txt",
        "sha256": "aa26993bb8b7d7670dbd049339a4f43af84712feb5a144a440c0a8a3244c8e33"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/fortran-primes-MIT.txt",
        "sha256": "24d82c2748df46b4372220f55129e76ca5b3490c9cfadc7d760a1077aa63006d"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/fortran_cubatures-MIT.txt",
        "sha256": "0cdecb84231b00a4ddd2b74e62eccf41fb1ca32593269f135e03c68dc6c1c294"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/friction-torch-drivers-MIT.txt",
        "sha256": "fa02e7ed26602c678db5006db14a0e0bd821f7de79af4221af75e6228e7fcd9e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/fstats-MIT.txt",
        "sha256": "412dc62718c15a0d3580119230ef6375a4fb4df82867ba2a7a3bd2d8b3d763bd"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/gaussjacobiquad-MIT.txt",
        "sha256": "afad9c5ea13d08ed053f0016aa4fa3450e0e62f6067fb4642a0db9410e0bebeb"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/geodesy-forlab-drivers-MIT.txt",
        "sha256": "1846cf77e8d00e711906a868de641d11d8a6d44acd3f3721d875f6108c4909c8"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/gmres-inverse-drivers-MIT.txt",
        "sha256": "22aaa5152726708ec9eb9009590034ab3e70cd12f72172051632f8ae755f2bb9"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/gradient-swarm-drivers-MIT.txt",
        "sha256": "8a3ebe29160773a5d612a1efc053708914830b9822071ace240e6246df4c73e6"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/graph-neighbors-drivers-MIT.txt",
        "sha256": "f9fe8bffbf8e808e0faece1743a093096a39faff2273ac4fc66efe4ee0b6f761"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/helmholtz-streams-drivers-MIT.txt",
        "sha256": "fa02e7ed26602c678db5006db14a0e0bd821f7de79af4221af75e6228e7fcd9e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/higher-ad-drivers-MIT.txt",
        "sha256": "560736d34efe5f698c49070c74e37cb9415515ceb53125d2418de036fca69697"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/inference-pairs-drivers-MIT.txt",
        "sha256": "fa02e7ed26602c678db5006db14a0e0bd821f7de79af4221af75e6228e7fcd9e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/inverse-tvd-drivers-MIT.txt",
        "sha256": "c62b9a91caecb6b0b05c53c29bc6e79fccdf6916743c4ecd5907feda3afd241a"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/io-bounds-drivers-MIT.txt",
        "sha256": "28aed92e34cf872057c774b667d9c4923367c49dbf9d5bccb5aa35b1d8bf5956"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/iterative-ls-drivers-MIT.txt",
        "sha256": "7c7665a7436b614b90edc27cd9b599c31597d7844a4ae3f3b9d7eec766a99f00"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/jacobian-roots-drivers-MIT.txt",
        "sha256": "6caee543899c63bdd5e0dd47b03d384668ec1a5aa39dbb01eab3d2fcce18158d"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/jacobian-transforms-drivers-MIT.txt",
        "sha256": "81af63181e73a6d4fb55a3525a7c3c90b7fede0c2618191df2c1f11a7745508e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/kiss-BSD-3.txt",
        "sha256": "9805aa078e52a3453f253274d4c42461babe10961c4ebb8efaeb3d764a2df07e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/kissfft-f-BSD.txt",
        "sha256": "2d8d7cdfc594e057ceae4fc96dac8cf058b6a0302f45d69694f29f1b5214819d"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/kriging-network-drivers-MIT.txt",
        "sha256": "fd96d023e303f1c7a8accf8fbf622ed44ba7a2c5fe0228e1a2e33eb8cd757f75"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/lapack-spectra-drivers-MIT.txt",
        "sha256": "1517d07c319d12a0a82e23d828150e34593d44c305fdebbf877baae8b322655a"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/lbfgsb-BSD.txt",
        "sha256": "919e78c1c48cc7d179efe63075590cfb5942e6ae1da2bf373dd754fe795139b5"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/least-interpolation-drivers-MIT.txt",
        "sha256": "9a7862b83cdaf70f120e5d14fd93c63248050d1ba82b741075031e43e3e7075b"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/libdogleg-COPYING",
        "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/libdogleg-COPYING.LESSER",
        "sha256": "e3a994d82e644b03a792a930f574002658412f62407f5fee083f2555c5f23118"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/linear-algebra-api-drivers-MIT.txt",
        "sha256": "4522279264d5bad4d7d1647816c61474e712db114783c18c10c6420022cb6638"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/lookup-fastmath-drivers-MIT.txt",
        "sha256": "1079d209e4349c7aba74b8274fb9a3d366dbc7ecdb21a8d022ff0d09fdfbdf5b"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/lu-orbits-drivers-MIT.txt",
        "sha256": "b21cdf8190c01438c9a4deecdacfb3872cb7e457c7dd5f40766c0242cde0f05b"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/matrix-roots-box-drivers-MIT.txt",
        "sha256": "1cca93b8d2fbd45694627615ad89f552b0337125486c3acfc312a4852414eebf"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/mersenne-twister-fortran-BSD.txt",
        "sha256": "3d4ed32ffe15b3db694c800b4d8b316441a2e3ee424f73b8002fa266f5aebf1d"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/minpack-MIT.txt",
        "sha256": "8e51afb625ad0e8c069ed844c7c95eafe88cbecd4462971a03c3799e2de9ed18"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/minres-MIT.txt",
        "sha256": "95d047c87088b38ce568441019eff108253023b8b9049d5d9feb3851bcd543b5"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/moments-nufft2d-drivers-MIT.txt",
        "sha256": "0e3e04151e71d83e6b4121254c03226fbfe5625693698846866a98df9cbf6234"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/multidimensional-fft-drivers-MIT.txt",
        "sha256": "d9a3c21f57bf860ddcb1407ac2be7fd94fa974bac5b18a7aadfafff41086e7d6"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/neighbors-sparse-drivers-MIT.txt",
        "sha256": "ee81723d560b696930c2649ac68f1976d853898c93dfeb0d227634e427804e3b"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/nlesolver-fortran-BSD.txt",
        "sha256": "e572869c0a7d87b2e7b791b2525db5cbb7d1a0cef97f41b9cdc7594f86050775"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/nonlin-MIT.txt",
        "sha256": "1ff646226938bbe175d31336f63e96591cfec770f63e19776552e09621b3b8fb"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/numdiff-BSD-3.txt",
        "sha256": "5e2556b2612a7a164f129357a17819aa9fd7d09653a2497406278890a28306a2"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/odepack-Public-Domain.txt",
        "sha256": "77997f5f91ed2f116926ce6d583ee5a3b7b6458ee95e5361e31366f3987e6956"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/odrpack95-MIT.txt",
        "sha256": "a2695d7ea94c5e0f219176883214f6e55bc7d6afcbe3b1904ce8a1da747333af"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/optimization-api-drivers-MIT.txt",
        "sha256": "2e21c78d3b9db03c1b48676f8365066bb8b3720c6083214c6a2a395c4d8029bc"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/optimization-spacing-drivers-MIT.txt",
        "sha256": "0fe683cc5130595fbafa44846946aa59f9f405fb4236fbc8bced8a6ed9ddb6a3"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/pchip-BSD.txt",
        "sha256": "ef66e6debb7a3895d86686c2097eb8aa5e9733561426cb560b4a12b740b4fb63"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/pde-drivers-MIT.txt",
        "sha256": "b30bb37db39965bd1c6d05eaea8e45207cbd7b04a4c6db3acb0b79a126b6345d"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/periodic-calculus-drivers-MIT.txt",
        "sha256": "6ab4754bd73e3fda6925870b43323911467ae50826d64e57397a9267f8971fc7"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/polyroots-fortran-notices.txt",
        "sha256": "165e635123d349279b10c7e1e23648fe5e9f893bba23cbca97f9ce47f3e6e74d"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/products-partitions-drivers-MIT.txt",
        "sha256": "57ba18f4e74e4e50f7b59028e82a2f51458f1b1a132fe81671782fc79404280c"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/products-status-drivers-MIT.txt",
        "sha256": "cf5865dcffc296d411acabe0d01b1a67169d4aa804df38582c0236e46d748133"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/projection-lbfgs-drivers-MIT.txt",
        "sha256": "a0de23fee5f23a4f8f7208b7fa297132df0170352ae3d90dec10e292543ac2c0"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/projection-training-drivers-MIT.txt",
        "sha256": "fa02e7ed26602c678db5006db14a0e0bd821f7de79af4221af75e6228e7fcd9e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/propack-fmm-drivers-MIT.txt",
        "sha256": "cc7b756ce8bf5a9b694860bf409c8fe9f10f9e95a19ac6bd3b67ff0fa1a29776"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/qdldl-fortran-Apache-2.0.txt",
        "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/qr-autodiff-drivers-MIT.txt",
        "sha256": "b49e4bf629baa003465fac2f94dfe7c08e9736fbbd14fd849e17201a1bc828d5"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/quadpack-BSD.txt",
        "sha256": "f38966793afb5b11d5cc07398324bf866fff4fb88bb41c26c5b1f896b7a69be9"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/quadrature-fortran-BSD.txt",
        "sha256": "d3f3442e3b84998b9b4bdbb8427fe67043bc3b7a5a377e871a59676e82fec63f"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/quantities-spherical-drivers-MIT.txt",
        "sha256": "8edc0e35f60858ddd7c7eb533595f424fc30214c6d8cf6cc6bd658cf1a8d535d"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/radial-dense-drivers-MIT.txt",
        "sha256": "fa02e7ed26602c678db5006db14a0e0bd821f7de79af4221af75e6228e7fcd9e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/random-references-drivers-MIT.txt",
        "sha256": "fa02e7ed26602c678db5006db14a0e0bd821f7de79af4221af75e6228e7fcd9e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/ranking-magic-drivers-MIT.txt",
        "sha256": "e6ce4e6174f8750270b6eeffe12651284c06e5c09ee993afc4eb7f1d29ec028f"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/raster-distributions-drivers-MIT.txt",
        "sha256": "1c639a0a5999c0886534bf69877787ffc49138fd12450f378717671f40864f42"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/regrid-rk45-drivers-MIT.txt",
        "sha256": "ba42f2bfff2118f947182e0041f130ef61719a7abb46db0bee3475a595f790c6"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/resampling-markov-drivers-MIT.txt",
        "sha256": "f0a88e3a0b0f8bfb3bed4c3dc0ca6f3729724c3107ca3662a87154777fe84205"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/rkf-qags-drivers-MIT.txt",
        "sha256": "371c47d63248ce03893e4ef4d312b23b40b0cbfadea06d27d6b1196851e3b54d"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/rklib-BSD.txt",
        "sha256": "d60b03fb8a7faa997d48d0c83f239e2de038d3f72c1482a27c6a4a16ff8a00f7"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/rngff-MIT.txt",
        "sha256": "96406228df2e12d53ba934c68ba391734f67b36e04d328b9c99a8e10f7489c28"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/roots-splines-quadrature-drivers-MIT.txt",
        "sha256": "9f68077195a3cf197a86335dd377e246509162d1308d9e43220519fc344667c0"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/rpn-calculator-MIT.txt",
        "sha256": "0c895f0f6b58a6e850debd281c4be7c09cde9da5093cfe256cae7ed28351f0c6"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/rules-differences-drivers-MIT.txt",
        "sha256": "c212a55e9591d3f3ab06e4de0baabb86de561f368220be022132bec78a36e02d"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/slicot-BSD.txt",
        "sha256": "25d73ad49146dbf1ede7e31ca53cbcda4ffc8788fa23295b9495a718c0910a56"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/slsqp-BSD.txt",
        "sha256": "ec67e3b03b5f2b786bd4719327e948fe2842fca32b3907376ae97e432ba781ea"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/sparse-advection-drivers-MIT.txt",
        "sha256": "16d7b633c4983063f807e9c459ffb626b1bd205905ca4d04b97b44f1f9b90212"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/sparse-integral-drivers-MIT.txt",
        "sha256": "4e27537da4d65498bcdbe2604420a6c8fa90f23de4f4484c5615f58b16eea43d"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/sparse-spectra-drivers-MIT.txt",
        "sha256": "d30c56d2243d04f0764475b949275a499489a9e60eba9c2589d346e6cf4e376c"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/spatial-nufft-drivers-MIT.txt",
        "sha256": "103a157f5a00619d6932cdc1ef3dc9c334cf9b9672410f0f229620c54d917505"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/specfunc-fullerton-MIT.txt",
        "sha256": "bbd9d505e2e9500b52c7556c80f05f58aab83edc7461766a17f489a3b44c9d5a"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/special-function-drivers-MIT.txt",
        "sha256": "70a9ab4024ba1383fd2982bb19b7472d890f8112507462204d861a0b53a98684"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/spectral-wrappers-drivers-MIT.txt",
        "sha256": "cee980926521893df286d0df45401a369f21ed8ec6d1bf595d0fe1b64b3ee3f1"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/spectrum-MIT.txt",
        "sha256": "1bf39c65ec480dfe78d849c8e2729868caa0d78e33506ef1115e04039f66b886"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/stdlib-MIT.txt",
        "sha256": "d04c7ac7af8eb6b9d57f57765560dddc779a7e0f01c96fae178e7a35988b0a68"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/stiff3-Apache-2.0.txt",
        "sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/storage-fourier-geometry-drivers-MIT.txt",
        "sha256": "78ffb4bbfe4e1a7e7817d596b49fee21a21e44466366529d7c968633e7c4b793"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/tangents-blocks-drivers-MIT.txt",
        "sha256": "fa02e7ed26602c678db5006db14a0e0bd821f7de79af4221af75e6228e7fcd9e"
      },
      {
        "path": "fpm_catalog/gams-drivers/licenses/unsigned-bitsets-drivers-MIT.txt",
        "sha256": "93195b3d4537cd8a8e32a1b4835181d8b8ee39fd75d4b2bac2d5b20878938b4b"
      },
      {
        "path": "fpm_catalog/gams-drivers/lightkrylov-gmres-reference.f90",
        "sha256": "a8c400e4580ebe98605cadd6a6f205036313ffc887bb5702e07c51f68ec04e8f"
      },
      {
        "path": "fpm_catalog/gams-drivers/linalg-eigen-reference.f90",
        "sha256": "f8acbb7f5bc6a344fcae37a23f51b53245e0f01a80cd49be13acf4e7e322823b"
      },
      {
        "path": "fpm_catalog/gams-drivers/linalg-inverse-factor-reference.f90",
        "sha256": "1898243323e9784a558721db571b1295d04a088e11a0805142465fd6ddbf7c4b"
      },
      {
        "path": "fpm_catalog/gams-drivers/linalg-least-squares-reference.f90",
        "sha256": "efacdea1e5a4a944df0e4849980c3a7c83a14cf0deb7ca745f854d981c523b78"
      },
      {
        "path": "fpm_catalog/gams-drivers/linalg-lu-reference.f90",
        "sha256": "32970067e47734c5d5c5351d17df165024fc8fa0091b162cf417a79879ca43d5"
      },
      {
        "path": "fpm_catalog/gams-drivers/linalg-poisson-eigenpairs.f90",
        "sha256": "ab2054367507fcec301b82e24c89802c56937e4a8da06c9cfbab7f6b3acfcd70"
      },
      {
        "path": "fpm_catalog/gams-drivers/linalg-qr-reference.f90",
        "sha256": "b0944f22ccd34f7989a33228fa152907eb5faeccbb5291013aa235b0776985b9"
      },
      {
        "path": "fpm_catalog/gams-drivers/linalg-svd-reference.f90",
        "sha256": "7ffcaecbdbe00a14f037fedb031383d8d9676e4b742f9780e42e580b558792ec"
      },
      {
        "path": "fpm_catalog/gams-drivers/logistic-grouped-binomial-reference.f90",
        "sha256": "2987c63d39ed82cccf64c86052540a11a97e260fff1e0ab056ee94f4201314fb"
      },
      {
        "path": "fpm_catalog/gams-drivers/lookup-services-reference.f90",
        "sha256": "3efb8efdae135e1124d815932a67194ad6b18dd918ed8beda0ee7adf65f9b7bc"
      },
      {
        "path": "fpm_catalog/gams-drivers/lsmr-least-squares-reference.f90",
        "sha256": "0317b3d73d61b48bb71a507a993e6b2e7a3a9aff05e87e25104363ff56e3f9a9"
      },
      {
        "path": "fpm_catalog/gams-drivers/lsoda-stiff-two-scale.f90",
        "sha256": "f657052e3e9a6dac1c4656d611a31a699532393adcdf91091b8d7c46810cfbf0"
      },
      {
        "path": "fpm_catalog/gams-drivers/lsqr-least-squares-reference.f90",
        "sha256": "b063effd84c846e34e7bc5cd4e9286cada4d3c8146aaba120c7725c849075ee7"
      },
      {
        "path": "fpm_catalog/gams-drivers/lua-numeric-embedding-reference.f90",
        "sha256": "b278af0ed0cd3d0dccbe8c4de9dcd95b3c26326ce0f0e880525e9071f4e968b8"
      },
      {
        "path": "fpm_catalog/gams-drivers/lusol-update-reference.f90",
        "sha256": "5dcce6806beec0f190d5d3c30ef045ccf5d068abf3e9a5b2b17320fccfb6ba6e"
      },
      {
        "path": "fpm_catalog/gams-drivers/m-calculator-identities.f90",
        "sha256": "391341b6f1d74186494cc6cc0471b25b0546801af28f479abc2507a52e3061ee"
      },
      {
        "path": "fpm_catalog/gams-drivers/m-la-magic-reference.f90",
        "sha256": "529eb94e23771046f62dcdaa3ad1650fb083735bd0a6616cffee5fbb63eab8c9"
      },
      {
        "path": "fpm_catalog/gams-drivers/maptran-wgs84-reference.f90",
        "sha256": "2ca4a7d3f648ce98ad737a0ab461f156f99a15e2b0ce5478ceb439ffb95e9fd3"
      },
      {
        "path": "fpm_catalog/gams-drivers/metis-kway-reference.f90",
        "sha256": "cb45978a6306bc80b382fd9a79bac5968d40535b8803e71b7662a3d5a10fe9ea"
      },
      {
        "path": "fpm_catalog/gams-drivers/minpack-bard.f90",
        "sha256": "c6f1186aecfc4bb554805846fd8283db924295e0de32ad251dc707636a9e9edd"
      },
      {
        "path": "fpm_catalog/gams-drivers/minpack-lmder-reference.f90",
        "sha256": "f95459b21899c4dcd7da667b693552d63e2cf44336723611460a2bbbd7db4678"
      },
      {
        "path": "fpm_catalog/gams-drivers/minpack-rosenbrock-system.f90",
        "sha256": "05ce7786f2485ba903e122da97cdb437bc2100ff6b48779a191e40f176e43d3d"
      },
      {
        "path": "fpm_catalog/gams-drivers/minres-indefinite-solve.f90",
        "sha256": "ae70896cffefc5fbb1b5c3c1fc53b2daedc2d0644868505061424c9acba015a3"
      },
      {
        "path": "fpm_catalog/gams-drivers/mpfun-complex-addition.f90",
        "sha256": "36bb89bf458c0bdb5060b4cea836ac92c9e3bb12f0837460eb0b04101222e654"
      },
      {
        "path": "fpm_catalog/gams-drivers/mpfun-real-addition.f90",
        "sha256": "62e3b826654ae438526bf12f7bd824ef3ad0974e12ecd6870434bcdb803b445d"
      },
      {
        "path": "fpm_catalog/gams-drivers/mt19937-64-reference-sequence.f90",
        "sha256": "547d4f39a88c8138e8bb4dc05a3a68f86e74c0fecb9b2dc4f58916bbf0c9a422"
      },
      {
        "path": "fpm_catalog/gams-drivers/nafpack-fft-reference.f90",
        "sha256": "b9efffb25faff3a169c6e6827fb7d5d718827c926a0bcfeb6be91a3f8ce92129"
      },
      {
        "path": "fpm_catalog/gams-drivers/neural-affine-reference.f90",
        "sha256": "bce7b3b1cbbbde891c6985bdb7b600e06dd3159c31f5a8f3b653216bb6165d5e"
      },
      {
        "path": "fpm_catalog/gams-drivers/nlesolver-rosenbrock-system.f90",
        "sha256": "6c867e1eee2bbd660cede6ffdadabe78055aff8336e2342aa3033c71e4b6f9d4"
      },
      {
        "path": "fpm_catalog/gams-drivers/nlopt-box-quadratic.f90",
        "sha256": "a7aaf2849615e2aca2407a921b0d4cdf8e9f37943a1e039caa903571c81ac13d"
      },
      {
        "path": "fpm_catalog/gams-drivers/nlopt-rosenbrock-lbfgs.f90",
        "sha256": "efd6db5b8f48483834b39d525d56c20013fe912771b591279ec672322a1687c6"
      },
      {
        "path": "fpm_catalog/gams-drivers/nonlin-lsq-jacobian-reference.f90",
        "sha256": "a67f3fc4d0dad5137b3647e6956bda722db6f201cb38a0aee0c0ecf7d0af5653"
      },
      {
        "path": "fpm_catalog/gams-drivers/nonlin-roots-brent.f90",
        "sha256": "367d3685eecf03625815d1151a53f86eabde4b57387ce4b41787193222660293"
      },
      {
        "path": "fpm_catalog/gams-drivers/nonlin-roots-newton.f90",
        "sha256": "4d0382bd47bb8632566d3b0ec5d295713aeffed65a225750d605a89afb4c56de"
      },
      {
        "path": "fpm_catalog/gams-drivers/nonlin-rosenbrock-bfgs.f90",
        "sha256": "966fd1bef529c83d609bb38a83e0e607b64f13486f346c3cf690e9eb05155f73"
      },
      {
        "path": "fpm_catalog/gams-drivers/nonlin-rosenbrock-nm.f90",
        "sha256": "c4154aff915fe20ca3c9714a0b52b7bf2197ec656fe80657089a5a06a38e27f9"
      },
      {
        "path": "fpm_catalog/gams-drivers/nonlin-rosenbrock-system.f90",
        "sha256": "f971f1a1029b637de4ff7d256629cd7bc8c169b35dfc56165961093d409d6b25"
      },
      {
        "path": "fpm_catalog/gams-drivers/ntpoly-inverse-reference.f90",
        "sha256": "4019824af6d929b32d2337cc893bc23d6079a5417d481d9f934f808d5a0b7261"
      },
      {
        "path": "fpm_catalog/gams-drivers/ntpoly-matrix-root-reference.f90",
        "sha256": "0e325c40d28d027d24ac60447ddc68a58b02b98d90f4d72084bf90cc5d07de1a"
      },
      {
        "path": "fpm_catalog/gams-drivers/nufft1d-sum-reference.f90",
        "sha256": "d57e181994b730c019f3158c79ad6ea6693c33a9340c7ef53a96c1de8ca2e126"
      },
      {
        "path": "fpm_catalog/gams-drivers/nufft2d-direct-reference.f90",
        "sha256": "e85a60584808b1be659e91f53e4908c21fc7480c6f447446321dd1875fa9e31f"
      },
      {
        "path": "fpm_catalog/gams-drivers/numdiff-analytic-derivatives.f90",
        "sha256": "034ea5cc8b2e8b717e220ca1ef9e6178aa2205c87dc7927b12b0be7ca619ab2f"
      },
      {
        "path": "fpm_catalog/gams-drivers/odrpack-line-total-least-squares.f90",
        "sha256": "deb8a06f02a726fa5b3336dc8417b806a33dc9531376789fc6525612d33157dd"
      },
      {
        "path": "fpm_catalog/gams-drivers/optgra-halfspace-reference.f90",
        "sha256": "f3e3e57bc53ab507bda197468763db6c73caa1288661b5dfde47faceb4f2747b"
      },
      {
        "path": "fpm_catalog/gams-drivers/opti-rastrigin-reference.f90",
        "sha256": "7cd531f70e50768d9ff5257dfff801c9846b62df87a86221fc35dcf22b9346f4"
      },
      {
        "path": "fpm_catalog/gams-drivers/orbs-bitwise-reference.f90",
        "sha256": "249c820ee7139c29d3e84e0c26b5eee16c56973af6f38adf3c02452c9771ba08"
      },
      {
        "path": "fpm_catalog/gams-drivers/orderpack-ranking-reference.f90",
        "sha256": "0251fd897cb3498b8d5e3f211540ab94ba7a3f92960c25a6530607628659a467"
      },
      {
        "path": "fpm_catalog/gams-drivers/pchip-shape-interpolation.f90",
        "sha256": "f8ad30c3f8f16ad5f03a88a5987c625433d9cecb61ee141228ae401e5989265c"
      },
      {
        "path": "fpm_catalog/gams-drivers/penf-machine-reference.f90",
        "sha256": "a768033c8cd5780fca7d0b38313b8b456a554d8bfb702ff9a2c389146ef2276e"
      },
      {
        "path": "fpm_catalog/gams-drivers/pikaia-rastrigin-reference.f90",
        "sha256": "0381b217d0509f39c7be2d2de29eaa14976ccf226a2b9ef7518addff192abd5d"
      },
      {
        "path": "fpm_catalog/gams-drivers/pointsets-random-reference.f90",
        "sha256": "214740b88a044daba55f15eef8310a704d0fea7f8ebd6c53a7861d8767b0bd39"
      },
      {
        "path": "fpm_catalog/gams-drivers/pointsets-spacing-reference.f90",
        "sha256": "d13407667d21a9e8d51d0af9c4f015a04710e0810547011a8f39eda225323a1f"
      },
      {
        "path": "fpm_catalog/gams-drivers/poisfft-periodic-reference.f90",
        "sha256": "e1e09b1b25817916e8de2fb4b237aab2d36a8e87ac4171d1f655808ea62615f7"
      },
      {
        "path": "fpm_catalog/gams-drivers/polyroots-real-reference.f90",
        "sha256": "20a78d4939a1cd687adf35294adc33608b3643508ca6cb23540159046f24ac5c"
      },
      {
        "path": "fpm_catalog/gams-drivers/primes-trial-division.f90",
        "sha256": "6fe92ad700f925464bf27635a13bed119df9f465128ea391fd4a928d86026402"
      },
      {
        "path": "fpm_catalog/gams-drivers/propack-spectrum-reference.f90",
        "sha256": "20e53beb094799f7911d5f981c796da75d1cb6fd7a5ae31c3c75b0a997448f1e"
      },
      {
        "path": "fpm_catalog/gams-drivers/psqp-projection-reference.f90",
        "sha256": "24521608d637d34ec0e50f927a19a3883d44596743c51d316bfd512dda3fe90b"
      },
      {
        "path": "fpm_catalog/gams-drivers/qdldl-quasidefinite-solve.f90",
        "sha256": "05802aaffa015fe1bfe12207c82ed5e9be092d41c8e7806835e13e0b7c517597"
      },
      {
        "path": "fpm_catalog/gams-drivers/qdutillib-moments-reference.f90",
        "sha256": "d508a6c68f41247f9db8448ad83adb18d3e8cb5cdb95814046c3f8275a2f701d"
      },
      {
        "path": "fpm_catalog/gams-drivers/qnstop-box-reference.f90",
        "sha256": "13e32a0d4e2740fcaafda1c8acdebe2cbb0f9fe5791bc62400157e48a2ff5be8"
      },
      {
        "path": "fpm_catalog/gams-drivers/quadpack-endpoint-singular.f90",
        "sha256": "77ee0f1fe1c5677801a5eddf9a339f977b23f368da4069f29febeead8a091418"
      },
      {
        "path": "fpm_catalog/gams-drivers/quadpack-smooth.f90",
        "sha256": "15371135b8aa9fb2f5f3cca0f241045362934072a13c904135f96c218e85707a"
      },
      {
        "path": "fpm_catalog/gams-drivers/quadrature-fortran-smooth.f90",
        "sha256": "26222f7e0a0919d5eedff719e1fb2eefd72fddb126cd6017ec950ab20475acc2"
      },
      {
        "path": "fpm_catalog/gams-drivers/quaff-quantity-reference.f90",
        "sha256": "e824454fd62ff3b4f24e37bb9f49ffb4f777fbd9503769813d7dc7e85d0fe3b1"
      },
      {
        "path": "fpm_catalog/gams-drivers/raffle-orthogonal-reference.f90",
        "sha256": "95bba07004b112802c9d8f53ad7b080a1a34037c842b6f83eca90b6edafa7808"
      },
      {
        "path": "fpm_catalog/gams-drivers/rational-addition-reference.f90",
        "sha256": "449b1522c6f7de7d1558e6766420875a7db82da7046a3bd0544240bfc15b1e61"
      },
      {
        "path": "fpm_catalog/gams-drivers/regridpack-polynomial-reference.f90",
        "sha256": "ea1c58fa61f61d3a10b1c40e36266cb14e94daa23f275a1c62e03decdd4e102d"
      },
      {
        "path": "fpm_catalog/gams-drivers/rkf45-analytic-reference.f90",
        "sha256": "cec25165d09b7b2a0dd644cb97f3bf6e40946c5302ca5a6323c3684043d677e3"
      },
      {
        "path": "fpm_catalog/gams-drivers/rklib-decay-oscillator.f90",
        "sha256": "4aeea5b5f37cb66ed15bec19ef495dc28dff21981f36dfe68ec56610c4267ee2"
      },
      {
        "path": "fpm_catalog/gams-drivers/rndgen-kiss-reference.f90",
        "sha256": "4f8d39a7479abbd67bf3bd6b1bc9316acf7f9a7dbd960b5e4c088a8481bdda8d"
      },
      {
        "path": "fpm_catalog/gams-drivers/rng-distributions-reference.f90",
        "sha256": "42b046a4213072293126da5492a666bf2431b318b9686e4915c70df78475c8b5"
      },
      {
        "path": "fpm_catalog/gams-drivers/rng-xoroshiro-reference.f90",
        "sha256": "6bd90b4a24845eb016e2e6b7df2e1050deec5302b991566e73b12c3ebe600f78"
      },
      {
        "path": "fpm_catalog/gams-drivers/rngff-lcg-reference-sequence.f90",
        "sha256": "96bdcac835919af24f8b53dfe50fb0156c9396e2a74e379483444246b448440f"
      },
      {
        "path": "fpm_catalog/gams-drivers/roots-fortran-brent.f90",
        "sha256": "b91fe6deab1214fd12ff35669bccd2a31ae10d68d4fc3492bf4f5c67780e3c70"
      },
      {
        "path": "fpm_catalog/gams-drivers/rpn-beta-reference.f90",
        "sha256": "e2dd09257e477c5ccdc6dcb0ed39b629a84edada48021fe5c83cd17bc8aa6e71"
      },
      {
        "path": "fpm_catalog/gams-drivers/rpn-gcd-lcm-reference.f90",
        "sha256": "e43f7a1ae954c05c663287e3d23b2130b5ecca864ff1ca56b09b8723dce471b1"
      },
      {
        "path": "fpm_catalog/gams-drivers/rpn-sinc-sech-reference.f90",
        "sha256": "154fe627deaf053b15cf70bf11edd50a65b1b45264c4d38e4b546233016ae26e"
      },
      {
        "path": "fpm_catalog/gams-drivers/rpoly-real-reference.f90",
        "sha256": "620ec33c70b56820836a62e8f79a8f57d02a0def8a3cea50214820be24a13598"
      },
      {
        "path": "fpm_catalog/gams-drivers/ryu-binary64-roundtrip.f90",
        "sha256": "b870dab2fb47fde8b0fbda8707341639725097a016de6f38606673b6d6b0bfe4"
      },
      {
        "path": "fpm_catalog/gams-drivers/scalapackfx-eigen-reference.f90",
        "sha256": "a9d35e189a74b05e88a1e7846b606da1527220fd142cc1fbd70754d5b5fa4067"
      },
      {
        "path": "fpm_catalog/gams-drivers/scifortran-quadrature-reference.f90",
        "sha256": "f6035fb5c27ab18c48caf0331ae323f9355916e1463744cd3dce908907faec17"
      },
      {
        "path": "fpm_catalog/gams-drivers/sdl-raster-reference.f90",
        "sha256": "3682cf928fc01cb22c6353fe3fef2ca599af60194a27222a7810bef00d2cf269"
      },
      {
        "path": "fpm_catalog/gams-drivers/seiscope-lbfgs-reference.f90",
        "sha256": "f2f70985d796ac488ba862c572ecb771fde0ef989b3202072240c613b456b17d"
      },
      {
        "path": "fpm_catalog/gams-drivers/slicot-continuous-sylvester.f90",
        "sha256": "9b7742cf9940686f2659f7e07a42708cec96b51a3f352b74bba039a7311c3d96"
      },
      {
        "path": "fpm_catalog/gams-drivers/slicot-discrete-sylvester.f90",
        "sha256": "0722b38990831937608a5f0d0077c6e2c19af4a6d537a7f7ee80e4e4652273c9"
      },
      {
        "path": "fpm_catalog/gams-drivers/slicot-lyapunov-known-matrix.f90",
        "sha256": "23a224cba224c64d3ca5be7e94fd26dc98f80b5c142798c455ddf514a253ade4"
      },
      {
        "path": "fpm_catalog/gams-drivers/slsqp-circle-equality.f90",
        "sha256": "069d9025eaa2652a75aa0a8b40ab8ae81d24ccb2140f32f1901da9afa6808b2e"
      },
      {
        "path": "fpm_catalog/gams-drivers/sparse-matvec-reference.f90",
        "sha256": "065fabc0f308fe60f2523d0660381c8c2d04e9f2f485ce95838e08601a3d02a9"
      },
      {
        "path": "fpm_catalog/gams-drivers/specialmatrices-diagonal-reference.f90",
        "sha256": "06aa28d1c6234a27f70fa4542a5d7a88919bf15646627ac002150fa9adea4f7e"
      },
      {
        "path": "fpm_catalog/gams-drivers/spectrum-convolution-reference.f90",
        "sha256": "885005e2f72f4c1c92a9fe8d22e5e6ef4c1881ffc025bb7c8bed5139c7d7c5d8"
      },
      {
        "path": "fpm_catalog/gams-drivers/spectrum-real-dft-reference.f90",
        "sha256": "ef143f3c2208c04e3a23a6ef499dc297c47b7cf48bc9d80d6f206fcb2369a250"
      },
      {
        "path": "fpm_catalog/gams-drivers/spherepack-helmholtz-reference.f90",
        "sha256": "93e7357ed3a4ad1a3b9930fe3b54fb60beff151481c316049dad2add1d4edcee"
      },
      {
        "path": "fpm_catalog/gams-drivers/spherepack-zonal-reference.f90",
        "sha256": "e18abc4c6d5c800e18270a398d0101795bbc2bcc558f888ffcbaf979a12dc099"
      },
      {
        "path": "fpm_catalog/gams-drivers/splpak-paired-noise-fit.f90",
        "sha256": "ac443f89c72d2047c68670c8e91e68f21aeb3746a134c8911e0ee03ad59baf74"
      },
      {
        "path": "fpm_catalog/gams-drivers/stdlib-dense-solve.f90",
        "sha256": "1d5e971d1f0f5784027197d105c88a71b1ad6fd647f7c78ee588b86878d52dc2"
      },
      {
        "path": "fpm_catalog/gams-drivers/stdlib-least-squares.f90",
        "sha256": "f7e5ba57da0f2b3c60efbe99f9aaca89cadff46e933a24be07ed7381d8ec3337"
      },
      {
        "path": "fpm_catalog/gams-drivers/stdlib-mean-checks.f90",
        "sha256": "5d729fea4dcca65d9a07c807e875013414c2f2e0ec3f2c679a8c4de5c2849bc7"
      },
      {
        "path": "fpm_catalog/gams-drivers/stdlib-sample-variance-checks.f90",
        "sha256": "cfbdb8a3cd4dca5ce849aeb85aee98e086cdf714129b86a778ff1ad5a90e1c71"
      },
      {
        "path": "fpm_catalog/gams-drivers/stdlib-seed-replay.f90",
        "sha256": "6f6a50952ac8c8cb07fac6e7027fbd82e378eb23b3581a4647210855c206074a"
      },
      {
        "path": "fpm_catalog/gams-drivers/stdlib-sorting-reference.f90",
        "sha256": "b37c1f2b31679a6a063b941fe9db8ba017ce7059738204acad3034969c5c93fa"
      },
      {
        "path": "fpm_catalog/gams-drivers/stiff3-stiff-two-scale.f90",
        "sha256": "fa22fb2979b7d00b2dc1dc6ef1f02b53de5b38c153bd8b90e587b84b20f552a2"
      },
      {
        "path": "fpm_catalog/gams-drivers/str2real-decimal-reference.f90",
        "sha256": "61d79589b563ac302322a3fc11257a6a8e18b9faf3c2b37a3aef4d3dd8cacde7"
      },
      {
        "path": "fpm_catalog/gams-drivers/strith-integer-reference.f90",
        "sha256": "3d1e49ce5a84cf11ff13402c6ae3e085625ed6eda244e131d62bef6d767c01ad"
      },
      {
        "path": "fpm_catalog/gams-drivers/tsunami-differences-reference.f90",
        "sha256": "c975344458cad31c65114123ffc016d8896d493e12cd81c913b21037470641c9"
      },
      {
        "path": "fpm_catalog/gams-drivers/uint-arithmetic-reference.f90",
        "sha256": "a23b605e586953d00034781cbb53b11433a549b3cd16e9ab10754449bac03d76"
      },
      {
        "path": "fpm_catalog/gams-drivers/y12m-sparse-reference.f90",
        "sha256": "e31121a2c783aacb0b17ae2227ec20c54fa194b496f14189446f70d4817f9e0b"
      },
      {
        "path": "fpm_catalog/gams-numerical-review.json",
        "sha256": "6f2e080980f5ae4b86bc32a7022b992e7c2b89d3e94bf592a85c2da2a4c8988b"
      },
      {
        "path": "fpm_catalog/gams.json",
        "sha256": "9a689b2d221f792a505ea72357d22579adaccf6c7b27039958eba6152c1ed4bf"
      },
      {
        "path": "fpm_catalog/name-attributions.json",
        "sha256": "9502208d3bccab0cbc32afacea67c83e0dc518837fdeb2c067225cc784d69d7a"
      },
      {
        "path": "fpm_catalog/owners.json",
        "sha256": "4d6da949354c7c090f5406bac534ec959754b61897a4ac196702dde8901845ed"
      },
      {
        "path": "fpm_catalog/playground-topics.json",
        "sha256": "51f6e6847642281b91348c445e7cf5e6c3bb08b4b89023dac6cf1a5c3c05f5eb"
      },
      {
        "path": "fpm_catalog/topics.json",
        "sha256": "6c51ca5d8330c805fee8d8bedec812138aba3816a2c2ee108163626492fabfc8"
      },
      {
        "path": "xpackage_gams.py",
        "sha256": "610b9ed4957a2cfc262dc012212cb9803fb241b0272c626bd04b46144f17c70c"
      },
      {
        "path": "xpackage_topics.py",
        "sha256": "5edd76005acd1b202f77a47547b73e784a0d79861d3e3190a5785fadecbc9d10"
      }
    ]
  },
  "taxonomies": {
    "gams": {
      "source": "https://gams.nist.gov/cgi-bin/serve.cgi",
      "retrieved_on": "2026-10-28",
      "classes": {
        "A": {
          "label": "Arithmetic, error analysis",
          "parent": null
        },
        "B": {
          "label": "Number theory",
          "parent": null
        },
        "C": {
          "label": "Elementary and special functions",
          "parent": null
        },
        "D": {
          "label": "Linear Algebra",
          "parent": null
        },
        "E": {
          "label": "Interpolation",
          "parent": null
        },
        "F": {
          "label": "Solution of nonlinear equations",
          "parent": null
        },
        "G": {
          "label": "Optimization",
          "parent": null
        },
        "H": {
          "label": "Differentiation, integration",
          "parent": null
        },
        "I": {
          "label": "Differential and integral equations",
          "parent": null
        },
        "J": {
          "label": "Integral transforms",
          "parent": null
        },
        "K": {
          "label": "Approximation",
          "parent": null
        },
        "L": {
          "label": "Statistics, probability",
          "parent": null
        },
        "M": {
          "label": "Simulation, stochastic modeling",
          "parent": null
        },
        "N": {
          "label": "Data handling",
          "parent": null
        },
        "O": {
          "label": "Symbolic computation",
          "parent": null
        },
        "P": {
          "label": "Computational geometry",
          "parent": null
        },
        "Q": {
          "label": "Graphics",
          "parent": null
        },
        "R": {
          "label": "Service routines",
          "parent": null
        },
        "S": {
          "label": "Software development tools",
          "parent": null
        },
        "Z": {
          "label": "Other",
          "parent": null
        },
        "A1": {
          "label": "Integer",
          "parent": "A"
        },
        "A2": {
          "label": "Rational",
          "parent": "A"
        },
        "A3": {
          "label": "Real",
          "parent": "A"
        },
        "A4": {
          "label": "Complex",
          "parent": "A"
        },
        "A5": {
          "label": "Interval",
          "parent": "A"
        },
        "A6": {
          "label": "Change of representation",
          "parent": "A"
        },
        "A7": {
          "label": "Sequences (e.g., convergence acceleration)",
          "parent": "A"
        },
        "C1": {
          "label": "Integer-valued functions (e.g., factorial, binomial coefficient, permutations, combinations, floor, ceiling)",
          "parent": "C"
        },
        "C2": {
          "label": "Powers, roots, reciprocals",
          "parent": "C"
        },
        "C3": {
          "label": "Polynomials",
          "parent": "C"
        },
        "C4": {
          "label": "Elementary transcendental functions",
          "parent": "C"
        },
        "C5": {
          "label": "Exponential and logarithmic integrals",
          "parent": "C"
        },
        "C6": {
          "label": "Cosine and sine integrals",
          "parent": "C"
        },
        "C7": {
          "label": "Gamma",
          "parent": "C"
        },
        "C8": {
          "label": "Error functions",
          "parent": "C"
        },
        "C9": {
          "label": "Legendre functions",
          "parent": "C"
        },
        "C10": {
          "label": "Bessel functions",
          "parent": "C"
        },
        "C11": {
          "label": "Confluent hypergeometric functions",
          "parent": "C"
        },
        "C12": {
          "label": "Coulomb wave functions",
          "parent": "C"
        },
        "C13": {
          "label": "Jacobian elliptic functions, theta functions",
          "parent": "C"
        },
        "C14": {
          "label": "Elliptic integrals",
          "parent": "C"
        },
        "C15": {
          "label": "Weierstrass elliptic functions",
          "parent": "C"
        },
        "C16": {
          "label": "Parabolic cylinder functions",
          "parent": "C"
        },
        "C17": {
          "label": "Mathieu functions",
          "parent": "C"
        },
        "C18": {
          "label": "Spheroidal wave functions",
          "parent": "C"
        },
        "C19": {
          "label": "Other special functions",
          "parent": "C"
        },
        "D1": {
          "label": "Elementary vector and matrix operations",
          "parent": "D"
        },
        "D2": {
          "label": "Solution of systems of linear equations (including inversion, LU and related decompositions)",
          "parent": "D"
        },
        "D3": {
          "label": "Determinants",
          "parent": "D"
        },
        "D4": {
          "label": "Eigenvalues, eigenvectors",
          "parent": "D"
        },
        "D5": {
          "label": "QR decomposition, Gram-Schmidt orthogonalization",
          "parent": "D"
        },
        "D6": {
          "label": "Singular value decomposition",
          "parent": "D"
        },
        "D7": {
          "label": "Update matrix decompositions",
          "parent": "D"
        },
        "D8": {
          "label": "Other matrix equations (e.g., AX+XB=C)",
          "parent": "D"
        },
        "D9": {
          "label": "Singular, overdetermined or underdetermined systems of linear equations, generalized inverses",
          "parent": "D"
        },
        "E1": {
          "label": "Univariate data (curve fitting)",
          "parent": "E"
        },
        "E2": {
          "label": "Multivariate data (surface fitting)",
          "parent": "E"
        },
        "E3": {
          "label": "Service routines for interpolation",
          "parent": "E"
        },
        "F1": {
          "label": "Single equation",
          "parent": "F"
        },
        "F2": {
          "label": "System of equations",
          "parent": "F"
        },
        "F3": {
          "label": "Service routines (e.g., check user-supplied derivatives)",
          "parent": "F"
        },
        "G1": {
          "label": "Unconstrained",
          "parent": "G"
        },
        "G2": {
          "label": "Constrained",
          "parent": "G"
        },
        "G3": {
          "label": "Optimal control",
          "parent": "G"
        },
        "G4": {
          "label": "Service routines",
          "parent": "G"
        },
        "H1": {
          "label": "Numerical differentiation",
          "parent": "H"
        },
        "H2": {
          "label": "Quadrature (numerical evaluation of definite integrals)",
          "parent": "H"
        },
        "I1": {
          "label": "Ordinary differential equations (ODE''s)",
          "parent": "I"
        },
        "I2": {
          "label": "Partial differential equations",
          "parent": "I"
        },
        "I3": {
          "label": "Integral equations",
          "parent": "I"
        },
        "J1": {
          "label": "Trigonometric transforms including fast Fourier transforms",
          "parent": "J"
        },
        "J2": {
          "label": "Convolutions",
          "parent": "J"
        },
        "J3": {
          "label": "Laplace transforms",
          "parent": "J"
        },
        "J4": {
          "label": "Hilbert transforms",
          "parent": "J"
        },
        "K1": {
          "label": "Least squares (L-2) approximation",
          "parent": "K"
        },
        "K2": {
          "label": "Minimax (L-infinity) approximation",
          "parent": "K"
        },
        "K3": {
          "label": "Least absolute value (L-1) approximation",
          "parent": "K"
        },
        "K4": {
          "label": "Other analytic approximations (e.g., Taylor polynomial, Pade)",
          "parent": "K"
        },
        "K5": {
          "label": "Smoothing",
          "parent": "K"
        },
        "K6": {
          "label": "Service routines for approximation",
          "parent": "K"
        },
        "L1": {
          "label": "Data summarization",
          "parent": "L"
        },
        "L2": {
          "label": "Data manipulation",
          "parent": "L"
        },
        "L3": {
          "label": "Elementary statistical graphics",
          "parent": "L"
        },
        "L4": {
          "label": "Elementary data analysis",
          "parent": "L"
        },
        "L5": {
          "label": "Function evaluation",
          "parent": "L"
        },
        "L6": {
          "label": "Random number generation",
          "parent": "L"
        },
        "L7": {
          "label": "Analysis of variance (including analysis of covariance)",
          "parent": "L"
        },
        "L8": {
          "label": "Regression",
          "parent": "L"
        },
        "L9": {
          "label": "Categorical data analysis",
          "parent": "L"
        },
        "L10": {
          "label": "Time series analysis",
          "parent": "L"
        },
        "L11": {
          "label": "Correlation analysis",
          "parent": "L"
        },
        "L12": {
          "label": "Discriminant analysis",
          "parent": "L"
        },
        "L13": {
          "label": "Covariance structure models",
          "parent": "L"
        },
        "L14": {
          "label": "Cluster analysis",
          "parent": "L"
        },
        "L15": {
          "label": "Life testing, survival analysis",
          "parent": "L"
        },
        "L16": {
          "label": "Multidimensional scaling",
          "parent": "L"
        },
        "L17": {
          "label": "Statistical data sets",
          "parent": "L"
        },
        "M1": {
          "label": "Simulation",
          "parent": "M"
        },
        "M2": {
          "label": "Queueing",
          "parent": "M"
        },
        "M3": {
          "label": "Reliability",
          "parent": "M"
        },
        "M4": {
          "label": "Project optimization (e.g., PERT)",
          "parent": "M"
        },
        "N1": {
          "label": "Input, output",
          "parent": "N"
        },
        "N2": {
          "label": "Bit manipulation",
          "parent": "N"
        },
        "N3": {
          "label": "Character manipulation",
          "parent": "N"
        },
        "N4": {
          "label": "Storage management (e.g., stacks, heaps, trees)",
          "parent": "N"
        },
        "N5": {
          "label": "Searching",
          "parent": "N"
        },
        "N6": {
          "label": "Sorting",
          "parent": "N"
        },
        "N7": {
          "label": "Merging",
          "parent": "N"
        },
        "N8": {
          "label": "Permuting",
          "parent": "N"
        },
        "R1": {
          "label": "Machine-dependent constants",
          "parent": "R"
        },
        "R2": {
          "label": "Error checking (e.g., check monotonicity)",
          "parent": "R"
        },
        "R3": {
          "label": "Error handling",
          "parent": "R"
        },
        "R4": {
          "label": "Documentation retrieval",
          "parent": "R"
        },
        "S1": {
          "label": "Program transformation tools",
          "parent": "S"
        },
        "S2": {
          "label": "Static program analysis tools",
          "parent": "S"
        },
        "S3": {
          "label": "Dynamic program analysis tools",
          "parent": "S"
        },
        "G1a": {
          "label": "Univariate",
          "parent": "G1"
        },
        "G1b": {
          "label": "Multivariate",
          "parent": "G1"
        },
        "D2a1": {
          "label": "General",
          "parent": "D2a"
        },
        "D2a": {
          "label": "Real nonsymmetric matrices",
          "parent": "D2"
        },
        "J1a2": {
          "label": "Complex",
          "parent": "J1a"
        },
        "J1a": {
          "label": "One-dimensional",
          "parent": "J1"
        },
        "F1b": {
          "label": "Nonpolynomial",
          "parent": "F1"
        },
        "L1a1a": {
          "label": "Location",
          "parent": "L1a1"
        },
        "L1a1": {
          "label": "Raw data",
          "parent": "L1a"
        },
        "L1a": {
          "label": "One-dimensional data",
          "parent": "L1"
        },
        "E1a": {
          "label": "Polynomial splines (piecewise polynomials)",
          "parent": "E1"
        },
        "H2a1a1": {
          "label": "Automatic (user need only specify required accuracy)",
          "parent": "H2a1a"
        },
        "H2a1a": {
          "label": "Integrand available via user-defined procedure",
          "parent": "H2a1"
        },
        "H2a1": {
          "label": "Finite interval (general integrand)",
          "parent": "H2a"
        },
        "H2a": {
          "label": "One-dimensional integrals",
          "parent": "H2"
        },
        "I1a1a": {
          "label": "One-step methods (e.g., Runge-Kutta)",
          "parent": "I1a1"
        },
        "I1a1": {
          "label": "General, nonstiff or mildly stiff",
          "parent": "I1a"
        },
        "I1a": {
          "label": "Initial value problems",
          "parent": "I1"
        },
        "L6a21": {
          "label": "Uniform (continuous, discrete), uniform order statistics",
          "parent": "L6a"
        },
        "L6a": {
          "label": "Univariate",
          "parent": "L6"
        },
        "G2h3b1b": {
          "label": "User provides first derivatives of function and constraints",
          "parent": "G2h3b1"
        },
        "G2h3b1": {
          "label": "Smooth function and constraints",
          "parent": "G2h3b"
        },
        "G2h3b": {
          "label": "Equality and inequality constraints",
          "parent": "G2h3"
        },
        "G2h3": {
          "label": "Nonlinear constraints",
          "parent": "G2h"
        },
        "G2h": {
          "label": "General nonlinear programming",
          "parent": "G2"
        },
        "G2h1a2": {
          "label": "User provides first derivatives",
          "parent": "G2h1a"
        },
        "G2h1a": {
          "label": "Smooth function",
          "parent": "G2h1"
        },
        "G2h1": {
          "label": "Simple bounds",
          "parent": "G2h"
        },
        "D9a1": {
          "label": "Least squares (L_2) solution",
          "parent": "D9a"
        },
        "D9a": {
          "label": "Unconstrained",
          "parent": "D9"
        },
        "A3c": {
          "label": "Extended precision",
          "parent": "A3"
        },
        "I1a1b": {
          "label": "Multistep methods (e.g., Adams predictor-corrector)",
          "parent": "I1a1"
        },
        "I1a2": {
          "label": "Stiff and mixed algebraic- differential equations",
          "parent": "I1a"
        },
        "G2i": {
          "label": "Global solution to nonconvex problems",
          "parent": "G2"
        },
        "G2h1a1": {
          "label": "User provides no derivatives",
          "parent": "G2h1a"
        },
        "L1a1b": {
          "label": "Dispersion",
          "parent": "L1a1"
        },
        "F1a": {
          "label": "Polynomial",
          "parent": "F1"
        },
        "H2b1a2": {
          "label": "Nonautomatic",
          "parent": "H2b1a"
        },
        "H2b1a": {
          "label": "Integrand available via user-defined procedure",
          "parent": "H2b1"
        },
        "H2b1": {
          "label": "One or more hyper-rectangular regions (includes iterated integrals)",
          "parent": "H2b"
        },
        "H2b": {
          "label": "Multidimensional integrals",
          "parent": "H2"
        },
        "D1b6": {
          "label": "Multiplication",
          "parent": "D1b"
        },
        "D1b": {
          "label": "Elementary matrix operations",
          "parent": "D1"
        },
        "D1b4": {
          "label": "Multiplication by vector",
          "parent": "D1b"
        },
        "D2b4": {
          "label": "Sparse",
          "parent": "D2b"
        },
        "D2b": {
          "label": "Real symmetric matrices",
          "parent": "D2"
        },
        "I1b": {
          "label": "Multipoint boundary value problems",
          "parent": "I1"
        },
        "C7a": {
          "label": "Gamma, log gamma, reciprocal gamma",
          "parent": "C7"
        },
        "H2c": {
          "label": "Service routines (e.g., compute weights and nodes for quadrature formulas)",
          "parent": "H2"
        },
        "C4b": {
          "label": "Exponential, logarithmic",
          "parent": "C4"
        },
        "L10a2a": {
          "label": "Summary statistics",
          "parent": "L10a2"
        },
        "L10a2": {
          "label": "Time domain analysis",
          "parent": "L10a"
        },
        "L10a": {
          "label": "Univariate (search also classes L3a6 and L3a7)",
          "parent": "L10"
        },
        "D2b1b": {
          "label": "Positive definite",
          "parent": "D2b1"
        },
        "D2b1": {
          "label": "General",
          "parent": "D2b"
        },
        "G2a": {
          "label": "Linear programming",
          "parent": "G2"
        },
        "D9c": {
          "label": "Generalized inverses",
          "parent": "D9"
        },
        "H2b1a1": {
          "label": "Automatic (user need only specify required accuracy)",
          "parent": "H2b1a"
        },
        "D2a4": {
          "label": "Sparse",
          "parent": "D2a"
        },
        "D4a1": {
          "label": "Real symmetric",
          "parent": "D4a"
        },
        "D4a": {
          "label": "Ordinary eigenvalue problems (Ax = lambda x)",
          "parent": "D4"
        },
        "L6c": {
          "label": "Service routines (e.g., seed)",
          "parent": "L6"
        },
        "E2a": {
          "label": "Gridded",
          "parent": "E2"
        },
        "H2a2b2": {
          "label": "Nonautomatic",
          "parent": "H2a2b"
        },
        "H2a2b": {
          "label": "Integrand available only on grid",
          "parent": "H2a2"
        },
        "H2a2": {
          "label": "Finite interval (specific or special type integrand including weight functions, oscillating and singular integrands, principal value integrals, splines, etc.)",
          "parent": "H2a"
        },
        "C7c": {
          "label": "Psi function",
          "parent": "C7"
        },
        "J1a1": {
          "label": "Real",
          "parent": "J1a"
        },
        "A4c": {
          "label": "Extended precision",
          "parent": "A4"
        },
        "D1b9": {
          "label": "Storage mode conversion",
          "parent": "D1b"
        },
        "L13b": {
          "label": "Principal components analysis",
          "parent": "L13"
        },
        "C10b": {
          "label": "I, K",
          "parent": "C10"
        },
        "C10b1": {
          "label": "Real argument, integer order",
          "parent": "C10b"
        },
        "G1a1": {
          "label": "Smooth function",
          "parent": "G1a"
        },
        "G1a1a": {
          "label": "User provides no derivatives",
          "parent": "G1a1"
        },
        "G1a1b": {
          "label": "User provides first derivatives",
          "parent": "G1a1"
        },
        "G1a1c": {
          "label": "User provides first and second derivatives",
          "parent": "G1a1"
        },
        "G1a2": {
          "label": "General function (no smoothness assumed)",
          "parent": "G1a"
        },
        "G1b1": {
          "label": "Smooth function",
          "parent": "G1b"
        },
        "G1b1a": {
          "label": "User provides no derivatives",
          "parent": "G1b1"
        },
        "G1b1b": {
          "label": "User provides first derivatives",
          "parent": "G1b1"
        },
        "G1b1c": {
          "label": "User provides first and second derivatives",
          "parent": "G1b1"
        },
        "G1b2": {
          "label": "General function (no smoothness assumed)",
          "parent": "G1b"
        },
        "H2a2a": {
          "label": "Integrand available via user-defined procedure",
          "parent": "H2a2"
        },
        "H2a2a1": {
          "label": "Automatic (user need only specify required accuracy)",
          "parent": "H2a2a"
        },
        "J1a3": {
          "label": "Sine and cosine transforms",
          "parent": "J1a"
        }
      },
      "detailed_taxonomy_source": {
        "url": "https://netlib.org/misc/gams.html",
        "retrieved_on": "2026-10-28",
        "notes": "Netlib GAMS taxonomy; token boundaries determine parents, never raw prefix matching. Existing immediate NIST taxonomy is retained.",
        "smooth_optimization_refinement": {
          "retrieved_on": "2026-10-30",
          "url": "https://netlib.org/misc/gams.html",
          "sha256": "1a48791f5650b7e053c4111c820b0cfcf3edd31ee0ebda548f3518a5d563f82e",
          "codes": [
            "G1a1",
            "G1a1a",
            "G1a1b",
            "G1a1c",
            "G1a2",
            "G1b1",
            "G1b1a",
            "G1b1b",
            "G1b1c",
            "G1b2"
          ]
        },
        "singular_quadrature_refinement": {
          "source_snapshot_on": "2026-10-30",
          "url": "https://netlib.org/misc/gams.html",
          "sha256": "1a48791f5650b7e053c4111c820b0cfcf3edd31ee0ebda548f3518a5d563f82e",
          "codes": [
            "H2a2a",
            "H2a2a1"
          ]
        }
      }
    }
  },
  "demonstrations": [
    {
      "id": "fmin-sine",
      "name": "gams-fmin-sine",
      "package_id": "fmin",
      "procedure_id": "fmin-scalar",
      "gams_code": "G1a1a",
      "problem_id": "sine-minimum",
      "path": "fpm_catalog/gams-drivers/fmin-sine.f90",
      "author_example": "test/test.f90",
      "revision": "3d094fba0e9b98d132414f8442c7c76d32da1d30",
      "reuse": "adapted",
      "license": "BSD-3-Clause",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fmin-BSD-3.txt"
      ],
      "modifications": "Moved callbacks to modules; added finite-value and independent known-solution checks, readable output, and callback counts.",
      "source_sha256": "75d67528702dd9ed4b2aad9d7e65ba448689f2b89eb2830bed1fcaa103e0916b",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fmin&example=gams-fmin-sine",
      "validation_path": "docs/gams-g1-validation.json"
    },
    {
      "id": "minpack-bard",
      "name": "gams-minpack-bard",
      "package_id": "minpack",
      "procedure_id": "minpack-lmdif1",
      "gams_code": "G1b1a",
      "problem_id": "bard-15",
      "path": "fpm_catalog/gams-drivers/minpack-bard.f90",
      "author_example": "examples/example_lmdif1.f90",
      "revision": "c0b5aea9fcd2b83865af921a7a7e881904f8d3c2",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/minpack-MIT.txt"
      ],
      "modifications": "Moved callbacks to modules; added finite-value and independent known-solution checks, readable output, and callback counts.",
      "source_sha256": "c6f1186aecfc4bb554805846fd8283db924295e0de32ad251dc707636a9e9edd",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=minpack&example=gams-minpack-bard",
      "validation_path": "docs/gams-g1-validation.json"
    },
    {
      "id": "libdogleg-bard",
      "name": "gams-libdogleg-bard",
      "package_id": "libdogleg-f",
      "procedure_id": "libdogleg-dense",
      "gams_code": "G1b1b",
      "problem_id": "bard-15",
      "path": "fpm_catalog/gams-drivers/libdogleg-bard.f90",
      "author_example": "example/lmder_example.f90",
      "revision": "32b65ae4f880a052768c05d24c24b79920710681",
      "reuse": "adapted",
      "license": "LGPL-3.0-or-later",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/libdogleg-COPYING",
        "fpm_catalog/gams-drivers/licenses/libdogleg-COPYING.LESSER"
      ],
      "modifications": "Moved callbacks to modules; added finite-value and independent known-solution checks, readable output, and callback counts.",
      "source_sha256": "dbceb9f1c7b6f8f43f3bc4599393acd2d68205cf68d71129e87bb0cb709f7f24",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=libdogleg-f&example=gams-libdogleg-bard",
      "validation_path": "docs/gams-g1-validation.json"
    },
    {
      "id": "nonlin-rosenbrock-nm",
      "name": "gams-nonlin-rosenbrock-nm",
      "package_id": "nonlin",
      "procedure_id": "nonlin-nelder-mead",
      "gams_code": "G1b1a",
      "problem_id": "rosenbrock-2",
      "path": "fpm_catalog/gams-drivers/nonlin-rosenbrock-nm.f90",
      "author_example": "examples/nonlin_nm_opt_example.f90",
      "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/nonlin-MIT.txt"
      ],
      "modifications": "Adapted author solver registration and Rosenbrock model; fixed start (-1.2,1), module callbacks, independent accuracy checks, and callback counts.",
      "checks": {
        "start": [
          -1.2,
          1.0
        ],
        "solution": [
          1.0,
          1.0
        ],
        "max_parameter_error": 0.0001,
        "max_objective": 1e-10,
        "analytic_gradient_checked": false
      },
      "source_sha256": "c4154aff915fe20ca3c9714a0b52b7bf2197ec656fe80657089a5a06a38e27f9",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nonlin&example=gams-nonlin-rosenbrock-nm",
      "validation_path": "docs/gams-g1-validation.json"
    },
    {
      "id": "nonlin-rosenbrock-bfgs",
      "name": "gams-nonlin-rosenbrock-bfgs",
      "package_id": "nonlin",
      "procedure_id": "nonlin-bfgs",
      "gams_code": "G1b1b",
      "problem_id": "rosenbrock-2",
      "path": "fpm_catalog/gams-drivers/nonlin-rosenbrock-bfgs.f90",
      "author_example": "examples/nonlin_bfgs_example.f90",
      "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/nonlin-MIT.txt"
      ],
      "modifications": "Adapted author solver registration and Rosenbrock model; fixed start (-1.2,1), module callbacks, independent accuracy checks, and callback counts.",
      "checks": {
        "start": [
          -1.2,
          1.0
        ],
        "solution": [
          1.0,
          1.0
        ],
        "max_parameter_error": 0.0001,
        "max_objective": 1e-10,
        "analytic_gradient_checked": true
      },
      "source_sha256": "966fd1bef529c83d609bb38a83e0e607b64f13486f346c3cf690e9eb05155f73",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nonlin&example=gams-nonlin-rosenbrock-bfgs",
      "validation_path": "docs/gams-g1-validation.json"
    },
    {
      "id": "nlopt-rosenbrock-lbfgs",
      "name": "gams-nlopt-rosenbrock-lbfgs",
      "package_id": "nlopt-f",
      "procedure_id": "nlopt-lbfgs",
      "gams_code": "G1b1b",
      "problem_id": "rosenbrock-2",
      "path": "fpm_catalog/gams-drivers/nlopt-rosenbrock-lbfgs.f90",
      "author_example": null,
      "revision": "83d21e7ebda9279a6dd4cc11fe6c735f48eb8689",
      "reuse": "original",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/nonlin-MIT.txt"
      ],
      "modifications": "Independent NLopt registration with the common MIT-licensed Rosenbrock model; no constrained upstream NLopt example copied.",
      "checks": {
        "start": [
          -1.2,
          1.0
        ],
        "solution": [
          1.0,
          1.0
        ],
        "max_parameter_error": 0.0001,
        "max_objective": 1e-10,
        "analytic_gradient_checked": true
      },
      "source_sha256": "efd6db5b8f48483834b39d525d56c20013fe912771b591279ec672322a1687c6",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nlopt-f&example=gams-nlopt-rosenbrock-lbfgs",
      "validation_path": "docs/gams-g1-validation.json"
    },
    {
      "id": "quadpack-smooth",
      "name": "gams-quadpack-smooth",
      "package_id": "quadpack",
      "procedure_id": "quadpack-dqag",
      "gams_code": "H2a1a1",
      "problem_id": "smooth-finite-1d",
      "path": "fpm_catalog/gams-drivers/quadpack-smooth.f90",
      "revision": "ab42d50794280a8e7996f2ee4cda1f8753dfde5b",
      "author_example": "test/quadpack_test_module.F90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/quadpack-BSD.txt"
      ],
      "modifications": "Adapted author call pattern to shared exp(x) and cos(20*x) integrals on [0,1]; module callback, deterministic inputs, explicit success-status checks, finite values, analytic references and callback counts.",
      "validation_path": "docs/gams-quadrature-validation.json",
      "review_path": "docs/gams-quadrature.md",
      "checks": {
        "interval": [
          0,
          1
        ],
        "integrands": [
          "exp(x)",
          "cos(20*x)"
        ],
        "max_absolute_error": 1e-09,
        "requested_tolerance": 1e-10
      },
      "source_sha256": "15371135b8aa9fb2f5f3cca0f241045362934072a13c904135f96c218e85707a",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=quadpack&example=gams-quadpack-smooth"
    },
    {
      "id": "quadrature-fortran-smooth",
      "name": "gams-quadrature-fortran-smooth",
      "package_id": "quadrature-fortran",
      "procedure_id": "quadrature-fortran-integration-class-1d",
      "gams_code": "H2a1a1",
      "problem_id": "smooth-finite-1d",
      "path": "fpm_catalog/gams-drivers/quadrature-fortran-smooth.f90",
      "revision": "1d208fc59569a97b1c2abf9c45f7c352dcc7b318",
      "author_example": "test/test.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/quadrature-fortran-BSD.txt"
      ],
      "modifications": "Adapted author call pattern to shared exp(x) and cos(20*x) integrals on [0,1]; module callback, deterministic inputs, explicit success-status checks, finite values, analytic references and callback counts.",
      "validation_path": "docs/gams-quadrature-validation.json",
      "review_path": "docs/gams-quadrature.md",
      "checks": {
        "interval": [
          0,
          1
        ],
        "integrands": [
          "exp(x)",
          "cos(20*x)"
        ],
        "max_absolute_error": 1e-09,
        "requested_tolerance": 1e-10
      },
      "source_sha256": "26222f7e0a0919d5eedff719e1fb2eefd72fddb126cd6017ec950ab20475acc2",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=quadrature-fortran&example=gams-quadrature-fortran-smooth"
    },
    {
      "id": "quadpack-endpoint-singular",
      "name": "gams-quadpack-endpoint-singular",
      "package_id": "quadpack",
      "procedure_id": "quadpack-dqags",
      "gams_code": "H2a2a1",
      "problem_id": "endpoint-singular-1d",
      "path": "fpm_catalog/gams-drivers/quadpack-endpoint-singular.f90",
      "revision": "ab42d50794280a8e7996f2ee4cda1f8753dfde5b",
      "author_example": "test/quadpack_test_module.F90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/quadpack-BSD.txt"
      ],
      "modifications": "Module callback; author inverse-square-root example plus logarithmic variant; exact integrals, explicit status/finite-value/evaluation-count checks, and readable actual errors and estimated errors.",
      "validation_path": "docs/gams-quadrature-validation.json",
      "review_path": "docs/gams-quadrature.md",
      "checks": {
        "interval": [
          0,
          1
        ],
        "integrands": [
          "1/sqrt(x)",
          "log(x)/sqrt(x)"
        ],
        "exact_integrals": [
          2,
          -4
        ],
        "max_absolute_error": 1e-08,
        "requested_tolerance": 1e-10
      },
      "source_sha256": "77ee0f1fe1c5677801a5eddf9a339f977b23f368da4069f29febeead8a091418",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=quadpack&example=gams-quadpack-endpoint-singular"
    },
    {
      "id": "roots-fortran-brent",
      "name": "gams-roots-fortran-brent",
      "package_id": "roots-fortran",
      "procedure_id": "roots-fortran-brent",
      "gams_code": "F1b",
      "problem_id": "nonpolynomial-scalar-roots",
      "path": "fpm_catalog/gams-drivers/roots-fortran-brent.f90",
      "revision": "85dc6b98404a61d49944939414f7f56c3f32edd1",
      "author_example": null,
      "reuse": "original",
      "license": "original",
      "license_files": [],
      "modifications": "Shared nonpolynomial equations, brackets and independent root/residual checks; module callbacks and evaluation counts. Newton driver supplies and sanity-checks an analytic derivative.",
      "validation_path": "docs/gams-roots-validation.json",
      "review_path": "docs/gams-roots.md",
      "checks": {
        "equations": [
          "sin(x)/x",
          "exp(x)-2"
        ],
        "roots": [
          "pi",
          "log(2)"
        ],
        "brackets": [
          [
            1.5,
            5
          ],
          [
            0,
            2
          ]
        ],
        "max_root_error": 1e-09,
        "max_absolute_residual": 1e-09,
        "requested_tolerance": 1e-12,
        "analytic_derivative_checked": false
      },
      "source_sha256": "b91fe6deab1214fd12ff35669bccd2a31ae10d68d4fc3492bf4f5c67780e3c70",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=roots-fortran&example=gams-roots-fortran-brent"
    },
    {
      "id": "nonlin-roots-brent",
      "name": "gams-nonlin-roots-brent",
      "package_id": "nonlin",
      "procedure_id": "nonlin-brent-solver",
      "gams_code": "F1b",
      "problem_id": "nonpolynomial-scalar-roots",
      "path": "fpm_catalog/gams-drivers/nonlin-roots-brent.f90",
      "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
      "author_example": "examples/nonlin_brent_example.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/nonlin-MIT.txt"
      ],
      "modifications": "Shared nonpolynomial equations, brackets and independent root/residual checks; module callbacks and evaluation counts. Newton driver supplies and sanity-checks an analytic derivative.",
      "validation_path": "docs/gams-roots-validation.json",
      "review_path": "docs/gams-roots.md",
      "checks": {
        "equations": [
          "sin(x)/x",
          "exp(x)-2"
        ],
        "roots": [
          "pi",
          "log(2)"
        ],
        "brackets": [
          [
            1.5,
            5
          ],
          [
            0,
            2
          ]
        ],
        "max_root_error": 1e-09,
        "max_absolute_residual": 1e-09,
        "requested_tolerance": 1e-12,
        "analytic_derivative_checked": false
      },
      "source_sha256": "367d3685eecf03625815d1151a53f86eabde4b57387ce4b41787193222660293",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nonlin&example=gams-nonlin-roots-brent"
    },
    {
      "id": "nonlin-roots-newton",
      "name": "gams-nonlin-roots-newton",
      "package_id": "nonlin",
      "procedure_id": "nonlin-newton-1var",
      "gams_code": "F1b",
      "problem_id": "nonpolynomial-scalar-roots",
      "path": "fpm_catalog/gams-drivers/nonlin-roots-newton.f90",
      "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
      "author_example": "examples/nonlin_newton1d_example.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/nonlin-MIT.txt"
      ],
      "modifications": "Shared nonpolynomial equations, brackets and independent root/residual checks; module callbacks and evaluation counts. Newton driver supplies and sanity-checks an analytic derivative.",
      "validation_path": "docs/gams-roots-validation.json",
      "review_path": "docs/gams-roots.md",
      "checks": {
        "equations": [
          "sin(x)/x",
          "exp(x)-2"
        ],
        "roots": [
          "pi",
          "log(2)"
        ],
        "brackets": [
          [
            1.5,
            5
          ],
          [
            0,
            2
          ]
        ],
        "max_root_error": 1e-09,
        "max_absolute_residual": 1e-09,
        "requested_tolerance": 1e-12,
        "analytic_derivative_checked": true
      },
      "source_sha256": "4d0382bd47bb8632566d3b0ec5d295713aeffed65a225750d605a89afb4c56de",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nonlin&example=gams-nonlin-roots-newton"
    },
    {
      "id": "fortran-lapack-dense-solve",
      "name": "gams-fortran-lapack-dense-solve",
      "package_id": "fortran-lapack",
      "procedure_id": "fortran-lapack-solve",
      "gams_code": "D2a1",
      "problem_id": "real-dense-systems",
      "path": "fpm_catalog/gams-drivers/fortran-lapack-dense-solve.f90",
      "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
      "author_example": "test/test_la_solve.f90",
      "reuse": "adapted",
      "license": "BSD-3 AND MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fortran-lapack-BSD.txt",
        "fpm_catalog/gams-drivers/licenses/stdlib-MIT.txt"
      ],
      "modifications": "Shared real64 cases; retained original inputs; explicit solver status, finite-value and independent solution/residual checks. Least squares checks full-rank and rank-deficient minimum-norm solutions.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "max_solution_error": 1e-10,
        "max_scaled_residual": 1e-12
      },
      "source_sha256": "1144040245497c975761d3eaa66f27d7666db19269c0674c37c09c74afd0a728",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-lapack&example=gams-fortran-lapack-dense-solve"
    },
    {
      "id": "fortran-lapack-least-squares",
      "name": "gams-fortran-lapack-least-squares",
      "package_id": "fortran-lapack",
      "procedure_id": "fortran-lapack-lstsq",
      "gams_code": "D9a1",
      "problem_id": "real-linear-least-squares",
      "path": "fpm_catalog/gams-drivers/fortran-lapack-least-squares.f90",
      "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
      "author_example": "test/test_linalg_lstsq.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fortran-lapack-BSD.txt"
      ],
      "modifications": "Shared real64 cases; retained original inputs; explicit solver status, finite-value and independent solution/residual checks. Least squares checks full-rank and rank-deficient minimum-norm solutions.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "max_coefficient_error": 1e-10,
        "max_optimality_residual": 1e-10,
        "expected_rank": 2,
        "expected_residual_sum_of_squares": 14,
        "rank_deficient_case": true
      },
      "source_sha256": "17cd25d04e8664e6dde51ec8de5a2967bccce304e65e54ef7f92cb311b4df228",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-lapack&example=gams-fortran-lapack-least-squares"
    },
    {
      "id": "stdlib-dense-solve",
      "name": "gams-stdlib-dense-solve",
      "package_id": "stdlib",
      "procedure_id": "stdlib-solve",
      "gams_code": "D2a1",
      "problem_id": "real-dense-systems",
      "path": "fpm_catalog/gams-drivers/stdlib-dense-solve.f90",
      "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
      "author_example": "example/example_solve1.f90",
      "reuse": "adapted",
      "license": "BSD-3 AND MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/stdlib-MIT.txt",
        "fpm_catalog/gams-drivers/licenses/fortran-lapack-BSD.txt"
      ],
      "modifications": "Shared real64 cases; retained original inputs; explicit solver status, finite-value and independent solution/residual checks. Least squares checks full-rank and rank-deficient minimum-norm solutions.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "max_solution_error": 1e-10,
        "max_scaled_residual": 1e-12
      },
      "source_sha256": "1d5e971d1f0f5784027197d105c88a71b1ad6fd647f7c78ee588b86878d52dc2",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=stdlib&example=gams-stdlib-dense-solve"
    },
    {
      "id": "stdlib-least-squares",
      "name": "gams-stdlib-least-squares",
      "package_id": "stdlib",
      "procedure_id": "stdlib-lstsq",
      "gams_code": "D9a1",
      "problem_id": "real-linear-least-squares",
      "path": "fpm_catalog/gams-drivers/stdlib-least-squares.f90",
      "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
      "author_example": "example/example_lstsq1.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/stdlib-MIT.txt"
      ],
      "modifications": "Shared real64 cases; retained original inputs; explicit solver status, finite-value and independent solution/residual checks. Least squares checks full-rank and rank-deficient minimum-norm solutions.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "max_coefficient_error": 1e-10,
        "max_optimality_residual": 1e-10,
        "expected_rank": 2,
        "expected_residual_sum_of_squares": 14,
        "rank_deficient_case": true
      },
      "source_sha256": "f7e5ba57da0f2b3c60efbe99f9aaca89cadff46e933a24be07ed7381d8ec3337",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=stdlib&example=gams-stdlib-least-squares"
    },
    {
      "id": "dop853-decay-oscillator",
      "name": "gams-dop853-decay-oscillator",
      "package_id": "dop853",
      "procedure_id": "dop853-dop853-class",
      "gams_code": "I1a1a",
      "problem_id": "nonstiff-decay-oscillator",
      "path": "fpm_catalog/gams-drivers/dop853-decay-oscillator.f90",
      "revision": "1e9d0dbf4dcbc692ca557c0467629112dd1f0ce6",
      "author_example": "test/dop853_test.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/dop853-BSD.txt"
      ],
      "modifications": "Author callback and integration API adapted to a shared three-state decay/oscillator IVP; no plotting dependency; exact-state, oscillator-energy, finite-value, completion-status and RHS-count checks. RK4 includes a separate step-halving experiment.",
      "validation_path": "docs/gams-ode-validation.json",
      "review_path": "docs/gams-ode.md",
      "checks": {
        "interval": [
          "0",
          "2*pi"
        ],
        "checkpoints": 10,
        "max_state_error": 1e-08,
        "max_energy_error": 2e-08,
        "relative_tolerance": 1e-10,
        "absolute_tolerance": 1e-10,
        "fixed_step": null,
        "step_refinement": false
      },
      "source_sha256": "4b0f2761bcd5bda2b76e274efbfe07d6f73f52d0c5ac7a0a2b20dd426f1921ac",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dop853&example=gams-dop853-decay-oscillator"
    },
    {
      "id": "ddeabm-decay-oscillator",
      "name": "gams-ddeabm-decay-oscillator",
      "package_id": "ddeabm",
      "procedure_id": "ddeabm-ddeabm-class",
      "gams_code": "I1a1b",
      "problem_id": "nonstiff-decay-oscillator",
      "path": "fpm_catalog/gams-drivers/ddeabm-decay-oscillator.f90",
      "revision": "dba70c8c65388638662df2694339c5ba7feaf12a",
      "author_example": "test/ddeabm_test.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/ddeabm-BSD.txt"
      ],
      "modifications": "Author callback and integration API adapted to a shared three-state decay/oscillator IVP; no plotting dependency; exact-state, oscillator-energy, finite-value, completion-status and RHS-count checks. RK4 includes a separate step-halving experiment.",
      "validation_path": "docs/gams-ode-validation.json",
      "review_path": "docs/gams-ode.md",
      "checks": {
        "interval": [
          "0",
          "2*pi"
        ],
        "checkpoints": 10,
        "max_state_error": 1e-08,
        "max_energy_error": 2e-08,
        "relative_tolerance": 1e-10,
        "absolute_tolerance": 1e-10,
        "fixed_step": null,
        "step_refinement": false
      },
      "source_sha256": "4949e249013e61ad9be5f18242703f9cb1c5b96e05680f5d9dc90032a0bfec29",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ddeabm&example=gams-ddeabm-decay-oscillator"
    },
    {
      "id": "rklib-decay-oscillator",
      "name": "gams-rklib-decay-oscillator",
      "package_id": "rklib",
      "procedure_id": "rklib-rk4",
      "gams_code": "I1a1a",
      "problem_id": "nonstiff-decay-oscillator",
      "path": "fpm_catalog/gams-drivers/rklib-decay-oscillator.f90",
      "revision": "e3d51f9e8a2e6756612e8e53687ab2d4b67dfb76",
      "author_example": "test/rk_decay.F90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/rklib-BSD.txt"
      ],
      "modifications": "Author callback and integration API adapted to a shared three-state decay/oscillator IVP; no plotting dependency; exact-state, oscillator-energy, finite-value, completion-status and RHS-count checks. RK4 includes a separate step-halving experiment.",
      "validation_path": "docs/gams-ode-validation.json",
      "review_path": "docs/gams-ode.md",
      "checks": {
        "interval": [
          "0",
          "2*pi"
        ],
        "checkpoints": 10,
        "max_state_error": 1e-08,
        "max_energy_error": 2e-08,
        "relative_tolerance": null,
        "absolute_tolerance": null,
        "fixed_step": 0.01,
        "step_refinement": true
      },
      "source_sha256": "4aeea5b5f37cb66ed15bec19ef495dc28dff21981f36dfe68ec56610c4267ee2",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rklib&example=gams-rklib-decay-oscillator"
    },
    {
      "id": "finterp-shape-interpolation",
      "name": "gams-finterp-shape-interpolation",
      "package_id": "finterp",
      "procedure_id": "finterp-linear-interp-1d",
      "gams_code": "E1a",
      "problem_id": "one-dimensional-shape-interpolation",
      "path": "fpm_catalog/gams-drivers/finterp-shape-interpolation.f90",
      "revision": "95aaceaf86f5d4d49328b783c5dff9b006b0bfc9",
      "author_example": "test/test.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/finterp-BSD.txt"
      ],
      "modifications": "Author API usage adapted to common affine/steep monotone data and finite-value, status, nodal, sampled local-bound and monotonicity checks. Linear methods check an independent piecewise-linear reference; B-spline also checks cubic values and analytic first derivatives.",
      "validation_path": "docs/gams-interpolation-validation.json",
      "review_path": "docs/gams-interpolation.md",
      "checks": {
        "max_node_error": 1e-12,
        "max_affine_error": 1e-12,
        "max_sampled_shape_violation": 1e-12,
        "samples_per_interval": 21,
        "piecewise_linear_reference_checked": true,
        "bspline_cubic_and_derivative_checked": false
      },
      "source_sha256": "26ea6d0c95211f09b89285daf1fd90a146264480a20854912b1cdff3124ff0e4",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=finterp&example=gams-finterp-shape-interpolation"
    },
    {
      "id": "pchip-shape-interpolation",
      "name": "gams-pchip-shape-interpolation",
      "package_id": "pchip",
      "procedure_id": "pchip-dpchim",
      "gams_code": "E1a",
      "problem_id": "one-dimensional-shape-interpolation",
      "path": "fpm_catalog/gams-drivers/pchip-shape-interpolation.f90",
      "revision": "8f5350565072622a2344dd0ec75193832b31eb10",
      "author_example": "test/pchip_test.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/pchip-BSD.txt"
      ],
      "modifications": "Author API usage adapted to common affine/steep monotone data and finite-value, status, nodal, sampled local-bound and monotonicity checks. Linear methods check an independent piecewise-linear reference; B-spline also checks cubic values and analytic first derivatives.",
      "validation_path": "docs/gams-interpolation-validation.json",
      "review_path": "docs/gams-interpolation.md",
      "checks": {
        "max_node_error": 1e-12,
        "max_affine_error": 1e-12,
        "max_sampled_shape_violation": 1e-12,
        "samples_per_interval": 21,
        "piecewise_linear_reference_checked": false,
        "bspline_cubic_and_derivative_checked": false
      },
      "source_sha256": "f8ad30c3f8f16ad5f03a88a5987c625433d9cecb61ee141228ae401e5989265c",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=pchip&example=gams-pchip-shape-interpolation"
    },
    {
      "id": "bspline-fortran-shape-interpolation",
      "name": "gams-bspline-fortran-shape-interpolation",
      "package_id": "bspline-fortran",
      "procedure_id": "bspline-fortran-bspline-1d",
      "gams_code": "E1a",
      "problem_id": "one-dimensional-shape-interpolation",
      "path": "fpm_catalog/gams-drivers/bspline-fortran-shape-interpolation.f90",
      "revision": "047c724451aeee7f883c0d5acba3f7bd22a5de01",
      "author_example": "test/test_oo.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/bspline-fortran-BSD.txt"
      ],
      "modifications": "Author API usage adapted to common affine/steep monotone data and finite-value, status, nodal, sampled local-bound and monotonicity checks. Linear methods check an independent piecewise-linear reference; B-spline also checks cubic values and analytic first derivatives.",
      "validation_path": "docs/gams-interpolation-validation.json",
      "review_path": "docs/gams-interpolation.md",
      "checks": {
        "max_node_error": 1e-12,
        "max_affine_error": 1e-12,
        "max_sampled_shape_violation": 1e-12,
        "samples_per_interval": 21,
        "piecewise_linear_reference_checked": true,
        "bspline_cubic_and_derivative_checked": true
      },
      "source_sha256": "7ef51d8d302161ef4f0004fbef041b0f0a158198f695f756203dd4144bc39165",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=bspline-fortran&example=gams-bspline-fortran-shape-interpolation"
    },
    {
      "id": "fftpack-complex-transform",
      "name": "gams-fftpack-complex-transform",
      "package_id": "fftpack",
      "procedure_id": "fftpack-fft",
      "gams_code": "J1a2",
      "problem_id": "complex-discrete-fourier-transform",
      "path": "fpm_catalog/gams-drivers/fftpack-complex-transform.f90",
      "revision": "0fffe7c05a918363a7cc12ae138a695afd115f36",
      "author_example": "test/test_fftpack_fft.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fftpack-MIT.txt"
      ],
      "modifications": "Author API usage adapted to lengths 7 and 8 and exactly representable deterministic inputs; independent direct-sum reference, finite-value and normalized inverse checks. Complex transforms also check Parseval; KISS plans are finalized once per length.",
      "validation_path": "docs/gams-transforms-validation.json",
      "review_path": "docs/gams-transforms.md",
      "checks": {
        "lengths": [
          7,
          8
        ],
        "max_forward_error": 1e-11,
        "max_roundtrip_error": 1e-11,
        "parseval_checked": true,
        "inverse_composition_divisor": "N",
        "precision": "fftpack rk"
      },
      "source_sha256": "18713ee85f074960ccc40ff4e4bb6a9b290f5cf4ba80fb384a369f955263fdfe",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fftpack&example=gams-fftpack-complex-transform"
    },
    {
      "id": "kissfft-f-complex-transform",
      "name": "gams-kissfft-f-complex-transform",
      "package_id": "kissfft-f",
      "procedure_id": "kissfft-f-perform",
      "gams_code": "J1a2",
      "problem_id": "complex-discrete-fourier-transform",
      "path": "fpm_catalog/gams-drivers/kissfft-f-complex-transform.f90",
      "revision": "b89c5e1d0aff9993db79200fc94a467948ff3923",
      "author_example": "example/fft.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/kissfft-f-BSD.txt"
      ],
      "modifications": "Author API usage adapted to lengths 7 and 8 and exactly representable deterministic inputs; independent direct-sum reference, finite-value and normalized inverse checks. Complex transforms also check Parseval; KISS plans are finalized once per length.",
      "validation_path": "docs/gams-transforms-validation.json",
      "review_path": "docs/gams-transforms.md",
      "checks": {
        "lengths": [
          7,
          8
        ],
        "max_forward_error": 1e-05,
        "max_roundtrip_error": 1e-06,
        "parseval_checked": true,
        "inverse_composition_divisor": "N",
        "precision": "C float"
      },
      "source_sha256": "6998711916bd6fabbee95967e0f6706d294491a166c1f4ad7b07808f7a245e8f",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=kissfft-f&example=gams-kissfft-f-complex-transform"
    },
    {
      "id": "fftpack-cosine-transform",
      "name": "gams-fftpack-cosine-transform",
      "package_id": "fftpack",
      "procedure_id": "fftpack-dct2",
      "gams_code": "J1a3",
      "problem_id": "cosine-transform-type-2",
      "path": "fpm_catalog/gams-drivers/fftpack-cosine-transform.f90",
      "revision": "0fffe7c05a918363a7cc12ae138a695afd115f36",
      "author_example": "test/test_fftpack_dct.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fftpack-MIT.txt"
      ],
      "modifications": "Author API usage adapted to lengths 7 and 8 and exactly representable deterministic inputs; independent direct-sum reference, finite-value and normalized inverse checks. Complex transforms also check Parseval; KISS plans are finalized once per length.",
      "validation_path": "docs/gams-transforms-validation.json",
      "review_path": "docs/gams-transforms.md",
      "checks": {
        "lengths": [
          7,
          8
        ],
        "max_forward_error": 1e-11,
        "max_roundtrip_error": 1e-11,
        "parseval_checked": false,
        "inverse_composition_divisor": "4*N",
        "precision": "fftpack rk"
      },
      "source_sha256": "aa17dafe278533d0ebe00a6208341e54eecf08d5688e32c779813a050b2acb02",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fftpack&example=gams-fftpack-cosine-transform"
    },
    {
      "id": "lbfgsb-box-quadratic",
      "name": "gams-lbfgsb-box-quadratic",
      "package_id": "lbfgsb",
      "procedure_id": "lbfgsb-setulb",
      "gams_code": "G2h1a2",
      "problem_id": "box-quadratic-projection",
      "path": "fpm_catalog/gams-drivers/lbfgsb-box-quadratic.f90",
      "revision": "ce1a9322016d6f31b652393e000a914b63af6fef",
      "author_example": "test/driver1.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/lbfgsb-BSD.txt"
      ],
      "modifications": "Shared convex quadratic, bounds and start; analytic gradient sanity check, convergence, known optimum, independent objective, bound feasibility and projected-gradient stationarity checks.",
      "validation_path": "docs/gams-constrained-validation.json",
      "review_path": "docs/gams-constrained.md",
      "checks": {
        "expected_solution": [
          1,
          0
        ],
        "expected_objective": 2,
        "max_parameter_error": 1e-08,
        "max_feasibility_error": 1e-10,
        "max_projected_gradient": 1e-08,
        "analytic_derivatives_checked": true
      },
      "source_sha256": "b820f536f166a3dca3bbd5cfed40e5dfb51b0372dbdf64c22627e976119ba261",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lbfgsb&example=gams-lbfgsb-box-quadratic"
    },
    {
      "id": "nlopt-box-quadratic",
      "name": "gams-nlopt-box-quadratic",
      "package_id": "nlopt-f",
      "procedure_id": "nlopt-lbfgs-bounds",
      "gams_code": "G2h1a2",
      "problem_id": "box-quadratic-projection",
      "path": "fpm_catalog/gams-drivers/nlopt-box-quadratic.f90",
      "revision": "83d21e7ebda9279a6dd4cc11fe6c735f48eb8689",
      "author_example": null,
      "reuse": "original",
      "license": "original",
      "license_files": [],
      "modifications": "Shared convex quadratic, bounds and start; analytic gradient sanity check, convergence, known optimum, independent objective, bound feasibility and projected-gradient stationarity checks.",
      "validation_path": "docs/gams-constrained-validation.json",
      "review_path": "docs/gams-constrained.md",
      "checks": {
        "expected_solution": [
          1,
          0
        ],
        "expected_objective": 2,
        "max_parameter_error": 1e-08,
        "max_feasibility_error": 1e-10,
        "max_projected_gradient": 1e-08,
        "analytic_derivatives_checked": true
      },
      "source_sha256": "a7aaf2849615e2aca2407a921b0d4cdf8e9f37943a1e039caa903571c81ac13d",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nlopt-f&example=gams-nlopt-box-quadratic"
    },
    {
      "id": "slsqp-circle-equality",
      "name": "gams-slsqp-circle-equality",
      "package_id": "slsqp",
      "procedure_id": "slsqp-slsqp-solver",
      "gams_code": "G2h3b1b",
      "problem_id": "circle-and-affine-constrained-quadratic",
      "path": "fpm_catalog/gams-drivers/slsqp-circle-equality.f90",
      "revision": "e28b14fc48189fd4fce5f359327164fca55b52be",
      "author_example": "test/slsqp_test.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/slsqp-BSD.txt"
      ],
      "modifications": "Author API pattern adapted to a known convex quadratic optimum with equality and nonlinear inequality constraints; analytic gradient/Jacobian sanity checks and independent feasibility, stationarity, complementarity and solution checks.",
      "validation_path": "docs/gams-constrained-validation.json",
      "review_path": "docs/gams-constrained.md",
      "checks": {
        "expected_solution": [
          1,
          0
        ],
        "expected_objective": 2,
        "max_parameter_error": 1e-07,
        "max_feasibility_error": 1e-07,
        "max_kkt_residual": 1e-07,
        "analytic_derivatives_checked": true
      },
      "source_sha256": "069d9025eaa2652a75aa0a8b40ab8ae81d24ccb2140f32f1901da9afa6808b2e",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=slsqp&example=gams-slsqp-circle-equality"
    },
    {
      "id": "fullerton-gamma-values",
      "name": "gams-fullerton-gamma-values",
      "package_id": "specfunc-fullerton",
      "procedure_id": "specfunc-fullerton-fgamma",
      "gams_code": "C7a",
      "problem_id": "positive-gamma-family",
      "path": "fpm_catalog/gams-drivers/fullerton-gamma-values.f90",
      "revision": "498b486b8ca18f0289a2d35c6c5bc67eb10aefe3",
      "author_example": "test/gamma/test_gamma.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/specfunc-fullerton-MIT.txt"
      ],
      "modifications": "Author public-API patterns adapted to deterministic positive-argument checks with independent reference calculations, explicit precision and finite-value checks; identities supplement reference values.",
      "validation_path": "docs/gams-special-functions-validation.json",
      "review_path": "docs/gams-special-functions.md",
      "checks": {
        "reference": "factorials and half-integer identities, real64 arithmetic",
        "max_scaled_error": 3e-06,
        "precision": "default real",
        "positive_arguments_only": true
      },
      "source_sha256": "b94611a206dd511c5875683ef87b912fa66ff2b17b7d104ca0d0c0bce4890140",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=specfunc-fullerton&example=gams-fullerton-gamma-values"
    },
    {
      "id": "fullerton-digamma-values",
      "name": "gams-fullerton-digamma-values",
      "package_id": "specfunc-fullerton",
      "procedure_id": "specfunc-fullerton-digamma",
      "gams_code": "C7c",
      "problem_id": "positive-digamma",
      "path": "fpm_catalog/gams-drivers/fullerton-digamma-values.f90",
      "revision": "498b486b8ca18f0289a2d35c6c5bc67eb10aefe3",
      "author_example": "test/gamma/test_gamma.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/specfunc-fullerton-MIT.txt"
      ],
      "modifications": "Author public-API patterns adapted to deterministic positive-argument checks with independent reference calculations, explicit precision and finite-value checks; identities supplement reference values.",
      "validation_path": "docs/gams-special-functions-validation.json",
      "review_path": "docs/gams-special-functions.md",
      "checks": {
        "reference": "harmonic sums, Euler constant and half-integer identity, real64 arithmetic",
        "max_absolute_error": 5e-06,
        "max_identity_residual": 5e-06,
        "precision": "default real",
        "positive_arguments_only": true
      },
      "source_sha256": "b89dcbec739c89eb2b72cd5db0f23c811dfb83c12205671feafd73e7e91c547c",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=specfunc-fullerton&example=gams-fullerton-digamma-values"
    },
    {
      "id": "bessels-modified-values",
      "name": "gams-bessels-modified-values",
      "package_id": "fortran-bessels",
      "procedure_id": "fortran-bessels-api",
      "gams_code": "C10b1",
      "problem_id": "positive-modified-bessel-orders-0-1",
      "path": "fpm_catalog/gams-drivers/bessels-modified-values.f90",
      "revision": "7bf8d6b144b00d4201a782ca65f6ae14a84d49a1",
      "author_example": "test/bessels_test.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fortran-bessels-MIT.txt"
      ],
      "modifications": "Author public-API patterns adapted to deterministic positive-argument checks with independent reference calculations, explicit precision and finite-value checks; identities supplement reference values.",
      "validation_path": "docs/gams-special-functions-validation.json",
      "review_path": "docs/gams-special-functions.md",
      "checks": {
        "reference": "mpmath 1.3.0 at 80 decimal digits, constants rounded into Bessel kind",
        "max_relative_error": 2e-12,
        "max_wronskian_residual": 1e-11,
        "independent_i_series": true,
        "precision": "package BK",
        "positive_arguments_only": true,
        "orders": [
          0,
          1
        ]
      },
      "source_sha256": "2d4b189e1de1fdc7b5c78cbce3c58c4989a1f1f14b2ce7c386fee5847a3d45f4",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-bessels&example=gams-bessels-modified-values"
    },
    {
      "id": "fortran-lapack-symmetric-eigen",
      "name": "gams-fortran-lapack-symmetric-eigen",
      "package_id": "fortran-lapack",
      "procedure_id": "fortran-lapack-syev",
      "gams_code": "D4a1",
      "problem_id": "symmetric-known-spectrum",
      "path": "fpm_catalog/gams-drivers/fortran-lapack-symmetric-eigen.f90",
      "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
      "author_example": null,
      "reuse": "original",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fortran-lapack-BSD.txt"
      ],
      "modifications": "Author API patterns adapted to deterministic real64 matrices with status/finite-value, reconstruction and orthogonality checks. Known spectra, repeated eigenvalues, rank deficiency and a QR least-squares application are checked without fixing vector signs or nonunique bases.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "max_residual": 1e-12,
        "cases": 2,
        "precision": "real64",
        "reconstruction_checked": true,
        "orthogonality_checked": true,
        "vector_signs_fixed": false
      },
      "source_sha256": "c4723998d1b2aceceaf2be848c50622ca0bcfe32489d27a0a2cdb0ee095b03b1",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-lapack&example=gams-fortran-lapack-symmetric-eigen"
    },
    {
      "id": "fortran-lapack-qr-decomposition",
      "name": "gams-fortran-lapack-qr-decomposition",
      "package_id": "fortran-lapack",
      "procedure_id": "fortran-lapack-qr",
      "gams_code": "D5",
      "problem_id": "rectangular-qr-and-least-squares",
      "path": "fpm_catalog/gams-drivers/fortran-lapack-qr-decomposition.f90",
      "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
      "author_example": "test/test_la_qr.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fortran-lapack-BSD.txt"
      ],
      "modifications": "Author API patterns adapted to deterministic real64 matrices with status/finite-value, reconstruction and orthogonality checks. Known spectra, repeated eigenvalues, rank deficiency and a QR least-squares application are checked without fixing vector signs or nonunique bases.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "max_residual": 1e-12,
        "cases": 2,
        "precision": "real64",
        "reconstruction_checked": true,
        "orthogonality_checked": true,
        "vector_signs_fixed": false
      },
      "source_sha256": "8c7fdb487ee10e22c76a7988bc6545d5b4fa313357b92b63114b9bdbd2af9341",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-lapack&example=gams-fortran-lapack-qr-decomposition"
    },
    {
      "id": "fortran-lapack-svd-decomposition",
      "name": "gams-fortran-lapack-svd-decomposition",
      "package_id": "fortran-lapack",
      "procedure_id": "fortran-lapack-gesvd",
      "gams_code": "D6",
      "problem_id": "rectangular-known-singular-values",
      "path": "fpm_catalog/gams-drivers/fortran-lapack-svd-decomposition.f90",
      "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
      "author_example": null,
      "reuse": "original",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fortran-lapack-BSD.txt"
      ],
      "modifications": "Author API patterns adapted to deterministic real64 matrices with status/finite-value, reconstruction and orthogonality checks. Known spectra, repeated eigenvalues, rank deficiency and a QR least-squares application are checked without fixing vector signs or nonunique bases.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "max_residual": 1e-12,
        "cases": 2,
        "precision": "real64",
        "reconstruction_checked": true,
        "orthogonality_checked": true,
        "vector_signs_fixed": false
      },
      "source_sha256": "6d5f5de9ce40a3da59915fa05c8a3de5a8a65b8d1b2deedcdb0213a5d372bcd9",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-lapack&example=gams-fortran-lapack-svd-decomposition"
    },
    {
      "id": "stdlib-mean-checks",
      "name": "gams-stdlib-mean-checks",
      "package_id": "stdlib",
      "procedure_id": "stdlib-mean",
      "gams_code": "L1a1a",
      "problem_id": "real64-known-means",
      "path": "fpm_catalog/gams-drivers/stdlib-mean-checks.f90",
      "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
      "author_example": "test/test_mean.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/stdlib-MIT.txt"
      ],
      "modifications": "Author API patterns adapted to shared base/shifted/constant/scaled finite datasets, known answers and packed subsets; stdlib additionally checks native masks and column reduction. Sample and population normalization are made explicit.",
      "validation_path": "docs/gams-statistics-validation.json",
      "review_path": "docs/gams-statistics.md",
      "checks": {
        "precision": "real64",
        "cases": 4,
        "packed_subset_checked": true,
        "native_mask_and_columns_checked": true,
        "max_scaled_error": "64*epsilon",
        "population_normalization": null
      },
      "source_sha256": "5d729fea4dcca65d9a07c807e875013414c2f2e0ec3f2c679a8c4de5c2849bc7",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=stdlib&example=gams-stdlib-mean-checks"
    },
    {
      "id": "fstats-mean-checks",
      "name": "gams-fstats-mean-checks",
      "package_id": "fstats",
      "procedure_id": "fstats-mean",
      "gams_code": "L1a1a",
      "problem_id": "real64-known-means",
      "path": "fpm_catalog/gams-drivers/fstats-mean-checks.f90",
      "revision": "5fdb86d1e7fa057d776d7d9477942fd6d387dd2f",
      "author_example": "tests/fstats_statistics_tests.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fstats-MIT.txt"
      ],
      "modifications": "Author API patterns adapted to shared base/shifted/constant/scaled finite datasets, known answers and packed subsets; stdlib additionally checks native masks and column reduction. Sample and population normalization are made explicit.",
      "validation_path": "docs/gams-statistics-validation.json",
      "review_path": "docs/gams-statistics.md",
      "checks": {
        "precision": "real64",
        "cases": 4,
        "packed_subset_checked": true,
        "native_mask_and_columns_checked": false,
        "max_scaled_error": "64*epsilon",
        "population_normalization": null
      },
      "source_sha256": "64c573f02b4b5f4382952d54aae7f7a7f10345aeb2d8fe8e8a05b8df93159b8a",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fstats&example=gams-fstats-mean-checks"
    },
    {
      "id": "stdlib-sample-variance-checks",
      "name": "gams-stdlib-sample-variance-checks",
      "package_id": "stdlib",
      "procedure_id": "stdlib-var",
      "gams_code": "L1a1b",
      "problem_id": "real64-known-sample-variances",
      "path": "fpm_catalog/gams-drivers/stdlib-sample-variance-checks.f90",
      "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
      "author_example": "test/test_var.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/stdlib-MIT.txt"
      ],
      "modifications": "Author API patterns adapted to shared base/shifted/constant/scaled finite datasets, known answers and packed subsets; stdlib additionally checks native masks and column reduction. Sample and population normalization are made explicit.",
      "validation_path": "docs/gams-statistics-validation.json",
      "review_path": "docs/gams-statistics.md",
      "checks": {
        "precision": "real64",
        "cases": 4,
        "packed_subset_checked": true,
        "native_mask_and_columns_checked": true,
        "max_scaled_error": 1e-12,
        "population_normalization": "native corrected=.false."
      },
      "source_sha256": "cfbdb8a3cd4dca5ce849aeb85aee98e086cdf714129b86a778ff1ad5a90e1c71",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=stdlib&example=gams-stdlib-sample-variance-checks"
    },
    {
      "id": "fstats-sample-variance-checks",
      "name": "gams-fstats-sample-variance-checks",
      "package_id": "fstats",
      "procedure_id": "fstats-variance",
      "gams_code": "L1a1b",
      "problem_id": "real64-known-sample-variances",
      "path": "fpm_catalog/gams-drivers/fstats-sample-variance-checks.f90",
      "revision": "5fdb86d1e7fa057d776d7d9477942fd6d387dd2f",
      "author_example": "tests/fstats_statistics_tests.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fstats-MIT.txt"
      ],
      "modifications": "Author API patterns adapted to shared base/shifted/constant/scaled finite datasets, known answers and packed subsets; stdlib additionally checks native masks and column reduction. Sample and population normalization are made explicit.",
      "validation_path": "docs/gams-statistics-validation.json",
      "review_path": "docs/gams-statistics.md",
      "checks": {
        "precision": "real64",
        "cases": 4,
        "packed_subset_checked": true,
        "native_mask_and_columns_checked": false,
        "max_scaled_error": 1e-12,
        "population_normalization": "sample*(N-1)/N"
      },
      "source_sha256": "b456208c66428c6123d948817f3e34317537afcf53f6493b59148dd3e002ce3a",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fstats&example=gams-fstats-sample-variance-checks"
    },
    {
      "id": "mt19937-64-reference-sequence",
      "name": "gams-mt19937-64-reference-sequence",
      "package_id": "mersenne-twister-fortran",
      "procedure_id": "mersenne-twister-fortran-genrand64-real2",
      "gams_code": "L6a21",
      "problem_id": "mt19937-64-sequence",
      "path": "fpm_catalog/gams-drivers/mt19937-64-reference-sequence.f90",
      "revision": "1e3e364f4c022eab3fcd5d07b10a2c2be77a822b",
      "author_example": "test/mt19937_64_test.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/mersenne-twister-fortran-BSD.txt"
      ],
      "modifications": "Author initialization/API patterns adapted to deterministic sequence and seeded replay checks, with exact reference outputs or independent state recurrences where available. No random-moment acceptance thresholds.",
      "validation_path": "docs/gams-random-validation.json",
      "review_path": "docs/gams-random.md",
      "checks": {
        "draws": 1000,
        "seed": 5489,
        "bit_reference_positions": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          312,
          313,
          624,
          625,
          1000
        ],
        "reference": "C++11 std::mt19937_64, g++ GCC 17.0.0 20260510 experimental",
        "reference_files": [
          "fpm_catalog/gams-drivers/references/mt19937_64_reference.cpp",
          "fpm_catalog/gams-drivers/references/mt19937_64_reference.txt"
        ],
        "exact_uniform_conversion": true
      },
      "source_sha256": "547d4f39a88c8138e8bb4dc05a3a68f86e74c0fecb9b2dc4f58916bbf0c9a422",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=mersenne-twister-fortran&example=gams-mt19937-64-reference-sequence"
    },
    {
      "id": "rngff-lcg-reference-sequence",
      "name": "gams-rngff-lcg-reference-sequence",
      "package_id": "rngff",
      "procedure_id": "rngff-linear-congruential-t",
      "gams_code": "L6a21",
      "problem_id": "combined-lcg-sequence",
      "path": "fpm_catalog/gams-drivers/rngff-lcg-reference-sequence.f90",
      "revision": "8eccd1479f35159922a85db25a39bcd58a0c3faa",
      "author_example": "test/lcg_test.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/rngff-MIT.txt"
      ],
      "modifications": "Author initialization/API patterns adapted to deterministic sequence and seeded replay checks, with exact reference outputs or independent state recurrences where available. No random-moment acceptance thresholds.",
      "validation_path": "docs/gams-random-validation.json",
      "review_path": "docs/gams-random.md",
      "checks": {
        "draws": 1000,
        "seeds": [
          12345,
          67890
        ],
        "reference": "int64 direct modular multiplication",
        "real32_rounding_checked": true,
        "exact_state_and_sequence": true
      },
      "source_sha256": "96bdcac835919af24f8b53dfe50fb0156c9396e2a74e379483444246b448440f",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rngff&example=gams-rngff-lcg-reference-sequence"
    },
    {
      "id": "stdlib-seed-replay",
      "name": "gams-stdlib-seed-replay",
      "package_id": "stdlib",
      "procedure_id": "stdlib-random-seed",
      "gams_code": "L6c",
      "problem_id": "stdlib-distribution-seed-replay",
      "path": "fpm_catalog/gams-drivers/stdlib-seed-replay.f90",
      "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
      "author_example": "example/example_random_seed.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/stdlib-MIT.txt"
      ],
      "modifications": "Author initialization/API patterns adapted to deterministic sequence and seeded replay checks, with exact reference outputs or independent state recurrences where available. No random-moment acceptance thresholds.",
      "validation_path": "docs/gams-random-validation.json",
      "review_path": "docs/gams-random.md",
      "checks": {
        "draws": 1024,
        "seeds": [
          1234567,
          1234568
        ],
        "exact_reseeded_replay": true,
        "second_selected_seed_differs": true,
        "stream": "stdlib dist_rand, separate from intrinsic RANDOM_NUMBER"
      },
      "source_sha256": "6f6a50952ac8c8cb07fac6e7027fbd82e378eb23b3581a4647210855c206074a",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=stdlib&example=gams-stdlib-seed-replay"
    },
    {
      "id": "numdiff-analytic-derivatives",
      "name": "gams-numdiff-analytic-derivatives",
      "package_id": "numdiff",
      "procedure_id": "numdiff-compute-derivative",
      "gams_code": "H1",
      "problem_id": "exp-sine-derivatives",
      "path": "fpm_catalog/gams-drivers/numdiff-analytic-derivatives.f90",
      "revision": "687157df8d2dec072b5484974bab71f7b14b0e9f",
      "author_example": "test/diff_test.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/numdiff-BSD-3.txt"
      ],
      "modifications": "Author API patterns adapted to exp(x)*sin(x) on four shared points, analytic references, finite-result checks and explicit method-specific tolerances. Module callbacks avoid executable-stack trampolines.",
      "validation_path": "docs/gams-differentiation-validation.json",
      "review_path": "docs/gams-differentiation.md",
      "checks": {
        "precision": "real64",
        "points": [
          -0.5,
          0,
          0.5,
          1
        ],
        "reference": "analytic derivatives of exp(x)*sin(x)",
        "orders": [
          1,
          2,
          3
        ],
        "endpoint_formulas": true,
        "requested_absolute_errors": [
          1e-08,
          1e-08,
          1e-06
        ],
        "max_scaled_errors": [
          1e-07,
          1e-07,
          1e-06
        ]
      },
      "source_sha256": "034ea5cc8b2e8b717e220ca1ef9e6178aa2205c87dc7927b12b0be7ca619ab2f",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=numdiff&example=gams-numdiff-analytic-derivatives"
    },
    {
      "id": "fordiff-analytic-derivatives",
      "name": "gams-fordiff-analytic-derivatives",
      "package_id": "fordiff",
      "procedure_id": "fordiff-derivative",
      "gams_code": "H1",
      "problem_id": "exp-sine-derivatives",
      "path": "fpm_catalog/gams-drivers/fordiff-analytic-derivatives.f90",
      "revision": "f1a1099a590107645314f1388c432624ff97b9bc",
      "author_example": "example/demo1.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fordiff-BSD-3.txt"
      ],
      "modifications": "Author API patterns adapted to exp(x)*sin(x) on four shared points, analytic references, finite-result checks and explicit method-specific tolerances. Module callbacks avoid executable-stack trampolines.",
      "validation_path": "docs/gams-differentiation-validation.json",
      "review_path": "docs/gams-differentiation.md",
      "checks": {
        "precision": "real64",
        "points": [
          -0.5,
          0,
          0.5,
          1
        ],
        "reference": "analytic derivatives of exp(x)*sin(x)",
        "orders": [
          1
        ],
        "methods": [
          "forward",
          "backward",
          "central",
          "complex-step"
        ],
        "finite_difference_step": 1e-05,
        "complex_step": 1e-20,
        "max_scaled_errors": [
          5e-05,
          5e-05,
          1e-09,
          5e-14
        ]
      },
      "source_sha256": "e121b7a8edb8867a3d8d67c8db6c6114a39abc88bcb3cb1c9f49655e108115d8",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fordiff&example=gams-fordiff-analytic-derivatives"
    },
    {
      "id": "ad-dnsvm-analytic-derivatives",
      "name": "gams-ad-dnsvm-analytic-derivatives",
      "package_id": "ad_dnsvm",
      "procedure_id": "ad-dnsvm-get-dns",
      "gams_code": "H1",
      "problem_id": "exp-sine-derivatives",
      "path": "fpm_catalog/gams-drivers/ad-dnsvm-analytic-derivatives.f90",
      "revision": "32db0bd122ce1dae290e9cf4c1fda4ab8f3de6f1",
      "author_example": "APP/Example_dnS.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/ad_dnsvm-MIT.txt"
      ],
      "modifications": "Author API patterns adapted to exp(x)*sin(x) on four shared points, analytic references, finite-result checks and explicit method-specific tolerances. Module callbacks avoid executable-stack trampolines.",
      "validation_path": "docs/gams-differentiation-validation.json",
      "review_path": "docs/gams-differentiation.md",
      "checks": {
        "precision": "real64",
        "points": [
          -0.5,
          0,
          0.5,
          1
        ],
        "reference": "analytic derivatives of exp(x)*sin(x)",
        "orders": [
          0,
          1,
          2,
          3
        ],
        "max_scaled_error": 5e-14,
        "variables": 1
      },
      "source_sha256": "01800ef46c21cb6213c4d4a96fd7ba77d87de9c8cb2ca5d7dcd781d153f54ca8",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ad_dnsvm&example=gams-ad-dnsvm-analytic-derivatives"
    },
    {
      "id": "minpack-rosenbrock-system",
      "name": "gams-minpack-rosenbrock-system",
      "package_id": "minpack",
      "procedure_id": "minpack-hybrd1",
      "gams_code": "F2",
      "problem_id": "rosenbrock-square-system",
      "path": "fpm_catalog/gams-drivers/minpack-rosenbrock-system.f90",
      "revision": "c0b5aea9fcd2b83865af921a7a7e881904f8d3c2",
      "author_example": "examples/example_hybrd1.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/minpack-MIT.txt"
      ],
      "modifications": "Author solver API patterns adapted to a shared two-equation Rosenbrock system, two starting points, known root, independently recomputed residuals and explicit convergence checks. Module callbacks avoid executable-stack trampolines.",
      "validation_path": "docs/gams-systems-validation.json",
      "review_path": "docs/gams-systems.md",
      "checks": {
        "precision": "real64",
        "starting_points": [
          [
            -1.2,
            1
          ],
          [
            2,
            2
          ]
        ],
        "expected_root": [
          1,
          1
        ],
        "max_root_error": 1e-08,
        "max_residual_infinity_norm": 1e-08,
        "configuration": "finite-difference Jacobian",
        "requested_x_tolerance": 1e-10,
        "required_status": 1
      },
      "source_sha256": "05ce7786f2485ba903e122da97cdb437bc2100ff6b48779a191e40f176e43d3d",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=minpack&example=gams-minpack-rosenbrock-system"
    },
    {
      "id": "nonlin-rosenbrock-system",
      "name": "gams-nonlin-rosenbrock-system",
      "package_id": "nonlin",
      "procedure_id": "nonlin-newton-solver",
      "gams_code": "F2",
      "problem_id": "rosenbrock-square-system",
      "path": "fpm_catalog/gams-drivers/nonlin-rosenbrock-system.f90",
      "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
      "author_example": "examples/nonlin_newton_example.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/nonlin-MIT.txt"
      ],
      "modifications": "Author solver API patterns adapted to a shared two-equation Rosenbrock system, two starting points, known root, independently recomputed residuals and explicit convergence checks. Module callbacks avoid executable-stack trampolines.",
      "validation_path": "docs/gams-systems-validation.json",
      "review_path": "docs/gams-systems.md",
      "checks": {
        "precision": "real64",
        "starting_points": [
          [
            -1.2,
            1
          ],
          [
            2,
            2
          ]
        ],
        "expected_root": [
          1,
          1
        ],
        "max_root_error": 1e-08,
        "max_residual_infinity_norm": 1e-08,
        "configuration": "finite-difference and analytic Jacobians",
        "function_tolerance": 1e-10,
        "variable_tolerance": 1e-12,
        "gradient_tolerance": 1e-12,
        "max_function_evaluations": 2000,
        "required_termination": "function or variable change, plus independently checked root and residual"
      },
      "source_sha256": "f971f1a1029b637de4ff7d256629cd7bc8c169b35dfc56165961093d409d6b25",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nonlin&example=gams-nonlin-rosenbrock-system"
    },
    {
      "id": "nlesolver-rosenbrock-system",
      "name": "gams-nlesolver-rosenbrock-system",
      "package_id": "nlesolver-fortran",
      "procedure_id": "nlesolver-fortran-nlesolver-type",
      "gams_code": "F2",
      "problem_id": "rosenbrock-square-system",
      "path": "fpm_catalog/gams-drivers/nlesolver-rosenbrock-system.f90",
      "revision": "60f38870a25e6b448dd552f184aa2f8616fc8cb0",
      "author_example": "test/sparse_test.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/nlesolver-fortran-BSD.txt"
      ],
      "modifications": "Author solver API patterns adapted to a shared two-equation Rosenbrock system, two starting points, known root, independently recomputed residuals and explicit convergence checks. Module callbacks avoid executable-stack trampolines.",
      "validation_path": "docs/gams-systems-validation.json",
      "review_path": "docs/gams-systems.md",
      "checks": {
        "precision": "real64",
        "starting_points": [
          [
            -1.2,
            1
          ],
          [
            2,
            2
          ]
        ],
        "expected_root": [
          1,
          1
        ],
        "max_root_error": 1e-08,
        "max_residual_infinity_norm": 1e-08,
        "configuration": "analytic dense Jacobian; backtracking; no Broyden updates",
        "function_tolerance": 1e-10,
        "variable_tolerance": 1e-12,
        "max_iterations": 200,
        "required_status": 1
      },
      "source_sha256": "6c867e1eee2bbd660cede6ffdadabe78055aff8336e2342aa3033c71e4b6f9d4",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nlesolver-fortran&example=gams-nlesolver-rosenbrock-system"
    },
    {
      "id": "minres-indefinite-solve",
      "name": "gams-minres-indefinite-solve",
      "package_id": "minres",
      "procedure_id": "minres-minres-solver",
      "gams_code": "D2b4",
      "problem_id": "symmetric-quasidefinite-system",
      "path": "fpm_catalog/gams-drivers/minres-indefinite-solve.f90",
      "revision": "c7bb4c7a0ddf13729d3556878ccc688a208a052a",
      "author_example": "test/minres_test.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/minres-MIT.txt"
      ],
      "modifications": "Author API patterns adapted to two known solutions, independently represented matrix/residual checks and explicit termination checks. Sparse indefinite and dense positive-definite configurations are distinguished.",
      "validation_path": "docs/gams-sparse-validation.json",
      "review_path": "docs/gams-sparse.md",
      "checks": {
        "precision": "real64",
        "dimension": 5,
        "right_hand_sides": 2,
        "max_absolute_solution_error": 1e-09,
        "max_scaled_backward_error": 1e-11,
        "backward_error": "norm_inf(A*x-b)/(norm_inf(A)*norm_inf(x)+norm_inf(b))",
        "operator_storage": "upper-coordinate symmetric product",
        "requested_relative_tolerance": 1e-12,
        "max_iterations": 100,
        "preconditioned": false,
        "shift": 0,
        "accepted_stop_reasons": [
          1,
          2
        ]
      },
      "source_sha256": "ae70896cffefc5fbb1b5c3c1fc53b2daedc2d0644868505061424c9acba015a3",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=minres&example=gams-minres-indefinite-solve"
    },
    {
      "id": "qdldl-quasidefinite-solve",
      "name": "gams-qdldl-quasidefinite-solve",
      "package_id": "qdldl-fortran",
      "procedure_id": "qdldl-fortran-api",
      "gams_code": "D2b4",
      "problem_id": "symmetric-quasidefinite-system",
      "path": "fpm_catalog/gams-drivers/qdldl-quasidefinite-solve.f90",
      "revision": "8ebdd7fa1075bfb89115d0955806b0996b6b29d5",
      "author_example": "example/example_kkt.f90",
      "reuse": "adapted",
      "license": "Apache-2.0",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/qdldl-fortran-Apache-2.0.txt"
      ],
      "modifications": "Author API patterns adapted to two known solutions, independently represented matrix/residual checks and explicit termination checks. Sparse indefinite and dense positive-definite configurations are distinguished.",
      "validation_path": "docs/gams-sparse-validation.json",
      "review_path": "docs/gams-sparse.md",
      "checks": {
        "precision": "real64",
        "dimension": 5,
        "right_hand_sides": 2,
        "max_absolute_solution_error": 1e-09,
        "max_scaled_backward_error": 1e-11,
        "backward_error": "norm_inf(A*x-b)/(norm_inf(A)*norm_inf(x)+norm_inf(b))",
        "orderings": [
          "natural",
          "RCM",
          "AMD"
        ],
        "expected_inertia": [
          3,
          2,
          0
        ],
        "regularization": 0,
        "iterative_refinement_steps": 0,
        "factors_reused": true
      },
      "source_sha256": "05802aaffa015fe1bfe12207c82ed5e9be092d41c8e7806835e13e0b7c517597",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=qdldl-fortran&example=gams-qdldl-quasidefinite-solve"
    },
    {
      "id": "kiss-positive-definite-solve",
      "name": "gams-kiss-positive-definite-solve",
      "package_id": "kiss",
      "procedure_id": "kiss-cg-dense",
      "gams_code": "D2b1b",
      "problem_id": "positive-definite-tridiagonal-system",
      "path": "fpm_catalog/gams-drivers/kiss-positive-definite-solve.f90",
      "revision": "55f0f7ccb1601a0628a17928b5b6b79f61da2892",
      "author_example": "test/test_kiss.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/kiss-BSD-3.txt"
      ],
      "modifications": "Author API patterns adapted to two known solutions, independently represented matrix/residual checks and explicit termination checks. Sparse indefinite and dense positive-definite configurations are distinguished.",
      "validation_path": "docs/gams-sparse-validation.json",
      "review_path": "docs/gams-sparse.md",
      "checks": {
        "precision": "real64",
        "dimension": 20,
        "right_hand_sides": 2,
        "max_absolute_solution_error": 1e-09,
        "max_scaled_backward_error": 1e-11,
        "backward_error": "norm_inf(A*x-b)/(norm_inf(A)*norm_inf(x)+norm_inf(b))",
        "storage": "dense",
        "relative_tolerance": 1e-12,
        "absolute_tolerance": 1e-14,
        "max_iterations": 200,
        "required_status": 0
      },
      "source_sha256": "6180ad709fab9e0a6e4a7954b25225617dce6fa489ef17e1f28510deb7ecf9c1",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=kiss&example=gams-kiss-positive-definite-solve"
    },
    {
      "id": "dcuhre-box-integrals",
      "name": "gams-dcuhre-box-integrals",
      "package_id": "dcuhre",
      "procedure_id": "dcuhre-dcuhre",
      "gams_code": "H2b1a1",
      "problem_id": "dcuhre-box-integrals",
      "path": "fpm_catalog/gams-drivers/dcuhre-box-integrals.f90",
      "revision": "da8becb7f5313c1d7387066ef2106be9e156e20c",
      "author_example": "test/dtest1.f",
      "reuse": "adapted",
      "license": "ACM non-commercial",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/dcuhre-ACM.txt"
      ],
      "modifications": "Author API patterns adapted to deterministic analytic integrals and polynomial moments, finite-data checks and explicit accuracy settings. Adaptive integration is distinguished from node/weight generation.",
      "validation_path": "docs/gams-cubature-validation.json",
      "review_path": "docs/gams-cubature.md",
      "checks": {
        "precision": "real64",
        "dimensions": [
          2,
          3
        ],
        "components": [
          "sum(x**2)",
          "exp(sum(x))"
        ],
        "boxes": [
          [
            [
              0,
              0
            ],
            [
              1,
              1
            ]
          ],
          [
            [
              -1,
              0,
              1
            ],
            [
              0,
              2,
              2
            ]
          ]
        ],
        "absolute_tolerance": 1e-10,
        "relative_tolerance": 1e-09,
        "max_evaluations": 20000,
        "workspace_length": 10000,
        "required_status": 0,
        "max_scaled_analytic_error": 1e-08
      },
      "source_sha256": "d388e80444555f27fed3499c63e2e308c02da09111f7ac5897b4977f19672ce5",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dcuhre&example=gams-dcuhre-box-integrals"
    },
    {
      "id": "gauss-jacobi-polynomial-moments",
      "name": "gams-gauss-jacobi-polynomial-moments",
      "package_id": "gaussjacobiquad",
      "procedure_id": "gaussjacobiquad-gauss-jacobi",
      "gams_code": "H2c",
      "problem_id": "gauss-jacobi-polynomial-moments",
      "path": "fpm_catalog/gams-drivers/gauss-jacobi-polynomial-moments.f90",
      "revision": "ffb970c68eea0b39b140f80f788c8994547d8bfb",
      "author_example": "app/gjp_quad.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/gaussjacobiquad-MIT.txt"
      ],
      "modifications": "Author API patterns adapted to deterministic analytic integrals and polynomial moments, finite-data checks and explicit accuracy settings. Adaptive integration is distinguished from node/weight generation.",
      "validation_path": "docs/gams-cubature-validation.json",
      "review_path": "docs/gams-cubature.md",
      "checks": {
        "precision": "real64",
        "nodes": 4,
        "methods": [
          "recurrence",
          "gw"
        ],
        "alpha_beta": [
          [
            0,
            0
          ],
          [
            1,
            0
          ]
        ],
        "monomial_degrees": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "max_scaled_moment_error": 1e-11
      },
      "source_sha256": "60b4368a009690895d34a2a727a8462daa3779943b11979e2566a67c375ce4c2",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=gaussjacobiquad&example=gams-gauss-jacobi-polynomial-moments"
    },
    {
      "id": "cubatures-simplex-moments",
      "name": "gams-cubatures-simplex-moments",
      "package_id": "fortran_cubatures",
      "procedure_id": "fortran-cubatures-cubature",
      "gams_code": "H2c",
      "problem_id": "cubatures-simplex-moments",
      "path": "fpm_catalog/gams-drivers/cubatures-simplex-moments.f90",
      "revision": "aca04975d09aed329fd4210defd7052926dc01c1",
      "author_example": "test/test_cubatures.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fortran_cubatures-MIT.txt"
      ],
      "modifications": "Author API patterns adapted to deterministic analytic integrals and polynomial moments, finite-data checks and explicit accuracy settings. Adaptive integration is distinguished from node/weight generation.",
      "validation_path": "docs/gams-cubature-validation.json",
      "review_path": "docs/gams-cubature.md",
      "checks": {
        "precision": "real64",
        "elements": [
          "triangle",
          "tetrahedron",
          "quadrilateral"
        ],
        "degrees": [
          5,
          4,
          5
        ],
        "moments_per_element": [
          21,
          35,
          36
        ],
        "max_scaled_moment_error": 1e-12
      },
      "source_sha256": "da3d5aea45fb47fb72f35733f4c77eeddff12c8c15e19710deae9d96e843b30d",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran_cubatures&example=gams-cubatures-simplex-moments"
    },
    {
      "id": "finterp-bilinear-surface",
      "name": "gams-finterp-bilinear-surface",
      "package_id": "finterp",
      "procedure_id": "finterp-linear-interp-2d",
      "gams_code": "E2a",
      "problem_id": "nonuniform-bilinear-surface",
      "path": "fpm_catalog/gams-drivers/finterp-bilinear-surface.f90",
      "revision": "95aaceaf86f5d4d49328b783c5dff9b006b0bfc9",
      "author_example": "test/test.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/finterp-BSD.txt"
      ],
      "modifications": "Author API patterns adapted to a shared nonuniform 6-by-5 grid, bilinear analytic and curved data, node checks, independent four-corner interpolation and corner bounds. B-spline adds a bicubic polynomial with analytic dx, dy and mixed partial references.",
      "validation_path": "docs/gams-surfaces-validation.json",
      "review_path": "docs/gams-surfaces.md",
      "checks": {
        "precision": "real64",
        "grid_x": [
          -1,
          -0.6,
          0,
          0.3,
          1,
          2
        ],
        "grid_y": [
          -2,
          -0.75,
          0,
          0.5,
          1.5
        ],
        "surface_cases": 2,
        "node_checks_per_case": 30,
        "cell_samples_per_case": 500,
        "max_absolute_bilinear_error": 1e-11,
        "extrapolation_checked": false
      },
      "source_sha256": "ab4bdf2140a5e3fb216b3acc69f67ad4a35622b92cbbe1acdc4e6789b8c312eb",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=finterp&example=gams-finterp-bilinear-surface"
    },
    {
      "id": "bspline-tensor-surface",
      "name": "gams-bspline-tensor-surface",
      "package_id": "bspline-fortran",
      "procedure_id": "bspline-fortran-bspline-2d",
      "gams_code": "E2a",
      "problem_id": "nonuniform-bilinear-surface",
      "path": "fpm_catalog/gams-drivers/bspline-tensor-surface.f90",
      "revision": "047c724451aeee7f883c0d5acba3f7bd22a5de01",
      "author_example": "test/test_oo.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/bspline-fortran-BSD.txt"
      ],
      "modifications": "Author API patterns adapted to a shared nonuniform 6-by-5 grid, bilinear analytic and curved data, node checks, independent four-corner interpolation and corner bounds. B-spline adds a bicubic polynomial with analytic dx, dy and mixed partial references.",
      "validation_path": "docs/gams-surfaces-validation.json",
      "review_path": "docs/gams-surfaces.md",
      "checks": {
        "precision": "real64",
        "grid_x": [
          -1,
          -0.6,
          0,
          0.3,
          1,
          2
        ],
        "grid_y": [
          -2,
          -0.75,
          0,
          0.5,
          1.5
        ],
        "surface_cases": 2,
        "node_checks_per_case": 30,
        "cell_samples_per_case": 500,
        "max_absolute_bilinear_error": 1e-11,
        "extrapolation_checked": false,
        "bilinear_orders": [
          2,
          2
        ],
        "polynomial_orders": [
          4,
          4
        ],
        "polynomial_query_points": 121,
        "partial_derivatives": [
          [
            0,
            0
          ],
          [
            1,
            0
          ],
          [
            0,
            1
          ],
          [
            1,
            1
          ]
        ],
        "max_scaled_polynomial_error": 1e-10
      },
      "source_sha256": "9f83bdd1960631ae64ad92b97e4391b785bdfd94849fdf85a2b2b9428d0377e7",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=bspline-fortran&example=gams-bspline-tensor-surface"
    },
    {
      "id": "dvode-stiff-two-scale",
      "name": "gams-dvode-stiff-two-scale",
      "package_id": "dvode",
      "procedure_id": "dvode-dvode-t",
      "gams_code": "I1a2",
      "problem_id": "autonomous-stiff-two-scale-system",
      "path": "fpm_catalog/gams-drivers/dvode-stiff-two-scale.f90",
      "revision": "59d2eedd1410a4bd6c196c24d08f95a7c20565c0",
      "author_example": "test/dvdemo.f90",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/dvode-BSD.txt"
      ],
      "modifications": "Author solver API patterns adapted to a common autonomous stiff linear system with exact fast/slow exponential modes, four output times, explicit status checks and independently evaluated solution references. Module callbacks avoid executable-stack trampolines.",
      "validation_path": "docs/gams-stiff-validation.json",
      "review_path": "docs/gams-stiff.md",
      "checks": {
        "precision": "real64",
        "initial_state": [
          2,
          1
        ],
        "output_times": [
          0.001,
          0.01,
          0.1,
          1
        ],
        "eigenvalues": [
          -1000,
          -1
        ],
        "max_scaled_state_error": 2e-06,
        "max_absolute_fast_mode_error": 4e-06,
        "max_time_error": 1e-12,
        "method_flag": 22,
        "relative_tolerance": 1e-08,
        "absolute_tolerance": 1e-10,
        "required_state": 2
      },
      "source_sha256": "654817d98b17b61a500d0fc9fcb00b4d9bcff5c8ecdfea8c1fb035dec897d0b5",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dvode&example=gams-dvode-stiff-two-scale"
    },
    {
      "id": "lsoda-stiff-two-scale",
      "name": "gams-lsoda-stiff-two-scale",
      "package_id": "odepack",
      "procedure_id": "odepack-lsoda-class",
      "gams_code": "I1a2",
      "problem_id": "autonomous-stiff-two-scale-system",
      "path": "fpm_catalog/gams-drivers/lsoda-stiff-two-scale.f90",
      "revision": "d5db96093dc14fff54e10575cc586fa85392b078",
      "author_example": "test/benchmark.f90",
      "reuse": "adapted",
      "license": "Public domain (retained LLNL notice)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/odepack-Public-Domain.txt"
      ],
      "modifications": "Author solver API patterns adapted to a common autonomous stiff linear system with exact fast/slow exponential modes, four output times, explicit status checks and independently evaluated solution references. Module callbacks avoid executable-stack trampolines.",
      "validation_path": "docs/gams-stiff-validation.json",
      "review_path": "docs/gams-stiff.md",
      "checks": {
        "precision": "real64",
        "initial_state": [
          2,
          1
        ],
        "output_times": [
          0.001,
          0.01,
          0.1,
          1
        ],
        "eigenvalues": [
          -1000,
          -1
        ],
        "max_scaled_state_error": 2e-06,
        "max_absolute_fast_mode_error": 4e-06,
        "max_time_error": 1e-12,
        "relative_tolerance": 1e-08,
        "absolute_tolerance": 1e-10,
        "required_state": 2,
        "max_internal_steps_per_call": 5000,
        "bdf_indicator_required": true
      },
      "source_sha256": "f657052e3e9a6dac1c4656d611a31a699532393adcdf91091b8d7c46810cfbf0",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=odepack&example=gams-lsoda-stiff-two-scale"
    },
    {
      "id": "stiff3-stiff-two-scale",
      "name": "gams-stiff3-stiff-two-scale",
      "package_id": "stiff3",
      "procedure_id": "stiff3-stiff3",
      "gams_code": "I1a2",
      "problem_id": "autonomous-stiff-two-scale-system",
      "path": "fpm_catalog/gams-drivers/stiff3-stiff-two-scale.f90",
      "revision": "70ab5c86c2ac922ed148bbb1182345cca248e077",
      "author_example": "example/hires.f90",
      "reuse": "adapted",
      "license": "Apache-2.0",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/stiff3-Apache-2.0.txt"
      ],
      "modifications": "Author solver API patterns adapted to a common autonomous stiff linear system with exact fast/slow exponential modes, four output times, explicit status checks and independently evaluated solution references. Module callbacks avoid executable-stack trampolines.",
      "validation_path": "docs/gams-stiff-validation.json",
      "review_path": "docs/gams-stiff.md",
      "checks": {
        "precision": "real64",
        "initial_state": [
          2,
          1
        ],
        "output_times": [
          0.001,
          0.01,
          0.1,
          1
        ],
        "eigenvalues": [
          -1000,
          -1
        ],
        "max_scaled_state_error": 2e-06,
        "max_absolute_fast_mode_error": 4e-06,
        "max_time_error": 1e-12,
        "eps": 1e-08,
        "weights": [
          1,
          1
        ],
        "initial_half_step": 1e-06,
        "analytic_jacobian": true,
        "required_status": 0
      },
      "source_sha256": "fa22fb2979b7d00b2dc1dc6ef1f02b53de5b38c153bd8b90e587b84b20f552a2",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=stiff3&example=gams-stiff3-stiff-two-scale"
    },
    {
      "id": "polyroots-real-reference",
      "name": "gams-polyroots-real-reference",
      "package_id": "polyroots-fortran",
      "procedure_id": "polyroots-fortran-polyroots",
      "gams_code": "F1a",
      "problem_id": "known-distinct-polynomial-roots",
      "path": "fpm_catalog/gams-drivers/polyroots-real-reference.f90",
      "revision": "165ed6fbec98cc23d9ed4784fbc4708adb5e0bcf",
      "author_example": "test/polyroots_test.f90",
      "reuse": "adapted",
      "license": "BSD-3 with retained upstream notices",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/polyroots-fortran-notices.txt"
      ],
      "modifications": "Author solver API patterns adapted to known real/conjugate/zero roots, unique order-independent matching, normalized polynomial residuals and three coefficient scales. The complex companion driver additionally checks genuinely complex coefficients.",
      "validation_path": "docs/gams-polynomial-validation.json",
      "review_path": "docs/gams-polynomial.md",
      "checks": {
        "precision": "real64",
        "algorithm": "polyroots",
        "coefficient_order": "decreasing powers",
        "polynomial_cases": 2,
        "coefficient_scales": [
          1,
          1e+80,
          1e-80
        ],
        "max_scaled_root_error": 1e-09,
        "max_normalized_horner_residual": 2e-12,
        "distinct_roots_only": true,
        "required_status": 0,
        "complex_coefficients_checked": false
      },
      "source_sha256": "20a78d4939a1cd687adf35294adc33608b3643508ca6cb23540159046f24ac5c",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=polyroots-fortran&example=gams-polyroots-real-reference"
    },
    {
      "id": "rpoly-real-reference",
      "name": "gams-rpoly-real-reference",
      "package_id": "polyroots-fortran",
      "procedure_id": "polyroots-fortran-rpoly",
      "gams_code": "F1a",
      "problem_id": "known-distinct-polynomial-roots",
      "path": "fpm_catalog/gams-drivers/rpoly-real-reference.f90",
      "revision": "165ed6fbec98cc23d9ed4784fbc4708adb5e0bcf",
      "author_example": "test/polyroots_test.f90",
      "reuse": "adapted",
      "license": "BSD-3 with retained upstream notices",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/polyroots-fortran-notices.txt"
      ],
      "modifications": "Author solver API patterns adapted to known real/conjugate/zero roots, unique order-independent matching, normalized polynomial residuals and three coefficient scales. The complex companion driver additionally checks genuinely complex coefficients.",
      "validation_path": "docs/gams-polynomial-validation.json",
      "review_path": "docs/gams-polynomial.md",
      "checks": {
        "precision": "real64",
        "algorithm": "rpoly",
        "coefficient_order": "decreasing powers",
        "polynomial_cases": 2,
        "coefficient_scales": [
          1,
          1e+80,
          1e-80
        ],
        "max_scaled_root_error": 1e-09,
        "max_normalized_horner_residual": 2e-12,
        "distinct_roots_only": true,
        "required_status": 0,
        "complex_coefficients_checked": false
      },
      "source_sha256": "620ec33c70b56820836a62e8f79a8f57d02a0def8a3cea50214820be24a13598",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=polyroots-fortran&example=gams-rpoly-real-reference"
    },
    {
      "id": "cpolyroots-complex-reference",
      "name": "gams-cpolyroots-complex-reference",
      "package_id": "polyroots-fortran",
      "procedure_id": "polyroots-fortran-cpolyroots",
      "gams_code": "F1a",
      "problem_id": "known-distinct-polynomial-roots",
      "path": "fpm_catalog/gams-drivers/cpolyroots-complex-reference.f90",
      "revision": "165ed6fbec98cc23d9ed4784fbc4708adb5e0bcf",
      "author_example": "test/polyroots_test.f90",
      "reuse": "adapted",
      "license": "BSD-3 with retained upstream notices",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/polyroots-fortran-notices.txt"
      ],
      "modifications": "Author solver API patterns adapted to known real/conjugate/zero roots, unique order-independent matching, normalized polynomial residuals and three coefficient scales. The complex companion driver additionally checks genuinely complex coefficients.",
      "validation_path": "docs/gams-polynomial-validation.json",
      "review_path": "docs/gams-polynomial.md",
      "checks": {
        "precision": "real64",
        "algorithm": "cpolyroots",
        "coefficient_order": "decreasing powers",
        "polynomial_cases": 3,
        "coefficient_scales": [
          1,
          1e+80,
          1e-80
        ],
        "max_scaled_root_error": 1e-09,
        "max_normalized_horner_residual": 2e-12,
        "distinct_roots_only": true,
        "required_status": 0,
        "complex_coefficients_checked": true
      },
      "source_sha256": "3dba1af1cabdee90c3ecba03467cf0221d2109dfe9547df6b1fb91efc26888c2",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=polyroots-fortran&example=gams-cpolyroots-complex-reference"
    },
    {
      "id": "spectrum-convolution-reference",
      "name": "gams-spectrum-convolution-reference",
      "package_id": "spectrum",
      "procedure_id": "spectrum-convolve",
      "gams_code": "J2",
      "problem_id": "direct-reference-discrete-convolution",
      "path": "fpm_catalog/gams-drivers/spectrum-convolution-reference.f90",
      "revision": "5af0d5a85eccf971aa6e0fc72b1c7439c3cef536",
      "author_example": "examples/gaussian_filter_example.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/spectrum-MIT.txt"
      ],
      "modifications": "Author API patterns adapted to impulse and oscillating signals, eight kernel lengths including asymmetric odd/even kernels, independent direct summation and explicit output conventions. Plotting and large benchmark loops are omitted.",
      "validation_path": "docs/gams-convolution-validation.json",
      "review_path": "docs/gams-convolution.md",
      "checks": {
        "signal_length": 37,
        "signals": [
          "impulse at sample 10",
          "sin(0.2*i)+(-1)**i*0.1*i"
        ],
        "kernel_lengths": [
          1,
          2,
          3,
          4,
          5,
          8,
          16,
          17
        ],
        "reference_precision": "real64",
        "max_scaled_output_error": 1e-11,
        "native_precision": "real64",
        "output_modes": [
          "full",
          "central"
        ],
        "swapped_inputs_checked": true,
        "sum_identity_checked": true,
        "central_start": "floor(shorter_length/2)+1"
      },
      "source_sha256": "885005e2f72f4c1c92a9fe8d22e5e6ef4c1881ffc025bb7c8bed5139c7d7c5d8",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=spectrum&example=gams-spectrum-convolution-reference"
    },
    {
      "id": "fastconv-convolution-reference",
      "name": "gams-fastconv-convolution-reference",
      "package_id": "fastconv",
      "procedure_id": "fastconv-conv1d-t",
      "gams_code": "J2",
      "problem_id": "direct-reference-discrete-convolution",
      "path": "fpm_catalog/gams-drivers/fastconv-convolution-reference.f90",
      "revision": "3aaa2432a291df07a10fc5dade0dcd66d7a06dd0",
      "author_example": "README.md",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fastconv-BSD-3.txt"
      ],
      "modifications": "Author API patterns adapted to impulse and oscillating signals, eight kernel lengths including asymmetric odd/even kernels, independent direct summation and explicit output conventions. Plotting and large benchmark loops are omitted.",
      "validation_path": "docs/gams-convolution-validation.json",
      "review_path": "docs/gams-convolution.md",
      "checks": {
        "signal_length": 37,
        "signals": [
          "impulse at sample 10",
          "sin(0.2*i)+(-1)**i*0.1*i"
        ],
        "kernel_lengths": [
          1,
          2,
          3,
          4,
          5,
          8,
          16,
          17
        ],
        "reference_precision": "real64",
        "max_scaled_output_error": 2e-06,
        "native_precision": "real32",
        "output_modes": [
          "valid"
        ],
        "preserve_shape": false,
        "reference_inputs": "actual rounded real32 arguments converted to real64"
      },
      "source_sha256": "bcf5bd80bf88f7c82d9eefec38a85896a333580d5b7d766f1a3c7f7d09135c6a",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fastconv&example=gams-fastconv-convolution-reference"
    },
    {
      "id": "odrpack-line-total-least-squares",
      "name": "gams-odrpack-line-total-least-squares",
      "package_id": "odrpack95",
      "procedure_id": "odrpack95-odr",
      "gams_code": "L8",
      "problem_id": "orthogonal-line-fit",
      "path": "fpm_catalog/gams-drivers/odrpack-line-total-least-squares.f90",
      "revision": "12597b20812a76a4b702f985f6adc82632a18f60",
      "author_example": "example/example1.f90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/odrpack95-MIT.txt"
      ],
      "modifications": "Author callback pattern adapted to two unweighted orthogonal line fits, positive/negative slopes and independent TLS formulas.",
      "validation_path": "docs/gams-regression-validation.json",
      "review_path": "docs/gams-regression.md",
      "checks": {
        "precision": "real64",
        "cases": 2,
        "observations": 6,
        "unit_x_y_weights": true,
        "job": 20,
        "analytic_derivatives": true,
        "accepted_statuses": [
          1,
          2,
          3
        ],
        "max_absolute_parameter_error": 1e-05,
        "max_absolute_objective_error": 1e-08
      },
      "source_sha256": "deb8a06f02a726fa5b3336dc8417b806a33dc9531376789fc6525612d33157dd",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=odrpack95&example=gams-odrpack-line-total-least-squares"
    },
    {
      "id": "logistic-grouped-binomial-reference",
      "name": "gams-logistic-grouped-binomial-reference",
      "package_id": "lib_statistics",
      "procedure_id": "lib-statistics-logistic",
      "gams_code": "L8",
      "problem_id": "two-level-grouped-binomial-fit",
      "path": "fpm_catalog/gams-drivers/logistic-grouped-binomial-reference.f90",
      "revision": "056740db259fc3599dca0d8858f04e94845a6769",
      "author_example": null,
      "reuse": "original",
      "license": "original",
      "license_files": [],
      "modifications": "Independent public-API driver for three grouped-binomial datasets with two predictor levels; analytic MLE, Pearson/deviance, Fisher covariance and standard error checks. No upstream test copied.",
      "validation_path": "docs/gams-regression-validation.json",
      "review_path": "docs/gams-regression.md",
      "checks": {
        "precision": "real64",
        "cases": 3,
        "groups": 6,
        "trials_per_group": 20,
        "predictor_levels": [
          [
            -1,
            1
          ],
          [
            0,
            2
          ],
          [
            -1,
            1
          ]
        ],
        "level_probabilities": [
          [
            0.25,
            0.75
          ],
          [
            0.25,
            0.75
          ],
          [
            0.2,
            0.6
          ]
        ],
        "required_status": 0,
        "residual_degrees_of_freedom": 4,
        "max_coefficient_error": 1e-06,
        "max_probability_error": 1e-06,
        "max_statistic_error": 1e-06,
        "max_covariance_error": 1e-05,
        "max_standard_error_error": 1e-05,
        "dispersion": "max(1,Pearson chi-square/ndf)"
      },
      "source_sha256": "2987c63d39ed82cccf64c86052540a11a97e260fff1e0ab056ee94f4201314fb",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lib_statistics&example=gams-logistic-grouped-binomial-reference"
    },
    {
      "id": "slicot-lyapunov-known-matrix",
      "name": "gams-slicot-lyapunov-known-matrix",
      "package_id": "slicot",
      "procedure_id": "slicot-lyapunov",
      "gams_code": "D8",
      "problem_id": "known-sb03md-matrix-equations",
      "path": "fpm_catalog/gams-drivers/slicot-lyapunov-known-matrix.f90",
      "revision": "5eeb845d84f5a60f6069754b7819dad468951933",
      "author_example": "examples/TSB03MD.f",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/slicot-BSD.txt"
      ],
      "modifications": "Author invocation patterns adapted to known nondiagonal matrix solutions, preserved original coefficients and independent residuals. Lyapunov driver covers continuous/discrete and transpose modes plus reused Schur factors; Sylvester drivers use rectangular solutions.",
      "validation_path": "docs/gams-matrix-equations-validation.json",
      "review_path": "docs/gams-matrix-equations.md",
      "checks": {
        "precision": "real64",
        "required_status": 0,
        "max_scaled_solution_error": 1e-10,
        "max_scaled_residual": 1e-12,
        "dimension": 3,
        "equations": [
          "continuous",
          "discrete"
        ],
        "transpose_modes": [
          "N",
          "T"
        ],
        "right_hand_sides_per_mode": 2,
        "factor_modes": [
          "N",
          "F"
        ],
        "job": "X",
        "max_absolute_symmetry_error": 1e-12,
        "returned_scale_honored": true
      },
      "source_sha256": "23a224cba224c64d3ca5be7e94fd26dc98f80b5c142798c455ddf514a253ade4",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=slicot&example=gams-slicot-lyapunov-known-matrix"
    },
    {
      "id": "slicot-continuous-sylvester",
      "name": "gams-slicot-continuous-sylvester",
      "package_id": "slicot",
      "procedure_id": "slicot-sb04md",
      "gams_code": "D8",
      "problem_id": "known-sb04md-matrix-equations",
      "path": "fpm_catalog/gams-drivers/slicot-continuous-sylvester.f90",
      "revision": "5eeb845d84f5a60f6069754b7819dad468951933",
      "author_example": "examples/TSB04MD.f",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/slicot-BSD.txt"
      ],
      "modifications": "Author invocation patterns adapted to known nondiagonal matrix solutions, preserved original coefficients and independent residuals. Lyapunov driver covers continuous/discrete and transpose modes plus reused Schur factors; Sylvester drivers use rectangular solutions.",
      "validation_path": "docs/gams-matrix-equations-validation.json",
      "review_path": "docs/gams-matrix-equations.md",
      "checks": {
        "precision": "real64",
        "required_status": 0,
        "max_scaled_solution_error": 1e-10,
        "max_scaled_residual": 1e-12,
        "solution_shape": [
          2,
          3
        ],
        "cases": 2,
        "second_case_transposes_coefficients": true,
        "equation": "A*X+X*B=C"
      },
      "source_sha256": "9b7742cf9940686f2659f7e07a42708cec96b51a3f352b74bba039a7311c3d96",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=slicot&example=gams-slicot-continuous-sylvester"
    },
    {
      "id": "slicot-discrete-sylvester",
      "name": "gams-slicot-discrete-sylvester",
      "package_id": "slicot",
      "procedure_id": "slicot-sb04qd",
      "gams_code": "D8",
      "problem_id": "known-sb04qd-matrix-equations",
      "path": "fpm_catalog/gams-drivers/slicot-discrete-sylvester.f90",
      "revision": "5eeb845d84f5a60f6069754b7819dad468951933",
      "author_example": "examples/TSB04QD.f",
      "reuse": "adapted",
      "license": "BSD-3",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/slicot-BSD.txt"
      ],
      "modifications": "Author invocation patterns adapted to known nondiagonal matrix solutions, preserved original coefficients and independent residuals. Lyapunov driver covers continuous/discrete and transpose modes plus reused Schur factors; Sylvester drivers use rectangular solutions.",
      "validation_path": "docs/gams-matrix-equations-validation.json",
      "review_path": "docs/gams-matrix-equations.md",
      "checks": {
        "precision": "real64",
        "required_status": 0,
        "max_scaled_solution_error": 1e-10,
        "max_scaled_residual": 1e-12,
        "solution_shape": [
          2,
          3
        ],
        "cases": 2,
        "second_case_transposes_coefficients": true,
        "equation": "X+A*X*B=C"
      },
      "source_sha256": "0722b38990831937608a5f0d0077c6e2c19af4a6d537a7f7ee80e4e4652273c9",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=slicot&example=gams-slicot-discrete-sylvester"
    },
    {
      "id": "stdlib-sorting-reference",
      "name": "gams-stdlib-sorting-reference",
      "package_id": "stdlib",
      "procedure_id": "stdlib-sort",
      "gams_code": "N6",
      "problem_id": "deterministic-sorting-reference",
      "path": "fpm_catalog/gams-drivers/stdlib-sorting-reference.f90",
      "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
      "author_example": "test/test_sorting.F90",
      "reuse": "adapted",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/stdlib-MIT.txt"
      ],
      "modifications": "Author API patterns adapted to small exact ascending/descending integer and finite-real examples, idempotence, independent histogram reference and empty/singleton checks.",
      "validation_path": "docs/gams-sorting-validation.json",
      "review_path": "docs/gams-sorting.md",
      "checks": {
        "integer_kind": "int32",
        "real_kind": "real64",
        "ascending_and_descending": true,
        "histogram_reference_size": 64,
        "empty_and_singleton": true,
        "nan_ordering_checked": false,
        "stability_checked": false
      },
      "source_sha256": "b37c1f2b31679a6a063b941fe9db8ba017ce7059738204acad3034969c5c93fa",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=stdlib&example=gams-stdlib-sorting-reference"
    },
    {
      "id": "primes-trial-division",
      "name": "gams-primes-trial-division",
      "package_id": "fortran-primes",
      "procedure_id": "fortran-primes-is-prime",
      "gams_code": "B",
      "problem_id": "prime-enumeration-and-primality",
      "path": "fpm_catalog/gams-drivers/primes-trial-division.f90",
      "revision": "817abbf15c2565d2b92c35546d9e18152eb02e2c",
      "author_example": "test/test_primes.f90",
      "reuse": "adapted",
      "license": "MIT; upstream source includes additional notices",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fortran-primes-MIT.txt"
      ],
      "modifications": "Small deterministic main with independent integer references, readable output and hard failures on mismatches. No changes to package source.",
      "validation_path": "docs/gams-number-theory-validation.json",
      "review_path": "docs/gams-number-theory.md",
      "checks": {
        "int32_cases": 1021,
        "int64_cases": 8,
        "reference": "independent trial division",
        "upper_bound": 1000,
        "prime_count": 168,
        "prime_sum": 76127,
        "bounded_and_empty_ranges": true,
        "known_failing_int64_excluded": 3215031751,
        "full_int64_domain_verified": false
      },
      "source_sha256": "6fe92ad700f925464bf27635a13bed119df9f465128ea391fd4a928d86026402",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-primes&example=gams-primes-trial-division"
    },
    {
      "id": "rpn-gcd-lcm-reference",
      "name": "gams-rpn-gcd-lcm-reference",
      "package_id": "rpn-calculator-fortran",
      "procedure_id": "rpn-integer",
      "gams_code": "B",
      "problem_id": "integer-common-divisors-and-multiples",
      "path": "fpm_catalog/gams-drivers/rpn-gcd-lcm-reference.f90",
      "revision": "7708e4949f17511d81f4e7dd0271a500f0bc3631",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/rpn-calculator-MIT.txt"
      ],
      "modifications": "Small deterministic main with independent integer references, readable output and hard failures on mismatches. No changes to package source.",
      "validation_path": "docs/gams-number-theory-validation.json",
      "review_path": "docs/gams-number-theory.md",
      "checks": {
        "gcd_cases": 4225,
        "lcm_cases": 4224,
        "operand_range": [
          0,
          64
        ],
        "reference": "enumerated divisors and multiples",
        "lcm_zero_zero_checked": false,
        "negative_operands_checked": false,
        "overflow_checked": false
      },
      "source_sha256": "e43f7a1ae954c05c663287e3d23b2130b5ecca864ff1ca56b09b8723dce471b1",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rpn-calculator-fortran&example=gams-rpn-gcd-lcm-reference"
    },
    {
      "id": "rational-addition-reference",
      "name": "gams-rational-addition-reference",
      "package_id": "rational_number",
      "procedure_id": "rational-number-ratnumadd",
      "gams_code": "A2",
      "problem_id": "rational-addition-reference",
      "path": "fpm_catalog/gams-drivers/rational-addition-reference.f90",
      "revision": "b6ff702a0f51b950798f2a31c5bd81ae0c15385a",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/arithmetic-drivers-MIT.txt"
      ],
      "modifications": "Independently written API driver with exact reference checks; no upstream source or tests copied.",
      "validation_path": "docs/gams-arithmetic-validation.json",
      "review_path": "docs/gams-arithmetic.md",
      "checks": {
        "addition_cases": 5832,
        "numerator_range": [
          -4,
          4
        ],
        "denominator_range": [
          1,
          6
        ],
        "exact_cross_product_reference": true,
        "positive_reduction_checked": true,
        "negative_reduction_claimed": false
      },
      "source_sha256": "449b1522c6f7de7d1558e6766420875a7db82da7046a3bd0544240bfc15b1e61",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rational_number&example=gams-rational-addition-reference"
    },
    {
      "id": "strith-integer-reference",
      "name": "gams-strith-integer-reference",
      "package_id": "strith",
      "procedure_id": "strith-api",
      "gams_code": "A1",
      "problem_id": "strith-integer-reference",
      "path": "fpm_catalog/gams-drivers/strith-integer-reference.f90",
      "revision": "da2b1f489a178cb443f636e3f9c89aed6c8702b1",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/arithmetic-drivers-MIT.txt"
      ],
      "modifications": "Independently written API driver with exact reference checks; no upstream source or tests copied.",
      "validation_path": "docs/gams-arithmetic-validation.json",
      "review_path": "docs/gams-arithmetic.md",
      "checks": {
        "small_arithmetic_cases": 3362,
        "large_decimal_identities": 5,
        "largest_decimal_digits": 31,
        "native_reference_range": [
          -40,
          40
        ],
        "capacity_overflow_checked": false
      },
      "source_sha256": "3d1e49ce5a84cf11ff13402c6ae3e085625ed6eda244e131d62bef6d767c01ad",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=strith&example=gams-strith-integer-reference"
    },
    {
      "id": "ryu-binary64-roundtrip",
      "name": "gams-ryu-binary64-roundtrip",
      "package_id": "ryu_fortran",
      "procedure_id": "ryu-fortran-d2shortest",
      "gams_code": "A6",
      "problem_id": "ryu-binary64-roundtrip",
      "path": "fpm_catalog/gams-drivers/ryu-binary64-roundtrip.f90",
      "revision": "6c508144398d58143618c5598d816f20c40ac053",
      "author_example": "test/test_d2shortest/test_d2shortest.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/arithmetic-drivers-MIT.txt"
      ],
      "modifications": "Independently written API driver with exact reference checks; no upstream source or tests copied.",
      "validation_path": "docs/gams-arithmetic-validation.json",
      "review_path": "docs/gams-arithmetic.md",
      "checks": {
        "finite_bit_patterns": 132,
        "exponent_fields": [
          0,
          1,
          2,
          10,
          511,
          1022,
          1023,
          1024,
          1535,
          2045,
          2046
        ],
        "signs": 2,
        "mantissas_per_exponent": 6,
        "bitwise_roundtrip": true,
        "shortest_length_proved": false
      },
      "source_sha256": "b870dab2fb47fde8b0fbda8707341639725097a016de6f38606673b6d6b0bfe4",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ryu_fortran&example=gams-ryu-binary64-roundtrip"
    },
    {
      "id": "mpfun-real-addition",
      "name": "gams-mpfun-real-addition",
      "package_id": "mpfun2020-var1",
      "procedure_id": "mpfun2020-var1-mpreal",
      "gams_code": "A3c",
      "problem_id": "mpfun-real-addition",
      "path": "fpm_catalog/gams-drivers/mpfun-real-addition.f90",
      "revision": "f2191ad80d811cd5e309d83ffad9b2607d27aabc",
      "author_example": "test/tquad.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/arithmetic-drivers-MIT.txt"
      ],
      "modifications": "Independently written API consumer with explicit exact mathematical references; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-arithmetic-validation.json",
      "review_path": "docs/gams-arithmetic.md",
      "checks": {
        "exact_additions": 6,
        "requested_decimal_digits": 120,
        "large_integer_power": 80,
        "reference": "explicit exact integer and dyadic decimal strings",
        "other_operations_verified": false
      },
      "source_sha256": "62e3b826654ae438526bf12f7bd824ef3ad0974e12ecd6870434bcdb803b445d",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=mpfun2020-var1&example=gams-mpfun-real-addition"
    },
    {
      "id": "mpfun-complex-addition",
      "name": "gams-mpfun-complex-addition",
      "package_id": "mpfun2020-var1",
      "procedure_id": "mpfun2020-var1-mpcmplx",
      "gams_code": "A4c",
      "problem_id": "mpfun-complex-addition",
      "path": "fpm_catalog/gams-drivers/mpfun-complex-addition.f90",
      "revision": "f2191ad80d811cd5e309d83ffad9b2607d27aabc",
      "author_example": "test/tpphix3.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/arithmetic-drivers-MIT.txt"
      ],
      "modifications": "Independently written API consumer with explicit exact mathematical references; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-arithmetic-validation.json",
      "review_path": "docs/gams-arithmetic.md",
      "checks": {
        "exact_complex_sums": 5,
        "requested_decimal_digits": 120,
        "large_integer_power": 80,
        "each_component_checked": true,
        "reference": "explicit component-wise integer and dyadic decimal strings",
        "other_operations_verified": false
      },
      "source_sha256": "36bb89bf458c0bdb5060b4cea836ac92c9e3bb12f0837460eb0b04101222e654",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=mpfun2020-var1&example=gams-mpfun-complex-addition"
    },
    {
      "id": "bstrith-bit-reference",
      "name": "gams-bstrith-bit-reference",
      "package_id": "bstrith",
      "procedure_id": "bstrith-operations",
      "gams_code": "N2",
      "problem_id": "bstrith-bit-reference",
      "path": "fpm_catalog/gams-drivers/bstrith-bit-reference.f90",
      "revision": "7ed7730e34c7e1f78f2be9426ccc170f9dcaf57e",
      "author_example": "README.md",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/arithmetic-drivers-MIT.txt"
      ],
      "modifications": "Independently written API consumer with explicit exact mathematical references; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-arithmetic-validation.json",
      "review_path": "docs/gams-arithmetic.md",
      "checks": {
        "exact_checks": 5120,
        "eight_bit_values": 256,
        "shift_distances": [
          1,
          7
        ],
        "four_bit_operand_pairs": 256,
        "reference": "intrinsic shifts, XOR and bounded modular integer arithmetic",
        "invalid_inputs_checked": false
      },
      "source_sha256": "cbd04c49b8be26f7f15cd86698318a384135c23621adf579a17ffb9a4d879ede",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=bstrith&example=gams-bstrith-bit-reference"
    },
    {
      "id": "carlson-rf-reference",
      "name": "gams-carlson-rf-reference",
      "package_id": "carlson-elliptic-integrals",
      "procedure_id": "carlson-elliptic-integrals-api",
      "gams_code": "C14",
      "problem_id": "carlson-rf-reference",
      "path": "fpm_catalog/gams-drivers/carlson-rf-reference.f90",
      "revision": "5f25a59a555b7029505aac71a8341d5851f8abed",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/special-function-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with separate mathematical references; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-special-functions-validation.json",
      "review_path": "docs/gams-special-functions.md",
      "checks": {
        "positive_triples": 3,
        "diagonal_references": 3,
        "elliptic_moduli": [
          0,
          0.25,
          0.75,
          0.95
        ],
        "simpson_intervals": [
          2048,
          4096
        ],
        "permutation_checks": 3,
        "homogeneity_checks": 3,
        "max_scaled_error": 2e-11
      },
      "source_sha256": "ee57be8f8cf2a716d3c3a3852430323f4c9aa43651f7127273b51d77d59fb44b",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=carlson-elliptic-integrals&example=gams-carlson-rf-reference"
    },
    {
      "id": "bernoulli-power-sums",
      "name": "gams-bernoulli-power-sums",
      "package_id": "specfun",
      "procedure_id": "specfun-bernob",
      "gams_code": "C19",
      "problem_id": "bernoulli-power-sums",
      "path": "fpm_catalog/gams-drivers/bernoulli-power-sums.f90",
      "revision": "e74d9c810d5c9248b5d8ffab4b766e7bb22ffd23",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/special-function-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with separate mathematical references; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-special-functions-validation.json",
      "review_path": "docs/gams-special-functions.md",
      "checks": {
        "rational_reference_indices": [
          0,
          1,
          2,
          4,
          6,
          8,
          10,
          12
        ],
        "integer_power_sum_cases": 24,
        "max_power": 8,
        "sum_limits": [
          3,
          10,
          20
        ],
        "unassigned_odd_outputs_read": false,
        "max_scaled_error": 3e-12
      },
      "source_sha256": "c66d87140b0d7c91578b21f36bb7b37bf094ca6d4a0028333ee3c2738d599657",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=specfun&example=gams-bernoulli-power-sums"
    },
    {
      "id": "amos-complex-series",
      "name": "gams-amos-complex-series",
      "package_id": "amosf90",
      "procedure_id": "amosf90-bessel",
      "gams_code": "C10",
      "problem_id": "amos-complex-series",
      "path": "fpm_catalog/gams-drivers/amos-complex-series.f90",
      "revision": "b54a4d4a1d8f7c97acd180ed5bbaae8d089a9fa7",
      "author_example": "test/check.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/special-function-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with separate mathematical references; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-special-functions-validation.json",
      "review_path": "docs/gams-special-functions.md",
      "checks": {
        "complex_value_checks": 39,
        "orders": [
          0.3,
          0.5,
          1.25
        ],
        "sequence_length": 2,
        "arguments": [
          [
            0.5,
            0.25
          ],
          [
            1,
            0.5
          ],
          [
            2,
            0.75
          ]
        ],
        "kode": 1,
        "required_ierr": 0,
        "required_nz": 0,
        "series_convergence_required": true,
        "max_scaled_error": 2e-12,
        "known_failing_argument_excluded": [
          2,
          -0.75
        ]
      },
      "source_sha256": "2eb598956e51271bf2e6279d5df58502fe96d7b359284f43b802fc9aa7c35f54",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=amosf90&example=gams-amos-complex-series"
    },
    {
      "id": "blas-gemm-reference",
      "name": "gams-blas-gemm-reference",
      "package_id": "blas-interface",
      "procedure_id": "blas-interface-blas-gemm",
      "gams_code": "D1b6",
      "problem_id": "blas-gemm-reference",
      "path": "fpm_catalog/gams-drivers/blas-gemm-reference.f90",
      "revision": "552a2e6a41443843003216fedad6419af55f8e35",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/linear-algebra-api-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with exact small-matrix references and explicit numerical checks; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "gemm_calls": 12,
        "result_shape": [
          3,
          4
        ],
        "inner_dimension": 2,
        "transpose_combinations": [
          "NN",
          "NT",
          "TN",
          "TT"
        ],
        "alpha_beta_pairs": [
          [
            1,
            0
          ],
          [
            -2,
            0.5
          ],
          [
            0,
            -1
          ]
        ],
        "reference": "independent scalar triple loops",
        "max_scaled_error": 1e-12
      },
      "source_sha256": "ecd6ee60d3258a987d9f7d33122066a6448700bd4335d70445b8f7b6494713d2",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=blas-interface&example=gams-blas-gemm-reference"
    },
    {
      "id": "fsparse-matvec-reference",
      "name": "gams-fsparse-matvec-reference",
      "package_id": "fsparse",
      "procedure_id": "fsparse-matvec",
      "gams_code": "D1b4",
      "problem_id": "fsparse-matvec-reference",
      "path": "fpm_catalog/gams-drivers/fsparse-matvec-reference.f90",
      "revision": "fa8233420ab0110bb688d565879164386521a8fc",
      "author_example": "test/test_matrices.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/linear-algebra-api-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with exact small-matrix references and explicit numerical checks; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "matvec_calls": 24,
        "matrix_shape": [
          4,
          3
        ],
        "storage_formats": [
          "COO",
          "CSR"
        ],
        "empty_row": true,
        "input_vectors": 3,
        "output_initializations": [
          "zero",
          "nonzero"
        ],
        "repeated_accumulation": true,
        "reference": "independent scalar loops",
        "max_absolute_error": 1e-12
      },
      "source_sha256": "2be06e1fa785ade5d0d6496bf56952de88ccc66d41301cec859b67c77847b156",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fsparse&example=gams-fsparse-matvec-reference"
    },
    {
      "id": "forinv-pseudoinverse-reference",
      "name": "gams-forinv-pseudoinverse-reference",
      "package_id": "forinv",
      "procedure_id": "forinv-inv",
      "gams_code": "D9c",
      "problem_id": "forinv-pseudoinverse-reference",
      "path": "fpm_catalog/gams-drivers/forinv-pseudoinverse-reference.f90",
      "revision": "80b5dbed9709c001e4309382424276a2ceb984f3",
      "author_example": "test/test1.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/linear-algebra-api-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with exact small-matrix references and explicit numerical checks; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "matrix_cases": 5,
        "moore_penrose_identities": 4,
        "explicit_known_pseudoinverses": true,
        "rank_one_minimum_norm_solution": [
          0.2,
          0.4
        ],
        "method": "gesvd",
        "absolute_singular_value_cutoff": 1e-10,
        "preserves_original_matrix": true,
        "max_scaled_error": 1e-11
      },
      "source_sha256": "88d7fa4d20e5274c9573c1593e6787ad382450d64519f916c32afda8ee3beab5",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forinv&example=gams-forinv-pseudoinverse-reference"
    },
    {
      "id": "splpak-paired-noise-fit",
      "name": "gams-splpak-paired-noise-fit",
      "package_id": "splpak",
      "procedure_id": "splpak-splpak-type",
      "gams_code": "K1",
      "problem_id": "splpak-paired-noise-fit",
      "path": "fpm_catalog/gams-drivers/splpak-paired-noise-fit.f90",
      "revision": "35340cb2d193c7aa44f03978db21660df8297cc0",
      "author_example": "test/splpak_test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/applied-methods-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with closed-form or direct scalar references; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-applied-methods-validation.json",
      "review_path": "docs/gams-applied-methods.md",
      "checks": {
        "fitted_datasets": 3,
        "observations_per_dataset": 24,
        "value_derivative_checks": 126,
        "noisy_fit_sse": 1.5,
        "maximum_value_error": 1e-08,
        "maximum_derivative_error": 1e-07,
        "reference": "known affine fits with paired opposite noise and analytic derivatives"
      },
      "source_sha256": "ac443f89c72d2047c68670c8e91e68f21aeb3746a134c8911e0ee03ad59baf74",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=splpak&example=gams-splpak-paired-noise-fit"
    },
    {
      "id": "fortsa-autocorrelation-reference",
      "name": "gams-fortsa-autocorrelation-reference",
      "package_id": "fortsa",
      "procedure_id": "fortsa-acvf",
      "gams_code": "L10a2a",
      "problem_id": "fortsa-autocorrelation-reference",
      "path": "fpm_catalog/gams-drivers/fortsa-autocorrelation-reference.f90",
      "revision": "d31da12286617ab82e06e9fa0a6f20d11778581c",
      "author_example": "test/stats/test_stats.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/applied-methods-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with closed-form or direct scalar references; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-applied-methods-validation.json",
      "review_path": "docs/gams-applied-methods.md",
      "checks": {
        "datasets": 4,
        "observations": 8,
        "lags": 8,
        "covariance_calls": 12,
        "correlation_calls": 9,
        "methods": [
          "acvf",
          "acvf_opt direct",
          "acvf_opt FFT"
        ],
        "constant_series_correlation_requested": false,
        "reference": "explicit centered lag-product sums divided by N",
        "max_absolute_error": 1e-10
      },
      "source_sha256": "cfa9af624220d0c5d02fe659071ca4c547f55d632facf900ed73529dc6395b63",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortsa&example=gams-fortsa-autocorrelation-reference"
    },
    {
      "id": "integrate-nd-polynomial-reference",
      "name": "gams-integrate-nd-polynomial-reference",
      "package_id": "integrate_fortran",
      "procedure_id": "integrate-fortran-gauss-leg-nd",
      "gams_code": "H2b1a2",
      "problem_id": "integrate-nd-polynomial-reference",
      "path": "fpm_catalog/gams-drivers/integrate-nd-polynomial-reference.f90",
      "revision": "5281426a7407aa8cef7f684ff8cf1f7e4a4df906",
      "author_example": "test/check.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/applied-methods-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with closed-form or direct scalar references; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-applied-methods-validation.json",
      "review_path": "docs/gams-applied-methods.md",
      "checks": {
        "polynomial_integrals": 67,
        "rectangle_cases": 50,
        "iterated_variable_bound_cases": 16,
        "box_3d_cases": 1,
        "gauss_nodes_per_panel_per_dimension": 6,
        "rectangle_panel_counts": [
          1,
          2
        ],
        "reference": "analytic monomial antiderivatives and binomial expansion",
        "max_scaled_error": 1e-11
      },
      "source_sha256": "fdefe5f965b003bf5f7d1688aea2f72e95165f004ace276d8d49cef33db44c67",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=integrate_fortran&example=gams-integrate-nd-polynomial-reference"
    },
    {
      "id": "conmax-linear-program-certificate",
      "name": "gams-conmax-linear-program-certificate",
      "package_id": "conmax",
      "procedure_id": "conmax-slnpro",
      "gams_code": "G2a",
      "problem_id": "conmax-linear-program-certificate",
      "path": "fpm_catalog/gams-drivers/conmax-linear-program-certificate.f90",
      "revision": "ab7f237d30f94f7d13b86997e0c49f3d67bd7c54",
      "author_example": "test/lp.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/optimization-api-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with analytical optimum/certificate and explicit feasibility/accuracy checks; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-constrained-validation.json",
      "review_path": "docs/gams-constrained.md",
      "checks": {
        "linear_programs": 3,
        "free_variables": true,
        "rescaled_inequalities": true,
        "dual_certificate_checked": true,
        "required_status": 0,
        "max_solution_error": 1e-09,
        "max_primal_dual_gap": 1e-09
      },
      "source_sha256": "e2718480e9e0b23e09a66fa203f4805265801e4b6a87a632e8d3d22163df71a0",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=conmax&example=gams-conmax-linear-program-certificate"
    },
    {
      "id": "bobyqa-box-reference",
      "name": "gams-bobyqa-box-reference",
      "package_id": "powellopt",
      "procedure_id": "powellopt-bobyqa",
      "gams_code": "G2h1a1",
      "problem_id": "box-quadratic-projection",
      "path": "fpm_catalog/gams-drivers/bobyqa-box-reference.f90",
      "revision": "0987cd09d695cec968a3d02c8230d4ce5af33533",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/optimization-api-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with analytical optimum/certificate and explicit feasibility/accuracy checks; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-constrained-validation.json",
      "review_path": "docs/gams-constrained.md",
      "checks": {
        "starting_points": 3,
        "exact_solution": [
          1,
          0
        ],
        "exact_objective": 2,
        "objective_derivatives_supplied": false,
        "callback_bounds_checked": true,
        "max_evaluations_per_start": 1000,
        "has_returned_status_flag": false,
        "max_solution_error": 1e-08,
        "max_projected_gradient_residual": 1e-08
      },
      "source_sha256": "de387d69c60791ca2b39e4aba25eaea2626caa6f5670c86e929de666a0073726",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=powellopt&example=gams-bobyqa-box-reference"
    },
    {
      "id": "pikaia-rastrigin-reference",
      "name": "gams-pikaia-rastrigin-reference",
      "package_id": "pikaia",
      "procedure_id": "pikaia-pikaia-class",
      "gams_code": "G2i",
      "problem_id": "pikaia-rastrigin-reference",
      "path": "fpm_catalog/gams-drivers/pikaia-rastrigin-reference.f90",
      "revision": "c080c4004896243bf9b8bbb4577e402c9e31c5e3",
      "author_example": "test/xpk2.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/optimization-api-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with analytical optimum/certificate and explicit feasibility/accuracy checks; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-constrained-validation.json",
      "review_path": "docs/gams-constrained.md",
      "checks": {
        "seeds": [
          12345,
          6789,
          24680
        ],
        "generations": 600,
        "population": 100,
        "decimal_encoding_digits": 7,
        "bounds": [
          -2,
          2
        ],
        "known_global_solution": [
          0,
          0
        ],
        "known_global_objective": 0,
        "max_parameter_error": 0.01,
        "max_objective": 0.01,
        "global_convergence_guaranteed": false
      },
      "source_sha256": "0381b217d0509f39c7be2d2de29eaa14976ccf226a2b9ef7518addff192abd5d",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=pikaia&example=gams-pikaia-rastrigin-reference"
    },
    {
      "id": "featom-coulomb-spectrum",
      "name": "gams-featom-coulomb-spectrum",
      "package_id": "featom",
      "procedure_id": "featom-api",
      "gams_code": "I1b",
      "problem_id": "featom-coulomb-spectrum",
      "path": "fpm_catalog/gams-drivers/featom-coulomb-spectrum.f90",
      "revision": "87872a3266ceeee61a7244e6ecd134dc3bda790f",
      "author_example": "test/test_coulomb_schroed.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/boundary-spectral-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using manufactured or analytic mathematical references; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-boundary-validation.json",
      "review_path": "docs/gams-boundary.md",
      "checks": {
        "charges": [
          1,
          2
        ],
        "principal_quantum_numbers": [
          1,
          2,
          3
        ],
        "energy_checks": 12,
        "element_count": 8,
        "polynomial_degree": 20,
        "quadrature_points_per_element": 43,
        "reference": "-Z^2/(2*n^2) Hartree",
        "max_absolute_energy_error": 1e-07,
        "wavefunction_accuracy_verified": false
      },
      "source_sha256": "88ffd09ff9b3cfb8f1904c16a33054e010b6e0734794864e7abb5d6f1c46bc41",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=featom&example=gams-featom-coulomb-spectrum"
    },
    {
      "id": "arpack-poisson-eigenpairs",
      "name": "gams-arpack-poisson-eigenpairs",
      "package_id": "arpack-ng",
      "procedure_id": "arpack-eigenpairs",
      "gams_code": "D4a1",
      "problem_id": "dirichlet-poisson-n20-spectrum",
      "path": "fpm_catalog/gams-drivers/arpack-poisson-eigenpairs.f90",
      "revision": "66faef9e09bb35f5acafe02960885050acc46fa0",
      "author_example": "EXAMPLES/SYM/dsdrv1.f",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/boundary-spectral-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using manufactured or analytic mathematical references; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "matrix_size": 20,
        "eigenpairs_per_run": 3,
        "spectrum_selections": [
          "SM",
          "LM"
        ],
        "explicit_initial_residual": true,
        "analytic_eigenvectors_checked": true,
        "max_eigenvalue_error": 1e-09,
        "max_residual_norm": 1e-09,
        "max_orthogonality_error": 1e-10
      },
      "source_sha256": "888805c74e75c2ad89b03cdf57caf00009b28f789ffad052608cdfe52a6a94d5",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=arpack-ng&example=gams-arpack-poisson-eigenpairs"
    },
    {
      "id": "linalg-poisson-eigenpairs",
      "name": "gams-linalg-poisson-eigenpairs",
      "package_id": "linalg_fortran",
      "procedure_id": "linalg-fortran-eigen",
      "gams_code": "D4a1",
      "problem_id": "dirichlet-poisson-n20-spectrum",
      "path": "fpm_catalog/gams-drivers/linalg-poisson-eigenpairs.f90",
      "revision": "30e7237ab54ca176e1c8dae4be2d9d44800e1f83",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/boundary-spectral-drivers-MIT.txt"
      ],
      "modifications": "Independent real symmetric API consumer with explicit analytic spectral references, shared matrix with ARPACK and sign-independent eigenvector checks.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "matrix_size": 20,
        "eigenpairs_checked": 20,
        "analytic_eigenvectors_checked": true,
        "spectral_reconstruction_checked": true,
        "max_eigenvalue_error": 1e-11,
        "max_residual_norm": 1e-11,
        "max_orthogonality_error": 1e-11
      },
      "source_sha256": "ab2054367507fcec301b82e24c89802c56937e4a8da06c9cfbab7f6b3acfcd70",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=linalg_fortran&example=gams-linalg-poisson-eigenpairs"
    },
    {
      "id": "econ-markov-reference",
      "name": "gams-econ-markov-reference",
      "package_id": "econ-toolchain",
      "procedure_id": "econ-toolchain-api",
      "gams_code": "M",
      "problem_id": "stationary-markov-normal-cells",
      "path": "fpm_catalog/gams-drivers/econ-markov-reference.f90",
      "revision": "301d1659ba3d34973195985c552ca6fcfe2d9f29",
      "author_example": "test/tauchen_test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/resampling-markov-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with analytic and independently enumerated references. Author examples reviewed for usage; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-resampling-markov-validation.json",
      "review_path": "docs/gams-resampling-markov.md",
      "checks": {
        "analytic_two_state_chains": 3,
        "rank_one_chain_states": 3,
        "ar1_node_count": 31,
        "ar1_correlations": [
          0,
          0.8,
          -0.5
        ],
        "normal_cell_probability_checks": 2883,
        "max_absolute_error": 1e-11,
        "stationary_residual_checked": true,
        "random_sampling_verified": false
      },
      "source_sha256": "183fbd053cd12ff1021a8208363ab2b0893ab255c9385df82a6f9da9169f00cc",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=econ-toolchain&example=gams-econ-markov-reference"
    },
    {
      "id": "fjsample-jackknife-reference",
      "name": "gams-fjsample-jackknife-reference",
      "package_id": "fjsample",
      "procedure_id": "fjsample-jackerror",
      "gams_code": "L4",
      "problem_id": "leave-one-out-mean-and-squared-mean",
      "path": "fpm_catalog/gams-drivers/fjsample-jackknife-reference.f90",
      "revision": "8563d2653d1a9d80a355b2064f4b153559698915",
      "author_example": "app/main.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/resampling-markov-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with analytic and independently enumerated references. Author examples reviewed for usage; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-resampling-markov-validation.json",
      "review_path": "docs/gams-resampling-markov.md",
      "checks": {
        "sample_sizes": [
          2,
          6,
          4,
          6,
          8
        ],
        "estimators": [
          "sample mean",
          "squared sample mean"
        ],
        "independent_leave_one_out_checked": true,
        "constant_sample_checked": true,
        "max_absolute_error": 1e-11,
        "bias_convention": "full estimate minus mean resampled estimate; no factor n-1"
      },
      "source_sha256": "8630ac966b9f37fee223100e77d705b86d597a57ab5e3d1b7f3676563aed3a42",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fjsample&example=gams-fjsample-jackknife-reference"
    },
    {
      "id": "fsparse-storage-reference",
      "name": "gams-fsparse-storage-reference",
      "package_id": "fsparse",
      "procedure_id": "fsparse-dense2coo",
      "gams_code": "D1b9",
      "problem_id": "exact-dense-coo-csr-conversion",
      "path": "fpm_catalog/gams-drivers/fsparse-storage-reference.f90",
      "revision": "fa8233420ab0110bb688d565879164386521a8fc",
      "author_example": "test/test_matrices.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/storage-fourier-geometry-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with separately constructed mathematical references; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-linear-algebra-validation.json",
      "review_path": "docs/gams-linear-algebra.md",
      "checks": {
        "matrix_cases": 5,
        "all_zero_matrix_checked": true,
        "empty_rows_and_columns_checked": true,
        "coordinate_and_row_pointer_references_checked": true,
        "exact_dyadic_values": true,
        "subnormal_threshold_behavior_verified": false
      },
      "source_sha256": "7d28582914f11e95766663c78b648422e155fa164eb9c45468eb20cb0312c5c8",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fsparse&example=gams-fsparse-storage-reference"
    },
    {
      "id": "spectrum-real-dft-reference",
      "name": "gams-spectrum-real-dft-reference",
      "package_id": "spectrum",
      "procedure_id": "spectrum-rfft",
      "gams_code": "J1a1",
      "problem_id": "real-fourier-direct-sums",
      "path": "fpm_catalog/gams-drivers/spectrum-real-dft-reference.f90",
      "revision": "5af0d5a85eccf971aa6e0fc72b1c7439c3cef536",
      "author_example": "test/spectrum_fft_tests.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/storage-fourier-geometry-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with separately constructed mathematical references; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-fourier-geometry-validation.json",
      "review_path": "docs/gams-fourier-geometry.md",
      "checks": {
        "lengths": [
          3,
          4,
          5,
          6,
          7,
          8,
          11,
          12,
          15,
          16
        ],
        "signals_per_length": 4,
        "forward_transforms": 42,
        "explicit_padding_and_truncation_checked": true,
        "parseval_checked": true,
        "max_scaled_error": 1e-11,
        "inverse_transform_verified": false
      },
      "source_sha256": "ef143f3c2208c04e3a23a6ef499dc297c47b7cf48bc9d80d6f206fcb2369a250",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=spectrum&example=gams-spectrum-real-dft-reference"
    },
    {
      "id": "geodesic-reference",
      "name": "gams-geodesic-reference",
      "package_id": "geodesic-fortran",
      "procedure_id": "geodesic-fortran-inverse",
      "gams_code": "P",
      "problem_id": "spherical-and-wgs84-reference-geodesics",
      "path": "fpm_catalog/gams-drivers/geodesic-reference.f90",
      "revision": "b16eaf6622baabee7dfb75b99b78e42eaa878440",
      "author_example": "test/direct_inverse_test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/storage-fourier-geometry-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with separately constructed mathematical references; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-fourier-geometry-validation.json",
      "review_path": "docs/gams-fourier-geometry.md",
      "checks": {
        "spherical_cases": 6,
        "ellipsoid_equator_cases": 3,
        "ellipsoid_meridian_cases": 3,
        "direct_uses_independent_inputs": true,
        "max_distance_error_m": 1e-06,
        "max_angle_error_degrees": 1e-09,
        "simpson_panel_counts": [
          2048,
          4096
        ],
        "max_quadrature_refinement_difference_m": 1e-07
      },
      "source_sha256": "b50c4bc9c319b433b5933db241172b26860253c86cbf614f0bc1ca191f212ec5",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=geodesic-fortran&example=gams-geodesic-reference"
    },
    {
      "id": "y12m-sparse-reference",
      "name": "gams-y12m-sparse-reference",
      "package_id": "y12m",
      "procedure_id": "y12m-y12mc",
      "gams_code": "D2a4",
      "problem_id": "nonsymmetric-sparse-manufactured-solutions",
      "path": "fpm_catalog/gams-drivers/y12m-sparse-reference.f90",
      "revision": "5245418ed3f87c72bff4660432212328640a6322",
      "author_example": "test/test_y12mc_errors.F90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/sparse-integral-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with manufactured solutions or analytic antiderivatives; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-sparse-integral-validation.json",
      "review_path": "docs/gams-sparse-integral.md",
      "checks": {
        "matrix_cases": 2,
        "matrix_size": 10,
        "right_hand_sides_per_factorization": 4,
        "row_permutation_checked": true,
        "factor_reuse_checked": true,
        "max_scaled_solution_error": 1e-11,
        "max_normwise_backward_error": 1e-12
      },
      "source_sha256": "e31121a2c783aacb0b17ae2227ec20c54fa194b496f14189446f70d4817f9e0b",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=y12m&example=gams-y12m-sparse-reference"
    },
    {
      "id": "fitpack-spline-integral",
      "name": "gams-fitpack-spline-integral",
      "package_id": "fitpack",
      "procedure_id": "fitpack-integral",
      "gams_code": "H2a2b2",
      "problem_id": "stored-polynomial-spline-integrals",
      "path": "fpm_catalog/gams-drivers/fitpack-spline-integral.f90",
      "revision": "1907c7bad9f5c4557970e906bdd4909eb52b2d4c",
      "author_example": "examples/example_curve.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/sparse-integral-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with manufactured solutions or analytic antiderivatives; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-sparse-integral-validation.json",
      "review_path": "docs/gams-sparse-integral.md",
      "checks": {
        "polynomial_degrees": [
          0,
          1,
          2,
          3
        ],
        "irregular_data_nodes": 9,
        "integral_calls": 36,
        "reversed_and_zero_intervals_checked": true,
        "partition_additivity_checked": true,
        "max_absolute_error": 1e-11,
        "polynomial_value_checks": 68
      },
      "source_sha256": "cbd1a1ca862b8b26ba1fd0064621c7a0e6092948ad78518b892aee7129553d51",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fitpack&example=gams-fitpack-spline-integral"
    },
    {
      "id": "kdtree-neighbor-reference",
      "name": "gams-kdtree-neighbor-reference",
      "package_id": "kdtree2",
      "procedure_id": "spatial-neighbors",
      "gams_code": "N5",
      "problem_id": "three-dimensional-exhaustive-neighbors",
      "path": "fpm_catalog/gams-drivers/kdtree-neighbor-reference.f90",
      "revision": "dc757acec3162948cb228c2e0457d10134ec1edc",
      "author_example": "src-f90/kdtree2_test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/spatial-nufft-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with exhaustive scalar references, affine/barycentric identities or direct Fourier sums; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-spatial-nufft-validation.json",
      "review_path": "docs/gams-spatial-nufft.md",
      "checks": {
        "point_count": 48,
        "dimensions": 3,
        "query_count": 3,
        "nearest_counts": [
          1,
          5,
          48
        ],
        "squared_radii": [
          0,
          0.125,
          4
        ],
        "storage_rearrangement_modes": [
          false,
          true
        ],
        "search_calls": 36,
        "complete_radius_sets_checked": true,
        "distance_reference_precision": "real64",
        "max_absolute_distance_error": 1e-06
      },
      "source_sha256": "ffb2d3f491a4c53b2799bce1cc4c782703953936499b53499d047e423b17cc9c",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=kdtree2&example=gams-kdtree-neighbor-reference"
    },
    {
      "id": "delaunay-affine-reference",
      "name": "gams-delaunay-affine-reference",
      "package_id": "delaunaysparse",
      "procedure_id": "delaunay-interpolation",
      "gams_code": "E2",
      "problem_id": "three-dimensional-affine-simplex-interpolation",
      "path": "fpm_catalog/gams-drivers/delaunay-affine-reference.f90",
      "revision": "f3ffef04e24281aa42a0e5ec81f5c68f6bb5fb01",
      "author_example": "src/test_install.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/spatial-nufft-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with exhaustive scalar references, affine/barycentric identities or direct Fourier sums; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-spatial-nufft-validation.json",
      "review_path": "docs/gams-spatial-nufft.md",
      "checks": {
        "dimensions": 3,
        "point_count": 10,
        "query_count": 6,
        "output_fields": 3,
        "constant_and_affine_reproduction_checked": true,
        "simplex_geometry_checked": true,
        "nonlinear_field_checked_against_returned_vertex_weights": true,
        "max_absolute_error": 1e-10,
        "empty_circumsphere_property_verified": false
      },
      "source_sha256": "035a629cb750121f0ce767a624b673a01f077347c7b03bc86bced42845834233",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=delaunaysparse&example=gams-delaunay-affine-reference"
    },
    {
      "id": "nufft1d-sum-reference",
      "name": "gams-nufft1d-sum-reference",
      "package_id": "nufft1d",
      "procedure_id": "nufft1d-transform",
      "gams_code": "J1",
      "problem_id": "nonuniform-type-one-fourier-sums",
      "path": "fpm_catalog/gams-drivers/nufft1d-sum-reference.f90",
      "revision": "42a04333f882f474b0674936cae049899784f56e",
      "author_example": "nufft1d_demof90.f",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/spatial-nufft-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with exhaustive scalar references, affine/barycentric identities or direct Fourier sums; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-spatial-nufft-validation.json",
      "review_path": "docs/gams-spatial-nufft.md",
      "checks": {
        "source_count": 80,
        "mode_counts": [
          15,
          16,
          31,
          32
        ],
        "strength_patterns": 3,
        "exponent_signs": [
          -1,
          1
        ],
        "transform_calls": 24,
        "requested_accuracy": 1e-10,
        "max_scaled_error": 1e-08,
        "normalization": "1/source_count",
        "zero_mode_normalization_checked": true,
        "transform_types_verified": [
          1
        ]
      },
      "source_sha256": "d57e181994b730c019f3158c79ad6ea6693c33a9340c7ef53a96c1de8ca2e126",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nufft1d&example=gams-nufft1d-sum-reference"
    },
    {
      "id": "fishpack-helmholtz-reference",
      "name": "gams-fishpack-helmholtz-reference",
      "package_id": "fishpack",
      "procedure_id": "fishpack-api",
      "gams_code": "I2",
      "problem_id": "nonzero-dirichlet-poisson-helmholtz",
      "path": "fpm_catalog/gams-drivers/fishpack-helmholtz-reference.f90",
      "revision": "9dc7d2e7a847fa6a610752d4e91eda3ef9c6130d",
      "author_example": "examples/thwscrt.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/pde-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using analytic continuous and discrete Fourier-mode references; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-pde-validation.json",
      "review_path": "docs/gams-pde.md",
      "checks": {
        "grids": [
          [
            16,
            12
          ],
          [
            32,
            24
          ],
          [
            64,
            48
          ]
        ],
        "helmholtz_shifts": [
          0,
          -0.75
        ],
        "solve_calls": 6,
        "nonzero_dirichlet_boundaries_checked": true,
        "exact_discrete_solution_checked": true,
        "independent_five_point_residual_checked": true,
        "max_solver_error": 1e-11,
        "max_scaled_residual": 1e-11,
        "boundary_tolerance": 1e-12,
        "refinement_ratio_range": [
          3.8,
          4.2
        ]
      },
      "source_sha256": "64000da197429f2c456a2abaf6ea491cb08bd4bd6883675f3f920972f6c5307e",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fishpack&example=gams-fishpack-helmholtz-reference"
    },
    {
      "id": "poisfft-periodic-reference",
      "name": "gams-poisfft-periodic-reference",
      "package_id": "poisfft",
      "procedure_id": "poisfft-periodic",
      "gams_code": "I2",
      "problem_id": "periodic-two-mode-poisson",
      "path": "fpm_catalog/gams-drivers/poisfft-periodic-reference.f90",
      "revision": "7e7ebcd75130553ef2cf58548ec519933a3d3426",
      "author_example": "src/testpoisson.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/pde-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using analytic continuous and discrete Fourier-mode references; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-pde-validation.json",
      "review_path": "docs/gams-pde.md",
      "checks": {
        "grid_sizes": [
          16,
          32,
          64
        ],
        "approximations": [
          "spectral",
          "second-order finite difference"
        ],
        "solve_calls": 12,
        "plans_reused_for_zero_forcing": true,
        "zero_mean_gauge_checked": true,
        "exact_discrete_solution_checked": true,
        "independent_fd_residual_checked": true,
        "max_solver_error": 1e-11,
        "max_scaled_fd_residual": 1e-11,
        "refinement_ratio_range": [
          3.5,
          4.5
        ]
      },
      "source_sha256": "e1e09b1b25817916e8de2fb4b237aab2d36a8e87ac4171d1f655808ea62615f7",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=poisfft&example=gams-poisfft-periodic-reference"
    },
    {
      "id": "fast-float-parsing-reference",
      "name": "gams-fast-float-parsing-reference",
      "package_id": "fortran-fast-float",
      "procedure_id": "numeric-parsing",
      "gams_code": "N3",
      "problem_id": "exact-numeric-text-references",
      "path": "fpm_catalog/gams-drivers/fast-float-parsing-reference.f90",
      "revision": "195e47d90874cb1ff38598d80a7e4919c49b89d8",
      "author_example": "test/check.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/data-kinds-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using exact reference values, a separate container model or compiler/runtime inquiries; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-data-kinds-validation.json",
      "review_path": "docs/gams-data-kinds.md",
      "checks": {
        "parser_calls": 154,
        "successful_calls": 148,
        "exact_dyadic_decimals": 129,
        "signed_decimal_integers": 15,
        "invalid_or_overflow_cases": 6,
        "binary_and_hex_checked": true,
        "fortran_d_exponent_checked": true,
        "binary64_halfway_case_checked": true,
        "all_inputs_correctly_rounded_claimed": false
      },
      "source_sha256": "bd0453e104ddc9c0295d71c1780c556eb3c06c02fe6c21f8da535584f4cf62ed",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-fast-float&example=gams-fast-float-parsing-reference"
    },
    {
      "id": "fifo-storage-reference",
      "name": "gams-fifo-storage-reference",
      "package_id": "for_fifo_queue",
      "procedure_id": "fifo-queue-values",
      "gams_code": "N4",
      "problem_id": "copied-record-fifo-model",
      "path": "fpm_catalog/gams-drivers/fifo-storage-reference.f90",
      "revision": "b04b536589af8cf041b8e5e53484e57147fc746f",
      "author_example": "test/tutorial.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/data-kinds-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using exact reference values, a separate container model or compiler/runtime inquiries; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-data-kinds-validation.json",
      "review_path": "docs/gams-data-kinds.md",
      "checks": {
        "primary_records": 159,
        "secondary_records": 1,
        "refill_cycles": 3,
        "payload": "two C-interoperable int64 fields",
        "interleaved_operations_checked": true,
        "copy_after_source_overwrite_checked": true,
        "independent_queues_checked": true,
        "every_popped_allocation_freed": true
      },
      "source_sha256": "3841804b3c9b689f0142dade6654cfe784a659345837e520b7869190139774ec",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=for_fifo_queue&example=gams-fifo-storage-reference"
    },
    {
      "id": "penf-machine-reference",
      "name": "gams-penf-machine-reference",
      "package_id": "penf",
      "procedure_id": "numerical-portability",
      "gams_code": "R1",
      "problem_id": "numeric-kind-and-machine-inquiries",
      "path": "fpm_catalog/gams-drivers/penf-machine-reference.f90",
      "revision": "65061235982495b158412b70c05b228af4320d94",
      "author_example": "src/tests/penf/penf-doctest-3.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/data-kinds-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using exact reference values, a separate container model or compiler/runtime inquiries; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-data-kinds-validation.json",
      "review_path": "docs/gams-data-kinds.md",
      "checks": {
        "integer_widths": [
          8,
          16,
          32,
          64
        ],
        "real_widths": [
          32,
          64
        ],
        "iso_kind_correspondence_checked": true,
        "byte_size_and_range_constants_checked": true,
        "byte_order_checked": true,
        "runtime_roundoff_experiment_checked": true,
        "repeated_initialization_checked": true,
        "quadruple_precision_verified": false
      },
      "source_sha256": "a768033c8cd5780fca7d0b38313b8b456a554d8bfb702ff9a2c389146ef2276e",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=penf&example=gams-penf-machine-reference"
    },
    {
      "id": "fordot-exact-reference",
      "name": "gams-fordot-exact-reference",
      "package_id": "fordot",
      "procedure_id": "fordot-products",
      "gams_code": "D1",
      "problem_id": "exact-blocked-dot-products",
      "path": "fpm_catalog/gams-drivers/fordot-exact-reference.f90",
      "revision": "3966625781a9c1dffe037e3032fa4a0b6f958760",
      "author_example": "test/test1.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/products-status-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using exact integer arithmetic or independently specified comparison/status outcomes; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-products-status-validation.json",
      "review_path": "docs/gams-products-status.md",
      "checks": {
        "lengths": [
          1,
          7,
          8,
          17,
          64
        ],
        "methods": [
          "default",
          "m1",
          "m2",
          "m3",
          "m4"
        ],
        "input_patterns": 3,
        "dot_product_calls": 231,
        "reference": "int64 sum of integer products divided by 32",
        "exact_equality_required": true,
        "unequal_blocks_checked": true,
        "coarray_mode_verified": false
      },
      "source_sha256": "8ec8e641b916e33c134ac251c512cbdbe1cfd8ea0cc55802c7e946233779a7d4",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fordot&example=gams-fordot-exact-reference"
    },
    {
      "id": "fassert-captured-reference",
      "name": "gams-fassert-captured-reference",
      "package_id": "fassert",
      "procedure_id": "assert-values",
      "gams_code": "S3",
      "problem_id": "captured-comparison-truth-values",
      "path": "fpm_catalog/gams-drivers/fassert-captured-reference.f90",
      "revision": "678fa217df79af318cc537d3c69eab3b7cf68cb7",
      "author_example": "example/collab/testdrive.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/products-status-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using exact integer arithmetic or independently specified comparison/status outcomes; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-products-status-validation.json",
      "review_path": "docs/gams-products-status.md",
      "checks": {
        "positive_assertions": 3,
        "captured_comparisons": 13,
        "exact_tolerance_boundaries_checked": true,
        "scalar_and_vector_results_checked": true,
        "diagnostic_labels_and_status_checked": true,
        "nan_comparison_semantics_verified": false
      },
      "source_sha256": "2ad1803ea6fdcf0edb061d27b87144f22082831a300b610427d7ad0e0b1a3343",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fassert&example=gams-fassert-captured-reference"
    },
    {
      "id": "errstat-recovery-reference",
      "name": "gams-errstat-recovery-reference",
      "package_id": "errstat",
      "procedure_id": "error-status",
      "gams_code": "R3",
      "problem_id": "explicit-error-recovery-and-status-copies",
      "path": "fpm_catalog/gams-drivers/errstat-recovery-reference.f90",
      "revision": "336ee374c82a4525d87444c767a1f23f059d5723",
      "author_example": "example/error/err_code.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/products-status-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using exact integer arithmetic or independently specified comparison/status outcomes; author examples reviewed for usage, no upstream implementation or test code copied.",
      "validation_path": "docs/gams-products-status-validation.json",
      "review_path": "docs/gams-products-status.md",
      "checks": {
        "arithmetic_driver_calls": 9,
        "error_codes": [
          101,
          102,
          103
        ],
        "signed_zero_rejection_checked": true,
        "nonfinite_rejection_checked": true,
        "copied_status_independence_checked": true,
        "context_append_checked": true,
        "explicit_reset_checked": true,
        "arithmetic_function_supplied_by_package": false
      },
      "source_sha256": "3f1f4a88c289bbe98d21152f6ac5f4fab8fab88f4726c51ac33c3d4e182ce9d9",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=errstat&example=gams-errstat-recovery-reference"
    },
    {
      "id": "gslib-kriging-reference",
      "name": "gams-gslib-kriging-reference",
      "package_id": "gslib",
      "procedure_id": "gslib-api",
      "gams_code": "L13",
      "problem_id": "two-observation-covariance-kriging",
      "path": "fpm_catalog/gams-drivers/gslib-kriging-reference.f90",
      "revision": "5c021000eb3da8703ced3ee9be145d6c0ecb2608",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/kriging-network-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using closed-form covariance/kriging references or scalar dense-network evaluation. Available author examples and routine usage comments reviewed; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-kriging-network-validation.json",
      "review_path": "docs/gams-kriging-network.md",
      "checks": {
        "covariance_models": [
          "spherical",
          "exponential",
          "Gaussian"
        ],
        "model_parameter": 3,
        "nugget": 0,
        "sill": 1,
        "observation_locations": [
          0,
          2
        ],
        "observation_values": [
          1,
          3
        ],
        "query_locations": [
          -1,
          0,
          0.5,
          1,
          1.5,
          2,
          3
        ],
        "linear_solves": 21,
        "max_covariance_error": 2e-07,
        "max_rounded_system_weight_error": 1e-11,
        "max_system_residual": 1e-11,
        "max_analytic_weight_error": 5e-07,
        "max_analytic_prediction_variance_error": 1e-06,
        "covariance_precision": "real32",
        "linear_solve_precision": "real64"
      },
      "source_sha256": "dc723c3e68dfbfce82348889e6e87142d5e920c318ba15ca2d5381b9f3ff9de3",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=gslib&example=gams-gslib-kriging-reference"
    },
    {
      "id": "fkb-network-reference",
      "name": "gams-fkb-network-reference",
      "package_id": "fkb",
      "procedure_id": "fkb-inference",
      "gams_code": "K",
      "problem_id": "known-two-output-relu-network",
      "path": "fpm_catalog/gams-drivers/fkb-network-reference.f90",
      "revision": "a1c97d4d66431df87662b59fe8e8a24feaf28a3a",
      "author_example": "src/tests/test_keras.F90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/kriging-network-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using closed-form covariance/kriging references or scalar dense-network evaluation. Available author examples and routine usage comments reviewed; no upstream implementation or test code copied.",
      "validation_path": "docs/gams-kriging-network-validation.json",
      "review_path": "docs/gams-kriging-network.md",
      "checks": {
        "layer_widths": [
          2,
          3,
          2
        ],
        "hidden_activation": "ReLU",
        "output_activation": "linear",
        "input_cases": 25,
        "output_components": 2,
        "networks_checked": 2,
        "prediction_calls": 50,
        "save_reload_checked": true,
        "scalar_forward_reference_checked": true,
        "max_absolute_error": 1e-12,
        "training_or_fit_accuracy_verified": false
      },
      "source_sha256": "e130270ff4f85aed2f1e04ddeff06a4af63b0b6f4383316bcffb299771db5706",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fkb&example=gams-fkb-network-reference"
    },
    {
      "id": "lookup-services-reference",
      "name": "gams-lookup-services-reference",
      "package_id": "lookup-table-fortran",
      "procedure_id": "lookup-interpolation",
      "gams_code": "E3",
      "problem_id": "linear-table-service-consistency",
      "path": "fpm_catalog/gams-drivers/lookup-services-reference.f90",
      "revision": "b7dc72359e7c2cc105abfbf79b570c655a7f1d04",
      "author_example": "usage_example.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/lookup-fastmath-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer. Author examples/tests and implementation interfaces reviewed; no upstream source copied. Linear grids only: independent two-stage interpolation references check 98 queries on original/copied and updated tables, three columns, four lookup routes, location coordinates, endpoint clamping and column resampling/addition. This E3 service driver does not verify the separate E1a mapping.",
      "validation_path": "docs/gams-lookup-fastmath-validation.json",
      "review_path": "docs/gams-lookup-fastmath.md",
      "checks": {
        "table_versions": 2,
        "columns": 3,
        "lookup_queries": 98,
        "lookup_routes": 4,
        "max_absolute_error": 2e-12,
        "location_coordinates_checked": true,
        "copy_independence_checked": true,
        "nonlinear_grid_spacing_verified": false
      },
      "source_sha256": "3efb8efdae135e1124d815932a67194ad6b18dd918ed8beda0ee7adf65f9b7bc",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lookup-table-fortran&example=gams-lookup-services-reference"
    },
    {
      "id": "fastmath-exp-log-reference",
      "name": "gams-fastmath-exp-log-reference",
      "package_id": "fastmath",
      "procedure_id": "fastmath-fexp",
      "gams_code": "C4b",
      "problem_id": "approximate-exp-log-grid",
      "path": "fpm_catalog/gams-drivers/fastmath-exp-log-reference.f90",
      "revision": "ad0f14c455205c0e6c1b9300cd7f333fafb750e2",
      "author_example": "test/test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/lookup-fastmath-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer. Author examples/tests and implementation interfaces reviewed; no upstream source copied. Independent consumer checks fexp and flog_quintic at 641 grid points from -80 to 80, using intrinsic exp and the known inverse arguments as references. Explicit approximation tolerances, positivity, finite results, scalar/array agreement and grid monotonicity are enforced. This is not a speed benchmark or an accuracy guarantee outside the tested normal finite range.",
      "validation_path": "docs/gams-lookup-fastmath-validation.json",
      "review_path": "docs/gams-lookup-fastmath.md",
      "checks": {
        "grid_points": 641,
        "argument_range": [
          -80,
          80
        ],
        "grid_step": 0.25,
        "max_exp_relative_error": 0.0001,
        "max_log_absolute_error": 0.001,
        "max_round_trip_relative_error": 0.0012,
        "scalar_array_consistency_checked": true,
        "grid_monotonicity_checked": true,
        "performance_verified": false
      },
      "source_sha256": "a819984310bc078fbd37ea29349b60ad30bbd1906b83715981b86d20123b1e22",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fastmath&example=gams-fastmath-exp-log-reference"
    },
    {
      "id": "fastmath-rsqrt-reference",
      "name": "gams-fastmath-rsqrt-reference",
      "package_id": "fastmath",
      "procedure_id": "fastmath-frsqrt",
      "gams_code": "C2",
      "problem_id": "approximate-reciprocal-known-square",
      "path": "fpm_catalog/gams-drivers/fastmath-rsqrt-reference.f90",
      "revision": "ad0f14c455205c0e6c1b9300cd7f333fafb750e2",
      "author_example": "test/test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/lookup-fastmath-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer. Author examples/tests and implementation interfaces reviewed; no upstream source copied. Independent consumer checks 168 exactly representable dyadic squares using reciprocals of their known roots, over root binary exponents -250..250 and eight mantissas. Finite positive results, scalar/array agreement and normalized equation residuals are required. Zero, negative, subnormal, infinity/NaN arguments and speed are not verified.",
      "validation_path": "docs/gams-lookup-fastmath-validation.json",
      "review_path": "docs/gams-lookup-fastmath.md",
      "checks": {
        "exact_dyadic_squares": 168,
        "root_binary_exponent_range": [
          -250,
          250
        ],
        "root_binary_exponent_step": 25,
        "root_numerators": [
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15
        ],
        "root_denominator": 8,
        "max_relative_error": 0.002,
        "max_normalized_residual": 0.004,
        "scalar_array_consistency_checked": true,
        "performance_verified": false
      },
      "source_sha256": "e62e28f132bd3cfae2b24f105278d76a7bf1d5f14d44530b08f528ff54d1d6f6",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fastmath&example=gams-fastmath-rsqrt-reference"
    },
    {
      "id": "ecx-rlc-reference",
      "name": "gams-ecx-rlc-reference",
      "package_id": "ecx",
      "procedure_id": "ecx-impedance",
      "gams_code": "A4",
      "problem_id": "complex-rlc-circuit-reference",
      "path": "fpm_catalog/gams-drivers/ecx-rlc-reference.f90",
      "revision": "d30725e3cb9186bc79f81481f3d6fae8d177a7b7",
      "author_example": "example/example.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/circuits-beta-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and available author examples reviewed. No upstream code copied. Dedicated A4 consumer checks R, C and L at 216 frequency cases over 12 parameter sets, with finite complex results, status/message checks and normalized closed-form errors. Series RLC resonance and parallel RC combinations are formed by the driver, not a package circuit solver. Nonideal elements, fitting, kinetics and exceptional inputs are not verified.",
      "validation_path": "docs/gams-circuits-beta-validation.json",
      "review_path": "docs/gams-circuits-beta.md",
      "checks": {
        "circuit_parameter_sets": 12,
        "frequency_cases": 216,
        "element_impedances": 648,
        "array_api_calls": 36,
        "elements": [
          "R",
          "C",
          "L"
        ],
        "max_normalized_complex_error": 2e-13,
        "series_resonance_checked": true,
        "parallel_rc_checked": true,
        "circuit_composition_supplied_by_driver": true
      },
      "source_sha256": "fa76ce6a2bb2133fc314a54d366f91032b999c90cd41a48eeba9ab7ddafa8d33",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ecx&example=gams-ecx-rlc-reference"
    },
    {
      "id": "rpn-sinc-sech-reference",
      "name": "gams-rpn-sinc-sech-reference",
      "package_id": "rpn-calculator-fortran",
      "procedure_id": "rpn-elementary",
      "gams_code": "C4",
      "problem_id": "real-sinc-sech-reference",
      "path": "fpm_catalog/gams-drivers/rpn-sinc-sech-reference.f90",
      "revision": "7708e4949f17511d81f4e7dd0271a500f0bc3631",
      "author_example": "test/test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/circuits-beta-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and available author examples reviewed. No upstream code copied. Dedicated C4 consumer verifies real sinc against a 64-term independent series and sech against a stable exponential formula for 133 real arguments, including zero and signed near-zero values. Finite values, symmetry, range and scalar/array agreement are checked. This driver does not verify the separate C2 cube-root mapping or complex overloads.",
      "validation_path": "docs/gams-circuits-beta-validation.json",
      "review_path": "docs/gams-circuits-beta.md",
      "checks": {
        "real_arguments": 133,
        "grid_argument_range": [
          -8,
          8
        ],
        "grid_step": 0.125,
        "sinc_series_terms": 64,
        "max_sinc_absolute_error": 5e-13,
        "max_sech_absolute_error": 5e-14,
        "scalar_array_consistency_checked": true,
        "even_symmetry_checked": true,
        "cube_root_verified": false,
        "complex_arguments_verified": false
      },
      "source_sha256": "154fe627deaf053b15cf70bf11edd50a65b1b45264c4d38e4b546233016ae26e",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rpn-calculator-fortran&example=gams-rpn-sinc-sech-reference"
    },
    {
      "id": "rpn-beta-reference",
      "name": "gams-rpn-beta-reference",
      "package_id": "rpn-calculator-fortran",
      "procedure_id": "rpn-special",
      "gams_code": "C7",
      "problem_id": "integer-half-integer-beta-reference",
      "path": "fpm_catalog/gams-drivers/rpn-beta-reference.f90",
      "revision": "7708e4949f17511d81f4e7dd0271a500f0bc3631",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/circuits-beta-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and available author examples reviewed. No upstream code copied. Dedicated C7 consumer verifies 128 positive integer/half-integer beta pairs with independent factorial identities, plus symmetry and both one-step recurrences (512 evaluations). Finite positive values and relative error within 2e-13 are required. C10 Bessel functions, complex beta, poles, large arguments and overflow handling are outside this driver.",
      "validation_path": "docs/gams-circuits-beta-validation.json",
      "review_path": "docs/gams-circuits-beta.md",
      "checks": {
        "positive_argument_pairs": 128,
        "beta_evaluations": 512,
        "integer_argument_range": [
          1,
          8
        ],
        "half_integer_argument_range": [
          0.5,
          7.5
        ],
        "factorial_reference_checked": true,
        "symmetry_checked": true,
        "one_step_recurrences_checked": true,
        "max_relative_error": 2e-13,
        "bessel_verified": false
      },
      "source_sha256": "e2dd09257e477c5ccdc6dcb0ed39b629a84edada48021fe5c83cd17bc8aa6e71",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rpn-calculator-fortran&example=gams-rpn-beta-reference"
    },
    {
      "id": "linalg-inverse-factor-reference",
      "name": "gams-linalg-inverse-factor-reference",
      "package_id": "linalg_fortran",
      "procedure_id": "linalg-fortran-inverse",
      "gams_code": "D2",
      "problem_id": "known-ldu-inverse-determinant",
      "path": "fpm_catalog/gams-drivers/linalg-inverse-factor-reference.f90",
      "revision": "30e7237ab54ca176e1c8dae4be2d9d44800e1f83",
      "author_example": "test/check.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/inverse-tvd-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and available author examples reviewed. No upstream code copied. Dedicated D2 real64 consumer checks 132 scaled known LDU matrices and first/last-row permutations, using closed-form bidiagonal inverse factors and determinant products. Both left/right inverse residuals are accumulated with independent scalar loops. Two exact rank-deficient examples must return a false inverse status and zero determinant. Ill-conditioned/near-singular, nonsquare, complex and real32 cases are not verified.",
      "validation_path": "docs/gams-inverse-tvd-validation.json",
      "review_path": "docs/gams-inverse-tvd.md",
      "checks": {
        "nonsingular_matrices": 132,
        "dimensions": [
          1,
          2,
          3,
          4,
          5,
          8
        ],
        "matrix_scales": [
          0.5,
          1,
          8
        ],
        "row_permutations_checked": true,
        "singular_rejections": 2,
        "max_normalized_inverse_error": 2e-12,
        "max_left_right_residual": 5e-12,
        "max_determinant_relative_error": 2e-12,
        "reference_uses_package_linear_algebra": false
      },
      "source_sha256": "1898243323e9784a558721db571b1295d04a088e11a0805142465fd6ddbf7c4b",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=linalg_fortran&example=gams-linalg-inverse-factor-reference"
    },
    {
      "id": "hrweno-tvd-ode-reference",
      "name": "gams-hrweno-tvd-ode-reference",
      "package_id": "hrweno",
      "procedure_id": "hrweno-tvd",
      "gams_code": "I1",
      "problem_id": "linear-decay-nonautonomous-tvd-ode",
      "path": "fpm_catalog/gams-drivers/hrweno-tvd-ode-reference.f90",
      "revision": "2885105a7ba98351fed299b22e9bc0c67a809d2f",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/inverse-tvd-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and available author examples reviewed. No upstream code copied. Dedicated I1 consumer checks 12 prescribed single-step-mode integrations at orders 1..3, with 8/16/32/64 dyadic steps to t=1. Independent stability-polynomial powers, exact nonautonomous forcing, exponential solutions, order-dependent grid convergence and function-evaluation counts are required. Uses documented itask=2; ordinary interval mode has a source TODO concerning final-step overshoot and is outside this verification. Spatial WENO, multistep mode, backward integration and stiffness are not verified.",
      "validation_path": "docs/gams-inverse-tvd-validation.json",
      "review_path": "docs/gams-inverse-tvd.md",
      "checks": {
        "integration_runs": 12,
        "orders": [
          1,
          2,
          3
        ],
        "steps": [
          8,
          16,
          32,
          64
        ],
        "equations": 3,
        "itask": 2,
        "max_discrete_absolute_error": 2e-12,
        "convergence_ratio_factors": [
          0.7,
          1.5
        ],
        "finest_continuous_error_bounds": [
          0.01,
          0.0001,
          1e-06
        ],
        "function_evaluation_counts_checked": true,
        "nonautonomous_stage_times_checked": true,
        "ordinary_interval_mode_verified": false,
        "spatial_weno_verified": false
      },
      "source_sha256": "9f111436e18f69b78450d256e876520de1c915e758cce43c6d29b380337ec471",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=hrweno&example=gams-hrweno-tvd-ode-reference"
    },
    {
      "id": "fortranlib-quadratic-reference",
      "name": "gams-fortranlib-quadratic-reference",
      "package_id": "fortranlib",
      "procedure_id": "fortranlib-numerics",
      "gams_code": "F1",
      "problem_id": "known-distinct-quadratic-roots",
      "path": "fpm_catalog/gams-drivers/fortranlib-quadratic-reference.f90",
      "revision": "60fd094d3e137137ce00ec120b085e9b23ebf68b",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/roots-splines-quadrature-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and available author examples reviewed. No upstream code copied. Dedicated F1 consumer verifies 84 real64 quadratic calls from 21 distinct dyadic root pairs and four signed coefficient scales, comparing sorted roots, root sums/products and normalized residuals. Uses only the ordinary quadratic API, not Pascal/reduced variants. Repeated/complex roots, zero leading coefficient, severe cancellation and extreme scaling are not verified. The separate E1 interpolation and H2 integration mappings remain source-supported.",
      "validation_path": "docs/gams-roots-splines-quadrature-validation.json",
      "review_path": "docs/gams-roots-splines-quadrature.md",
      "checks": {
        "quadratic_calls": 84,
        "distinct_root_pairs": 21,
        "root_values": [
          -4,
          -2,
          -0.5,
          0,
          0.5,
          2,
          4
        ],
        "coefficient_scales": [
          -8,
          -0.5,
          0.5,
          8
        ],
        "max_absolute_root_error": 2e-12,
        "max_normalized_polynomial_residual": 2e-12,
        "root_sum_product_checked": true,
        "repeated_roots_verified": false
      },
      "source_sha256": "1a669c73c3219c76d08513c43e9b102a4d12209192b6956c24d0dd47e8ca1984",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortranlib&example=gams-fortranlib-quadratic-reference"
    },
    {
      "id": "fortran-utils-spline-reference",
      "name": "gams-fortran-utils-spline-reference",
      "package_id": "fortran-utils",
      "procedure_id": "fortran-utils-splines",
      "gams_code": "E1",
      "problem_id": "cubic-reproduction-values-derivatives",
      "path": "fpm_catalog/gams-drivers/fortran-utils-spline-reference.f90",
      "revision": "b43bd24cd421509a5bc6d3b9c3eeae8ce856ed88",
      "author_example": "tests/splines/test_splines.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/roots-splines-quadrature-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and available author examples reviewed. No upstream code copied. Dedicated E1 consumer checks exact degree-0..3 polynomial reproduction on three uniform grids and a nonuniform grid, including first/second derivatives at 65 queries. Optional outputs and reversed query order are compared independently. Uses the API default consistent-cubic endpoint conditions; extrapolation, nonpolynomial convergence, other boundary choices and the separate N6 sorting mapping are not verified.",
      "validation_path": "docs/gams-roots-splines-quadrature-validation.json",
      "review_path": "docs/gams-roots-splines-quadrature.md",
      "checks": {
        "polynomial_grid_fixtures": 16,
        "grid_point_counts": [
          5,
          9,
          17,
          9
        ],
        "polynomial_degrees": [
          0,
          1,
          2,
          3
        ],
        "queries_per_fixture": 65,
        "independent_component_references": 3120,
        "spline_calls": 64,
        "nonuniform_grid_checked": true,
        "optional_outputs_checked": true,
        "reversed_queries_checked": true,
        "max_absolute_component_error": 5e-10,
        "max_optional_output_difference": 5e-12,
        "sorting_verified": false
      },
      "source_sha256": "850b2b4e3a7805516a4668cf2645c5aa9ff4acda5f69efc296285dcde55b7a9a",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-utils&example=gams-fortran-utils-spline-reference"
    },
    {
      "id": "scifortran-quadrature-reference",
      "name": "gams-scifortran-quadrature-reference",
      "package_id": "scifortran",
      "procedure_id": "scifortran-integration",
      "gams_code": "H2",
      "problem_id": "sampled-and-adaptive-closed-form-integrals",
      "path": "fpm_catalog/gams-drivers/scifortran-quadrature-reference.f90",
      "revision": "ca4a55f49cfdf7a94e388bc3475a5db574d5de99",
      "author_example": "test/src/SF_INTEGRATE/01_test_sf_integrate_quad.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/roots-splines-quadrature-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and available author examples reviewed. No upstream code copied. Dedicated H2 consumer verifies 60 sampled polynomial fixtures through four Simpson/trapezoid routes (240 calls), using exact integrals and analytic trapezoidal corrections. Checks 178 adaptive calls: polynomial antiderivatives with default/six Gauss-Kronrod rules, exponential tails, Gaussian/Cauchy whole-line integrals and endpoint-root singularities. Uses module callbacks and existing coefficient-precision repairs. Weighted/pole integrals, complex/nonuniform sampled rules, all error paths and performance are outside this driver.",
      "validation_path": "docs/gams-roots-splines-quadrature-validation.json",
      "review_path": "docs/gams-roots-splines-quadrature.md",
      "checks": {
        "sampled_polynomial_cases": 60,
        "sampled_rule_calls": 240,
        "sample_counts": [
          5,
          8,
          9,
          16,
          17
        ],
        "sampled_polynomial_degrees": [
          0,
          1,
          2,
          3
        ],
        "adaptive_calls": 178,
        "adaptive_polynomial_degrees": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "gauss_kronrod_keys": [
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "whole_line_integrals": 2,
        "endpoint_singular_integrals": 2,
        "semi_infinite_integrals": 6,
        "max_normalized_sample_error": 2e-12,
        "max_normalized_adaptive_error": 5e-11,
        "module_callbacks_used": true
      },
      "source_sha256": "f6035fb5c27ab18c48caf0331ae323f9355916e1463744cd3dce908907faec17",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=scifortran&example=gams-scifortran-quadrature-reference"
    },
    {
      "id": "io-numeric-file-reference",
      "name": "gams-io-numeric-file-reference",
      "package_id": "io-fortran-library",
      "procedure_id": "io-fortran-library-to-file",
      "gams_code": "N1",
      "problem_id": "independent-numeric-file-layout",
      "path": "fpm_catalog/gams-drivers/io-numeric-file-reference.f90",
      "revision": "15bc3557c36adc174abbd9a077e0686dc11cc4af",
      "author_example": "test/units/file-test-c.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/io-bounds-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and author examples reviewed. No upstream code copied. Dedicated N1 consumer checks eight real64 matrix files across four shapes and two delimiters. Independent native Fortran parsing checks rows, delimiter counts and values, then library round trips and a hand-written CSV test the reader independently. Missing-file status/message and cleanup are checked. Headers, locale options, complex/integer arrays, other ranks, nonfinite values and formatting modes beyond exponential output are not verified.",
      "validation_path": "docs/gams-io-bounds-validation.json",
      "review_path": "docs/gams-io-bounds.md",
      "checks": {
        "matrix_files": 8,
        "matrix_shapes": [
          [
            1,
            1
          ],
          [
            2,
            3
          ],
          [
            4,
            2
          ],
          [
            3,
            4
          ]
        ],
        "delimiters": [
          ",",
          ";"
        ],
        "numeric_kind": "real64",
        "independent_native_reader_checked": true,
        "independent_native_writer_checked": true,
        "missing_file_diagnostic_checked": true,
        "max_normalized_numeric_error": 5e-14
      },
      "source_sha256": "8f8e54da98a1554cf62345a902b8e22738c27b199086e6a2e1304ce0f8eb0a5c",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=io-fortran-library&example=gams-io-numeric-file-reference"
    },
    {
      "id": "error-bounds-reference",
      "name": "gams-error-bounds-reference",
      "package_id": "fortran-error-handler",
      "procedure_id": "error-validation",
      "gams_code": "R2",
      "problem_id": "inclusive-typed-bounds-validation",
      "path": "fpm_catalog/gams-drivers/error-bounds-reference.f90",
      "revision": "ab840882bb5036de00de8b2580e745fa5314d6fd",
      "author_example": "example/example_usage.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/io-bounds-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and author examples reviewed. No upstream code copied. Dedicated R2 consumer checks 102 integer/real32/real64 inclusive bound comparisons against native logical expressions, including one-sided/equal bounds and nearest representable values inside/outside both endpoints. All 30 expected rejections must retain code 105, a supplied custom message and one supplied trace entry. No error is triggered. Other criteria, reversed/missing bounds, NaNs, critical termination and the separate R3 handling mapping are not verified.",
      "validation_path": "docs/gams-io-bounds-validation.json",
      "review_path": "docs/gams-io-bounds.md",
      "checks": {
        "criteria_calls": 102,
        "expected_rejections": 30,
        "value_types": [
          "integer",
          "real32",
          "real64"
        ],
        "one_sided_bounds_checked": true,
        "equal_bounds_checked": true,
        "nearest_inside_outside_values_checked": true,
        "expected_failure_code": 105,
        "custom_message_trace_checked": true,
        "critical_error_triggering_verified": false
      },
      "source_sha256": "8874366239c15470759127da9f668a2b4dce874a63976906b701c02988d84a5c",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-error-handler&example=gams-error-bounds-reference"
    },
    {
      "id": "fortimize-nelder-reference",
      "name": "gams-fortimize-nelder-reference",
      "package_id": "fortimize",
      "procedure_id": "fortimize-nelder-mead",
      "gams_code": "G1b",
      "problem_id": "known-coupled-quadratic-rosenbrock-minima",
      "path": "fpm_catalog/gams-drivers/fortimize-nelder-reference.f90",
      "revision": "3431b656cd86f89135d0f35bf6afdbd787d9daf3",
      "author_example": "example/gradient.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/optimization-spacing-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and author examples reviewed. No upstream code copied. Dedicated G1b consumer checks twelve derivative-free solves: coupled positive-definite quadratics in 2/3/5 variables and the two-variable Rosenbrock problem, each from three starts. Known unique minimizers and zero objective supply independent acceptance criteria, and the returned objective is recomputed. Uses the actual kcount evaluation limit; optimizer termination status is not exposed by this wrapper. No upstream example code is copied. Other methods, nonsmooth/global optimization, scaling extremes and concurrent calls are not verified.",
      "validation_path": "docs/gams-optimization-spacing-validation.json",
      "review_path": "docs/gams-optimization-spacing.md",
      "checks": {
        "optimization_runs": 12,
        "quadratic_dimensions": [
          2,
          3,
          5
        ],
        "starts_per_problem": 3,
        "rosenbrock_runs": 3,
        "max_coordinate_error": 0.0002,
        "max_objective": 1e-08,
        "max_returned_objective_difference": 1e-12,
        "convergence_tolerance": 1e-20,
        "konvge": 20,
        "function_evaluation_limit": 50000,
        "derivative_requests_allowed": false,
        "parallel_use_verified": false
      },
      "source_sha256": "840a3f55c03b95db3e93c1816078dd52ae2c56fc946a537b84f59fb24276c915",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortimize&example=gams-fortimize-nelder-reference"
    },
    {
      "id": "pointsets-spacing-reference",
      "name": "gams-pointsets-spacing-reference",
      "package_id": "pointsets",
      "procedure_id": "pointsets-arithmetic-spacing",
      "gams_code": "R",
      "problem_id": "deterministic-arithmetic-geometric-grids",
      "path": "fpm_catalog/gams-drivers/pointsets-spacing-reference.f90",
      "revision": "a1c381777f893d656018366cfabfa4cc7531e4dd",
      "author_example": "test/pointsets/test_pointsets.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/optimization-spacing-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and author examples reviewed. No upstream code copied. Dedicated R consumer checks 20 arithmetic and 80 geometric grids against real64 closed-form references using 32 working-kind epsilons as tolerance. Increasing/decreasing/equal endpoints and strict ordering for nondegenerate grids are checked. At this pin wp is real32; ratios of one or less than/equal zero and arrays shorter than two are documented/tested as unchanged-array guards, not filled grids. Random point routines, large grids, extreme ratios and near-unit-ratio stability are not verified.",
      "validation_path": "docs/gams-optimization-spacing-validation.json",
      "review_path": "docs/gams-optimization-spacing.md",
      "checks": {
        "arithmetic_grids": 20,
        "geometric_grids": 80,
        "point_counts": [
          2,
          3,
          5,
          9,
          17
        ],
        "geometric_ratios": [
          0.5,
          0.75,
          1.25,
          2
        ],
        "working_precision": "real32 at this pin",
        "reference_precision": "real64",
        "max_normalized_error_multiple_of_epsilon": 32,
        "increasing_decreasing_equal_endpoints_checked": true,
        "unchanged_array_guard_calls": 7,
        "random_generators_verified": false
      },
      "source_sha256": "d13407667d21a9e8d51d0af9c4f015a04710e0810547011a8f39eda225323a1f",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=pointsets&example=gams-pointsets-spacing-reference"
    },
    {
      "id": "sdl-raster-reference",
      "name": "gams-sdl-raster-reference",
      "package_id": "fortran-sdl2",
      "procedure_id": "fortran-sdl2-demo-api",
      "gams_code": "Q",
      "problem_id": "clipped-overlapping-raster-png-reference",
      "path": "fpm_catalog/gams-drivers/sdl-raster-reference.f90",
      "revision": "cac974790420ba757c17f88678e66b01500319e7",
      "author_example": "examples/alpha.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/raster-distributions-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and author examples reviewed. No upstream code copied. Dedicated Q consumer checks every pixel of an 85x65 software surface containing four overlapping/clipped rectangles, using native RGB mask arithmetic and independent half-open coordinate tests. Repeats the exact pixel check after PNG export/import and conversion to the original pixel format, and independently checks the PNG signature/IHDR dimensions. Uses only the missing standard IMG_SavePNG C declaration. Interactive rendering, hardware, alpha blending, codecs beyond PNG and other SDL subsystems are not verified.",
      "validation_path": "docs/gams-raster-distributions-validation.json",
      "review_path": "docs/gams-raster-distributions.md",
      "checks": {
        "image_dimensions": [
          85,
          65
        ],
        "rectangles": 4,
        "known_colors": 5,
        "exact_pixel_checks": 11050,
        "native_rgb_reference_checked": true,
        "independent_png_header_checked": true,
        "png_round_trip_pixels_checked": true,
        "headless_software_surface": true,
        "interactive_rendering_verified": false
      },
      "source_sha256": "3682cf928fc01cb22c6353fe3fef2ca599af60194a27222a7810bef00d2cf269",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-sdl2&example=gams-sdl-raster-reference"
    },
    {
      "id": "rng-distributions-reference",
      "name": "gams-rng-distributions-reference",
      "package_id": "rng-fortran",
      "procedure_id": "rng-distributions",
      "gams_code": "L6",
      "problem_id": "seeded-distribution-moments-and-geometric-norms",
      "path": "fpm_catalog/gams-drivers/rng-distributions-reference.f90",
      "revision": "5ead95f436323d07fc82acc3613f66550947f256",
      "author_example": "example.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/raster-distributions-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and author examples reviewed. No upstream code copied. Dedicated L6 consumer checks exact replay with fresh seeded objects, 60000 normal and 60000 small-rate Poisson samples against broad analytic moment/zero-probability tolerances, and 3000 circle plus 3000 sphere samples against exact norm references and broad coordinate moments. These are fixed-seed deterministic smoke checks, not statistical or cryptographic quality certification. Fresh allocations avoid the known cached-normal reseeding issue; that issue remains unresolved. Poisson rates >=10/rejection sampling, parallel/jump independence and full distribution coverage are not verified.",
      "validation_path": "docs/gams-raster-distributions-validation.json",
      "review_path": "docs/gams-raster-distributions.md",
      "checks": {
        "seeds": 3,
        "normal_samples": 60000,
        "poisson_samples": 60000,
        "samples_per_distribution_run": 20000,
        "poisson_rates": [
          0.5,
          2,
          8
        ],
        "circle_samples": 3000,
        "sphere_samples": 3000,
        "radii": [
          0.25,
          1,
          3
        ],
        "fresh_object_exact_replay_checked": true,
        "max_normal_mean_error": 0.04,
        "max_normal_second_moment_error": 0.08,
        "max_poisson_mean_error_factor": 0.04,
        "max_poisson_centered_moment_error_factor": 0.12,
        "max_poisson_zero_probability_error": 0.02,
        "max_geometric_normalized_norm_error": 2e-12,
        "max_coordinate_mean_error": 0.15,
        "max_coordinate_second_moment_error": 0.12,
        "randomness_quality_certified": false,
        "normal_reseeding_cache_verified": false,
        "poisson_rejection_branch_verified": false
      },
      "source_sha256": "42b046a4213072293126da5492a666bf2431b318b9686e4915c70df78475c8b5",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rng-fortran&example=gams-rng-distributions-reference"
    },
    {
      "id": "quaff-quantity-reference",
      "name": "gams-quaff-quantity-reference",
      "package_id": "quaff",
      "procedure_id": "quaff-length-t",
      "gams_code": "A",
      "problem_id": "typed-length-time-speed-arithmetic",
      "path": "fpm_catalog/gams-drivers/quaff-quantity-reference.f90",
      "revision": "f26da3d854045b79102d27bdb4e9f9b072444272",
      "author_example": "test/length_test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/quantities-spherical-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and author examples reviewed. No upstream code copied. Dedicated A consumer checks 180 scalar references for signed/zero lengths, five length units, seconds/minutes/hours, arithmetic, absolute values and quantity-array sums. Typed length/time speed and speed*time length agree with independent scalar SI formulas. Other quantity dimensions, parsing, overflow and compile-time rejection of invalid dimensional expressions are not verified.",
      "validation_path": "docs/gams-quantities-spherical-validation.json",
      "review_path": "docs/gams-quantities-spherical.md",
      "checks": {
        "scalar_references": 180,
        "length_values": [
          -8,
          -0.125,
          0,
          0.25,
          3,
          1000
        ],
        "time_values": [
          0.25,
          1,
          10
        ],
        "length_units": [
          "meters",
          "centimeters",
          "millimeters",
          "feet",
          "inches"
        ],
        "max_normalized_numeric_error": 2e-12,
        "typed_speed_round_trip_checked": true,
        "scalar_reference_factors_from_SI": true,
        "invalid_dimensions_compile_checks_verified": false
      },
      "source_sha256": "e824454fd62ff3b4f24e37bb9f49ffb4f777fbd9503769813d7dc7e85d0fe3b1",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=quaff&example=gams-quaff-quantity-reference"
    },
    {
      "id": "spherepack-zonal-reference",
      "name": "gams-spherepack-zonal-reference",
      "package_id": "spherepack",
      "procedure_id": "spherepack-scalar-transform",
      "gams_code": "J",
      "problem_id": "known-zonal-legendre-analysis-synthesis",
      "path": "fpm_catalog/gams-drivers/spherepack-zonal-reference.f90",
      "revision": "e80da29462c5987162a0884baaab7434d0215467",
      "author_example": "examples/helmsph.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/quantities-spherical-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and author examples reviewed. No upstream code copied. Dedicated J consumer verifies P0..P4 zonal fields and a mixed zonal field on three Gaussian grids. Analyzed coefficients must match independently normalized Legendre amplitudes, valid nonzonal coefficients must vanish, and synthesis is checked both after analysis and after erasing/injecting exact coefficients. Nonzero nonzonal modes, vector transforms, Nyquist/invalid coefficient storage and Helmholtz/PDE routines are not verified.",
      "validation_path": "docs/gams-quantities-spherical-validation.json",
      "review_path": "docs/gams-quantities-spherical.md",
      "checks": {
        "harmonic_fixtures": 18,
        "gaussian_grids": [
          [
            9,
            16
          ],
          [
            13,
            24
          ],
          [
            17,
            32
          ]
        ],
        "zonal_degrees": [
          0,
          1,
          2,
          3,
          4
        ],
        "mixed_amplitudes": [
          1,
          -2,
          0.5,
          0.25,
          -0.75
        ],
        "analysis_calls": 18,
        "synthesis_calls": 36,
        "max_absolute_coefficient_error": 2e-11,
        "max_absolute_field_error": 2e-11,
        "independent_coefficient_injection_checked": true,
        "nonzero_nonzonal_modes_verified": false
      },
      "source_sha256": "e18abc4c6d5c800e18270a398d0101795bbc2bcc558f888ffcbaf979a12dc099",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=spherepack&example=gams-spherepack-zonal-reference"
    },
    {
      "id": "dde-method-steps-reference",
      "name": "gams-dde-method-steps-reference",
      "package_id": "dde_solver",
      "procedure_id": "dde-solver-api",
      "gams_code": "I",
      "problem_id": "constant-delay-method-of-steps-and-oscillator",
      "path": "fpm_catalog/gams-drivers/dde-method-steps-reference.f90",
      "revision": "90d3389ce5d5733ab2b6e7ed7d2dad273b4d0c6b",
      "author_example": "tests/delay_oscillator/delay_oscillator.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/delay-embedding-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and author examples reviewed. No upstream code copied. Dedicated I consumer checks twelve scalar constant-delay equations against independently specified method-of-steps polynomials through four delay intervals, and three oscillators against exact sine solutions. Verifies solver status and 975 finite dense-output samples including delay knots, with signed history scaling. Module callbacks use no copied upstream code. State-dependent/neutral/multiple delays, events, derivative interpolation, stiffness and all error paths are not verified.",
      "validation_path": "docs/gams-delay-embedding-validation.json",
      "review_path": "docs/gams-delay-embedding.md",
      "checks": {
        "integration_runs": 15,
        "method_of_steps_runs": 12,
        "oscillator_runs": 3,
        "dense_output_references": 975,
        "samples_per_run": 65,
        "constant_delays": [
          0.25,
          1,
          2
        ],
        "growth_rates": [
          0.5,
          1
        ],
        "constant_history_values": [
          1,
          -2
        ],
        "oscillator_frequencies": [
          0.5,
          1,
          2
        ],
        "relative_tolerance": 1e-10,
        "absolute_tolerance": 1e-12,
        "max_normalized_solution_error": 2e-07,
        "state_dependent_delays_verified": false
      },
      "source_sha256": "708925ef930df443d65ca61e330b744f5d05edbbd9f6d2b6dd0df2194a3722b8",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dde_solver&example=gams-dde-method-steps-reference"
    },
    {
      "id": "lua-numeric-embedding-reference",
      "name": "gams-lua-numeric-embedding-reference",
      "package_id": "fortran-lua54",
      "procedure_id": "lua-call",
      "gams_code": "S",
      "problem_id": "numeric-lua-results-stack-and-recovery",
      "path": "fpm_catalog/gams-drivers/lua-numeric-embedding-reference.f90",
      "revision": "b3582591bc82d003ef3933d0772c131509667f49",
      "author_example": "examples/string.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/delay-embedding-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and author examples reviewed. No upstream code copied. Dedicated S consumer checks exact factorial, sums-of-squares and signed-polynomial results plus real Pythagorean norms across the Fortran/Lua boundary. Checks return types, stack balance, expected runtime/syntax diagnostics and reuse of the same state after errors (128 integer and five real successes). Independent Lua scripts and Fortran references; no external script files. Arbitrary modules, callbacks to Fortran, userdata, concurrency and full language/binding coverage are not verified.",
      "validation_path": "docs/gams-delay-embedding-validation.json",
      "review_path": "docs/gams-delay-embedding.md",
      "checks": {
        "exact_integer_calls": 128,
        "factorial_max_argument": 20,
        "sums_of_squares_max_argument": 64,
        "polynomial_argument_range": [
          -20,
          20
        ],
        "real_norm_calls": 5,
        "expected_runtime_errors": 1,
        "expected_syntax_errors": 1,
        "max_real_absolute_error": 1e-12,
        "return_types_checked": true,
        "stack_balance_checked": true,
        "state_recovery_checked": true,
        "external_script_files_used": false
      },
      "source_sha256": "b278af0ed0cd3d0dccbe8c4de9dcd95b3c26326ce0f0e880525e9071f4e968b8",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-lua54&example=gams-lua-numeric-embedding-reference"
    },
    {
      "id": "ntpoly-matrix-root-reference",
      "name": "gams-ntpoly-matrix-root-reference",
      "package_id": "ntpoly",
      "procedure_id": "ntpoly-matrix-square-roots",
      "gams_code": "D",
      "problem_id": "known-spectral-principal-matrix-roots",
      "path": "fpm_catalog/gams-drivers/ntpoly-matrix-root-reference.f90",
      "revision": "7b3d22f76226af1402e9b0a5be18a496e4addc28",
      "author_example": "Examples/PremadeMatrix/main.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/matrix-roots-box-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and author examples reviewed. No upstream code copied. Dedicated D consumer checks 24 known SPD matrices in dimensions 2/3 and their principal square/inverse-square roots against independently constructed orthogonal-factor formulas. Three rotations and four positive-root pairs give 48 matrix-function calls; scalar products check root squared, inverse-root congruence and mutual inverse identity. Exactly one MPI process. Does not verify the separate Invert/D2 API, distributed scaling, complex/indefinite/singular matrices or large sparse behavior.",
      "validation_path": "docs/gams-matrix-roots-box-validation.json",
      "review_path": "docs/gams-matrix-roots-box.md",
      "checks": {
        "spd_matrix_fixtures": 24,
        "matrix_function_calls": 48,
        "dimensions": [
          2,
          3
        ],
        "positive_root_pairs": [
          [
            1,
            2
          ],
          [
            1,
            3
          ],
          [
            0.5,
            2
          ],
          [
            2,
            4
          ]
        ],
        "orthogonal_factor_variants": 3,
        "mpi_processes": 1,
        "max_normalized_matrix_error": 2e-08,
        "max_symmetry_error": 2e-09,
        "max_product_residual": 5e-08,
        "scalar_residual_accumulation_checked": true,
        "inversion_api_verified": false,
        "distributed_scaling_verified": false
      },
      "source_sha256": "0e325c40d28d027d24ac60447ddc68a58b02b98d90f4d72084bf90cc5d07de1a",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ntpoly&example=gams-ntpoly-matrix-root-reference"
    },
    {
      "id": "qnstop-box-reference",
      "name": "gams-qnstop-box-reference",
      "package_id": "qnstop",
      "procedure_id": "qnstop-bounded",
      "gams_code": "G2",
      "problem_id": "projected-diagonal-quadratic-box-minima",
      "path": "fpm_catalog/gams-drivers/qnstop-box-reference.f90",
      "revision": "39e8273247f586fca8305ef3d8e879b27b6512d0",
      "author_example": "src/sample_main_s.f95",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/matrix-roots-box-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; source interfaces and author examples reviewed. No upstream code copied. Dedicated G2 consumer checks four seeded diagonal-quadratic box problems with known interior minimizers in two/three variables. Verifies normal stopping status, feasibility, finite output, evaluation count, returned-objective consistency and unchanged coordinate/objective tolerances. Active-bound probes failed the position tolerance at both 500 and 2000 iterations; source and actual results are retained under docs/gams-candidates/qnstop. Those face probes and an unreached corner fixture are not counted as verified. Seeds use the pinned GNU intrinsic RNG; this is a deterministic accuracy smoke check, not a general global guarantee. Noisy objectives, parallel variants and all stopping/input modes are not verified.",
      "validation_path": "docs/gams-matrix-roots-box-validation.json",
      "review_path": "docs/gams-matrix-roots-box.md",
      "checks": {
        "seeded_optimization_runs": 4,
        "interior_minima": 4,
        "face_minima": 0,
        "corner_minima": 0,
        "dimensions": [
          2,
          3
        ],
        "bounds": [
          -2,
          2
        ],
        "sample_design_size": 32,
        "iteration_limit": 500,
        "mode": "G",
        "max_coordinate_error": 0.03,
        "max_normalized_objective_gap": 0.1,
        "max_interior_objective": 0.001,
        "returned_objective_consistency_checked": true,
        "global_guarantee_verified": false,
        "active_bounds_verified": false
      },
      "source_sha256": "13e32a0d4e2740fcaafda1c8acdebe2cbb0f9fe5791bc62400157e48a2ff5be8",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=qnstop&example=gams-qnstop-box-reference"
    },
    {
      "id": "libmbd-dimer-spectrum",
      "name": "gams-libmbd-dimer-spectrum",
      "package_id": "libmbd",
      "procedure_id": "libmbd-dispersion",
      "gams_code": "D4",
      "problem_id": "bare-two-oscillator-spectrum",
      "path": "fpm_catalog/gams-drivers/libmbd-dimer-spectrum.f90",
      "revision": "77d7ab424d21f43dea9f57734b355ce4ea4d1a42",
      "author_example": "tests/mbd_api_tests.F90",
      "reuse": "independent",
      "license": "MIT (driver only)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/dispersion-drivers-MIT.txt"
      ],
      "modifications": "Independent bare two-oscillator Hamiltonian consumer. Closed-form 2x2 block spectra, zero-point energy, scalar eigenvector residuals and orthogonality; 36 geometries, 72 calls with/without modes. This D4 test exercises the internal real Hamiltonian eigensolver, not a general-purpose eigensolver API. No upstream code copied. Screened/damped models, periodic or complex solvers, gradients and distributed execution are not verified.",
      "validation_path": "docs/gams-dispersion-validation.json",
      "review_path": "docs/gams-dispersion.md",
      "checks": {
        "two_oscillator_fixtures": 36,
        "hamiltonian_calls": 72,
        "eigenvalues_per_fixture": 6,
        "eigenvector_fixtures": 36,
        "max_normalized_eigenvalue_error": 1e-12,
        "max_energy_error": 1e-12,
        "max_eigenvector_residual": 1e-12,
        "max_orthogonality_error": 1e-12,
        "bare_nonperiodic_only": true,
        "screened_model_verified": false
      },
      "source_sha256": "d40a12846860ffe887037250da70557f0ef5fe0822b4dcf6f6fa9b7657f005d6",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=libmbd&example=gams-libmbd-dimer-spectrum"
    },
    {
      "id": "dftd4-dispersion-reference",
      "name": "gams-dftd4-dispersion-reference",
      "package_id": "dftd4",
      "procedure_id": "dftd4-dispersion",
      "gams_code": "Z",
      "problem_id": "pbe-d4-mb16-43-01",
      "path": "fpm_catalog/gams-drivers/dftd4-dispersion-reference.f90",
      "revision": "1107ea7c7c2131719e306fd57a5f4a1579e2577e",
      "author_example": "test/unit/test_dftd4.f90",
      "reuse": "adapted",
      "license": "LGPL-3.0-or-later AND Apache-2.0",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/dftd4-COPYING",
        "fpm_catalog/gams-drivers/licenses/dftd4-COPYING.LESSER",
        "fpm_catalog/gams-drivers/licenses/dftd4-geometry-Apache-2.0.txt",
        "fpm_catalog/gams-drivers/licenses/dftd4-geometry-NOTICE.txt"
      ],
      "modifications": "Adapted pinned upstream test_pbed4_mb01 parameters/reference and mstore v0.4.0 MB16-43/01 geometry; existing catalog consumer expanded to all 48 Cartesian central differences, translation, net-force and rigid-rotation energy/gradient checks. LGPL-3.0-or-later and Apache-2.0 notices retained. Z domain-specific PBE-D4 two-body molecular dispersion, not a generic derivative routine. Other molecules, periodic, D4S, three-body and Hessian modes are not verified.",
      "validation_path": "docs/gams-dispersion-validation.json",
      "review_path": "docs/gams-dispersion.md",
      "checks": {
        "atoms": 16,
        "cartesian_derivatives": 48,
        "central_difference_step_bohr": 1e-05,
        "energy_reference_hartree": -0.018578752883363366,
        "max_energy_error": 1e-10,
        "max_gradient_fd_error": 1e-06,
        "rigid_rotation_checked": true,
        "translation_checked": true,
        "three_body_verified": false
      },
      "source_sha256": "aa36f1c5c9fbecc2f106ee512e20bbc125c5bc3bb56c343e8d089bc4f65628db",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dftd4&example=gams-dftd4-dispersion-reference"
    },
    {
      "id": "kronrod-moments-reference",
      "name": "gams-kronrod-moments-reference",
      "package_id": "kronrod",
      "procedure_id": "kronrod-rule",
      "gams_code": "H2c",
      "problem_id": "exact-polynomial-quadrature-moments",
      "path": "fpm_catalog/gams-drivers/kronrod-moments-reference.f90",
      "revision": "312278846b6e403fdea410a823d88ef4fb92a3cc",
      "author_example": "app/main.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/rules-differences-drivers-MIT.txt"
      ],
      "modifications": "Independent rule-generator consumer; source/author interfaces reviewed, no upstream code copied. Seven Gauss orders generate symmetric Kronrod extensions. Checks positive weights, ordered interior nodes, embedded Gauss node count, 64 Kronrod and 37 Gauss exact even moments, and 54 moments translated to [1,3], using MPFUN arithmetic at normalized tolerance 1e-40. The checksum-guarded catalog wrapper retains original procedure bodies. Does not verify adaptive integration, every order or MPFUN arithmetic independently. Gauss order 1 failed the constant moment; source and actual failure retained under docs/gams-candidates/kronrod. No tolerances were relaxed.",
      "validation_path": "docs/gams-rules-differences-validation.json",
      "review_path": "docs/gams-rules-differences.md",
      "checks": {
        "gauss_orders": [
          2,
          3,
          4,
          5,
          6,
          7,
          10
        ],
        "kronrod_even_moments": 64,
        "gauss_even_moments": 37,
        "translated_moments": 54,
        "mpfun_normalized_moment_tolerance": 1e-40,
        "node_ordering_checked": true,
        "embedded_node_count_checked": true,
        "adaptive_integration_verified": false,
        "order_one_verified": false
      },
      "source_sha256": "cbef46d86d0950c904f2f286d5c37a3c988324a8f0a5eac030fae0cd878056d5",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=kronrod&example=gams-kronrod-moments-reference"
    },
    {
      "id": "tsunami-differences-reference",
      "name": "gams-tsunami-differences-reference",
      "package_id": "tsunami",
      "procedure_id": "tsunami-periodic-differences",
      "gams_code": "H1",
      "problem_id": "periodic-fourier-stencil-convergence",
      "path": "fpm_catalog/gams-drivers/tsunami-differences-reference.f90",
      "revision": "70b5702aed42bbea0733335d50e0eb70cb159e08",
      "author_example": "src/ch04/tsunami.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/rules-differences-drivers-MIT.txt"
      ],
      "modifications": "Independent periodic-differentiation consumer; source/author interfaces reviewed, no upstream code copied. Ninety sine/cosine fixtures check exact discrete Fourier formulas, five nonsmooth fixtures check wraparound/telescoping, five constant fixtures check zero derivatives. Continuous sine derivative RMS errors must refine at second/first order for centered/upwind stencils on five grids. Original Chapter 4 modules are unchanged. Divides raw package differences by physical grid spacing explicitly. Does not verify PDE evolution, other chapters, coarrays or nonperiodic boundaries.",
      "validation_path": "docs/gams-rules-differences-validation.json",
      "review_path": "docs/gams-rules-differences.md",
      "checks": {
        "periodic_grid_sizes": [
          16,
          32,
          64,
          128,
          256
        ],
        "fourier_fixtures": 90,
        "nonsmooth_constant_fixtures": 10,
        "fourier_wavenumbers": [
          1,
          2,
          3
        ],
        "phases": [
          0,
          0.37,
          1.1
        ],
        "centered_refinement_ratio": [
          3.8,
          4.2
        ],
        "upwind_refinement_ratio": [
          1.9,
          2.1
        ],
        "precision": "real32",
        "pde_evolution_verified": false
      },
      "source_sha256": "c975344458cad31c65114123ffc016d8896d493e12cd81c913b21037470641c9",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=tsunami&example=gams-tsunami-differences-reference"
    },
    {
      "id": "linalg-qr-reference",
      "name": "gams-linalg-qr-reference",
      "package_id": "linalg",
      "procedure_id": "linalg-qr-factor",
      "gams_code": "D5",
      "problem_id": "real-rectangular-qr-invariants",
      "path": "fpm_catalog/gams-drivers/linalg-qr-reference.f90",
      "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
      "author_example": "examples/linalg_qr_example.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/qr-autodiff-drivers-MIT.txt"
      ],
      "modifications": "Independent real QR consumer; source and author example reviewed, no upstream code copied. Checks 192 square/tall/wide fixtures, including repeated columns, zero columns and zero matrices, at three signed scales. Each runs without pivoting, with free column pivoting and with the first column locked: 576 calls. Scalar loops check A*P=Q*R, full-Q orthogonality and upper-trapezoidal R; validates pivot permutations, returned P and unchanged input. Does not verify complex QR, solving, rank estimation, updates or malformed dimensions.",
      "validation_path": "docs/gams-qr-autodiff-validation.json",
      "review_path": "docs/gams-qr-autodiff.md",
      "checks": {
        "matrix_fixtures": 192,
        "factorization_calls": 576,
        "row_counts": [
          1,
          2,
          4,
          6
        ],
        "column_counts": [
          1,
          2,
          3,
          5
        ],
        "matrix_patterns": 4,
        "scale_factors": [
          -4,
          0.5,
          2
        ],
        "pivot_modes": [
          "none",
          "free",
          "first-column-locked"
        ],
        "max_normalized_reconstruction_error": 2e-12,
        "max_orthogonality_error": 5e-12,
        "rank_deficient_included": true,
        "linear_solve_verified": false,
        "complex_verified": false
      },
      "source_sha256": "b0944f22ccd34f7989a33228fa152907eb5faeccbb5291013aa235b0776985b9",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=linalg&example=gams-linalg-qr-reference"
    },
    {
      "id": "differentia-analytic-reference",
      "name": "gams-differentia-analytic-reference",
      "package_id": "differentia",
      "procedure_id": "differentia-ad",
      "gams_code": "H1",
      "problem_id": "analytic-scalar-gradient-jacobian",
      "path": "fpm_catalog/gams-drivers/differentia-analytic-reference.f90",
      "revision": "2388e8ecf300a7bbc0904feab47023413464edf9",
      "author_example": "test/test_differentia.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/qr-autodiff-drivers-MIT.txt"
      ],
      "modifications": "Independent automatic-differentiation consumer; source and author tests reviewed, no upstream code copied. Three scalar formulas at 33 points, a three-variable coupled gradient and a dense 3x3 Jacobian all checked against hand-derived formulas. Jacobian runs with temporary and reused workspaces. Gradient and Jacobian output-length guards must return errors before successful recovery. Uses module callbacks. Does not verify sparse Jacobians, all intrinsics, nonsmooth points, higher derivatives or every failure mode. Separate forwarddiff catalog alias remains source-supported.",
      "validation_path": "docs/gams-qr-autodiff-validation.json",
      "review_path": "docs/gams-qr-autodiff.md",
      "checks": {
        "scalar_derivative_calls": 99,
        "gradient_calls": 33,
        "dense_jacobian_calls": 66,
        "input_points": 33,
        "gradient_dimension": 3,
        "jacobian_dimension": 3,
        "dimension_guards": 2,
        "workspace_reuse_checked": true,
        "max_normalized_analytical_error": 2e-12,
        "sparse_jacobians_verified": false
      },
      "source_sha256": "ac08fc4d8377466c4b21648c4671f58ca497e1a0369711e61dc7d51876f93a26",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=differentia&example=gams-differentia-analytic-reference"
    },
    {
      "id": "linalg-eigen-reference",
      "name": "gams-linalg-eigen-reference",
      "package_id": "linalg",
      "procedure_id": "linalg-eigen",
      "gams_code": "D4a1",
      "problem_id": "real-symmetric-known-spectrum",
      "path": "fpm_catalog/gams-drivers/linalg-eigen-reference.f90",
      "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
      "author_example": "tests/test_eigen.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/lapack-spectra-drivers-MIT.txt"
      ],
      "modifications": "Independent real symmetric linalg eigensolver consumer; pinned APIs and author tests reviewed, no upstream code copied. Ninety-six known-spectrum matrices include signed, repeated, singular and zero spectra, signed scales and identity/Householder mixing. Two calls per matrix cover eigenvalues-only/vectors and finite poison in the unused upper half (the API uses the lower triangle). Checks sorted analytical eigenvalues, scalar eigenvector residuals, orthogonality, shapes and unchanged input. Does not verify complex/generalized/nonsymmetric problems, sparse modes, malformed input or large/ill-conditioned cases. Separate fortran-lapack probes failed at the sandbox linker file-size limit; retained in docs/gams-candidates/fortran-lapack and not counted as verified.",
      "validation_path": "docs/gams-dense-spectra-validation.json",
      "review_path": "docs/gams-dense-spectra.md",
      "checks": {
        "matrix_fixtures": 96,
        "eigen_calls": 192,
        "dimensions": [
          1,
          2,
          3,
          5
        ],
        "spectrum_patterns": 4,
        "scale_factors": [
          -4,
          0.5,
          2
        ],
        "unused_upper_triangle_poisoned": true,
        "eigenvalues_only_checked": true,
        "max_normalized_eigenvalue_error": 2e-12,
        "max_normalized_eigenvector_residual": 5e-12,
        "max_orthogonality_error": 5e-12,
        "complex_verified": false,
        "invalid_inputs_verified": false
      },
      "source_sha256": "f8acbb7f5bc6a344fcae37a23f51b53245e0f01a80cd49be13acf4e7e322823b",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=linalg&example=gams-linalg-eigen-reference"
    },
    {
      "id": "linalg-svd-reference",
      "name": "gams-linalg-svd-reference",
      "package_id": "linalg",
      "procedure_id": "linalg-svd",
      "gams_code": "D6",
      "problem_id": "real-rectangular-known-singular-spectrum",
      "path": "fpm_catalog/gams-drivers/linalg-svd-reference.f90",
      "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
      "author_example": "tests/test_svd.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/lapack-spectra-drivers-MIT.txt"
      ],
      "modifications": "Independent real linalg SVD consumer; pinned APIs and author tests reviewed, no upstream code copied. 144 square/tall/wide matrices have distinct, repeated, rank-one or zero spectra at signed scales and identity/Householder mixing. Full, values-only, U-only and VT-only outputs give 576 calls. Checks analytical descending nonnegative singular values, scalar reconstruction when both factors returned, orthogonality and scalar AA^T/A^TA eigen-residuals of all returned factors (including full null vectors and one-sided modes), shapes and unchanged input. No arbitrary vector sign/basis comparisons. Complex, invalid inputs, ill-conditioned/large cases and other package procedures remain unverified. Separate fortran-lapack probes stopped at the sandbox linker file-size limit and are retained without numerical verification.",
      "validation_path": "docs/gams-dense-spectra-validation.json",
      "review_path": "docs/gams-dense-spectra.md",
      "checks": {
        "matrix_fixtures": 144,
        "svd_calls": 576,
        "matrix_shapes": [
          [
            1,
            1
          ],
          [
            2,
            3
          ],
          [
            3,
            2
          ],
          [
            3,
            3
          ],
          [
            4,
            2
          ],
          [
            2,
            5
          ]
        ],
        "spectrum_patterns": 4,
        "scale_factors": [
          -4,
          0.5,
          2
        ],
        "output_modes": [
          "full",
          "values-only",
          "U-only",
          "VT-only"
        ],
        "rank_deficient_included": true,
        "max_normalized_singular_value_error": 2e-12,
        "max_normalized_reconstruction_error": 5e-12,
        "max_orthogonality_error": 5e-12,
        "complex_verified": false,
        "invalid_inputs_verified": false,
        "max_normalized_singular_vector_residual": 1e-11
      },
      "source_sha256": "7ffcaecbdbe00a14f037fedb031383d8d9676e4b742f9780e42e580b558792ec",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=linalg&example=gams-linalg-svd-reference"
    },
    {
      "id": "linalg-least-squares-reference",
      "name": "gams-linalg-least-squares-reference",
      "package_id": "linalg",
      "procedure_id": "linalg-solve-least-squares",
      "gams_code": "D9a1",
      "problem_id": "full-rank-known-least-squares-solutions",
      "path": "fpm_catalog/gams-drivers/linalg-least-squares-reference.f90",
      "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/least-interpolation-drivers-MIT.txt"
      ],
      "modifications": "Independent full-rank real least-squares consumer; pinned API reviewed, no upstream code copied. Seventy-two square/tall/wide systems constructed from known orthogonal factors and signed nonzero singular scales have prescribed solutions. Eighteen overdetermined systems add nonzero orthogonal residuals. Each matrix solve with three RHS is compared to three separate vector solves: 288 calls. Checks known solutions including row-space minimum-norm solutions for underdetermined systems, residual vectors/norms, normal equations, finite values, shapes and input preservation. No numerical rank-deficient, complex, invalid-input or performance claims.",
      "validation_path": "docs/gams-least-interpolation-validation.json",
      "review_path": "docs/gams-least-interpolation.md",
      "checks": {
        "matrix_fixtures": 72,
        "solver_calls": 288,
        "matrix_shapes": [
          [
            1,
            1
          ],
          [
            2,
            1
          ],
          [
            3,
            2
          ],
          [
            5,
            3
          ],
          [
            2,
            3
          ],
          [
            3,
            5
          ]
        ],
        "rhs_columns": 3,
        "nonzero_residual_fixtures": 18,
        "underdetermined_minimum_norm_checked": true,
        "max_normalized_solution_error": 3e-12,
        "max_normalized_prescribed_residual_error": 5e-12,
        "max_normalized_normal_equation_residual": 1e-11,
        "rank_deficient_verified": false,
        "complex_verified": false,
        "max_normalized_squared_residual_norm_error": 1e-11
      },
      "source_sha256": "efacdea1e5a4a944df0e4849980c3a7c83a14cf0deb7ca745f854d981c523b78",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=linalg&example=gams-linalg-least-squares-reference"
    },
    {
      "id": "interp1-reference",
      "name": "gams-interp1-reference",
      "package_id": "interpolation",
      "procedure_id": "interpolation-interp1",
      "gams_code": "E1a",
      "problem_id": "affine-and-shape-preserving-interpolation",
      "path": "fpm_catalog/gams-drivers/interp1-reference.f90",
      "revision": "bf6d22ad931855d510dcfb5bdd6870cce8924b22",
      "author_example": "test/interp1_test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/least-interpolation-drivers-MIT.txt"
      ],
      "modifications": "Independent interp1 consumer; pinned source/author test reviewed, no upstream code copied. All four scalar/vector-data/query overloads reproduce affine functions on uniform and nonuniform grids for linear, pchip and cubic. Explicit affine extrapolation and default NaN outside range are checked. PCHIP knot, per-interval bounds and monotonicity checks cover increasing/decreasing plateaus and turning profiles. A hand-derived mirrored cubic checks [0,1,0] on [0,1,2], using this package endpoint secant convention (not a universal PCHIP endpoint convention). Does not verify malformed input, arbitrary nonlinear extrapolation, every shape or spline error bounds.",
      "validation_path": "docs/gams-least-interpolation-validation.json",
      "review_path": "docs/gams-least-interpolation.md",
      "checks": {
        "exact_reference_checks": 3286,
        "affine_reference_checks": 2988,
        "cubic_reference_checks": 258,
        "knot_reference_checks": 40,
        "nan_checks": 36,
        "interval_bound_checks": 1032,
        "monotonicity_checks": 512,
        "overloads_checked": 4,
        "methods": [
          "linear",
          "pchip",
          "cubic"
        ],
        "uniform_and_nonuniform_grids": true,
        "invalid_inputs_verified": false,
        "max_normalized_reference_error": 2e-12
      },
      "source_sha256": "5240b4aa2d61a8e25d704594d3ef1e1a86283b3e17bdd561ffe15dce3f0223bc",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=interpolation&example=gams-interp1-reference"
    },
    {
      "id": "rkf45-analytic-reference",
      "name": "gams-rkf45-analytic-reference",
      "package_id": "rkf45",
      "procedure_id": "rkf45-rkf45",
      "gams_code": "I1a1a",
      "problem_id": "analytic-nonstiff-forward-backward-ivps",
      "path": "fpm_catalog/gams-drivers/rkf45-analytic-reference.f90",
      "revision": "93cd129369357ee08e34be7868256b21a500cc98",
      "author_example": "test/test_rkf45.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/rkf-qags-drivers-MIT.txt"
      ],
      "modifications": "Independent RKF45 consumer; pinned API and author example reviewed, no upstream code copied. Twenty-four two-variable integration runs combine damped rotation, manufactured nonautonomous tracking and logistic equations, two rates, two initial states and both time directions. Sixteen continued target calls per run give 384 calls. Requires normal target-reaching status, finite states, target time, hand-derived exact state, oscillator decay and logistic invariant interval; counts callbacks. Reinitializes work arrays per run. Double precision only; stiff systems, single-step mode, warnings/recovery, all tolerances and performance remain unverified.",
      "validation_path": "docs/gams-rkf-qags-validation.json",
      "review_path": "docs/gams-rkf-qags.md",
      "checks": {
        "integration_runs": 24,
        "target_calls": 384,
        "problem_families": 3,
        "rates": [
          0.25,
          1
        ],
        "forward_and_backward_checked": true,
        "targets_per_run": 16,
        "relative_tolerance": 1e-10,
        "absolute_tolerance": 1e-12,
        "max_normalized_state_error": 5e-08,
        "max_normalized_oscillator_invariant_error": 1e-07,
        "stiff_systems_verified": false,
        "one_step_mode_verified": false
      },
      "source_sha256": "cec25165d09b7b2a0dd644cb97f3bf6e40946c5302ca5a6323c3684043d677e3",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rkf45&example=gams-rkf45-analytic-reference"
    },
    {
      "id": "fgsl-qags-reference",
      "name": "gams-fgsl-qags-reference",
      "package_id": "fgsl",
      "procedure_id": "fgsl-qags",
      "gams_code": "H2a1a1",
      "problem_id": "analytic-finite-interval-integrals",
      "path": "fpm_catalog/gams-drivers/fgsl-qags-reference.f90",
      "revision": "27a3e7cc0809623bcfde680c39a6fdcf0f590c4c",
      "author_example": "doc/examples/integration.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/rkf-qags-drivers-MIT.txt"
      ],
      "modifications": "Independent C-interoperable FGSL QAGS consumer; pinned interfaces and author example reviewed, no upstream code copied. Twenty analytical finite-interval integrals at two absolute/relative tolerances give 40 calls: powers, log-weighted powers, rational arctangent, exponentials and oscillatory sine including a zero integral. Reuses one workspace and callback handle while C-interoperable settings change. Requires success status, finite values/estimates, nonnegative error estimate within requested budget, normalized exact-reference error <=5*tolerance, and actual callbacks; frees handles. Does not establish rigorous error bounds, arbitrary singularities, invalid-input recovery, infinite intervals or other FGSL interfaces.",
      "validation_path": "docs/gams-rkf-qags-validation.json",
      "review_path": "docs/gams-rkf-qags.md",
      "checks": {
        "integral_fixtures": 20,
        "integration_calls": 40,
        "problem_families": 5,
        "absolute_relative_tolerances": [
          1e-07,
          1e-10
        ],
        "workspace_limit": 1000,
        "workspace_reuse_checked": true,
        "endpoint_singular_integrals_checked": true,
        "status_checked": true,
        "error_estimate_checked": true,
        "error_estimate_rigorous_bound_verified": false,
        "invalid_inputs_verified": false
      },
      "source_sha256": "e25f76d74bf14df4454f74c7ec1a2890f7f9bd26a95705ffff890207595bdb4b",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fgsl&example=gams-fgsl-qags-reference"
    },
    {
      "id": "minpack-lmder-reference",
      "name": "gams-minpack-lmder-reference",
      "package_id": "minpack",
      "procedure_id": "minpack-lmder1",
      "gams_code": "G1b1b",
      "problem_id": "known-jacobian-nonlinear-least-squares",
      "path": "fpm_catalog/gams-drivers/minpack-lmder-reference.f90",
      "revision": "c0b5aea9fcd2b83865af921a7a7e881904f8d3c2",
      "author_example": "examples/example_lmder1.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/jacobian-roots-drivers-MIT.txt"
      ],
      "modifications": "Independent lmder1 consumer; pinned source/author example reviewed, no upstream code copied. Twenty-four two-parameter exponential exact-data fits have known amplitudes/exponents. Sixteen transformed-linear nonlinear fits have a known unique global minimizer and nonzero residual norm 14*rho^2. Analytical Jacobians are checked at starts by central differences (400 entries). Requires normal status 1..4, both residual/Jacobian callback modes, finite parameters/residuals, exact parameter/objective references, returned-residual consistency and stationarity. G1b1b denotes derivative-based nonlinear least squares, not a general scalar-gradient optimizer. No global convergence guarantee, rank-deficient, invalid-input or performance verification.",
      "validation_path": "docs/gams-jacobian-roots-validation.json",
      "review_path": "docs/gams-jacobian-roots.md",
      "checks": {
        "nonlinear_fits": 40,
        "exact_fit_runs": 24,
        "nonzero_residual_runs": 16,
        "parameters": 2,
        "residuals": 5,
        "jacobian_entries_checked": 400,
        "max_normalized_jacobian_fd_error": 2e-07,
        "max_normalized_parameter_error": 2e-07,
        "max_normalized_objective_error": 1e-10,
        "max_stationarity_component": 1e-06,
        "stopping_status_checked": true,
        "both_callback_modes_checked": true,
        "general_scalar_optimization_verified": false
      },
      "source_sha256": "f95459b21899c4dcd7da667b693552d63e2cf44336723611460a2bbbd7db4678",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=minpack&example=gams-minpack-lmder-reference"
    },
    {
      "id": "forsolver-newton-reference",
      "name": "gams-forsolver-newton-reference",
      "package_id": "forsolver",
      "procedure_id": "forsolver-nlsolver",
      "gams_code": "F1b",
      "problem_id": "monotone-known-scalar-roots",
      "path": "fpm_catalog/gams-drivers/forsolver-newton-reference.f90",
      "revision": "6c0644b287cb49a7310d883415b9b9ba581d51c5",
      "author_example": "test/test_solver3.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/jacobian-roots-drivers-MIT.txt"
      ],
      "modifications": "Independent scalar Newton consumer; pinned source/author example reviewed, no upstream code copied. Ninety-six unique-root fixtures combine three strictly increasing analytic functions, four prescribed root shifts, two positive scales and four starts. Analytic-derivative, central-difference and complex-step methods give 288 solves. Checks actual callbacks, finite roots, imaginary component, known root, residual and inter-method agreement. The invoked API has no returned convergence status; verification relies on answer checks. No vector systems, arbitrary complex roots, derivative singularities, failure recovery or global convergence/performance claims.",
      "validation_path": "docs/gams-jacobian-roots-validation.json",
      "review_path": "docs/gams-jacobian-roots.md",
      "checks": {
        "root_fixtures": 96,
        "solver_calls": 288,
        "function_families": 3,
        "centers": [
          -2,
          0,
          0.5,
          3
        ],
        "positive_scales": [
          0.5,
          2
        ],
        "starting_offsets": [
          -2,
          -0.5,
          0.5,
          2
        ],
        "methods": [
          "analytic Newton",
          "central finite differences",
          "complex step"
        ],
        "max_normalized_root_error": 1e-09,
        "max_normalized_residual": 1e-10,
        "max_imaginary_root": 1e-12,
        "returned_status_available": false,
        "vector_systems_verified": false
      },
      "source_sha256": "5a173f930d638c2a2bbf4eba9c37686718c08b4132ca5658f4f6ba6e2179e841",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forsolver&example=gams-forsolver-newton-reference"
    },
    {
      "id": "dnaoad-higher-reference",
      "name": "gams-dnaoad-higher-reference",
      "package_id": "dnaoad-fpm",
      "procedure_id": "dnaoad-fpm-api",
      "gams_code": "H1",
      "problem_id": "complex-univariate-higher-derivatives",
      "path": "fpm_catalog/gams-drivers/dnaoad-higher-reference.f90",
      "revision": "f7f328e89b208a99797d64f4a41e97ba91b85962",
      "author_example": "app/ex1.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/higher-ad-drivers-MIT.txt"
      ],
      "modifications": "Independent complex univariate higher-order AD consumer; pinned source and author example reviewed, no upstream code copied. Fifteen real/complex points and every requested order 0..5 yield 450 dual expressions and 1575 analytical derivative references. Scaled exp/sin, exp(z^2+z) with closed-form polynomial derivative factors, and a degree-five polynomial exercise chain/product rules. Requires result order, finite real/imaginary parts and normalized complex error <=2e-11. Uses the pinned configured maximum of five; no higher-order, multivariate, nonanalytic, invalid-input or performance verification.",
      "validation_path": "docs/gams-higher-ad-validation.json",
      "review_path": "docs/gams-higher-ad.md",
      "checks": {
        "complex_sample_points": 15,
        "requested_orders": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "dual_expressions": 450,
        "derivative_reference_checks": 1575,
        "scaled_exp_sin_checks": 945,
        "composed_exp_checks": 315,
        "polynomial_checks": 315,
        "max_normalized_complex_derivative_error": 2e-11,
        "multivariate_verified": false,
        "nonanalytic_functions_verified": false
      },
      "source_sha256": "f814d97754839cd8f4757b0cdf9a965f5889f3f775159c8be23d163af9e1456e",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dnaoad-fpm&example=gams-dnaoad-higher-reference"
    },
    {
      "id": "diffstruc-hessian-reference",
      "name": "gams-diffstruc-hessian-reference",
      "package_id": "diffstruc",
      "procedure_id": "diffstruc-api",
      "gams_code": "H1",
      "problem_id": "three-variable-polynomial-gradient-hessian",
      "path": "fpm_catalog/gams-drivers/diffstruc-hessian-reference.f90",
      "revision": "88565f8e01792706edc0bd7e70dde957c26122a4",
      "author_example": "test/test_functions.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/higher-ad-drivers-MIT.txt"
      ],
      "modifications": "Independent three-variable polynomial AD consumer; pinned APIs and author example reviewed, no upstream code copied. Five dyadic points include the origin. Six forward directions include three coordinate bases, two mixed directions and zero. Reverse gradients and reverse-over-forward Hessian entries match hand-derived formulas and symmetry. Restores the full direction mask before reverse accumulation. Ninety-five exact REAL32 references; graphs retained for this short process lifetime. Does not verify graph disposal, arbitrary expression graphs, all intrinsics, nonsmooth inputs or performance.",
      "validation_path": "docs/gams-higher-ad-validation.json",
      "review_path": "docs/gams-higher-ad.md",
      "checks": {
        "polynomial_sample_points": 5,
        "variables": 3,
        "forward_calls": 30,
        "reverse_calls": 20,
        "exact_reference_checks": 95,
        "hessian_entry_checks": 45,
        "directional_derivatives_checked": true,
        "zero_direction_checked": true,
        "max_normalized_real32_error": 1e-05,
        "graph_disposal_verified": false,
        "general_intrinsics_verified": false
      },
      "source_sha256": "b323c54938f1ae28b10b91f24a9b90e2dd5e61fcf4482a309ece23d5e8ae05b5",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=diffstruc&example=gams-diffstruc-hessian-reference"
    },
    {
      "id": "qdutillib-moments-reference",
      "name": "gams-qdutillib-moments-reference",
      "package_id": "qdutillib",
      "procedure_id": "qdutillib-api",
      "gams_code": "H2c",
      "problem_id": "legendre-hermite-exact-moments",
      "path": "fpm_catalog/gams-drivers/qdutillib-moments-reference.f90",
      "revision": "8a1fa9ca7cf52683c98cc4bcb40f21dc41df6ed5",
      "author_example": "APP/App_QDLib.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/moments-nufft2d-drivers-MIT.txt"
      ],
      "modifications": "Independent QDUtilLib rule-generator consumer; pinned source/author example reviewed, no upstream code copied. Seven orders for LegendreP and HO give 14 rules and 191 exact moments. HO full-function weights are multiplied by the Gaussian for standard Hermite moments. Checks status, storage, finite nodes/weights, positivity, symmetry, polynomial exactness through degree 2n-1, shifted Legendre moments and deallocation. Odd-moment cancellation normalized by absolute contributions. Other rule families, invalid inputs and adaptive integration remain unverified.",
      "validation_path": "docs/gams-moments-nufft2d-validation.json",
      "review_path": "docs/gams-moments-nufft2d.md",
      "checks": {
        "orders": [
          1,
          2,
          3,
          4,
          6,
          8,
          12
        ],
        "quadrature_rules": 14,
        "legendre_gaussian_moments": 144,
        "shifted_legendre_moments": 47,
        "total_moment_checks": 191,
        "positive_weights_checked": true,
        "node_weight_symmetry_checked": true,
        "deallocation_checked": true,
        "max_normalized_moment_error": 5e-11,
        "other_rule_families_verified": false
      },
      "source_sha256": "d508a6c68f41247f9db8448ad83adb18d3e8cb5cdb95814046c3f8275a2f701d",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=qdutillib&example=gams-qdutillib-moments-reference"
    },
    {
      "id": "nufft2d-direct-reference",
      "name": "gams-nufft2d-direct-reference",
      "package_id": "nufft2d",
      "procedure_id": "nufft2d-transform",
      "gams_code": "J1",
      "problem_id": "two-dimensional-type1-direct-sums",
      "path": "fpm_catalog/gams-drivers/nufft2d-direct-reference.f90",
      "revision": "8353c5fb20cd0a8fe6821fae18355e303ed23ed3",
      "author_example": "nufft2d_demof90.f",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/moments-nufft2d-drivers-MIT.txt"
      ],
      "modifications": "Independent classic type-1 2D NUFFT consumer; pinned F90 interface and author demo reviewed, no upstream code copied. Three source counts, three even/odd mode grids, four point/strength patterns, both signs and two tolerances give 144 calls. Every coefficient is compared to direct scalar Fourier sums with documented 1/nj normalization. Checks status, finite values, DC component, unchanged input and exact zero-strength output. Reuses existing checksum-guarded legacy extent-one dummy-array adapter; no new library edits. Types 2/3, exact periodic endpoints, every FFT path and performance remain unverified.",
      "validation_path": "docs/gams-moments-nufft2d-validation.json",
      "review_path": "docs/gams-moments-nufft2d.md",
      "checks": {
        "source_counts": [
          8,
          31,
          64
        ],
        "mode_grids": [
          [
            8,
            10
          ],
          [
            9,
            11
          ],
          [
            16,
            18
          ]
        ],
        "point_patterns": 4,
        "transform_calls": 144,
        "coefficient_checks": 22416,
        "requested_tolerances": [
          1e-07,
          1e-10
        ],
        "both_signs_checked": true,
        "zero_strengths_checked": true,
        "dc_normalization_checked": true,
        "input_preservation_checked": true,
        "max_error_multiple_of_requested_tolerance": 50,
        "type2_type3_verified": false
      },
      "source_sha256": "e85a60584808b1be659e91f53e4908c21fc7480c6f447446321dd1875fa9e31f",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nufft2d&example=gams-nufft2d-direct-reference"
    },
    {
      "id": "lsqr-least-squares-reference",
      "name": "gams-lsqr-least-squares-reference",
      "package_id": "lsqr",
      "procedure_id": "lsqr-lsqr-solver-ez",
      "gams_code": "D9a1",
      "problem_id": "full-rank-iterative-least-squares",
      "path": "fpm_catalog/gams-drivers/lsqr-least-squares-reference.f90",
      "revision": "4df2ce600ca26a9f7e80dc01bfd0859d538547b3",
      "author_example": "test/lsqrtest_ez.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/iterative-ls-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using exact full-rank singular-factor fixtures; no upstream code copied. Square, tall and wide matrices, signed scales, identity/Householder factors and prescribed orthogonal residuals. Three vector right-hand sides per fixture; verifies minimum-norm answers, residuals, normal equations, finite answers, input preservation and normal stopping codes. Zero damping only; rank deficiency, ill conditioning, large sparse performance and regularization remain unverified.",
      "validation_path": "docs/gams-iterative-ls-validation.json",
      "review_path": "docs/gams-iterative-ls.md",
      "checks": {
        "matrix_fixtures": 72,
        "solver_calls": 216,
        "nonzero_residual_fixtures": 18,
        "shapes": [
          [
            1,
            1
          ],
          [
            2,
            1
          ],
          [
            3,
            2
          ],
          [
            5,
            3
          ],
          [
            2,
            3
          ],
          [
            3,
            5
          ]
        ],
        "signed_scales": [
          -4,
          0.5,
          2
        ],
        "minimum_norm_checked": true,
        "normal_equation_checked": true,
        "input_preservation_checked": true,
        "max_normalized_solution_error": 3e-12,
        "max_normalized_residual_error": 5e-12,
        "max_normalized_stationarity": 1e-11,
        "damping_verified": false,
        "rank_deficiency_verified": false
      },
      "source_sha256": "b063effd84c846e34e7bc5cd4e9286cada4d3c8146aaba120c7725c849075ee7",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lsqr&example=gams-lsqr-least-squares-reference"
    },
    {
      "id": "lsmr-least-squares-reference",
      "name": "gams-lsmr-least-squares-reference",
      "package_id": "lsmr",
      "procedure_id": "lsmr-lsmr",
      "gams_code": "D9a1",
      "problem_id": "full-rank-iterative-least-squares",
      "path": "fpm_catalog/gams-drivers/lsmr-least-squares-reference.f90",
      "revision": "12611e2299c5188441b097437695a66c85369e76",
      "author_example": "test/lsmrTestModule.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/iterative-ls-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer using exact full-rank singular-factor fixtures; no upstream code copied. Square, tall and wide matrices, signed scales, identity/Householder factors and prescribed orthogonal residuals. Three vector right-hand sides per fixture; verifies minimum-norm answers, residuals, normal equations, finite answers, input preservation and normal stopping codes. Zero damping only; rank deficiency, ill conditioning, large sparse performance and regularization remain unverified.",
      "validation_path": "docs/gams-iterative-ls-validation.json",
      "review_path": "docs/gams-iterative-ls.md",
      "checks": {
        "matrix_fixtures": 72,
        "solver_calls": 216,
        "nonzero_residual_fixtures": 18,
        "shapes": [
          [
            1,
            1
          ],
          [
            2,
            1
          ],
          [
            3,
            2
          ],
          [
            5,
            3
          ],
          [
            2,
            3
          ],
          [
            3,
            5
          ]
        ],
        "signed_scales": [
          -4,
          0.5,
          2
        ],
        "minimum_norm_checked": true,
        "normal_equation_checked": true,
        "input_preservation_checked": true,
        "max_normalized_solution_error": 3e-12,
        "max_normalized_residual_error": 5e-12,
        "max_normalized_stationarity": 1e-11,
        "damping_verified": false,
        "rank_deficiency_verified": false
      },
      "source_sha256": "0317b3d73d61b48bb71a507a993e6b2e7a3a9aff05e87e25104363ff56e3f9a9",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lsmr&example=gams-lsmr-least-squares-reference"
    },
    {
      "id": "forsvd-spectrum-reference",
      "name": "gams-forsvd-spectrum-reference",
      "package_id": "forsvd",
      "procedure_id": "forsvd-api",
      "gams_code": "D6",
      "problem_id": "prescribed-real-singular-spectrum",
      "path": "fpm_catalog/gams-drivers/forsvd-spectrum-reference.f90",
      "revision": "f39bba7afcb048a21947a7a640bdf9a18337f8ac",
      "author_example": "test/test1.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/spectral-wrappers-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with analytically prescribed spectra and scalar factor/vector residual checks; pinned API and author test reviewed, no upstream code copied. Signed scales, identity/Householder factors and repeated/zero spectra. Checks default/GESVD/GESDD reduced factors on square, tall and wide matrices, using a fresh input copy because LAPACK may overwrite the wrapper input despite its INTENT(IN) declaration. No status is exposed by the wrapper; independent answer checks determine acceptance. Complex overloads, malformed inputs and performance remain unverified.",
      "validation_path": "docs/gams-spectral-wrappers-validation.json",
      "review_path": "docs/gams-spectral-wrappers.md",
      "checks": {
        "matrix_fixtures": 144,
        "solver_calls": 432,
        "known_spectrum_checked": true,
        "orthogonality_checked": true,
        "max_normalized_value_error": 2e-12,
        "max_normalized_vector_residual": 1e-11,
        "max_orthogonality_error": 5e-12,
        "complex_overloads_verified": false,
        "methods": [
          "default",
          "gesvd",
          "gesdd"
        ],
        "reconstruction_checked": true,
        "reduced_factors_only": true,
        "input_copy_used": true
      },
      "source_sha256": "b634c459938780386d739f0dcc23ce5476b4febdc8121a54cdee7b968751942d",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forsvd&example=gams-forsvd-spectrum-reference"
    },
    {
      "id": "foreig-symmetric-reference",
      "name": "gams-foreig-symmetric-reference",
      "package_id": "foreig",
      "procedure_id": "foreig-eig",
      "gams_code": "D4a1",
      "problem_id": "prescribed-real-symmetric-spectrum",
      "path": "fpm_catalog/gams-drivers/foreig-symmetric-reference.f90",
      "revision": "8fcfcab03e5d7cf5eda8c51c7a1e97fe52954c39",
      "author_example": "test/test1.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/spectral-wrappers-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with analytically prescribed spectra and scalar factor/vector residual checks; pinned API and author test reviewed, no upstream code copied. Signed scales, identity/Householder factors and repeated/zero spectra. Checks SYEV symmetric eigenvalues/vectors and upper-triangle selection using finite poison in the unused lower triangle; input preservation checked. No status is exposed by the wrapper; independent answer checks determine acceptance. Complex overloads, malformed inputs and performance remain unverified.",
      "validation_path": "docs/gams-spectral-wrappers-validation.json",
      "review_path": "docs/gams-spectral-wrappers.md",
      "checks": {
        "matrix_fixtures": 96,
        "solver_calls": 96,
        "known_spectrum_checked": true,
        "orthogonality_checked": true,
        "max_normalized_value_error": 2e-12,
        "max_normalized_vector_residual": 5e-12,
        "max_orthogonality_error": 5e-12,
        "complex_overloads_verified": false,
        "methods": [
          "syev"
        ],
        "upper_triangle_checked": true,
        "input_preservation_checked": true,
        "nonsymmetric_verified": false
      },
      "source_sha256": "073f8e955ad21487f04218f771ef05f91f4194a366d9ac468d4ad9b6e7a92229",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=foreig&example=gams-foreig-symmetric-reference"
    },
    {
      "id": "regridpack-polynomial-reference",
      "name": "gams-regridpack-polynomial-reference",
      "package_id": "regridpack",
      "procedure_id": "regridpack-regrid",
      "gams_code": "E1a",
      "problem_id": "linear-cubic-polynomial-exactness",
      "path": "fpm_catalog/gams-drivers/regridpack-polynomial-reference.f90",
      "revision": "e47346d9244ab93f70367f16364d73217fbc0451",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/regrid-rk45-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source reviewed, no upstream code copied. Uniform/nonuniform grids with exact linear/cubic monomial references, independent piecewise-linear values, repeated endpoint targets, input preservation, eight expected diagnostics and successful post-error recovery. Multidimensional overloads and extrapolation are not verified.",
      "validation_path": "docs/gams-regrid-rk45-validation.json",
      "review_path": "docs/gams-regrid-rk45.md",
      "checks": {
        "grid_sizes": [
          4,
          7,
          12
        ],
        "successful_calls": 127,
        "analytical_value_checks": 3614,
        "expected_rejections": 8,
        "uniform_nonuniform_checked": true,
        "linear_cubic_checked": true,
        "input_preservation_checked": true,
        "post_error_recovery_checked": true,
        "max_normalized_value_error": 2e-12,
        "multidimensional_verified": false,
        "extrapolation_verified": false
      },
      "source_sha256": "ea1c58fa61f61d3a10b1c40e36266cb14e94daa23f275a1c62e03decdd4e102d",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=regridpack&example=gams-regridpack-polynomial-reference"
    },
    {
      "id": "diffeq-rk45-reference",
      "name": "gams-diffeq-rk45-reference",
      "package_id": "diffeq",
      "procedure_id": "diffeq-runge-kutta-45",
      "gams_code": "I1a1a",
      "problem_id": "nonstiff-analytical-dense-output",
      "path": "fpm_catalog/gams-drivers/diffeq-rk45-reference.f90",
      "revision": "989b320179c23aaff4bfe72994c90e9034f50c74",
      "author_example": "examples/rk45_example.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/regrid-rk45-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source reviewed, no upstream code copied. Exponential, polynomial and oscillator analytical solutions at 17 requested times, two rates, both directions and two tolerances. Checks callback state, unchanged inputs, complete dense output, reused solver with explicit buffer clearing and oscillator energy. No plotting dependency. Stiff integration, events, continuation without reset and performance remain unverified.",
      "validation_path": "docs/gams-regrid-rk45-validation.json",
      "review_path": "docs/gams-regrid-rk45.md",
      "checks": {
        "ivp_runs": 24,
        "requested_solution_points": 408,
        "model_families": [
          "exponential",
          "polynomial",
          "oscillator"
        ],
        "rates": [
          0.5,
          2
        ],
        "requested_tolerances": [
          1e-08,
          1e-10
        ],
        "both_directions_checked": true,
        "callback_state_checked": true,
        "reused_solver_checked": true,
        "oscillator_invariant_checked": true,
        "max_error_multiple_of_tolerance": 50,
        "stiff_problems_verified": false,
        "events_verified": false
      },
      "source_sha256": "f252cc57898045fcd362bc6612c5e537ca83fb3a7785df63ce5802eaf2aaa186",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=diffeq&example=gams-diffeq-rk45-reference"
    },
    {
      "id": "fitpack-polynomial-values",
      "name": "gams-fitpack-polynomial-values",
      "package_id": "fitpack",
      "procedure_id": "fitpack-fitpack-curve",
      "gams_code": "E1a",
      "problem_id": "polynomial-spline-values",
      "path": "fpm_catalog/gams-drivers/fitpack-polynomial-values.f90",
      "revision": "1907c7bad9f5c4557970e906bdd4909eb52b2d4c",
      "author_example": "test/fitpack_curve_tests.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fitpack-polynomials-drivers-MIT.txt"
      ],
      "modifications": "Independent FITPACK consumer with exact scaled monomial references, linear/cubic/quintic interpolating splines, uniform and reversed nonuniform source data, scalar/vector calls, input preservation, repeated new_fit state reset and final destruction. Pinned API and author example reviewed, no upstream code copied. Checks values at 33 targets including boundaries and at original nodes. Positive smoothing, periodic curves, extrapolation, malformed inputs and performance remain unverified.",
      "validation_path": "docs/gams-fitpack-polynomials-validation.json",
      "review_path": "docs/gams-fitpack-polynomials.md",
      "checks": {
        "polynomial_fits": 144,
        "reference_checks": 11016,
        "spline_degrees": [
          1,
          3,
          5
        ],
        "source_sizes": [
          8,
          13
        ],
        "scalar_vector_checked": true,
        "reversed_nonuniform_sources_checked": true,
        "input_preservation_checked": true,
        "destruction_checked": true,
        "positive_smoothing_verified": false,
        "max_normalized_error": 5e-12,
        "source_node_checks": 1512,
        "off_grid_and_endpoint_checks": 9504,
        "extrapolation_verified": false
      },
      "source_sha256": "9ba81bef128066ef3d1bcf260f505c6ba8f3d44e2c33dc55c34671d6faab841d",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fitpack&example=gams-fitpack-polynomial-values"
    },
    {
      "id": "fitpack-polynomial-derivatives",
      "name": "gams-fitpack-polynomial-derivatives",
      "package_id": "fitpack",
      "procedure_id": "fitpack-curve-derivative",
      "gams_code": "H1",
      "problem_id": "analytical-spline-derivatives",
      "path": "fpm_catalog/gams-drivers/fitpack-polynomial-derivatives.f90",
      "revision": "1907c7bad9f5c4557970e906bdd4909eb52b2d4c",
      "author_example": "examples/example_curve.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/fitpack-polynomials-drivers-MIT.txt"
      ],
      "modifications": "Independent FITPACK consumer with exact scaled monomial references, linear/cubic/quintic interpolating splines, uniform and reversed nonuniform source data, scalar/vector calls, input preservation, repeated new_fit state reset and final destruction. Pinned API and author example reviewed, no upstream code copied. Checks derivative orders 0 through spline degree against analytical falling-factorial formulas, including zero high derivatives of lower-degree polynomials. Positive smoothing, periodic curves, extrapolation, malformed inputs and performance remain unverified.",
      "validation_path": "docs/gams-fitpack-polynomials-validation.json",
      "review_path": "docs/gams-fitpack-polynomials.md",
      "checks": {
        "polynomial_fits": 144,
        "reference_checks": 44352,
        "spline_degrees": [
          1,
          3,
          5
        ],
        "source_sizes": [
          8,
          13
        ],
        "scalar_vector_checked": true,
        "reversed_nonuniform_sources_checked": true,
        "input_preservation_checked": true,
        "destruction_checked": true,
        "positive_smoothing_verified": false,
        "max_normalized_error": 1e-08,
        "positive_derivative_checks": 34848,
        "zeroth_derivative_checks": 9504,
        "max_derivative_order": 5,
        "arbitrary_callback_differentiation_verified": false
      },
      "source_sha256": "bfe89769df9d335d53505972c2020a7acaa8da4adaec6160f5d847980e0e027d",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fitpack&example=gams-fitpack-polynomial-derivatives"
    },
    {
      "id": "specialmatrices-diagonal-reference",
      "name": "gams-specialmatrices-diagonal-reference",
      "package_id": "specialmatrices",
      "procedure_id": "specialmatrices-solve",
      "gams_code": "D2",
      "problem_id": "manufactured-diagonal-solutions",
      "path": "fpm_catalog/gams-drivers/specialmatrices-diagonal-reference.f90",
      "revision": "2f53a4b51afbeb2efd2b60eb379283f978359d2f",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/diagonal-response-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned API reviewed, no upstream code copied. Nonsingular signed diagonal matrices at three scales, one four-column and four vector RHS solves per fixture, known coordinate answers, scalar residuals, zero RHS, shape/finite checks and input preservation. Other structures and singular solves remain unverified.",
      "validation_path": "docs/gams-diagonal-response-validation.json",
      "review_path": "docs/gams-diagonal-response.md",
      "checks": {
        "matrix_fixtures": 36,
        "solve_calls": 180,
        "solution_coordinate_checks": 3024,
        "sizes": [
          1,
          2,
          7,
          32
        ],
        "vector_matrix_rhs_checked": true,
        "zero_rhs_checked": true,
        "input_preservation_checked": true,
        "max_normalized_error": 2e-13,
        "singular_diagonals_verified": false,
        "other_structures_verified": false
      },
      "source_sha256": "06aa28d1c6234a27f70fa4542a5d7a88919bf15646627ac002150fa9adea4f7e",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=specialmatrices&example=gams-specialmatrices-diagonal-reference"
    },
    {
      "id": "dynamics-response-reference",
      "name": "gams-dynamics-response-reference",
      "package_id": "dynamics",
      "procedure_id": "dynamics-api",
      "gams_code": "I1",
      "problem_id": "closed-form-harmonic-response",
      "path": "fpm_catalog/gams-drivers/dynamics-response-reference.f90",
      "revision": "580d04859a25126d3261e44b3fbec5111835e3a4",
      "author_example": "examples/frf_example_1.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/diagonal-response-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source/author example reviewed, no upstream code copied. Only unit mass and diagonal stiffness are verified, using closed-form complex responses for 1/2/3 uncoupled coordinates, proportional damping and frequency-dependent complex forces. Natural frequencies and callback state checked. Broader nonunit-mass and coupled-unit-mass probes fail at static frequency and are preserved with source hashes/results under docs/gams-candidates/dynamics. No initial-value integration, coupling, arbitrary mass normalization or performance claim.",
      "validation_path": "docs/gams-diagonal-response-validation.json",
      "review_path": "docs/gams-diagonal-response.md",
      "checks": {
        "response_fixtures": 24,
        "complex_coordinate_checks": 384,
        "sizes": [
          1,
          2,
          3
        ],
        "masses": [
          1
        ],
        "coupled_systems_checked": false,
        "callback_state_checked": true,
        "known_frequencies_checked": true,
        "max_normalized_response_error": 1e-10,
        "initial_value_integration_verified": false,
        "nonunit_mass_verified": false,
        "diagonal_stiffness_only": true
      },
      "source_sha256": "7a6a2e21eeaafd0332bd2be54fff2ce44358c197c7a41a2f29e760a1fc2c6ca7",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dynamics&example=gams-dynamics-response-reference"
    },
    {
      "id": "orderpack-ranking-reference",
      "name": "gams-orderpack-ranking-reference",
      "package_id": "orderpack",
      "procedure_id": "orderpack-rank",
      "gams_code": "N6",
      "problem_id": "permutation-and-duplicate-key-ranking",
      "path": "fpm_catalog/gams-drivers/orderpack-ranking-reference.f90",
      "revision": "9696eee2670beae1601ae59e125ff9f10e6c88a7",
      "author_example": "example/demo_rank.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/ranking-magic-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source reviewed, no upstream code copied. All permutations through length seven plus six deterministic patterns at fourteen sizes including empty input. Four typed overloads checked against independent insertion-sorted values, valid permutation indices and unchanged inputs. Tie index order, NaN ordering and performance remain unverified.",
      "validation_path": "docs/gams-ranking-magic-validation.json",
      "review_path": "docs/gams-ranking-magic.md",
      "checks": {
        "exhaustive_permutations": 5913,
        "ranking_fixtures": 5997,
        "overload_calls": 23988,
        "overloads": [
          "integer32",
          "real32",
          "real64",
          "character"
        ],
        "empty_input_checked": true,
        "duplicate_keys_checked": true,
        "permutation_integrity_checked": true,
        "input_preservation_checked": true,
        "stable_tie_order_verified": false,
        "nan_ordering_verified": false
      },
      "source_sha256": "0251fd897cb3498b8d5e3f211540ab94ba7a3f92960c25a6530607628659a467",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=orderpack&example=gams-orderpack-ranking-reference"
    },
    {
      "id": "m-la-magic-reference",
      "name": "gams-m-la-magic-reference",
      "package_id": "m_la",
      "procedure_id": "m-la-api",
      "gams_code": "D1",
      "problem_id": "normal-magic-square-invariants",
      "path": "fpm_catalog/gams-drivers/m-la-magic-reference.f90",
      "revision": "db59eeab0deab7e84eadf2542ad49c1c719dfb94",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/ranking-magic-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source reviewed, no upstream code copied. Orders 1 and 3 through 32 cover odd, doubly-even and singly-even constructions. Repeated compact/padded calls verify finite exact integer entries, permutation 1..n*n, exact row/column/diagonal sums and untouched padding. Order two is excluded because no normal magic square exists. Other utilities and performance remain unverified.",
      "validation_path": "docs/gams-ranking-magic-validation.json",
      "review_path": "docs/gams-ranking-magic.md",
      "checks": {
        "matrix_orders": 31,
        "generator_calls": 124,
        "entry_checks": 45744,
        "line_sum_checks": 4456,
        "odd_orders": 16,
        "doubly_even_orders": 8,
        "singly_even_orders": 7,
        "padded_leading_dimension_checked": true,
        "repeated_calls_checked": true,
        "exact_integer_checks": true,
        "other_matrix_utilities_verified": false
      },
      "source_sha256": "529eb94e23771046f62dcdaa3ad1650fb083735bd0a6616cffee5fbb63eab8c9",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_la&example=gams-m-la-magic-reference"
    },
    {
      "id": "maptran-wgs84-reference",
      "name": "gams-maptran-wgs84-reference",
      "package_id": "maptran3d",
      "procedure_id": "maptran3d-geodetic2ecef",
      "gams_code": "P",
      "problem_id": "wgs84-forward-inverse-coordinate-references",
      "path": "fpm_catalog/gams-drivers/maptran-wgs84-reference.f90",
      "revision": "4ccc2479ae79a58b34d8e491013cfa2f60f65867",
      "author_example": "test/test_mod.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/geodesy-forlab-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source reviewed, no upstream code copied. WGS84 forward references from ellipsoid geometry; inverse receives independent Cartesian inputs, not library forward results. Both angle units, negative/zero/positive heights, dateline wrapping and exact forward polar-axis references. Inverse poles, origin and custom ellipsoids remain unverified.",
      "validation_path": "docs/gams-geodesy-forlab-validation.json",
      "review_path": "docs/gams-geodesy-forlab.md",
      "checks": {
        "geodetic_cases": 336,
        "conversion_calls": 680,
        "forward_polar_axis_calls": 8,
        "degree_radian_checked": true,
        "inverse_independent_cartesian_inputs": true,
        "below_surface_height_checked": true,
        "max_forward_error_meters": 5e-06,
        "max_inverse_angular_error_degrees": 2e-07,
        "max_inverse_height_error_meters": 0.005,
        "inverse_poles_verified": false,
        "custom_ellipsoids_verified": false
      },
      "source_sha256": "2ca4a7d3f648ce98ad737a0ab461f156f99a15e2b0ce5478ceb439ffb95e9fd3",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=maptran3d&example=gams-maptran-wgs84-reference"
    },
    {
      "id": "forlab-least-squares-reference",
      "name": "gams-forlab-least-squares-reference",
      "package_id": "forlab",
      "procedure_id": "forlab-solve",
      "gams_code": "D9a1",
      "problem_id": "rectangular-single-precision-least-squares",
      "path": "fpm_catalog/gams-drivers/forlab-least-squares-reference.f90",
      "revision": "416e5612167b6133100bef4cec116322890f66f7",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/geodesy-forlab-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source reviewed, no upstream code copied. Shared full-column-rank tall singular-factor fixtures with prescribed unique least-squares solutions and orthogonal residuals. Three vector RHS calls per fixture using native catalog RPRE single precision. Existing unrelated checksum-guarded norm fix reused unchanged. The wide 2-by-3 probe returns nonfinite values; its source/hash/result are retained under docs/gams-candidates/forlab. Underdetermined, square and rank-deficient solves are not verified; no tolerance was relaxed.",
      "validation_path": "docs/gams-geodesy-forlab-validation.json",
      "review_path": "docs/gams-geodesy-forlab.md",
      "checks": {
        "matrix_fixtures": 36,
        "solver_calls": 108,
        "nonzero_residual_fixtures": 18,
        "real_storage_bits": 32,
        "normal_equation_checked": true,
        "input_preservation_checked": true,
        "max_normalized_solution_error": 3e-05,
        "max_normalized_residual_error": 5e-05,
        "max_normalized_stationarity": 0.0001,
        "square_branch_verified": false,
        "rank_deficiency_verified": false,
        "underdetermined_verified": false,
        "known_least_squares_solution_checked": true
      },
      "source_sha256": "d89843a91625e986a957a328495171403d48d896b9f0ed95438717ffcd5f727c",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forlab&example=gams-forlab-least-squares-reference"
    },
    {
      "id": "nonlin-lsq-jacobian-reference",
      "name": "gams-nonlin-lsq-jacobian-reference",
      "package_id": "nonlin",
      "procedure_id": "nonlin-least-squares",
      "gams_code": "G1b1b",
      "problem_id": "analytical-jacobian-exact-and-noisy-fits",
      "path": "fpm_catalog/gams-drivers/nonlin-lsq-jacobian-reference.f90",
      "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
      "author_example": "examples/nonlin_least_squares_example.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/jacobian-transforms-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with 24 exact exponential fits and user Jacobians; same exact-fit subset as the checked MINPACK driver. Explicit initial step bound factor 1. Checks Jacobian finite differences, callback use, stopping flags, known parameters, zero objective, returned residuals and stationarity. Default step bound and nonzero-residual probes fail with false convergence; their sources, hashes and results are retained under docs/gams-candidates/nonlin-least-squares. Neither their accuracy criteria nor library code is changed. G1b1a and constrained sibling types remain unverified.",
      "validation_path": "docs/gams-jacobian-transforms-validation.json",
      "review_path": "docs/gams-jacobian-transforms.md",
      "checks": {
        "nonlinear_fits": 24,
        "exact_fits": 24,
        "nonzero_residual_fits": 0,
        "starting_jacobian_entries": 240,
        "user_jacobian_checked": true,
        "known_parameters_checked": true,
        "known_objective_checked": true,
        "stationarity_checked": true,
        "max_normalized_parameter_error": 2e-07,
        "finite_difference_solver_mode_verified": false,
        "bound_constrained_solver_verified": false,
        "initial_step_bound_factor": 1,
        "default_step_bound_verified": false,
        "nonzero_residual_minima_verified": false
      },
      "source_sha256": "a67f3fc4d0dad5137b3647e6956bda722db6f201cb38a0aee0c0ecf7d0af5653",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nonlin&example=gams-nonlin-lsq-jacobian-reference"
    },
    {
      "id": "fglm-transform-reference",
      "name": "gams-fglm-transform-reference",
      "package_id": "fglm",
      "procedure_id": "fglm-api",
      "gams_code": "D1",
      "problem_id": "rigid-transform-composition-and-components",
      "path": "fpm_catalog/gams-drivers/fglm-transform-reference.f90",
      "revision": "e1b6a5404b3e7a266da33173a07166970c16dd86",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/jacobian-transforms-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned API reviewed, no upstream code copied. Double-precision vector addition/component products plus single-precision z-axis rotation and translation composition. Independent double-precision coordinate references, homogeneous points/directions, orthogonality, determinant and input preservation. Other vector overloads, arbitrary 3D axes and performance remain unverified.",
      "validation_path": "docs/gams-jacobian-transforms-validation.json",
      "review_path": "docs/gams-jacobian-transforms.md",
      "checks": {
        "vector_operations": 48,
        "vector_coordinate_checks": 144,
        "rigid_transforms": 72,
        "point_and_direction_coordinate_checks": 864,
        "rotation_orthogonality_checks": 648,
        "rotation_determinant_checks": 72,
        "composition_orders": [
          "translate_then_rotate",
          "rotate_then_translate"
        ],
        "vector_storage_bits": 64,
        "matrix_storage_bits": 32,
        "max_normalized_transform_error": 2e-06,
        "arbitrary_3d_rotations_verified": false
      },
      "source_sha256": "7297c6c67674b5bfb31582d223ea1b28101c7ce6e2ef3e1db2a15a57a5d54fe3",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fglm&example=gams-fglm-transform-reference"
    },
    {
      "id": "function-parser-identities",
      "name": "gams-function-parser-identities",
      "package_id": "fortran_function_parser",
      "procedure_id": "fortran-function-parser-evaluate",
      "gams_code": "N3",
      "problem_id": "arithmetic-identities-and-parser-recovery",
      "path": "fpm_catalog/gams-drivers/function-parser-identities.f90",
      "revision": "4c977c925506bea3fb1ee44aac08114c5fa68a71",
      "author_example": "test/tests.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/expression-evaluation-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source/author example reviewed, no upstream code copied. Fourteen common arithmetic identities at twenty input pairs give 280 ordinary references. Explicit error reporting and recovery checked. Parser reuses compiled expressions, preserves variable arrays and checks three parse plus three evaluation errors. No symbolic computation, exhaustive grammar, arbitrary domain behavior or performance claim.",
      "validation_path": "docs/gams-expression-evaluation-validation.json",
      "review_path": "docs/gams-expression-evaluation.md",
      "checks": {
        "expression_formulas": 14,
        "input_pairs": 20,
        "normal_value_references": 280,
        "total_value_references": 286,
        "expected_rejections": 6,
        "post_error_recoveries": 6,
        "max_normalized_error": 2e-12,
        "symbolic_algebra_verified": false,
        "parse_error_checks": 3,
        "evaluation_error_checks": 3,
        "input_preservation_checked": true
      },
      "source_sha256": "b4e8b41d169bbc6b490f82473e809752fa2995e833ad5ee6c67a515acc3e1e14",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran_function_parser&example=gams-function-parser-identities"
    },
    {
      "id": "m-calculator-identities",
      "name": "gams-m-calculator-identities",
      "package_id": "m_calculator",
      "procedure_id": "m-calculator-dnum0",
      "gams_code": "N3",
      "problem_id": "arithmetic-identities-and-parser-recovery",
      "path": "fpm_catalog/gams-drivers/m-calculator-identities.f90",
      "revision": "b6bbc08f81eb158a6908a42016059815fe72217d",
      "author_example": "example/demo_dnum0.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/expression-evaluation-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source/author example reviewed, no upstream code copied. Fourteen common arithmetic identities at twenty input pairs give 280 ordinary references. Explicit error reporting and recovery checked. Calculator checks 560 assignments to prefixed variables, three malformed expressions and preserved variable state after errors. No symbolic computation, exhaustive grammar, arbitrary domain behavior or performance claim.",
      "validation_path": "docs/gams-expression-evaluation-validation.json",
      "review_path": "docs/gams-expression-evaluation.md",
      "checks": {
        "expression_formulas": 14,
        "input_pairs": 20,
        "normal_value_references": 280,
        "total_value_references": 283,
        "expected_rejections": 3,
        "post_error_recoveries": 3,
        "max_normalized_error": 2e-12,
        "symbolic_algebra_verified": false,
        "variable_assignment_checks": 560,
        "domain_error_handling_verified": false
      },
      "source_sha256": "391341b6f1d74186494cc6cc0471b25b0546801af28f479abc2507a52e3061ee",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_calculator&example=gams-m-calculator-identities"
    },
    {
      "id": "str2real-decimal-reference",
      "name": "gams-str2real-decimal-reference",
      "package_id": "fortran-string-to-real",
      "procedure_id": "fortran-string-to-real-str2real",
      "gams_code": "A6",
      "problem_id": "valid-decimal-scientific-conversion",
      "path": "fpm_catalog/gams-drivers/str2real-decimal-reference.f90",
      "revision": "76fb9e4203c6ce73c31bed85b69af920893b033e",
      "author_example": "test/test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/conversion-triangulation-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source/author test reviewed, no upstream code copied. Valid decimal/scientific strings checked against arithmetic references and formatted READ, including both signs, E/e, exponent scales and long mantissas. Relative errors tested even for tiny normal values; zero checked separately. This parser does not validate malformed input; malformed, overflowing/underflowing strings and correct rounding remain unverified.",
      "validation_path": "docs/gams-conversion-triangulation-validation.json",
      "review_path": "docs/gams-conversion-triangulation.md",
      "checks": {
        "valid_conversions": 244,
        "independent_references_per_conversion": 2,
        "mantissas": 8,
        "generated_strings": 240,
        "long_mantissa_strings": 4,
        "exponents": [
          -100,
          -12,
          -1,
          0,
          1,
          12,
          100
        ],
        "max_string_length": 28,
        "max_relative_error": 5e-14,
        "malformed_input_verified": false,
        "correct_rounding_verified": false,
        "overflow_underflow_verified": false
      },
      "source_sha256": "61d79589b563ac302322a3fc11257a6a8e18b9faf3c2b37a3aef4d3dd8cacde7",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-string-to-real&example=gams-str2real-decimal-reference"
    },
    {
      "id": "geompack-delaunay-reference",
      "name": "gams-geompack-delaunay-reference",
      "package_id": "geompack",
      "procedure_id": "geompack-r8tris2",
      "gams_code": "P",
      "problem_id": "rectangle-interior-delaunay-invariants",
      "path": "fpm_catalog/gams-drivers/geompack-delaunay-reference.f90",
      "revision": "b7a327ca3a13507859c42dd6fba50af0bb5d5c6a",
      "author_example": "test/geompack_test_routines.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/conversion-triangulation-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source/author test reviewed, no upstream code copied. Rectangle hull with deterministic interior points, scales, translations and reversed input order. Checks Euler counts, finite/restored coordinates, all vertices, CCW triangles, duplicate triangles, area, independent incircle determinants, edge incidence, reciprocal neighbors and complete boundary cycle. No particular triangulation chosen for cocircular ambiguity; invalid/degenerate sets and performance remain unverified.",
      "validation_path": "docs/gams-conversion-triangulation-validation.json",
      "review_path": "docs/gams-conversion-triangulation.md",
      "checks": {
        "triangulations": 36,
        "checked_triangles": 432,
        "empty_circumcircle_checks": 3360,
        "point_counts": [
          5,
          9,
          13
        ],
        "neighbor_reciprocity_checked": true,
        "boundary_cycle_checked": true,
        "coordinate_restoration_checked": true,
        "known_hull_area_checked": true,
        "max_normalized_area_error": 5e-12,
        "max_normalized_incircle_determinant": 1e-10,
        "degenerate_input_verified": false,
        "specific_triangle_order_required": false
      },
      "source_sha256": "94346355ba44428cf97a2a0897a4e5b2e8fafc0e715a6847d939683b6a0d1fd4",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=geompack&example=gams-geompack-delaunay-reference"
    },
    {
      "id": "daglib-order-reference",
      "name": "gams-daglib-order-reference",
      "package_id": "daglib",
      "procedure_id": "daglib-toposort",
      "gams_code": "P",
      "problem_id": "exhaustive-ordered-edge-subsets",
      "path": "fpm_catalog/gams-drivers/daglib-order-reference.f90",
      "revision": "68fa83ebfd33fd6521327918b1d8e5084250a8ff",
      "author_example": "test/dag_example.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/graph-neighbors-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source/author example reviewed, no upstream code copied. All 1024 acyclic edge subsets under two fixed five-vertex label orders, repeated topological sorts, permutation/precedence checks, self/two/three-node cyclic diagnostics and post-cycle object rebuilding. Empty graphs and arbitrary mutation/traversal remain unverified.",
      "validation_path": "docs/gams-graph-sorting-validation.json",
      "review_path": "docs/gams-graph-sorting.md",
      "checks": {
        "acyclic_graph_fixtures": 2051,
        "successful_sorts": 4102,
        "edge_precedence_checks": 20492,
        "expected_cycle_rejections": 6,
        "repeated_sort_checked": true,
        "post_cycle_recovery_checked": true,
        "permutation_integrity_checked": true,
        "empty_graph_verified": false,
        "all_labeled_dags_verified": false
      },
      "source_sha256": "f9ffcb6fa7c3034abaf666c4cad9c1fd2a0a0dfedf42a16b29d0a71a81d9aada",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=daglib&example=gams-daglib-order-reference"
    },
    {
      "id": "coretran-sort-reference",
      "name": "gams-coretran-sort-reference",
      "package_id": "coretran",
      "procedure_id": "coretran-sort",
      "gams_code": "N6",
      "problem_id": "exhaustive-numeric-inplace-sorting",
      "path": "fpm_catalog/gams-drivers/coretran-sort-reference.f90",
      "revision": "204c4707f6680b6d7d1e4da39077d0fd3acfe37e",
      "author_example": "test/m_tests.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/graph-neighbors-drivers-MIT.txt"
      ],
      "modifications": "Independent in-place sorting consumer with explicit stable=true only. Pinned API/author tests reviewed, no upstream code copied. All permutations through length seven plus six patterns at fourteen sizes including empty input. Integer32/64 and real32/64 sorted values checked against independent insertion-sort references. Equal-key record stability is not established by numeric-only output. Explicit stable=false sorting fails on 16 equal integer32 values with a bounds error; the failed mixed-mode source/hash/result is preserved under docs/gams-candidates/coretran-sort. Separate nearest-neighbor probe also fails and is not promoted. No library edits or disabled bounds checks. NaNs, indirect sorting and parallel performance remain unverified.",
      "validation_path": "docs/gams-graph-sorting-validation.json",
      "review_path": "docs/gams-graph-sorting.md",
      "checks": {
        "exhaustive_permutations": 5913,
        "sorting_fixtures": 5997,
        "typed_sort_calls": 23988,
        "numeric_overloads": [
          "integer32",
          "integer64",
          "real32",
          "real64"
        ],
        "flag_settings": [
          "stable_true"
        ],
        "empty_arrays_checked": true,
        "duplicate_values_checked": true,
        "stable_tie_order_verified": false,
        "nearest_neighbor_verified": false,
        "nan_ordering_verified": false,
        "parallel_performance_verified": false,
        "default_sort_verified": false
      },
      "source_sha256": "81119f8c85069827af19cd249572e2d7659d14b9dd4d330527f928cb1f1e986a",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=coretran&example=gams-coretran-sort-reference"
    },
    {
      "id": "flann-knn-reference",
      "name": "gams-flann-knn-reference",
      "package_id": "fortran-flann",
      "procedure_id": "fortran-flann-knn-search",
      "gams_code": "N5",
      "problem_id": "direct-scan-k-nearest-neighbors",
      "path": "fpm_catalog/gams-drivers/flann-knn-reference.f90",
      "revision": "35370c851602d954d1d01d10c9c14ff82dd96496",
      "author_example": "example/flann_demo.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/neighbors-sparse-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source/author example reviewed, no upstream code copied. Exact single KD-tree Euclidean searches against independently sorted direct distances from rounded float inputs. Modular, collinear and duplicate-pair data in 2D/3D, reversed input, off-data and self queries, k=1/min(3,n)/n. Allows tied indices only at correct distance, checks uniqueness and input preservation. Other metrics, approximate search, radius queries and performance remain unverified.",
      "validation_path": "docs/gams-neighbors-sparse-validation.json",
      "review_path": "docs/gams-neighbors-sparse.md",
      "checks": {
        "trees": 60,
        "query_points": 2472,
        "batched_searches": 180,
        "returned_neighbors": 96072,
        "dimensions": [
          2,
          3
        ],
        "point_counts": [
          1,
          2,
          8,
          31,
          64
        ],
        "single_precision_inputs": true,
        "exact_search_checks": -1,
        "tie_index_order_required": false,
        "approximate_search_verified": false,
        "radius_search_verified": false,
        "distance_tolerance_float_eps_factor": 32
      },
      "source_sha256": "446187c186aa1b7867b98586536bf1791e569c0cba550064110262fa25b349f3",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-flann&example=gams-flann-knn-reference"
    },
    {
      "id": "sparse-matvec-reference",
      "name": "gams-sparse-matvec-reference",
      "package_id": "sparse_fortran",
      "procedure_id": "sparse-fortran-matmul",
      "gams_code": "D1b4",
      "problem_id": "rectangular-sparse-products-scalar-reference",
      "path": "fpm_catalog/gams-drivers/sparse-matvec-reference.f90",
      "revision": "600f586a1ed099a22054ed283225787de36a31c1",
      "author_example": "app/main.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/neighbors-sparse-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned COO/CSR sources and author example reviewed, no upstream code copied. Dense-array initialization, square/tall/wide matrices, zero/diagonal/tridiagonal/modular/dense patterns, both API storage orders and three right-hand sides. Non-C order explicitly computes transpose products. Each format checked against scalar dense reference using exactly representable binary fractions. Empty rows/columns included; zero dimensions, near-zero dropping, incremental edits, malformed input and performance remain unverified.",
      "validation_path": "docs/gams-neighbors-sparse-validation.json",
      "review_path": "docs/gams-neighbors-sparse.md",
      "checks": {
        "matrix_order_fixtures": 250,
        "products": 1500,
        "checked_result_entries": 9300,
        "dimensions": [
          1,
          2,
          3,
          8,
          17
        ],
        "storage_orders": [
          "C",
          "F"
        ],
        "transpose_products_checked": true,
        "zero_matrix_checked": true,
        "comparison": "exact binary fractions",
        "zero_dimensions_verified": false,
        "incremental_edits_verified": false
      },
      "source_sha256": "065fabc0f308fe60f2523d0660381c8c2d04e9f2f485ce95838e08601a3d02a9",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=sparse_fortran&example=gams-sparse-matvec-reference"
    },
    {
      "id": "forwarddiff-analytic-reference",
      "name": "gams-forwarddiff-analytic-reference",
      "package_id": "forwarddiff",
      "procedure_id": "forwarddiff-derivative",
      "gams_code": "H1",
      "problem_id": "analytic-scalar-chain-product-quotient-rules",
      "path": "fpm_catalog/gams-drivers/forwarddiff-analytic-reference.f90",
      "revision": "2388e8ecf300a7bbc0904feab47023413464edf9",
      "author_example": "test/test_differentia.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/adaptive-ad-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned source/author test reviewed without copying upstream code. Constant lifted into seeded dual space and monomials of degree 1..8, plus twelve smooth elementary/composite functions, checked against analytic values and slopes. Real and dual exponents and chain/product/quotient rules included. Singular/domain-boundary, nonsmooth, vector gradient/Jacobian, higher derivative and performance behavior remain unverified.",
      "validation_path": "docs/gams-adaptive-ad-validation.json",
      "review_path": "docs/gams-adaptive-ad.md",
      "checks": {
        "scalar_derivative_calls": 1749,
        "analytic_value_slope_checks": 3498,
        "monomial_and_constant_calls": 585,
        "composite_calls": 1164,
        "composite_functions": 12,
        "max_normalized_error": 2e-12,
        "finite_differences_used": false,
        "higher_derivatives_verified": false,
        "gradient_jacobian_verified": false,
        "nonsmooth_points_verified": false
      },
      "source_sha256": "c4ad7997dc63e925d8ac20eccb6519d100cd18728282b91075ed91332dd80b15",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forwarddiff&example=gams-forwarddiff-analytic-reference"
    },
    {
      "id": "flint-ivp-reference",
      "name": "gams-flint-ivp-reference",
      "package_id": "flint",
      "procedure_id": "flint-erk-class",
      "gams_code": "I1a1a",
      "problem_id": "analytic-three-state-ivps-and-dense-output",
      "path": "fpm_catalog/gams-drivers/flint-ivp-reference.f90",
      "revision": "b6322037cb751b11fa64ea66cf23173ae572fff6",
      "author_example": "tests/test_WP.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/adaptive-ad-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned API/implementation and author example reviewed without copying upstream code. Four explicit adaptive RK methods, diagonal exponentials, coupled oscillator with polynomial state, and coupled triangular exponential system, two parameters/offsets and forward/backward intervals. Checks requested endpoint, finite states, unchanged initial data, scalar/vector tolerances, repeated dense interpolation with retained then freed coefficients, against closed forms. No solver-to-solver reference. Stiff systems, events, constant steps, failure diagnostics and performance remain unverified.",
      "validation_path": "docs/gams-adaptive-ad-validation.json",
      "review_path": "docs/gams-adaptive-ad.md",
      "checks": {
        "adaptive_integrations": 96,
        "methods": [
          "DOP853",
          "DOP54",
          "VERNER98R",
          "VERNER65E"
        ],
        "ode_families": 3,
        "endpoint_reference_entries": 288,
        "dense_output_reference_entries": 9792,
        "dense_times_per_integration": 17,
        "interpolations_per_integration": 2,
        "forward_and_backward_checked": true,
        "scalar_vector_tolerances_checked": true,
        "repeated_dense_output_checked": true,
        "max_normalized_error": 5e-09,
        "events_verified": false,
        "stiff_systems_verified": false
      },
      "source_sha256": "ac13d4bb801e863cc123b34ee22a41e99c67b17e8e04ee84ac20ff5b28024bb5",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=flint&example=gams-flint-ivp-reference"
    },
    {
      "id": "linalg-lu-reference",
      "name": "gams-linalg-lu-reference",
      "package_id": "linalg",
      "procedure_id": "linalg-lu-factor",
      "gams_code": "D2a1",
      "problem_id": "manufactured-real-lu-solves-and-singularity-diagnostics",
      "path": "fpm_catalog/gams-drivers/linalg-lu-reference.f90",
      "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
      "author_example": "examples/linalg_lu_example.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/lu-orbits-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned implementation and author example reviewed without copying upstream code. Real square LU, packed and extracted factors, sequential pivot/P*A=L*U checks, three known right-hand sides solved by vector and matrix overloads, scalar residuals and input preservation. Four matrix families, six sizes, two scales, reversed rows, plus eight singular NaN/pivot-sentinel diagnostics. No solve with singular factors. Complex/sparse/transpose solves, ill-conditioned accuracy and performance remain unverified.",
      "validation_path": "docs/gams-lu-orbits-validation.json",
      "review_path": "docs/gams-lu-orbits.md",
      "checks": {
        "nonsingular_factorizations": 96,
        "solve_calls": 384,
        "known_solution_entries": 3072,
        "singular_diagnostics": 8,
        "sizes": [
          1,
          2,
          3,
          5,
          8,
          13
        ],
        "matrix_scales": [
          1e-06,
          1000000.0
        ],
        "vector_matrix_rhs_checked": true,
        "pivot_permutation_checked": true,
        "factorization_identity_checked": true,
        "max_scaled_factor_error": 2e-12,
        "max_normalized_solution_error": 2e-12,
        "max_scaled_residual": 2e-12,
        "complex_sparse_verified": false,
        "ill_conditioned_accuracy_verified": false,
        "factorizations_with_row_swaps": 48
      },
      "source_sha256": "32970067e47734c5d5c5351d17df165024fc8fa0091b162cf417a79879ca43d5",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=linalg&example=gams-linalg-lu-reference"
    },
    {
      "id": "fat-orbit-reference",
      "name": "gams-fat-orbit-reference",
      "package_id": "fortran-astrodynamics-toolkit",
      "procedure_id": "fortran-astrodynamics-toolkit-orbital-elements-to-rv",
      "gams_code": "P",
      "problem_id": "conic-orbits-components-and-physical-invariants",
      "path": "fpm_catalog/gams-drivers/fat-orbit-reference.f90",
      "revision": "3cf0a0a8ba2abf8bc4995c6da5b6abae07b45a0a",
      "author_example": "test/elements_test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/lu-orbits-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned implementation and author example reviewed without copying upstream code. Orbital elements to Cartesian states checked by three separately applied axis rotations and orbital radius, angular momentum magnitude/direction, eccentricity, energy and radial speed identities. Circular, elliptic, parabolic and hyperbolic conics, prograde/polar/retrograde inclinations, three physical scales. Undefined node/periapsis angles set to canonical zero. Not a round-trip-only test. Inverse conversion, singularity thresholds, asymptotic anomalies, propagators and performance remain unverified.",
      "validation_path": "docs/gams-lu-orbits-validation.json",
      "review_path": "docs/gams-lu-orbits.md",
      "checks": {
        "state_conversions": 864,
        "cartesian_component_references": 5184,
        "scalar_invariant_direction_checks": 6912,
        "eccentricities": [
          0,
          0.2,
          0.7,
          1,
          1.5
        ],
        "inclinations_include_polar_retrograde": true,
        "physical_scale_pairs": 3,
        "undefined_angles": "canonical zero",
        "max_scaled_component_error": 5e-12,
        "max_scaled_invariant_error": 5e-12,
        "inverse_conversion_verified": false,
        "singularity_thresholds_verified": false,
        "propagation_verified": false
      },
      "source_sha256": "2a6093544f53a7bdaddcd02fc4ce2fb3f2672be30efb447590b79629995837e8",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-astrodynamics-toolkit&example=gams-fat-orbit-reference"
    },
    {
      "id": "daskr-dae-reference",
      "name": "gams-daskr-dae-reference",
      "package_id": "daskr",
      "procedure_id": "daskr-ddaskr",
      "gams_code": "I1a2",
      "problem_id": "index-one-dae-closed-forms-and-continuation",
      "path": "fpm_catalog/gams-drivers/daskr-dae-reference.f90",
      "revision": "b43533edc5d6900088a846d802e3a86d0f9a06ad",
      "author_example": "examples/web/dweb.f",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/dae-fft-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned implementation/manual and author example reviewed without copying upstream code. Index-one triangular exponential and nonautonomous polynomial DAEs with nonlinear algebraic constraints and supplied consistent initial data. Dense direct linear solves, numerical/user Jacobians and scalar/vector tolerances checked independently against exact states/derivatives, constraints, residuals and reached times. BDF history continued at eight checkpoints; polynomial family also integrated backward. Krylov/preconditioning, banded storage, roots, inconsistent-data initialization, higher-index problems and performance remain unverified.",
      "validation_path": "docs/gams-dae-fft-validation.json",
      "review_path": "docs/gams-dae-fft.md",
      "checks": {
        "trajectories": 96,
        "checkpoints": 768,
        "analytic_state_derivative_entries": 4608,
        "user_jacobian_trajectories": 48,
        "dae_families": 2,
        "max_normalized_state_error": 5e-07,
        "max_normalized_derivative_error": 5e-06,
        "max_normalized_constraint_error": 5e-09,
        "max_scaled_residual": 2e-06,
        "bdf_history_continued": true,
        "scalar_vector_tolerances_checked": true,
        "polynomial_backward_checked": true,
        "krylov_verified": false,
        "root_finding_verified": false,
        "inconsistent_initialization_verified": false
      },
      "source_sha256": "5005e2300b4cb008aa9be3142e84977ed5ee4a7bbb8b92615f49a45dea36bec6",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=daskr&example=gams-daskr-dae-reference"
    },
    {
      "id": "nafpack-fft-reference",
      "name": "gams-nafpack-fft-reference",
      "package_id": "nafpack",
      "procedure_id": "nafpack-execute-fft-plan-sp",
      "gams_code": "J1a2",
      "problem_id": "single-precision-radix2-direct-dft-reference",
      "path": "fpm_catalog/gams-drivers/nafpack-fft-reference.f90",
      "revision": "9b1e9a98f8c28853a48e152605f84c994c271f45",
      "author_example": "test/Fourier_Transform/test_Fourier_Transform_fft_complex.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/dae-fft-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned API and author tests reviewed without copying upstream code. Single-precision complex radix-two DIT/DIF, explicit classic loops and iterative/recursive implementations, lengths 2..128, four input patterns and three scales. Every coefficient checked against double-precision direct DFT of rounded inputs; Parseval, input preservation, repeated execution and plan destruction/recreation checked. No round-trip-only proof. Other radices, auto selection, inverse transforms, other precisions/dimensions, parallel methods and performance remain unverified.",
      "validation_path": "docs/gams-dae-fft-validation.json",
      "review_path": "docs/gams-dae-fft.md",
      "checks": {
        "plan_fixtures": 168,
        "fft_calls": 672,
        "direct_coefficient_references": 24384,
        "lengths": [
          2,
          4,
          8,
          16,
          32,
          64,
          128
        ],
        "algorithms": [
          "RADIX2_DIT",
          "RADIX2_DIF"
        ],
        "implementations": [
          "ITERATIVE",
          "recursive"
        ],
        "repetitions_per_implementation": 2,
        "max_l1_scaled_error_float_eps_factor": 64,
        "max_relative_parseval_error_float_eps_factor": 128,
        "input_preservation_checked": true,
        "inverse_transforms_verified": false,
        "other_radices_verified": false,
        "parallel_methods_verified": false
      },
      "source_sha256": "b9efffb25faff3a169c6e6827fb7d5d718827c926a0bcfeb6be91a3f8ce92129",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nafpack&example=gams-nafpack-fft-reference"
    },
    {
      "id": "propack-spectrum-reference",
      "name": "gams-propack-spectrum-reference",
      "package_id": "propack",
      "procedure_id": "propack-partial-svd",
      "gams_code": "D6",
      "problem_id": "prescribed-leading-triplets-square-tall-wide",
      "path": "fpm_catalog/gams-drivers/propack-spectrum-reference.f90",
      "revision": "36f95269ecee6ae42af0c00707b3c3cf3f869a35",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/propack-fmm-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned DLANSVD/DLANBPRO manual/source reviewed without copying upstream code. Historical SciPy PROPACK 2.1 serial double precision, reusing the existing catalog recipe. Square/tall/wide full-rank matrices with prescribed distinct nonzero spectra, identity or chained left/right Givens rotations, three scales and one/three leading triplets. Deterministic nonzero column-space start, writable convergence count, both callback directions, independently recomputed two-sided residuals and complete returned-vector orthogonality checked. Restarted routines, repeated/zero singular values, error-bound sharpness, arbitrary sparse inputs and performance remain unverified.",
      "validation_path": "docs/gams-propack-fmm-validation.json",
      "review_path": "docs/gams-propack-fmm.md",
      "checks": {
        "partial_svd_calls": 108,
        "leading_triplets": 216,
        "base_column_counts": [
          8,
          12,
          20
        ],
        "row_offsets": [
          -3,
          0,
          3
        ],
        "scales": [
          0.125,
          1,
          8
        ],
        "requested_triplets": [
          1,
          3
        ],
        "two_sided_residuals_checked": true,
        "complete_returned_orthogonality_checked": true,
        "both_operator_directions_checked": true,
        "max_operator_scaled_sigma_error": 2e-09,
        "max_operator_scaled_residual": 2e-09,
        "max_orthogonality_error": 2e-09,
        "restarted_algorithm_verified": false,
        "repeated_zero_singular_values_verified": false,
        "error_bound_sharpness_verified": false
      },
      "source_sha256": "20e53beb094799f7911d5f981c796da75d1cb6fd7a5ae31c3c75b0a997448f1e",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=propack&example=gams-propack-spectrum-reference"
    },
    {
      "id": "fmm2d-laplace-reference",
      "name": "gams-fmm2d-laplace-reference",
      "package_id": "fmm2d",
      "procedure_id": "fmm2d-potentials",
      "gams_code": "D1",
      "problem_id": "laplace-kernel-matrix-direct-sums",
      "path": "fpm_catalog/gams-drivers/fmm2d-laplace-reference.f90",
      "revision": "7e7509ecd6ebe31b9292cb00825410b478f44808",
      "author_example": "test/laplace/test_rfmm2d.f",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/propack-fmm-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned wrapper/kernel source and author test reviewed without copying upstream code. Real scalar target-charge Laplace potentials as a structured kernel-matrix application; not a complete PDE solver. Two geometries, three charge patterns including cancelling/neutral and singleton zero charge, two source orders and requested precisions. Every separate target checked by scalar log-distance sums with cancellation-aware unsigned-contribution scaling and input preservation. Reuses unchanged previously guarded native Fortran recipe and one execution thread. Source self-potentials, derivatives, dipoles, other kernels and parallel performance remain unverified.",
      "validation_path": "docs/gams-propack-fmm-validation.json",
      "review_path": "docs/gams-propack-fmm.md",
      "checks": {
        "potential_calls": 120,
        "direct_target_references": 2880,
        "source_counts": [
          1,
          7,
          64,
          257,
          1024
        ],
        "targets_per_call": 24,
        "requested_precisions": [
          1e-06,
          1e-10
        ],
        "max_cancellation_scaled_errors": [
          2e-05,
          2e-08
        ],
        "zero_charge_checked": true,
        "clustered_sources_checked": true,
        "reversed_sources_checked": true,
        "input_preservation_checked": true,
        "complete_pde_solver_verified": false,
        "source_potentials_verified": false,
        "derivatives_dipoles_verified": false,
        "parallel_performance_verified": false
      },
      "source_sha256": "13e5f61b69008231099ce85200e5a505c871215192ffad9265ef1a2e0dd603ad",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fmm2d&example=gams-fmm2d-laplace-reference"
    },
    {
      "id": "lightkrylov-gmres-reference",
      "name": "gams-lightkrylov-gmres-reference",
      "package_id": "lightkrylov",
      "procedure_id": "lightkrylov-gmres",
      "gams_code": "D2",
      "problem_id": "manufactured-normal-transpose-gmres",
      "path": "fpm_catalog/gams-drivers/lightkrylov-gmres-reference.f90",
      "revision": "849fa1d2f29c14d0181315e76e731bff7f0b2d08",
      "author_example": "test/Tests.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/gmres-inverse-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned interface/implementation and author tests reviewed without copying upstream code. Real dense operator GMRES on three matrix families, four sizes, three manufactured RHS vectors, normal/transpose solves, two non-exact initial guesses and full/three-vector Krylov dimensions. Requires convergence status and metadata, known solutions, scalar true residuals, and operator/RHS preservation; actual multiple restart cycles must occur. Logging reduced via public logger setup. Exact-initial/zero-RHS cases, preconditioners, custom matrix-free adapters, other precisions, complex solves and performance remain unverified.",
      "validation_path": "docs/gams-gmres-inverse-validation.json",
      "review_path": "docs/gams-gmres-inverse.md",
      "checks": {
        "gmres_solves": 288,
        "known_solution_entries": 2016,
        "sizes": [
          2,
          5,
          8,
          13
        ],
        "normal_transpose_checked": true,
        "nonzero_initial_guess_checked": true,
        "actual_restart_cycles_required": true,
        "max_restarts": 500,
        "max_normalized_solution_error": 5e-08,
        "max_scaled_true_residual": 2e-10,
        "zero_rhs_exact_initial_verified": false,
        "preconditioners_verified": false,
        "complex_precision_variants_verified": false,
        "multiple_outer_cycle_solves": 100
      },
      "source_sha256": "a8c400e4580ebe98605cadd6a6f205036313ffc887bb5702e07c51f68ec04e8f",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lightkrylov&example=gams-lightkrylov-gmres-reference"
    },
    {
      "id": "ntpoly-inverse-reference",
      "name": "gams-ntpoly-inverse-reference",
      "package_id": "ntpoly",
      "procedure_id": "ntpoly-inversion",
      "gams_code": "D2",
      "problem_id": "spectral-spd-inverses-two-sided-identities",
      "path": "fpm_catalog/gams-drivers/ntpoly-inverse-reference.f90",
      "revision": "7b3d22f76226af1402e9b0a5be18a496e4addc28",
      "author_example": "Examples/PremadeMatrix/main.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/gmres-inverse-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned inverse implementation and author MPI setup example reviewed without copying upstream code. One-process serialized MPI Hotelling inversion of diagonal and rotated real SPD matrices with prescribed eigenvalues, three condition numbers and two scales. Checks every inverse entry against Q*diag(1/lambda)*transpose(Q), independent scalar left/right identity residuals, symmetry, finite gathers and input preservation. No returned convergence status in this API; mathematical checks determine acceptance. Reuses existing shared-memory/self transport recipe. Nonsymmetric/indefinite/singular matrices, complex or multi-process execution, load balancing and performance remain unverified.",
      "validation_path": "docs/gams-gmres-inverse-validation.json",
      "review_path": "docs/gams-gmres-inverse.md",
      "checks": {
        "spd_inversions": 48,
        "analytic_inverse_entries": 1224,
        "sizes": [
          2,
          3,
          5,
          8
        ],
        "prescribed_condition_numbers": [
          2,
          10,
          50
        ],
        "scales": [
          0.25,
          4
        ],
        "mpi_processes": 1,
        "left_right_identity_checked": true,
        "input_preservation_checked": true,
        "max_normalized_inverse_error": 5e-09,
        "max_identity_residual": 5e-09,
        "max_normalized_symmetry_error": 5e-09,
        "nonsymmetric_indefinite_verified": false,
        "singular_inputs_verified": false,
        "multi_process_verified": false
      },
      "source_sha256": "4019824af6d929b32d2337cc893bc23d6079a5417d481d9f934f808d5a0b7261",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ntpoly&example=gams-ntpoly-inverse-reference"
    },
    {
      "id": "formal-polynomial-reference",
      "name": "gams-formal-polynomial-reference",
      "package_id": "formal",
      "procedure_id": "formal-divergence",
      "gams_code": "H1",
      "problem_id": "polynomial-mimetic-derivatives-and-conservation",
      "path": "fpm_catalog/gams-drivers/formal-polynomial-reference.f90",
      "revision": "d28eee9b37b4b74abe7f21bb2ccbdfb5c17f3e8a",
      "author_example": "example/extended-gauss-divergence.F90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/periodic-calculus-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned operator sources and author example reviewed without copying upstream code. Single-image default-real polynomial gradient/divergence samples, analytic weighted volume/boundary integrals and extended Gauss conservation. Orders two/four, three grid sizes/domains and degrees zero..two for each field. Quadrature bounds distinguish second-order discretization from real32 roundoff. No disabled library assertions or changed license. Nonpolynomial convergence orders, Laplacians, higher dimensions, PDE time integration and multi-image operation remain unverified.",
      "validation_path": "docs/gams-periodic-calculus-validation.json",
      "review_path": "docs/gams-periodic-calculus.md",
      "checks": {
        "field_pairs": 162,
        "pointwise_derivative_references": 24354,
        "analytic_integral_references": 486,
        "orders": [
          2,
          4
        ],
        "cell_counts": [
          32,
          64,
          128
        ],
        "polynomial_degrees": [
          0,
          1,
          2
        ],
        "images": 1,
        "max_normalized_derivative_error": 0.0005,
        "max_conservation_residual": 0.0005,
        "nonpolynomial_convergence_verified": false,
        "laplacians_verified": false,
        "pde_solver_verified": false,
        "multi_image_verified": false
      },
      "source_sha256": "ca5834c5d31b70b1d482ab743cd6395a9868042ad6f036f489453e0e0feb920a",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=formal&example=gams-formal-polynomial-reference"
    },
    {
      "id": "raffle-orthogonal-reference",
      "name": "gams-raffle-orthogonal-reference",
      "package_id": "raffle",
      "procedure_id": "raffle-periodic-distance",
      "gams_code": "P",
      "problem_id": "orthogonal-periodic-image-enumeration",
      "path": "fpm_catalog/gams-drivers/raffle-orthogonal-reference.f90",
      "revision": "c152a30a1eaf94965c047bcd1a7edca07873b56f",
      "author_example": "test/test_dist_calcs.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/periodic-calculus-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned distance source and author tests reviewed without copying upstream code. Orthogonal cells and rigidly rotated orthogonal cells, two species/five atoms, modular and exact-atom queries with integer translations. Each atom distance and nearest real/fractional vector length compared with real64 enumeration of periodic images from rounded inputs. Near-atom exclusion, directional/ignore-list options, arbitrary skew cells, structure generation and performance remain unverified. A separate skew-cell probe fails and is retained with its hash and full result under docs/gams-candidates/raffle-skew; no general skew-cell claim is made.",
      "validation_path": "docs/gams-periodic-calculus-validation.json",
      "review_path": "docs/gams-periodic-calculus.md",
      "checks": {
        "cell_queries": 360,
        "distance_references": 2520,
        "cell_geometries": 6,
        "species": 2,
        "atoms": 5,
        "image_offsets_per_axis": [
          -4,
          4
        ],
        "max_cell_scaled_error_float_eps_factor": 128,
        "integer_translations_checked": true,
        "exact_atom_queries_checked": true,
        "rotated_orthogonal_cells_checked": true,
        "general_skew_cells_verified": false,
        "near_atom_exclusion_verified": false,
        "structure_generation_verified": false,
        "failed_skew_probe_preserved": true
      },
      "source_sha256": "95bba07004b112802c9d8f53ad7b080a1a34037c842b6f83eca90b6edafa7808",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=raffle&example=gams-raffle-orthogonal-reference"
    },
    {
      "id": "feq-expression-reference",
      "name": "gams-feq-expression-reference",
      "package_id": "feq-parse",
      "procedure_id": "feq-parse-evaluate",
      "gams_code": "N3",
      "problem_id": "multivariable-scalar-batch-formula-reference",
      "path": "fpm_catalog/gams-drivers/feq-expression-reference.f90",
      "revision": "2e80c5940b128a52c5070a3f56909674fb85a379",
      "author_example": "example/gaussian_scalar_multivar.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/expressions-sky-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned parser/functions and author example reviewed without copying upstream code. Twelve valid real64 expressions at a 7x7x7 grid, scalar/batch evaluation and reversed variable declarations with correspondingly permuted inputs, checked against direct arithmetic/intrinsic formulas. Includes precedence, parentheses, pi, real powers and elementary compositions. Inputs preserved; no scalar/batch agreement-only oracle. Invalid input, error recovery, custom functions, other precisions/ranks, full grammar and symbolic algebra remain unverified.",
      "validation_path": "docs/gams-expressions-sky-validation.json",
      "review_path": "docs/gams-expressions-sky.md",
      "checks": {
        "expressions": 12,
        "input_tuples": 343,
        "formula_references": 16464,
        "parser_objects": 24,
        "scalar_batch_checked": true,
        "reordered_variables_checked": true,
        "input_preservation_checked": true,
        "max_normalized_error": 2e-12,
        "invalid_input_verified": false,
        "custom_functions_verified": false,
        "symbolic_algebra_verified": false
      },
      "source_sha256": "cb7c2033d144e8fb98cc2f6287a7331010d789722019214ae1c4ba45fa965f15",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=feq-parse&example=gams-feq-expression-reference"
    },
    {
      "id": "astro-sky-reference",
      "name": "gams-astro-sky-reference",
      "package_id": "astro-fortran",
      "procedure_id": "astro-fortran-g2icrs",
      "gams_code": "P",
      "problem_id": "galactic-icrs-independent-angle-rotations",
      "path": "fpm_catalog/gams-drivers/astro-sky-reference.f90",
      "revision": "9d61091d225a1b314ff8170153b06a8691aba283",
      "author_example": "test/t_sofa_f.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/expressions-sky-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned routines/frame definition and author tests reviewed without copying upstream code, embedded matrix or test bodies. ICRS/Galactic sky grids, poles and longitude wraps checked against separately applied elementary rotations built from the defining pole/node angles. Independent forward Cartesian references supplemented by inverse round trips, output angle ranges and unit norms. No longitude equality requirement at poles. Time evolution, astrometric corrections, arbitrary coordinate APIs and physical frame-definition accuracy remain unverified. Angle ranges allow 64 real64 epsilons of endpoint roundoff, including a wrapped longitude rounded to exactly 2*pi; vector tolerances remain unchanged.",
      "validation_path": "docs/gams-expressions-sky-validation.json",
      "review_path": "docs/gams-expressions-sky.md",
      "checks": {
        "direction_fixtures": 1296,
        "conversion_calls": 2592,
        "independent_rotation_vector_references": 1296,
        "roundtrip_vector_references": 1296,
        "longitude_samples": 24,
        "latitude_samples": 9,
        "longitude_wraps": [
          -2,
          0,
          3
        ],
        "poles_checked": true,
        "canonical_output_ranges_checked": true,
        "max_vector_discrepancy": 2e-12,
        "max_unit_norm_error": 2e-12,
        "pole_longitude_identity_required": false,
        "astrometric_time_evolution_verified": false,
        "physical_frame_accuracy_verified": false,
        "angle_range_roundoff_absolute_eps_factor": 64
      },
      "source_sha256": "6b4af785124f05710f5c9d0a58078f515c2799230824968ba8e21c98d847fa46",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=astro-fortran&example=gams-astro-sky-reference"
    },
    {
      "id": "uint-arithmetic-reference",
      "name": "gams-uint-arithmetic-reference",
      "package_id": "uint-fortran",
      "procedure_id": "uint-fortran-arithmetic",
      "gams_code": "A1",
      "problem_id": "unsigned-modular-arithmetic-and-comparisons",
      "path": "fpm_catalog/gams-drivers/uint-arithmetic-reference.f90",
      "revision": "487f806c76a5d107c5a8982198bafb295065eba7",
      "author_example": "test/check-assign-negative_uint32.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/unsigned-bitsets-drivers-MIT.txt"
      ],
      "modifications": "Independent integer(int64) arithmetic and modulo references for uint8/uint16/uint32 assignments, addition, subtraction, nonzero division and six comparisons. Includes signed-boundary values, modular carry/borrow, negative assignments and operand preservation. Multiplication, powers, mixed-kind operations, uint64 and C interoperability remain unverified.",
      "validation_path": "docs/gams-unsigned-bitsets-validation.json",
      "review_path": "docs/gams-unsigned-bitsets.md",
      "checks": {
        "widths": [
          8,
          16,
          32
        ],
        "operand_pairs": 1728,
        "values_per_width": 24,
        "negative_assignments": 27,
        "exact_checks": 17307,
        "six_comparisons_checked": true,
        "input_preservation_checked": true,
        "multiplication_verified": false,
        "uint64_verified": false
      },
      "source_sha256": "a23b605e586953d00034781cbb53b11433a549b3cd16e9ab10754449bac03d76",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=uint-fortran&example=gams-uint-arithmetic-reference"
    },
    {
      "id": "orbs-bitwise-reference",
      "name": "gams-orbs-bitwise-reference",
      "package_id": "orbs",
      "procedure_id": "orbs-bitsets",
      "gams_code": "N2",
      "problem_id": "binary-logical-arithmetic-and-shift-reference",
      "path": "fpm_catalog/gams-drivers/orbs-bitwise-reference.f90",
      "revision": "3cf7fcec19798367f6f5bd26bad861c510449265",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/unsigned-bitsets-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; binary strings and schoolbook digit arithmetic provide references without calling stdlib/bstrith for the oracle. Eleven widths span one bit through multiple storage words; sixteen patterns exercise zero, ones, endpoints and modular patterns. AND/OR/XOR/ANDNOT/NOT, addition/subtraction, every shift strictly inside the documented domain, width and operand preservation checked. Mixed widths, empty sets, sorting, mutation APIs, formatted I/O and invalid-input handling remain unverified.",
      "validation_path": "docs/gams-unsigned-bitsets-validation.json",
      "review_path": "docs/gams-unsigned-bitsets.md",
      "checks": {
        "widths": [
          1,
          4,
          8,
          31,
          32,
          63,
          64,
          65,
          127,
          128,
          129
        ],
        "patterns_per_width": 16,
        "operand_pairs": 2816,
        "binary_string_references": 37760,
        "all_documented_interior_shifts_checked": true,
        "multiple_storage_words_checked": true,
        "input_preservation_checked": true,
        "mixed_widths_verified": false,
        "invalid_input_verified": false
      },
      "source_sha256": "249c820ee7139c29d3e84e0c26b5eee16c56973af6f38adf3c02452c9771ba08",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=orbs&example=gams-orbs-bitwise-reference"
    },
    {
      "id": "heatflow-bicg-reference",
      "name": "gams-heatflow-bicg-reference",
      "package_id": "heatflow",
      "procedure_id": "heatflow-sparse",
      "gams_code": "D2",
      "problem_id": "manufactured-sparse-bicg-systems",
      "path": "fpm_catalog/gams-drivers/heatflow-bicg-reference.f90",
      "revision": "b0d930caad9160a15f0aeafa238c448f48f28d55",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/sparse-advection-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned sparse matrix and BiCG source reviewed. Three strictly row-diagonally-dominant banded families, four sizes, three scales, three known solution patterns and zero/nonzero initial guesses. Exact manufactured RHS and true residual use scalar dense sums, not library multiply. Singular/indefinite systems, other stopping modes, parallel execution and the complete heat evolution application remain unverified.",
      "validation_path": "docs/gams-sparse-advection-validation.json",
      "review_path": "docs/gams-sparse-advection.md",
      "checks": {
        "matrices": 36,
        "solves": 216,
        "known_solution_entries": 3456,
        "sizes": [
          5,
          9,
          17,
          33
        ],
        "matrix_scales": [
          0.125,
          1,
          8
        ],
        "nonsymmetric_systems_checked": true,
        "nonzero_initial_guess_checked": true,
        "rhs_preservation_checked": true,
        "max_normalized_solution_error": 2e-09,
        "max_normalized_true_residual": 2e-10,
        "pde_evolution_verified": false
      },
      "source_sha256": "c7b4e8d5cbc0565e8e76212d1b16e15c30de4b0d8040aeb3fe6616ad8af2dd86",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=heatflow&example=gams-heatflow-bicg-reference"
    },
    {
      "id": "hrweno-advection-reference",
      "name": "gams-hrweno-advection-reference",
      "package_id": "hrweno",
      "procedure_id": "hrweno-reconstruction",
      "gams_code": "I2",
      "problem_id": "periodic-linear-advection-cell-averages",
      "path": "fpm_catalog/gams-drivers/hrweno-advection-reference.f90",
      "revision": "2885105a7ba98351fed299b22e9bc0c67a809d2f",
      "author_example": "example/example1_burgers_1d_fv.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/sparse-advection-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned WENO source and author conservation-law example reviewed without copying their bodies. Finite-volume periodic scalar advection with positive/negative velocity, constant and Fourier-mode cell averages, phase shifts and positive/negative amplitudes, three grids, WENO k=3, third-order TVD RK and two continued output times. Analytic shifted cell averages and conserved mean checked. Nonuniform meshes, shocks, nonlinear fluxes, multidimensional systems and formal convergence orders remain unverified. The reference uses the actual returned fixed-step time. A k=2 probe exceeded the proposed accuracy threshold and is retained under docs/gams-candidates/hrweno-k2-accuracy; this alone is not an established algorithm defect. No thresholds were relaxed for the successful k=3 suite.",
      "validation_path": "docs/gams-sparse-advection-validation.json",
      "review_path": "docs/gams-sparse-advection.md",
      "checks": {
        "problems": 72,
        "checkpoints": 144,
        "analytic_cell_average_references": 21504,
        "sizes": [
          64,
          128,
          256
        ],
        "weno_k": [
          3
        ],
        "rk_order": 3,
        "fourier_modes": [
          0,
          1,
          2
        ],
        "speeds": [
          -1.5,
          0.75
        ],
        "both_advection_directions_checked": true,
        "constant_state_checked": true,
        "continued_integration_checked": true,
        "max_normalized_mass_error": 5e-12,
        "nonlinear_fluxes_verified": false,
        "shocks_verified": false,
        "nonuniform_mesh_verified": false,
        "formal_convergence_order_verified": false,
        "exact_reference_at_returned_time": true,
        "k2_verified": false,
        "proposed_k2_accuracy_failure_preserved": true,
        "amplitude_scaled_error_bound_coefficient": 0.002,
        "absolute_error_bound_floor": 5e-12
      },
      "source_sha256": "f903d1c80fc9959e17d631c7431dca8312a179281b1ea4afcd24c2e00c3b9cbc",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=hrweno&example=gams-hrweno-advection-reference"
    },
    {
      "id": "formatmul-products-reference",
      "name": "gams-formatmul-products-reference",
      "package_id": "formatmul",
      "procedure_id": "formatmul-products",
      "gams_code": "D1",
      "problem_id": "scalar-loop-matrix-products",
      "path": "fpm_catalog/gams-drivers/formatmul-products-reference.f90",
      "revision": "4b5747d49c27f0df92288e7a61d0e479e34ac78e",
      "author_example": "test/test1.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/products-partitions-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned implementation and author tests reviewed without copying bodies. Methods m1..m4, six rectangular/unit-dimension shapes and zero/dyadic/transcendental fixtures checked against scalar sums with sum-absolute-product error scaling. Default and all paired transpose flags, three matrix-vector variants, output shapes, finite values and input preservation. Exact dyadic outputs additionally required. Both matrix transpose flags supplied whenever either is present; preexisting single-false-flag failures remain retained. Other methods, complex types, distributed/coarray execution and performance remain unverified.",
      "validation_path": "docs/gams-products-partitions-validation.json",
      "review_path": "docs/gams-products-partitions.md",
      "checks": {
        "matrix_matrix_calls": 360,
        "matrix_vector_calls": 216,
        "scalar_product_entries": 6588,
        "methods": [
          "m1",
          "m2",
          "m3",
          "m4"
        ],
        "paired_transpose_combinations": 4,
        "single_transpose_flag_matrix_calls_verified": false,
        "exact_dyadic_checks": true,
        "input_preservation_checked": true,
        "error_bound_eps_factor": 128,
        "images": 1,
        "distributed_execution_verified": false
      },
      "source_sha256": "73c5f580d6f576149b6ee8eb726f44679f19adf5fdacc7ad2431d10665fac13a",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=formatmul&example=gams-formatmul-products-reference"
    },
    {
      "id": "metis-kway-reference",
      "name": "gams-metis-kway-reference",
      "package_id": "metis-fpm",
      "procedure_id": "metis-fpm-metis-partgraphkway",
      "gams_code": "P",
      "problem_id": "kway-partition-objective-certificates",
      "path": "fpm_catalog/gams-drivers/metis-kway-reference.f90",
      "revision": "5db1dc1e46fd819a53a86fe2170eaf5464bf17c7",
      "author_example": null,
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/products-partitions-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned C interface reviewed. Cycle, rectangular-grid and linked-clique graph families at three sizes, unit/unequal positive edge weights, two/three partitions and three seeds. Returned labels, nonempty/coarsely balanced parts, independent upper-triangle weighted edge cut and unchanged CSR input checked. No fixed expected partition labels, global optimality or heuristic reproducibility claim. Mesh APIs, vertex weights, communication-volume objective, nested dissection and invalid input remain unverified. Pinned Fortran UFACTOR/NUMBERING option indices disagree with the bundled C enum. The successful consumer retains default zero numbering, sets the matching SEED option and uses typed ubvec=[1.1_real_t]; no library patch or hard-coded replacement indices. The failed named-option probe is preserved under docs/gams-candidates/metis-option-indices.",
      "validation_path": "docs/gams-products-partitions-validation.json",
      "review_path": "docs/gams-products-partitions.md",
      "checks": {
        "partition_calls": 108,
        "assigned_vertices": 3024,
        "weighted_cut_references": 108,
        "sizes": [
          12,
          24,
          48
        ],
        "part_counts": [
          2,
          3
        ],
        "seeds": [
          1,
          42,
          93
        ],
        "positive_edge_weights_checked": true,
        "csr_preservation_checked": true,
        "global_optimality_verified": false,
        "vertex_weights_verified": false,
        "mesh_partitioning_verified": false,
        "default_numbering_used": true,
        "typed_imbalance_argument_used": true,
        "option_index_failure_preserved": true,
        "max_part_population_factor": 1.5
      },
      "source_sha256": "cb45978a6306bc80b382fd9a79bac5968d40535b8803e71b7662a3d5a10fe9ea",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=metis-fpm&example=gams-metis-kway-reference"
    },
    {
      "id": "dtfft-2d-reference",
      "name": "gams-dtfft-2d-reference",
      "package_id": "dtfft",
      "procedure_id": "dtfft-cpu-c2c",
      "gams_code": "J1",
      "problem_id": "2d-complex-direct-fourier-reference",
      "path": "fpm_catalog/gams-drivers/dtfft-2d-reference.f90",
      "revision": "bbfd6746be7482bd8366ccb09a73b72882573984",
      "author_example": "tests/fortran/test_c2c_2d_f.F90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/multidimensional-fft-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned implementation and author example reviewed without copying bodies. Three multidimensional shapes and eight complex fixtures each: zero, constant, origin/off-origin impulses, two axis-dependent Fourier modes, dyadic mixed data and nonperiodic transcendental data. Direct negative-sign Fourier sums check all forward coefficients; independently generated coefficients drive inverse tests, plus separate package-forward round trips. Finite results, normalization, layouts, Parseval and repeated use/plan teardown checked. Exactly one MPI process; distributed performance, real transforms, GPU execution and alternative executors remain unverified. Fourier output uses reversed Fortran axes in the Y-aligned pencil; both references and inverse input use that layout. A fresh block-scoped plan object is used for each shape because recreating a destroyed plan object fails at this pin; the exact probe is retained under docs/gams-candidates/dtfft-plan-recreate. No library patch or disabled runtime checking. Native UCX diagnostics remain in the saved successful result.",
      "validation_path": "docs/gams-multidimensional-fft-validation.json",
      "review_path": "docs/gams-multidimensional-fft.md",
      "checks": {
        "dimensions": 2,
        "shapes": [
          [
            4,
            6
          ],
          [
            5,
            7
          ],
          [
            8,
            8
          ]
        ],
        "fixtures": 24,
        "transform_calls": 72,
        "forward_coefficient_references": 984,
        "independent_inverse_references": 984,
        "roundtrip_references": 984,
        "total_complex_references": 2952,
        "mpi_processes": 1,
        "off_origin_impulse_checked": true,
        "axis_dependent_modes_checked": true,
        "parseval_checked": true,
        "repeated_plan_use_checked": true,
        "independent_inverse_input": true,
        "max_normalized_error": 2e-12,
        "distributed_execution_verified": false,
        "real_transforms_verified": false,
        "gpu_execution_verified": false,
        "fourier_output_axes_reversed": true,
        "fresh_plan_per_shape": true,
        "destroyed_plan_recreation_verified": false,
        "plan_recreation_failure_preserved": true
      },
      "source_sha256": "e00e0ce97841d10418d4e4c5b7444b6dc2aa6103d1d045d8bb13934ed7994600",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dtfft&example=gams-dtfft-2d-reference"
    },
    {
      "id": "decomp-3d-reference",
      "name": "gams-decomp-3d-reference",
      "package_id": "2decomp-fft",
      "procedure_id": "2decomp-fft-c2c",
      "gams_code": "J1",
      "problem_id": "3d-complex-direct-fourier-reference",
      "path": "fpm_catalog/gams-drivers/decomp-3d-reference.f90",
      "revision": "4cb38be477b9457cfa5f5624c8fe09387968b190",
      "author_example": "examples/fft_physical_x/fft_c2c_x.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/multidimensional-fft-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned implementation and author example reviewed without copying bodies. Three multidimensional shapes and eight complex fixtures each: zero, constant, origin/off-origin impulses, two axis-dependent Fourier modes, dyadic mixed data and nonperiodic transcendental data. Direct negative-sign Fourier sums check all forward coefficients; independently generated coefficients drive inverse tests, plus separate package-forward round trips. Finite results, normalization, layouts, Parseval and repeated use/plan teardown checked. Exactly one MPI process; distributed performance, real transforms, GPU execution and alternative executors remain unverified. The one-process physical-X and spectral-Z arrays keep logical x/y/z indexing; plans and decompositions are finalized between shapes. Native UCX diagnostics remain in the saved successful result.",
      "validation_path": "docs/gams-multidimensional-fft-validation.json",
      "review_path": "docs/gams-multidimensional-fft.md",
      "checks": {
        "dimensions": 3,
        "shapes": [
          [
            4,
            3,
            2
          ],
          [
            5,
            4,
            3
          ],
          [
            6,
            5,
            4
          ]
        ],
        "fixtures": 24,
        "transform_calls": 72,
        "forward_coefficient_references": 1632,
        "independent_inverse_references": 1632,
        "roundtrip_references": 1632,
        "total_complex_references": 4896,
        "mpi_processes": 1,
        "off_origin_impulse_checked": true,
        "axis_dependent_modes_checked": true,
        "parseval_checked": true,
        "repeated_plan_use_checked": true,
        "independent_inverse_input": true,
        "max_normalized_error": 2e-12,
        "distributed_execution_verified": false,
        "real_transforms_verified": false,
        "gpu_execution_verified": false
      },
      "source_sha256": "93a2a6c05b504688adffc64057ad82981e82c97c0a436b7be4f6dd94ea6c8bec",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=2decomp-fft&example=gams-decomp-3d-reference"
    },
    {
      "id": "lusol-update-reference",
      "name": "gams-lusol-update-reference",
      "package_id": "lusol",
      "procedure_id": "lusol-api",
      "gams_code": "D2a4",
      "problem_id": "sparse-column-update-manufactured-solutions",
      "path": "fpm_catalog/gams-drivers/lusol-update-reference.f90",
      "revision": "2d95174d44ec9bf9dabbbd07652c84c11fe56d71",
      "author_example": "test/lusol_test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/sparse-spectra-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned implementation and author example reviewed. Four dimensions, two banded families, two scales and original/row-swapped matrices. One replacement of column one per fresh factorization. Three manufactured solutions tested before and after the update, normal/transpose solves with independent scalar RHS/residual sums. Includes pivot permutations and public 64-bit index kind; singular/rectangular cases, rank-changing updates and other pivot policies remain unverified. A two-update probe exceeded the proposed accuracy threshold and is preserved under docs/gams-candidates/lusol-drop-tolerance; no algorithm defect or drop-tolerance cause is established. The successful driver keeps original solver settings and comparison bounds.",
      "validation_path": "docs/gams-sparse-spectra-validation.json",
      "review_path": "docs/gams-sparse-spectra.md",
      "checks": {
        "factorizations": 32,
        "column_replacements": 32,
        "solves": 384,
        "known_solution_entries": 1728,
        "sizes": [
          2,
          3,
          5,
          8
        ],
        "normal_transpose_checked": true,
        "row_permutations_checked": true,
        "sequential_updates_checked": false,
        "max_normalized_solution_error": 5e-12,
        "max_normalized_residual": 5e-12,
        "singular_systems_verified": false,
        "rectangular_systems_verified": false,
        "rank_changing_updates_verified": false,
        "single_column_update_checked": true,
        "multi_update_accuracy_probe_preserved": true
      },
      "source_sha256": "5dcce6806beec0f190d5d3c30ef045ccf5d068abf3e9a5b2b17320fccfb6ba6e",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lusol&example=gams-lusol-update-reference"
    },
    {
      "id": "scalapackfx-eigen-reference",
      "name": "gams-scalapackfx-eigen-reference",
      "package_id": "scalapackfx",
      "procedure_id": "scalapackfx-symmetric-eigenproblem",
      "gams_code": "D4a1",
      "problem_id": "prescribed-symmetric-spectra-and-poisoned-triangle",
      "path": "fpm_catalog/gams-drivers/scalapackfx-eigen-reference.f90",
      "revision": "570cbf45836ed05cf791bc3f404f4f10929e5017",
      "author_example": "test/test_diag.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/sparse-spectra-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned wrapper and author test reviewed. Prescribed simple/positive/repeated spectra, diagonal and Givens-rotated bases, two scales/shifts, four sizes, upper/lower storage and block sizes one/two. Unused triangle poisoned with quiet NaNs. Analytic sorted eigenvalues, scalar eigenpair residuals and full orthogonality checked without requiring eigenvector signs or a unique repeated-eigenvalue basis. Exactly one MPI process; generalized/complex eigensystems, multiple processes and performance remain unverified.",
      "validation_path": "docs/gams-sparse-spectra-validation.json",
      "review_path": "docs/gams-sparse-spectra.md",
      "checks": {
        "eigensystems": 384,
        "eigenvalue_references": 1728,
        "sizes": [
          2,
          3,
          5,
          8
        ],
        "block_sizes": [
          1,
          2
        ],
        "mpi_processes": 1,
        "upper_lower_storage_checked": true,
        "unused_triangle_nan_checked": true,
        "repeated_eigenvalues_checked": true,
        "scalar_eigenpair_residuals_checked": true,
        "max_normalized_error": 5e-12,
        "distributed_execution_verified": false,
        "generalized_eigenproblems_verified": false
      },
      "source_sha256": "a9d35e189a74b05e88a1e7846b606da1527220fd142cc1fbd70754d5b5fa4067",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=scalapackfx&example=gams-scalapackfx-eigen-reference"
    },
    {
      "id": "psqp-projection-reference",
      "name": "gams-psqp-projection-reference",
      "package_id": "psqp",
      "procedure_id": "psqp-psqpn",
      "gams_code": "G2h3b1b",
      "problem_id": "ball-plane-projection-with-analytic-kkt",
      "path": "fpm_catalog/gams-drivers/psqp-projection-reference.f90",
      "revision": "57a853e14e3806d69adad6d6d44396d9665d842e",
      "author_example": "test/tsqp.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/projection-lbfgs-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned API and author test reviewed without copying bodies. Convex squared-distance projection onto a translated ball intersected with an affine plane. Analytic minimizers, objectives and multipliers certify solutions across dimensions/radii/translations/target directions and feasible/infeasible starts. User objective gradient and full constraint Jacobian callbacks counted. Only convergence statuses one through four accepted; limits/failure codes rejected. Box-active optima, nonconvex constraints and general global optimization remain unverified.",
      "validation_path": "docs/gams-projection-lbfgs-validation.json",
      "review_path": "docs/gams-projection-lbfgs.md",
      "checks": {
        "problems": 48,
        "optimizer_entries": 160,
        "dimensions": [
          2,
          3,
          5
        ],
        "radii": [
          0.5,
          2
        ],
        "analytic_multipliers_checked": true,
        "user_gradient_calls_checked": true,
        "feasible_infeasible_starts_checked": true,
        "max_normalized_optimizer_error": 2e-05,
        "max_normalized_objective_error": 5e-08,
        "max_normalized_violation": 2e-07,
        "max_normalized_stationarity": 5e-05,
        "box_active_optima_verified": false,
        "nonconvex_constraints_verified": false
      },
      "source_sha256": "24521608d637d34ec0e50f927a19a3883d44596743c51d316bfd512dda3fe90b",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=psqp&example=gams-psqp-projection-reference"
    },
    {
      "id": "seiscope-lbfgs-reference",
      "name": "gams-seiscope-lbfgs-reference",
      "package_id": "seiscope-optimization",
      "procedure_id": "seiscope-optimization-api",
      "gams_code": "G1b1b",
      "problem_id": "spd-quadratics-with-independent-real64-audits",
      "path": "fpm_catalog/gams-drivers/seiscope-lbfgs-reference.f90",
      "revision": "74a25c29d13c506e16f8025eb13a2cf396dc23c0",
      "author_example": "app/LBFGS/test_LBFGS.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/projection-lbfgs-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned L-BFGS source and author example reviewed without copying bodies. Default-real callbacks minimize diagonal/rotated SPD quadratics with known centers, three dimensions/condition ratios/starts and two scales. Independent real64 endpoint cost/gradient audits use actual rounded coefficients. Existing guarded catalog workspace-length fix is reused; no new library patch. Failure/limit requests rejected and residuals checked independently of termination. Nonquadratic/nonconvex objectives, constrained operation, other precision and optimizer methods remain unverified.",
      "validation_path": "docs/gams-projection-lbfgs-validation.json",
      "review_path": "docs/gams-projection-lbfgs.md",
      "checks": {
        "problems": 108,
        "minimizer_entries": 360,
        "dimensions": [
          2,
          3,
          5
        ],
        "condition_ratios": [
          1,
          5,
          25
        ],
        "hessian_scales": [
          0.25,
          2
        ],
        "callback_precision": "default real (real32 in GNU 16 image)",
        "independent_real64_callback_audit": true,
        "known_minimizers_checked": true,
        "existing_catalog_fix_reused": true,
        "max_normalized_minimizer_error": 0.002,
        "max_initial_cost_scaled_objective": 2e-07,
        "max_hessian_scaled_gradient": 0.0002,
        "nonquadratic_objectives_verified": false,
        "constrained_operation_verified": false
      },
      "source_sha256": "f2f70985d796ac488ba862c572ecb771fde0ef989b3202072240c613b456b17d",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=seiscope-optimization&example=gams-seiscope-lbfgs-reference"
    },
    {
      "id": "fortimize-gradient-reference",
      "name": "gams-fortimize-gradient-reference",
      "package_id": "fortimize",
      "procedure_id": "fortimize-gradient-descent",
      "gams_code": "G1b",
      "problem_id": "fixed-gradient-analytic-iteration-reference",
      "path": "fpm_catalog/gams-drivers/fortimize-gradient-reference.f90",
      "revision": "3431b656cd86f89135d0f35bf6afdbd787d9daf3",
      "author_example": "example/gradient.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/gradient-swarm-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned fixed-step implementation and author API example reviewed without copying bodies. Diagonal/rotated SPD quadratics, three dimensions, condition ratios one/five, two stable step settings, five iteration counts and two starts. Spectral powers independently predict every returned point and pre-update objective; endpoint objective explicitly recomputed. At this pin returned F belongs to the preceding iterate, not returned X; gradient calls equal max_iters and convergence_tolerance is not used. No termination-status or adaptive stopping claim. Upstream licensing unspecified; own driver MIT does not relicense the package.",
      "validation_path": "docs/gams-gradient-swarm-validation.json",
      "review_path": "docs/gams-gradient-swarm.md",
      "checks": {
        "runs": 240,
        "analytic_iterate_entries": 800,
        "dimensions": [
          2,
          3,
          5
        ],
        "condition_ratios": [
          1,
          5
        ],
        "iteration_counts": [
          1,
          2,
          5,
          25,
          100
        ],
        "gradient_call_counts_checked": true,
        "returned_objective_lags_one_iteration": true,
        "endpoint_objective_recomputed": true,
        "max_normalized_discrepancy": 2e-12,
        "adaptive_stopping_verified": false,
        "nonquadratic_objectives_verified": false
      },
      "source_sha256": "b2d0cb88e28987916f5d5352b4aa2ce527e6bb8a2735e42b641eccdcefc64ae3",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortimize&example=gams-fortimize-gradient-reference"
    },
    {
      "id": "opti-rastrigin-reference",
      "name": "gams-opti-rastrigin-reference",
      "package_id": "opti",
      "procedure_id": "opti-optimizer",
      "gams_code": "G2i",
      "problem_id": "seeded-shifted-rastrigin-known-global-minima",
      "path": "fpm_catalog/gams-drivers/opti-rastrigin-reference.f90",
      "revision": "6fb22db21bd2338e00690ff3706be61a1f101101",
      "author_example": "test/check.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/gradient-swarm-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned PSO implementation and author API test reviewed without copying bodies. Two/three-dimensional shifted Rastrigin objectives, amplitudes one/ten and three GNU random seeds, adaptive topology, 80 particles and 1200-generation cap. Finite bounded results checked against known unique global minimizers and an independent sin-squared objective identity. Records the actual successful seeds and callback budget, not a general global-convergence or cross-compiler RNG guarantee. No optimizer termination status is exposed by this API.",
      "validation_path": "docs/gams-gradient-swarm-validation.json",
      "review_path": "docs/gams-gradient-swarm.md",
      "checks": {
        "runs": 12,
        "global_minimizer_entries": 30,
        "dimensions": [
          2,
          3
        ],
        "amplitudes": [
          1,
          10
        ],
        "seeds": [
          314159,
          271828,
          161803
        ],
        "seed_element_stride": 37,
        "particles": 80,
        "max_generations": 1200,
        "topology": 2,
        "known_global_minima_checked": true,
        "independent_objective_identity_checked": true,
        "max_objective": 1e-05,
        "max_coordinate_error": 0.001,
        "global_convergence_guaranteed": false,
        "cross_compiler_rng_reproducibility_verified": false
      },
      "source_sha256": "7cd531f70e50768d9ff5257dfff801c9846b62df87a86221fc35dcf22b9346f4",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=opti&example=gams-opti-rastrigin-reference"
    },
    {
      "id": "optgra-halfspace-reference",
      "name": "gams-optgra-halfspace-reference",
      "package_id": "optgra",
      "procedure_id": "optgra-optgra",
      "gams_code": "G2h3b1b",
      "problem_id": "weighted-halfspace-analytic-projections",
      "path": "fpm_catalog/gams-drivers/optgra-halfspace-reference.f90",
      "revision": "914bed713e80faa4a190e03beb3a8307077eb028",
      "author_example": "test/optgra_test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/projection-training-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer, not copied upstream tests. Weighted SPD quadratic projection onto one affine halfspace; three dimensions, two condition ratios and heights, translated centers and feasible/infeasible starts. User objective gradient and constraint Jacobian, convergence status, exact minimizers, objective and analytic KKT multipliers checked. Does not verify nonlinear constraints or nonconvex objectives.",
      "validation_path": "docs/gams-projection-training-validation.json",
      "review_path": "docs/gams-projection-training.md",
      "checks": {
        "problems": 48,
        "optimizer_entries": 160,
        "dimensions": [
          2,
          3,
          5
        ],
        "condition_ratios": [
          1,
          5
        ],
        "analytic_multipliers_checked": true,
        "analytic_derivative_callbacks_checked": true,
        "feasible_infeasible_starts_checked": true,
        "nonlinear_constraints_verified": false,
        "nonconvex_objectives_verified": false,
        "max_normalized_point_error": 0.0002,
        "max_normalized_objective_error": 1e-07,
        "max_normalized_feasibility_violation": 2e-07,
        "max_normalized_kkt_residual": 0.0002
      },
      "source_sha256": "f3e3e57bc53ab507bda197468763db6c73caa1288661b5dfde47faceb4f2747b",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=optgra&example=gams-optgra-halfspace-reference"
    },
    {
      "id": "neural-affine-reference",
      "name": "gams-neural-affine-reference",
      "package_id": "neural-fortran",
      "procedure_id": "neural-network-train",
      "gams_code": "G1b",
      "problem_id": "affine-training-known-zero-minimum",
      "path": "fpm_catalog/gams-drivers/neural-affine-reference.f90",
      "revision": "b2073fa542c8dcdf9466d1a192d2888b628a5df3",
      "author_example": "example/quadratic.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/projection-training-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned train implementation and quadratic author API example reviewed without copying bodies. Calls network%train with linear dense layers, two affine maps and output channels, one/two inputs, three seeds and stochastic/full batches. Real64 scalar affine oracle checks held-out predictions, near-zero training MSE and loss improvement. Single-image default-real32 SGD, not nonlinear network training, a general scalar callback optimizer or cross-compiler RNG claim.",
      "validation_path": "docs/gams-projection-training-validation.json",
      "review_path": "docs/gams-projection-training.md",
      "checks": {
        "runs": 24,
        "prediction_entries": 3168,
        "input_dimensions": [
          1,
          2
        ],
        "output_dimension": 2,
        "affine_maps": 2,
        "seeds": [
          42,
          1729,
          314159
        ],
        "epochs": 400,
        "learning_rate": 0.1,
        "full_batch_and_stochastic_checked": true,
        "network_train_called": true,
        "real64_prediction_oracle": true,
        "max_normalized_prediction_error": 0.0002,
        "max_training_mse": 1e-08,
        "max_final_initial_mse_ratio": 1e-05,
        "nonlinear_networks_verified": false,
        "general_optimizer_verified": false,
        "cross_compiler_rng_reproducibility_verified": false
      },
      "source_sha256": "bce7b3b1cbbbde891c6985bdb7b600e06dd3159c31f5a8f3b653216bb6165d5e",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=neural-fortran&example=gams-neural-affine-reference"
    },
    {
      "id": "conmin-ball-reference",
      "name": "gams-conmin-ball-reference",
      "package_id": "conmin",
      "procedure_id": "conmin-conmin-class",
      "gams_code": "G2h3b1b",
      "problem_id": "convex-ball-projection-analytic-kkt",
      "path": "fpm_catalog/gams-drivers/conmin-ball-reference.f90",
      "revision": "201f3b29f023baf7bef13ad8f49b906ffb1c7757",
      "author_example": "test/TP37.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/directions-fitting-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer, pinned reverse-communication implementation and author example reviewed without copying bodies. Three dimensions, two radii, translated centers, signed target directions, noncollinear feasible/infeasible starts. NFDG=1 objective gradients and active constraint Jacobians; analytic projection, KKT multiplier, feasibility, returned objective and iteration/request caps checked. No distinct success status is exposed by this interface; IGOTO=0 alone is insufficient. No multiple constraints, active variable bounds or nonconvex problems verified.",
      "validation_path": "docs/gams-directions-fitting-validation.json",
      "review_path": "docs/gams-directions-fitting.md",
      "checks": {
        "problems": 48,
        "optimizer_entries": 160,
        "dimensions": [
          2,
          3,
          5
        ],
        "radii": [
          0.5,
          2
        ],
        "analytic_derivative_mode": 1,
        "user_gradient_requests": 426,
        "noncollinear_feasible_infeasible_starts_checked": true,
        "analytic_multipliers_checked": true,
        "iteration_limit": 300,
        "request_limit": 10000,
        "max_normalized_point_error": 0.0002,
        "max_normalized_objective_error": 2e-07,
        "max_normalized_feasibility_violation": 2e-07,
        "max_normalized_kkt_residual": 0.0002,
        "multiple_constraints_verified": false,
        "active_variable_bounds_verified": false,
        "nonconvex_problems_verified": false
      },
      "source_sha256": "cc20236ba1250b38209df27e658269d2cbe335890354098363acea9c86151d0e",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=conmin&example=gams-conmin-ball-reference"
    },
    {
      "id": "annealing-rastrigin-reference",
      "name": "gams-annealing-rastrigin-reference",
      "package_id": "simulated-annealing",
      "procedure_id": "simulated-annealing-simulated-annealing-type",
      "gams_code": "G2i",
      "problem_id": "seeded-shifted-rastrigin-known-minima",
      "path": "fpm_catalog/gams-drivers/annealing-rastrigin-reference.f90",
      "revision": "a2fa094d1ee39525c7e081cfd67866975e9e1dc5",
      "author_example": "test/test.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/directions-fitting-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer, pinned implementation and author example reviewed without copying bodies. Six 2D shifted Rastrigin searches: two amplitudes, three original seed pairs, single main-loop run, cooling factor 0.9. Known global minima, bounds, exact callback counts and independent sin-squared objective identity checked. Failed 3D finite schedules, a two-loop objective discrepancy and an invalid zero-loop consumer are retained. No general global-convergence, multidimensional scaling, multi-loop correctness or cross-compiler RNG guarantee.",
      "validation_path": "docs/gams-directions-fitting-validation.json",
      "review_path": "docs/gams-directions-fitting.md",
      "checks": {
        "runs": 6,
        "global_minimizer_entries": 12,
        "dimensions": [
          2
        ],
        "amplitudes": [
          1,
          10
        ],
        "seed_pairs": [
          [
            1,
            2
          ],
          [
            1234,
            5678
          ],
          [
            91,
            2718
          ]
        ],
        "initial_temperature": 20,
        "cooling_factor": 0.9,
        "main_loop_runs": 1,
        "ns": 20,
        "nt": 10,
        "neps": 4,
        "termination_tolerance": 1e-09,
        "max_callbacks_per_run": 600000,
        "objective_callbacks": 271406,
        "known_minimum_early_stop_enabled": false,
        "callback_counts_checked": true,
        "independent_objective_identity_checked": true,
        "max_objective": 1e-05,
        "max_coordinate_error": 0.001,
        "global_convergence_guaranteed": false,
        "three_dimensional_global_search_verified": false,
        "multiple_main_loop_runs_verified": false,
        "cross_compiler_rng_reproducibility_verified": false
      },
      "source_sha256": "160e814fedd5667e5b3d6aa8132fc4af267761b4b1604cb96415754e4fdc8b90",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=simulated-annealing&example=gams-annealing-rastrigin-reference"
    },
    {
      "id": "rndgen-kiss-reference",
      "name": "gams-rndgen-kiss-reference",
      "package_id": "rndgen-fortran",
      "procedure_id": "rndgen-fortran-rnd",
      "gams_code": "L6a21",
      "problem_id": "independent-modular-kiss-vectors",
      "path": "fpm_catalog/gams-drivers/rndgen-kiss-reference.f90",
      "revision": "3fa553608324913eed6cb178b398e7f661e4f63a",
      "author_example": "example/simple.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/random-references-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned KISS arithmetic and initialization conventions and author API examples reviewed without copying bodies. Unbounded-Python unsigned-modular oracle, direct Park-Miller multiplication and explicit signed seed-shuffle interpretation generate exact prefixes and rolling checksums. Seven interleaved streams, 31-bit output grid, reset replay and in-memory state continuations checked. GNU 16 wraparound behavior only, not statistical quality, cryptographic suitability or cross-compiler portability.",
      "validation_path": "docs/gams-random-references-validation.json",
      "review_path": "docs/gams-random-references.md",
      "checks": {
        "streams": 7,
        "samples_per_stream": 4096,
        "uniform_outputs": 28672,
        "exact_prefix_entries": 56,
        "independent_stream_checksums": 7,
        "reset_replay_entries": 28672,
        "saved_state_replay_entries": 1799,
        "seeds": [
          0,
          1,
          -1,
          12345,
          -67890,
          294727492,
          2147483646
        ],
        "independent_integer_reference": true,
        "interleaved_states_checked": true,
        "output_grid_bits": 31,
        "reference_files": {
          "fpm_catalog/gams-drivers/references/kiss_vectors.py": "58fe3e25c515281d404a8ef63b6172cd6f46655787afcb3560340d826e1652d2",
          "fpm_catalog/gams-drivers/references/kiss-vectors.json": "49db8ae21e3739a4b4e600b333f82241723703e7a074428aa74f6b217f54149a"
        },
        "statistical_quality_verified": false,
        "cross_compiler_wraparound_verified": false,
        "minimum_int32_seed_verified": false,
        "file_state_serialization_verified": false
      },
      "source_sha256": "4f8d39a7479abbd67bf3bd6b1bc9316acf7f9a7dbd960b5e4c088a8481bdda8d",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rndgen-fortran&example=gams-rndgen-kiss-reference"
    },
    {
      "id": "pointsets-random-reference",
      "name": "gams-pointsets-random-reference",
      "package_id": "pointsets",
      "procedure_id": "pointsets-random-spacing",
      "gams_code": "L6",
      "problem_id": "normalized-random-increments-analytic-law",
      "path": "fpm_catalog/gams-drivers/pointsets-random-reference.f90",
      "revision": "a1c381777f893d656018366cfabfa4cc7531e4dd",
      "author_example": "test/pointsets/test_pointsets.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/random-references-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned implementation and author API test reviewed without copying bodies. Normalized random-increment construction checked with a real64 mathematical oracle fed by replayed intrinsic uniform draws. Seven sizes, three intervals/seeds; exact state consumption, replay and empty/singleton no-ops. Three-point U/(U+V) CDF and mean smoke checks. Classification broadened from uniform/order statistics L6a21 to random generation L6 because returned coordinates are not uniform order statistics. Cached default real32 GNU runtime only, not RNG certification or other point-set algorithms.",
      "validation_path": "docs/gams-random-references-validation.json",
      "review_path": "docs/gams-random-references.md",
      "checks": {
        "fixtures": 63,
        "reference_coordinates": 1584,
        "empty_singleton_noop_fixtures": 18,
        "sizes": [
          0,
          1,
          2,
          3,
          9,
          33,
          129
        ],
        "seeds": [
          42,
          1729,
          314159
        ],
        "intervals": [
          [
            0,
            1
          ],
          [
            -3.5,
            2.25
          ],
          [
            0.25,
            0.25
          ]
        ],
        "real64_construction_oracle": true,
        "random_state_consumption_checked": true,
        "exact_replay_checked": true,
        "three_point_law_samples": 60000,
        "cdf_reference_points": [
          0.25,
          0.75
        ],
        "cdf_reference_values": [
          0.16666666666666666,
          0.8333333333333334
        ],
        "max_cdf_error": 0.015,
        "max_mean_error": 0.015,
        "uniform_order_statistics_verified": false,
        "statistical_quality_verified": false,
        "reversed_intervals_verified": false,
        "cross_compiler_rng_reproducibility_verified": false
      },
      "source_sha256": "214740b88a044daba55f15eef8310a704d0fea7f8ebd6c53a7861d8767b0bd39",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=pointsets&example=gams-pointsets-random-reference"
    },
    {
      "id": "fatode-tangent-reference",
      "name": "gams-fatode-tangent-reference",
      "package_id": "fatode",
      "procedure_id": "fatode-tangent",
      "gams_code": "I1",
      "problem_id": "coupled-decay-analytic-tangent-flow",
      "path": "fpm_catalog/gams-drivers/fatode-tangent-reference.f90",
      "revision": "3f237c49bd377644a597c2a49ae5a83f090bfab5",
      "author_example": "EXAMPLES/swe/SWE_ERK_TLM/swe2D_erk_tlm_dr.F90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/tangents-blocks-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned ERK/TLM implementation and author callback example reviewed without copying bodies. Coupled two-state triangular decay augmented by constant rate/coupling states, with four identity tangent columns. Two explicit methods, three rates/couplings/initial vectors, five positive/negative durations and two time origins. Analytic flow and full initial-state/parameter derivative, positive success status, endpoint time, finite values, callback use and constant states checked. No finite-difference Jacobian, implicit/stiff methods, adjoints, sparse variants or arbitrary nonlinear dynamics verified.",
      "validation_path": "docs/gams-tangents-blocks-validation.json",
      "review_path": "docs/gams-tangents-blocks.md",
      "checks": {
        "integrations": 540,
        "state_entries": 2160,
        "tangent_entries": 8640,
        "methods": [
          4,
          6
        ],
        "method_names": [
          "Dopri5",
          "Dopri853"
        ],
        "rates": [
          0.25,
          2,
          8
        ],
        "couplings": [
          -1.5,
          0,
          2
        ],
        "durations": [
          -1,
          -0.125,
          0.125,
          1,
          2
        ],
        "time_origins": [
          0,
          0.75
        ],
        "initial_physical_states": [
          [
            1,
            0.5
          ],
          [
            -0.75,
            1.25
          ],
          [
            0,
            0
          ]
        ],
        "tangent_columns": 4,
        "absolute_tolerance": 1e-12,
        "relative_tolerance": 1e-10,
        "step_limit": 10000,
        "max_normalized_state_error": 2e-07,
        "max_normalized_tangent_error": 2e-07,
        "analytic_jacobian_used": true,
        "tangent_error_control_enabled": true,
        "backward_time_checked": true,
        "full_parameter_derivatives_checked": true,
        "rhs_callbacks": 535978,
        "jacobian_callbacks": 535978,
        "stiff_integrators_verified": false,
        "adjoint_integrators_verified": false,
        "all_erk_methods_verified": false
      },
      "source_sha256": "ef1a2acc7fbe36e5211d1fa007da7c28151ddad0aafb5a9a9b808b43cd88e1e7",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fatode&example=gams-fatode-tangent-reference"
    },
    {
      "id": "dbcsr-products-reference",
      "name": "gams-dbcsr-products-reference",
      "package_id": "dbcsr",
      "procedure_id": "dbcsr-block-multiply",
      "gams_code": "D1",
      "problem_id": "rectangular-irregular-block-scaled-products",
      "path": "fpm_catalog/gams-drivers/dbcsr-products-reference.f90",
      "revision": "cd6f522ec5005da8c59d2883975a89a2da607eac",
      "author_example": "examples/dbcsr_example_3.F",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/tangents-blocks-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned serial real64 DBCSR API and author matrix example reviewed without copying bodies. Two irregular block layouts, four data patterns and all four N/T flag pairs give 32 products; six alpha/beta pairs cycle across those fixtures, rather than forming a Cartesian scalar product. Scalar-loop reference includes accumulation, sparse and structurally empty A, dyadic/non-dyadic values. Array-temporary diagnostics are retained; full 288-case draft hit output limit, and an early intent(in) unpacking handle was a consumer interface error. No MPI, accelerator, symmetry storage, complex values or general sparsity guarantee.",
      "validation_path": "docs/gams-tangents-blocks-validation.json",
      "review_path": "docs/gams-tangents-blocks.md",
      "checks": {
        "products": 32,
        "scalar_reference_entries": 496,
        "operator_dimensions": [
          [
            4,
            3,
            4
          ],
          [
            3,
            6,
            5
          ]
        ],
        "block_partitions": [
          [
            [
              1,
              2,
              1
            ],
            [
              2,
              1
            ],
            [
              1,
              3
            ]
          ],
          [
            [
              2,
              1
            ],
            [
              1,
              3,
              2
            ],
            [
              2,
              1,
              2
            ]
          ]
        ],
        "data_patterns": [
          "dense-dyadic",
          "block-sparse-dyadic",
          "dense-nondyadic",
          "structurally-empty-A"
        ],
        "transpose_pairs": [
          "NN",
          "NT",
          "TN",
          "TT"
        ],
        "alpha_beta_pairs": [
          [
            1,
            0
          ],
          [
            -1.25,
            0.5
          ],
          [
            0,
            -1
          ],
          [
            2,
            0
          ],
          [
            0,
            0
          ],
          [
            0.5,
            1
          ]
        ],
        "scalar_pairs_cycled_across_fixtures": true,
        "full_scalar_cartesian_product_verified": false,
        "independent_scalar_loop_reference": true,
        "filter_epsilon": 0,
        "scaled_error_bound_eps_factor": 128,
        "native_diagnostics_retained": true,
        "mpi_verified": false,
        "accelerators_verified": false,
        "symmetric_storage_verified": false,
        "complex_arithmetic_verified": false
      },
      "source_sha256": "5cfd94e752ea08ce27efe20ae5f146dbb72795e5cb7f8911f7787615f6d319cb",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dbcsr&example=gams-dbcsr-products-reference"
    },
    {
      "id": "dftatom-hydrogen-reference",
      "name": "gams-dftatom-hydrogen-reference",
      "package_id": "dftatom",
      "procedure_id": "dftatom-radial",
      "gams_code": "I1",
      "problem_id": "hydrogenic-energies-radial-shapes-and-moments",
      "path": "fpm_catalog/gams-drivers/dftatom-hydrogen-reference.f90",
      "revision": "e49b3042de6e2471afe5eea992c9ba50dac08f95",
      "author_example": "tests/hydrogen/hydrogen.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/radial-dense-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned radial shooting implementation and author hydrogen example reviewed without copying bodies. Three nuclear charges, all six n<=3 nonrelativistic Coulomb states and two meshes. Analytic energies, normalized Laguerre radial functions P and their derivatives Q, common-sign alignment, independent trapezoidal normalization and radius/inverse-radius moments. Solver status and all finite values checked. No Dirac, arbitrary potentials, Poisson, self-consistent DFT or general high-state accuracy verified.",
      "validation_path": "docs/gams-radial-dense-validation.json",
      "review_path": "docs/gams-radial-dense.md",
      "checks": {
        "eigenproblems": 36,
        "nuclear_charges": [
          1,
          2,
          4
        ],
        "maximum_principal_quantum_number": 3,
        "mesh_intervals": [
          3000,
          4500
        ],
        "mesh_radius_bounds_scaled_by_z": [
          1e-08,
          100
        ],
        "mesh_ratio": 1000000.0,
        "P_reference_entries": 135036,
        "Q_reference_entries": 135036,
        "energy_references": 36,
        "normalization_checks": 36,
        "moment_references": 72,
        "analytical_laguerre_degrees": [
          0,
          1,
          2
        ],
        "common_wavefunction_sign_alignment": true,
        "independent_trapezoidal_integrals": true,
        "max_z_scaled_energy_error": 1e-07,
        "max_sqrt_z_scaled_P_error": 2e-05,
        "max_z_power_1p5_scaled_Q_error": 5e-05,
        "max_normalization_error": 2e-05,
        "max_scaled_moment_error": 2e-05,
        "relativistic_dirac_verified": false,
        "general_potentials_verified": false,
        "self_consistent_dft_verified": false
      },
      "source_sha256": "97df4d73bc45c13f1400b43d8ee3d98f6c072ae299083db797cf9c8b14ece4e5",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dftatom&example=gams-dftatom-hydrogen-reference"
    },
    {
      "id": "athena-dense-reference",
      "name": "gams-athena-dense-reference",
      "package_id": "athena",
      "procedure_id": "athena-dense",
      "gams_code": "K",
      "problem_id": "fixed-dense-four-activation-scalar-reference",
      "path": "fpm_catalog/gams-drivers/athena-dense-reference.f90",
      "revision": "4b81aeac07113628c2c9a476648d5ac2a91b7c91",
      "author_example": "test/test_full_layer.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/radial-dense-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned layer forward/activation implementations and author API test reviewed without copying bodies. Four input widths, three output widths, four activations, bias on/off and dyadic/non-dyadic fixed parameters. Zero, every coordinate basis and mixed inputs are checked with real64 scalar sums and elementary activation identities; exact repeat after other forward calls checks stale state. The persistent input is explicitly non-temporary, correcting an early ownership-related abort retained separately. No training, automatic derivatives, batches, dataset approximation quality or general memory safety verified.",
      "validation_path": "docs/gams-radial-dense-validation.json",
      "review_path": "docs/gams-radial-dense.md",
      "checks": {
        "layers": 192,
        "forward_calls": 2304,
        "output_reference_entries": 4928,
        "exact_replay_entries": 448,
        "input_widths": [
          1,
          2,
          3,
          5
        ],
        "output_widths": [
          1,
          2,
          4
        ],
        "activations": [
          "none",
          "relu",
          "tanh",
          "sigmoid"
        ],
        "bias_settings": [
          false,
          true
        ],
        "weight_patterns": [
          "dyadic",
          "non-dyadic"
        ],
        "inputs_per_layer": 11,
        "zero_and_all_coordinate_basis_inputs_checked": true,
        "real64_scalar_oracle": true,
        "persistent_input_marked_non_temporary": true,
        "max_normalized_output_error": 2e-06,
        "training_verified": false,
        "automatic_derivatives_verified": false,
        "batch_inference_verified": false,
        "dataset_approximation_quality_verified": false,
        "general_memory_safety_verified": false
      },
      "source_sha256": "e4d64b2c8c81c81abda82a20aff3c55f7d3f7e7dee9e1428c3362a083c8f9009",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=athena&example=gams-athena-dense-reference"
    },
    {
      "id": "fiats-inference-reference",
      "name": "gams-fiats-inference-reference",
      "package_id": "fiats",
      "procedure_id": "fiats-inference",
      "gams_code": "K",
      "problem_id": "fixed-multilayer-scalar-reference",
      "path": "fpm_catalog/gams-drivers/fiats-inference-reference.f90",
      "revision": "7d564b86389460555d6f7d9b7a6b5198588af9df",
      "author_example": "example/write-read-infer.F90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/inference-pairs-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned Fiats inference implementation and author constructor/inference example reviewed without copying bodies. Four irregular multilayer architectures, ReLU/sigmoid/swish, dyadic/non-dyadic fixed parameters, zero/nonzero biases, zero/basis/mixed inputs, finite padding sentinels and exact repeat. Scalar real64 oracle propagates every layer, including the activated output, using the actual native-real32 coefficients. Default identity range maps only; no training, derivatives, file conversion, parallel scaling or dataset approximation-quality claim.",
      "validation_path": "docs/gams-inference-pairs-validation.json",
      "review_path": "docs/gams-inference-pairs.md",
      "checks": {
        "networks": 48,
        "inference_calls": 576,
        "output_reference_entries": 792,
        "exact_replay_entries": 72,
        "architectures": [
          [
            1,
            2,
            1
          ],
          [
            2,
            3,
            2
          ],
          [
            3,
            2,
            1
          ],
          [
            2,
            4,
            3,
            2
          ]
        ],
        "activations": [
          "relu",
          "sigmoid",
          "swish"
        ],
        "bias_patterns": [
          "zero",
          "nonzero"
        ],
        "parameter_patterns": [
          "dyadic",
          "non-dyadic"
        ],
        "inputs_per_network": 11,
        "native_decimal_precision": 6,
        "real64_scalar_oracle": true,
        "padding_sentinel": 17,
        "output_layer_activated": true,
        "identity_range_maps_only": true,
        "max_normalized_output_error": 5e-06,
        "training_verified": false,
        "derivatives_verified": false,
        "model_file_roundtrip_verified": false,
        "nonidentity_range_maps_verified": false,
        "dataset_approximation_quality_verified": false
      },
      "source_sha256": "e2dce19b09920b9f48e9270a13f850518d1723a797dadd9c5c92f885f4910ca3",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fiats&example=gams-fiats-inference-reference"
    },
    {
      "id": "ennuf-inference-reference",
      "name": "gams-ennuf-inference-reference",
      "package_id": "ennuf",
      "procedure_id": "ennuf-inference",
      "gams_code": "K",
      "problem_id": "fixed-multilayer-scalar-reference",
      "path": "fpm_catalog/gams-drivers/ennuf-inference-reference.f90",
      "revision": "2555a7f1560ef3cb7cf707221fa5bb1b5334ee6f",
      "author_example": "test/testennuf/example_models/pytorch_simple_mlp.py",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/inference-pairs-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; pinned Fortran dense/activation implementation, author generation example and existing audited generated model reviewed without copying bodies. Four architectures, one/two/five channel rows, five activations, optional biases and dyadic/non-dyadic fixed weights. Scalar real64 all-stage oracle, stabilized softmax reference and row normalization, plus 81 dyadic-grid evaluations of the cached generated model against its closed-form piecewise-affine function. All four ReLU regions covered. No new generation, Python inference, TensorFlow/PyTorch conversion, convolution, extreme-logit softmax or training verified.",
      "validation_path": "docs/gams-inference-pairs-validation.json",
      "review_path": "docs/gams-inference-pairs.md",
      "checks": {
        "pipeline_batches": 2640,
        "dense_calls": 5940,
        "activation_calls": 5940,
        "all_stage_reference_entries": 35200,
        "final_layer_reference_entries": 10560,
        "architectures": [
          [
            1,
            2,
            1
          ],
          [
            2,
            3,
            2
          ],
          [
            3,
            2,
            1
          ],
          [
            2,
            4,
            3,
            2
          ]
        ],
        "channels": [
          1,
          2,
          5
        ],
        "activations": [
          "relu",
          "leakyrelu",
          "sigmoid",
          "tanh",
          "softmax"
        ],
        "leaky_relu_alpha": 0.125,
        "inputs_per_configuration": 11,
        "bias_present_and_absent_checked": true,
        "real64_scalar_oracle": true,
        "stable_softmax_reference": true,
        "max_normalized_output_error": 5e-06,
        "max_softmax_row_sum_error": 2e-06,
        "generated_model_evaluations": 81,
        "generated_model_relu_region_counts": [
          21,
          29,
          14,
          17
        ],
        "generated_asset_path": "fpm_catalog/generated/ennuf-2555a7f1560ef3cb7cf707221fa5bb1b5334ee6f.json",
        "generated_asset_sha256": "6f7fc6b3b9943943fd294017179004dfc37567dfdd637aabed2d0908dbdb9a7b",
        "external_model_conversion_verified": false,
        "convolution_verified": false,
        "extreme_softmax_logits_verified": false,
        "training_verified": false,
        "dataset_approximation_quality_verified": false
      },
      "source_sha256": "6d790ee3ae273d069b768262683a4e4a42746902f49cb9d54312f9ee31bb2ce0",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ennuf&example=gams-ennuf-inference-reference"
    },
    {
      "id": "spherepack-helmholtz-reference",
      "name": "gams-spherepack-helmholtz-reference",
      "package_id": "spherepack",
      "procedure_id": "spherepack-api",
      "gams_code": "I2",
      "problem_id": "known-spherical-harmonic-helmholtz",
      "path": "fpm_catalog/gams-drivers/spherepack-helmholtz-reference.f90",
      "revision": "e80da29462c5987162a0884baaab7434d0215467",
      "author_example": "examples/helmsph.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/helmholtz-streams-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; ten real Cartesian spherical harmonics through degree three plus a mixed field. Gaussian and regular grids at three resolutions, three positive Helmholtz shifts and zero-mean Poisson with a zero-constant gauge. Exact Laplace-Beltrami eigenvalues supply independent right-hand sides and pointwise solution references; no finite-difference or solver-produced oracle. Resonant shifts and vector PDEs unverified.",
      "validation_path": "docs/gams-helmholtz-streams-validation.json",
      "review_path": "docs/gams-helmholtz-streams.md",
      "checks": {
        "solves": 258,
        "grid_point_references": 86000,
        "grid_types": [
          "Gaussian",
          "regular"
        ],
        "grids": [
          [
            9,
            16
          ],
          [
            13,
            24
          ],
          [
            17,
            32
          ]
        ],
        "shifts": [
          0,
          0.25,
          1,
          3.5
        ],
        "max_normalized_solution_error": 2e-11,
        "nonzonal_modes_verified": true,
        "zero_mean_poisson_verified": true,
        "resonant_shifts_verified": false
      },
      "source_sha256": "93e7357ed3a4ad1a3b9930fe3b54fb60beff151481c316049dad2add1d4edcee",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=spherepack&example=gams-spherepack-helmholtz-reference"
    },
    {
      "id": "rng-xoroshiro-reference",
      "name": "gams-rng-xoroshiro-reference",
      "package_id": "rng-fortran",
      "procedure_id": "rng-uniform",
      "gams_code": "L6a21",
      "problem_id": "unsigned-stream-and-matrix-jump-oracle",
      "path": "fpm_catalog/gams-drivers/rng-xoroshiro-reference.f90",
      "revision": "5ead95f436323d07fc82acc3613f66550947f256",
      "author_example": "example.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/helmholtz-streams-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer with unbounded-Python unsigned arithmetic golden vectors. Five nonzero seeds and no/default/two explicit jumps; independent jump matrix exponentiation to 2**64 avoids upstream polynomial constants. Interleaved integer/uniform APIs, exact 52-bit conversion, prefixes, modular rolling checksums and seeded restart. GNU 16 cached -fwrapv library only; no statistical quality, thread independence or normal-reseeding fix.",
      "validation_path": "docs/gams-helmholtz-streams-validation.json",
      "review_path": "docs/gams-helmholtz-streams.md",
      "checks": {
        "streams": 15,
        "samples_per_stream": 4096,
        "integer_draws": 61440,
        "uniform_draws": 61440,
        "exact_prefix_entries": 120,
        "independent_hashes": 30,
        "restart_entries": 120,
        "jump_matrix_power": 64,
        "uniform_bits": 52,
        "statistical_quality_verified": false,
        "normal_reseeding_fixed": false,
        "reference_files": {
          "fpm_catalog/gams-drivers/references/xoroshiro_vectors.py": "a4bb87adf0b2e60bd3db7217734796d43b282167c1bf8e6244e09926f8082148",
          "fpm_catalog/gams-drivers/references/xoroshiro-vectors.json": "6bafaf38d1856cb5316bb7ebe3ab6f93395841f101b80d0e932946961fd6fde2"
        }
      },
      "source_sha256": "6bd90b4a24845eb016e2e6b7df2e1050deec5302b991566e73b12c3ebe600f78",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rng-fortran&example=gams-rng-xoroshiro-reference"
    },
    {
      "id": "friction-lugre-reference",
      "name": "gams-friction-lugre-reference",
      "package_id": "friction",
      "procedure_id": "friction-lugre-state",
      "gams_code": "I1",
      "problem_id": "piecewise-constant-lugre-closed-form",
      "path": "fpm_catalog/gams-drivers/friction-lugre-reference.f90",
      "revision": "8e75dcac26f47417a439adfcbaa24834105d89fe",
      "author_example": "examples/lugre_example.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/friction-torch-drivers-MIT.txt"
      ],
      "modifications": "Public LuGre constitutive internal-state ODE, distinct from the private fitting/interpolation callbacks in friction_core. Dedicated driver integrates constant-velocity segments with reversals, rest, changing segment loads and nonzero initial states against a closed-form exponential solution. Force histories and state derivatives are independently checked. No parameter-fitting or private callback claim.",
      "validation_path": "docs/gams-friction-torch-validation.json",
      "review_path": "docs/gams-friction-torch.md",
      "checks": {
        "histories": 72,
        "segments": 288,
        "reference_points": 1440,
        "parameter_sets": 4,
        "shape_parameters": [
          1,
          2,
          3,
          4
        ],
        "initial_states": [
          -0.0625,
          0,
          0.0625
        ],
        "velocity_reversals_verified": true,
        "rest_segments_verified": true,
        "load_changes_at_segment_boundaries": true,
        "max_normalized_state_error": 2e-08,
        "max_normalized_derivative_error": 2e-13,
        "max_normalized_force_error": 2e-07,
        "private_fit_callbacks_verified": false,
        "parameter_fitting_verified": false
      },
      "source_sha256": "1dd30adb88bc2585c5d6172f83f0b55b2bff68c219854775a3714cf62101e854",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=friction&example=gams-friction-lugre-reference"
    },
    {
      "id": "ftorch-affine-reference",
      "name": "gams-ftorch-affine-reference",
      "package_id": "ftorch",
      "procedure_id": "ftorch-inference",
      "gams_code": "K",
      "problem_id": "embedded-affine-tensor-layout-reference",
      "path": "fpm_catalog/gams-drivers/ftorch-affine-reference.f90",
      "revision": "b1b1bb3b9138642ac51d55608e7f3af9070c43f1",
      "author_example": "examples/02_SimpleNet/simplenet_infer_fortran.f90",
      "reuse": "independent",
      "license": "MIT (driver only; upstream package terms remain separate)",
      "license_files": [
        "fpm_catalog/gams-drivers/licenses/friction-torch-drivers-MIT.txt"
      ],
      "modifications": "Independent API consumer; existing playground-owned affine TorchScript fixture reused as data. Ten REAL32/REAL64 rank 1/2/3 tensor layouts including asymmetric axis permutations, in-place input updates and replay, exact dyadic scalar references, input metadata and immutability checked. No new model generation, nonlinear model, gradients, training or GPU claim.",
      "validation_path": "docs/gams-friction-torch-validation.json",
      "review_path": "docs/gams-friction-torch.md",
      "checks": {
        "tensor_configurations": 10,
        "forward_calls": 130,
        "scalar_reference_entries": 1742,
        "ranks": [
          1,
          2,
          3
        ],
        "kinds": [
          "real32",
          "real64"
        ],
        "asymmetric_permutations": [
          [
            2,
            1
          ],
          [
            2,
            3,
            1
          ]
        ],
        "input_metadata_checked": [
          "rank",
          "shape",
          "stride",
          "dtype"
        ],
        "input_immutability_checked": true,
        "exact_dyadic_reference": true,
        "existing_model_sha256": "13b09124005d3c931b04a5da83624973b3f78b231a579217932469ab8179077c",
        "nonlinear_model_verified": false,
        "training_verified": false,
        "gpu_verified": false
      },
      "source_sha256": "d3a2d7792084293edf415796d893aff0b431c26bddf59cd95e18cb3b96224509",
      "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ftorch&example=gams-ftorch-affine-reference"
    }
  ],
  "projects": [
    {
      "id": "github:0382/argparse-f",
      "name": "argparse-f",
      "repository": {
        "host": "github",
        "owner": "0382",
        "name": "argparse-f",
        "url": "https://github.com/0382/argparse-f"
      },
      "description": "Object-oriented parsing of typed command-line options, defaults and named arguments.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Command-line tools"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "argparse",
          "command-line",
          "fortran",
          "modern-fortran",
          "oop"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 23,
        "stars_updated_at": "2026-10-28T23:25:51.211120+00:00"
      },
      "curation": {
        "topics": [
          "argument-parsing",
          "command-line-options",
          "command-line-parsing"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Typed process command-line parsing. The main launches itself once with fixed example arguments, then checks an integer, double, string, logical flag and untouched default. No supplied files or playground argument-setting changes are needed. Error exits, positional/named arguments, truncation and every syntax variant are not covered.",
        "reviewed_revision": "435cc1676d6064162a3c36b91f1aa50d926fdd45",
        "procedures": [
          {
            "id": "argparse-f-options",
            "package_id": "argparse-f",
            "revision": "435cc1676d6064162a3c36b91f1aa50d926fdd45",
            "module": "argparse",
            "procedure": "argparser%parse / typed option getters",
            "gams_codes": [
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Typed process command-line parsing. The main launches itself once with fixed example arguments, then checks an integer, double, string, logical flag and untouched default. No supplied files or playground argument-setting changes are needed. Error exits, positional/named arguments, truncation and every syntax variant are not covered.",
            "evidence": [
              {
                "path": "src/argparse-f.f90",
                "sha256": "8223c2b84b512164df7a70b8b3583b8abddd3b24bd979874fe9a518c8692526a",
                "line": 143
              }
            ],
            "author_examples": [
              {
                "path": "test/check.f90",
                "sha256": "e0dadf4984269ec263260b31889ea01dfc73baf86f5f1378a71fd8c42705cef6"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "argparse-f",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=argparse-f",
        "package_revision": "435cc1676d6064162a3c36b91f1aa50d926fdd45",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/argparse-f.f90",
          "sha256": "ca4c6d59fbd34ff7f74a22b5b45a2973965218bc862553dd2d5554dd26571a82"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "435cc1676d6064162a3c36b91f1aa50d926fdd45",
        "verified_at": "2026-10-28T23:33:50.254249+00:00",
        "packages": []
      }
    },
    {
      "id": "github:14ngiestas/fortran-tokenizer",
      "name": "fortran-tokenizer",
      "repository": {
        "host": "github",
        "owner": "14NGiestas",
        "name": "fortran-tokenizer",
        "url": "https://github.com/14NGiestas/fortran-tokenizer"
      },
      "description": "Customizable tokenization with validation and ignore callbacks.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Expression parsing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "parsers",
          "strings",
          "tokenizer"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 4,
        "stars_updated_at": "2026-10-29T00:20:04.805639+00:00"
      },
      "curation": {
        "topics": [
          "parsing",
          "text-processing",
          "tokenization"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Customizable text tokenization. The checked main uses a module callback to split comma, space and tab-separated fields, verifies all three tokens and checks clearing the list. This is lexical splitting, not expression evaluation. No source edits. Malformed input, every callback combination and token object storage are not covered.",
        "reviewed_revision": "11ad73ea6102f86593bf2b372d56bf9fbedaebc7",
        "procedures": [
          {
            "id": "tokenizer-fields",
            "package_id": "fortran-tokenizer",
            "revision": "11ad73ea6102f86593bf2b372d56bf9fbedaebc7",
            "module": "fortran_tokenizer",
            "procedure": "tokenizer_t%tokenize",
            "gams_codes": [
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Customizable text tokenization. The checked main uses a module callback to split comma, space and tab-separated fields, verifies all three tokens and checks clearing the list. This is lexical splitting, not expression evaluation. No source edits. Malformed input, every callback combination and token object storage are not covered.",
            "evidence": [
              {
                "path": "src/tokenizer.f90",
                "sha256": "b7eb5490b37a5f64f82752969fa05d7535f2375da76be1dc06fb547135634008",
                "line": 1
              }
            ],
            "author_examples": []
          }
        ]
      },
      "playground": {
        "package_id": "fortran-tokenizer",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-tokenizer",
        "package_revision": "11ad73ea6102f86593bf2b372d56bf9fbedaebc7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-tokenizer.f90",
          "sha256": "8b9bc4212dcbf78bc1358246225526de629e0ebecface3ff2c29552e5e98f8c6"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "11ad73ea6102f86593bf2b372d56bf9fbedaebc7",
        "verified_at": "2026-10-29T00:34:23.456367+00:00",
        "packages": []
      }
    },
    {
      "id": "github:14ngiestas/shunting-yard-fortran",
      "name": "shunting-yard-fortran",
      "repository": {
        "host": "github",
        "owner": "14NGiestas",
        "name": "shunting-yard-fortran",
        "url": "https://github.com/14NGiestas/shunting-yard-fortran"
      },
      "description": "Experimental expression parser with token callbacks and fixed operator precedences.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Expression parsing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "modern-fortran",
          "parsing",
          "shunting-yard-algorithm"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 14,
        "stars_updated_at": "2026-10-28T23:25:51.211120+00:00"
      },
      "curation": {
        "topics": [
          "expression-parsing",
          "operator-precedence",
          "shunting-yard-algorithm",
          "tokenization"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Token-based expression parsing with user-supplied callbacks. The main checks precedence, parentheses, right-associative exponentiation, square root and unary minus against five exact results. A checksum-guarded edit moves a host-independent library callback to module scope after the original layout crashed in the sandbox; parsing rules are unchanged. The author documents global registrations, fixed precedences and missing syntax validation; concurrent parsers and malformed expressions are not supported by this example.",
        "reviewed_revision": "ff62d83502bc5fdf77f2750c3538b8634a543b91",
        "procedures": [
          {
            "id": "shunting-yard-parser",
            "package_id": "shunting-yard-fortran",
            "revision": "ff62d83502bc5fdf77f2750c3538b8634a543b91",
            "module": "parser_module",
            "procedure": "parser_t%parse / register_operator",
            "gams_codes": [
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Token-based expression parsing with user-supplied callbacks. The main checks precedence, parentheses, right-associative exponentiation, square root and unary minus against five exact results. A checksum-guarded edit moves a host-independent library callback to module scope after the original layout crashed in the sandbox; parsing rules are unchanged. The author documents global registrations, fixed precedences and missing syntax validation; concurrent parsers and malformed expressions are not supported by this example.",
            "evidence": [
              {
                "path": "src/parser.f90",
                "sha256": "031c159946ca0d9214c2b82a9021bc926c577f5fdf052d01d3e693b61980b84a",
                "line": 105
              }
            ],
            "author_examples": [
              {
                "path": "app/main.f90",
                "sha256": "e6a66c253ee988f8c2d76f2dc8362f6bb1f0f6e05c744090216b859439cf760c"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "shunting-yard-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=shunting-yard-fortran",
        "package_revision": "ff62d83502bc5fdf77f2750c3538b8634a543b91",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/shunting-yard-fortran.f90",
          "sha256": "b0a9d3f49c2a5165cc45184c21fd6d137fa1e1c2f461aa5f032112445b3cbb33"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "ff62d83502bc5fdf77f2750c3538b8634a543b91",
        "verified_at": "2026-10-28T23:33:50.254249+00:00",
        "packages": [
          {
            "id": "github:14ngiestas/fortran-tokenizer",
            "repository": "14NGiestas/fortran-tokenizer",
            "revision": "4ed3bac4132a9b344b3c327f579ae4919a61393d"
          }
        ]
      }
    },
    {
      "id": "github:2decomp-fft/2decomp-fft",
      "name": "2decomp-fft",
      "repository": {
        "host": "github",
        "owner": "2decomp-fft",
        "name": "2decomp-fft",
        "url": "https://github.com/2decomp-fft/2decomp-fft"
      },
      "description": "CPU 3-D Fourier transforms with the built-in backend; checked single-process example.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Fourier transforms"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fast-fourier-transform",
          "finite-difference-method",
          "pencil-decomposition"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 43,
        "stars_updated_at": "2026-10-30T00:56:25.416261+00:00"
      },
      "curation": {
        "topics": [
          "fft",
          "mpi",
          "multidimensional-fft",
          "parallel-computing"
        ],
        "gams_codes": [
          "J",
          "J1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The upstream CMake-selected CPU library uses the built-in generic Fourier transform backend, double precision and pinned MPICH. OpenMP is disabled. The example adapts the author-provided complex FFT example, initializes exactly one MPI process with self/shared-memory UCX transports, transforms an 8-by-6-by-4 complex impulse, independently checks that all forward coefficients equal one, and verifies inverse reconstruction after normalization. J1 covers the multidimensional Fourier transform. Multiple MPI processes and distributed performance are not verified. Local exports need compatible MPI development libraries and locally appropriate include/link flags. BSD-3-Clause notices are retained.",
        "reviewed_revision": "4cb38be477b9457cfa5f5624c8fe09387968b190",
        "procedures": [
          {
            "id": "2decomp-fft-c2c",
            "package_id": "2decomp-fft",
            "revision": "4cb38be477b9457cfa5f5624c8fe09387968b190",
            "module": "decomp_2d_fft",
            "procedure": "decomp_2d_fft_3d",
            "gams_codes": [
              "J1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The upstream CMake-selected CPU library uses the built-in generic Fourier transform backend, double precision and pinned MPICH. OpenMP is disabled. The example adapts the author-provided complex FFT example, initializes exactly one MPI process with self/shared-memory UCX transports, transforms an 8-by-6-by-4 complex impulse, independently checks that all forward coefficients equal one, and verifies inverse reconstruction after normalization. J1 covers the multidimensional Fourier transform. Multiple MPI processes and distributed performance are not verified. Local exports need compatible MPI development libraries and locally appropriate include/link flags. BSD-3-Clause notices are retained.",
            "evidence": [
              {
                "path": "src/fft_generic.f90",
                "sha256": "f00f1a326e1a717024b12960f1d9ee4171388052705accd8b6c188999038168a",
                "line": 1
              },
              {
                "path": "src/glassman.f90",
                "sha256": "31276227d36c735545383eb64f6ea95157e46813c6ba53b8d5132c8895511eca",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/fft_physical_x/fft_c2c_x.f90",
                "sha256": "4b81ecc502e2e7902ea7dd27de9aeb72eab03b05250622bab7b33d7734b39326"
              }
            ],
            "driver_id": "decomp-3d-reference"
          }
        ],
        "numerical_review": {
          "revision": "4cb38be477b9457cfa5f5624c8fe09387968b190",
          "archive_sha256": "6522f08ae48a58c93b93378fd3b54ac2f0128f98bcc274b53b323a0a640e15f4",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "2decomp-fft-c2c"
          ],
          "notes": "The upstream CMake-selected CPU library uses the built-in generic Fourier transform backend, double precision and pinned MPICH. OpenMP is disabled. The example adapts the author-provided complex FFT example, initializes exactly one MPI process with self/shared-memory UCX transports, transforms an 8-by-6-by-4 complex impulse, independently checks that all forward coefficients equal one, and verifies inverse reconstruction after normalization. J1 covers the multidimensional Fourier transform. Multiple MPI processes and distributed performance are not verified. Local exports need compatible MPI development libraries and locally appropriate include/link flags. BSD-3-Clause notices are retained."
        }
      },
      "playground": {
        "package_id": "2decomp-fft",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=2decomp-fft",
        "package_revision": "4cb38be477b9457cfa5f5624c8fe09387968b190",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/2decomp-fft.f90",
          "sha256": "23e31566e81c01c70e36ea905d3917ab064eb561edb3893142d8584350b04fab"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "4cb38be477b9457cfa5f5624c8fe09387968b190",
        "verified_at": "2026-10-30T01:09:50.140826+00:00",
        "packages": []
      }
    },
    {
      "id": "github:acbbullock/io-fortran-library",
      "name": "io-fortran-library",
      "repository": {
        "host": "github",
        "owner": "acbbullock",
        "name": "IO-Fortran-Library",
        "url": "https://github.com/acbbullock/IO-Fortran-Library"
      },
      "description": "High-level numeric array file I/O, dynamic strings, and numeric/string conversion.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Files and processes"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "csv",
          "fortran",
          "fortran-package-manager",
          "input-output",
          "modern-fortran"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 17,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "file-io",
          "strings",
          "tabular-data",
          "type-conversion"
        ],
        "gams_codes": [
          "A",
          "A6",
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "15bc3557c36adc174abbd9a077e0686dc11cc4af",
        "procedures": [
          {
            "id": "io-fortran-library-to-file",
            "package_id": "io-fortran-library",
            "revision": "15bc3557c36adc174abbd9a077e0686dc11cc4af",
            "module": "io_fortran_lib",
            "procedure": "to_file, from_file",
            "gams_codes": [
              "N1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Numeric array file I/O; conversion and formatting capabilities are not mathematical solvers. Dedicated N1 consumer checks eight real64 matrix files across four shapes and two delimiters. Independent native Fortran parsing checks rows, delimiter counts and values, then library round trips and a hand-written CSV test the reader independently. Missing-file status/message and cleanup are checked. Headers, locale options, complex/integer arrays, other ranks, nonfinite values and formatting modes beyond exponential output are not verified.",
            "evidence": [
              {
                "path": "src/modules/io_fortran_lib_mod.f90",
                "sha256": "1c2fcc3ee6ff94adcc4c9539e44ff77cee64421210c04e557a47812cd8553c31",
                "line": 982
              }
            ],
            "author_examples": [
              {
                "path": "test/units/file-test-c.f90",
                "sha256": "7392fd429958efa0dea88db1a372b0d533ce770fdc3eb4c517818fb93ddf3c73"
              }
            ],
            "driver_id": "io-numeric-file-reference"
          }
        ],
        "numerical_review": {
          "revision": "15bc3557c36adc174abbd9a077e0686dc11cc4af",
          "archive_sha256": "edfa815c5034803b37586324b0a8b49ffafe362bcd85fb6f8e91f5816bede6c2",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "io-fortran-library-to-file"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "io-fortran-library",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=io-fortran-library",
        "package_revision": "15bc3557c36adc174abbd9a077e0686dc11cc4af",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/io-fortran-library.f90",
          "sha256": "fb89db17c66b35d2ad9d19709a3dcfb791ca4a324241b390b66fb00e9611e2ce"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "15bc3557c36adc174abbd9a077e0686dc11cc4af",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:alex-robinson/ncio",
      "name": "ncio",
      "repository": {
        "host": "github",
        "owner": "alex-robinson",
        "name": "ncio",
        "url": "https://github.com/alex-robinson/ncio"
      },
      "description": "Convenient NetCDF array input and output with dimensions, attributes and metadata.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "MIT (source header)",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 24,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "file-io",
          "metadata",
          "netcdf",
          "scientific-data"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "d76d39df3dcaa892bff5d2b5b24770f3dc65abaa"
      },
      "playground": {
        "package_id": "ncio",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ncio",
        "package_revision": "d76d39df3dcaa892bff5d2b5b24770f3dc65abaa",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ncio.f90",
          "sha256": "95fe35d43248d10cd9a2b95492c52b0bbc8d34627566fa763ba53551686094d4"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d76d39df3dcaa892bff5d2b5b24770f3dc65abaa",
        "verified_at": "2026-10-27T23:25:35.966397+00:00",
        "packages": []
      }
    },
    {
      "id": "github:apes-suite/aotus",
      "name": "aotus",
      "repository": {
        "host": "github",
        "owner": "apes-suite",
        "name": "aotus",
        "url": "https://github.com/apes-suite/aotus"
      },
      "description": "Read Lua configuration scalars, tables and functions from Fortran.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Configuration"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "lua"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 10,
        "stars_updated_at": "2026-10-29T19:26:39.127603+00:00"
      },
      "curation": {
        "topics": [
          "configuration",
          "interoperability",
          "lua",
          "parsing",
          "tables"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Mixed C/Fortran source set selected from the upstream Waf library lists, wrapped for FPM with the bundled Lua 5.4.8 core and libraries, the C dump wrapper and GNU-supported extended/quad precision module variants. Lua command-line interpreter/compiler executables and upstream tests are excluded. Sources are unchanged; the operator-only wrapper now permits explicitly listed locked C files, retaining old adapter identities and the ordinary downloader/archive limits. The consumer creates a small Lua configuration, checks a computed integer, a double-precision scalar, two named nested-table entries and a missing-key default with error bits, closes the state and deletes its file. Broader scripting, dump/reload callbacks, every numeric kind and sandbox-restricted system operations are not verified.",
        "reviewed_revision": "2c1ec4d4629a4915929e82e873ceebf623648877",
        "procedures": [
          {
            "id": "aotus-config",
            "package_id": "aotus",
            "revision": "2c1ec4d4629a4915929e82e873ceebf623648877",
            "module": "aotus_module / aot_table_module",
            "procedure": "open_config_file / aot_get_val / aot_table_open / close_config",
            "gams_codes": [
              "N1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Mixed C/Fortran source set selected from the upstream Waf library lists, wrapped for FPM with the bundled Lua 5.4.8 core and libraries, the C dump wrapper and GNU-supported extended/quad precision module variants. Lua command-line interpreter/compiler executables and upstream tests are excluded. Sources are unchanged; the operator-only wrapper now permits explicitly listed locked C files, retaining old adapter identities and the ordinary downloader/archive limits. The consumer creates a small Lua configuration, checks a computed integer, a double-precision scalar, two named nested-table entries and a missing-key default with error bits, closes the state and deletes its file. Broader scripting, dump/reload callbacks, every numeric kind and sandbox-restricted system operations are not verified.",
            "evidence": [
              {
                "path": "source/aotus_module.f90",
                "sha256": "64a474175b092ca4df3c0edf5dd7f9a3cf29bd769cb3446852d9d1152fee2e00",
                "line": 1
              },
              {
                "path": "source/aot_table_module.f90",
                "sha256": "76c53070a7b631d6ff484b2f70d492214a4ca8547ef58e0455b9572dd5bb5edf",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "sample/aotus_sample.f90",
                "sha256": "6a6333125cd8b1dd6738298c18c41ac63030e0e492cb567f2fba60ca58af611c"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "aotus",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=aotus",
        "package_revision": "2c1ec4d4629a4915929e82e873ceebf623648877",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/aotus.f90",
          "sha256": "2326a22cc1454df677f25c6b06669dbab9be33677362805316851ae9886b99b3"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2c1ec4d4629a4915929e82e873ceebf623648877",
        "verified_at": "2026-10-29T19:30:07.012330+00:00",
        "packages": []
      }
    },
    {
      "id": "github:aradi/fycollections",
      "name": "fycollections",
      "repository": {
        "host": "github",
        "owner": "aradi",
        "name": "fycollections",
        "url": "https://github.com/aradi/fycollections"
      },
      "description": "Fypp collection templates with precompiled author IntList and StringList specializations; append, insert, delete, retrieve and search typed lists.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data structures"
      ],
      "license": {
        "label": "BSD-2-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 7,
        "stars_updated_at": "2026-10-30T18:33:11.712116+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "data-structures",
          "fypp",
          "generic-programming",
          "lists",
          "searching"
        ],
        "gams_codes": [
          "N",
          "N4",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The original FyCollections backend and author examples/list/type_intlist.fpp and type_stringlist.fpp are generated with Fypp 3.2 without changing their algorithms. Six generated Fortran files, checksums of all template/license inputs, and xgenerate_fycollections.py retain a reproducible recipe. The package supplies the author IntList and StringList specializations, not automatic runtime generation for arbitrary user types. Its operator FPM wrapper uses version 0.0.0 to identify no inferred upstream release; the source is pinned by commit. The checked main adapts the author integer/string list examples and checks append, insertion, retrieval, successful/missing searches, integer deletion and allocatable-list finalization. N4/N5 cover storage containers and searching. Pointer/array list specializations and the complete upstream tests are not verified. BSD-2-Clause notices are retained.",
        "reviewed_revision": "f67b874669e63834f30cd83f2b96889072b4eec7",
        "procedures": [
          {
            "id": "fycollections-demo-api",
            "package_id": "fycollections",
            "revision": "f67b874669e63834f30cd83f2b96889072b4eec7",
            "module": "type_intlist / type_stringlist",
            "procedure": "IntList_init / StringList_init / append / insert / get / find / delete",
            "gams_codes": [
              "N4",
              "N5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The original FyCollections backend and author examples/list/type_intlist.fpp and type_stringlist.fpp are generated with Fypp 3.2 without changing their algorithms. Six generated Fortran files, checksums of all template/license inputs, and xgenerate_fycollections.py retain a reproducible recipe. The package supplies the author IntList and StringList specializations, not automatic runtime generation for arbitrary user types. Its operator FPM wrapper uses version 0.0.0 to identify no inferred upstream release; the source is pinned by commit. The checked main adapts the author integer/string list examples and checks append, insertion, retrieval, successful/missing searches, integer deletion and allocatable-list finalization. N4/N5 cover storage containers and searching. Pointer/array list specializations and the complete upstream tests are not verified. BSD-2-Clause notices are retained.",
            "evidence": [
              {
                "path": "include/fycollections.fypp",
                "sha256": "0252f0b29d8fda911c9aefd4363e84d2134ff58e2dc9792a41b8f74b6d4a63f1",
                "line": 1
              },
              {
                "path": "lib/ptrlist.fpp",
                "sha256": "aee8957500e62e5bf0275a1ef1733f3411e331326afb1cebc1c4d5a834a120cb",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/list/intlist_example.fpp",
                "sha256": "454e61f7cdccbdf39b941a49c5da87032464873bfcc85073d4d520d7044b3eca",
                "line": 1
              },
              {
                "path": "examples/list/stringlist_example.fpp",
                "sha256": "20648ca382bbaaff9efa5783c7cb0f1b07893136fb527c8fff9ecfae99c5811b",
                "line": 1
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "fycollections",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fycollections",
        "package_revision": "f67b874669e63834f30cd83f2b96889072b4eec7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fycollections.f90",
          "sha256": "343f9331750636f784db6b713d6bf0c11d855c9f4f0855c9cf0ae02249169fdf"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f67b874669e63834f30cd83f2b96889072b4eec7",
        "verified_at": "2026-10-30T18:34:32.649899+00:00",
        "packages": []
      }
    },
    {
      "id": "github:aradi/rearrayfx",
      "name": "rearrayfx",
      "repository": {
        "host": "github",
        "owner": "aradi",
        "name": "rearrayfx",
        "url": "https://github.com/aradi/rearrayfx"
      },
      "description": "Educational growable real arrays with spare capacity to reduce reallocations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "BSD-2-Clause-Patent",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T22:42:25.593426+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "dynamic-arrays",
          "growable-arrays",
          "storage-management"
        ],
        "gams_codes": [
          "N",
          "N4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Growable real rank-two arrays backed by spare capacity. The main checks data preservation across growth within spare capacity, reallocation, shrinking and plain-array assignment. This proof of concept is not a general-purpose container or a test of copying between container instances.",
        "reviewed_revision": "be1a7b08e43b358c8ed27fa80db7896767eb9f6d",
        "procedures": [
          {
            "id": "rearrayfx-storage",
            "package_id": "rearrayfx",
            "revision": "be1a7b08e43b358c8ed27fa80db7896767eb9f6d",
            "module": "rearrayfx",
            "procedure": "rearray_real64_r2%allocate / assign_array",
            "gams_codes": [
              "N4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Growable real rank-two arrays backed by spare capacity. The main checks data preservation across growth within spare capacity, reallocation, shrinking and plain-array assignment. This proof of concept is not a general-purpose container or a test of copying between container instances.",
            "evidence": [
              {
                "path": "src/rearrayfx.f90",
                "sha256": "4dc832f9a2bf2ef9d2a31b6a790b9cb3e01afd78021c8665764a02e2dd53b76d",
                "line": 33
              }
            ],
            "author_examples": [
              {
                "path": "app/main.f90",
                "sha256": "ab06c4a47886066568aabf5bedfe7234564998eac75c699406ef13980ce06942"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "rearrayfx",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rearrayfx",
        "package_revision": "be1a7b08e43b358c8ed27fa80db7896767eb9f6d",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/rearrayfx.f90",
          "sha256": "42ab029721bf925f67b012d87827aab737d3fee492266cfd88919d16e86b892f"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "be1a7b08e43b358c8ed27fa80db7896767eb9f6d",
        "verified_at": "2026-10-28T22:42:59.624262+00:00",
        "packages": []
      }
    },
    {
      "id": "github:archaeologic-inc/rngff",
      "name": "rngff",
      "repository": {
        "host": "github",
        "owner": "Archaeologic-Inc",
        "name": "rngff",
        "url": "https://github.com/Archaeologic-Inc/rngff"
      },
      "description": "A common object-oriented interface to pseudorandom number generators.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Random numbers"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "random",
          "random-number-generator",
          "rng"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 8,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "pseudorandom",
          "random-numbers",
          "reproducibility"
        ],
        "gams_codes": [
          "L",
          "L6",
          "L6a",
          "L6a21"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "8eccd1479f35159922a85db25a39bcd58a0c3faa",
        "procedures": [
          {
            "id": "rngff-linear-congruential-t",
            "package_id": "rngff",
            "revision": "8eccd1479f35159922a85db25a39bcd58a0c3faa",
            "module": "rngff",
            "procedure": "linear_congruential_t%next",
            "gams_codes": [
              "L6a21"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Combined linear congruential generator with explicit two-seed state. The real64 overload widens a real32 draw. The checked driver independently evaluates both modular recurrences in int64, verifies states and real32-rounded outputs for 1000 steps, and checks exact replay.",
            "evidence": [
              {
                "path": "src/rngff/linear_congruential_m.f90",
                "sha256": "b630229f4e5e50ae2cd5010d5c3f82878a2dea6088a217f7e9ee25fb160e30f5",
                "line": 14
              }
            ],
            "author_examples": [
              {
                "path": "test/lcg_test.f90",
                "sha256": "06ea12c4e2dc7e51f273043b36c6085965f0fe3e495ebc4bc6144c85fb29f9c7"
              }
            ],
            "driver_id": "rngff-lcg-reference-sequence"
          }
        ],
        "numerical_review": {
          "revision": "8eccd1479f35159922a85db25a39bcd58a0c3faa",
          "archive_sha256": "d20c2dd09772d2b9017f99ce6f93d5bc9460db402a616c9cede0093223730214",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "rngff-linear-congruential-t"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "rngff",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rngff",
        "package_revision": "8eccd1479f35159922a85db25a39bcd58a0c3faa",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/rngff.f90",
          "sha256": "f78c6671247b7da69e340d761b62ffb48f0af9ddb4a0f3f4a3466e91c6aef584"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "8eccd1479f35159922a85db25a39bcd58a0c3faa",
        "verified_at": "2026-10-28T00:11:51.121365+00:00",
        "packages": []
      }
    },
    {
      "id": "github:arjenmarkus/io_utilities",
      "name": "io_utilities",
      "repository": {
        "host": "github",
        "owner": "arjenmarkus",
        "name": "io_utilities",
        "url": "https://github.com/arjenmarkus/io_utilities"
      },
      "description": "INI configuration files, command parsing, progress reporting and formatted output.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Files and processes"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 4,
        "stars_updated_at": "2026-10-28T23:25:51.211120+00:00"
      },
      "curation": {
        "topics": [
          "configuration-files",
          "file-io",
          "formatted-output",
          "ini-files"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Key/value configuration input. The main creates and reads a tiny INI-style file with a section, comment, integer, double, logical and string, verifies known values and deletes it. A checksum-guarded manifest correction changes the invalid one-element library array into a library table; Fortran sources are unchanged. Other I/O modules and malformed-input handling are not covered.",
        "reviewed_revision": "f0551aad0b46aa7aac1c442a3c576ecc90028f72",
        "procedures": [
          {
            "id": "io-utilities-keyvars",
            "package_id": "io_utilities",
            "revision": "f0551aad0b46aa7aac1c442a3c576ecc90028f72",
            "module": "keyvars",
            "procedure": "keyvar / get_values",
            "gams_codes": [
              "N1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Key/value configuration input. The main creates and reads a tiny INI-style file with a section, comment, integer, double, logical and string, verifies known values and deletes it. A checksum-guarded manifest correction changes the invalid one-element library array into a library table; Fortran sources are unchanged. Other I/O modules and malformed-input handling are not covered.",
            "evidence": [
              {
                "path": "src/keyvars.f90",
                "sha256": "cc25737533ca307437f6e2706a400d07048fc80c4cc564d1f5a84758a7288970",
                "line": 45
              }
            ],
            "author_examples": [
              {
                "path": "test/test_keyvars.f90",
                "sha256": "28072c7e87541ff1dddcd30b1a331aab07320128eb1f81de88baaa85b395ae76"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "io_utilities",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=io_utilities",
        "package_revision": "f0551aad0b46aa7aac1c442a3c576ecc90028f72",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/io_utilities.f90",
          "sha256": "8c54b6d6efaaed5e53142797ccbcbf744239187b0474504f5fc6720d2faec825"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f0551aad0b46aa7aac1c442a3c576ecc90028f72",
        "verified_at": "2026-10-28T23:33:50.254249+00:00",
        "packages": []
      }
    },
    {
      "id": "github:arjenmarkus/pointsets",
      "name": "pointsets",
      "repository": {
        "host": "github",
        "owner": "arjenmarkus",
        "name": "pointsets",
        "url": "https://github.com/arjenmarkus/pointsets"
      },
      "description": "Construct uniform, geometric, random and quasi-random point sets and multidimensional grids.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Random numbers"
      ],
      "license": {
        "label": "MIT (fpm.toml declaration)",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 8,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "grids",
          "multidimensional",
          "point-sets",
          "quasi-random",
          "random-numbers"
        ],
        "gams_codes": [
          "L",
          "L6",
          "P",
          "R"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "a1c381777f893d656018366cfabfa4cc7531e4dd",
        "procedures": [
          {
            "id": "pointsets-arithmetic-spacing",
            "package_id": "pointsets",
            "revision": "a1c381777f893d656018366cfabfa4cc7531e4dd",
            "module": "pointsets",
            "procedure": "arithmetic_spacing, geometric_spacing",
            "gams_codes": [
              "R"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Deterministic grid generation; these procedures are not random-number generators. Dedicated R consumer checks 20 arithmetic and 80 geometric grids against real64 closed-form references using 32 working-kind epsilons as tolerance. Increasing/decreasing/equal endpoints and strict ordering for nondegenerate grids are checked. At this pin wp is real32; ratios of one or less than/equal zero and arrays shorter than two are documented/tested as unchanged-array guards, not filled grids. Random point routines, large grids, extreme ratios and near-unit-ratio stability are not verified.",
            "evidence": [
              {
                "path": "src/pointsets.f90",
                "sha256": "810138ff7cbc9f47e8d4bd3be04b7910914f46ff1ee04f3e8828350f4d57009c",
                "line": 26
              }
            ],
            "author_examples": [
              {
                "path": "test/pointsets/test_pointsets.f90",
                "sha256": "0234c57e0c3b578938c909e67d3ea1a24fc45e2873e85db7fed3522a51d7e837"
              }
            ],
            "driver_id": "pointsets-spacing-reference"
          },
          {
            "id": "pointsets-random-spacing",
            "package_id": "pointsets",
            "revision": "a1c381777f893d656018366cfabfa4cc7531e4dd",
            "module": "pointsets",
            "procedure": "random_spacing",
            "gams_codes": [
              "L6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Random coordinates from normalized uniform increments, with fixed interval endpoints; not uniform coordinates or uniform order statistics. For three points the interior coordinate is U/(U+V), with CDF 1/6 at 1/4. The checked driver verifies that construction and law, replay, interval handling and empty/singleton no-ops. No statistical-quality guarantee follows.",
            "evidence": [
              {
                "path": "src/pointsets.f90",
                "sha256": "810138ff7cbc9f47e8d4bd3be04b7910914f46ff1ee04f3e8828350f4d57009c",
                "line": 88
              }
            ],
            "author_examples": [
              {
                "path": "test/pointsets/test_pointsets.f90",
                "sha256": "0234c57e0c3b578938c909e67d3ea1a24fc45e2873e85db7fed3522a51d7e837"
              }
            ],
            "driver_id": "pointsets-random-reference"
          }
        ],
        "numerical_review": {
          "revision": "a1c381777f893d656018366cfabfa4cc7531e4dd",
          "archive_sha256": "6c326b4ef7ec362376e5f4adabf7203ba17834ff95c8855a2666aa23cd11764a",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "pointsets-arithmetic-spacing",
            "pointsets-random-spacing"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "pointsets",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=pointsets",
        "package_revision": "a1c381777f893d656018366cfabfa4cc7531e4dd",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/pointsets.f90",
          "sha256": "a625a788343a1f5cd72f588f332622ade499468bc3d27ebcb26d4d3efb55d208"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "a1c381777f893d656018366cfabfa4cc7531e4dd",
        "verified_at": "2026-10-27T22:20:55.737826+00:00",
        "packages": []
      }
    },
    {
      "id": "github:arjenmarkus/specfunc-fullerton",
      "name": "specfunc-fullerton",
      "repository": {
        "host": "github",
        "owner": "arjenmarkus",
        "name": "specfunc-fullerton",
        "url": "https://github.com/arjenmarkus/specfunc-fullerton"
      },
      "description": "Fullerton special functions including gamma, Bessel, Airy and exponential integrals.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Special functions"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "special-functions"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 10,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "airy-functions",
          "bessel-functions",
          "exponential-integrals",
          "gamma-functions",
          "special-functions"
        ],
        "gams_codes": [
          "C",
          "C5",
          "C7",
          "C7a",
          "C7c",
          "C10"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "498b486b8ca18f0289a2d35c6c5bc67eb10aefe3",
        "procedures": [
          {
            "id": "specfunc-fullerton-fgamma",
            "package_id": "specfunc-fullerton",
            "revision": "498b486b8ca18f0289a2d35c6c5bc67eb10aefe3",
            "module": "fullerton_gamma",
            "procedure": "fgamma, log_gamma, reciprocal_gamma",
            "gams_codes": [
              "C7a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Default-real positive-argument Gamma, log-Gamma and reciprocal-Gamma; digamma is mapped separately to C7c.",
            "evidence": [
              {
                "path": "src/fullerton_gamma.f90",
                "sha256": "7609fcd9f17f20a9b66a562a64e2244c48d92e6ef3474261b732c13e24397a05",
                "line": 14
              },
              {
                "path": "src/fullerton_gamma.f90",
                "sha256": "7609fcd9f17f20a9b66a562a64e2244c48d92e6ef3474261b732c13e24397a05",
                "line": 18
              },
              {
                "path": "src/fullerton_gamma.f90",
                "sha256": "7609fcd9f17f20a9b66a562a64e2244c48d92e6ef3474261b732c13e24397a05",
                "line": 38
              }
            ],
            "author_examples": [
              {
                "path": "test/gamma/test_gamma.f90",
                "sha256": "49a48e63b10b05c318c6696e7b050a808ba5f530117ad518a6b398348d66e1e1"
              }
            ],
            "driver_id": "fullerton-gamma-values"
          },
          {
            "id": "specfunc-fullerton-digamma",
            "package_id": "specfunc-fullerton",
            "revision": "498b486b8ca18f0289a2d35c6c5bc67eb10aefe3",
            "module": "fullerton_gamma",
            "procedure": "digamma",
            "gams_codes": [
              "C7c"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Psi/digamma function, distinct from ordinary gamma evaluation.",
            "evidence": [
              {
                "path": "src/fullerton_gamma.f90",
                "sha256": "7609fcd9f17f20a9b66a562a64e2244c48d92e6ef3474261b732c13e24397a05",
                "line": 42
              }
            ],
            "author_examples": [
              {
                "path": "test/gamma/test_gamma.f90",
                "sha256": "49a48e63b10b05c318c6696e7b050a808ba5f530117ad518a6b398348d66e1e1"
              }
            ],
            "driver_id": "fullerton-digamma-values"
          }
        ],
        "numerical_review": {
          "revision": "498b486b8ca18f0289a2d35c6c5bc67eb10aefe3",
          "archive_sha256": "f7910a7403f1653b7917f16db3818a4ed55a080185c86b02d96c6a391164a6f7",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "specfunc-fullerton-fgamma",
            "specfunc-fullerton-digamma"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "specfunc-fullerton",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=specfunc-fullerton",
        "package_revision": "498b486b8ca18f0289a2d35c6c5bc67eb10aefe3",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/specfunc-fullerton.f90",
          "sha256": "9b81442c57aafb8088b31e9dd80647fe3b98c1d5c5c7266d00a5044bfbd2df2b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "498b486b8ca18f0289a2d35c6c5bc67eb10aefe3",
        "verified_at": "2026-10-27T22:36:01.378932+00:00",
        "packages": []
      }
    },
    {
      "id": "github:art-rasa/rational_number",
      "name": "rational_number",
      "repository": {
        "host": "github",
        "owner": "art-rasa",
        "name": "rational_number",
        "url": "https://github.com/art-rasa/rational_number"
      },
      "description": "Exact rational arithmetic with integer numerators and denominators.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Number theory"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "exact-arithmetic",
          "number-theory",
          "rational-arithmetic"
        ],
        "gams_codes": [
          "A",
          "A2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "b6ff702a0f51b950798f2a31c5bd81ae0c15385a",
        "procedures": [
          {
            "id": "rational-number-ratnumadd",
            "package_id": "rational_number",
            "revision": "b6ff702a0f51b950798f2a31c5bd81ae0c15385a",
            "module": "rational_number",
            "procedure": "ratNumAdd",
            "gams_codes": [
              "A2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Arithmetic on integer numerator/denominator pairs. Dedicated A2 driver checks exact addition with simplify off/on across 5832 small cases and verifies positive-result reduction against enumerated divisors. The pinned math dependency returns zero GCD for nonpositive numerator inputs, so negative and zero results can remain unreduced; only value equivalence is claimed for those results.",
            "evidence": [
              {
                "path": "src/rational_number.f90",
                "sha256": "4b80095ae97ad0932d4c31174b645345d964d4f955883f8dabac1a5e0d90d59d",
                "line": 144
              }
            ],
            "author_examples": [],
            "driver_id": "rational-addition-reference"
          }
        ],
        "numerical_review": {
          "revision": "b6ff702a0f51b950798f2a31c5bd81ae0c15385a",
          "archive_sha256": "1a62823cabbfe76f1957129d84cbb70b27f3ba1d82b361e702d9ed2450630f87",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "rational-number-ratnumadd"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "rational_number",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rational_number",
        "package_revision": "b6ff702a0f51b950798f2a31c5bd81ae0c15385a",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/rational_number.f90",
          "sha256": "021231a26d11a742dad72e5d79637102eff1d4797e5e498c0a1dfae12e09c669"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b6ff702a0f51b950798f2a31c5bd81ae0c15385a",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": [
          {
            "id": "github:art-rasa/math",
            "repository": "art-rasa/math",
            "revision": "83035edb1963203401348fcfb55902071cc270db"
          }
        ]
      }
    },
    {
      "id": "github:astrofrog/fortranlib",
      "name": "fortranlib",
      "repository": {
        "host": "github",
        "owner": "astrofrog",
        "name": "fortranlib",
        "url": "https://github.com/astrofrog/fortranlib"
      },
      "description": "Selected algebra, array, integration and interpolation utilities with pinned upstream fixes.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Numerical utilities"
      ],
      "license": {
        "label": "BSD-2-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 322,
        "stars_updated_at": "2026-10-29T19:03:06.361094+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "interpolation",
          "numerical-utilities",
          "polynomial-roots",
          "quadrature"
        ],
        "gams_codes": [
          "E",
          "E1",
          "F",
          "F1",
          "H",
          "H2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Selected base_types, lib_algebra and lib_array modules, using the pinned revision immediately before the upstream FPM test suite introduced source symlinks. Nine checksum-guarded edits bring lib_array exactly to upstream commit 844611933cba06d71490033e68b355f6f0ff704f, retaining its integration-limit, descending histogram-bin and precision fixes. The other selected modules are unchanged. The ordinary archive policy remains unchanged. A synthetic FPM wrapper uses the already generated Fortran sources, not the Python templates. The checked consumer integrates the affine function 2*x+1 on [0,1], checks linear interpolation at an interior off-grid point, and solves x**2-5*x+6 against the exact roots 2 and 3. Additional checks cover integration limits outside the tabulated range, descending histogram bins and bin-center precision; the expanded example fails with the older unpatched array module and passes with the upstream fixes. GAMS F1 denotes the quadratic solver, not a general iterative root finder. Random sampling, statistics, geometry, HDF5/FITS bindings and other modules are not selected; the example does not validate every routine in the included modules.",
        "reviewed_revision": "60fd094d3e137137ce00ec120b085e9b23ebf68b",
        "procedures": [
          {
            "id": "fortranlib-numerics",
            "package_id": "fortranlib",
            "revision": "60fd094d3e137137ce00ec120b085e9b23ebf68b",
            "module": "lib_algebra / lib_array",
            "procedure": "quadratic / linspace / integral / interp1d",
            "gams_codes": [
              "E1",
              "F1",
              "H2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Selected base_types, lib_algebra and lib_array modules, using the pinned revision immediately before the upstream FPM test suite introduced source symlinks. Nine checksum-guarded edits bring lib_array exactly to upstream commit 844611933cba06d71490033e68b355f6f0ff704f, retaining its integration-limit, descending histogram-bin and precision fixes. The other selected modules are unchanged. The ordinary archive policy remains unchanged. A synthetic FPM wrapper uses the already generated Fortran sources, not the Python templates. The checked consumer integrates the affine function 2*x+1 on [0,1], checks linear interpolation at an interior off-grid point, and solves x**2-5*x+6 against the exact roots 2 and 3. Additional checks cover integration limits outside the tabulated range, descending histogram bins and bin-center precision; the expanded example fails with the older unpatched array module and passes with the upstream fixes. GAMS F1 denotes the quadratic solver, not a general iterative root finder. Random sampling, statistics, geometry, HDF5/FITS bindings and other modules are not selected; the example does not validate every routine in the included modules. Dedicated F1 consumer verifies 84 real64 quadratic calls from 21 distinct dyadic root pairs and four signed coefficient scales, comparing sorted roots, root sums/products and normalized residuals. Uses only the ordinary quadratic API, not Pascal/reduced variants. Repeated/complex roots, zero leading coefficient, severe cancellation and extreme scaling are not verified. The separate E1 interpolation and H2 integration mappings remain source-supported.",
            "evidence": [
              {
                "path": "src/lib_algebra.f90",
                "sha256": "8d78426ce6f1dbd6af64139c64a9696c757204d334422827318c5b0e411f0e5c",
                "line": 1
              },
              {
                "path": "src/lib_array.f90",
                "sha256": "d1c2f979d1498c0e505632c02df66ff5ad240a733d00fa71ab59725d71f458ac",
                "line": 1
              }
            ],
            "author_examples": [],
            "driver_id": "fortranlib-quadratic-reference"
          }
        ],
        "numerical_review": {
          "revision": "60fd094d3e137137ce00ec120b085e9b23ebf68b",
          "archive_sha256": "2306ae4dedaa431c7a77f8cbc15e8ab3c04230de3a8cf0c38654f065db649536",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortranlib-numerics"
          ],
          "notes": "Selected base_types, lib_algebra and lib_array modules, using the pinned revision immediately before the upstream FPM test suite introduced source symlinks. Nine checksum-guarded edits bring lib_array exactly to upstream commit 844611933cba06d71490033e68b355f6f0ff704f, retaining its integration-limit, descending histogram-bin and precision fixes. The other selected modules are unchanged. The ordinary archive policy remains unchanged. A synthetic FPM wrapper uses the already generated Fortran sources, not the Python templates. The checked consumer integrates the affine function 2*x+1 on [0,1], checks linear interpolation at an interior off-grid point, and solves x**2-5*x+6 against the exact roots 2 and 3. Additional checks cover integration limits outside the tabulated range, descending histogram bins and bin-center precision; the expanded example fails with the older unpatched array module and passes with the upstream fixes. GAMS F1 denotes the quadratic solver, not a general iterative root finder. Random sampling, statistics, geometry, HDF5/FITS bindings and other modules are not selected; the example does not validate every routine in the included modules."
        }
      },
      "playground": {
        "package_id": "fortranlib",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortranlib",
        "package_revision": "60fd094d3e137137ce00ec120b085e9b23ebf68b",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortranlib.f90",
          "sha256": "17aa2eb57471c73ae7b108c6bdc4f174eee77e6b45de5cc28b1050fa89560f7f"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "60fd094d3e137137ce00ec120b085e9b23ebf68b",
        "verified_at": "2026-10-29T19:04:24.801783+00:00",
        "packages": []
      }
    },
    {
      "id": "github:atomic-solvers/featom",
      "name": "featom",
      "repository": {
        "host": "github",
        "owner": "atomic-solvers",
        "name": "featom",
        "url": "https://github.com/atomic-solvers/featom"
      },
      "description": "Radial Schroedinger and Dirac equations solved with high-order finite elements.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Quantum mechanics"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "atomic-structures",
          "dft",
          "finite-element-methods",
          "hartree-fock"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 13,
        "stars_updated_at": "2026-10-28T19:06:33.093926+00:00"
      },
      "curation": {
        "topics": [
          "atomic-structure",
          "dirac-equation",
          "eigenvalue-problems",
          "finite-elements",
          "quantum-mechanics",
          "schroedinger-equation"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I1b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "87872a3266ceeee61a7244e6ecd134dc3bda790f",
        "procedures": [
          {
            "id": "featom-api",
            "package_id": "featom",
            "revision": "87872a3266ceeee61a7244e6ecd134dc3bda790f",
            "module": "schroed_dirac_solver",
            "procedure": "total_energy (nonrelativistic Coulomb branch)",
            "gams_codes": [
              "I1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Radial one-dimensional boundary-value eigenproblem solved by finite elements. The demo checks the six n<=3 hydrogen Coulomb energies; no claim of validating the relativistic or self-consistent DFT paths. Dedicated I1b driver checks 12 nonrelativistic Coulomb energies for Z=1,2 and n<=3, including angular degeneracies, against -Z^2/(2*n^2) Hartree. First-six returned wavefunctions are checked only for finiteness. Dirac/DFT branches, wavefunction normalization and full-spectrum accuracy are not verified.",
            "evidence": [
              {
                "path": "src/schroed_dirac_solver.f90",
                "sha256": "ff75ec399ea35ce6e695b04a0596655876dbc41085725187f51240a893b77bdb",
                "line": 18
              }
            ],
            "author_examples": [
              {
                "path": "test/test_coulomb_schroed.f90",
                "sha256": "1ef8206d00e88d898465104b248b1f120f802e96a7d9175acccb3b1ffcf4ec65"
              }
            ],
            "driver_id": "featom-coulomb-spectrum"
          }
        ],
        "numerical_review": {
          "revision": "87872a3266ceeee61a7244e6ecd134dc3bda790f",
          "archive_sha256": "8f32331778e1e0fb1d6639629f247ddee83878dbead1d59bfd0c39c210a60123",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "featom-api"
          ],
          "notes": "Radial one-dimensional boundary-value eigenproblem solved by finite elements. The demo checks the six n<=3 hydrogen Coulomb energies; no claim of validating the relativistic or self-consistent DFT paths. Source review covers these representative procedures, not an exhaustive API inventory."
        }
      },
      "playground": {
        "package_id": "featom",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=featom",
        "package_revision": "87872a3266ceeee61a7244e6ecd134dc3bda790f",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/featom.f90",
          "sha256": "db0554244e5bcaed305661c93d878c5a1a6ddae98868703546f6b845c65c6c8b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "87872a3266ceeee61a7244e6ecd134dc3bda790f",
        "verified_at": "2026-10-28T19:11:13.335283+00:00",
        "packages": []
      }
    },
    {
      "id": "github:awvwgk/blas-interface",
      "name": "blas-interface",
      "repository": {
        "host": "github",
        "owner": "awvwgk",
        "name": "blas-interface",
        "url": "https://github.com/awvwgk/blas-interface"
      },
      "description": "Explicit generic Fortran interfaces to BLAS vector and matrix operations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "Apache-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "blas",
          "language-bindings",
          "linear-algebra",
          "matrix-operations",
          "vector-operations"
        ],
        "gams_codes": [
          "D",
          "D1",
          "D1b",
          "D1b6",
          "D2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "552a2e6a41443843003216fedad6419af55f8e35",
        "procedures": [
          {
            "id": "blas-interface-blas-gemm",
            "package_id": "blas-interface",
            "revision": "552a2e6a41443843003216fedad6419af55f8e35",
            "module": "blas",
            "procedure": "blas_gemm",
            "gams_codes": [
              "D1b6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Matrix-matrix multiplication interface to external BLAS, not a standalone BLAS implementation. Dedicated D1b6 driver checks 12 rectangular real64 GEMM calls against independent scalar triple loops, covering all N/T input combinations and alpha/beta pairs (1,0), (-2,0.5), (0,-1). Padded leading dimensions, complex overloads and other BLAS routines are not checked.",
            "evidence": [
              {
                "path": "src/blas/level3.f90",
                "sha256": "7cf3eb85c84eb4bc3b3594e67ce8a6b31233b3afb96aed96eca8b4ed7812d97b",
                "line": 35
              }
            ],
            "author_examples": [],
            "driver_id": "blas-gemm-reference"
          }
        ],
        "numerical_review": {
          "revision": "552a2e6a41443843003216fedad6419af55f8e35",
          "archive_sha256": "fcd849471e6a6c3f97ff94fcdc9dfe92d995566828b0f1c50bb1819a87a1c6b8",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "blas-interface-blas-gemm"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "blas-interface",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=blas-interface",
        "package_revision": "552a2e6a41443843003216fedad6419af55f8e35",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/blas-interface.f90",
          "sha256": "5d5c4689e5920fa73104f50264bd7cbc481a36eb77efe82f37269a1ef9ec92ec"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "552a2e6a41443843003216fedad6419af55f8e35",
        "verified_at": "2026-10-27T22:20:55.737826+00:00",
        "packages": []
      }
    },
    {
      "id": "github:awvwgk/nlopt-f",
      "name": "nlopt-f",
      "repository": {
        "host": "github",
        "owner": "awvwgk",
        "name": "nlopt-f",
        "url": "https://github.com/awvwgk/nlopt-f"
      },
      "description": "Modern Fortran bindings to NLopt nonlinear optimization algorithms.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "language-bindings",
          "nlopt",
          "nonlinear-optimization",
          "optimization"
        ],
        "gams_codes": [
          "G",
          "G1",
          "G1b",
          "G1b1",
          "G1b1b",
          "G2",
          "G2h",
          "G2h1",
          "G2h1a",
          "G2h1a2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "83d21e7ebda9279a6dd4cc11fe6c735f48eb8689",
        "procedures": [
          {
            "id": "nlopt-lbfgs",
            "package_id": "nlopt-f",
            "revision": "83d21e7ebda9279a6dd4cc11fe6c735f48eb8689",
            "module": "nlopt_wrap",
            "procedure": "nlopt_opt%optimize with LD_LBFGS",
            "gams_codes": [
              "G1b1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "user gradient",
            "notes": "The algorithm selection is part of the mapping. test/test_opt.f90 uses constrained LD_MMA and is not accepted as a G1 author example; the existing catalog demo uses LD_LBFGS.",
            "evidence": [
              {
                "path": "src/nlopt_wrap.f90",
                "line": 268,
                "sha256": "d38f553f64581e984fd90150ec519177893db60880cb99a00b60fb347d893ba8"
              },
              {
                "path": "src/nlopt_enum.F90",
                "line": 301,
                "sha256": "b92bb5362913e941d676b2e485889f4860adea00ff92cfc6c5e6cc3e21ac0b03"
              }
            ],
            "author_examples": [],
            "driver_id": "nlopt-rosenbrock-lbfgs"
          },
          {
            "id": "nlopt-lbfgs-bounds",
            "package_id": "nlopt-f",
            "revision": "83d21e7ebda9279a6dd4cc11fe6c735f48eb8689",
            "module": "nlopt_wrap",
            "procedure": "nlopt_opt%optimize with LD_LBFGS and explicit bounds",
            "gams_codes": [
              "G2h1a2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "user gradient",
            "notes": "Smooth bound-constrained optimization with a user gradient. Explicit lower/upper bounds are part of this configuration, distinct from the unconstrained driver.",
            "evidence": [
              {
                "path": "src/nlopt_wrap.f90",
                "line": 268,
                "sha256": "d38f553f64581e984fd90150ec519177893db60880cb99a00b60fb347d893ba8"
              },
              {
                "path": "src/nlopt_enum.F90",
                "line": 301,
                "sha256": "b92bb5362913e941d676b2e485889f4860adea00ff92cfc6c5e6cc3e21ac0b03"
              },
              {
                "path": "src/nlopt_wrap.f90",
                "line": 399,
                "sha256": "d38f553f64581e984fd90150ec519177893db60880cb99a00b60fb347d893ba8"
              },
              {
                "path": "src/nlopt_wrap.f90",
                "line": 444,
                "sha256": "d38f553f64581e984fd90150ec519177893db60880cb99a00b60fb347d893ba8"
              }
            ],
            "author_examples": [],
            "driver_id": "nlopt-box-quadratic"
          }
        ],
        "numerical_review": {
          "revision": "83d21e7ebda9279a6dd4cc11fe6c735f48eb8689",
          "archive_sha256": "985586611c8b51836a77c8c3aa2e07b859ff7f6dc56fcb1d6a030580c8f10c2d",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "nlopt-lbfgs",
            "nlopt-lbfgs-bounds"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "nlopt-f",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nlopt-f",
        "package_revision": "83d21e7ebda9279a6dd4cc11fe6c735f48eb8689",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/nlopt-f.f90",
          "sha256": "eefa6a6f25ce0ab89c0e89c0d9da0598156c21b2988512d01195d56958b9ab13"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "83d21e7ebda9279a6dd4cc11fe6c735f48eb8689",
        "verified_at": "2026-10-27T23:25:35.966397+00:00",
        "packages": []
      }
    },
    {
      "id": "github:berkeleylab/assert",
      "name": "berkeley-assert",
      "repository": {
        "host": "github",
        "owner": "BerkeleyLab",
        "name": "assert",
        "url": "https://github.com/BerkeleyLab/assert"
      },
      "description": "Runtime assertion checks, including preconditions in pure procedures.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Testing"
      ],
      "license": {
        "label": "LicenseRef-Berkeley-Assert",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "assertion-framework",
          "assertions",
          "correctness-verification",
          "fortran",
          "fortran2008",
          "macros"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 30,
        "stars_updated_at": "2026-10-29T13:59:01.916745+00:00"
      },
      "curation": {
        "topics": [
          "assertions",
          "design-by-contract",
          "pure-procedures",
          "runtime-checks"
        ],
        "gams_codes": [
          "R",
          "R2",
          "S",
          "S3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Runtime assertion checks in pure procedures, built with ASSERTIONS=1 so enforcement is enabled in the cached library. A checksum-guarded manifest edit adds the upstream include directory; library sources and headers are unchanged. The main checks preconditions and postconditions around a pure square-root function. A separate sandbox probe compiles successfully, intentionally calls assert(.false.), and verifies nonzero termination with the expected descriptive diagnostic and unchanged library artifacts, demonstrating that checks were not compiled away. Multi-image/coarray callbacks and every macro variant are not validated. Full current upstream license terms, including its enhancement-contribution provision, are retained under LicenseRef-Berkeley-Assert rather than labeling them as an unmodified standard BSD license.",
        "reviewed_revision": "eda03ce48da96c3118ec98d4498f4bd47c0b60ab",
        "procedures": [
          {
            "id": "assert-contracts",
            "package_id": "berkeley-assert",
            "revision": "eda03ce48da96c3118ec98d4498f4bd47c0b60ab",
            "module": "assert_m",
            "procedure": "assert",
            "gams_codes": [
              "S3",
              "R2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Runtime assertion checks in pure procedures, built with ASSERTIONS=1 so enforcement is enabled in the cached library. A checksum-guarded manifest edit adds the upstream include directory; library sources and headers are unchanged. The main checks preconditions and postconditions around a pure square-root function. A separate sandbox probe compiles successfully, intentionally calls assert(.false.), and verifies nonzero termination with the expected descriptive diagnostic and unchanged library artifacts, demonstrating that checks were not compiled away. Multi-image/coarray callbacks and every macro variant are not validated. Full current upstream license terms, including its enhancement-contribution provision, are retained under LicenseRef-Berkeley-Assert rather than labeling them as an unmodified standard BSD license.",
            "evidence": [
              {
                "path": "src/assert_m.F90",
                "sha256": "0e78c62c92e8b0198772586a9cca3011f586c93c29b0d26b2b85ecfab4df8b50",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/simple-assertions.f90",
                "sha256": "d1d7504fb8961b24540ab1f30ea23724775daa1d2a046c8ae19e37f1b8a835a8"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "berkeley-assert",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=berkeley-assert",
        "package_revision": "eda03ce48da96c3118ec98d4498f4bd47c0b60ab",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/berkeley-assert.f90",
          "sha256": "a8656a3823bfc6b4252d2b68e7b30f93d67caa8a80c8f87942f9f74d1a8e9f68"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "eda03ce48da96c3118ec98d4498f4bd47c0b60ab",
        "verified_at": "2026-10-29T14:04:20.544152+00:00",
        "packages": []
      }
    },
    {
      "id": "github:berkeleylab/fiats",
      "name": "fiats",
      "repository": {
        "host": "github",
        "owner": "BerkeleyLab",
        "name": "fiats",
        "url": "https://github.com/BerkeleyLab/fiats"
      },
      "description": "Neural-network inference using the GNU-compatible 0.12.0 source revision.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Machine learning"
      ],
      "license": {
        "label": "LicenseRef-Berkeley-Fiats",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "ann",
          "artificial-intelligence",
          "artificial-neural-networks",
          "deep-learning",
          "feedforward-neural-network",
          "fortran-2023",
          "inference",
          "machine-learning",
          "neural-network",
          "neural-networks"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 78,
        "stars_updated_at": "2026-10-29T19:03:06.361094+00:00"
      },
      "curation": {
        "topics": [
          "function-approximation",
          "inference",
          "machine-learning",
          "neural-networks",
          "relu"
        ],
        "gams_codes": [
          "K"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Pinned Fiats tag 0.12.0 (upstream manifest version 0.11.1), named inference-engine at that revision, with an explicitly pinned compatible Julienne 1.3.1 dependency and Assert 1.7.0. Tag 0.14.0 was tried first but its consumer build cannot find Julienne modules because they are declared only as a development dependency. Single-image coarrays and long free-form lines are enabled. Based on the author's write-read-infer example, the checked consumer constructs a two-input ReLU network with known diagonal weights and biases, evaluates negative, zero and positive input pairs, and compares every output with direct formulas. K is a broad function-approximation classification; training algorithms, gradients, model-file round trips and parallel speedups are not verified. The historical version is explicit in the menu description. The original Berkeley Lab license terms, including the enhancements clause, are retained.",
        "reviewed_revision": "7d564b86389460555d6f7d9b7a6b5198588af9df",
        "procedures": [
          {
            "id": "fiats-inference",
            "package_id": "fiats",
            "revision": "7d564b86389460555d6f7d9b7a6b5198588af9df",
            "module": "inference_engine_m / inference_engine_m_",
            "procedure": "inference_engine_t / infer",
            "gams_codes": [
              "K"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Pinned Fiats tag 0.12.0 (upstream manifest version 0.11.1), named inference-engine at that revision, with an explicitly pinned compatible Julienne 1.3.1 dependency and Assert 1.7.0. Tag 0.14.0 was tried first but its consumer build cannot find Julienne modules because they are declared only as a development dependency. Single-image coarrays and long free-form lines are enabled. Based on the author's write-read-infer example, the checked consumer constructs a two-input ReLU network with known diagonal weights and biases, evaluates negative, zero and positive input pairs, and compares every output with direct formulas. K is a broad function-approximation classification; training algorithms, gradients, model-file round trips and parallel speedups are not verified. The historical version is explicit in the menu description. The original Berkeley Lab license terms, including the enhancements clause, are retained. The dedicated GAMS driver additionally checks 48 fixed multilayer networks with irregular widths, three activations, scalar references, padding sentinels and repeated inference; default identity input/output ranges only.",
            "evidence": [
              {
                "path": "src/inference_engine/inference_engine_m_.f90",
                "sha256": "c986dc7b0a35b42dbdc302214eb268cccc17def4a562d94792dd4b61eeee1618",
                "line": 1
              },
              {
                "path": "src/inference_engine/inference_engine_s.F90",
                "sha256": "2cf4a15d555dba4a8bea68d12b9dd654ba1477e8df22ba0e9d2da0eda506427c",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/write-read-infer.F90",
                "sha256": "bb24dec98c2590640fb94b08ec5c5bf09f0ff4cb4cabdcd588ffb4d45011d5d6"
              }
            ],
            "driver_id": "fiats-inference-reference"
          }
        ],
        "numerical_review": {
          "revision": "7d564b86389460555d6f7d9b7a6b5198588af9df",
          "archive_sha256": "72e40789bec105d69a2e53e37b7e64f32049c175966a8f1c0debb6a3df6093a5",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fiats-inference"
          ],
          "notes": "Pinned Fiats tag 0.12.0 (upstream manifest version 0.11.1), named inference-engine at that revision, with an explicitly pinned compatible Julienne 1.3.1 dependency and Assert 1.7.0. Tag 0.14.0 was tried first but its consumer build cannot find Julienne modules because they are declared only as a development dependency. Single-image coarrays and long free-form lines are enabled. Based on the author's write-read-infer example, the checked consumer constructs a two-input ReLU network with known diagonal weights and biases, evaluates negative, zero and positive input pairs, and compares every output with direct formulas. K is a broad function-approximation classification; training algorithms, gradients, model-file round trips and parallel speedups are not verified. The historical version is explicit in the menu description. The original Berkeley Lab license terms, including the enhancements clause, are retained."
        }
      },
      "playground": {
        "package_id": "fiats",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fiats",
        "package_revision": "7d564b86389460555d6f7d9b7a6b5198588af9df",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fiats.f90",
          "sha256": "25365b238c2af119f2de00cd38a24810b21c72408a3b3d5a70a5d5e10396a2b5"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "7d564b86389460555d6f7d9b7a6b5198588af9df",
        "verified_at": "2026-10-29T19:04:24.801783+00:00",
        "packages": [
          {
            "id": "github:berkeleylab/julienne",
            "repository": "berkeleylab/julienne",
            "revision": "1eb98b8c5eb287ed27a94ddf8943656dafe8e8f4"
          },
          {
            "id": "github:sourceryinstitute/assert",
            "repository": "sourceryinstitute/assert",
            "revision": "0591a21b4f5aeff4b7867e8485c90087d9e4c060"
          }
        ]
      }
    },
    {
      "id": "github:berkeleylab/formal",
      "name": "formal",
      "repository": {
        "host": "github",
        "owner": "BerkeleyLab",
        "name": "formal",
        "url": "https://github.com/BerkeleyLab/formal"
      },
      "description": "Mimetic discrete vector calculus with gradients, divergence and integration.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Numerical utilities"
      ],
      "license": {
        "label": "LicenseRef-Berkeley-Formal",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 21,
        "stars_updated_at": "2026-10-29T18:43:21.308518+00:00"
      },
      "curation": {
        "topics": [
          "finite-differences",
          "mimetic-methods",
          "numerical-differentiation",
          "numerical-integration",
          "vector-calculus"
        ],
        "gams_codes": [
          "H",
          "H1",
          "H2",
          "I",
          "I2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Mimetic vector-calculus library with pinned Julienne and Assert dependencies. A single-image coarray build is used. The checked consumer adapts the author's extended Gauss-divergence example to f=x**2/2 and v=x on a 64-cell unit interval. It checks the two volume integrals against 1/3 and 1/6, the boundary flux against 1/2, finiteness and the conservation residual using single-precision tolerances. The command-line parsing and shell display calls of the upstream example are omitted. Library numerical sources are unchanged. Other 2D/3D operators, time integration and convergence orders are not validated. Original Berkeley Lab license terms, including the enhancements clause, are retained; this is not labeled plain BSD-3-Clause.",
        "reviewed_revision": "d28eee9b37b4b74abe7f21bb2ccbdfb5c17f3e8a",
        "procedures": [
          {
            "id": "formal-divergence",
            "package_id": "formal",
            "revision": "d28eee9b37b4b74abe7f21bb2ccbdfb5c17f3e8a",
            "module": "formal_m / tensors_1D_m",
            "procedure": "scalar_1D_t / vector_1D_t / .grad. / .div. / .SSS. / .SS.",
            "gams_codes": [
              "H1",
              "H2",
              "I2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Mimetic vector-calculus library with pinned Julienne and Assert dependencies. A single-image coarray build is used. The checked consumer adapts the author's extended Gauss-divergence example to f=x**2/2 and v=x on a 64-cell unit interval. It checks the two volume integrals against 1/3 and 1/6, the boundary flux against 1/2, finiteness and the conservation residual using single-precision tolerances. The command-line parsing and shell display calls of the upstream example are omitted. Library numerical sources are unchanged. Other 2D/3D operators, time integration and convergence orders are not validated. Original Berkeley Lab license terms, including the enhancements clause, are retained; this is not labeled plain BSD-3-Clause.",
            "evidence": [
              {
                "path": "src/formal/tensors_1D_m.F90",
                "sha256": "72a5b7ac831f0d496f5233a4e7c95d7717c8dbff12190fea5ecba62adb08cd05",
                "line": 1
              },
              {
                "path": "src/formal/divergence_1D_s.F90",
                "sha256": "afe9749b011128b8b4420206aa534770fd67a082477cc030e5b58e7bb7622f44",
                "line": 1
              },
              {
                "path": "src/formal/gradient_1D_s.F90",
                "sha256": "29416f62cfbadc6bf5c880697f585947ed18d299221e4e05aaf708a0debebc5c",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/extended-gauss-divergence.F90",
                "sha256": "a48b8b57615c8b57e825dcd24acb940cf8bd456815b6ae8385ddc260632d20a7"
              }
            ],
            "driver_id": "formal-polynomial-reference"
          }
        ],
        "numerical_review": {
          "revision": "d28eee9b37b4b74abe7f21bb2ccbdfb5c17f3e8a",
          "archive_sha256": "97a65b185354b87ef27aef72cb730b8f3db6acb32b1ce0387f6f845ba64d5d9b",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "formal-divergence"
          ],
          "notes": "Mimetic vector-calculus library with pinned Julienne and Assert dependencies. A single-image coarray build is used. The checked consumer adapts the author's extended Gauss-divergence example to f=x**2/2 and v=x on a 64-cell unit interval. It checks the two volume integrals against 1/3 and 1/6, the boundary flux against 1/2, finiteness and the conservation residual using single-precision tolerances. The command-line parsing and shell display calls of the upstream example are omitted. Library numerical sources are unchanged. Other 2D/3D operators, time integration and convergence orders are not validated. Original Berkeley Lab license terms, including the enhancements clause, are retained; this is not labeled plain BSD-3-Clause."
        }
      },
      "playground": {
        "package_id": "formal",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=formal",
        "package_revision": "d28eee9b37b4b74abe7f21bb2ccbdfb5c17f3e8a",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/formal.f90",
          "sha256": "39e8847b80422516e1d613e5fed4a331eb49ccf616cc794e318e86a36c4eca74"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d28eee9b37b4b74abe7f21bb2ccbdfb5c17f3e8a",
        "verified_at": "2026-10-29T18:44:12.105846+00:00",
        "packages": [
          {
            "id": "github:berkeleylab/assert",
            "repository": "berkeleylab/assert",
            "revision": "1eb0cb9ce1421c76b6ab977370b6339918f20918"
          },
          {
            "id": "github:berkeleylab/julienne",
            "repository": "berkeleylab/julienne",
            "revision": "974ff80958dda5d0ad7d75b047eec4e7d123dfda"
          }
        ]
      }
    },
    {
      "id": "github:berkeleylab/julienne",
      "name": "julienne",
      "repository": {
        "host": "github",
        "owner": "BerkeleyLab",
        "name": "julienne",
        "url": "https://github.com/BerkeleyLab/julienne"
      },
      "description": "Expressive numerical comparisons, unit-test diagnoses and diagnostic messages.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Testing"
      ],
      "license": {
        "label": "LicenseRef-Berkeley-Julienne",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "assertion-framework",
          "correctness-verification",
          "fortran",
          "fortran2023",
          "unit-testing"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 49,
        "stars_updated_at": "2026-10-29T19:03:06.361094+00:00"
      },
      "curation": {
        "topics": [
          "assertions",
          "diagnostics",
          "numerical-comparisons",
          "unit-testing"
        ],
        "gams_codes": [
          "R",
          "R2",
          "S",
          "S3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Standalone demonstration of the modern Julienne testing framework, with its pinned Assert dependency and single-image coarrays. The numerical source is unchanged. The checked consumer verifies an approximate real comparison and an exact integer sum, then deliberately creates a failed test_diagnosis_t, checks its failure flag and nonempty appended diagnostic and prints it while completing successfully. This demonstrates diagnosis construction and inspection rather than macro assertion termination. The full test harness, automatic test discovery, macro enforcement and multi-image behavior are not validated. Original Berkeley Lab/Sourcery Institute license terms and dependency notices are retained.",
        "reviewed_revision": "b2648cc10d8cdd0549d5c286b56d023a642e2a3e",
        "procedures": [
          {
            "id": "julienne-diagnosis",
            "package_id": "julienne",
            "revision": "b2648cc10d8cdd0549d5c286b56d023a642e2a3e",
            "module": "julienne_m / julienne_test_diagnosis_m",
            "procedure": "test_diagnosis_t / .approximates. / .equalsExpected. / diagnostics_string",
            "gams_codes": [
              "S3",
              "R2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Standalone demonstration of the modern Julienne testing framework, with its pinned Assert dependency and single-image coarrays. The numerical source is unchanged. The checked consumer verifies an approximate real comparison and an exact integer sum, then deliberately creates a failed test_diagnosis_t, checks its failure flag and nonempty appended diagnostic and prints it while completing successfully. This demonstrates diagnosis construction and inspection rather than macro assertion termination. The full test harness, automatic test discovery, macro enforcement and multi-image behavior are not validated. Original Berkeley Lab/Sourcery Institute license terms and dependency notices are retained.",
            "evidence": [
              {
                "path": "src/julienne/julienne_test_diagnosis_m.F90",
                "sha256": "ad04cc86d819abc65d4dc021b7d243b8fa00a9c3d72849a46d79bac5cdac57f1",
                "line": 1
              },
              {
                "path": "src/julienne/julienne_test_diagnosis_s.F90",
                "sha256": "ffb48c98bac55dd1e9be1aec3779fdf00897d4182cce72810d4e061a38c7c552",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/modules/test_diagnosis_test_m.F90",
                "sha256": "29a187641e4903b16e92c7d9557cb4b5a8137897e9dbc19a59546215f10a0407"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "julienne",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=julienne",
        "package_revision": "b2648cc10d8cdd0549d5c286b56d023a642e2a3e",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/julienne.f90",
          "sha256": "f1104ebd9295314cbe06282d0f528fc8502e75468a7e4a2f786fd4dbda9f6d6c"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b2648cc10d8cdd0549d5c286b56d023a642e2a3e",
        "verified_at": "2026-10-29T19:04:24.801783+00:00",
        "packages": [
          {
            "id": "github:berkeleylab/assert",
            "repository": "berkeleylab/assert",
            "revision": "c1443971bacb7015f1110704bfd86f625f9b22ee"
          }
        ]
      }
    },
    {
      "id": "github:cambridge-iccs/ftorch",
      "name": "ftorch",
      "repository": {
        "host": "github",
        "owner": "Cambridge-ICCS",
        "name": "FTorch",
        "url": "https://github.com/Cambridge-ICCS/FTorch"
      },
      "description": "Call PyTorch models from Fortran; checked CPU inference with an embedded affine TorchScript model.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Machine learning"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "deep-learning",
          "fortran",
          "hacktoberfest",
          "interoperability",
          "libtorch",
          "machine-learning",
          "python",
          "pytorch",
          "torch"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 208,
        "stars_updated_at": "2026-10-30T11:29:10.261219+00:00"
      },
      "curation": {
        "topics": [
          "inference",
          "interoperability",
          "machine-learning",
          "neural-networks",
          "pytorch",
          "torchscript"
        ],
        "gams_codes": [
          "K"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The original FTorch Fortran and C++ sources are wrapped for FPM, using pinned Debian CPU LibTorch 2.6.0+dfsg-7, the C++20 mode, C++11 ABI and include/definition settings from the upstream CMake target. The operator C++ flag setting is restricted to a current, unshared source-package recipe; public requests cannot set it and previous cache keys are preserved. The self-contained consumer embeds a reproducibly generated 1,766-byte TorchScript model as hexadecimal text, writes tiny.pt in the sandbox and calls the author tensor/model API in REAL64. Two different five-element inputs exercise y=2*x+1, with each output checked independently for finiteness and absolute error below 1e-12. The second call also verifies that the input tensor observes updated Fortran storage. No Python or model download runs in visitor jobs. This is an illustrative affine inference model, not a trained scientific predictor. K covers inference as function approximation; no training or optimization classification is inferred. GPU use, training, autograd, parallel execution and arbitrary external models are not verified. FTorch MIT notices and native Debian dependency notices are retained. APT estimates about 924 MB of additional native dependencies in the isolated FTorch image; these are separate from the catalog logical library-artifact total.",
        "reviewed_revision": "b1b1bb3b9138642ac51d55608e7f3af9070c43f1",
        "procedures": [
          {
            "id": "ftorch-inference",
            "package_id": "ftorch",
            "revision": "b1b1bb3b9138642ac51d55608e7f3af9070c43f1",
            "module": "ftorch / ftorch_model / ftorch_tensor",
            "procedure": "torch_model_load / torch_tensor_from_array / torch_model_forward",
            "gams_codes": [
              "K"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The original FTorch Fortran and C++ sources are wrapped for FPM, using pinned Debian CPU LibTorch 2.6.0+dfsg-7, the C++20 mode, C++11 ABI and include/definition settings from the upstream CMake target. The operator C++ flag setting is restricted to a current, unshared source-package recipe; public requests cannot set it and previous cache keys are preserved. The self-contained consumer embeds a reproducibly generated 1,766-byte TorchScript model as hexadecimal text, writes tiny.pt in the sandbox and calls the author tensor/model API in REAL64. Two different five-element inputs exercise y=2*x+1, with each output checked independently for finiteness and absolute error below 1e-12. The second call also verifies that the input tensor observes updated Fortran storage. No Python or model download runs in visitor jobs. This is an illustrative affine inference model, not a trained scientific predictor. K covers inference as function approximation; no training or optimization classification is inferred. GPU use, training, autograd, parallel execution and arbitrary external models are not verified. FTorch MIT notices and native Debian dependency notices are retained. APT estimates about 924 MB of additional native dependencies in the isolated FTorch image; these are separate from the catalog logical library-artifact total. Dedicated K driver now checks the same fixed affine model across REAL32/REAL64 tensor ranks 1/2/3, asymmetric dimension permutations, metadata, in-place input updates and replay. It verifies 1742 exact dyadic output entries; nonlinear models, gradients and training remain unverified.",
            "evidence": [
              {
                "path": "src/ftorch_model.f90",
                "sha256": "3f8e098312c6b33add610a1563c3f323683bc9e23ca313222a4b177e0753f04b",
                "line": 1
              },
              {
                "path": "src/ftorch_tensor.f90",
                "sha256": "92c1869eb86d508f7053347e9f6c9e29d28c628f7de8b8d56fb378e6b487bba0",
                "line": 1
              },
              {
                "path": "src/ctorch.cpp",
                "sha256": "b2ac99042f9c96d49facd2c7380d6ea33703a9a9d79ce8bae096035dbd745612",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/02_SimpleNet/simplenet_infer_fortran.f90",
                "sha256": "2695e927b69cf67c4af9f40a98116328119cadd60dc1a3984497348bc567cb2f",
                "line": 1
              }
            ],
            "driver_id": "ftorch-affine-reference"
          }
        ],
        "numerical_review": {
          "revision": "b1b1bb3b9138642ac51d55608e7f3af9070c43f1",
          "archive_sha256": "4fd815d3a17e1e23123f80bb7c0ddc5986db194036d667ce242f607a7a706a8c",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "ftorch-inference"
          ],
          "notes": "The original FTorch Fortran and C++ sources are wrapped for FPM, using pinned Debian CPU LibTorch 2.6.0+dfsg-7, the C++20 mode, C++11 ABI and include/definition settings from the upstream CMake target. The operator C++ flag setting is restricted to a current, unshared source-package recipe; public requests cannot set it and previous cache keys are preserved. The self-contained consumer embeds a reproducibly generated 1,766-byte TorchScript model as hexadecimal text, writes tiny.pt in the sandbox and calls the author tensor/model API in REAL64. Two different five-element inputs exercise y=2*x+1, with each output checked independently for finiteness and absolute error below 1e-12. The second call also verifies that the input tensor observes updated Fortran storage. No Python or model download runs in visitor jobs. This is an illustrative affine inference model, not a trained scientific predictor. K covers inference as function approximation; no training or optimization classification is inferred. GPU use, training, autograd, parallel execution and arbitrary external models are not verified. FTorch MIT notices and native Debian dependency notices are retained. APT estimates about 924 MB of additional native dependencies in the isolated FTorch image; these are separate from the catalog logical library-artifact total."
        }
      },
      "playground": {
        "package_id": "ftorch",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ftorch",
        "package_revision": "b1b1bb3b9138642ac51d55608e7f3af9070c43f1",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ftorch.f90",
          "sha256": "d244a3261312b0252cbc8cbceaaebe764b2fd0e011381c20385515c40a916560"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b1b1bb3b9138642ac51d55608e7f3af9070c43f1",
        "verified_at": "2026-10-30T11:29:26.272607+00:00",
        "packages": []
      }
    },
    {
      "id": "github:carltoffel/fortran-string-to-real",
      "name": "fortran-string-to-real",
      "repository": {
        "host": "github",
        "owner": "Carltoffel",
        "name": "Fortran-String-to-Real",
        "url": "https://github.com/Carltoffel/Fortran-String-to-Real"
      },
      "description": "Experimental conversion of valid decimal and scientific-notation strings to real numbers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Strings"
      ],
      "license": {
        "label": "Not specified upstream",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 9,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "floating-point",
          "number-parsing",
          "strings",
          "type-conversion"
        ],
        "gams_codes": [
          "A",
          "A6",
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "76fb9e4203c6ce73c31bed85b69af920893b033e",
        "procedures": [
          {
            "id": "fortran-string-to-real-str2real",
            "package_id": "fortran-string-to-real",
            "revision": "76fb9e4203c6ce73c31bed85b69af920893b033e",
            "module": "str2real_m",
            "procedure": "str2real",
            "gams_codes": [
              "A6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Decimal/scientific notation to floating-point conversion, not a special-function approximation.",
            "evidence": [
              {
                "path": "src/str2real_m.f90",
                "sha256": "51dc7413c4bbc0d7e7150eaf80bc602c78f9070e3b592e69e32a03e87c6b6968",
                "line": 27
              }
            ],
            "author_examples": [
              {
                "path": "test/test.f90",
                "sha256": "36a8b7201d8d013420c33d99492a0a2b87e6a550e76cb82bc2675a9a4ff2ce89"
              }
            ],
            "driver_id": "str2real-decimal-reference"
          }
        ],
        "numerical_review": {
          "revision": "76fb9e4203c6ce73c31bed85b69af920893b033e",
          "archive_sha256": "cb0e5e0ccc46f81e00ef04c837125b55a782da8a2c3fef84131651821877bfc1",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortran-string-to-real-str2real"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fortran-string-to-real",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-string-to-real",
        "package_revision": "76fb9e4203c6ce73c31bed85b69af920893b033e",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-string-to-real.f90",
          "sha256": "5b30707ac700bdb409f4b51dfb4d2af2af817a946d6fb16ff874363b7ee02a1d"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "76fb9e4203c6ce73c31bed85b69af920893b033e",
        "verified_at": "2026-10-27T22:20:55.737826+00:00",
        "packages": []
      }
    },
    {
      "id": "github:certik/dftatom",
      "name": "dftatom",
      "repository": {
        "host": "github",
        "owner": "certik",
        "name": "dftatom",
        "url": "https://github.com/certik/dftatom"
      },
      "description": "Radial Schrodinger, Dirac and Poisson solvers for atomic calculations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 87,
        "stars_updated_at": "2026-10-29T18:43:21.308518+00:00"
      },
      "curation": {
        "topics": [
          "atomic-physics",
          "dirac-equation",
          "poisson-equation",
          "schrodinger-equation",
          "shooting-method"
        ],
        "gams_codes": [
          "I",
          "I1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Unmodified Fortran library sources selected from the upstream native makefile and wrapped for FPM. The checked example adapts the upstream hydrogen test to Z=1 and computes all six (n,l) states through n=3 on an exponential radial mesh. It requires solver convergence, finite energies and agreement with the analytical nonrelativistic energies -1/(2*n**2) within 1e-7 Hartree. Relativistic Dirac, Poisson and self-consistent density-functional calculations are present in the library but not exercised by this example. C/Python bindings and optional extra integration/interpolation/LAPACK sources are outside the selected native source set.",
        "reviewed_revision": "e49b3042de6e2471afe5eea992c9ba50dac08f95",
        "procedures": [
          {
            "id": "dftatom-radial",
            "package_id": "dftatom",
            "revision": "e49b3042de6e2471afe5eea992c9ba50dac08f95",
            "module": "dftatom / reigen",
            "procedure": "solve_radial_eigenproblem",
            "gams_codes": [
              "I1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Unmodified Fortran library sources selected from the upstream native makefile and wrapped for FPM. The checked example adapts the upstream hydrogen test to Z=1 and computes all six (n,l) states through n=3 on an exponential radial mesh. It requires solver convergence, finite energies and agreement with the analytical nonrelativistic energies -1/(2*n**2) within 1e-7 Hartree. Relativistic Dirac, Poisson and self-consistent density-functional calculations are present in the library but not exercised by this example. C/Python bindings and optional extra integration/interpolation/LAPACK sources are outside the selected native source set.",
            "evidence": [
              {
                "path": "src/reigen.f90",
                "sha256": "23ec32c1dbee0246c9b55502e4edc08340f7298e8dbb6d53d22e65ced86842f9",
                "line": 1
              },
              {
                "path": "src/rschroed.f90",
                "sha256": "ade7c77db769fbb4da7a90b84af3e7712f9128ca98787eaffdbdbf1551423d60",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "tests/hydrogen/hydrogen.f90",
                "sha256": "9c1945012f5efaa7861e858b283b5e30ec0131efb699c04f0523d5e78cf45406"
              }
            ],
            "driver_id": "dftatom-hydrogen-reference"
          }
        ],
        "numerical_review": {
          "revision": "e49b3042de6e2471afe5eea992c9ba50dac08f95",
          "archive_sha256": "69e20740d8cfd35de9c226ff626837f3eb7aef699ff96ee47a0b1ea1705baa27",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "dftatom-radial"
          ],
          "notes": "Unmodified Fortran library sources selected from the upstream native makefile and wrapped for FPM. The checked example adapts the upstream hydrogen test to Z=1 and computes all six (n,l) states through n=3 on an exponential radial mesh. It requires solver convergence, finite energies and agreement with the analytical nonrelativistic energies -1/(2*n**2) within 1e-7 Hartree. Relativistic Dirac, Poisson and self-consistent density-functional calculations are present in the library but not exercised by this example. C/Python bindings and optional extra integration/interpolation/LAPACK sources are outside the selected native source set."
        }
      },
      "playground": {
        "package_id": "dftatom",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dftatom",
        "package_revision": "e49b3042de6e2471afe5eea992c9ba50dac08f95",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/dftatom.f90",
          "sha256": "8ee70aa55e5cbc3d9794b4560a78f806920df204cd87c21d575dcb5c0fcac373"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e49b3042de6e2471afe5eea992c9ba50dac08f95",
        "verified_at": "2026-10-29T18:44:12.105846+00:00",
        "packages": []
      }
    },
    {
      "id": "github:certik/fortran-utils",
      "name": "fortran-utils",
      "repository": {
        "host": "github",
        "owner": "certik",
        "name": "fortran-utils",
        "url": "https://github.com/certik/fortran-utils"
      },
      "description": "Selected mesh, cubic-spline and sorting utilities with supporting modules.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Numerical utilities"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 228,
        "stars_updated_at": "2026-10-29T15:02:11.035729+00:00"
      },
      "curation": {
        "topics": [
          "cubic-splines",
          "interpolation",
          "mesh-generation",
          "numerical-utilities",
          "sorting"
        ],
        "gams_codes": [
          "E",
          "E1",
          "N",
          "N6"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Selected unmodified modules types, utils, lapack, mesh, splines and sorting, wrapped for FPM and linked to compatible LP64 BLAS/LAPACK. HDF5, AMOS/special functions, optimization and other unselected modules are not included. The main reproduces a cubic polynomial with the consistent-boundary cubic spline and checks its value, first derivative and second derivative on a denser grid against exact formulas. It checks exponential-mesh endpoints, monotonicity and the requested last/first spacing ratio, then sorts repeated/negative integers against an exact answer. General nonpolynomial interpolation error, extrapolation, every boundary condition, other sorting interfaces and all utility routines are not validated.",
        "reviewed_revision": "b43bd24cd421509a5bc6d3b9c3eeae8ce856ed88",
        "procedures": [
          {
            "id": "fortran-utils-splines",
            "package_id": "fortran-utils",
            "revision": "b43bd24cd421509a5bc6d3b9c3eeae8ce856ed88",
            "module": "splines / mesh / sorting",
            "procedure": "spline3ders / meshexp / sort",
            "gams_codes": [
              "E1",
              "N6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Selected unmodified modules types, utils, lapack, mesh, splines and sorting, wrapped for FPM and linked to compatible LP64 BLAS/LAPACK. HDF5, AMOS/special functions, optimization and other unselected modules are not included. The main reproduces a cubic polynomial with the consistent-boundary cubic spline and checks its value, first derivative and second derivative on a denser grid against exact formulas. It checks exponential-mesh endpoints, monotonicity and the requested last/first spacing ratio, then sorts repeated/negative integers against an exact answer. General nonpolynomial interpolation error, extrapolation, every boundary condition, other sorting interfaces and all utility routines are not validated. Dedicated E1 consumer checks exact degree-0..3 polynomial reproduction on three uniform grids and a nonuniform grid, including first/second derivatives at 65 queries. Optional outputs and reversed query order are compared independently. Uses the API default consistent-cubic endpoint conditions; extrapolation, nonpolynomial convergence, other boundary choices and the separate N6 sorting mapping are not verified.",
            "evidence": [
              {
                "path": "src/splines.f90",
                "sha256": "63a2ebb10cbe8a6d382e6f7bb62e5add4207b0fb5d52706173477c6a109bcccf",
                "line": 1
              },
              {
                "path": "src/mesh.f90",
                "sha256": "a56ce1419437f4d240e0fcc696c8600a19b9398898058fcfa0fb3d03d0a059ce",
                "line": 1
              },
              {
                "path": "src/sorting.f90",
                "sha256": "295e6e65e8241e333a11da6a39a63650037d54a749bee39166f0646664287a13",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "tests/splines/test_splines.f90",
                "sha256": "5d73abffc21ee712d9148543495eff354b7cbe015379583d48cbfc21cc00b96b"
              }
            ],
            "driver_id": "fortran-utils-spline-reference"
          }
        ],
        "numerical_review": {
          "revision": "b43bd24cd421509a5bc6d3b9c3eeae8ce856ed88",
          "archive_sha256": "2f58fba502b3efcec9b50f64cca2d6487932483a361f72c865f48abc021a34ed",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortran-utils-splines"
          ],
          "notes": "Selected unmodified modules types, utils, lapack, mesh, splines and sorting, wrapped for FPM and linked to compatible LP64 BLAS/LAPACK. HDF5, AMOS/special functions, optimization and other unselected modules are not included. The main reproduces a cubic polynomial with the consistent-boundary cubic spline and checks its value, first derivative and second derivative on a denser grid against exact formulas. It checks exponential-mesh endpoints, monotonicity and the requested last/first spacing ratio, then sorts repeated/negative integers against an exact answer. General nonpolynomial interpolation error, extrapolation, every boundary condition, other sorting interfaces and all utility routines are not validated."
        }
      },
      "playground": {
        "package_id": "fortran-utils",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-utils",
        "package_revision": "b43bd24cd421509a5bc6d3b9c3eeae8ce856ed88",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-utils.f90",
          "sha256": "4f49ae6813366328afcf9f32c485d89e060f4b08252055f080214903d8acda75"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b43bd24cd421509a5bc6d3b9c3eeae8ce856ed88",
        "verified_at": "2026-10-29T15:00:58.306928+00:00",
        "packages": []
      }
    },
    {
      "id": "github:computationalsciencelaboratory/fatode",
      "name": "fatode",
      "repository": {
        "host": "github",
        "owner": "ComputationalScienceLaboratory",
        "name": "FATODE",
        "url": "https://github.com/ComputationalScienceLaboratory/FATODE"
      },
      "description": "Explicit Runge-Kutta integration with tangent-linear sensitivities.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "GPL-3.0-only",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "ode-solver",
          "sensitivity-analysis",
          "time-integration"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 20,
        "stars_updated_at": "2026-10-29T13:59:01.916745+00:00"
      },
      "curation": {
        "topics": [
          "ordinary-differential-equations",
          "runge-kutta",
          "sensitivity-analysis",
          "tangent-linear-model"
        ],
        "gams_codes": [
          "I",
          "I1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Selected FATODE explicit Runge-Kutta tangent-linear integrator, linked to native BLAS/LAPACK. The FPM wrapper compiles unchanged TLM/ERK_TLM/ERK_TLM_f90_Integrator.F90; bundled precompiled platform binaries are not used. The example augments exponential decay with a constant rate state and differentiates the initial rate using the tangent-linear model, checking the state, rate, and both sensitivities against analytical formulas. It explicitly selects the supplied analytical Jacobian and enables tangent-variable adaptive error control; the initial default finite-difference Jacobian settings missed the requested sensitivity accuracy. No numerical library edits. Implicit/stiff solvers, adjoint integration, sparse solver variants and all ERK methods are not offered or verified.",
        "reviewed_revision": "3f237c49bd377644a597c2a49ae5a83f090bfab5",
        "procedures": [
          {
            "id": "fatode-tangent",
            "package_id": "fatode",
            "revision": "3f237c49bd377644a597c2a49ae5a83f090bfab5",
            "module": "ERK_TLM_f90_Integrator",
            "procedure": "INTEGRATE_TLM",
            "gams_codes": [
              "I1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "User-supplied analytical state Jacobian in this demo; tangent initial conditions select the rate sensitivity.",
            "notes": "Selected FATODE explicit Runge-Kutta tangent-linear integrator, linked to native BLAS/LAPACK. The FPM wrapper compiles unchanged TLM/ERK_TLM/ERK_TLM_f90_Integrator.F90; bundled precompiled platform binaries are not used. The example augments exponential decay with a constant rate state and differentiates the initial rate using the tangent-linear model, checking the state, rate, and both sensitivities against analytical formulas. It explicitly selects the supplied analytical Jacobian and enables tangent-variable adaptive error control; the initial default finite-difference Jacobian settings missed the requested sensitivity accuracy. No numerical library edits. Implicit/stiff solvers, adjoint integration, sparse solver variants and all ERK methods are not offered or verified.",
            "evidence": [
              {
                "path": "TLM/ERK_TLM/ERK_TLM_f90_Integrator.F90",
                "sha256": "c7132f0b28c5b6ca17803828470d7facf82f707d4990d772e0ba27f12b2dcde4",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "EXAMPLES/swe/SWE_ERK_TLM/swe2D_erk_tlm_dr.F90",
                "sha256": "52e4c46deed18a2b65039d398047d0f9a29e2b5809a6ce278cd07dc5e3e30546"
              }
            ],
            "driver_id": "fatode-tangent-reference"
          }
        ],
        "numerical_review": {
          "revision": "3f237c49bd377644a597c2a49ae5a83f090bfab5",
          "archive_sha256": "ac953c53526ff8f9ce2e8e4c1f71842aae6c86fb52484a21dbdba234805f659e",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fatode-tangent"
          ],
          "notes": "Selected FATODE explicit Runge-Kutta tangent-linear integrator, linked to native BLAS/LAPACK. The FPM wrapper compiles unchanged TLM/ERK_TLM/ERK_TLM_f90_Integrator.F90; bundled precompiled platform binaries are not used. The example augments exponential decay with a constant rate state and differentiates the initial rate using the tangent-linear model, checking the state, rate, and both sensitivities against analytical formulas. It explicitly selects the supplied analytical Jacobian and enables tangent-variable adaptive error control; the initial default finite-difference Jacobian settings missed the requested sensitivity accuracy. No numerical library edits. Implicit/stiff solvers, adjoint integration, sparse solver variants and all ERK methods are not offered or verified."
        }
      },
      "playground": {
        "package_id": "fatode",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fatode",
        "package_revision": "3f237c49bd377644a597c2a49ae5a83f090bfab5",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fatode.f90",
          "sha256": "554bec760684767a67524d7e477de7c9dec778bb23a5719c549da0945cc3b34c"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "3f237c49bd377644a597c2a49ae5a83f090bfab5",
        "verified_at": "2026-10-29T14:04:20.544152+00:00",
        "packages": []
      }
    },
    {
      "id": "github:cp2k/dbcsr",
      "name": "dbcsr",
      "repository": {
        "host": "github",
        "owner": "cp2k",
        "name": "dbcsr",
        "url": "https://github.com/cp2k/dbcsr"
      },
      "description": "Serial block-sparse matrix multiplication, checked against MATMUL.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "GPL-2.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "blas",
          "cp2k",
          "cuda",
          "gemm",
          "hpc",
          "linear-algebra",
          "matrix-multiplication",
          "mpi",
          "openmp-parallelization",
          "sparse-matrix"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 157,
        "stars_updated_at": "2026-10-30T00:56:25.350646+00:00"
      },
      "curation": {
        "topics": [
          "block-sparse",
          "linear-algebra",
          "matrix-multiplication",
          "sparse-matrices"
        ],
        "gams_codes": [
          "D",
          "D1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The upstream CMake-selected serial CPU library is rendered with Fypp 3.2, with exact generated-output hashes. Simple USE lists emitted from Python sets are sorted for reproducibility across Python versions and platforms; numerical algorithms are unchanged. MPI, OpenMP, GPU, LIBXS and LIBXSMM are disabled, and the library links pinned OpenBLAS. The diagnostic filename macro uses __FILE__. The checked main creates two 4-by-4 block-sparse matrices, multiplies them through dbcsr_multiply, reconstructs the result and independently compares it with MATMUL, requiring finite entries and a small maximum error. D1 covers matrix operations. Parallel scaling, accelerators and tensor operations are outside this verification scope. GPL-2.0-or-later notices are retained. The wrapper repeats the base-hooks USE list so FPM can order dependencies hidden in the original include. Its manifest permits legacy implicit external BLAS/LAPACK calls; runtime and bounds checks remain enabled.",
        "reviewed_revision": "cd6f522ec5005da8c59d2883975a89a2da607eac",
        "procedures": [
          {
            "id": "dbcsr-block-multiply",
            "package_id": "dbcsr",
            "revision": "cd6f522ec5005da8c59d2883975a89a2da607eac",
            "module": "dbcsr_api",
            "procedure": "dbcsr_multiply",
            "gams_codes": [
              "D1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The upstream CMake-selected serial CPU library is rendered with Fypp 3.2, with exact generated-output hashes. Simple USE lists emitted from Python sets are sorted for reproducibility across Python versions and platforms; numerical algorithms are unchanged. MPI, OpenMP, GPU, LIBXS and LIBXSMM are disabled, and the library links pinned OpenBLAS. The diagnostic filename macro uses __FILE__. The checked main creates two 4-by-4 block-sparse matrices, multiplies them through dbcsr_multiply, reconstructs the result and independently compares it with MATMUL, requiring finite entries and a small maximum error. D1 covers matrix operations. Parallel scaling, accelerators and tensor operations are outside this verification scope. GPL-2.0-or-later notices are retained. The wrapper repeats the base-hooks USE list so FPM can order dependencies hidden in the original include. Its manifest permits legacy implicit external BLAS/LAPACK calls; runtime and bounds checks remain enabled.",
            "evidence": [
              {
                "path": "src/mm/dbcsr_multiply_api.F",
                "sha256": "43891d426eb39e596d5ff933582526c8b198f3a76cd7507a9ac1563c0d6ee175",
                "line": 1
              },
              {
                "path": "src/block/dbcsr_block_access.F",
                "sha256": "fbeaaf2204f6b8962732938881907950f096b7fcbf6a1fcfd905e19d888aab74",
                "line": 1
              },
              {
                "path": "src/dbcsr_api.F",
                "sha256": "f5818508b345def0c719f1355cb2ac68e03828ad3a14280eaea0d2d81d2505dd",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/dbcsr_example_3.F",
                "sha256": "04d0f4e311c5fd6c33be433174992729e652e12f0983d8c25f8e8fc4b5e8a7de"
              }
            ],
            "driver_id": "dbcsr-products-reference"
          }
        ],
        "numerical_review": {
          "revision": "cd6f522ec5005da8c59d2883975a89a2da607eac",
          "archive_sha256": "a92dbde8e23b2e1cf3447a67f4ffd08679ff70af0812ca99fef3ae9879f80ff9",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "dbcsr-block-multiply"
          ],
          "notes": "The upstream CMake-selected serial CPU library is rendered with Fypp 3.2, with exact generated-output hashes. Simple USE lists emitted from Python sets are sorted for reproducibility across Python versions and platforms; numerical algorithms are unchanged. MPI, OpenMP, GPU, LIBXS and LIBXSMM are disabled, and the library links pinned OpenBLAS. The diagnostic filename macro uses __FILE__. The checked main creates two 4-by-4 block-sparse matrices, multiplies them through dbcsr_multiply, reconstructs the result and independently compares it with MATMUL, requiring finite entries and a small maximum error. D1 covers matrix operations. Parallel scaling, accelerators and tensor operations are outside this verification scope. GPL-2.0-or-later notices are retained. The wrapper repeats the base-hooks USE list so FPM can order dependencies hidden in the original include. Its manifest permits legacy implicit external BLAS/LAPACK calls; runtime and bounds checks remain enabled."
        }
      },
      "playground": {
        "package_id": "dbcsr",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dbcsr",
        "package_revision": "cd6f522ec5005da8c59d2883975a89a2da607eac",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/dbcsr.f90",
          "sha256": "9bd59bd3c3f205d6787396d1ff4d538d55dfa40985258d415e8b2f91eae4b9fc"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "cd6f522ec5005da8c59d2883975a89a2da607eac",
        "verified_at": "2026-10-30T01:09:50.140826+00:00",
        "packages": []
      }
    },
    {
      "id": "github:darmar-lt/qcontainers",
      "name": "qcontainers",
      "repository": {
        "host": "github",
        "owner": "darmar-lt",
        "name": "qcontainers",
        "url": "https://github.com/darmar-lt/qcontainers"
      },
      "description": "Dynamic vectors, lists, sets and string-keyed maps backed by C containers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "BSD-2-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "containers",
          "fortran"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 29,
        "stars_updated_at": "2026-10-29T19:56:39.893532+00:00"
      },
      "curation": {
        "topics": [
          "c-interoperability",
          "containers",
          "dynamic-array",
          "hash-map",
          "sets"
        ],
        "gams_codes": [
          "N",
          "N4",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Explicitly selected C and Fortran library sources are wrapped for FPM. Checksum-guarded edits rename the library string conversion helper to qlibc_f_c_string and update its callers, avoiding the Fortran 2023 intrinsic name collision; container algorithms are unchanged. The unrelated qencode.c utility is excluded: its query parser refers to qstrtrim and qlisttbl routines absent from the archive. The library retains vector, list, set, hash-table and tree-table modules and their vendored C dependencies. The checked consumer exercises vector growth, indexing, replacement, array conversion, pop and clear, and string-keyed map insertion, replacement, lookup, missing-key lookup and clear. Block scope invokes finalizers. Integer payloads are used; general pointer ownership, all container methods and threading are not validated.",
        "reviewed_revision": "bb1423dded02588898530c3ac7aa709e3f4eb5c3",
        "procedures": [
          {
            "id": "qcontainers-storage",
            "package_id": "qcontainers",
            "revision": "bb1423dded02588898530c3ac7aa709e3f4eb5c3",
            "module": "qvector_m / qhashtbl_m",
            "procedure": "new / addlast / getat / toarray / put / get / clear",
            "gams_codes": [
              "N4",
              "N5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Explicitly selected C and Fortran library sources are wrapped for FPM. Checksum-guarded edits rename the library string conversion helper to qlibc_f_c_string and update its callers, avoiding the Fortran 2023 intrinsic name collision; container algorithms are unchanged. The unrelated qencode.c utility is excluded: its query parser refers to qstrtrim and qlisttbl routines absent from the archive. The library retains vector, list, set, hash-table and tree-table modules and their vendored C dependencies. The checked consumer exercises vector growth, indexing, replacement, array conversion, pop and clear, and string-keyed map insertion, replacement, lookup, missing-key lookup and clear. Block scope invokes finalizers. Integer payloads are used; general pointer ownership, all container methods and threading are not validated.",
            "evidence": [
              {
                "path": "qcontainers_f/qvector.F90",
                "sha256": "1bc22efc30a1665e7d1303bb97efa443544048d8b9e08f60f33b5c8d467f188b",
                "line": 1
              },
              {
                "path": "qcontainers_f/qhashtbl.F90",
                "sha256": "917e03d3a9e8456b8c1d07255cac24293eca1a54167ceb0806c5ef54438e6da6",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "tests/test_vector.f90",
                "sha256": "adef8f579021a3e5d16fcaa0986d6de9bfcbbd5320b058efefe1125bbc27bd83"
              },
              {
                "path": "docs/tutorial_qhashtbl.f90",
                "sha256": "a8d76feb02340427844a234aea16fe99ac1662e9b97620f736adf9615bccf93a"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "qcontainers",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=qcontainers",
        "package_revision": "bb1423dded02588898530c3ac7aa709e3f4eb5c3",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/qcontainers.f90",
          "sha256": "616e0fc39c95bc2695434e2f39901766dc765e4ffd980aad125e8088edeabd4b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "bb1423dded02588898530c3ac7aa709e3f4eb5c3",
        "verified_at": "2026-10-29T19:54:58.400223+00:00",
        "packages": []
      }
    },
    {
      "id": "github:davidpfister/daskr",
      "name": "daskr",
      "repository": {
        "host": "github",
        "owner": "davidpfister",
        "name": "daskr",
        "url": "https://github.com/davidpfister/daskr"
      },
      "description": "Differential-algebraic equation solver with root finding and direct or Krylov linear solvers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "LLNL redistribution license (LICENSE)",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "dae",
          "differential-equations",
          "fortran",
          "fortran-package-manager",
          "netlib"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "dae",
          "differential-equations",
          "iterative-solvers",
          "krylov-methods",
          "root-finding"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I1a",
          "I1a2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "I1 includes the package's ordinary differential-algebraic systems; this assignment does not claim PDE or integral-equation solvers.",
        "reviewed_revision": "b43533edc5d6900088a846d802e3a86d0f9a06ad",
        "procedures": [
          {
            "id": "daskr-ddaskr",
            "package_id": "daskr",
            "revision": "b43533edc5d6900088a846d802e3a86d0f9a06ad",
            "module": "external",
            "procedure": "ddaskr",
            "gams_codes": [
              "I1a2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "optional user Jacobian/preconditioner callbacks",
            "notes": "Differential-algebraic initial-value integration with Newton/Krylov support.",
            "evidence": [
              {
                "path": "src/ddaskr.f",
                "sha256": "ec35cf263c50fa87c5a2b97805f1700af58fc32eb7005bc97f8c9282a12b96ca",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/web/dweb.f",
                "sha256": "81a272ce1fe88eb4dd697d755086b9232243163087e73dcef425cc6e809e4817"
              }
            ],
            "driver_id": "daskr-dae-reference"
          }
        ],
        "numerical_review": {
          "revision": "b43533edc5d6900088a846d802e3a86d0f9a06ad",
          "archive_sha256": "7a636a79cf54271606ca73c4a9c112bc45af75cc17246873cc499b2a5cce7472",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "daskr-ddaskr"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "daskr",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=daskr",
        "package_revision": "b43533edc5d6900088a846d802e3a86d0f9a06ad",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/daskr.f90",
          "sha256": "7757aba3067affd2b88ab796913a986223cc538f8891ebb1c29ed60ecb19e138"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b43533edc5d6900088a846d802e3a86d0f9a06ad",
        "verified_at": "2026-10-27T23:25:35.966397+00:00",
        "packages": []
      }
    },
    {
      "id": "github:degawa/any",
      "name": "any",
      "repository": {
        "host": "github",
        "owner": "degawa",
        "name": "any",
        "url": "https://github.com/degawa/any"
      },
      "description": "Wrap intrinsic scalar and array values behind a common return type.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data structures"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-library",
          "fortran-package-manager",
          "modern-fortran",
          "object-oriented-programming",
          "operator-overloading",
          "user-defined-type"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-29T01:11:46.981596+00:00"
      },
      "curation": {
        "topics": [
          "array-containers",
          "generic-values",
          "polymorphism",
          "type-erasure"
        ],
        "gams_codes": [
          "N",
          "N4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Type-erased intrinsic values returned through any_type. The checked main returns an integer, a double-precision real and a character value through one function, retrieves each using its matching type, and checks exact values. No source edits. The author documents undefined results for mismatched type/rank conversions; the example does not validate all ranks, kinds, custom extensions or invalid conversions.",
        "reviewed_revision": "b9eb5e3fdc8f162ae8f2c5d8d026537ed2397830",
        "procedures": [
          {
            "id": "any-values",
            "package_id": "any",
            "revision": "b9eb5e3fdc8f162ae8f2c5d8d026537ed2397830",
            "module": "any_t",
            "procedure": "any_type / assignment(=) / as_char",
            "gams_codes": [
              "N4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Type-erased intrinsic values returned through any_type. The checked main returns an integer, a double-precision real and a character value through one function, retrieves each using its matching type, and checks exact values. No source edits. The author documents undefined results for mismatched type/rank conversions; the example does not validate all ranks, kinds, custom extensions or invalid conversions.",
            "evidence": [
              {
                "path": "src/any_t.f90",
                "sha256": "23cc98fef6ccc1165e25ec69423bb0090519086067d15f31d7a093b271a6dc86",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/demo.f90",
                "sha256": "50eb2bd6761ddd26606a0ad1577ed7012078cdb8512b1668b8c19ad11ad45631"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "any",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=any",
        "package_revision": "b9eb5e3fdc8f162ae8f2c5d8d026537ed2397830",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/any.f90",
          "sha256": "c791c7de896c3e6f53988caf9575e7d6f2a0a2a14cf124cf8cfc6caf06b1ca86"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b9eb5e3fdc8f162ae8f2c5d8d026537ed2397830",
        "verified_at": "2026-10-29T01:33:12.542944+00:00",
        "packages": [
          {
            "id": "github:degawa/fassert",
            "repository": "degawa/fassert",
            "revision": "678fa217df79af318cc537d3c69eab3b7cf68cb7"
          }
        ]
      }
    },
    {
      "id": "github:degawa/array_range",
      "name": "array_range",
      "repository": {
        "host": "github",
        "owner": "degawa",
        "name": "array_range",
        "url": "https://github.com/degawa/array_range"
      },
      "description": "Derived types for managing one-, two- and three-dimensional array bounds.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Arrays"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-29T00:50:30.284213+00:00"
      },
      "curation": {
        "topics": [
          "array-bounds",
          "array-indexing",
          "multidimensional-arrays"
        ],
        "gams_codes": [
          "R"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Derived types and constructors for multidimensional array bounds. The checked main reconstructs and round-trips bounds [-1:1,4:5], traverses exactly six elements using stored bounds and verifies their sum of 270. No source edits. It does not cover all dimensions, vector/tensor wrappers, empty arrays or invalid bounds. This is an indexing utility, not a numerical solver.",
        "reviewed_revision": "cd21ccb982e23de9c2df44c12edab44dd84562dc",
        "procedures": [
          {
            "id": "array-range-bounds",
            "package_id": "array_range",
            "revision": "cd21ccb982e23de9c2df44c12edab44dd84562dc",
            "module": "arrayRange_type_2d",
            "procedure": "to_array2d_range / array2d_range_type%to_array",
            "gams_codes": [
              "R"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Derived types and constructors for multidimensional array bounds. The checked main reconstructs and round-trips bounds [-1:1,4:5], traverses exactly six elements using stored bounds and verifies their sum of 270. No source edits. It does not cover all dimensions, vector/tensor wrappers, empty arrays or invalid bounds. This is an indexing utility, not a numerical solver.",
            "evidence": [
              {
                "path": "src/type/array2d_range_type.f90",
                "sha256": "71e6df2a70c3a6c3943e8e15bf8ee2a45e81d61df125cd9dad4642fcf4e3d6af",
                "line": 1
              }
            ],
            "author_examples": []
          }
        ]
      },
      "playground": {
        "package_id": "array_range",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=array_range",
        "package_revision": "cd21ccb982e23de9c2df44c12edab44dd84562dc",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/array_range.f90",
          "sha256": "909543efcb535b0594447d9fa9770cf062f9ad24394b6752cd5a834f9b709381"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "cd21ccb982e23de9c2df44c12edab44dd84562dc",
        "verified_at": "2026-10-29T00:57:33.593173+00:00",
        "packages": []
      }
    },
    {
      "id": "github:degawa/bstrith",
      "name": "bstrith",
      "repository": {
        "host": "github",
        "owner": "degawa",
        "name": "bstrith",
        "url": "https://github.com/degawa/bstrith"
      },
      "description": "Fixed-width binary-string arithmetic, shifts and logical operations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "High precision"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T22:02:20.239918+00:00"
      },
      "curation": {
        "topics": [
          "binary-arithmetic",
          "binary-strings",
          "bit-operations",
          "bit-shifts"
        ],
        "gams_codes": [
          "A",
          "A1",
          "N",
          "N2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Fixed-width binary-string addition, subtraction, shifts and logical operations. The driver checks every eight-bit value, including carry and wraparound. This is not unlimited arbitrary-precision arithmetic.",
        "reviewed_revision": "7ed7730e34c7e1f78f2be9426ccc170f9dcaf57e",
        "procedures": [
          {
            "id": "bstrith-operations",
            "package_id": "bstrith",
            "revision": "7ed7730e34c7e1f78f2be9426ccc170f9dcaf57e",
            "module": "bstrith_arithmetic_basic_add / bstrith_bit_shift",
            "procedure": "add / sub / shift_l / shift_r",
            "gams_codes": [
              "A1",
              "N2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Fixed-width binary-string addition, subtraction, shifts and logical operations. The driver checks every eight-bit value, including carry and wraparound. This is not unlimited arbitrary-precision arithmetic. Dedicated N2 driver: 5120 exact comparisons against independent native integer references: shifts/complement/XOR over all 8-bit values, 8-bit increment/decrement, and all ordered pairs of 4-bit addition/subtraction operands. This N2 driver does not mark the separate A1 mapping verified.",
            "evidence": [
              {
                "path": "src/arithmetic/basic/add/add.f90",
                "sha256": "541e826c31ecb31b980345f2853d396f6835a21d19c64b610e948ac84c6bf0a2",
                "line": 1
              },
              {
                "path": "src/bit/shift/shift.f90",
                "sha256": "38c84196392ebf938db8e1feedd119c0cf0e519351baab2f34605ec418071102",
                "line": 20
              }
            ],
            "author_examples": [
              {
                "path": "README.md",
                "sha256": "91f77aaee474e8a73b0b6ef1bb118974b484b473ba9dce335748c4eefc204f71"
              }
            ],
            "driver_id": "bstrith-bit-reference"
          }
        ],
        "numerical_review": {
          "revision": "7ed7730e34c7e1f78f2be9426ccc170f9dcaf57e",
          "archive_sha256": "f7f3c9a98b395f20760b4883b43b7122f7b59eb6d8aa08b5afb211c5ca9d6344",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "bstrith-operations"
          ],
          "notes": "Fixed-width binary-string addition, subtraction, shifts and logical operations. The driver checks every eight-bit value, including carry and wraparound. This is not unlimited arbitrary-precision arithmetic."
        }
      },
      "playground": {
        "package_id": "bstrith",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=bstrith",
        "package_revision": "7ed7730e34c7e1f78f2be9426ccc170f9dcaf57e",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/bstrith.f90",
          "sha256": "4c42c06abae937b735a93bb813e0dfe0449e971bcfa3db70f171a0d841a7057d"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "7ed7730e34c7e1f78f2be9426ccc170f9dcaf57e",
        "verified_at": "2026-10-28T22:10:17.874400+00:00",
        "packages": []
      }
    },
    {
      "id": "github:degawa/enclose",
      "name": "enclose",
      "repository": {
        "host": "github",
        "owner": "degawa",
        "name": "enclose",
        "url": "https://github.com/degawa/enclose"
      },
      "description": "Enclose strings in matching brackets or custom delimiters.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Text processing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-library",
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-29T01:58:05.528366+00:00"
      },
      "curation": {
        "topics": [
          "brackets",
          "strings",
          "text-formatting"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "String enclosure with automatically matched closing brackets and explicit delimiters. The main checks nested bracket reversal, square brackets, quotation marks, custom opening/closing strings and disabled autoclosing, and prints examples. No source edits; matches the existing FED dependency revision. This is formatting, not parsing or escaping untrusted text.",
        "reviewed_revision": "d3ea2ea989296bf855f4cb07ea8db601020805f2",
        "procedures": [
          {
            "id": "enclose-strings",
            "package_id": "enclose",
            "revision": "d3ea2ea989296bf855f4cb07ea8db601020805f2",
            "module": "strings_enclose",
            "procedure": "enclose / get_closing_brackets",
            "gams_codes": [
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "String enclosure with automatically matched closing brackets and explicit delimiters. The main checks nested bracket reversal, square brackets, quotation marks, custom opening/closing strings and disabled autoclosing, and prints examples. No source edits; matches the existing FED dependency revision. This is formatting, not parsing or escaping untrusted text.",
            "evidence": [
              {
                "path": "src/enclose.f90",
                "sha256": "435eb8146ce3632f9aee8f9d87cdf711aea201b831d6550824e0ea56711eeb9f",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/demo.f90",
                "sha256": "467512cae8a27aee264667ac5ba5cb0d906b8f896506493659bcb61950708a63"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "enclose",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=enclose",
        "package_revision": "d3ea2ea989296bf855f4cb07ea8db601020805f2",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/enclose.f90",
          "sha256": "9a0190870e01edb2e86c87b5bcd77339a4abc470c757ae9fa755c622ce1c8e01"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d3ea2ea989296bf855f4cb07ea8db601020805f2",
        "verified_at": "2026-10-29T01:58:37.812754+00:00",
        "packages": []
      }
    },
    {
      "id": "github:degawa/errstat",
      "name": "errstat",
      "repository": {
        "host": "github",
        "owner": "degawa",
        "name": "errstat",
        "url": "https://github.com/degawa/errstat"
      },
      "description": "Return and inspect structured error statuses and messages.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Error handling"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "error-handling",
          "fortran",
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-29T01:58:05.528366+00:00"
      },
      "curation": {
        "topics": [
          "diagnostics",
          "error-handling",
          "status-codes"
        ],
        "gams_codes": [
          "R",
          "R3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Error status and message handling. A custom reciprocal routine uses catch_error and set_success. The main checks a successful result, zero rejection with an exact code and message, and a subsequent successful call clearing the error. No source edits. The reciprocal is only a driver, not a mathematical procedure supplied by errstat. Optional omitted-status termination and user-defined task/message repositories are not exercised.",
        "reviewed_revision": "336ee374c82a4525d87444c767a1f23f059d5723",
        "procedures": [
          {
            "id": "error-status",
            "package_id": "errstat",
            "revision": "336ee374c82a4525d87444c767a1f23f059d5723",
            "module": "errstat",
            "procedure": "catch_error / set_success / error_stat_type / append_message / initialize",
            "gams_codes": [
              "R3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Error status and message handling. A custom reciprocal routine uses catch_error and set_success. The main checks a successful result, zero rejection with an exact code and message, and a subsequent successful call clearing the error. No source edits. The reciprocal is only a driver, not a mathematical procedure supplied by errstat. Optional omitted-status termination and user-defined task/message repositories are not exercised. The R3 driver checks nine success/failure/recovery calls with exact codes/messages, signed-zero and NaN input rejection, independent copied statuses, appended context and explicit reset. The illustrative safe square-root ratio is supplied by the driver, not errstat.",
            "evidence": [
              {
                "path": "src/errstat.f90",
                "sha256": "b8bc5eff47dfeadb22e18893f95d5cf8bad98f315dcc73551e9bbfa3aa0463ea",
                "line": 1
              },
              {
                "path": "src/type/errorStat/errorStat.f90",
                "sha256": "db08663cdbfd2710a2eb8bcea502202f898c5f774d952407580d283e1cd30624",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/error/err_code.f90",
                "sha256": "db58edcd0187969b13bfb70b39ec12f807375dbb3e2d6a2c5d5c5225e5863fdc"
              }
            ],
            "driver_id": "errstat-recovery-reference"
          }
        ]
      },
      "playground": {
        "package_id": "errstat",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=errstat",
        "package_revision": "336ee374c82a4525d87444c767a1f23f059d5723",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/errstat.f90",
          "sha256": "96ae8eb80913eeefd5d58cd5c3991a6ad754bc83e0b06e1cef3ca74c39187c31"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "336ee374c82a4525d87444c767a1f23f059d5723",
        "verified_at": "2026-10-29T01:58:37.812754+00:00",
        "packages": []
      }
    },
    {
      "id": "github:degawa/fassert",
      "name": "fassert",
      "repository": {
        "host": "github",
        "owner": "degawa",
        "name": "fassert",
        "url": "https://github.com/degawa/fassert"
      },
      "description": "Extensible assertions for scalar and array values and numerical tolerances.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Testing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "assert",
          "assertion",
          "assertion-library",
          "assertions",
          "assertions-library",
          "fortran",
          "fortran-library",
          "fortran-package-manager",
          "fortran2008",
          "modern-fortran",
          "testing"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-29T01:58:05.528366+00:00"
      },
      "curation": {
        "topics": [
          "assertions",
          "floating-point-comparison",
          "testing",
          "unit-testing"
        ],
        "gams_codes": [
          "R",
          "R2",
          "S",
          "S3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Assertions for integer scalars and arrays plus approximate real comparison with an explicit tolerance. The main captures an intentional failed comparison as a logical status and message, checks both, and continues successfully. No source edits; matches the existing Any dependency revision. Not a validation of every type, rank, tolerance convention, custom comparator or test-framework integration.",
        "reviewed_revision": "678fa217df79af318cc537d3c69eab3b7cf68cb7",
        "procedures": [
          {
            "id": "assert-values",
            "package_id": "fassert",
            "revision": "678fa217df79af318cc537d3c69eab3b7cf68cb7",
            "module": "fassert",
            "procedure": "assert_equal / assert_approx_equal / expect_equal / expect_approx_equal",
            "gams_codes": [
              "S3",
              "R2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Assertions for integer scalars and arrays plus approximate real comparison with an explicit tolerance. The main captures an intentional failed comparison as a logical status and message, checks both, and continues successfully. No source edits; matches the existing Any dependency revision. Not a validation of every type, rank, tolerance convention, custom comparator or test-framework integration. The S3 driver checks three positive assertions and 13 captured scalar/vector comparisons, including failures, both exact tolerance boundaries and independently checked logical outcomes and diagnostic labels/status prefixes. The separate R2 mapping remains source-supported.",
            "evidence": [
              {
                "path": "src/fassert.f90",
                "sha256": "41a17434eb7360615fd4893901e7d2db704463374a46eeededa8545c4e0130ac",
                "line": 1
              },
              {
                "path": "src/approxEqual/assertApproxEqual.f90",
                "sha256": "b857c0d82d8cfff4602fc1a6a17f49aa474d0634962f5039a8a2eecf032637e2",
                "line": 1
              },
              {
                "path": "src/approxEqual/expectApproxEqual.f90",
                "sha256": "17b3aab7725a1d14e98dca6423a27ec237dccd12082f82c907fd8d3df6512f18",
                "line": 10
              }
            ],
            "author_examples": [
              {
                "path": "example/collab/testdrive.f90",
                "sha256": "b7307cf28fc71daf607d8477ac8026da89e7a3a4d2433ca816eda2d70eb58b48"
              }
            ],
            "driver_id": "fassert-captured-reference"
          }
        ]
      },
      "playground": {
        "package_id": "fassert",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fassert",
        "package_revision": "678fa217df79af318cc537d3c69eab3b7cf68cb7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fassert.f90",
          "sha256": "89c243974f26f51d2d23f7d402317f1197ac544d7490e5993bb90742fea53633"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "678fa217df79af318cc537d3c69eab3b7cf68cb7",
        "verified_at": "2026-10-29T01:58:37.812754+00:00",
        "packages": []
      }
    },
    {
      "id": "github:degawa/fed",
      "name": "fed",
      "repository": {
        "host": "github",
        "owner": "degawa",
        "name": "fed",
        "url": "https://github.com/degawa/fed"
      },
      "description": "Construct Fortran format edit descriptors programmatically.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Text processing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "format",
          "formatting-text",
          "fortran",
          "fortran-library",
          "fortran-package-manager",
          "fortran2008"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-29T01:11:46.981596+00:00"
      },
      "curation": {
        "topics": [
          "format-descriptors",
          "formatted-output",
          "string-formatting"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Programmatic Fortran edit descriptors. The main generates and applies integer, character and fixed-decimal real formats, checks exact aligned output, and verifies a zero-padded integer. The registry stdlib dependency is mapped to a pinned Git source and manifest version; compatible stdlib objects are reused. No Fortran source edits. Arrays, complex values, user-defined I/O and every descriptor/control mode are not covered.",
        "reviewed_revision": "d735aa2b3bd6b20840bcc16ff569e8cfc0492267",
        "procedures": [
          {
            "id": "fed-format",
            "package_id": "fed",
            "revision": "d735aa2b3bd6b20840bcc16ff569e8cfc0492267",
            "module": "fed",
            "procedure": "format / int / real / char",
            "gams_codes": [
              "N1",
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Programmatic Fortran edit descriptors. The main generates and applies integer, character and fixed-decimal real formats, checks exact aligned output, and verifies a zero-padded integer. The registry stdlib dependency is mapped to a pinned Git source and manifest version; compatible stdlib objects are reused. No Fortran source edits. Arrays, complex values, user-defined I/O and every descriptor/control mode are not covered.",
            "evidence": [
              {
                "path": "src/fed.f90",
                "sha256": "4e6dd0b6f338879e360c056d2d216dfd6416f1bd1bc18adc00e990c4022b4202",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/integer.f90",
                "sha256": "cccc67d148438dc13476cdda9f6ccd8da92104c4c6abaaac436f83a7a8732353"
              },
              {
                "path": "example/real.f90",
                "sha256": "44d449346997a358306038f533f4b23aa08774b6b72eed519ae657933a882bc5"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "fed",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fed",
        "package_revision": "d735aa2b3bd6b20840bcc16ff569e8cfc0492267",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fed.f90",
          "sha256": "9ac35bada9d3292c1c41bcb1e8cfb8c0b78fd34e7378c16c7c01c7c72c58bddf"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d735aa2b3bd6b20840bcc16ff569e8cfc0492267",
        "verified_at": "2026-10-29T01:33:12.542944+00:00",
        "packages": [
          {
            "id": "github:degawa/enclose",
            "repository": "degawa/enclose",
            "revision": "d3ea2ea989296bf855f4cb07ea8db601020805f2"
          },
          {
            "id": "github:degawa/enumul",
            "repository": "degawa/enumul",
            "revision": "064bba70797b84100b25dc4466b28f1f38147d0e"
          },
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          }
        ]
      }
    },
    {
      "id": "github:degawa/orbs",
      "name": "orbs",
      "repository": {
        "host": "github",
        "owner": "degawa",
        "name": "orbs",
        "url": "https://github.com/degawa/orbs"
      },
      "description": "Arithmetic, logical and shift operators for stdlib-backed bitsets.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "bitset",
          "bitsets",
          "fortran",
          "fortran-library",
          "fortran-package-manager",
          "modern-fortran",
          "standard-library",
          "wrapper"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T22:42:25.593426+00:00"
      },
      "curation": {
        "topics": [
          "binary-arithmetic",
          "bit-operations",
          "bitsets",
          "morton-codes"
        ],
        "gams_codes": [
          "A",
          "A1",
          "N",
          "N2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Fixed-width bitset arithmetic and logical operations. The main computes an x neighbor for every cell of a two-dimensional 4-by-4 Morton grid, checking all sixteen results and wraparound against independent intrinsic integer operations.",
        "reviewed_revision": "3cf7fcec19798367f6f5bd26bad861c510449265",
        "procedures": [
          {
            "id": "orbs-bitsets",
            "package_id": "orbs",
            "revision": "3cf7fcec19798367f6f5bd26bad861c510449265",
            "module": "orbs",
            "procedure": "operable_bitset / arithmetic and logical operators",
            "gams_codes": [
              "A1",
              "N2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Fixed-width bitset arithmetic and logical operations. The main computes an x neighbor for every cell of a two-dimensional 4-by-4 Morton grid, checking all sixteen results and wraparound against independent intrinsic integer operations.",
            "evidence": [
              {
                "path": "src/orbs.f90",
                "sha256": "cba32ebdc46fa9e4d313a48384a513c41520677916bea365098c43bd0807efb6",
                "line": 1
              }
            ],
            "author_examples": [],
            "driver_id": "orbs-bitwise-reference"
          }
        ],
        "numerical_review": {
          "revision": "3cf7fcec19798367f6f5bd26bad861c510449265",
          "archive_sha256": "dcbb0c8eeaa99febd6683dd2270dcf5757e512193eebe77258918c2713f99d23",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "orbs-bitsets"
          ],
          "notes": "Fixed-width bitset arithmetic and logical operations. The main computes an x neighbor for every cell of a two-dimensional 4-by-4 Morton grid, checking all sixteen results and wraparound against independent intrinsic integer operations."
        }
      },
      "playground": {
        "package_id": "orbs",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=orbs",
        "package_revision": "3cf7fcec19798367f6f5bd26bad861c510449265",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/orbs.f90",
          "sha256": "11104e37f36be3c44fcc593741d47d68e6d2bcf67bb8349600dee24cb08adbfc"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "3cf7fcec19798367f6f5bd26bad861c510449265",
        "verified_at": "2026-10-28T22:42:59.624262+00:00",
        "packages": [
          {
            "id": "github:degawa/bstrith",
            "repository": "degawa/bstrith",
            "revision": "7ed7730e34c7e1f78f2be9426ccc170f9dcaf57e"
          },
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          }
        ]
      }
    },
    {
      "id": "github:degawa/strith",
      "name": "strith",
      "repository": {
        "host": "github",
        "owner": "degawa",
        "name": "strith",
        "url": "https://github.com/degawa/strith"
      },
      "description": "Decimal-string arithmetic and signed or unsigned formatting of long integers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "High precision"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-library",
          "fortran-package-manager",
          "fortran2008",
          "long-integer",
          "modern-fortran",
          "string"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T21:31:23.623006+00:00"
      },
      "curation": {
        "topics": [
          "decimal-arithmetic",
          "integer-arithmetic",
          "integer-formatting",
          "strings"
        ],
        "gams_codes": [
          "A",
          "A1",
          "A6"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Signed decimal-string integer addition and subtraction beyond 64-bit range, plus unsigned interpretation of an int64 bit pattern. This is fixed-capacity decimal representation, not unlimited arbitrary precision.",
        "reviewed_revision": "da2b1f489a178cb443f636e3f9c89aed6c8702b1",
        "procedures": [
          {
            "id": "strith-api",
            "package_id": "strith",
            "revision": "da2b1f489a178cb443f636e3f9c89aed6c8702b1",
            "module": "strith_type_strint / strith_util_toString",
            "procedure": "add / sub / to_string",
            "gams_codes": [
              "A1",
              "A6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Signed decimal-string integer addition and subtraction beyond 64-bit range, plus unsigned interpretation of an int64 bit pattern. This is fixed-capacity decimal representation, not unlimited arbitrary precision. Dedicated A1 driver checks 3362 signed small additions/subtractions against native integer results and five exact large-decimal identities beyond int64, including carry, borrow, ordering and cancellation. Fixed capacity and overflow are not validated.",
            "evidence": [
              {
                "path": "src/type/strint.f90",
                "line": 172,
                "sha256": "ce256be7c61235c255bf5ba095f41ec1215fa912f3bd82e16d324831a3a3f3f0"
              },
              {
                "path": "src/util/toString/toString.f90",
                "line": 125,
                "sha256": "8a7b90876386428a9303583e202bfcc49b5ec9acb8ce8eed9fb95b52945199b2"
              }
            ],
            "author_examples": [],
            "driver_id": "strith-integer-reference"
          }
        ],
        "numerical_review": {
          "revision": "da2b1f489a178cb443f636e3f9c89aed6c8702b1",
          "archive_sha256": "f302587eafa09b1ce11d48464f25f3e114cc2e5a0c81a1b586a3d38287d6f137",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "strith-api"
          ],
          "notes": "Signed decimal-string integer addition and subtraction beyond 64-bit range, plus unsigned interpretation of an int64 bit pattern. This is fixed-capacity decimal representation, not unlimited arbitrary precision."
        }
      },
      "playground": {
        "package_id": "strith",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=strith",
        "package_revision": "da2b1f489a178cb443f636e3f9c89aed6c8702b1",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/strith.f90",
          "sha256": "3714004b470be72de787902a7bfa8518bd998a6d89600e127e28c7d9e8550152"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "da2b1f489a178cb443f636e3f9c89aed6c8702b1",
        "verified_at": "2026-10-28T21:40:06.974444+00:00",
        "packages": []
      }
    },
    {
      "id": "github:dftbplus/mpifx",
      "name": "mpifx",
      "repository": {
        "host": "github",
        "owner": "dftbplus",
        "name": "mpifx",
        "url": "https://github.com/dftbplus/mpifx"
      },
      "description": "Typed modern Fortran MPI wrappers; single-process broadcast/reduction example.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Parallel computing"
      ],
      "license": {
        "label": "BSD-2-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "mpi",
          "wrappers"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 37,
        "stars_updated_at": "2026-10-29T21:52:47.845574+00:00"
      },
      "curation": {
        "topics": [
          "collective-operations",
          "communication",
          "mpi",
          "parallel-computing"
        ],
        "gams_codes": [
          "R"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The upstream CMake library source list is generated with Fypp 3.2, with every generated file checksum locked in the recipe. The example exercises communicator initialization, real-vector broadcast, real and integer all-reduce and in-place maximum reduction on exactly one MPI process, checking API statuses and returned data. MPICH is pinned and UCX transports are limited to self/shared memory. This illustrates typed communication APIs, not parallel execution or speedup; point-to-point messaging, multiple processes and other wrappers are outside verification scope. Classification R covers the tested service routines.",
        "reviewed_revision": "1223bd515bf2ccf39f5575d628ab2867a3d8e155",
        "procedures": [
          {
            "id": "mpifx-collectives",
            "package_id": "mpifx",
            "revision": "1223bd515bf2ccf39f5575d628ab2867a3d8e155",
            "module": "libmpifx_module",
            "procedure": "mpifx_bcast / mpifx_allreduce / mpifx_allreduceip",
            "gams_codes": [
              "R"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The upstream CMake library source list is generated with Fypp 3.2, with every generated file checksum locked in the recipe. The example exercises communicator initialization, real-vector broadcast, real and integer all-reduce and in-place maximum reduction on exactly one MPI process, checking API statuses and returned data. MPICH is pinned and UCX transports are limited to self/shared memory. This illustrates typed communication APIs, not parallel execution or speedup; point-to-point messaging, multiple processes and other wrappers are outside verification scope. Classification R covers the tested service routines.",
            "evidence": [
              {
                "path": "lib/mpifx_bcast.fpp",
                "sha256": "8b3afe1219f2507096068cc253e31d8a4a0754e185dc68be55ff612f5737e53c",
                "line": 1
              },
              {
                "path": "lib/mpifx_allreduce.fpp",
                "sha256": "1ddb9f1b5b6536ae1968a4d99864ac5ae2b42441c3f64760a2d370ebb09173e8",
                "line": 1
              },
              {
                "path": "lib/mpifx_comm.fpp",
                "sha256": "9cb117333688afd92815d728b51327f48cb9f5668dcf653e5b2c075a971797ed",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/test_allreduce.f90",
                "sha256": "df25014b3215d2187b76fd37858675ccda934bb4e2ebb8cd9e553540ed1ffad8"
              },
              {
                "path": "test/test_bcast.f90",
                "sha256": "e5c9c90bb4f4132915cb9bb3158bc7fd6ff1e2c65e384fd29c2b0046c8ee4a54"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "mpifx",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=mpifx",
        "package_revision": "1223bd515bf2ccf39f5575d628ab2867a3d8e155",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/mpifx.f90",
          "sha256": "a91ad18b2c69a047199d362c079e94207b8eb2ea2dcd14c3e8ec8fcdf87556ee"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "1223bd515bf2ccf39f5575d628ab2867a3d8e155",
        "verified_at": "2026-10-29T21:51:26.765767+00:00",
        "packages": []
      }
    },
    {
      "id": "github:dftbplus/scalapackfx",
      "name": "scalapackfx",
      "repository": {
        "host": "github",
        "owner": "dftbplus",
        "name": "scalapackfx",
        "url": "https://github.com/dftbplus/scalapackfx"
      },
      "description": "ScaLAPACK wrappers; checked single-process symmetric eigensolver example.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD-2-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "scalapack",
          "wrappers"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 18,
        "stars_updated_at": "2026-10-29T21:52:47.845574+00:00"
      },
      "curation": {
        "topics": [
          "eigenvalues",
          "eigenvectors",
          "linear-algebra",
          "mpi",
          "scalapack"
        ],
        "gams_codes": [
          "D",
          "D4",
          "D4a",
          "D4a1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The upstream CMake library source list is generated with Fypp 3.2 and exact generated-output checksums. The example uses a 1-by-1 BLACS grid and pinned MPICH, ScaLAPACK and OpenBLAS native libraries. It computes eigenvalues and eigenvectors of a symmetric 3-by-3 tridiagonal matrix using scalafx_psyev, checks eigenvalues against 2-sqrt(2), 2 and 2+sqrt(2), and independently checks eigenpair residuals and orthogonality. All entries must be finite. D4a1 (ordinary real symmetric eigenproblems) applies to the tested eigensolver. This is a one-process API example, not a distributed-performance demonstration; other solvers, generalized eigenproblems and multiple processes are not verified.",
        "reviewed_revision": "570cbf45836ed05cf791bc3f404f4f10929e5017",
        "procedures": [
          {
            "id": "scalapackfx-symmetric-eigenproblem",
            "package_id": "scalapackfx",
            "revision": "570cbf45836ed05cf791bc3f404f4f10929e5017",
            "module": "scalapackfx_module",
            "procedure": "scalafx_psyev",
            "gams_codes": [
              "D4a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The upstream CMake library source list is generated with Fypp 3.2 and exact generated-output checksums. The example uses a 1-by-1 BLACS grid and pinned MPICH, ScaLAPACK and OpenBLAS native libraries. It computes eigenvalues and eigenvectors of a symmetric 3-by-3 tridiagonal matrix using scalafx_psyev, checks eigenvalues against 2-sqrt(2), 2 and 2+sqrt(2), and independently checks eigenpair residuals and orthogonality. All entries must be finite. D4a1 (ordinary real symmetric eigenproblems) applies to the tested eigensolver. This is a one-process API example, not a distributed-performance demonstration; other solvers, generalized eigenproblems and multiple processes are not verified.",
            "evidence": [
              {
                "path": "lib/scalapackfx.fpp",
                "sha256": "0047f2b700d2e9c329062a7f5686c6fd0ff3a7e261131003d026ca8fedbccf8f",
                "line": 1
              },
              {
                "path": "lib/scalapackfx.fypp",
                "sha256": "1f3411e4b62e6013f8008b446a1b048eb301826d5edeb205020c8a323674cc0d",
                "line": 1
              },
              {
                "path": "lib/blacsgrid.fpp",
                "sha256": "e2b1edc5c09e952b47bb29b68f1f40ede287a05c61185bb5cc850703313c143e",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/test_diag.f90",
                "sha256": "e2b3be9794b86b1579d95b899c99141c1c86194a82ab95e3f9877ce59833f720"
              }
            ],
            "driver_id": "scalapackfx-eigen-reference"
          }
        ],
        "numerical_review": {
          "revision": "570cbf45836ed05cf791bc3f404f4f10929e5017",
          "archive_sha256": "50c1f76ffcfe35aa879eb3e6cbedce6037cac8a6c24f123251fd4d8aa8389461",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "scalapackfx-symmetric-eigenproblem"
          ],
          "notes": "The upstream CMake library source list is generated with Fypp 3.2 and exact generated-output checksums. The example uses a 1-by-1 BLACS grid and pinned MPICH, ScaLAPACK and OpenBLAS native libraries. It computes eigenvalues and eigenvectors of a symmetric 3-by-3 tridiagonal matrix using scalafx_psyev, checks eigenvalues against 2-sqrt(2), 2 and 2+sqrt(2), and independently checks eigenpair residuals and orthogonality. All entries must be finite. D4a1 (ordinary real symmetric eigenproblems) applies to the tested eigensolver. This is a one-process API example, not a distributed-performance demonstration; other solvers, generalized eigenproblems and multiple processes are not verified."
        }
      },
      "playground": {
        "package_id": "scalapackfx",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=scalapackfx",
        "package_revision": "570cbf45836ed05cf791bc3f404f4f10929e5017",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/scalapackfx.f90",
          "sha256": "dfc0a74a6d014ee2026cb0dca3ee22c5646a83c8c0f5bdd898ac436c62e8967f"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "570cbf45836ed05cf791bc3f404f4f10929e5017",
        "verified_at": "2026-10-29T21:51:26.765767+00:00",
        "packages": []
      }
    },
    {
      "id": "github:dftd4/dftd4",
      "name": "dftd4",
      "repository": {
        "host": "github",
        "owner": "dftd4",
        "name": "dftd4",
        "url": "https://github.com/dftd4/dftd4"
      },
      "description": "Charge-dependent D4 molecular dispersion energies and gradients.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Quantum mechanics"
      ],
      "license": {
        "label": "LGPL-3.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "ase",
          "computational-chemistry",
          "dispersion-correction",
          "fortran-package-manager",
          "pyscf",
          "qcschema",
          "quantum-chemistry"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 232,
        "stars_updated_at": "2026-10-30T10:33:53.375997+00:00"
      },
      "curation": {
        "topics": [
          "density-functional-theory",
          "dispersion-correction",
          "molecular-energies",
          "molecular-forces",
          "quantum-chemistry"
        ],
        "gams_codes": [
          "Z"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The original FPM library and pinned mctc-lib, multicharge, Jonquil and TOML-F dependencies are compiled with GNU Fortran 16.2.0 and pinned OpenBLAS. Jonquil and mctc-lib request different TOML-F tags; the operator recipe resolves both to the mctc-lib-requested 0.4.2 commit, checksummed in the dependency lock. The checked consumer adapts the upstream test_pbed4_mb01 reference and embeds MB16-43/01 geometry from mstore v0.4.0, retaining its Apache-2.0 attribution. PBE-D4 two-body energy is compared with -0.018578752883363366 Hartree to 1e-10 Hartree. It also checks finite results, zero net force, translation invariance and one analytical gradient component against a central finite difference with step 1e-5 bohr and tolerance 1e-6. Z denotes the physical dispersion model; no general-purpose differentiation or linear-system interface is inferred from its internal calculations. Other molecules, periodic systems, D4S, three-body terms and all gradients are outside this consumer verification scope. No numerical library source edits are applied; all dependencies use immutable shared archive exports. LGPL-3.0-or-later and dependency notices are retained.",
        "reviewed_revision": "1107ea7c7c2131719e306fd57a5f4a1579e2577e",
        "procedures": [
          {
            "id": "dftd4-dispersion",
            "package_id": "dftd4",
            "revision": "1107ea7c7c2131719e306fd57a5f4a1579e2577e",
            "module": "dftd4",
            "procedure": "new_d4_model / get_dispersion",
            "gams_codes": [
              "Z"
            ],
            "review_level": "source-reviewed",
            "derivatives": "analytical gradient; one component checked by finite differences",
            "notes": "The original FPM library and pinned mctc-lib, multicharge, Jonquil and TOML-F dependencies are compiled with GNU Fortran 16.2.0 and pinned OpenBLAS. Jonquil and mctc-lib request different TOML-F tags; the operator recipe resolves both to the mctc-lib-requested 0.4.2 commit, checksummed in the dependency lock. The checked consumer adapts the upstream test_pbed4_mb01 reference and embeds MB16-43/01 geometry from mstore v0.4.0, retaining its Apache-2.0 attribution. PBE-D4 two-body energy is compared with -0.018578752883363366 Hartree to 1e-10 Hartree. It also checks finite results, zero net force, translation invariance and one analytical gradient component against a central finite difference with step 1e-5 bohr and tolerance 1e-6. Z denotes the physical dispersion model; no general-purpose differentiation or linear-system interface is inferred from its internal calculations. Other molecules, periodic systems, D4S, three-body terms and all gradients are outside this consumer verification scope. No numerical library source edits are applied; all dependencies use immutable shared archive exports. LGPL-3.0-or-later and dependency notices are retained.",
            "evidence": [
              {
                "path": "src/dftd4.f90",
                "sha256": "9c6b7fb3c26cc499bc3c59879cf87ce290a031c03fd0830d814ccf1fdfe022b0",
                "line": 1
              },
              {
                "path": "src/dftd4/disp.f90",
                "sha256": "6b5e775c20d4fb417feb7002e8189ac435e361e98e0515d31995e66ffad0a771",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/unit/test_dftd4.f90",
                "sha256": "911ada678364a4d1ddca9b9afe1fdb3106532d46ac996a2875a570f706a07efa",
                "line": 1
              },
              {
                "path": "assets/examples/api-minimal-latest/app/main.f90",
                "sha256": "3a9d549a03e362e2f31b8677604cff4d85a20c378576e0f22104eb37dcb9b360",
                "line": 1
              }
            ],
            "driver_id": "dftd4-dispersion-reference"
          }
        ]
      },
      "playground": {
        "package_id": "dftd4",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dftd4",
        "package_revision": "1107ea7c7c2131719e306fd57a5f4a1579e2577e",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/dftd4.f90",
          "sha256": "4e2ca8fdf973c1ca39122e76a8c51eac9366c39c6bdebb5e1a165815a4a4e996"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "1107ea7c7c2131719e306fd57a5f4a1579e2577e",
        "verified_at": "2026-10-30T10:39:25.070418+00:00",
        "packages": [
          {
            "id": "github:grimme-lab/mctc-lib",
            "repository": "grimme-lab/mctc-lib",
            "revision": "aec7f40ccf1b0dceb9156ae6dc6667fd61206916"
          },
          {
            "id": "github:grimme-lab/multicharge",
            "repository": "grimme-lab/multicharge",
            "revision": "576f499b49eb57f8c2dc1ba6f7017800f1e332d9"
          },
          {
            "id": "github:toml-f/jonquil",
            "repository": "toml-f/jonquil",
            "revision": "297fb2c2f7344ce4575e5b61b59da071044149bf"
          },
          {
            "id": "github:toml-f/toml-f",
            "repository": "toml-f/toml-f",
            "revision": "51a26158c6d52bbc59cb482bdd13f00d7fd032a3"
          }
        ]
      }
    },
    {
      "id": "github:electronicstructurelibrary/flook",
      "name": "flook",
      "repository": {
        "host": "github",
        "owner": "ElectronicStructureLibrary",
        "name": "flook",
        "url": "https://github.com/ElectronicStructureLibrary/flook"
      },
      "description": "Embed Lua scripts and exchange Fortran values through tables.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Language interfaces"
      ],
      "license": {
        "label": "MPL-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "lua",
          "lua-environment"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 12,
        "stars_updated_at": "2026-10-29T22:54:35.803464+00:00"
      },
      "curation": {
        "topics": [
          "interoperability",
          "language-bindings",
          "lua",
          "scripting"
        ],
        "gams_codes": [
          "S"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The procedural flook interface embeds the repository-bundled Lua 5.3.5 and Aotus bridge. The FPM wrapper selects the upstream procedural library and bundled C sources, excludes standalone Lua interpreters and the alternative Fortran 2003 interface, and links the system math/dynamic-loading libraries. The checked consumer passes parameters to Lua, executes a short script, retrieves its real and integer results and independently checks 14 and 21. The bundled versions have their own build context; they do not replace the separately catalogued Aotus package. MPL-2.0 and the bundled Aotus/Lua notices are retained. S covers language interoperability.",
        "reviewed_revision": "7b644a2ace47e43772006764a58166b6635e8941",
        "procedures": [
          {
            "id": "flook-lua",
            "package_id": "flook",
            "revision": "7b644a2ace47e43772006764a58166b6635e8941",
            "module": "flook",
            "procedure": "lua_init / lua_table / lua_set / lua_run / lua_get / lua_close",
            "gams_codes": [
              "S"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The procedural flook interface embeds the repository-bundled Lua 5.3.5 and Aotus bridge. The FPM wrapper selects the upstream procedural library and bundled C sources, excludes standalone Lua interpreters and the alternative Fortran 2003 interface, and links the system math/dynamic-loading libraries. The checked consumer passes parameters to Lua, executes a short script, retrieves its real and integer results and independently checks 14 and 21. The bundled versions have their own build context; they do not replace the separately catalogued Aotus package. MPL-2.0 and the bundled Aotus/Lua notices are retained. S covers language interoperability.",
            "evidence": [
              {
                "path": "src/flook.F90",
                "sha256": "838d821801c2e179f7ce1b4b9e88ade414e38bbfd2c51fcbe851f39a6a59fdb0",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "src/test/tst_tbl.f90",
                "sha256": "a30929f6d3cb172e93de8684d08ddbbbc9dc0c9b06a7285aa8c180f1318954af"
              },
              {
                "path": "src/test/tst_passreturn.f90",
                "sha256": "317a8cd884409af7c19e07d9009dbbae2732695ea50d5df3a35c3ff6d14d38ea"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "flook",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=flook",
        "package_revision": "7b644a2ace47e43772006764a58166b6635e8941",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/flook.f90",
          "sha256": "cb2b4895ecfeb131ad8dfd7bb4aaaafcd4b61f6b2663c1958e3366e03e41bd63"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "7b644a2ace47e43772006764a58166b6635e8941",
        "verified_at": "2026-10-29T23:03:22.407960+00:00",
        "packages": []
      }
    },
    {
      "id": "github:euler-37/amosf90",
      "name": "amosf90",
      "repository": {
        "host": "github",
        "owner": "Euler-37",
        "name": "amosf90",
        "url": "https://github.com/Euler-37/amosf90"
      },
      "description": "AMOS interfaces for complex-argument, noninteger-order Bessel and related functions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Special functions"
      ],
      "license": {
        "label": "NOASSERTION",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T23:08:38.764348+00:00"
      },
      "curation": {
        "topics": [
          "bessel-functions",
          "complex-arguments",
          "modified-bessel-functions",
          "special-functions"
        ],
        "gams_codes": [
          "C",
          "C10"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "AMOS module interfaces for complex-argument Bessel functions with noninteger nonnegative order, including modified Bessel functions. The checked main compares J_0.3 and I_0.3 at 1+0.5i with independent convergent power series and K_0.5 with its closed form. Other argument regions, orders, scaling modes and Airy/Hankel routines are not validated. The upstream README warns of possible bugs.",
        "reviewed_revision": "b54a4d4a1d8f7c97acd180ed5bbaae8d089a9fa7",
        "procedures": [
          {
            "id": "amosf90-bessel",
            "package_id": "amosf90",
            "revision": "b54a4d4a1d8f7c97acd180ed5bbaae8d089a9fa7",
            "module": "amos",
            "procedure": "f90_zbesj / f90_zbesi / f90_zbesk",
            "gams_codes": [
              "C10"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "AMOS module interfaces for complex-argument Bessel functions with noninteger nonnegative order, including modified Bessel functions. The checked main compares J_0.3 and I_0.3 at 1+0.5i with independent convergent power series and K_0.5 with its closed form. Other argument regions, orders, scaling modes and Airy/Hankel routines are not validated. The upstream README warns of possible bugs. Dedicated C10 driver checks 39 complex values: J/I sequences of length two for three noninteger starting orders at three moderate right-half-plane arguments, using independent convergent power series with intrinsic Gamma, and K(1/2) using its closed form. All status/underflow flags must be zero. Scaled mode, branch-cut behavior, extreme arguments and the full library are not verified. Pinned failure: J_0.3(2-0.75i) has scaled error about 0.556 against both the independent series and an 80-digit mpmath reference. Failing source and output are retained under docs/gams-candidates/amosf90. The checked driver uses upper-right-quadrant arguments and excludes this case; no source patch or tolerance relaxation is applied.",
            "evidence": [
              {
                "path": "src/amos.f90",
                "sha256": "acffb85c0777b62444a99e2ac83c7c346777cc037f1a642f2704030d06d34797",
                "line": 4548
              }
            ],
            "author_examples": [
              {
                "path": "test/check.f90",
                "sha256": "64fccdc69f84154351ee18ba767dad018f98ce3c820f12be4be02f04c91e6dcd"
              }
            ],
            "driver_id": "amos-complex-series"
          }
        ],
        "numerical_review": {
          "revision": "b54a4d4a1d8f7c97acd180ed5bbaae8d089a9fa7",
          "archive_sha256": "bde16c382a398bcf7122d1886fef8ed49e793d66c4f0f862b17ca48162115f1b",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "amosf90-bessel"
          ],
          "notes": "AMOS module interfaces for complex-argument Bessel functions with noninteger nonnegative order, including modified Bessel functions. The checked main compares J_0.3 and I_0.3 at 1+0.5i with independent convergent power series and K_0.5 with its closed form. Other argument regions, orders, scaling modes and Airy/Hankel routines are not validated. The upstream README warns of possible bugs."
        }
      },
      "playground": {
        "package_id": "amosf90",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=amosf90",
        "package_revision": "b54a4d4a1d8f7c97acd180ed5bbaae8d089a9fa7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/amosf90.f90",
          "sha256": "85860c7f1e45f3c1e0b9c20149d513a1beea0c30f0e44f7c813d5cc4db7083e6"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b54a4d4a1d8f7c97acd180ed5bbaae8d089a9fa7",
        "verified_at": "2026-10-28T23:12:09.139584+00:00",
        "packages": []
      }
    },
    {
      "id": "github:euler-37/fortran_huffman",
      "name": "fortran_huffman",
      "repository": {
        "host": "github",
        "owner": "Euler-37",
        "name": "fortran_huffman",
        "url": "https://github.com/Euler-37/fortran_huffman"
      },
      "description": "Huffman coding of byte streams with file compression and decompression.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Encoding and compression"
      ],
      "license": {
        "label": "Not specified upstream",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "huffman-compression-algorithm"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "compression",
          "file-io",
          "huffman-coding",
          "lossless-compression"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "c9976192e0db7738fcb65f3e83f209ac49b52880"
      },
      "playground": {
        "package_id": "fortran_huffman",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran_huffman",
        "package_revision": "c9976192e0db7738fcb65f3e83f209ac49b52880",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran_huffman.f90",
          "sha256": "a2845f7cf7ace98a80fa3109de6ef5ff97f4892d82705bcf95faf97a2fb80c64"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "c9976192e0db7738fcb65f3e83f209ac49b52880",
        "verified_at": "2026-10-28T00:46:44.377165+00:00",
        "packages": []
      }
    },
    {
      "id": "github:euler-37/fortran_vector",
      "name": "fortran_vector",
      "repository": {
        "host": "github",
        "owner": "Euler-37",
        "name": "fortran_vector",
        "url": "https://github.com/Euler-37/fortran_vector"
      },
      "description": "Growable integer vectors with insertion, removal and duplicate elimination.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "NOASSERTION",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T23:08:38.764348+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "duplicate-removal",
          "dynamic-arrays",
          "integer-vectors"
        ],
        "gams_codes": [
          "N",
          "N4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Growable integer vectors. The checked main verifies growth from a two-element capacity, appended arrays, stable duplicate removal, remove/delete/pop and final compaction against independent expected contents. A checksum-guarded one-line edit fixes aliasing in unique: remove the already saved first value instead of the first array element while that array is being compacted. Empty-vector unique and all invalid-input cases are not covered.",
        "reviewed_revision": "95469e2ce1162b0ede3ca3435ebd94ec6b6fee79",
        "procedures": [
          {
            "id": "fortran-vector-storage",
            "package_id": "fortran_vector",
            "revision": "95469e2ce1162b0ede3ca3435ebd94ec6b6fee79",
            "module": "fortran_vector",
            "procedure": "vector_int%append / unique / delete",
            "gams_codes": [
              "N4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Growable integer vectors. The checked main verifies growth from a two-element capacity, appended arrays, stable duplicate removal, remove/delete/pop and final compaction against independent expected contents. A checksum-guarded one-line edit fixes aliasing in unique: remove the already saved first value instead of the first array element while that array is being compacted. Empty-vector unique and all invalid-input cases are not covered.",
            "evidence": [
              {
                "path": "src/fortran_vector.f90",
                "sha256": "0ee8dc6b054a18b3154952430a29577527edf494e7416385a4656446cd083833",
                "line": 78
              }
            ],
            "author_examples": [
              {
                "path": "test/check.f90",
                "sha256": "fb03bf61a1de30537d9ac4625fed25b2a57326c2a7255f4c534187db5f1b9117"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "fortran_vector",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran_vector",
        "package_revision": "95469e2ce1162b0ede3ca3435ebd94ec6b6fee79",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran_vector.f90",
          "sha256": "9cb520eb6b7b278caaa126aa55d078576b5bdc38d7bfefa8d6cf94d53c7af159"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "95469e2ce1162b0ede3ca3435ebd94ec6b6fee79",
        "verified_at": "2026-10-28T23:12:09.139584+00:00",
        "packages": []
      }
    },
    {
      "id": "github:euler-37/integrate_fortran",
      "name": "integrate_fortran",
      "repository": {
        "host": "github",
        "owner": "Euler-37",
        "name": "integrate_fortran",
        "url": "https://github.com/Euler-37/integrate_fortran"
      },
      "description": "Gauss-Legendre quadrature for one-dimensional and multidimensional integrals.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Integration"
      ],
      "license": {
        "label": "Not specified upstream",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "gauss-legendre-integration",
          "numerical-integration",
          "quadrature"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "gauss-legendre",
          "gaussian-quadrature",
          "multidimensional",
          "quadrature"
        ],
        "gams_codes": [
          "H",
          "H2",
          "H2b",
          "H2b1",
          "H2b1a",
          "H2b1a2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "5281426a7407aa8cef7f684ff8cf1f7e4a4df906",
        "procedures": [
          {
            "id": "integrate-fortran-gauss-leg-nd",
            "package_id": "integrate_fortran",
            "revision": "5281426a7407aa8cef7f684ff8cf1f7e4a4df906",
            "module": "gauss_leg_mod",
            "procedure": "gauss_leg_nd",
            "gams_codes": [
              "H2b1a2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Fixed-rule iterated Gauss-Legendre quadrature over rectangular domains. Dedicated H2b1a2 driver checks 67 exact polynomial integrals: 50 rectangle moments at one/two panels per axis, 16 iterated integrals with y upper bound 1+x^2, and one 3D box moment. JS entries are subinterval counts, not quadrature orders; the implementation uses six nodes per panel/dimension. No adaptive error control or singular integrands are claimed.",
            "evidence": [
              {
                "path": "src/gauss_leg.f90",
                "sha256": "8e2d23d5dff50e3316b1f6364dd2a5e5e5c3fe190905185ab95d6520a148cbab",
                "line": 34
              }
            ],
            "author_examples": [
              {
                "path": "test/check.f90",
                "sha256": "16b5c33a4770e09b7bbca88282f22ded873a4613613b1f1bd91c4f6b2c543068"
              }
            ],
            "driver_id": "integrate-nd-polynomial-reference"
          }
        ],
        "numerical_review": {
          "revision": "5281426a7407aa8cef7f684ff8cf1f7e4a4df906",
          "archive_sha256": "f44882c6b3612e4fe45ad048ba05463ff1be23dab09f97aeffbb18208a97bc66",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "integrate-fortran-gauss-leg-nd"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "integrate_fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=integrate_fortran",
        "package_revision": "5281426a7407aa8cef7f684ff8cf1f7e4a4df906",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/integrate_fortran.f90",
          "sha256": "393a8db24fae89a2ebb45aeef039f0fcc2075d177e40b1ba6b3bab495ba704a6"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5281426a7407aa8cef7f684ff8cf1f7e4a4df906",
        "verified_at": "2026-10-27T22:20:55.737826+00:00",
        "packages": []
      }
    },
    {
      "id": "github:euler-37/linalg_fortran",
      "name": "linalg_fortran",
      "repository": {
        "host": "github",
        "owner": "Euler-37",
        "name": "linalg_fortran",
        "url": "https://github.com/Euler-37/linalg_fortran"
      },
      "description": "Typed LAPACK interfaces for matrix inverses, determinants and Hermitian eigenproblems.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "NOASSERTION",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "lapack",
          "linalg",
          "matrix-library"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T23:08:38.764348+00:00"
      },
      "curation": {
        "topics": [
          "determinants",
          "eigenvalues",
          "lapack",
          "linear-algebra",
          "matrix-inversion"
        ],
        "gams_codes": [
          "D",
          "D2",
          "D4",
          "D4a",
          "D4a1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Typed LAPACK interfaces. The checked real64 main verifies a matrix inverse residual, determinant, known eigenvalues, eigenpair residuals and orthonormality for a symmetric 3-by-3 tridiagonal matrix. Complex, single-precision and other BLAS/LAPACK wrappers are not covered. Legacy implicit external interfaces are explicitly enabled in the pinned package manifest.",
        "reviewed_revision": "30e7237ab54ca176e1c8dae4be2d9d44800e1f83",
        "procedures": [
          {
            "id": "linalg-fortran-inverse",
            "package_id": "linalg_fortran",
            "revision": "30e7237ab54ca176e1c8dae4be2d9d44800e1f83",
            "module": "linalg_fortran",
            "procedure": "linalg%inv / linalg%det",
            "gams_codes": [
              "D2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Typed LAPACK interfaces. The checked real64 main verifies a matrix inverse residual, determinant, known eigenvalues, eigenpair residuals and orthonormality for a symmetric 3-by-3 tridiagonal matrix. Complex, single-precision and other BLAS/LAPACK wrappers are not covered. Legacy implicit external interfaces are explicitly enabled in the pinned package manifest. Dedicated D2 real64 consumer checks 132 scaled known LDU matrices and first/last-row permutations, using closed-form bidiagonal inverse factors and determinant products. Both left/right inverse residuals are accumulated with independent scalar loops. Two exact rank-deficient examples must return a false inverse status and zero determinant. Ill-conditioned/near-singular, nonsquare, complex and real32 cases are not verified.",
            "evidence": [
              {
                "path": "src/linalg_fortran.f90",
                "sha256": "4ffa256e60df96dcaf51f283bef4f2e8f8138ffa9f5627e2fcadcd13298f8233",
                "line": 489
              }
            ],
            "author_examples": [
              {
                "path": "test/check.f90",
                "sha256": "09519034680543664024a34463c4d7613cc66055867b2b50b5493a296ec1c4f7"
              }
            ],
            "driver_id": "linalg-inverse-factor-reference"
          },
          {
            "id": "linalg-fortran-eigen",
            "package_id": "linalg_fortran",
            "revision": "30e7237ab54ca176e1c8dae4be2d9d44800e1f83",
            "module": "linalg_fortran",
            "procedure": "linalg%eigh",
            "gams_codes": [
              "D4a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Typed LAPACK interfaces. The checked real64 main verifies a matrix inverse residual, determinant, known eigenvalues, eigenpair residuals and orthonormality for a symmetric 3-by-3 tridiagonal matrix. Complex, single-precision and other BLAS/LAPACK wrappers are not covered. Legacy implicit external interfaces are explicitly enabled in the pinned package manifest. Dedicated D4 driver checks all 20 eigenpairs of the same Dirichlet tridiagonal matrix used by the ARPACK driver against analytic eigenvalues and sign-invariant sine eigenvectors, with residuals, orthonormality and reconstruction. This covers a real symmetric ordinary problem only; no generic solver success status is inferred from the API return. Refined from broad D4 to D4a1 for the reviewed real symmetric ordinary-eigenproblem interfaces.",
            "evidence": [
              {
                "path": "src/linalg_fortran.f90",
                "sha256": "4ffa256e60df96dcaf51f283bef4f2e8f8138ffa9f5627e2fcadcd13298f8233",
                "line": 672
              }
            ],
            "author_examples": [],
            "driver_id": "linalg-poisson-eigenpairs"
          }
        ],
        "numerical_review": {
          "revision": "30e7237ab54ca176e1c8dae4be2d9d44800e1f83",
          "archive_sha256": "9997e7d13e82b7cbc578e80cb199c33c50971dfa9a63486da9b9cc06a1bfce50",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "linalg-fortran-inverse",
            "linalg-fortran-eigen"
          ],
          "notes": "Typed LAPACK interfaces. The checked real64 main verifies a matrix inverse residual, determinant, known eigenvalues, eigenpair residuals and orthonormality for a symmetric 3-by-3 tridiagonal matrix. Complex, single-precision and other BLAS/LAPACK wrappers are not covered. Legacy implicit external interfaces are explicitly enabled in the pinned package manifest."
        }
      },
      "playground": {
        "package_id": "linalg_fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=linalg_fortran",
        "package_revision": "30e7237ab54ca176e1c8dae4be2d9d44800e1f83",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/linalg_fortran.f90",
          "sha256": "d7dbec89d1c1f73a6e0f32f06b11b245fd29bda7984430627166d9b190916715"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "30e7237ab54ca176e1c8dae4be2d9d44800e1f83",
        "verified_at": "2026-10-28T23:12:09.139584+00:00",
        "packages": []
      }
    },
    {
      "id": "github:euler-37/sparse_fortran",
      "name": "sparse_fortran",
      "repository": {
        "host": "github",
        "owner": "Euler-37",
        "name": "sparse_fortran",
        "url": "https://github.com/Euler-37/sparse_fortran"
      },
      "description": "Coordinate and compressed-row sparse matrices with matrix-vector products.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "Not specified upstream",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 4,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "coordinate-storage",
          "csr-storage",
          "linear-algebra",
          "matrix-vector-products",
          "sparse-matrices"
        ],
        "gams_codes": [
          "D",
          "D1",
          "D1b",
          "D1b4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "600f586a1ed099a22054ed283225787de36a31c1",
        "procedures": [
          {
            "id": "sparse-fortran-matmul",
            "package_id": "sparse_fortran",
            "revision": "600f586a1ed099a22054ed283225787de36a31c1",
            "module": "sparse_fortran",
            "procedure": "sparse_coo%sparse_product, sparse_csr%sparse_product",
            "gams_codes": [
              "D1b4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Sparse COO/CSR matrix-vector multiplication; storage conversion has a separate role.",
            "evidence": [
              {
                "path": "src/sparse_coo_fortran.f90",
                "sha256": "296feccbb3143e78270bbd8003844e8826cae900b01bc48bb4fe1a765fb59c1a",
                "line": 193
              },
              {
                "path": "src/sparse_csr_fortran.f90",
                "sha256": "f4ec0f92debf08c0d16c3beb4061cd7a81f8953428cac3f717ef25fab690e6f6",
                "line": 173
              }
            ],
            "author_examples": [
              {
                "path": "app/main.f90",
                "sha256": "3193d39f04cfce9c08d0140fd42c45f8a62789425d51911d334b6faffd5f4d23"
              }
            ],
            "driver_id": "sparse-matvec-reference"
          }
        ],
        "numerical_review": {
          "revision": "600f586a1ed099a22054ed283225787de36a31c1",
          "archive_sha256": "48b5a043ac012c1e5ceb7d047ef477102344b548f61bfa9c44cc5a8325a221e3",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "sparse-fortran-matmul"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "sparse_fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=sparse_fortran",
        "package_revision": "600f586a1ed099a22054ed283225787de36a31c1",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/sparse_fortran.f90",
          "sha256": "993bf086caf1f7d4c9632411c093318e7c1a8482cf368a677458707ecae81003"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "600f586a1ed099a22054ed283225787de36a31c1",
        "verified_at": "2026-10-28T01:52:04.654432+00:00",
        "packages": []
      }
    },
    {
      "id": "github:everythingfunctional/erloff",
      "name": "erloff",
      "repository": {
        "host": "github",
        "owner": "everythingfunctional",
        "name": "erloff",
        "url": "https://github.com/everythingfunctional/erloff"
      },
      "description": "Structured error lists and logging with message types and call context.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Error handling"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "error-handling",
          "fortran",
          "logging"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-29T00:20:04.805639+00:00"
      },
      "curation": {
        "topics": [
          "diagnostics",
          "error-handling",
          "logging"
        ],
        "gams_codes": [
          "R"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Structured error lists and logging. The checked main collects two fatal validation messages, filters one by OUT_OF_BOUNDS, checks counts and diagnostic text, and prints both messages. The pinned compatible Strff 3.1.1 avoids the unavailable exceptional_numbers mirror requested through Strff 4.0. No library source edits. This does not cover all logging levels, filtering operators or concurrent use.",
        "reviewed_revision": "73dfdbf54dafadb42e4705c45824b93917a20965",
        "procedures": [
          {
            "id": "erloff-errors",
            "package_id": "erloff",
            "revision": "73dfdbf54dafadb42e4705c45824b93917a20965",
            "module": "erloff_error_list_m",
            "procedure": "error_list_t%with_error_appended / operator(.ofType.)",
            "gams_codes": [
              "R"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Structured error lists and logging. The checked main collects two fatal validation messages, filters one by OUT_OF_BOUNDS, checks counts and diagnostic text, and prints both messages. The pinned compatible Strff 3.1.1 avoids the unavailable exceptional_numbers mirror requested through Strff 4.0. No library source edits. This does not cover all logging levels, filtering operators or concurrent use.",
            "evidence": [
              {
                "path": "src/erloff/error_list_m.f90",
                "sha256": "85b56db1c92c4904cf924abb982dda0227bb1c8ca77376322b89941124ec716f",
                "line": 1
              }
            ],
            "author_examples": []
          }
        ]
      },
      "playground": {
        "package_id": "erloff",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=erloff",
        "package_revision": "73dfdbf54dafadb42e4705c45824b93917a20965",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/erloff.f90",
          "sha256": "f21e5561c2e5a0c03983e992d9e2778c2d91daa66f77ca77a1a4a38669ead1fa"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "73dfdbf54dafadb42e4705c45824b93917a20965",
        "verified_at": "2026-10-29T00:34:23.456367+00:00",
        "packages": [
          {
            "id": "github:everythingfunctional/iso_varying_string",
            "repository": "everythingfunctional/iso_varying_string",
            "revision": "48ce6b119e855284a87d5a6eb9c53da8b6785716"
          },
          {
            "id": "github:everythingfunctional/strff",
            "repository": "everythingfunctional/strff",
            "revision": "37dccc0e615a2fc85de18be80427e0f1a678d87c"
          }
        ]
      }
    },
    {
      "id": "github:everythingfunctional/iso_varying_string",
      "name": "iso_varying_string",
      "repository": {
        "host": "github",
        "owner": "everythingfunctional",
        "name": "iso_varying_string",
        "url": "https://github.com/everythingfunctional/iso_varying_string"
      },
      "description": "Variable-length strings implementing the ISO varying-string specification.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Strings"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "iso",
          "strings"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "strings",
          "text-processing",
          "variable-length-strings"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "ba41caa79167835a40310b97bc7251ec689a9bfa"
      },
      "playground": {
        "package_id": "iso_varying_string",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=iso_varying_string",
        "package_revision": "ba41caa79167835a40310b97bc7251ec689a9bfa",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/iso_varying_string.f90",
          "sha256": "dcb46b4d6a8a50320d024db5f4ee71c49568b0f0f152b1fba630f66a0b8a85c7"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "ba41caa79167835a40310b97bc7251ec689a9bfa",
        "verified_at": "2026-10-27T23:25:35.966397+00:00",
        "packages": []
      }
    },
    {
      "id": "github:everythingfunctional/parff",
      "name": "parff",
      "repository": {
        "host": "github",
        "owner": "everythingfunctional",
        "name": "parff",
        "url": "https://github.com/everythingfunctional/parff"
      },
      "description": "Composable functional parsers for structured text and useful parse errors.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Text parsing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "parser",
          "parser-combinators",
          "parser-library"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "functional-programming",
          "parser-combinators",
          "parsing",
          "text-processing"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "dbce6a04992fbc1e2d13b6c633480d3cd4bbe35c"
      },
      "playground": {
        "package_id": "parff",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=parff",
        "package_revision": "dbce6a04992fbc1e2d13b6c633480d3cd4bbe35c",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/parff.f90",
          "sha256": "ccb1e96e2b9a091a3109437ca539dc4a7541412d274e29161baefc725da9e219"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "dbce6a04992fbc1e2d13b6c633480d3cd4bbe35c",
        "verified_at": "2026-10-28T21:02:12.296868+00:00",
        "packages": [
          {
            "id": "github:everythingfunctional/iso_varying_string",
            "repository": "everythingfunctional/iso_varying_string",
            "revision": "fb7635a6b21c3d50ac7c8c14f7696a70931cb4a6"
          },
          {
            "id": "github:everythingfunctional/strff",
            "repository": "everythingfunctional/strff",
            "revision": "50e536cb087123f2c72140cb065c398a01fc5121"
          }
        ]
      }
    },
    {
      "id": "github:everythingfunctional/quaff",
      "name": "quaff",
      "repository": {
        "host": "github",
        "owner": "everythingfunctional",
        "name": "quaff",
        "url": "https://github.com/everythingfunctional/quaff"
      },
      "description": "Physical quantities with type-safe arithmetic and automatic unit conversions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Units and quantities"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "units-of-measure"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 11,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "dimensional-analysis",
          "physical-units",
          "type-safety",
          "unit-conversion"
        ],
        "gams_codes": [
          "A",
          "Z"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Dimensioned arithmetic and unit conversion retain A/Z. No immediate arithmetic subtype is claimed without reviewing the representation-specific API.",
        "reviewed_revision": "f26da3d854045b79102d27bdb4e9f9b072444272",
        "procedures": [
          {
            "id": "quaff-length-t",
            "package_id": "quaff",
            "revision": "f26da3d854045b79102d27bdb4e9f9b072444272",
            "module": "quaff",
            "procedure": "length_t, time_t arithmetic",
            "gams_codes": [
              "A"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Dimension-aware physical quantities and unit conversions; no narrower numerical algorithm is asserted. Dedicated A consumer checks 180 scalar references for signed/zero lengths, five length units, seconds/minutes/hours, arithmetic, absolute values and quantity-array sums. Typed length/time speed and speed*time length agree with independent scalar SI formulas. Other quantity dimensions, parsing, overflow and compile-time rejection of invalid dimensional expressions are not verified.",
            "evidence": [
              {
                "path": "src/quaff/length_m.f90",
                "sha256": "bc26d880ca907c06a0e73f3e4efcc049bc55e26c7417bf8905a47501b5d91443",
                "line": 60
              },
              {
                "path": "src/quaff/time_m.f90",
                "line": 1,
                "sha256": "8162f0ffc323af33821d287d355ac9807795dfc7f1c282ad9e39488135697d7d"
              },
              {
                "path": "src/quaff/speed_m.f90",
                "line": 1,
                "sha256": "772e834de340bf2d8decf6d8e4a317bc6947bb270ec33a695032c889961c87c3"
              },
              {
                "path": "src/quaff/interquantity_operators_m.f90",
                "line": 1,
                "sha256": "26f618111e3e54d61394c8ec3d4206a46ecb54f8f3b73142c26e245f1128c9a0"
              }
            ],
            "author_examples": [
              {
                "path": "test/length_test.f90",
                "sha256": "4331d15a0e6546a356d1600fb9e73f73108ee52ff41fb3219e9698a9c6ba2567"
              }
            ],
            "driver_id": "quaff-quantity-reference"
          }
        ],
        "numerical_review": {
          "revision": "f26da3d854045b79102d27bdb4e9f9b072444272",
          "archive_sha256": "e420a22fd309619e71abed44cd8e0054852eb23e82967903f733bad0e7c4bc78",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "quaff-length-t"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "quaff",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=quaff",
        "package_revision": "f26da3d854045b79102d27bdb4e9f9b072444272",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/quaff.f90",
          "sha256": "97150dd9ba968dd2b99a8c535b3c47186c6131df075ce688ca6d7a37bdd2f529"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f26da3d854045b79102d27bdb4e9f9b072444272",
        "verified_at": "2026-10-28T21:02:12.296868+00:00",
        "packages": [
          {
            "id": "github:everythingfunctional/erloff",
            "repository": "everythingfunctional/erloff",
            "revision": "89e92f86c160d4f995d8ae3c2bb6f2671cf6311c"
          },
          {
            "id": "github:everythingfunctional/iso_varying_string",
            "repository": "everythingfunctional/iso_varying_string",
            "revision": "850391bdb4839ae25baaab449ad83c49be21d774"
          },
          {
            "id": "github:everythingfunctional/parff",
            "repository": "everythingfunctional/parff",
            "revision": "dbce6a04992fbc1e2d13b6c633480d3cd4bbe35c"
          },
          {
            "id": "github:everythingfunctional/strff",
            "repository": "everythingfunctional/strff",
            "revision": "360d9a47b4cc877438a58978b6fe27651f2fa6a2"
          }
        ]
      }
    },
    {
      "id": "github:everythingfunctional/rojff",
      "name": "rojff",
      "repository": {
        "host": "github",
        "owner": "everythingfunctional",
        "name": "rojff",
        "url": "https://github.com/everythingfunctional/rojff"
      },
      "description": "Construct, parse and serialize JSON values with explicit error handling.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "json",
          "json-parser"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 9,
        "stars_updated_at": "2026-10-28T23:25:51.211120+00:00"
      },
      "curation": {
        "topics": [
          "error-handling",
          "json",
          "json-parsing",
          "serialization"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "JSON parsing and serialization with explicit error values. The main checks numeric/string fields, missing-key reporting, compact serialization round trips and malformed-input rejection. It uses the original Erloff 2.2.0 API with a pinned compatible Strff 3.1.1 and ISO varying string 3.0.3; the Strff 4.0 dependency graph needs an unavailable GitHub mirror. No computational source is patched.",
        "reviewed_revision": "9f68e5aa4c12b32720d4224f1ac279bfd7d77b93",
        "procedures": [
          {
            "id": "rojff-json",
            "package_id": "rojff",
            "revision": "9f68e5aa4c12b32720d4224f1ac279bfd7d77b93",
            "module": "rojff_parser_m / rojff_json_value_m",
            "procedure": "parse_json_from_string / json_value_t%to_compact_string",
            "gams_codes": [
              "N1",
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "JSON parsing and serialization with explicit error values. The main checks numeric/string fields, missing-key reporting, compact serialization round trips and malformed-input rejection. It uses the original Erloff 2.2.0 API with a pinned compatible Strff 3.1.1 and ISO varying string 3.0.3; the Strff 4.0 dependency graph needs an unavailable GitHub mirror. No computational source is patched.",
            "evidence": [
              {
                "path": "src/rojff/parser/parser_m.f90",
                "sha256": "45e104f8a23d863175fe364656d7979bd307ee158a2d9dd74cf34fb61f5e9364",
                "line": 18
              },
              {
                "path": "src/rojff/json_types/value_m.f90",
                "sha256": "84492c4656ddc33a51d661bb9307215bee813458fe991ab446a07b3c27a69600",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/get_value/main.f90",
                "sha256": "713cecc42442652ca14dcd87578621074ba23ad098b0bbe8a1ac05c7b3634d68"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "rojff",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rojff",
        "package_revision": "9f68e5aa4c12b32720d4224f1ac279bfd7d77b93",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/rojff.f90",
          "sha256": "5025f64999574af56e0316f2174261c30a2509027d5eaddbf5aa32a16cf1749f"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "9f68e5aa4c12b32720d4224f1ac279bfd7d77b93",
        "verified_at": "2026-10-28T23:33:50.254249+00:00",
        "packages": [
          {
            "id": "github:everythingfunctional/erloff",
            "repository": "everythingfunctional/erloff",
            "revision": "a4c10605c9263d315d20c07dc96e1f0d18aa2ffa"
          },
          {
            "id": "github:everythingfunctional/iso_varying_string",
            "repository": "everythingfunctional/iso_varying_string",
            "revision": "48ce6b119e855284a87d5a6eb9c53da8b6785716"
          },
          {
            "id": "github:everythingfunctional/strff",
            "repository": "everythingfunctional/strff",
            "revision": "37dccc0e615a2fc85de18be80427e0f1a678d87c"
          }
        ]
      }
    },
    {
      "id": "github:everythingfunctional/sqliteff",
      "name": "sqliteff",
      "repository": {
        "host": "github",
        "owner": "everythingfunctional",
        "name": "sqliteff",
        "url": "https://github.com/everythingfunctional/sqliteff"
      },
      "description": "Thin SQLite bindings for database creation, SQL queries and typed result access.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Databases"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "database",
          "fortran",
          "sqlite",
          "sqlite3"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-29T00:20:04.805639+00:00"
      },
      "curation": {
        "topics": [
          "c-interoperability",
          "database",
          "sql",
          "sqlite"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "SQLite wrapper with bundled SQLite 3.30.1 C sources. The checked main opens an in-memory database, creates a table, inserts three values, verifies count and average, reaches SQLITE_DONE and closes resources. It does not cover persistent files, concurrent use, transactions or the complete SQLite API. Explicit GitLab-to-GitHub alias pins ISO varying string; no source edits.",
        "reviewed_revision": "9b377c976698a7da671536e5e2539146ab734ca6",
        "procedures": [
          {
            "id": "sqliteff-database",
            "package_id": "sqliteff",
            "revision": "9b377c976698a7da671536e5e2539146ab734ca6",
            "module": "sqliteff",
            "procedure": "sqliteff_open / sqliteff_exec / sqliteff_prepare / sqliteff_step",
            "gams_codes": [
              "N1",
              "N5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "SQLite wrapper with bundled SQLite 3.30.1 C sources. The checked main opens an in-memory database, creates a table, inserts three values, verifies count and average, reaches SQLITE_DONE and closes resources. It does not cover persistent files, concurrent use, transactions or the complete SQLite API. Explicit GitLab-to-GitHub alias pins ISO varying string; no source edits.",
            "evidence": [
              {
                "path": "src/sqliteff.f90",
                "sha256": "4f6be391fe0f69efeed3b520c7694c25ef55f87975f88032040a5441520d183a",
                "line": 1
              }
            ],
            "author_examples": []
          }
        ]
      },
      "playground": {
        "package_id": "sqliteff",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=sqliteff",
        "package_revision": "9b377c976698a7da671536e5e2539146ab734ca6",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/sqliteff.f90",
          "sha256": "7ff8d30a09bcc6e1450c62f7bc38957d7e2c0a83da8c25d48dafdd6a2900e6f7"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "9b377c976698a7da671536e5e2539146ab734ca6",
        "verified_at": "2026-10-29T00:34:23.456367+00:00",
        "packages": [
          {
            "id": "github:everythingfunctional/iso_varying_string",
            "repository": "everythingfunctional/iso_varying_string",
            "revision": "f330d7a246d81aacfbf92f8085a4eca9d2506820"
          }
        ]
      }
    },
    {
      "id": "github:everythingfunctional/strff",
      "name": "strff",
      "repository": {
        "host": "github",
        "owner": "everythingfunctional",
        "name": "strff",
        "url": "https://github.com/everythingfunctional/strff"
      },
      "description": "String splitting, joining, formatting and conversion from intrinsic types.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Strings"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "string-manipulation"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "formatting",
          "strings",
          "text-processing",
          "type-conversion"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "50e536cb087123f2c72140cb065c398a01fc5121"
      },
      "playground": {
        "package_id": "strff",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=strff",
        "package_revision": "50e536cb087123f2c72140cb065c398a01fc5121",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/strff.f90",
          "sha256": "aefd2f4a035adf89988ba7b21db368142ea4730a3b94009f290ccc6340e0dec5"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "50e536cb087123f2c72140cb065c398a01fc5121",
        "verified_at": "2026-10-28T21:02:12.296868+00:00",
        "packages": [
          {
            "id": "github:everythingfunctional/iso_varying_string",
            "repository": "everythingfunctional/iso_varying_string",
            "revision": "fb7635a6b21c3d50ac7c8c14f7696a70931cb4a6"
          }
        ]
      }
    },
    {
      "id": "github:everythingfunctional/veggies",
      "name": "veggies",
      "repository": {
        "host": "github",
        "owner": "everythingfunctional",
        "name": "veggies",
        "url": "https://github.com/everythingfunctional/veggies"
      },
      "description": "Functional unit-testing framework with readable specification-style results.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Testing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 4,
        "stars_updated_at": "2026-10-28T23:25:51.211120+00:00"
      },
      "curation": {
        "topics": [
          "bdd",
          "functional-programming",
          "test-framework",
          "unit-testing"
        ],
        "gams_codes": [
          "S",
          "S3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Functional unit-testing framework. The main runs three specification-style cases checking a small user-written Simpson formula against known constant, linear and quadratic integrals. The numerical formula belongs to the example, not the package. Parallel testing, generators and the complete framework are not validated.",
        "reviewed_revision": "8388f5e2633afa3d08cf5c6e7db1eeb0dcab2dc8",
        "procedures": [
          {
            "id": "veggies-tests",
            "package_id": "veggies",
            "revision": "8388f5e2633afa3d08cf5c6e7db1eeb0dcab2dc8",
            "module": "veggies",
            "procedure": "describe / it / assert_equals / run_tests",
            "gams_codes": [
              "S3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Functional unit-testing framework. The main runs three specification-style cases checking a small user-written Simpson formula against known constant, linear and quadratic integrals. The numerical formula belongs to the example, not the package. Parallel testing, generators and the complete framework are not validated.",
            "evidence": [
              {
                "path": "src/veggies/run_tests_m.f90",
                "sha256": "886c21672e9ac70570e694c9a17c9cb61ab40f23eb6b362f2c43bbebe3606594",
                "line": 13
              }
            ],
            "author_examples": []
          }
        ]
      },
      "playground": {
        "package_id": "veggies",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=veggies",
        "package_revision": "8388f5e2633afa3d08cf5c6e7db1eeb0dcab2dc8",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/veggies.f90",
          "sha256": "09055ca0bd2a350896922b8abc667d236c3d99a96440709fc740b08d8b001642"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "8388f5e2633afa3d08cf5c6e7db1eeb0dcab2dc8",
        "verified_at": "2026-10-28T23:33:50.254249+00:00",
        "packages": [
          {
            "id": "github:everythingfunctional/iso_varying_string",
            "repository": "everythingfunctional/iso_varying_string",
            "revision": "48ce6b119e855284a87d5a6eb9c53da8b6785716"
          },
          {
            "id": "github:everythingfunctional/strff",
            "repository": "everythingfunctional/strff",
            "revision": "37dccc0e615a2fc85de18be80427e0f1a678d87c"
          }
        ]
      }
    },
    {
      "id": "github:exepulveda/gslib2.0",
      "name": "gslib",
      "repository": {
        "host": "github",
        "owner": "exepulveda",
        "name": "gslib2.0",
        "url": "https://github.com/exepulveda/gslib2.0"
      },
      "description": "Geostatistical covariance models, kriging and spatial simulation routines.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Statistics"
      ],
      "license": {
        "label": "MIT & GSLIB-1996",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-28T17:54:16.128500+00:00"
      },
      "curation": {
        "topics": [
          "covariance-models",
          "gaussian-simulation",
          "geostatistics",
          "kriging",
          "spatial-statistics"
        ],
        "gams_codes": [
          "E",
          "E2",
          "L",
          "L13"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "5c021000eb3da8703ced3ee9be145d6c0ecb2608",
        "procedures": [
          {
            "id": "gslib-api",
            "package_id": "gslib",
            "revision": "5c021000eb3da8703ced3ee9be145d6c0ecb2608",
            "module": "external GSLIB routines",
            "procedure": "cova3 / ksol (ordinary-kriging driver)",
            "gams_codes": [
              "E2",
              "L13"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The driver assembles an ordinary-kriging system from GSLIB covariance and linear-solver routines. It checks exponential covariances, closed-form weights, endpoint interpolation and independent system residuals. Broad interpolation/covariance classes only; no exhaustive spatial-statistics review. The L13 driver verifies spherical/exponential/Gaussian covariances, 21 two-observation ordinary kriging systems, closed-form weights and variances, constant-field reproduction and reflection symmetry. It separates real32 covariance error from real64 solver residuals, and does not verify the separate E2 mapping. GSLIB source-evidence hashes use UTF-8/LF normalization.",
            "evidence": [
              {
                "path": "src/legacy/gslib/cova3.f90",
                "sha256": "51394c56d3e67747f10ef8bffe8d499b7e7f1e6392f51552721371a8a745439c",
                "line": 1
              },
              {
                "path": "src/legacy/gslib/ksol.f90",
                "sha256": "e86a01d5faf662110b3fc917bf7fd5bc044f34ce2b00b3f3d36bf1ee1fc86d16",
                "line": 1
              }
            ],
            "author_examples": [],
            "driver_id": "gslib-kriging-reference"
          }
        ],
        "numerical_review": {
          "revision": "5c021000eb3da8703ced3ee9be145d6c0ecb2608",
          "archive_sha256": "72d7c772e5a9a51cc90c5192bf9f8afb307771764697a8f821873bf36a66f50a",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "gslib-api"
          ],
          "notes": "The driver assembles an ordinary-kriging system from GSLIB covariance and linear-solver routines. It checks exponential covariances, closed-form weights, endpoint interpolation and independent system residuals. Broad interpolation/covariance classes only; no exhaustive spatial-statistics review. Source review covers these representative procedures, not an exhaustive API inventory."
        }
      },
      "playground": {
        "package_id": "gslib",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=gslib",
        "package_revision": "5c021000eb3da8703ced3ee9be145d6c0ecb2608",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/gslib.f90",
          "sha256": "7d9e62cfeaa6e1e6d3f338570e8e4b4249e90fc061a7f03aa7447e6f6cb99a0c"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5c021000eb3da8703ced3ee9be145d6c0ecb2608",
        "verified_at": "2026-10-28T17:55:12.282099+00:00",
        "packages": []
      }
    },
    {
      "id": "github:exequantcode/heatflow",
      "name": "heatflow",
      "repository": {
        "host": "github",
        "owner": "ExeQuantCode",
        "name": "HeatFlow",
        "url": "https://github.com/ExeQuantCode/HeatFlow"
      },
      "description": "Finite-difference models of Fourier and Cattaneo heat transport.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "GPL-3.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "cattaneo",
          "finite-difference",
          "finite-difference-time-domain",
          "fourier",
          "heat-flow",
          "heating",
          "modelling"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-28T22:02:20.239918+00:00"
      },
      "curation": {
        "topics": [
          "cattaneo-model",
          "finite-differences",
          "heat-equation",
          "heat-transfer",
          "sparse-linear-systems"
        ],
        "gams_codes": [
          "D",
          "D2",
          "I",
          "I2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Fourier/Cattaneo heat-transport code. The checked main applies its sparse BiCG solver to an independent backward-Euler discretization of the one-dimensional heat equation; it checks the discrete solution, continuous-solution error and independent matrix residuals. It does not exercise the complete evolution/Cattaneo application.",
        "reviewed_revision": "b0d930caad9160a15f0aeafa238c448f48f28d55",
        "procedures": [
          {
            "id": "heatflow-sparse",
            "package_id": "heatflow",
            "revision": "b0d930caad9160a15f0aeafa238c448f48f28d55",
            "module": "solver",
            "procedure": "SRSin / linbcg",
            "gams_codes": [
              "D2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Fourier/Cattaneo heat-transport code. The checked main applies its sparse BiCG solver to an independent backward-Euler discretization of the one-dimensional heat equation; it checks the discrete solution, continuous-solution error and independent matrix residuals. It does not exercise the complete evolution/Cattaneo application.",
            "evidence": [
              {
                "path": "src/heatflow/mod_Sparse.f90",
                "sha256": "b313d6445ede687a2c975bbefe6a7b3e3cdb5f64029ee4aa44b6380fbd84ac19",
                "line": 273
              }
            ],
            "author_examples": [],
            "driver_id": "heatflow-bicg-reference"
          },
          {
            "id": "heatflow-evolution",
            "package_id": "heatflow",
            "revision": "b0d930caad9160a15f0aeafa238c448f48f28d55",
            "module": "evolution",
            "procedure": "simulate",
            "gams_codes": [
              "I2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Fourier/Cattaneo heat-transport code. The checked main applies its sparse BiCG solver to an independent backward-Euler discretization of the one-dimensional heat equation; it checks the discrete solution, continuous-solution error and independent matrix residuals. It does not exercise the complete evolution/Cattaneo application.",
            "evidence": [
              {
                "path": "src/heatflow/mod_evolve.f90",
                "sha256": "1e4ff67f07501e24ac1bb3b58f6aac3862ac7f34e40f5edf72853cec871448b0",
                "line": 44
              }
            ],
            "author_examples": []
          }
        ],
        "numerical_review": {
          "revision": "b0d930caad9160a15f0aeafa238c448f48f28d55",
          "archive_sha256": "dc323ec732a62a15cf9e42b9d4a9f8989d6e6c3315ca0352e285d7efd397f62c",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "heatflow-sparse",
            "heatflow-evolution"
          ],
          "notes": "Fourier/Cattaneo heat-transport code. The checked main applies its sparse BiCG solver to an independent backward-Euler discretization of the one-dimensional heat equation; it checks the discrete solution, continuous-solution error and independent matrix residuals. It does not exercise the complete evolution/Cattaneo application."
        }
      },
      "playground": {
        "package_id": "heatflow",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=heatflow",
        "package_revision": "b0d930caad9160a15f0aeafa238c448f48f28d55",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/heatflow.f90",
          "sha256": "4395fbccc1e2d5130e0cd8c7d5f58fc571c125ae0873393e852262cee539c723"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b0d930caad9160a15f0aeafa238c448f48f28d55",
        "verified_at": "2026-10-28T22:10:17.874400+00:00",
        "packages": []
      }
    },
    {
      "id": "github:exequantcode/raffle",
      "name": "raffle",
      "repository": {
        "host": "github",
        "owner": "ExeQuantCode",
        "name": "RAFFLE",
        "url": "https://github.com/ExeQuantCode/RAFFLE"
      },
      "description": "RAFFLE 1.0.0 materials-structure library; demonstration checks periodic atom distances in a silicon cell.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Computational geometry"
      ],
      "license": {
        "label": "GPL-3.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "material-interfaces",
          "materials-science",
          "python",
          "random-structure-search"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 22,
        "stars_updated_at": "2026-10-30T13:32:41.790005+00:00"
      },
      "curation": {
        "topics": [
          "atomistic-structures",
          "computational-geometry",
          "interatomic-distances",
          "materials-science",
          "periodic-boundary-conditions"
        ],
        "gams_codes": [
          "P"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "RAFFLE is pinned to release v1.0.0 because current main and v1.1.1 exceed the unchanged 16 MiB archive limit. The native FPM library is unchanged. The checked main adapts test/test_dist_calcs.f90: a two-atom silicon primitive cell and three equivalent fractional points exercise get_min_dist_between_point_and_atom and get_min_dist. Both distances must be finite and agree with sqrt(3)*0.428 within 3e-6 in REAL32. P denotes the demonstrated periodic geometry; no optimization, structure-prediction accuracy, trained model, or full upstream test-suite validation is claimed. GPL-3.0 notices are retained.",
        "reviewed_revision": "c152a30a1eaf94965c047bcd1a7edca07873b56f",
        "procedures": [
          {
            "id": "raffle-periodic-distance",
            "package_id": "raffle",
            "revision": "c152a30a1eaf94965c047bcd1a7edca07873b56f",
            "module": "raffle__dist_calcs",
            "procedure": "get_min_dist / get_min_dist_between_point_and_atom",
            "gams_codes": [
              "P"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "RAFFLE is pinned to release v1.0.0 because current main and v1.1.1 exceed the unchanged 16 MiB archive limit. The native FPM library is unchanged. The checked main adapts test/test_dist_calcs.f90: a two-atom silicon primitive cell and three equivalent fractional points exercise get_min_dist_between_point_and_atom and get_min_dist. Both distances must be finite and agree with sqrt(3)*0.428 within 3e-6 in REAL32. P denotes the demonstrated periodic geometry; no optimization, structure-prediction accuracy, trained model, or full upstream test-suite validation is claimed. GPL-3.0 notices are retained. The checked GAMS driver covers orthogonal cells only. A separate skew-cell probe returns 0.92970967292785645 where an independent periodic-image search gives 0.31679647220910667; source, hash and complete result are retained in docs/gams-candidates/raffle-skew. No library patch is made.",
            "evidence": [
              {
                "path": "src/fortran/lib/mod_dist_calcs.f90",
                "sha256": "382ca10b878f2a8784505d994ddf72e25928a3f4eafdbf6c0a3cf8768a972235",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/test_dist_calcs.f90",
                "sha256": "ecfef43c27dae5b7750f21d51c35e4ef04efd77efba01e694601381cdb3115d9",
                "line": 1
              }
            ],
            "driver_id": "raffle-orthogonal-reference"
          }
        ],
        "numerical_review": {
          "revision": "c152a30a1eaf94965c047bcd1a7edca07873b56f",
          "archive_sha256": "d13c72eeb2c7c761d65e233f7abe5c856098abe854e34f9cd9c3866a70523cde",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "raffle-periodic-distance"
          ],
          "notes": "RAFFLE is pinned to release v1.0.0 because current main and v1.1.1 exceed the unchanged 16 MiB archive limit. The native FPM library is unchanged. The checked main adapts test/test_dist_calcs.f90: a two-atom silicon primitive cell and three equivalent fractional points exercise get_min_dist_between_point_and_atom and get_min_dist. Both distances must be finite and agree with sqrt(3)*0.428 within 3e-6 in REAL32. P denotes the demonstrated periodic geometry; no optimization, structure-prediction accuracy, trained model, or full upstream test-suite validation is claimed. GPL-3.0 notices are retained."
        }
      },
      "playground": {
        "package_id": "raffle",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=raffle",
        "package_revision": "c152a30a1eaf94965c047bcd1a7edca07873b56f",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/raffle.f90",
          "sha256": "5d0ad5ed4a11ae8e412fb8b6b166af902857d0b5b7b37f690877625bb947e2e4"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "c152a30a1eaf94965c047bcd1a7edca07873b56f",
        "verified_at": "2026-10-30T13:33:04.457481+00:00",
        "packages": []
      }
    },
    {
      "id": "github:fedebenelli/fortimize",
      "name": "fortimize",
      "repository": {
        "host": "github",
        "owner": "fedebenelli",
        "name": "ForTimize",
        "url": "https://github.com/fedebenelli/ForTimize"
      },
      "description": "A common interface to optimization algorithms including Nelder-Mead and gradient descent.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "Not specified upstream (manifest placeholder)",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-",
          "gradient-descent",
          "nelder-mead",
          "optimization",
          "optimization-algorithms"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "derivative-free",
          "gradient-descent",
          "nelder-mead",
          "optimization"
        ],
        "gams_codes": [
          "G",
          "G1",
          "G1b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "3431b656cd86f89135d0f35bf6afdbd787d9daf3",
        "procedures": [
          {
            "id": "fortimize-nelder-mead",
            "package_id": "fortimize",
            "revision": "3431b656cd86f89135d0f35bf6afdbd787d9daf3",
            "module": "ForTimize",
            "procedure": "minimize with NelderMead",
            "gams_codes": [
              "G1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "The existing catalog quadratic program is an independently written API example. Upstream licensing is unspecified; no upstream example code is copied here. Dedicated G1b consumer checks twelve derivative-free solves: coupled positive-definite quadratics in 2/3/5 variables and the two-variable Rosenbrock problem, each from three starts. Known unique minimizers and zero objective supply independent acceptance criteria, and the returned objective is recomputed. Uses the actual kcount evaluation limit; optimizer termination status is not exposed by this wrapper. No upstream example code is copied. Other methods, nonsmooth/global optimization, scaling extremes and concurrent calls are not verified.",
            "evidence": [
              {
                "path": "src/minimize.f90",
                "line": 7,
                "sha256": "fc82674ed06c2403f8743fca72cdca10f9451b89625c720d8b5f25992871ebe8"
              },
              {
                "path": "src/gradient_free/nelder_mead.f90",
                "line": 9,
                "sha256": "431306637efd14f319efa02855d220c6964b98532966dfce4dc471b153a50a48"
              }
            ],
            "author_examples": [
              {
                "path": "example/gradient.f90",
                "sha256": "dfdc5b2c20ab4852e8fe4d4230fced87f8bd76b27bcbc84225928da56da73df9"
              }
            ],
            "driver_id": "fortimize-nelder-reference"
          },
          {
            "id": "fortimize-gradient-descent",
            "package_id": "fortimize",
            "revision": "3431b656cd86f89135d0f35bf6afdbd787d9daf3",
            "module": "ForTimize",
            "procedure": "minimize with GradientDescent",
            "gams_codes": [
              "G1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "user gradient",
            "notes": "Fixed-iteration gradient descent with a user gradient. The dedicated independent driver checks 240 SPD-quadratic trajectories against spectral powers and exact callback counts. At this pin the returned objective belongs to the iterate before the final position update; the driver explicitly verifies this and recomputes the endpoint objective. convergence_tolerance is not used by this fixed-count implementation. No adaptive stopping or nonquadratic convergence claim; upstream licensing remains unspecified.",
            "evidence": [
              {
                "path": "src/minimize.f90",
                "line": 7,
                "sha256": "fc82674ed06c2403f8743fca72cdca10f9451b89625c720d8b5f25992871ebe8"
              },
              {
                "path": "src/with_derivatives/gradient_descent.f90",
                "line": 23,
                "sha256": "3e93955576fc2db98363db6438b9e0758d6b6bcaad67dfcaf0f1d2a82818a066"
              }
            ],
            "author_examples": [
              {
                "path": "example/gradient.f90",
                "sha256": "dfdc5b2c20ab4852e8fe4d4230fced87f8bd76b27bcbc84225928da56da73df9"
              }
            ],
            "driver_id": "fortimize-gradient-reference"
          }
        ],
        "numerical_review": {
          "revision": "3431b656cd86f89135d0f35bf6afdbd787d9daf3",
          "archive_sha256": "90b36df70e4f526800a589b33ba35a8d6c90a8b6e960a93f5c0bb5914069618e",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortimize-nelder-mead",
            "fortimize-gradient-descent"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fortimize",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortimize",
        "package_revision": "3431b656cd86f89135d0f35bf6afdbd787d9daf3",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortimize.f90",
          "sha256": "15d5e2f97e232e8c9bd233ebc0aecce34f04f3e26057d5eaf38f1a3d5a7f4ff3"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "3431b656cd86f89135d0f35bf6afdbd787d9daf3",
        "verified_at": "2026-10-27T23:25:35.966397+00:00",
        "packages": [
          {
            "id": "github:jacobwilliams/numdiff",
            "repository": "jacobwilliams/NumDiff",
            "revision": "687157df8d2dec072b5484974bab71f7b14b0e9f"
          }
        ]
      }
    },
    {
      "id": "github:filippolipparini/ddpcm",
      "name": "ddpcm",
      "repository": {
        "host": "github",
        "owner": "filippolipparini",
        "name": "ddPCM",
        "url": "https://github.com/filippolipparini/ddPCM"
      },
      "description": "Continuum solvation by domain decomposition; formaldehyde energy and forces checked against author references.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Quantum mechanics"
      ],
      "license": {
        "label": "LGPL-3.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 16,
        "stars_updated_at": "2026-10-30T01:36:35.972886+00:00"
      },
      "curation": {
        "topics": [
          "continuum-solvation",
          "cosmo",
          "domain-decomposition",
          "electrostatics",
          "molecular-forces"
        ],
        "gams_codes": [
          "D",
          "D2",
          "Z"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The pinned ddCOSMO library and original fixed-form Lebedev quadrature source are wrapped for FPM with extension-based source form and legacy external interfaces. OpenMP directives are inactive in this serial profile and OpenBLAS supplies dense linear algebra. The checked consumer adapts the author main and formaldehyde input, embedding its four-atom coordinates, radii, charges and solver settings. It compares solvation energy and all force components against the author reference output, requires finite values and checks zero net force. Full-sized dummy arrays replace the unused one-element placeholders in the example while leaving library numerical routines unchanged. D2 identifies the Jacobi/DIIS linear-system solution used by cosmo; Z denotes the physical solvation model. Other molecules, solvent parameters, quantum densities and parallel performance are outside this verification scope. LGPL notices and author reference requests remain in the source tree.",
        "reviewed_revision": "36f22feb86c81c6ba1f59c373ef215368d3e3c13",
        "procedures": [
          {
            "id": "ddpcm-solvation",
            "package_id": "ddpcm",
            "revision": "36f22feb86c81c6ba1f59c373ef215368d3e3c13",
            "module": "ddcosmo / external cosmo",
            "procedure": "cosmo / jacobi_diis",
            "gams_codes": [
              "D2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The pinned ddCOSMO library and original fixed-form Lebedev quadrature source are wrapped for FPM with extension-based source form and legacy external interfaces. OpenMP directives are inactive in this serial profile and OpenBLAS supplies dense linear algebra. The checked consumer adapts the author main and formaldehyde input, embedding its four-atom coordinates, radii, charges and solver settings. It compares solvation energy and all force components against the author reference output, requires finite values and checks zero net force. Full-sized dummy arrays replace the unused one-element placeholders in the example while leaving library numerical routines unchanged. D2 identifies the Jacobi/DIIS linear-system solution used by cosmo; Z denotes the physical solvation model. Other molecules, solvent parameters, quantum densities and parallel performance are outside this verification scope. LGPL notices and author reference requests remain in the source tree.",
            "evidence": [
              {
                "path": "cosmo.f90",
                "sha256": "f689af72ee58bf5ba24d02981a7aa579300669cc21ddb97c53735612da42ba0b",
                "line": 1
              },
              {
                "path": "jacobi_diis.f90",
                "sha256": "3f70f71f734d0cad4fd0e195c831b96492caa457592f6ba12a865498fa1014c1",
                "line": 1
              },
              {
                "path": "ddcosmo.f90",
                "sha256": "f618e3ea45c6d8d3359cc355ada85db1b9efef3310bea81fb6e8285c9b10953f",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "main.f90",
                "sha256": "c39f8ccf215dd3f5a20d31faa2d78bfb0ee6fc618d102a3070abd0cba0d1e6ce"
              },
              {
                "path": "tests/formaldehyde.txt",
                "sha256": "0f916696ac47da8ac7a83d1a1d71f958dad7d3730b4ec790aaadf98417f82aed"
              },
              {
                "path": "tests/formaldehyde.log",
                "sha256": "b2c2befea07ce849172a1b39bed92ebb4de57cec3e42a070a2c9adcf3793bb71"
              }
            ]
          }
        ],
        "numerical_review": {
          "revision": "36f22feb86c81c6ba1f59c373ef215368d3e3c13",
          "archive_sha256": "a99669b3049317bb2e61cb696eb4252a0fd63b00c2aa60cb9ff2916445f87056",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "ddpcm-solvation"
          ],
          "notes": "The pinned ddCOSMO library and original fixed-form Lebedev quadrature source are wrapped for FPM with extension-based source form and legacy external interfaces. OpenMP directives are inactive in this serial profile and OpenBLAS supplies dense linear algebra. The checked consumer adapts the author main and formaldehyde input, embedding its four-atom coordinates, radii, charges and solver settings. It compares solvation energy and all force components against the author reference output, requires finite values and checks zero net force. Full-sized dummy arrays replace the unused one-element placeholders in the example while leaving library numerical routines unchanged. D2 identifies the Jacobi/DIIS linear-system solution used by cosmo; Z denotes the physical solvation model. Other molecules, solvent parameters, quantum densities and parallel performance are outside this verification scope. LGPL notices and author reference requests remain in the source tree."
        }
      },
      "playground": {
        "package_id": "ddpcm",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ddpcm",
        "package_revision": "36f22feb86c81c6ba1f59c373ef215368d3e3c13",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ddpcm.f90",
          "sha256": "1cc4c37ad91956ef36fecf878399658b6f21fc2f99704de8746a31f52e4aa4af"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "36f22feb86c81c6ba1f59c373ef215368d3e3c13",
        "verified_at": "2026-10-30T03:06:28.798191+00:00",
        "packages": []
      }
    },
    {
      "id": "github:flatironinstitute/fmm2d",
      "name": "fmm2d",
      "repository": {
        "host": "github",
        "owner": "flatironinstitute",
        "name": "fmm2d",
        "url": "https://github.com/flatironinstitute/fmm2d"
      },
      "description": "Fast multipole evaluation of two-dimensional Laplace and Helmholtz interactions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Numerical utilities"
      ],
      "license": {
        "label": "Apache-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 32,
        "stars_updated_at": "2026-10-29T15:02:11.035729+00:00"
      },
      "curation": {
        "topics": [
          "fast-multipole-method",
          "helmholtz-equation",
          "laplace-equation",
          "n-body",
          "potential-theory"
        ],
        "gams_codes": [
          "D",
          "D1",
          "I",
          "I2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Native Fortran FMM2D source set selected from the upstream makefile with optional C++ fast kernels disabled. OpenMP and portable -O2 are enabled; the visitor sandbox uses one execution thread and retains bounds checks. Checksum-guarded compatibility edits skip zero-point multipole/local evaluations and zero-source neighbor calls before passing one-past-end array elements. The inverse reorder helper declares its arrays with the actual n extent rather than the legacy dummy extent 1. Source and target branches receive matching guards; formulas are unchanged. The checked real Laplace driver evaluates 512 deterministic sources at 16 separate targets and compares with an independent charge-weighted log-distance sum. A separate source-and-target probe also checks all source potentials by direct summation with self-interactions excluded, exercising the source-side guards. The code is classified as a structured kernel-matrix application and Green-function evaluation related to PDEs, not as a complete boundary-value solver. Helmholtz, biharmonic/Stokes, dipoles, gradients/Hessians, every complex/vector interface and parallel speedups are not validated. The small accuracy check is not a performance benchmark.",
        "reviewed_revision": "7e7509ecd6ebe31b9292cb00825410b478f44808",
        "procedures": [
          {
            "id": "fmm2d-potentials",
            "package_id": "fmm2d",
            "revision": "7e7509ecd6ebe31b9292cb00825410b478f44808",
            "module": "classic Fortran interface",
            "procedure": "rfmm2d_t_c_p",
            "gams_codes": [
              "D1",
              "I2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Native Fortran FMM2D source set selected from the upstream makefile with optional C++ fast kernels disabled. OpenMP and portable -O2 are enabled; the visitor sandbox uses one execution thread and retains bounds checks. Checksum-guarded compatibility edits skip zero-point multipole/local evaluations and zero-source neighbor calls before passing one-past-end array elements. The inverse reorder helper declares its arrays with the actual n extent rather than the legacy dummy extent 1. Source and target branches receive matching guards; formulas are unchanged. The checked real Laplace driver evaluates 512 deterministic sources at 16 separate targets and compares with an independent charge-weighted log-distance sum. A separate source-and-target probe also checks all source potentials by direct summation with self-interactions excluded, exercising the source-side guards. The code is classified as a structured kernel-matrix application and Green-function evaluation related to PDEs, not as a complete boundary-value solver. Helmholtz, biharmonic/Stokes, dipoles, gradients/Hessians, every complex/vector interface and parallel speedups are not validated. The small accuracy check is not a performance benchmark.",
            "evidence": [
              {
                "path": "src/laplace/rfmm2dwrap.f",
                "sha256": "f7097a9bd31f6e30e3d8d2335d1093b0a2ba279fa5c7b871d51454dba00d4fe2",
                "line": 1
              },
              {
                "path": "src/laplace/cfmm2d.f",
                "sha256": "b156bbf48a51ffdf05011920aadccf56bc0eccddfd728eabd7b837625f4d75c8",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/laplace/test_rfmm2d.f",
                "sha256": "338b1d924aa9bad5bd4d68ac6bcf8ee3bb0207c6c61cd129ccce5adf87a651fb"
              }
            ],
            "driver_id": "fmm2d-laplace-reference"
          }
        ],
        "numerical_review": {
          "revision": "7e7509ecd6ebe31b9292cb00825410b478f44808",
          "archive_sha256": "874797fe0a20353b806c415ff817ad39c0ce0813c89d54145315ab83827470a0",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fmm2d-potentials"
          ],
          "notes": "Native Fortran FMM2D source set selected from the upstream makefile with optional C++ fast kernels disabled. OpenMP and portable -O2 are enabled; the visitor sandbox uses one execution thread and retains bounds checks. Checksum-guarded compatibility edits skip zero-point multipole/local evaluations and zero-source neighbor calls before passing one-past-end array elements. The inverse reorder helper declares its arrays with the actual n extent rather than the legacy dummy extent 1. Source and target branches receive matching guards; formulas are unchanged. The checked real Laplace driver evaluates 512 deterministic sources at 16 separate targets and compares with an independent charge-weighted log-distance sum. A separate source-and-target probe also checks all source potentials by direct summation with self-interactions excluded, exercising the source-side guards. The code is classified as a structured kernel-matrix application and Green-function evaluation related to PDEs, not as a complete boundary-value solver. Helmholtz, biharmonic/Stokes, dipoles, gradients/Hessians, every complex/vector interface and parallel speedups are not validated. The small accuracy check is not a performance benchmark."
        }
      },
      "playground": {
        "package_id": "fmm2d",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fmm2d",
        "package_revision": "7e7509ecd6ebe31b9292cb00825410b478f44808",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fmm2d.f90",
          "sha256": "37b1d799f10587a6bbf4a38ce95df71d79206dbf82254974d85ebfb36da37789"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "7e7509ecd6ebe31b9292cb00825410b478f44808",
        "verified_at": "2026-10-29T15:00:58.306928+00:00",
        "packages": []
      }
    },
    {
      "id": "github:fluidnumerics/feq-parse",
      "name": "feq-parse",
      "repository": {
        "host": "github",
        "owner": "FluidNumerics",
        "name": "feq-parse",
        "url": "https://github.com/FluidNumerics/feq-parse"
      },
      "description": "Evaluate mathematical expressions supplied as strings at scalar or array inputs.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Expression parsing"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "equation-parser",
          "fortran",
          "hpc",
          "self-ecosystem"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 50,
        "stars_updated_at": "2026-10-28T22:02:20.239918+00:00"
      },
      "curation": {
        "topics": [
          "array-evaluation",
          "expression-parsing",
          "function-evaluation",
          "mathematical-expressions"
        ],
        "gams_codes": [
          "C",
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Numerical evaluation of expressions parsed from text, not symbolic algebra. The demo checks double-precision multivariable Gaussian and polynomial expressions against direct Fortran formulas.",
        "reviewed_revision": "2e80c5940b128a52c5070a3f56909674fb85a379",
        "procedures": [
          {
            "id": "feq-parse-evaluate",
            "package_id": "feq-parse",
            "revision": "2e80c5940b128a52c5070a3f56909674fb85a379",
            "module": "FEQParse",
            "procedure": "EquationParser%evaluate",
            "gams_codes": [
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Numerical evaluation of expressions parsed from text, not symbolic algebra. The demo checks double-precision multivariable Gaussian and polynomial expressions against direct Fortran formulas.",
            "evidence": [
              {
                "path": "src/FEQParse.f90",
                "sha256": "84e1aef284f03f20b4ff9cf65013537da71507d1527ac4a18dec85ad25746b61",
                "line": 83
              }
            ],
            "author_examples": [
              {
                "path": "example/gaussian_scalar_multivar.f90",
                "sha256": "102cadb05d1d27720db6a548f3364f39c7cbd748bd92cc9595ce22463e421c89"
              }
            ],
            "driver_id": "feq-expression-reference"
          }
        ],
        "numerical_review": {
          "revision": "2e80c5940b128a52c5070a3f56909674fb85a379",
          "archive_sha256": "c230b9725cff8ca429747b916d6e1498a46f5321fe4d523683ada91e5d66abb8",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "feq-parse-evaluate"
          ],
          "notes": "Numerical evaluation of expressions parsed from text, not symbolic algebra. The demo checks double-precision multivariable Gaussian and polynomial expressions against direct Fortran formulas."
        }
      },
      "playground": {
        "package_id": "feq-parse",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=feq-parse",
        "package_revision": "2e80c5940b128a52c5070a3f56909674fb85a379",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/feq-parse.f90",
          "sha256": "3609f35399080ab8ec554d97fc926c8c5b2bbdb773384d2360cce0b493d5fb65"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2e80c5940b128a52c5070a3f56909674fb85a379",
        "verified_at": "2026-10-28T22:10:17.874400+00:00",
        "packages": []
      }
    },
    {
      "id": "github:fortran-lang/fftpack",
      "name": "fftpack",
      "repository": {
        "host": "github",
        "owner": "fortran-lang",
        "name": "fftpack",
        "url": "https://github.com/fortran-lang/fftpack"
      },
      "description": "Fast Fourier, sine, and cosine transforms.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Transforms"
      ],
      "license": {
        "label": "Public Domain",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fast-fourier-transform",
          "fft",
          "fft-library",
          "fftpack",
          "fortran-library",
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 101,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "cosine-transforms",
          "fft",
          "fourier-transforms",
          "sine-transforms"
        ],
        "gams_codes": [
          "J",
          "J1",
          "J1a",
          "J1a2",
          "J1a3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "0fffe7c05a918363a7cc12ae138a695afd115f36",
        "procedures": [
          {
            "id": "fftpack-fft",
            "package_id": "fftpack",
            "revision": "0fffe7c05a918363a7cc12ae138a695afd115f36",
            "module": "fftpack",
            "procedure": "fft, ifft",
            "gams_codes": [
              "J1a2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Complex one-dimensional forward and backward Fourier transforms.",
            "evidence": [
              {
                "path": "src/fftpack.f90",
                "sha256": "8d8ab19d3ee948a764fdd6fcd47d8ad96e19e6384d84753cb7687f34ac8b9857",
                "line": 222
              }
            ],
            "author_examples": [
              {
                "path": "test/test_fftpack_fft.f90",
                "sha256": "eaa5145047364f2f62c6c563a3f126f75a56f297742c12b29f6a8b340c192ca0"
              }
            ],
            "driver_id": "fftpack-complex-transform"
          },
          {
            "id": "fftpack-dct2",
            "package_id": "fftpack",
            "revision": "0fffe7c05a918363a7cc12ae138a695afd115f36",
            "module": "fftpack",
            "procedure": "dct(type=2), idct(type=2)",
            "gams_codes": [
              "J1a3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "One-dimensional DCT-II and its inverse. This FFTPACK API uses a forward factor of 4 and an unnormalized inverse; divide the composition by 4*N.",
            "evidence": [
              {
                "path": "src/fftpack_dct.f90",
                "sha256": "9d17f44e068b88b6989b466084ea2ef134ba28c0a620ff9164c655ce2e905aa7",
                "line": 6
              }
            ],
            "author_examples": [
              {
                "path": "test/test_fftpack_dct.f90",
                "sha256": "1e520dd7bdc81e4d8878ea1d8da2f7962d21bfffe1d83f14faaa1956c7af11e3"
              }
            ],
            "driver_id": "fftpack-cosine-transform"
          }
        ],
        "numerical_review": {
          "revision": "0fffe7c05a918363a7cc12ae138a695afd115f36",
          "archive_sha256": "c59bc81695ca599ae41a9a83593517bc6aca65478111c3a08c0fc36179133629",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fftpack-fft",
            "fftpack-dct2"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fftpack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fftpack",
        "package_revision": "0fffe7c05a918363a7cc12ae138a695afd115f36",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fftpack.f90",
          "sha256": "006e98c5fbf26c767ee99fbac472a69d8876d09671ce48d34a465110d58d9689"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "0fffe7c05a918363a7cc12ae138a695afd115f36",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:fortran-lang/stdlib",
      "name": "stdlib",
      "repository": {
        "host": "github",
        "owner": "fortran-lang",
        "name": "stdlib",
        "url": "https://github.com/fortran-lang/stdlib"
      },
      "description": "General utilities, statistics, strings, sorting, and numerical routines.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "General utilities"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "blas",
          "fortran",
          "fortran-library",
          "fortran-package-manager",
          "fortran-stdlib",
          "hash",
          "lapack",
          "linear-algebra",
          "numerical-methods",
          "numpy",
          "probability-distribution",
          "quadrature",
          "rng",
          "sorting",
          "statistics",
          "stdlib",
          "strings"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1363,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "numerical-methods",
          "sorting",
          "standard-library",
          "statistics",
          "strings"
        ],
        "gams_codes": [
          "A",
          "C",
          "D",
          "D1",
          "D2",
          "D2a",
          "D2a1",
          "D9",
          "D9a",
          "D9a1",
          "L",
          "L1",
          "L1a",
          "L1a1",
          "L1a1a",
          "L1a1b",
          "L6",
          "L6c",
          "N",
          "N3",
          "N4",
          "N5",
          "N6",
          "R",
          "R3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Selected subclasses cover documented linear algebra, summary statistics, random numbers, strings, containers, sorting and error handling. A and C remain broad pending a pinned-routine inventory.",
        "reviewed_revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
        "procedures": [
          {
            "id": "stdlib-mean",
            "package_id": "stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
            "module": "stdlib_stats",
            "procedure": "mean",
            "gams_codes": [
              "L1a1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Mean of numeric data; this record does not review every stdlib numerical facility.",
            "evidence": [
              {
                "path": "src/stdlib_stats.f90",
                "sha256": "e15ce21ef7f4ae8f3c0df5d99675ad33a5a820167c7565c3b14d3fa2f0acba88",
                "line": 494
              }
            ],
            "author_examples": [
              {
                "path": "test/test_mean.f90",
                "sha256": "afa45a7cd7d843450f04f818358cc8829d91d3dbafd7409c0e5959ccc36ae958"
              }
            ],
            "driver_id": "stdlib-mean-checks"
          },
          {
            "id": "stdlib-solve",
            "package_id": "stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
            "module": "stdlib_linalg",
            "procedure": "solve",
            "gams_codes": [
              "D2a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Real dense nonsymmetric linear solve, demonstrated in real64. Other generic overloads are outside this record.",
            "evidence": [
              {
                "path": "src/stdlib_linalg.f90",
                "sha256": "7b3f6f3274aa843a3308efe95594888feaa904648eff18041ff20988cc358811",
                "line": 734
              }
            ],
            "author_examples": [
              {
                "path": "example/example_solve1.f90",
                "sha256": "b05f205e18917ba05cea70323ed9316b12ad773fbbed716d3cc149afb12d50bb"
              }
            ],
            "driver_id": "stdlib-dense-solve"
          },
          {
            "id": "stdlib-sort",
            "package_id": "stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
            "module": "stdlib_sorting",
            "procedure": "sort",
            "gams_codes": [
              "N6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Ordering array values; not statistical inference. Dedicated N6 driver checks ascending/descending integer and finite-real arrays, repeated/negative values, idempotence, an independently histogram-sorted 64-element reference, and empty/singleton inputs. NaN ordering and stability are not validated.",
            "evidence": [
              {
                "path": "src/stdlib_sorting.F90",
                "sha256": "03ba3e6359c063da7aaf4c0e239ff74fff6c2808bee768d05cc54ab9eedd0cf5",
                "line": 695
              }
            ],
            "author_examples": [
              {
                "path": "test/test_sorting.F90",
                "sha256": "c6424675bafc1bf89d74d84acacde5de0f51aa9ab28919ff9621eff022652f4a"
              }
            ],
            "driver_id": "stdlib-sorting-reference"
          },
          {
            "id": "stdlib-random-seed",
            "package_id": "stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
            "module": "stdlib_random",
            "procedure": "random_seed",
            "gams_codes": [
              "L6c"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Seeds the stdlib distribution stream, demonstrated through dist_rand integer draws. This is separate from intrinsic RANDOM_NUMBER. The driver checks exact reseeded replay, consistent opaque get output, and changed output for a second selected seed; get is not treated as an original-seed echo or complete generator checkpoint.",
            "evidence": [
              {
                "path": "src/stdlib_random.f90",
                "sha256": "a69b10ab83b48a140fc0909888ea541d10ae67f727c0c9973c1a01211141268e",
                "line": 28
              },
              {
                "path": "src/stdlib_random.f90",
                "sha256": "a69b10ab83b48a140fc0909888ea541d10ae67f727c0c9973c1a01211141268e",
                "line": 225
              }
            ],
            "author_examples": [
              {
                "path": "example/example_random_seed.f90",
                "sha256": "b1025f58e68f0cffc10a43bfdb8fa5c93f6c0d1d7f1e47540e62c8de0eace5fa"
              }
            ],
            "driver_id": "stdlib-seed-replay"
          },
          {
            "id": "stdlib-lstsq",
            "package_id": "stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
            "module": "stdlib_linalg",
            "procedure": "lstsq (real dense overload)",
            "gams_codes": [
              "D9a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Real unconstrained linear least squares using the SVD-based GELSD implementation, including rank-deficient minimum-norm solutions.",
            "evidence": [
              {
                "path": "src/stdlib_linalg.f90",
                "sha256": "7b3f6f3274aa843a3308efe95594888feaa904648eff18041ff20988cc358811",
                "line": 1393
              }
            ],
            "author_examples": [
              {
                "path": "example/example_lstsq1.f90",
                "sha256": "aeb94a3308199023078fd6f77042eb590daedc71cc098b1ffc37a4988a8c0644"
              }
            ],
            "driver_id": "stdlib-least-squares"
          },
          {
            "id": "stdlib-var",
            "package_id": "stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
            "module": "stdlib_stats",
            "procedure": "var (real64 sample/population configurations)",
            "gams_codes": [
              "L1a1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Real64 variance with explicit corrected=.true. (sample) or .false. (population); masked subsets and dimension reduction are demonstrated.",
            "evidence": [
              {
                "path": "src/stdlib_stats.f90",
                "line": 1782,
                "sha256": "e15ce21ef7f4ae8f3c0df5d99675ad33a5a820167c7565c3b14d3fa2f0acba88"
              }
            ],
            "author_examples": [
              {
                "path": "test/test_var.f90",
                "sha256": "3b8ce3023132790a9b29cdb25525b322ea3d9b09fd148da8869cdafbfef2da38"
              }
            ],
            "driver_id": "stdlib-sample-variance-checks"
          }
        ],
        "numerical_review": {
          "revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
          "archive_sha256": "2826cedc6566feef1344f40cbaaf5c3e820a5e4b581d8a635f38ff99decefef5",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "stdlib-mean",
            "stdlib-solve",
            "stdlib-sort",
            "stdlib-random-seed",
            "stdlib-lstsq",
            "stdlib-var"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "stdlib",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=stdlib",
        "package_revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/stdlib.f90",
          "sha256": "bd9f6d28306dcb78af5cc2350b11f42682e31eec2972bb2e1667ddd9b973b114"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "58eb9133966c2797e0593281169ef57c43eccc1d",
        "verified_at": "2026-10-28T20:12:46.446837+00:00",
        "packages": []
      }
    },
    {
      "id": "github:fortran-lang/test-drive",
      "name": "test-drive",
      "repository": {
        "host": "github",
        "owner": "fortran-lang",
        "name": "test-drive",
        "url": "https://github.com/fortran-lang/test-drive"
      },
      "description": "Lightweight unit testing with named tests and assertions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Testing"
      ],
      "license": {
        "label": "Apache-2.0 OR MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran-library",
          "fortran-package-manager",
          "testing-framework",
          "unit-testing"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 120,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "assertions",
          "unit-testing"
        ],
        "gams_codes": [
          "S",
          "S3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "791484a79a24cbc00be6f74e53c6e030cb75efe2"
      },
      "playground": {
        "package_id": "test-drive",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=test-drive",
        "package_revision": "791484a79a24cbc00be6f74e53c6e030cb75efe2",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/test-drive.f90",
          "sha256": "16cedb750b0a6fe26fd3a02c3c94376126364ba0abb5665a49416f602fdc0d91"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "791484a79a24cbc00be6f74e53c6e030cb75efe2",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:fpenunuri/dnaoad-fpm",
      "name": "dnaoad-fpm",
      "repository": {
        "host": "github",
        "owner": "fpenunuri",
        "name": "DNAOAD-FPM",
        "url": "https://github.com/fpenunuri/DNAOAD-FPM"
      },
      "description": "Complex dual numbers for derivatives through configurable order.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differentiation"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T17:54:16.128500+00:00"
      },
      "curation": {
        "topics": [
          "automatic-differentiation",
          "complex-arithmetic",
          "dual-numbers",
          "higher-order-derivatives"
        ],
        "gams_codes": [
          "H",
          "H1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "f7f328e89b208a99797d64f4a41e97ba91b85962",
        "procedures": [
          {
            "id": "dnaoad-fpm-api",
            "package_id": "dnaoad-fpm",
            "revision": "f7f328e89b208a99797d64f4a41e97ba91b85962",
            "module": "dualzn_mod",
            "procedure": "exp / sin for dualzn",
            "gams_codes": [
              "H1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "automatic differentiation",
            "notes": "Dual-number derivatives through the configured maximum order (five in this build); the demo checks orders zero through five at real and complex arguments.",
            "evidence": [
              {
                "path": "src/dualzn_mod.f90",
                "sha256": "90106eb7645f094511f5a0410917c42721b6475e180b09cad1f22d351b0a2c24",
                "line": 7
              }
            ],
            "author_examples": [
              {
                "path": "app/ex1.f90",
                "sha256": "45cfee1e4f05e4a9f49e640c11051f7102dc0bfd8e544612b096ecd3b8f31ed7"
              }
            ],
            "driver_id": "dnaoad-higher-reference"
          }
        ],
        "numerical_review": {
          "revision": "f7f328e89b208a99797d64f4a41e97ba91b85962",
          "archive_sha256": "eb96a128d723377508e87d6b843afb405ff66cad7248f7916d2664318e56f703",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "dnaoad-fpm-api"
          ],
          "notes": "Dual-number derivatives through the configured maximum order (five in this build); the demo checks orders zero through five at real and complex arguments. Source review covers these representative procedures, not an exhaustive API inventory."
        }
      },
      "playground": {
        "package_id": "dnaoad-fpm",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dnaoad-fpm",
        "package_revision": "f7f328e89b208a99797d64f4a41e97ba91b85962",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/dnaoad-fpm.f90",
          "sha256": "c95ff264f64a018edccd3a23949f5646e1a7ddb8527abd2e85f0253750c00d5f"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f7f328e89b208a99797d64f4a41e97ba91b85962",
        "verified_at": "2026-10-28T17:55:12.282099+00:00",
        "packages": []
      }
    },
    {
      "id": "github:freevryheid/scanner",
      "name": "scanner",
      "repository": {
        "host": "github",
        "owner": "freevryheid",
        "name": "scanner",
        "url": "https://github.com/freevryheid/scanner"
      },
      "description": "Character-by-character text scanning with bounded navigation for small parsers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Strings"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "parser",
          "scanner"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T23:08:38.764348+00:00"
      },
      "curation": {
        "topics": [
          "character-processing",
          "parsing",
          "strings",
          "text-scanning"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Character-by-character text scanning. The main reconstructs a configuration record through current/next, verifies navigation and end boundaries, and checks that peek does not move the cursor. The recovered fields are converted with ordinary internal READ and compared with known values; this is a small parser example, not a full parsing language.",
        "reviewed_revision": "b0026498c171b615bb3dcfca55a0f20b133e22dc",
        "procedures": [
          {
            "id": "scanner-text",
            "package_id": "scanner",
            "revision": "b0026498c171b615bb3dcfca55a0f20b133e22dc",
            "module": "scanner",
            "procedure": "textscanner%new / current / next / peek / jump_to",
            "gams_codes": [
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Character-by-character text scanning. The main reconstructs a configuration record through current/next, verifies navigation and end boundaries, and checks that peek does not move the cursor. The recovered fields are converted with ordinary internal READ and compared with known values; this is a small parser example, not a full parsing language.",
            "evidence": [
              {
                "path": "src/scanner.f90",
                "sha256": "611e90e368cb66ac7d2f29128d4e7d968e27ec1bb74b989d2af5898137116a26",
                "line": 41
              }
            ],
            "author_examples": [
              {
                "path": "app/main.f90",
                "sha256": "653f0d75d9f739e84957dc481b9eeaa368fce97c2e1596c11c1410ce863632bf"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "scanner",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=scanner",
        "package_revision": "b0026498c171b615bb3dcfca55a0f20b133e22dc",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/scanner.f90",
          "sha256": "2a26ac5acd461dd59e4ae78b9ce6f16b14988a2b74b5491bf213418a763e0a28"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b0026498c171b615bb3dcfca55a0f20b133e22dc",
        "verified_at": "2026-10-28T23:12:09.139584+00:00",
        "packages": [
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          }
        ]
      }
    },
    {
      "id": "github:furstj/interpolation",
      "name": "interpolation",
      "repository": {
        "host": "github",
        "owner": "furstj",
        "name": "interpolation",
        "url": "https://github.com/furstj/interpolation"
      },
      "description": "Linear and shape-preserving piecewise cubic interpolation for tabulated data.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interpolation"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "interpolation"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "interpolation",
          "shape-preserving",
          "splines",
          "tabulated-data"
        ],
        "gams_codes": [
          "E",
          "E1",
          "E1a"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "bf6d22ad931855d510dcfb5bdd6870cce8924b22",
        "procedures": [
          {
            "id": "interpolation-interp1",
            "package_id": "interpolation",
            "revision": "bf6d22ad931855d510dcfb5bdd6870cce8924b22",
            "module": "interpolation",
            "procedure": "interp1",
            "gams_codes": [
              "E1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Piecewise linear/PCHIP interpolation of one-dimensional tabulated data.",
            "evidence": [
              {
                "path": "src/interpolation.f90",
                "sha256": "a276bfb926b71441695ec711ddf4bf8c45cd606960aa18ee768eae4b6ccd1422",
                "line": 14
              }
            ],
            "author_examples": [
              {
                "path": "test/interp1_test.f90",
                "sha256": "872afc945dadf8933902cd3c90c61439202735df3f6e614b0f0c343731c430c9"
              }
            ],
            "driver_id": "interp1-reference"
          }
        ],
        "numerical_review": {
          "revision": "bf6d22ad931855d510dcfb5bdd6870cce8924b22",
          "archive_sha256": "102b10cbdfe5800b88a64e305718526387feb684e3fb07225e86add69052487b",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "interpolation-interp1"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "interpolation",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=interpolation",
        "package_revision": "bf6d22ad931855d510dcfb5bdd6870cce8924b22",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/interpolation.f90",
          "sha256": "879b7c51c77348937d45c21d5dea071e65c0181976776ccbd784e311e41d27f4"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "bf6d22ad931855d510dcfb5bdd6870cce8924b22",
        "verified_at": "2026-10-28T20:12:46.446837+00:00",
        "packages": [
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          }
        ]
      }
    },
    {
      "id": "github:geospace-code/h5fortran",
      "name": "h5fortran",
      "repository": {
        "host": "github",
        "owner": "geospace-code",
        "name": "h5fortran",
        "url": "https://github.com/geospace-code/h5fortran"
      },
      "description": "High-level HDF5 access for numerical arrays, strings and metadata.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "hdf5",
          "object-oriented-fortran"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 121,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "file-io",
          "hdf5",
          "metadata",
          "scientific-data"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "9fb7549a2d213c10190ae268edecaac4c4c06d0a"
      },
      "playground": {
        "package_id": "h5fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=h5fortran",
        "package_revision": "9fb7549a2d213c10190ae268edecaac4c4c06d0a",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/h5fortran.f90",
          "sha256": "c44ab3eecedf25fc9ebc3d2f19292a687bdef71a9ff61e3d0581682a7c682b34"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "9fb7549a2d213c10190ae268edecaac4c4c06d0a",
        "verified_at": "2026-10-27T23:52:44.682584+00:00",
        "packages": []
      }
    },
    {
      "id": "github:geospace-code/maptran3d",
      "name": "maptran3d",
      "repository": {
        "host": "github",
        "owner": "geospace-code",
        "name": "maptran3d",
        "url": "https://github.com/geospace-code/maptran3d"
      },
      "description": "Geographic and Earth-centered Cartesian coordinate transformations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Geodesy"
      ],
      "license": {
        "label": "BSD-2-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "coordinate-conversions",
          "coordinate-transformation",
          "fortran2018",
          "geodesy",
          "modern-fortran"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 17,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "cartesian-coordinates",
          "coordinate-transformations",
          "geodesy",
          "geographic-coordinates"
        ],
        "gams_codes": [
          "P"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "4ccc2479ae79a58b34d8e491013cfa2f60f65867",
        "procedures": [
          {
            "id": "maptran3d-geodetic2ecef",
            "package_id": "maptran3d",
            "revision": "4ccc2479ae79a58b34d8e491013cfa2f60f65867",
            "module": "maptran",
            "procedure": "geodetic2ecef, ecef2geodetic",
            "gams_codes": [
              "P"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Geodetic and Earth-centered Cartesian coordinate transformations.",
            "evidence": [
              {
                "path": "src/ecef.f90",
                "sha256": "e5a93638df2f5e7a7d335d3632f78ace4d010cf0c70546077efe472fd6321408",
                "line": 80
              }
            ],
            "author_examples": [
              {
                "path": "test/test_mod.f90",
                "sha256": "c9048b7ccd6ba0886177b7f8691783985f096e265e10dfde9c9468b985928dab"
              }
            ],
            "driver_id": "maptran-wgs84-reference"
          }
        ],
        "numerical_review": {
          "revision": "4ccc2479ae79a58b34d8e491013cfa2f60f65867",
          "archive_sha256": "061ee9c087d80362dd070e850f11538d0be27c1ce734ac37c369052934def57b",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "maptran3d-geodetic2ecef"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "maptran3d",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=maptran3d",
        "package_revision": "4ccc2479ae79a58b34d8e491013cfa2f60f65867",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/maptran3d.f90",
          "sha256": "8381fe323889ceda89a5c6a20cfc2b7f0d60844792f03c86aea0ee90845f4672"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "4ccc2479ae79a58b34d8e491013cfa2f60f65867",
        "verified_at": "2026-10-28T00:11:51.121365+00:00",
        "packages": []
      }
    },
    {
      "id": "github:geospace-code/nc4fortran",
      "name": "nc4fortran",
      "repository": {
        "host": "github",
        "owner": "geospace-code",
        "name": "nc4fortran",
        "url": "https://github.com/geospace-code/nc4fortran"
      },
      "description": "Object-oriented NetCDF4 input and output for arrays, scalars and attributes.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "netcdf4",
          "object-oriented-fortran"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 45,
        "stars_updated_at": "2026-10-29T00:50:30.284213+00:00"
      },
      "curation": {
        "topics": [
          "array-io",
          "metadata",
          "netcdf",
          "scientific-data"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "NetCDF4 array and attribute I/O. The checked main writes a 2-by-3 double-precision array with dimension names and a kelvin units attribute, closes the file, reopens and verifies every value and the attribute, then deletes the sandbox file. Native NetCDF and HDF5 development packages and include/library paths are pinned in the build recipe. No source edits. It does not cover every type/rank, compression, slicing or malformed files.",
        "reviewed_revision": "942ac4f83380acdef463002f555aebf30f3c46ac",
        "procedures": [
          {
            "id": "nc4fortran-io",
            "package_id": "nc4fortran",
            "revision": "942ac4f83380acdef463002f555aebf30f3c46ac",
            "module": "nc4fortran",
            "procedure": "netcdf_file%open / write / read / write_attribute / read_attribute",
            "gams_codes": [
              "N1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "NetCDF4 array and attribute I/O. The checked main writes a 2-by-3 double-precision array with dimension names and a kelvin units attribute, closes the file, reopens and verifies every value and the attribute, then deletes the sandbox file. Native NetCDF and HDF5 development packages and include/library paths are pinned in the build recipe. No source edits. It does not cover every type/rank, compression, slicing or malformed files.",
            "evidence": [
              {
                "path": "src/interface.f90",
                "sha256": "ea1463569a148abe350e1042ac345d65939221e0a9f9e67978bd5b722b7a627e",
                "line": 1
              },
              {
                "path": "src/attributes.f90",
                "sha256": "9a3c28857b4d4f845ff8d11ab456a73bb03d5e6dd3417ee0c9e2a096d98c97b3",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/test_array.f90",
                "sha256": "65873c7734d345d4df4f1a86baf378e91d4acfde6f57fb5ffebc18592a1739fe"
              },
              {
                "path": "test/test_attributes.f90",
                "sha256": "0ebf81f0cda89879b306c97c8518076dc9e56a1e4a10caa5f9fc637e262ce212"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "nc4fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nc4fortran",
        "package_revision": "942ac4f83380acdef463002f555aebf30f3c46ac",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/nc4fortran.f90",
          "sha256": "2f5698b3827bf052722fa89097c6d1d94116d4304b888e6bda8d15939bdfa814"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "942ac4f83380acdef463002f555aebf30f3c46ac",
        "verified_at": "2026-10-29T00:57:33.593173+00:00",
        "packages": []
      }
    },
    {
      "id": "github:gha3mi/fordiff",
      "name": "fordiff",
      "repository": {
        "host": "github",
        "owner": "gha3mi",
        "name": "fordiff",
        "url": "https://github.com/gha3mi/fordiff"
      },
      "description": "Numerical derivatives using finite differences and complex steps.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differentiation"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "complex-step-differentiation",
          "derivative",
          "differentiation",
          "finite-difference",
          "fortran",
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "complex-step",
          "derivatives",
          "differentiation",
          "finite-differences"
        ],
        "gams_codes": [
          "H",
          "H1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "f1a1099a590107645314f1388c432624ff97b9bc",
        "procedures": [
          {
            "id": "fordiff-derivative",
            "package_id": "fordiff",
            "revision": "f1a1099a590107645314f1388c432624ff97b9bc",
            "module": "fordiff",
            "procedure": "derivative",
            "gams_codes": [
              "H1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "function values; finite differences or complex step",
            "notes": "Numerical differentiation; the selected method controls callback requirements. The checked H1 driver uses exp(x)*sin(x) at four shared points with analytic references and explicit tolerances; only the recorded scalar configuration is verified.",
            "evidence": [
              {
                "path": "src/fordiff.F90",
                "sha256": "373006ca8ab63222f88daa82344d8da12c8895f316801da4dc63f8116121f5b7",
                "line": 26
              }
            ],
            "author_examples": [
              {
                "path": "example/demo1.f90",
                "sha256": "cdaf38f6bdc6794d4bc282ea3e913bc027b5da194f0f422f8dd0e4f207154dd7"
              }
            ],
            "driver_id": "fordiff-analytic-derivatives"
          }
        ],
        "numerical_review": {
          "revision": "f1a1099a590107645314f1388c432624ff97b9bc",
          "archive_sha256": "b2881c68306d92df9117f68e3852378ab0378d1cb2a9e0b76060239f94fac7a0",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fordiff-derivative"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fordiff",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fordiff",
        "package_revision": "f1a1099a590107645314f1388c432624ff97b9bc",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fordiff.f90",
          "sha256": "c7e2b812e8c7b7cc0fdafa045f0e206e887265ae6587333e086e92cc5e17b496"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f1a1099a590107645314f1388c432624ff97b9bc",
        "verified_at": "2026-10-27T22:36:01.378932+00:00",
        "packages": []
      }
    },
    {
      "id": "github:gha3mi/fordot",
      "name": "fordot",
      "repository": {
        "host": "github",
        "owner": "gha3mi",
        "name": "fordot",
        "url": "https://github.com/gha3mi/fordot"
      },
      "description": "Selectable dot-product implementations, including BLAS and blocked calculations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "coarray",
          "dot-product",
          "fortran",
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T22:02:20.239918+00:00"
      },
      "curation": {
        "topics": [
          "blas",
          "blocked-algorithms",
          "dot-products",
          "linear-algebra"
        ],
        "gams_codes": [
          "D",
          "D1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Scalar products using methods m1 through m4, each also checked with three unequal blocks against an exact answer. Single-process correctness only; no coarray or performance claim.",
        "reviewed_revision": "3966625781a9c1dffe037e3032fa4a0b6f958760",
        "procedures": [
          {
            "id": "fordot-products",
            "package_id": "fordot",
            "revision": "3966625781a9c1dffe037e3032fa4a0b6f958760",
            "module": "fordot",
            "procedure": "dot_product",
            "gams_codes": [
              "D1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Scalar products using methods m1 through m4, each also checked with three unequal blocks against an exact answer. Single-process correctness only; no coarray or performance claim. The D1 driver checks 231 default/m1..m4 scalar products at lengths 1/7/8/17/64 against exact int64-based dyadic references, including zero products and block counts 1/3/n where valid and distinct. Contiguous inputs and single-process calls only.",
            "evidence": [
              {
                "path": "src/fordot.f90",
                "sha256": "f8acb8048235f6ff2eab6785560dd8676ec5917b778c1d8c6511c5a355e182d8",
                "line": 21
              }
            ],
            "author_examples": [
              {
                "path": "test/test1.f90",
                "sha256": "9df1ee66801a4bb1a080346512aa8b38e71e77cc94f1a6207a945630ed1aa0b0"
              }
            ],
            "driver_id": "fordot-exact-reference"
          }
        ],
        "numerical_review": {
          "revision": "3966625781a9c1dffe037e3032fa4a0b6f958760",
          "archive_sha256": "6f3017330d5ba4accff12c09e10651f45171ac2a636957d69b123522d3dc4009",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fordot-products"
          ],
          "notes": "Scalar products using methods m1 through m4, each also checked with three unequal blocks against an exact answer. Single-process correctness only; no coarray or performance claim."
        }
      },
      "playground": {
        "package_id": "fordot",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fordot",
        "package_revision": "3966625781a9c1dffe037e3032fa4a0b6f958760",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fordot.f90",
          "sha256": "7bfafe2012d6cad882de0d9b86e00a6027e237465f33d005d6a26cf300a8fe5a"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "3966625781a9c1dffe037e3032fa4a0b6f958760",
        "verified_at": "2026-10-28T22:10:17.874400+00:00",
        "packages": [
          {
            "id": "github:gha3mi/forunittest",
            "repository": "gha3mi/forunittest",
            "revision": "997e9974e52b40f6538ed84cf24259c331a782b3"
          },
          {
            "id": "github:gha3mi/kinds",
            "repository": "gha3mi/kinds",
            "revision": "811cfba1a35f09eae9c1cc2d2e730a9f54f03c6f"
          },
          {
            "id": "github:szaghi/face",
            "repository": "szaghi/FACE",
            "revision": "b20893e48518a81c25982ef20cc5a7cf8d31c8d8"
          }
        ]
      }
    },
    {
      "id": "github:gha3mi/foreig",
      "name": "foreig",
      "repository": {
        "host": "github",
        "owner": "gha3mi",
        "name": "foreig",
        "url": "https://github.com/gha3mi/foreig"
      },
      "description": "LAPACK interfaces for eigenvalues and eigenvectors of real matrices.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "eig",
          "eigenvalues",
          "eigenvalues-and-eigenvectors",
          "eigenvectors",
          "fortran",
          "fortran-package-manager",
          "lapack",
          "mkl"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "eigenvalues",
          "eigenvectors",
          "lapack",
          "linear-algebra"
        ],
        "gams_codes": [
          "D",
          "D4",
          "D4a",
          "D4a1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "8fcfcab03e5d7cf5eda8c51c7a1e97fe52954c39",
        "procedures": [
          {
            "id": "foreig-eig",
            "package_id": "foreig",
            "revision": "8fcfcab03e5d7cf5eda8c51c7a1e97fe52954c39",
            "module": "foreig",
            "procedure": "eig (SYEV method)",
            "gams_codes": [
              "D4a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Standard real symmetric eigenproblem via LAPACK SYEV; other methods are separate configurations.",
            "evidence": [
              {
                "path": "src/foreig.f90",
                "sha256": "b28558499863dcd899744bfe6763e0c4a1f0ab05daade5a44ab24691afa54e4c",
                "line": 11
              }
            ],
            "author_examples": [
              {
                "path": "test/test1.f90",
                "sha256": "2642dc6777286e1fc213d300505a601d58c2a1ab45c9fe7f0e13f6eaa0d74ef4"
              }
            ],
            "driver_id": "foreig-symmetric-reference"
          }
        ],
        "numerical_review": {
          "revision": "8fcfcab03e5d7cf5eda8c51c7a1e97fe52954c39",
          "archive_sha256": "842695c219adfd981a06d7451b87b27d57d3db86c8878612b371b782eb0e02d1",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "foreig-eig"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "foreig",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=foreig",
        "package_revision": "8fcfcab03e5d7cf5eda8c51c7a1e97fe52954c39",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/foreig.f90",
          "sha256": "3f7916c5f9be969450d9c8e643a794e0b380eb2792b51d562207197e130a77a1"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "8fcfcab03e5d7cf5eda8c51c7a1e97fe52954c39",
        "verified_at": "2026-10-28T02:10:15.391492+00:00",
        "packages": [
          {
            "id": "github:gha3mi/kinds",
            "repository": "gha3mi/kinds",
            "revision": "811cfba1a35f09eae9c1cc2d2e730a9f54f03c6f"
          }
        ]
      }
    },
    {
      "id": "github:gha3mi/forimage",
      "name": "forimage",
      "repository": {
        "host": "github",
        "owner": "gha3mi",
        "name": "forimage",
        "url": "https://github.com/gha3mi/forimage"
      },
      "description": "Create, read, write and transform PNM images and convert color representations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Images"
      ],
      "license": {
        "label": "BSD 3-Clause License",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "color",
          "decimal",
          "fortran",
          "fortran-package-manager",
          "hexadecimal",
          "hsl",
          "hsv",
          "image",
          "pbm",
          "pgm",
          "pnm",
          "ppm",
          "rgb"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "color-conversion",
          "file-io",
          "image-processing",
          "images",
          "pnm"
        ],
        "gams_codes": [
          "N",
          "N1",
          "Q"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "65f53ce6a53c3a3ee38f05e6a065505bc3fa0dfb"
      },
      "playground": {
        "package_id": "forimage",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forimage",
        "package_revision": "65f53ce6a53c3a3ee38f05e6a065505bc3fa0dfb",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/forimage.f90",
          "sha256": "663f584ee57d37be345a184aaa971304e52698e543f3bc72e04edc24d9d6f942"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "65f53ce6a53c3a3ee38f05e6a065505bc3fa0dfb",
        "verified_at": "2026-10-27T23:25:35.966397+00:00",
        "packages": []
      }
    },
    {
      "id": "github:gha3mi/forinv",
      "name": "forinv",
      "repository": {
        "host": "github",
        "owner": "gha3mi",
        "name": "forinv",
        "url": "https://github.com/gha3mi/forinv"
      },
      "description": "Matrix inverses and singular-value-decomposition pseudoinverses.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "inverse",
          "pseudoinverse",
          "svd"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "linear-algebra",
          "matrix-inverse",
          "pseudoinverse",
          "svd"
        ],
        "gams_codes": [
          "D",
          "D2",
          "D6",
          "D9",
          "D9c"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "80b5dbed9709c001e4309382424276a2ceb984f3",
        "procedures": [
          {
            "id": "forinv-inv",
            "package_id": "forinv",
            "revision": "80b5dbed9709c001e4309382424276a2ceb984f3",
            "module": "forinv",
            "procedure": "inv (SVD pseudoinverse)",
            "gams_codes": [
              "D9c"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Moore-Penrose inverse with an explicit singular-value cutoff for rank-deficient input. Dedicated D9c driver checks five explicit known pseudoinverses (rank-one tall, full-rank tall/wide, singular diagonal, zero), all four Moore-Penrose identities and the rank-one minimum-norm solution (0.2,0.4). Uses method=gesvd and absolute cutoff 1e-10. Original matrices are preserved because the pinned ForSVD dependency can overwrite input. Other methods, cutoff selection, ill-conditioning and near-threshold ranks are not verified.",
            "evidence": [
              {
                "path": "src/forinv.f90",
                "sha256": "ed8b1df16072a0470f58151ab99390cce208c1214f5d9350492b78d638a9605d",
                "line": 15
              }
            ],
            "author_examples": [
              {
                "path": "test/test1.f90",
                "sha256": "8224a804d74a9f2c6eb748195d9f13e2f38056084d75fa07826d8b2661395327"
              }
            ],
            "driver_id": "forinv-pseudoinverse-reference"
          }
        ],
        "numerical_review": {
          "revision": "80b5dbed9709c001e4309382424276a2ceb984f3",
          "archive_sha256": "22905d8cc5d0c62d25c937adf9475592d4a1b4c02e2eb64413070c3d4c14426a",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "forinv-inv"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "forinv",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forinv",
        "package_revision": "80b5dbed9709c001e4309382424276a2ceb984f3",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/forinv.f90",
          "sha256": "278455b6c771ab1369fa55105672bdf91f8d69bc8ca19f56d40e12849bee82fc"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "80b5dbed9709c001e4309382424276a2ceb984f3",
        "verified_at": "2026-10-28T01:52:04.654432+00:00",
        "packages": [
          {
            "id": "github:gha3mi/forsvd",
            "repository": "gha3mi/forsvd",
            "revision": "f39bba7afcb048a21947a7a640bdf9a18337f8ac"
          },
          {
            "id": "github:gha3mi/fortime",
            "repository": "gha3mi/fortime",
            "revision": "de733e2c775457d4979403fe77ab69cf28e2b159"
          },
          {
            "id": "github:gha3mi/kinds",
            "repository": "gha3mi/kinds",
            "revision": "811cfba1a35f09eae9c1cc2d2e730a9f54f03c6f"
          },
          {
            "id": "github:szaghi/face",
            "repository": "szaghi/FACE",
            "revision": "b20893e48518a81c25982ef20cc5a7cf8d31c8d8"
          }
        ]
      }
    },
    {
      "id": "github:gha3mi/formatmul",
      "name": "formatmul",
      "repository": {
        "host": "github",
        "owner": "gha3mi",
        "name": "formatmul",
        "url": "https://github.com/gha3mi/formatmul"
      },
      "description": "Matrix products with transpose options and selectable multiplication methods.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "coarray",
          "fortran",
          "fortran-package-manager",
          "matmul"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 7,
        "stars_updated_at": "2026-10-28T22:02:20.239918+00:00"
      },
      "curation": {
        "topics": [
          "blas",
          "linear-algebra",
          "matrix-multiplication",
          "matrix-vector-products",
          "transpose"
        ],
        "gams_codes": [
          "D",
          "D1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Methods m1 through m4 are checked for rectangular matrix multiplication, all transpose combinations and a matrix-vector product. The demo is single-process and does not validate every implementation or coarray branch. At this pin a single explicitly false transpose flag is misrouted; the demo passes both flags whenever either is specified. Separate failing probes and the successful workaround are retained.",
        "reviewed_revision": "4b5747d49c27f0df92288e7a61d0e479e34ac78e",
        "procedures": [
          {
            "id": "formatmul-products",
            "package_id": "formatmul",
            "revision": "4b5747d49c27f0df92288e7a61d0e479e34ac78e",
            "module": "formatmul",
            "procedure": "matmul",
            "gams_codes": [
              "D1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Methods m1 through m4 are checked for rectangular matrix multiplication, all transpose combinations and a matrix-vector product. The demo is single-process and does not validate every implementation or coarray branch. At this pin a single explicitly false transpose flag is misrouted; the demo passes both flags whenever either is specified. Separate failing probes and the successful workaround are retained.",
            "evidence": [
              {
                "path": "src/formatmul.f90",
                "sha256": "01e927ffd8dd4a00f59500dfd120a3f3eb42a152afc0793017102d4d3e865cf9",
                "line": 585
              }
            ],
            "author_examples": [
              {
                "path": "test/test1.f90",
                "sha256": "d913f9409008e15ee3ed69cc42de5be1c63e28b2095bdb9cc449f403cdf1df68"
              }
            ],
            "driver_id": "formatmul-products-reference"
          }
        ],
        "numerical_review": {
          "revision": "4b5747d49c27f0df92288e7a61d0e479e34ac78e",
          "archive_sha256": "790dbd5cff7a0957bd37672d2524f83584fde9642bcc47295411e00b06d63cbc",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "formatmul-products"
          ],
          "notes": "Methods m1 through m4 are checked for rectangular matrix multiplication, all transpose combinations and a matrix-vector product. The demo is single-process and does not validate every implementation or coarray branch. At this pin a single explicitly false transpose flag is misrouted; the demo passes both flags whenever either is specified. Separate failing probes and the successful workaround are retained."
        }
      },
      "playground": {
        "package_id": "formatmul",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=formatmul",
        "package_revision": "4b5747d49c27f0df92288e7a61d0e479e34ac78e",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/formatmul.f90",
          "sha256": "b16b74a755966a26a15b87e109e74351b0d558faf3ea17180a7f51721f7b7985"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "4b5747d49c27f0df92288e7a61d0e479e34ac78e",
        "verified_at": "2026-10-28T22:10:17.874400+00:00",
        "packages": [
          {
            "id": "github:gha3mi/fortime",
            "repository": "gha3mi/fortime",
            "revision": "de733e2c775457d4979403fe77ab69cf28e2b159"
          },
          {
            "id": "github:gha3mi/forunittest",
            "repository": "gha3mi/forunittest",
            "revision": "997e9974e52b40f6538ed84cf24259c331a782b3"
          },
          {
            "id": "github:gha3mi/kinds",
            "repository": "gha3mi/kinds",
            "revision": "811cfba1a35f09eae9c1cc2d2e730a9f54f03c6f"
          },
          {
            "id": "github:szaghi/face",
            "repository": "szaghi/FACE",
            "revision": "b20893e48518a81c25982ef20cc5a7cf8d31c8d8"
          }
        ]
      }
    },
    {
      "id": "github:gha3mi/forpca",
      "name": "forpca",
      "repository": {
        "host": "github",
        "owner": "gha3mi",
        "name": "forpca",
        "url": "https://github.com/gha3mi/forpca"
      },
      "description": "Principal component directions from eigendecomposition or singular value decomposition.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Statistics"
      ],
      "license": {
        "label": "BSD-3-Clause (LICENSE file; manifest placeholder)",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "pca",
          "principal-component-analysis"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "dimensionality-reduction",
          "eigenvalues",
          "principal-component-analysis",
          "statistics",
          "svd"
        ],
        "gams_codes": [
          "D",
          "D4",
          "D6",
          "L",
          "L13",
          "L13b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "D4 and D6 describe the eigenvalue/SVD methods. PCA retains the parent L assignment rather than guessing an immediate statistical subclass.",
        "reviewed_revision": "d5d87badc4c25c647b3618f22560e712728d8165",
        "procedures": [
          {
            "id": "forpca-pca",
            "package_id": "forpca",
            "revision": "d5d87badc4c25c647b3618f22560e712728d8165",
            "module": "forpca",
            "procedure": "tpca%pca (SVD mode)",
            "gams_codes": [
              "D6",
              "L13b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "SVD-based principal directions and covariance analysis; D6 and L13b remain source-supported. A checked variance probe fails: covariance diag(10,3.5) produces latent [100,12.25] and incorrect explained percentages. The SVD branch squares covariance singular values again. See docs/gams-candidates/forpca/covariance-variances-result.json and docs/gams-sparse-integral.md. The ordinary catalog demo checks direction and an independently formed rank-one reconstruction only; no checked PCA variance driver is published.",
            "evidence": [
              {
                "path": "src/forpca.f90",
                "sha256": "5e37ae9319dff32ec9447f4a6702a03425800d793475b701b3791600eae5fb2f",
                "line": 29
              }
            ],
            "author_examples": [
              {
                "path": "test/test1.f90",
                "sha256": "abecdc7baaa729877d748a765d74029c10fbf4fb8366d415c4da1502fd46ce46"
              }
            ]
          }
        ],
        "numerical_review": {
          "revision": "d5d87badc4c25c647b3618f22560e712728d8165",
          "archive_sha256": "e01059bbc49107d7e29ddb275503ea7b789e6a9478c63a33f3f1d864b1a068a4",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "forpca-pca"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "forpca",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forpca",
        "package_revision": "d5d87badc4c25c647b3618f22560e712728d8165",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/forpca.f90",
          "sha256": "4a92e7e3f382bce67f6c462054b8efbc45e8267e3b0423b6e2adce55acb1b2f9"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d5d87badc4c25c647b3618f22560e712728d8165",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": [
          {
            "id": "github:gha3mi/foreig",
            "repository": "gha3mi/foreig",
            "revision": "8fcfcab03e5d7cf5eda8c51c7a1e97fe52954c39"
          },
          {
            "id": "github:gha3mi/formatmul",
            "repository": "gha3mi/formatmul",
            "revision": "6a77af418bbd77ffb5323a338db5cdf9368a73f7"
          },
          {
            "id": "github:gha3mi/forsvd",
            "repository": "gha3mi/forsvd",
            "revision": "f39bba7afcb048a21947a7a640bdf9a18337f8ac"
          },
          {
            "id": "github:gha3mi/fortime",
            "repository": "gha3mi/fortime",
            "revision": "de733e2c775457d4979403fe77ab69cf28e2b159"
          },
          {
            "id": "github:gha3mi/kinds",
            "repository": "gha3mi/kinds",
            "revision": "811cfba1a35f09eae9c1cc2d2e730a9f54f03c6f"
          },
          {
            "id": "github:szaghi/face",
            "repository": "szaghi/FACE",
            "revision": "b20893e48518a81c25982ef20cc5a7cf8d31c8d8"
          }
        ]
      }
    },
    {
      "id": "github:gha3mi/forsolver",
      "name": "forsolver",
      "repository": {
        "host": "github",
        "owner": "gha3mi",
        "name": "forsolver",
        "url": "https://github.com/gha3mi/forsolver"
      },
      "description": "Linear solvers and Newton-type nonlinear solvers with analytic, finite-difference and complex-step derivatives.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "complex-step-differentiation",
          "finite-difference-method",
          "fortran",
          "fortran-package-manager",
          "linear-system-solver",
          "newton-method",
          "newton-raphson",
          "nonlinear-systems",
          "quasi-newton-method",
          "solver"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 8,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "complex-step",
          "finite-differences",
          "linear-systems",
          "newton-methods",
          "nonlinear-equations"
        ],
        "gams_codes": [
          "D",
          "D2",
          "F",
          "F1",
          "F1b",
          "F2",
          "H",
          "H1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "6c0644b287cb49a7310d883415b9b9ba581d51c5",
        "procedures": [
          {
            "id": "forsolver-nlsolver",
            "package_id": "forsolver",
            "revision": "6c0644b287cb49a7310d883415b9b9ba581d51c5",
            "module": "forsolver",
            "procedure": "nlsolver%solve",
            "gams_codes": [
              "F1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "analytic, finite-difference, or complex-step derivative by method",
            "notes": "Reviewed scalar Newton configurations; linear and vector-system APIs are separate.",
            "evidence": [
              {
                "path": "src/forsolver.f90",
                "sha256": "209008df182f563b148781bf36ff0336bc969f1d54d9572bca03e7c2177416b9",
                "line": 15
              }
            ],
            "author_examples": [
              {
                "path": "test/test_solver3.f90",
                "sha256": "3824ae3ca0c76200ea2faccd34e99df2b6fb1653241f907f9a14af377f4a4d92"
              }
            ],
            "driver_id": "forsolver-newton-reference"
          }
        ],
        "numerical_review": {
          "revision": "6c0644b287cb49a7310d883415b9b9ba581d51c5",
          "archive_sha256": "17a84545ef849f34e43b18eebbeb2cdbab42327979ac3d9c224525c9de3c247d",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "forsolver-nlsolver"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "forsolver",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forsolver",
        "package_revision": "6c0644b287cb49a7310d883415b9b9ba581d51c5",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/forsolver.f90",
          "sha256": "a554011e0ed51d3aa12cf5891f4343b63ff7fdb96f22d372e1175491587f6f61"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "6c0644b287cb49a7310d883415b9b9ba581d51c5",
        "verified_at": "2026-10-28T01:52:04.654432+00:00",
        "packages": [
          {
            "id": "github:gha3mi/fordiff",
            "repository": "gha3mi/fordiff",
            "revision": "f1a1099a590107645314f1388c432624ff97b9bc"
          },
          {
            "id": "github:gha3mi/forunittest",
            "repository": "gha3mi/forunittest",
            "revision": "997e9974e52b40f6538ed84cf24259c331a782b3"
          },
          {
            "id": "github:szaghi/face",
            "repository": "szaghi/FACE",
            "revision": "b20893e48518a81c25982ef20cc5a7cf8d31c8d8"
          }
        ]
      }
    },
    {
      "id": "github:gha3mi/forsvd",
      "name": "forsvd",
      "repository": {
        "host": "github",
        "owner": "gha3mi",
        "name": "forsvd",
        "url": "https://github.com/gha3mi/forsvd"
      },
      "description": "Singular value decomposition and truncated low-rank matrix approximations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "image-compression",
          "low-rank-approximation",
          "singular-value-decomposition",
          "svd"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-28T16:54:18.541524+00:00"
      },
      "curation": {
        "topics": [
          "lapack",
          "linear-algebra",
          "low-rank-approximation",
          "singular-value-decomposition"
        ],
        "gams_codes": [
          "D",
          "D6"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "f39bba7afcb048a21947a7a640bdf9a18337f8ac",
        "procedures": [
          {
            "id": "forsvd-api",
            "package_id": "forsvd",
            "revision": "f39bba7afcb048a21947a7a640bdf9a18337f8ac",
            "module": "forsvd",
            "procedure": "svd",
            "gams_codes": [
              "D6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Computes real dense SVD using LAPACK GESVD or GESDD; the demonstration preserves a separate input copy.",
            "evidence": [
              {
                "path": "src/forsvd.f90",
                "sha256": "c6aadd32de7e0da37b4764960e9fe87a9ecc4b04e2b4b8735b9d189d6103c512",
                "line": 57
              }
            ],
            "author_examples": [
              {
                "path": "test/test1.f90",
                "sha256": "f61ab7a986a2c5ca53452a3d9185ead021c06ae4dc2dbc16a74303bcd425fc9e"
              }
            ],
            "driver_id": "forsvd-spectrum-reference"
          }
        ],
        "numerical_review": {
          "revision": "f39bba7afcb048a21947a7a640bdf9a18337f8ac",
          "archive_sha256": "b9a97d840dca7ad2d11ef00c5986719d180d455b2fa188a4d0b374219414088e",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "forsvd-api"
          ],
          "notes": "Computes real dense SVD using LAPACK GESVD or GESDD; the demonstration preserves a separate input copy. Source APIs reviewed at this exact revision. Sandbox verification covers the supplied consumer, not all routines."
        }
      },
      "playground": {
        "package_id": "forsvd",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forsvd",
        "package_revision": "f39bba7afcb048a21947a7a640bdf9a18337f8ac",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/forsvd.f90",
          "sha256": "7d3d99462007e2c9c51e2c052611a693322d2de42497cdd00eed55623598c36e"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f39bba7afcb048a21947a7a640bdf9a18337f8ac",
        "verified_at": "2026-10-28T16:55:51.932132+00:00",
        "packages": [
          {
            "id": "github:gha3mi/fortime",
            "repository": "gha3mi/fortime",
            "revision": "de733e2c775457d4979403fe77ab69cf28e2b159"
          },
          {
            "id": "github:gha3mi/kinds",
            "repository": "gha3mi/kinds",
            "revision": "811cfba1a35f09eae9c1cc2d2e730a9f54f03c6f"
          },
          {
            "id": "github:szaghi/face",
            "repository": "szaghi/FACE",
            "revision": "b20893e48518a81c25982ef20cc5a7cf8d31c8d8"
          }
        ]
      }
    },
    {
      "id": "github:gha3mi/fortime",
      "name": "fortime",
      "repository": {
        "host": "github",
        "owner": "gha3mi",
        "name": "fortime",
        "url": "https://github.com/gha3mi/fortime"
      },
      "description": "Measure wall-clock and CPU elapsed time, with optional parallel timers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Timing"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "cpu-time",
          "date-and-time",
          "debug",
          "elapsed-time",
          "fortran",
          "fortran-package-manager",
          "mpi",
          "openmp",
          "profile",
          "time",
          "timer"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 10,
        "stars_updated_at": "2026-10-29T01:58:05.528366+00:00"
      },
      "curation": {
        "topics": [
          "cpu-time",
          "performance-measurement",
          "timing",
          "wall-clock"
        ],
        "gams_codes": [
          "R"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Serial system_clock and CPU timers. The checked main computes the exact sum of integers 1 through 100000, checks finite nonnegative elapsed times and prints the sum and timings. The root manifest VERSION placeholder is replaced with adapter version 0.0.0; the pinned source commit identifies the actual library. FACE is pinned to an already used revision. No Fortran source edits. MPI/OpenMP timers are not enabled or tested; sandbox timings vary and are not benchmark guarantees.",
        "reviewed_revision": "5a31be5a47bf2c0bf49c4d0fb7b67415ccc0a1e7",
        "procedures": [
          {
            "id": "serial-timers",
            "package_id": "fortime",
            "revision": "5a31be5a47bf2c0bf49c4d0fb7b67415ccc0a1e7",
            "module": "fortime",
            "procedure": "timer%timer_start / timer_stop / ctimer_start / ctimer_stop",
            "gams_codes": [
              "R"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Serial system_clock and CPU timers. The checked main computes the exact sum of integers 1 through 100000, checks finite nonnegative elapsed times and prints the sum and timings. The root manifest VERSION placeholder is replaced with adapter version 0.0.0; the pinned source commit identifies the actual library. FACE is pinned to an already used revision. No Fortran source edits. MPI/OpenMP timers are not enabled or tested; sandbox timings vary and are not benchmark guarantees.",
            "evidence": [
              {
                "path": "src/fortime.F90",
                "sha256": "25c0130c5908356e253b94bd4bbc626e341545bf86d9ce3f2d16ea93e89dee72",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/example1.f90",
                "sha256": "fadbcb08f3249fe07f78212b2c730b257a067c4ea0e0a95ff1a381bd714d0e86"
              },
              {
                "path": "example/example3.f90",
                "sha256": "fa1ee42d66b73178e432a0ec6f81df1ef90f34e5d3a3e7e72f4c42429caad717"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "fortime",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortime",
        "package_revision": "5a31be5a47bf2c0bf49c4d0fb7b67415ccc0a1e7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortime.f90",
          "sha256": "6d322e08ec284753be5521d2f431288d0f5efd254348341eadc69acc0caa770b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5a31be5a47bf2c0bf49c4d0fb7b67415ccc0a1e7",
        "verified_at": "2026-10-29T01:58:37.812754+00:00",
        "packages": [
          {
            "id": "github:szaghi/face",
            "repository": "szaghi/FACE",
            "revision": "b20893e48518a81c25982ef20cc5a7cf8d31c8d8"
          }
        ]
      }
    },
    {
      "id": "github:gha3mi/kinds",
      "name": "kinds",
      "repository": {
        "host": "github",
        "owner": "gha3mi",
        "name": "kinds",
        "url": "https://github.com/gha3mi/kinds"
      },
      "description": "Named real and integer kinds with configurable working precision.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "General utilities"
      ],
      "license": {
        "label": "BSD-3-Clause (LICENSE; manifest says license)",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "numeric-kinds",
          "portability",
          "precision"
        ],
        "gams_codes": [
          "A",
          "R"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "A and R remain broad: precision-kind declarations alone do not establish arithmetic algorithms or a machine-constant API.",
        "reviewed_revision": "811cfba1a35f09eae9c1cc2d2e730a9f54f03c6f",
        "numerical_review": {
          "revision": "811cfba1a35f09eae9c1cc2d2e730a9f54f03c6f",
          "archive_sha256": "495d1133b1630dea4f38d69e5e3189e3279e4ce5836da1a7aec8a822bbe16518",
          "status": "support-only",
          "procedure_ids": [],
          "notes": "Precision-kind constants support numerical code but are not callable numerical algorithms. Retain broad A/R discovery assignments; do not invent a detailed arithmetic-method classification.",
          "evidence": [
            {
              "path": "src/kinds.f90",
              "sha256": "ccf265746d4d207b42b8967bd7f50ddf12425195a47c7e3b16fc571c4d3a409f",
              "line": 8
            }
          ]
        }
      },
      "playground": {
        "package_id": "kinds",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=kinds",
        "package_revision": "811cfba1a35f09eae9c1cc2d2e730a9f54f03c6f",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/kinds.f90",
          "sha256": "342156b4ca1266d3843e86c61dcd0f7b18e23b7b543d81d330d1af3bb0ac59ea"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "811cfba1a35f09eae9c1cc2d2e730a9f54f03c6f",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:gnikit/metis-fpm",
      "name": "metis-fpm",
      "repository": {
        "host": "github",
        "owner": "gnikit",
        "name": "metis-fpm",
        "url": "https://github.com/gnikit/metis-fpm"
      },
      "description": "METIS graph partitioning and sparse matrix ordering through a Fortran interface.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "MIT wrapper; Apache-2.0 METIS and GKlib",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 10,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "graph-partitioning",
          "graphs",
          "language-bindings",
          "matrix-ordering",
          "sparse-matrices"
        ],
        "gams_codes": [
          "D",
          "P"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Sparse-matrix ordering remains at D and graph partitioning at P; this is not a linear-system solver assignment.",
        "reviewed_revision": "5db1dc1e46fd819a53a86fe2170eaf5464bf17c7",
        "procedures": [
          {
            "id": "metis-fpm-metis-partgraphkway",
            "package_id": "metis-fpm",
            "revision": "5db1dc1e46fd819a53a86fe2170eaf5464bf17c7",
            "module": "metis_c_interface",
            "procedure": "METIS_PartGraphKway",
            "gams_codes": [
              "P"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Graph partitioning through an external C library; retain broad graph-algorithm classification.",
            "evidence": [
              {
                "path": "src/metis_c_interface.F90",
                "sha256": "9332525a4c42db8942fc28f1cdb476d6d1bfa5c7204a969e9f3a43da452580d3",
                "line": 218
              }
            ],
            "author_examples": [],
            "driver_id": "metis-kway-reference"
          }
        ],
        "numerical_review": {
          "revision": "5db1dc1e46fd819a53a86fe2170eaf5464bf17c7",
          "archive_sha256": "5bb19525e8fcc7b32da5cc4d4ced8c7d3901dcc2805e38c80d08e0a543a64fbe",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "metis-fpm-metis-partgraphkway"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "metis-fpm",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=metis-fpm",
        "package_revision": "5db1dc1e46fd819a53a86fe2170eaf5464bf17c7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/metis-fpm.f90",
          "sha256": "0bd10d335f11667074a96ee20f64fe421d48f94d3a635fa35939704fcde6455e"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5db1dc1e46fd819a53a86fe2170eaf5464bf17c7",
        "verified_at": "2026-10-27T23:52:44.682584+00:00",
        "packages": [
          {
            "id": "github:gnikit/gklib",
            "repository": "gnikit/GKlib",
            "revision": "3840061283ceab2ac62542c1141e1e3efea3f392"
          }
        ]
      }
    },
    {
      "id": "github:goddard-fortran-ecosystem/gftl",
      "name": "gftl",
      "repository": {
        "host": "github",
        "owner": "Goddard-Fortran-Ecosystem",
        "name": "gFTL",
        "url": "https://github.com/Goddard-Fortran-Ecosystem/gFTL"
      },
      "description": "gFTL templates with a checked integer-vector instantiation.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "Apache-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "containers",
          "fortran",
          "generic-programming",
          "modern-fortran"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 50,
        "stars_updated_at": "2026-10-29T22:10:15.755993+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "dynamic-arrays",
          "generic-programming",
          "vectors"
        ],
        "gams_codes": [
          "N",
          "N4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "gFTL is a header/template library, not a standalone compiled library. The catalog supplies a small integer-vector instantiation using the upstream v2 template, then verifies growth to 100 elements, retrieval of every stored square, and the independent sum 338350. Audited generated include files are committed as checksum-locked assets, with original m4 input hashes; generation follows the pinned CMake rules while omitting diagnostic line markers. GNU m4 on Windows and Linux reproduces identical assets. N4 covers the tested storage container. Other template/container configurations are not verified.",
        "reviewed_revision": "4af86210b6cc6ac46d3298b6861571aa26bd6acc",
        "procedures": [
          {
            "id": "gftl-vector",
            "package_id": "gftl",
            "revision": "4af86210b6cc6ac46d3298b6861571aa26bd6acc",
            "module": "playground_gftl",
            "procedure": "IntegerVector / push_back / at / size",
            "gams_codes": [
              "N4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "gFTL is a header/template library, not a standalone compiled library. The catalog supplies a small integer-vector instantiation using the upstream v2 template, then verifies growth to 100 elements, retrieval of every stored square, and the independent sum 338350. Audited generated include files are committed as checksum-locked assets, with original m4 input hashes; generation follows the pinned CMake rules while omitting diagnostic line markers. GNU m4 on Windows and Linux reproduces identical assets. N4 covers the tested storage container. Other template/container configurations are not verified.",
            "evidence": [
              {
                "path": "include/v2/vector/template.inc",
                "sha256": "65634ff0e761bdfe19c0ce72f19a6dcd54fd6c3894f3f592e188feb4eed1a0b3",
                "line": 1
              },
              {
                "path": "include/v2/vector/procedures.inc",
                "sha256": "a329ba91a19172ca6e72c0330beeac1ea0ca5c8f34b8654f45328b5037e1102b",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/v2/Vector/VecIntAndReal.F90",
                "sha256": "6e04e0a03f7b7adc8c32abbfc05f4a8f1cdb0a0e2fb2f9dc547fa80dcb9369af"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "gftl",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=gftl",
        "package_revision": "4af86210b6cc6ac46d3298b6861571aa26bd6acc",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/gftl.f90",
          "sha256": "333cee5fa167ba29c402022410bd40a14a32ccfd71274d8ad1bb4ecade999de3"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "4af86210b6cc6ac46d3298b6861571aa26bd6acc",
        "verified_at": "2026-10-29T22:23:34.035577+00:00",
        "packages": []
      }
    },
    {
      "id": "github:goddard-fortran-ecosystem/gftl-shared",
      "name": "gftl-shared",
      "repository": {
        "host": "github",
        "owner": "Goddard-Fortran-Ecosystem",
        "name": "gFTL-shared",
        "url": "https://github.com/Goddard-Fortran-Ecosystem/gFTL-shared"
      },
      "description": "Selected common gFTL vectors and maps, with checked retrieval examples.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "Apache-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 7,
        "stars_updated_at": "2026-10-29T22:10:15.755993+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "data-structures",
          "key-value",
          "maps",
          "vectors"
        ],
        "gams_codes": [
          "N",
          "N4",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The catalog builds an explicitly selected subset: v1 Integer32, Integer64, default Integer, Real64, String and Unlimited vectors; StringString and Integer32Real64 maps; and v2 Integer32, Real64, String and Unlimited vectors. The consumer inserts and retrieves eight vector elements and eight map entries and verifies their sum 204. Generated v2 vector wrappers apply the upstream CMake substitutions; the original templates and Apache-2.0 notices remain intact. N4 covers container storage and N5 covers key lookup. Other upstream instantiations, sets, queues and stacks are outside this selected build and test scope. Compatible dependencies are shared through immutable exports; a source-recipe fingerprint in the FPM preprocessing profile binds generated assets and source selection to the dependency identity.",
        "reviewed_revision": "8009755e846560fbb389c01d76e013ddf14a7f98",
        "procedures": [
          {
            "id": "gftl-shared-containers",
            "package_id": "gftl-shared",
            "revision": "8009755e846560fbb389c01d76e013ddf14a7f98",
            "module": "gFTL1_Integer32Vector / gFTL1_Integer32Real64Map",
            "procedure": "push_back / insert / at / size",
            "gams_codes": [
              "N4",
              "N5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The catalog builds an explicitly selected subset: v1 Integer32, Integer64, default Integer, Real64, String and Unlimited vectors; StringString and Integer32Real64 maps; and v2 Integer32, Real64, String and Unlimited vectors. The consumer inserts and retrieves eight vector elements and eight map entries and verifies their sum 204. Generated v2 vector wrappers apply the upstream CMake substitutions; the original templates and Apache-2.0 notices remain intact. N4 covers container storage and N5 covers key lookup. Other upstream instantiations, sets, queues and stacks are outside this selected build and test scope. Compatible dependencies are shared through immutable exports; a source-recipe fingerprint in the FPM preprocessing profile binds generated assets and source selection to the dependency identity.",
            "evidence": [
              {
                "path": "src/v1/Integer32Vector.F90",
                "sha256": "e7b9c1352112e36055ecf870bf01262a73c8656b30cc87e7afd2c89fb9974082",
                "line": 1
              },
              {
                "path": "src/v1/Integer32Real64Map.F90",
                "sha256": "37dcbb38c728f60a7997278100f94c9bf04ddf10cbe87162de450e592f1da79c",
                "line": 1
              },
              {
                "path": "src/v2/vector-like/UnlimitedGeneric.F90.in",
                "sha256": "4005e757d5ff34c94de13fd62bf89654c4e723c2a77bd6a2cb7a0cb61ee8870c",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "src/v1/demo.F90",
                "sha256": "45b5d1677647ed7b1cb01242aae77317c90a96c0daed2bacd5fc2687d77b9239"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "gftl-shared",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=gftl-shared",
        "package_revision": "8009755e846560fbb389c01d76e013ddf14a7f98",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/gftl-shared.f90",
          "sha256": "12d3f268cf0045b799330964bfa41a16e9f29d9d5844d39120c7ac218ee12987"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "8009755e846560fbb389c01d76e013ddf14a7f98",
        "verified_at": "2026-10-29T22:23:34.035577+00:00",
        "packages": [
          {
            "id": "github:goddard-fortran-ecosystem/gftl",
            "repository": "Goddard-Fortran-Ecosystem/gFTL",
            "revision": "4af86210b6cc6ac46d3298b6861571aa26bd6acc"
          }
        ]
      }
    },
    {
      "id": "github:goddard-fortran-ecosystem/pflogger",
      "name": "pflogger",
      "repository": {
        "host": "github",
        "owner": "Goddard-Fortran-Ecosystem",
        "name": "pFlogger",
        "url": "https://github.com/Goddard-Fortran-Ecosystem/pFlogger"
      },
      "description": "Configurable severity-filtered logging with YAML configuration and file handlers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "General utilities"
      ],
      "license": {
        "label": "Apache-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 21,
        "stars_updated_at": "2026-10-29T22:54:35.763474+00:00"
      },
      "curation": {
        "topics": [
          "configuration",
          "file-io",
          "logging",
          "yaml"
        ],
        "gams_codes": [
          "R"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The serial pFlogger library uses pinned gFTL, selected gFTL-shared containers and yaFyaml. The checked consumer writes YAML configuration, logs four severity levels to a file, and verifies that only the two expected warning/error records were accepted. MPI logging is outside this build scope. Three additional upstream v2 map instantiations are supplied as a separate checksum-locked generated asset, leaving the existing vector asset unchanged. Root COPYRIGHT identifies Apache-2.0; the historical license PDFs are retained alongside it. R covers logging service routines.",
        "reviewed_revision": "472c2261d0713c130aa4b2c90bfaf571586dec96",
        "procedures": [
          {
            "id": "pflogger-logging",
            "package_id": "pflogger",
            "revision": "472c2261d0713c130aa4b2c90bfaf571586dec96",
            "module": "pflogger / LoggerManager / Logger",
            "procedure": "initialize / load_file / get_logger / warning / error",
            "gams_codes": [
              "R"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The serial pFlogger library uses pinned gFTL, selected gFTL-shared containers and yaFyaml. The checked consumer writes YAML configuration, logs four severity levels to a file, and verifies that only the two expected warning/error records were accepted. MPI logging is outside this build scope. Three additional upstream v2 map instantiations are supplied as a separate checksum-locked generated asset, leaving the existing vector asset unchanged. Root COPYRIGHT identifies Apache-2.0; the historical license PDFs are retained alongside it. R covers logging service routines.",
            "evidence": [
              {
                "path": "src/LoggerManager.F90",
                "sha256": "ffd2cae8c25c28d7281e3df2736159ac4965de1eef85971823b374e210af1839",
                "line": 1
              },
              {
                "path": "src/FileHandler.F90",
                "sha256": "19b3ebb6da463452fa76704259f137362073bd64f9c298dbca8886c6eb114d8b",
                "line": 1
              },
              {
                "path": "src/SeverityLevels.F90",
                "sha256": "bfefe11aecc72dfc33fd3df8eb10796d822839a58c5e0659b836bc80de7d0653",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/serial/complex.F90",
                "sha256": "6649df22c0ccb4baaa12eadc575cd4421b5400b0cba55d2fb52ca553705f9e03"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "pflogger",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=pflogger",
        "package_revision": "472c2261d0713c130aa4b2c90bfaf571586dec96",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/pflogger.f90",
          "sha256": "d487629dbccb878a61e03fa0a31964356ea7ebc1f47613f9404f72599145281e"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "472c2261d0713c130aa4b2c90bfaf571586dec96",
        "verified_at": "2026-10-29T23:03:22.407960+00:00",
        "packages": [
          {
            "id": "github:goddard-fortran-ecosystem/gftl",
            "repository": "Goddard-Fortran-Ecosystem/gFTL",
            "revision": "4af86210b6cc6ac46d3298b6861571aa26bd6acc"
          },
          {
            "id": "github:goddard-fortran-ecosystem/gftl-shared",
            "repository": "Goddard-Fortran-Ecosystem/gFTL-shared",
            "revision": "8009755e846560fbb389c01d76e013ddf14a7f98"
          },
          {
            "id": "github:goddard-fortran-ecosystem/yafyaml",
            "repository": "Goddard-Fortran-Ecosystem/yaFyaml",
            "revision": "d6005c9f635c02d7be54d09b205b6f16c54f46b5"
          }
        ]
      }
    },
    {
      "id": "github:goddard-fortran-ecosystem/pfunit",
      "name": "pfunit",
      "repository": {
        "host": "github",
        "owner": "Goddard-Fortran-Ecosystem",
        "name": "pFUnit",
        "url": "https://github.com/Goddard-Fortran-Ecosystem/pFUnit"
      },
      "description": "Serial pFUnit testing with assertions for scalars, vectors and matrices (maximum rank 2); MPI, OpenMP, robust runners and Hamcrest disabled.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Testing"
      ],
      "license": {
        "label": "Apache-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "mpi",
          "object-oriented",
          "unit-testing-framework"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 207,
        "stars_updated_at": "2026-10-30T13:13:55.641213+00:00"
      },
      "curation": {
        "topics": [
          "assertions",
          "serial",
          "software-testing",
          "test-framework",
          "unit-testing"
        ],
        "gams_codes": [
          "S"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The pinned serial pFUnit configuration disables MPI, OpenMP, robust/forked runners and Hamcrest, and uses the author-supported MAX_ASSERT_RANK=2 option (scalars, vectors and matrices) to retain the existing 2 MiB generated-source asset limit. The author CMake configuration supplies source selections and compiler-kind definitions; overload_template.py generates the assertions. fArgParse and its gFTL-shared/gFTL submodules are pinned at the exact upstream gitlinks, with only the required shared container instantiations generated. The FPM scanner sees a NAG-only f90_unix_proc USE even on GNU, so that inactive branch is declared external; inactive robust/Hamcrest interfaces are likewise excluded without altering original library code. A plain Fortran main constructs three TestMethod cases in a TestSuite and checks scalar, vector and matrix assertions through TestRunner/SerialContext, requiring exactly three runs and zero errors/failures. No visitor-side Python, CMake or annotation generation is needed. Higher assertion ranks, matcher DSLs, MPI, OpenMP and process-forking runners are not offered by this configuration. S denotes software testing; no numerical solver classification is inferred. Apache-2.0 and dependency notices are retained.",
        "reviewed_revision": "380524aa4ce4d97b2815a07a1bd24b660841cc6f"
      },
      "playground": {
        "package_id": "pfunit",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=pfunit",
        "package_revision": "380524aa4ce4d97b2815a07a1bd24b660841cc6f",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/pfunit.f90",
          "sha256": "0638bb9cd777962a211f978412d8bf144b6fccc62b50489ce7b4599f9ac514b9"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "380524aa4ce4d97b2815a07a1bd24b660841cc6f",
        "verified_at": "2026-10-30T13:13:55.964427+00:00",
        "packages": [
          {
            "id": "github:goddard-fortran-ecosystem/fargparse",
            "repository": "Goddard-Fortran-Ecosystem/fArgParse",
            "revision": "54c6066edb5bd9c2044274e13838db287ad947a3"
          },
          {
            "id": "github:goddard-fortran-ecosystem/gftl",
            "repository": "Goddard-Fortran-Ecosystem/gFTL",
            "revision": "4af86210b6cc6ac46d3298b6861571aa26bd6acc"
          },
          {
            "id": "github:goddard-fortran-ecosystem/gftl-shared",
            "repository": "Goddard-Fortran-Ecosystem/gFTL-shared",
            "revision": "99dec0597bbd1df3f7b3bc46df930b46090ce509"
          }
        ]
      }
    },
    {
      "id": "github:goddard-fortran-ecosystem/yafyaml",
      "name": "yafyaml",
      "repository": {
        "host": "github",
        "owner": "Goddard-Fortran-Ecosystem",
        "name": "yaFyaml",
        "url": "https://github.com/Goddard-Fortran-Ecosystem/yaFyaml"
      },
      "description": "YAML subset parser using gFTL containers; checked configuration example.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "Apache-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 17,
        "stars_updated_at": "2026-10-29T22:10:15.755993+00:00"
      },
      "curation": {
        "topics": [
          "configuration",
          "data-formats",
          "parsing",
          "yaml"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The upstream YAML library is wrapped for FPM with pinned gFTL and the selected gFTL-shared containers. The checked main writes a tiny local configuration, parses an integer, a boolean, a string and an integer sequence, checks every returned value and verifies that an absent key is reported missing. Input files are removed afterwards. N1 covers configuration input and N3 covers parsing character data. The upstream parser supports a subset of YAML; full YAML conformance, all schemas and malformed-input recovery are not claimed. Source-recipe-tagged immutable dependency exports retain compatible gFTL builds.",
        "reviewed_revision": "d6005c9f635c02d7be54d09b205b6f16c54f46b5",
        "procedures": [
          {
            "id": "yafyaml-configuration",
            "package_id": "yafyaml",
            "revision": "d6005c9f635c02d7be54d09b205b6f16c54f46b5",
            "module": "yafyaml / fy_Parser / fy_BaseNode",
            "procedure": "Parser / load / get / has",
            "gams_codes": [
              "N1",
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The upstream YAML library is wrapped for FPM with pinned gFTL and the selected gFTL-shared containers. The checked main writes a tiny local configuration, parses an integer, a boolean, a string and an integer sequence, checks every returned value and verifies that an absent key is reported missing. Input files are removed afterwards. N1 covers configuration input and N3 covers parsing character data. The upstream parser supports a subset of YAML; full YAML conformance, all schemas and malformed-input recovery are not claimed. Source-recipe-tagged immutable dependency exports retain compatible gFTL builds.",
            "evidence": [
              {
                "path": "src/Parser.F90",
                "sha256": "db7ea9d8706dcdd7146c140ef2abf99973d84d0af3581fa85b28e03faadd7a7f",
                "line": 1
              },
              {
                "path": "src/Nodes/BaseNode.F90",
                "sha256": "d391df8faef5de53018197ed7e6f306ada51943938455456fced307ecb0bbab0",
                "line": 1
              },
              {
                "path": "src/Nodes/BaseNode_implementation.F90",
                "sha256": "eae7016025b84eeb40238937c009839dc5bb91684cb01f40b90a44c98fba4da5",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "Examples/Simple/simple.F90",
                "sha256": "c8bd98431c366fbdea0b7c104b2bf60fcbcf4380ddee11d1fda02653f26c2e02"
              },
              {
                "path": "Examples/Trivial/trivial.F90",
                "sha256": "e9d16a2a02c9e1cb62d0dfb957d38849b8894da9954a9ddf623d7bc8e6c654cd"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "yafyaml",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=yafyaml",
        "package_revision": "d6005c9f635c02d7be54d09b205b6f16c54f46b5",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/yafyaml.f90",
          "sha256": "fb50dd73a83690c0c629db930a85d6d72de2b3baad503fb0cffb71ccb5fb979c"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d6005c9f635c02d7be54d09b205b6f16c54f46b5",
        "verified_at": "2026-10-29T22:23:34.035577+00:00",
        "packages": [
          {
            "id": "github:goddard-fortran-ecosystem/gftl",
            "repository": "Goddard-Fortran-Ecosystem/gFTL",
            "revision": "4af86210b6cc6ac46d3298b6861571aa26bd6acc"
          },
          {
            "id": "github:goddard-fortran-ecosystem/gftl-shared",
            "repository": "Goddard-Fortran-Ecosystem/gFTL-shared",
            "revision": "8009755e846560fbb389c01d76e013ddf14a7f98"
          }
        ]
      }
    },
    {
      "id": "github:grofz/list",
      "name": "list",
      "repository": {
        "host": "github",
        "owner": "grofz",
        "name": "list",
        "url": "https://github.com/grofz/list"
      },
      "description": "Linked lists and tree containers with insertion, searching and sorting operations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "generics",
          "linked-lists",
          "red-black-tree"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T21:31:23.623247+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "linked-lists",
          "searching",
          "sorting"
        ],
        "gams_codes": [
          "N",
          "N4",
          "N5",
          "N6"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Linked-list storage, lookup, duplicate counts, sorting, removal and clearing; the demo uses a module comparator.",
        "reviewed_revision": "77a0c99686406eaa8d4423e778311d63c6940b43"
      },
      "playground": {
        "package_id": "list",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=list",
        "package_revision": "77a0c99686406eaa8d4423e778311d63c6940b43",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/list.f90",
          "sha256": "2d4554e4e385b8099ee0ca0572fe4ea84aea6b9fc0d96526f22007d1f823a7b4"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "77a0c99686406eaa8d4423e778311d63c6940b43",
        "verified_at": "2026-10-28T21:40:06.974444+00:00",
        "packages": []
      }
    },
    {
      "id": "github:gronki/fastconv",
      "name": "fastconv",
      "repository": {
        "host": "github",
        "owner": "gronki",
        "name": "fastconv",
        "url": "https://github.com/gronki/fastconv"
      },
      "description": "Small-kernel convolution for smoothing one-, two- and three-dimensional arrays.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Signal processing"
      ],
      "license": {
        "label": "BSD-3-Clause (LICENSE; manifest says MIT)",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "convolution",
          "multidimensional",
          "signal-processing",
          "smoothing"
        ],
        "gams_codes": [
          "J",
          "J2",
          "K",
          "K5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "3aaa2432a291df07a10fc5dade0dcd66d7a06dd0",
        "procedures": [
          {
            "id": "fastconv-conv1d-t",
            "package_id": "fastconv",
            "revision": "3aaa2432a291df07a10fc5dade0dcd66d7a06dd0",
            "module": "conv1d_m",
            "procedure": "conv1d_t%apply",
            "gams_codes": [
              "J2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "One-dimensional discrete convolution with a supplied kernel. The checked J2 driver uses native REAL32 and preserve_shape=.false. (valid convolution), with a REAL64 direct-sum reference of the rounded inputs. The shape-preserving mode is excluded: at this pin apply allocates output without initialization and the pad/ref paths assign only its interior, leaving boundary entries undefined.",
            "evidence": [
              {
                "path": "src/conv1d/conv1d.f90",
                "sha256": "e3a02572cd64c091e84449265336082eb56a5ccff0f51049fc178c8e2249308d",
                "line": 139
              },
              {
                "path": "src/conv1d/pad.F90",
                "sha256": "e2ab9d168e1b2a6b3593a8d945c7bf9ac8ee7a0eae19d0d46c584ad38d3e941e",
                "line": 36
              },
              {
                "path": "src/conv1d/ref.F90",
                "sha256": "2e22c3ce1ce83117adf422e55316b4749d1906fea0f3a1d721c272ab7ac45869",
                "line": 41
              }
            ],
            "author_examples": [
              {
                "path": "README.md",
                "sha256": "27dd00bc602f1db0715102b65c860d6a2cc3096cf930a9cb3112319c9031f6be"
              }
            ],
            "driver_id": "fastconv-convolution-reference"
          }
        ],
        "numerical_review": {
          "revision": "3aaa2432a291df07a10fc5dade0dcd66d7a06dd0",
          "archive_sha256": "1c24a23cea35275f937f1c0c65a1d205f9425736d36d48fda65db9455735154e",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fastconv-conv1d-t"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fastconv",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fastconv",
        "package_revision": "3aaa2432a291df07a10fc5dade0dcd66d7a06dd0",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fastconv.f90",
          "sha256": "e68b123e60444b7e0e3d92dd5d2649af1ca3500e1be82993bfac1b6db6a9bd4f"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "3aaa2432a291df07a10fc5dade0dcd66d7a06dd0",
        "verified_at": "2026-10-27T23:52:44.682584+00:00",
        "packages": []
      }
    },
    {
      "id": "github:guntherwillems/fortran-string-utf-8",
      "name": "string-utf-8",
      "repository": {
        "host": "github",
        "owner": "guntherwillems",
        "name": "fortran-string-utf-8",
        "url": "https://github.com/guntherwillems/fortran-string-utf-8"
      },
      "description": "Manipulate UTF-8 strings as arrays of Unicode code points.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Text processing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-29T01:58:05.528366+00:00"
      },
      "curation": {
        "topics": [
          "strings",
          "text-processing",
          "unicode",
          "utf-8"
        ],
        "gams_codes": [
          "N",
          "N3",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "UTF-8 string handling using one array element per encoded Unicode code point. The main verifies a round trip, code point count, substring, search and replacement of accented text, and prints the results. No source edits. Combining marks remain separate code points; grapheme segmentation, normalization and malformed-input handling are not validated.",
        "reviewed_revision": "69751115936d5a89439555ddeb1d57537a562e64",
        "procedures": [
          {
            "id": "utf8-strings",
            "package_id": "string-utf-8",
            "revision": "69751115936d5a89439555ddeb1d57537a562e64",
            "module": "string_utf_8",
            "procedure": "chars_array / chars / substr / indexof / str_replace_all",
            "gams_codes": [
              "N3",
              "N5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "UTF-8 string handling using one array element per encoded Unicode code point. The main verifies a round trip, code point count, substring, search and replacement of accented text, and prints the results. No source edits. Combining marks remain separate code points; grapheme segmentation, normalization and malformed-input handling are not validated.",
            "evidence": [
              {
                "path": "src/string_utf_8.f90",
                "sha256": "3aaf269cdfb147365f9b288005fdc719316a968846a2b43fa73d2b20b179a72f",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "app/example.f90",
                "sha256": "6386ad113502fdce96e8a02ae5bffca704abd8b71991e79cd4da7590bb693345"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "string-utf-8",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=string-utf-8",
        "package_revision": "69751115936d5a89439555ddeb1d57537a562e64",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/string-utf-8.f90",
          "sha256": "7ba7476905d9a55c14ecdb28ed1fad2e0e0dafcffcb14135f7aef469903deb87"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "69751115936d5a89439555ddeb1d57537a562e64",
        "verified_at": "2026-10-29T01:58:37.812754+00:00",
        "packages": []
      }
    },
    {
      "id": "github:haozeke/gaussjacobiquad",
      "name": "gaussjacobiquad",
      "repository": {
        "host": "github",
        "owner": "HaoZeke",
        "name": "GaussJacobiQuad",
        "url": "https://github.com/HaoZeke/GaussJacobiQuad"
      },
      "description": "Gauss-Jacobi quadrature nodes and weights for weighted numerical integration.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Integration"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "f2py",
          "gauss-jacobi",
          "meson",
          "numerical-integration",
          "quadrature"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "gauss-jacobi",
          "gaussian-quadrature",
          "quadrature",
          "weighted-integrals"
        ],
        "gams_codes": [
          "H",
          "H2",
          "H2c"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "ffb970c68eea0b39b140f80f788c8994547d8bfb",
        "procedures": [
          {
            "id": "gaussjacobiquad-gauss-jacobi",
            "package_id": "gaussjacobiquad",
            "revision": "ffb970c68eea0b39b140f80f788c8994547d8bfb",
            "module": "GaussJacobiQuad",
            "procedure": "gauss_jacobi",
            "gams_codes": [
              "H2c"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Computes Gauss-Jacobi nodes and weights; this procedure does not itself integrate a callback. The dedicated checked driver uses analytic references, finite-data checks and explicit tolerances. See docs/gams-cubature.md for the exact configurations and limitations.",
            "evidence": [
              {
                "path": "src/GaussJacobiQuad.f90",
                "sha256": "1b181131642e42d83fe4ef7c0f236790827b1640a8bdfe46a4a986c5979d9ba2",
                "line": 45
              }
            ],
            "author_examples": [
              {
                "path": "app/gjp_quad.f90",
                "sha256": "1df551be132ec6989873bb8a8e2662be4f2eb83e58d7b1083ef6058c24da87f0"
              }
            ],
            "driver_id": "gauss-jacobi-polynomial-moments"
          }
        ],
        "numerical_review": {
          "revision": "ffb970c68eea0b39b140f80f788c8994547d8bfb",
          "archive_sha256": "e9975bcfb0bdad7cdbd4b1e32263e8e62949337fe40605d3792a4de9927bb62c",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "gaussjacobiquad-gauss-jacobi"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "gaussjacobiquad",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=gaussjacobiquad",
        "package_revision": "ffb970c68eea0b39b140f80f788c8994547d8bfb",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/gaussjacobiquad.f90",
          "sha256": "bd839cf5f7377a82382638bb7836de270e4c3359ef1855f6d9b1a9f64aa6fe25"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "ffb970c68eea0b39b140f80f788c8994547d8bfb",
        "verified_at": "2026-10-27T23:52:44.682584+00:00",
        "packages": []
      }
    },
    {
      "id": "github:hugomvale/hr-weno",
      "name": "hrweno",
      "repository": {
        "host": "github",
        "owner": "HugoMVale",
        "name": "HR-WENO",
        "url": "https://github.com/HugoMVale/HR-WENO"
      },
      "description": "High-resolution WENO reconstruction and TVD integration for conservation equations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fpm",
          "high-resolution",
          "hyperbolic-equations",
          "partial-differential-equations",
          "pde",
          "reconstruction",
          "weno-schemes"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 21,
        "stars_updated_at": "2026-10-28T22:42:25.593426+00:00"
      },
      "curation": {
        "topics": [
          "conservation-laws",
          "finite-volumes",
          "partial-differential-equations",
          "runge-kutta",
          "tvd",
          "weno"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "WENO spatial reconstruction and explicit TVD Runge-Kutta integration for conservation equations. The main checks a smooth periodic advection problem against exact cell averages and verifies conservation of mass; discontinuous solutions and nonuniform grids are not covered.",
        "reviewed_revision": "2885105a7ba98351fed299b22e9bc0c67a809d2f",
        "procedures": [
          {
            "id": "hrweno-reconstruction",
            "package_id": "hrweno",
            "revision": "2885105a7ba98351fed299b22e9bc0c67a809d2f",
            "module": "hrweno_weno",
            "procedure": "weno%reconstruct",
            "gams_codes": [
              "I2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "WENO spatial reconstruction and explicit TVD Runge-Kutta integration for conservation equations. The main checks a smooth periodic advection problem against exact cell averages and verifies conservation of mass; discontinuous solutions and nonuniform grids are not covered.",
            "evidence": [
              {
                "path": "src/hrweno_weno.f90",
                "sha256": "2fb3ff8e327d6bb8b12fc743dcdcb02c08ec9e2a1ea419f9f5660f8ddf037c1f",
                "line": 129
              }
            ],
            "author_examples": [
              {
                "path": "example/example1_burgers_1d_fv.f90",
                "sha256": "37151bd2edea15c4fe262457b417f9fa654f5f0f843e8b223dbd9d06d96706a9"
              }
            ],
            "driver_id": "hrweno-advection-reference"
          },
          {
            "id": "hrweno-tvd",
            "package_id": "hrweno",
            "revision": "2885105a7ba98351fed299b22e9bc0c67a809d2f",
            "module": "hrweno_tvdode",
            "procedure": "rktvd%integrate",
            "gams_codes": [
              "I1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "WENO spatial reconstruction and explicit TVD Runge-Kutta integration for conservation equations. The main checks a smooth periodic advection problem against exact cell averages and verifies conservation of mass; discontinuous solutions and nonuniform grids are not covered. Dedicated I1 consumer checks 12 prescribed single-step-mode integrations at orders 1..3, with 8/16/32/64 dyadic steps to t=1. Independent stability-polynomial powers, exact nonautonomous forcing, exponential solutions, order-dependent grid convergence and function-evaluation counts are required. Uses documented itask=2; ordinary interval mode has a source TODO concerning final-step overshoot and is outside this verification. Spatial WENO, multistep mode, backward integration and stiffness are not verified.",
            "evidence": [
              {
                "path": "src/hrweno_tvdode.f90",
                "sha256": "ef014c717105772adf8a05effce241add2fe35351d30814c1c73e7d213edce62",
                "line": 97
              }
            ],
            "author_examples": [],
            "driver_id": "hrweno-tvd-ode-reference"
          }
        ],
        "numerical_review": {
          "revision": "2885105a7ba98351fed299b22e9bc0c67a809d2f",
          "archive_sha256": "1dc2fffbdd9396735d01df566f3a945e65b934525a16e15162abcb47d1b373a9",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "hrweno-reconstruction",
            "hrweno-tvd"
          ],
          "notes": "WENO spatial reconstruction and explicit TVD Runge-Kutta integration for conservation equations. The main checks a smooth periodic advection problem against exact cell averages and verifies conservation of mass; discontinuous solutions and nonuniform grids are not covered."
        }
      },
      "playground": {
        "package_id": "hrweno",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=hrweno",
        "package_revision": "2885105a7ba98351fed299b22e9bc0c67a809d2f",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/hrweno.f90",
          "sha256": "61e5e6026a35464e89ac1dd44e48d0c8394e1783521cbc2a40aa9482ea7d1f28"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2885105a7ba98351fed299b22e9bc0c67a809d2f",
        "verified_at": "2026-10-28T22:42:59.624262+00:00",
        "packages": [
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          }
        ]
      }
    },
    {
      "id": "github:hugomvale/odrpack95",
      "name": "odrpack95",
      "repository": {
        "host": "github",
        "owner": "HugoMVale",
        "name": "odrpack95",
        "url": "https://github.com/HugoMVale/odrpack95"
      },
      "description": "Orthogonal distance regression with errors in both variables and optional parameter bounds.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Statistics"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fpm",
          "mathematics",
          "odr",
          "regression",
          "statistics"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 15,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "bound-constraints",
          "errors-in-variables",
          "least-squares",
          "regression",
          "statistics"
        ],
        "gams_codes": [
          "G",
          "G2",
          "K",
          "K1",
          "L",
          "L8"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "12597b20812a76a4b702f985f6adc82632a18f60",
        "procedures": [
          {
            "id": "odrpack95-odr",
            "package_id": "odrpack95",
            "revision": "12597b20812a76a4b702f985f6adc82632a18f60",
            "module": "odrpack",
            "procedure": "odr",
            "gams_codes": [
              "L8"
            ],
            "review_level": "source-reviewed",
            "derivatives": "user or finite-difference model derivatives",
            "notes": "Orthogonal distance regression with errors in variables; no ordinary-least-squares claim. The dedicated L8 driver checks selected fits against independent closed-form references. See docs/gams-regression.md for the error model, covariance convention and limitations.",
            "evidence": [
              {
                "path": "src/odrpack.f90",
                "sha256": "13c77aae2c6a2069804031b554597a8835e05007cfd260b2052d8d1bbe725bb6",
                "line": 15
              }
            ],
            "author_examples": [
              {
                "path": "example/example1.f90",
                "sha256": "0039c28aa20db2f7b9550d325af9951e53829ac767312b5683ed486e0e6195cc"
              }
            ],
            "driver_id": "odrpack-line-total-least-squares"
          }
        ],
        "numerical_review": {
          "revision": "12597b20812a76a4b702f985f6adc82632a18f60",
          "archive_sha256": "cf92a1d2cfdf67165bf08fbdf01e3c213298ca48f1fc735c53a92272fe0c6c94",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "odrpack95-odr"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "odrpack95",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=odrpack95",
        "package_revision": "12597b20812a76a4b702f985f6adc82632a18f60",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/odrpack95.f90",
          "sha256": "774ef734ceb18114b516993f86219aff6290f58e74caf7012143431e505ff280"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "12597b20812a76a4b702f985f6adc82632a18f60",
        "verified_at": "2026-10-27T22:20:55.737826+00:00",
        "packages": []
      }
    },
    {
      "id": "github:interkosmos/fortran-curl",
      "name": "fortran-curl",
      "repository": {
        "host": "github",
        "owner": "interkosmos",
        "name": "fortran-curl",
        "url": "https://github.com/interkosmos/fortran-curl"
      },
      "description": "Fortran-curl 0.8.0 bindings to libcurl; checked offline URL parsing and construction. Sandbox internet access remains disabled.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interoperability"
      ],
      "license": {
        "label": "ISC",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "curl",
          "fortran",
          "fortran-2008",
          "fortran-package-manager",
          "fpm",
          "gopher",
          "http",
          "imap",
          "libcurl",
          "mqtt",
          "smtp"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 36,
        "stars_updated_at": "2026-10-30T17:10:55.680552+00:00"
      },
      "curation": {
        "topics": [
          "interoperability",
          "iso-c-binding",
          "libcurl",
          "offline",
          "url-parsing"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Release 0.8.0 is pinned because its documented libcurl minimum is 8.10.0, compatible with the pinned Debian libcurl 8.14.1-2+deb13u7; current main requires 8.20.0. The original FPM library and C helpers are unchanged. The example adapts examples/url/url.f90 and checks successful URL parsing plus exact host, path, port and query strings, changes the path and checks the reconstructed URL. The C URL handle is released and cleared by the caller, following the 0.8 cleanup semantics. N3 describes parsing/constructing character data. No network request is made; sandbox internet access remains disabled. HTTP transfers, authentication, mail protocols and other libcurl facilities are not runtime-verified. ISC notices are retained.",
        "reviewed_revision": "f29cc78fdc7701bc221a82af9bbd9ed04ef52158",
        "procedures": [
          {
            "id": "fortran-curl-demo-api",
            "package_id": "fortran-curl",
            "revision": "f29cc78fdc7701bc221a82af9bbd9ed04ef52158",
            "module": "curl_urlapi",
            "procedure": "curl_url / curl_url_set / curl_url_get / curl_url_cleanup",
            "gams_codes": [
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Release 0.8.0 is pinned because its documented libcurl minimum is 8.10.0, compatible with the pinned Debian libcurl 8.14.1-2+deb13u7; current main requires 8.20.0. The original FPM library and C helpers are unchanged. The example adapts examples/url/url.f90 and checks successful URL parsing plus exact host, path, port and query strings, changes the path and checks the reconstructed URL. The C URL handle is released and cleared by the caller, following the 0.8 cleanup semantics. N3 describes parsing/constructing character data. No network request is made; sandbox internet access remains disabled. HTTP transfers, authentication, mail protocols and other libcurl facilities are not runtime-verified. ISC notices are retained.",
            "evidence": [
              {
                "path": "src/curl_urlapi.f90",
                "sha256": "fd3649de2aefaf557e30673e8925d17a5fa26fb8fe2a43e82d72661ef9366d9d",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/url/url.f90",
                "sha256": "710dc4cb40466cccb807e60d56516be4228b362796150f8ea9913ed9addfb36b",
                "line": 1
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "fortran-curl",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-curl",
        "package_revision": "f29cc78fdc7701bc221a82af9bbd9ed04ef52158",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-curl.f90",
          "sha256": "df023220e34b9dc5619cbfaa0f4f34b4155b8a07d4b6d6d7ec37915c1ed76230"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f29cc78fdc7701bc221a82af9bbd9ed04ef52158",
        "verified_at": "2026-10-30T17:14:08.367055+00:00",
        "packages": []
      }
    },
    {
      "id": "github:interkosmos/fortran-lmdb",
      "name": "fortran-lmdb",
      "repository": {
        "host": "github",
        "owner": "interkosmos",
        "name": "fortran-lmdb",
        "url": "https://github.com/interkosmos/fortran-lmdb"
      },
      "description": "ISO C bindings to the LMDB embedded key-value database.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Databases"
      ],
      "license": {
        "label": "ISC",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "berkeleydb",
          "database",
          "databases",
          "fortran",
          "fortran-2018",
          "fortran-package-manager",
          "key-value",
          "key-value-database",
          "key-value-store",
          "lmdb",
          "nosql"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-29T13:26:21.447807+00:00"
      },
      "curation": {
        "topics": [
          "c-interoperability",
          "database",
          "key-value-store",
          "lmdb",
          "transactions"
        ],
        "gams_codes": [
          "N",
          "N4",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "LMDB key-value database bindings with Debian LMDB 0.9.31. A checksum-guarded compatibility edit selects the existing signed-kind fallback rather than GNU unsigned extension kinds, which are unavailable without enabling nondefault unsigned support. The checked consumer creates a small sandbox-local database, inserts and updates a value, verifies committed reads and rollback after an aborted update, deletes the key and checks MDB_NOTFOUND, then closes and removes both database files. No persistent storage is provided. Large mappings, concurrent writers/readers, all cursor interfaces and other platforms are not validated.",
        "reviewed_revision": "34bb1dc10e11fd470e4643135fa31fccacef7cd7",
        "procedures": [
          {
            "id": "lmdb-transactions",
            "package_id": "fortran-lmdb",
            "revision": "34bb1dc10e11fd470e4643135fa31fccacef7cd7",
            "module": "lmdb",
            "procedure": "mdb_put / mdb_get / mdb_txn_commit / mdb_txn_abort",
            "gams_codes": [
              "N4",
              "N5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "LMDB key-value database bindings with Debian LMDB 0.9.31. A checksum-guarded compatibility edit selects the existing signed-kind fallback rather than GNU unsigned extension kinds, which are unavailable without enabling nondefault unsigned support. The checked consumer creates a small sandbox-local database, inserts and updates a value, verifies committed reads and rollback after an aborted update, deletes the key and checks MDB_NOTFOUND, then closes and removes both database files. No persistent storage is provided. Large mappings, concurrent writers/readers, all cursor interfaces and other platforms are not validated.",
            "evidence": [
              {
                "path": "src/lmdb.F90",
                "sha256": "40301b4a9c67d0267ea6951542151c4c2b39ab137d3f83f3e0bf6ff38181a4ff",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/test_lmdb.f90",
                "sha256": "47b161c7c9d232f68993dd7f3c010569d4db88e9cba79db9f073d11392e0817d"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "fortran-lmdb",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-lmdb",
        "package_revision": "34bb1dc10e11fd470e4643135fa31fccacef7cd7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-lmdb.f90",
          "sha256": "7a80deaca5387feac6ab7003abd41eed5d100fc3ca4c9e2150e92ac1b4e84def"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "34bb1dc10e11fd470e4643135fa31fccacef7cd7",
        "verified_at": "2026-10-29T13:30:57.553160+00:00",
        "packages": []
      }
    },
    {
      "id": "github:interkosmos/fortran-lua53",
      "name": "fortran-lua53",
      "repository": {
        "host": "github",
        "owner": "interkosmos",
        "name": "fortran-lua53",
        "url": "https://github.com/interkosmos/fortran-lua53"
      },
      "description": "Fortran bindings for embedding and calling Lua 5.3 scripts.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interoperability"
      ],
      "license": {
        "label": "ISC",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "fpm",
          "lua",
          "lua53"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 18,
        "stars_updated_at": "2026-10-29T20:10:45.271323+00:00"
      },
      "curation": {
        "topics": [
          "c-bindings",
          "interoperability",
          "lua",
          "scripting"
        ],
        "gams_codes": [
          "S"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Upstream Lua 5.3 bindings and source code are unchanged. A checksum-guarded manifest edit links the versioned Debian Lua 5.3 library instead of the unversioned lua name. The native development package is locked to 5.3.6-2+b4. The consumer defines a Lua function in memory, calls it for four integer arguments, independently verifies integer squares and real square roots, checks Lua status and function presence, empties the stack after each call and closes the interpreter. No files or external services are needed. Lua modules, callbacks into Fortran and arbitrary scripts are not comprehensively validated.",
        "reviewed_revision": "d0d684978e922bbc8c2f7e4be0cc901f80c29de6",
        "procedures": [
          {
            "id": "lua53-interface",
            "package_id": "fortran-lua53",
            "revision": "d0d684978e922bbc8c2f7e4be0cc901f80c29de6",
            "module": "lua",
            "procedure": "lual_newstate / lual_loadstring / lua_pcall / lua_tointeger / lua_tonumber / lua_close",
            "gams_codes": [
              "S"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Upstream Lua 5.3 bindings and source code are unchanged. A checksum-guarded manifest edit links the versioned Debian Lua 5.3 library instead of the unversioned lua name. The native development package is locked to 5.3.6-2+b4. The consumer defines a Lua function in memory, calls it for four integer arguments, independently verifies integer squares and real square roots, checks Lua status and function presence, empties the stack after each call and closes the interpreter. No files or external services are needed. Lua modules, callbacks into Fortran and arbitrary scripts are not comprehensively validated.",
            "evidence": [
              {
                "path": "src/lua.f90",
                "sha256": "cd7d3bec69de1d04a2e425edff3160393efaf67ad6839b7949df81360a52b5f3",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/fibonacci/fibonacci.f90",
                "sha256": "1f239d6335815023bd747d46cb525ad3d6598972530a2658895a059304aa1b5f"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "fortran-lua53",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-lua53",
        "package_revision": "d0d684978e922bbc8c2f7e4be0cc901f80c29de6",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-lua53.f90",
          "sha256": "7c5089eaea49fbb39a493dd195480bcbf6a093e5e0d08f7f2c8cf3e8681b9a2b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d0d684978e922bbc8c2f7e4be0cc901f80c29de6",
        "verified_at": "2026-10-29T20:13:47.719614+00:00",
        "packages": []
      }
    },
    {
      "id": "github:interkosmos/fortran-lua54",
      "name": "fortran-lua54",
      "repository": {
        "host": "github",
        "owner": "interkosmos",
        "name": "fortran-lua54",
        "url": "https://github.com/interkosmos/fortran-lua54"
      },
      "description": "Call Lua 5.4 functions and scripts from Fortran.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Language interfaces"
      ],
      "license": {
        "label": "ISC",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-2008",
          "fortran-package-manager",
          "fpm",
          "lua",
          "lua54"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 6,
        "stars_updated_at": "2026-10-29T13:26:21.447807+00:00"
      },
      "curation": {
        "topics": [
          "c-interoperability",
          "language-bindings",
          "lua",
          "scripting"
        ],
        "gams_codes": [
          "S"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Fortran bindings to Lua 5.4, linked with Debian Lua 5.4.7. The manifest library name lua-5.4 is adapted to Linux lua5.4; library sources are unchanged. Adapted from the upstream in-memory string example, the consumer defines a Lua function, passes an integer from Fortran, checks Lua load/call status and function type, verifies the returned integer and closes the state. External scripts, callbacks from Lua to Fortran, arbitrary Lua modules and all bindings are not validated.",
        "reviewed_revision": "b3582591bc82d003ef3933d0772c131509667f49",
        "procedures": [
          {
            "id": "lua-call",
            "package_id": "fortran-lua54",
            "revision": "b3582591bc82d003ef3933d0772c131509667f49",
            "module": "lua",
            "procedure": "lual_loadstring / lua_pcall / lua_tointeger",
            "gams_codes": [
              "S"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Fortran bindings to Lua 5.4, linked with Debian Lua 5.4.7. The manifest library name lua-5.4 is adapted to Linux lua5.4; library sources are unchanged. Adapted from the upstream in-memory string example, the consumer defines a Lua function, passes an integer from Fortran, checks Lua load/call status and function type, verifies the returned integer and closes the state. External scripts, callbacks from Lua to Fortran, arbitrary Lua modules and all bindings are not validated. Dedicated S consumer checks exact factorial, sums-of-squares and signed-polynomial results plus real Pythagorean norms across the Fortran/Lua boundary. Checks return types, stack balance, expected runtime/syntax diagnostics and reuse of the same state after errors (128 integer and five real successes). Independent Lua scripts and Fortran references; no external script files. Arbitrary modules, callbacks to Fortran, userdata, concurrency and full language/binding coverage are not verified.",
            "evidence": [
              {
                "path": "src/lua.f90",
                "sha256": "8383ef197fdb18e8c11a7982545c3210fdb9cca5f2c8c97f943ad1c60982208d",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/string.f90",
                "sha256": "dc2e08f76dd6d4c77243c5f22ee6860b582211d943152d0eddcafa63279b5030"
              }
            ],
            "driver_id": "lua-numeric-embedding-reference"
          }
        ]
      },
      "playground": {
        "package_id": "fortran-lua54",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-lua54",
        "package_revision": "b3582591bc82d003ef3933d0772c131509667f49",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-lua54.f90",
          "sha256": "c9b1a09825deea76782f0cab21f4768c566a9cfea90c343cf41245eb94341719"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b3582591bc82d003ef3933d0772c131509667f49",
        "verified_at": "2026-10-29T13:30:57.553160+00:00",
        "packages": []
      }
    },
    {
      "id": "github:interkosmos/fortran-modbus",
      "name": "fortran-modbus",
      "repository": {
        "host": "github",
        "owner": "interkosmos",
        "name": "fortran-modbus",
        "url": "https://github.com/interkosmos/fortran-modbus"
      },
      "description": "Fortran bindings to libmodbus; offline floating-point/register conversions in four byte orders. No device connection is required by the example.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interoperability"
      ],
      "license": {
        "label": "ISC",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "automation",
          "fortran",
          "fortran-2018",
          "fortran-package-manager",
          "iiot",
          "iot",
          "libmodbus",
          "modbus",
          "modbus-rtu",
          "modbus-tcp"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-30T18:11:46.121287+00:00"
      },
      "curation": {
        "topics": [
          "byte-order",
          "iso-c-binding",
          "libmodbus",
          "modbus",
          "offline",
          "register-conversion"
        ],
        "gams_codes": [
          "N",
          "N2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The original Fortran 2018 FPM bindings are compiled against pinned Debian libmodbus 3.1.11-2. The consumer checks positive, negative and zero single-precision values through the ABCD, BADC, CDAB and DCBA register conversion APIs and prints register words in hexadecimal. These are offline operations, with no socket, serial port or Modbus device. N2 covers bit/byte representation; the catalog does not claim verified device communication. The author test/test_modbus.f90 documents context use but is not used as a device test. ISC notices are retained.",
        "reviewed_revision": "1e99906209fbbcdd1f1bf2064a92325cf4bb05fa",
        "procedures": [
          {
            "id": "fortran-modbus-demo-api",
            "package_id": "fortran-modbus",
            "revision": "1e99906209fbbcdd1f1bf2064a92325cf4bb05fa",
            "module": "modbus",
            "procedure": "modbus_set_float_abcd / modbus_get_float_abcd / BADC / CDAB / DCBA variants",
            "gams_codes": [
              "N2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The original Fortran 2018 FPM bindings are compiled against pinned Debian libmodbus 3.1.11-2. The consumer checks positive, negative and zero single-precision values through the ABCD, BADC, CDAB and DCBA register conversion APIs and prints register words in hexadecimal. These are offline operations, with no socket, serial port or Modbus device. N2 covers bit/byte representation; the catalog does not claim verified device communication. The author test/test_modbus.f90 documents context use but is not used as a device test. ISC notices are retained.",
            "evidence": [
              {
                "path": "src/modbus.F90",
                "sha256": "a32330d7ac66c86bc3fcc09cd600125aea52c7a029d7ba95eb616f7f64375338",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/test_modbus.f90",
                "sha256": "6b47e7c40965f2a8c3ee734eefb29e930150c87c5d68fcc2a1ff6b3ed2f2ec2a",
                "line": 1
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "fortran-modbus",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-modbus",
        "package_revision": "1e99906209fbbcdd1f1bf2064a92325cf4bb05fa",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-modbus.f90",
          "sha256": "a2a46efd866f1c189edff0c2f9d120b98cf318a9caa8ce05d76ea89d367a1992"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "1e99906209fbbcdd1f1bf2064a92325cf4bb05fa",
        "verified_at": "2026-10-30T18:16:48.566372+00:00",
        "packages": []
      }
    },
    {
      "id": "github:interkosmos/fortran-pcre2",
      "name": "fortran-pcre2",
      "repository": {
        "host": "github",
        "owner": "interkosmos",
        "name": "fortran-pcre2",
        "url": "https://github.com/interkosmos/fortran-pcre2"
      },
      "description": "Perl-compatible regular expressions, capture groups and text matching through PCRE2.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Strings"
      ],
      "license": {
        "label": "ISC",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-2018",
          "fortran-package-manager",
          "fpm",
          "pcre",
          "pcre2",
          "regex",
          "regexp"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 7,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "language-bindings",
          "pattern-matching",
          "pcre2",
          "regular-expressions",
          "text-processing"
        ],
        "gams_codes": [
          "N",
          "N3",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "44b2fe9aac30272496b51286da8b79a47880cd03"
      },
      "playground": {
        "package_id": "fortran-pcre2",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-pcre2",
        "package_revision": "44b2fe9aac30272496b51286da8b79a47880cd03",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-pcre2.f90",
          "sha256": "cfccbd11c31135e05132f4464b83fec5c693e403183c0ca6f5b32a80ed4bcb53"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "44b2fe9aac30272496b51286da8b79a47880cd03",
        "verified_at": "2026-10-28T00:11:51.121365+00:00",
        "packages": []
      }
    },
    {
      "id": "github:interkosmos/fortran-sdl2",
      "name": "fortran-sdl2",
      "repository": {
        "host": "github",
        "owner": "interkosmos",
        "name": "fortran-sdl2",
        "url": "https://github.com/interkosmos/fortran-sdl2"
      },
      "description": "SDL2 bindings; the checked example draws colored bars on a software surface and saves/reloads a browser-viewable PNG without a window.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Graphics"
      ],
      "license": {
        "label": "ISC",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "fpm",
          "game-development",
          "gamedev",
          "opengl",
          "sdl",
          "sdl2"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 50,
        "stars_updated_at": "2026-10-30T18:33:11.712116+00:00"
      },
      "curation": {
        "topics": [
          "graphics",
          "headless",
          "image-processing",
          "iso-c-binding",
          "png",
          "sdl2"
        ],
        "gams_codes": [
          "Q"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The original FPM library and Fortran bindings are unchanged. The image pins SDL 2.32.4, SDL2_image 2.8.8, SDL2_mixer 2.8.1, SDL2_ttf 2.24.0 and GL/GLU development libraries; native link flags are recorded in the catalog build environment. The checked main creates a 640x360 32-bit software surface, fills a background and three bars, checks source pixels, saves a PNG, reloads it through the package IMG_Load API, and checks dimensions plus the file signature/size. The pinned bindings omit IMG_SavePNG, so the main includes only that standard C function declaration. No image encoder or drawing algorithm is substituted for SDL. No video subsystem, window, display server, hardware renderer, audio device or event loop is needed. The returned browser preview is visually reviewed. Q covers graphics. Interactive rendering, audio, fonts and OpenGL/GLU routines are compiled/linked facilities but not runtime-verified by this consumer. ISC notices are retained.",
        "reviewed_revision": "cac974790420ba757c17f88678e66b01500319e7",
        "procedures": [
          {
            "id": "fortran-sdl2-demo-api",
            "package_id": "fortran-sdl2",
            "revision": "cac974790420ba757c17f88678e66b01500319e7",
            "module": "sdl2 / sdl2_image",
            "procedure": "sdl_create_rgb_surface / sdl_fill_rect / sdl_map_rgb / img_load / sdl_convert_surface",
            "gams_codes": [
              "Q"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The original FPM library and Fortran bindings are unchanged. The image pins SDL 2.32.4, SDL2_image 2.8.8, SDL2_mixer 2.8.1, SDL2_ttf 2.24.0 and GL/GLU development libraries; native link flags are recorded in the catalog build environment. The checked main creates a 640x360 32-bit software surface, fills a background and three bars, checks source pixels, saves a PNG, reloads it through the package IMG_Load API, and checks dimensions plus the file signature/size. The pinned bindings omit IMG_SavePNG, so the main includes only that standard C function declaration. No image encoder or drawing algorithm is substituted for SDL. No video subsystem, window, display server, hardware renderer, audio device or event loop is needed. The returned browser preview is visually reviewed. Q covers graphics. Interactive rendering, audio, fonts and OpenGL/GLU routines are compiled/linked facilities but not runtime-verified by this consumer. ISC notices are retained. Dedicated Q consumer checks every pixel of an 85x65 software surface containing four overlapping/clipped rectangles, using native RGB mask arithmetic and independent half-open coordinate tests. Repeats the exact pixel check after PNG export/import and conversion to the original pixel format, and independently checks the PNG signature/IHDR dimensions. Uses only the missing standard IMG_SavePNG C declaration. Interactive rendering, hardware, alpha blending, codecs beyond PNG and other SDL subsystems are not verified.",
            "evidence": [
              {
                "path": "src/sdl2.f90",
                "sha256": "c212c12495387ffe3f10f70ab58770bbb381cc0bf34cc02894478db9df1128ef",
                "line": 1
              },
              {
                "path": "src/sdl2/sdl2_surface.f90",
                "sha256": "fe868a5b9bca473bb1dc1f1c908cad583c14c79246a515e1b91c0697952525f3",
                "line": 1
              },
              {
                "path": "src/sdl2_image.f90",
                "sha256": "ba3f73acde2757df3717aabfd2584775acda55ef2b49e4909ef0d46ea11ecea5",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/alpha.f90",
                "sha256": "df31a49648a7e3ae92e79144b7faa9ed63886c486b7b6ed54c15020e541897b9",
                "line": 1
              },
              {
                "path": "examples/pixel.f90",
                "sha256": "568ba0c01a39918d9d95b6ea74ef08854876616410b1c76f78b3efd78ce12561",
                "line": 1
              }
            ],
            "driver_id": "sdl-raster-reference"
          }
        ]
      },
      "playground": {
        "package_id": "fortran-sdl2",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-sdl2",
        "package_revision": "cac974790420ba757c17f88678e66b01500319e7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-sdl2.f90",
          "sha256": "59344bd9f5c0f6372ba31a0beaae76aa32b2e50ca701002582c6c5d64e0152d2"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "cac974790420ba757c17f88678e66b01500319e7",
        "verified_at": "2026-10-30T18:34:32.649899+00:00",
        "packages": []
      }
    },
    {
      "id": "github:interkosmos/fortran-sqlite3",
      "name": "fortran-sqlite3",
      "repository": {
        "host": "github",
        "owner": "interkosmos",
        "name": "fortran-sqlite3",
        "url": "https://github.com/interkosmos/fortran-sqlite3"
      },
      "description": "SQLite database bindings for creating tables, executing SQL and reading query results.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Databases"
      ],
      "license": {
        "label": "ISC",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "fpm",
          "sqlite",
          "sqlite3"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 33,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "databases",
          "language-bindings",
          "sql",
          "sqlite"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "f55f982df2b41cab579e0258cb8cc574236be349"
      },
      "playground": {
        "package_id": "fortran-sqlite3",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-sqlite3",
        "package_revision": "f55f982df2b41cab579e0258cb8cc574236be349",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-sqlite3.f90",
          "sha256": "c7a535f69b00be80f1a78240599168ca96d3ae46a3a9d4a2c7b6b9d100da27fe"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f55f982df2b41cab579e0258cb8cc574236be349",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:interkosmos/fortran-tcl86",
      "name": "fortran-tcl86",
      "repository": {
        "host": "github",
        "owner": "interkosmos",
        "name": "fortran-tcl86",
        "url": "https://github.com/interkosmos/fortran-tcl86"
      },
      "description": "Fortran bindings for embedding Tcl 8.6 scripting and accessing Tcl/Tk APIs.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interoperability"
      ],
      "license": {
        "label": "ISC",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-2018",
          "fortran-package-manager",
          "fpm",
          "tcl",
          "tcl-tk",
          "tk"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 12,
        "stars_updated_at": "2026-10-29T18:43:21.308518+00:00"
      },
      "curation": {
        "topics": [
          "interoperability",
          "iso-c-binding",
          "scripting",
          "tcl"
        ],
        "gams_codes": [
          "S"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Fortran/C bindings linked to pinned Debian Tcl/Tk 8.6 development libraries. A checksum-guarded include edit selects Debian's tcl8.6/tcl.h path for the C macro wrappers; interfaces and calculation code are unchanged. Adapted from the upstream evaluation example, the consumer creates a Tcl interpreter, evaluates an in-memory sum-of-squares script, checks evaluation status and the integer result against Fortran, then destroys the interpreter. Tk graphical windows, extension modules, Tcl stubs and all bindings are not validated; the browser example requires no graphical display or network.",
        "reviewed_revision": "5d5cc9dbf39679d75d2a58d149112aedde2567d6",
        "procedures": [
          {
            "id": "tcl-evaluate",
            "package_id": "fortran-tcl86",
            "revision": "5d5cc9dbf39679d75d2a58d149112aedde2567d6",
            "module": "tcl",
            "procedure": "tcl_create_interp / tcl_eval_ex / tcl_get_string_result / tcl_delete_interp",
            "gams_codes": [
              "S"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Fortran/C bindings linked to pinned Debian Tcl/Tk 8.6 development libraries. A checksum-guarded include edit selects Debian's tcl8.6/tcl.h path for the C macro wrappers; interfaces and calculation code are unchanged. Adapted from the upstream evaluation example, the consumer creates a Tcl interpreter, evaluates an in-memory sum-of-squares script, checks evaluation status and the integer result against Fortran, then destroys the interpreter. Tk graphical windows, extension modules, Tcl stubs and all bindings are not validated; the browser example requires no graphical display or network.",
            "evidence": [
              {
                "path": "src/tcl.f90",
                "sha256": "e3c5a9c5a1be842adaac0d1ca9adabe40bedb548fa30d3b817f03316b2947074",
                "line": 1
              },
              {
                "path": "src/tcl_macro.c",
                "sha256": "5eaca5766b04dbd99fa3df59f36ffa3efef811f7327ca774695bdb4695a152fd",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/eval/eval.f90",
                "sha256": "c95f6eadfe34d6e9b735c4c7e080091c2d35c12f25e6439cc654ff7c25ac0309"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "fortran-tcl86",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-tcl86",
        "package_revision": "5d5cc9dbf39679d75d2a58d149112aedde2567d6",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-tcl86.f90",
          "sha256": "747c628986240974d6ecaec4a00ea0dedbbd4d79915b81dfeb63977823833dfd"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5d5cc9dbf39679d75d2a58d149112aedde2567d6",
        "verified_at": "2026-10-29T18:44:12.105846+00:00",
        "packages": []
      }
    },
    {
      "id": "github:interkosmos/fortran-unix",
      "name": "fortran-unix",
      "repository": {
        "host": "github",
        "owner": "interkosmos",
        "name": "fortran-unix",
        "url": "https://github.com/interkosmos/fortran-unix"
      },
      "description": "POSIX and SysV interfaces for files, directories and other Unix facilities.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Files and processes"
      ],
      "license": {
        "label": "ISC",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-2008",
          "fortran-package-manager",
          "fpm",
          "freebsd",
          "linux",
          "posix",
          "unix"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 36,
        "stars_updated_at": "2026-10-29T13:26:21.447807+00:00"
      },
      "curation": {
        "topics": [
          "c-interoperability",
          "filesystem",
          "posix",
          "system-programming",
          "unix"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "POSIX/SysV bindings on the playground 64-bit Linux/glibc environment. The source library is unchanged. The manifest features/profiles tables are removed for FPM 0.12 compatibility and their Linux preprocessor flag is supplied explicitly. A 13-byte sandbox-local file is created, its size is checked through c_stat, then c_unlink removes it and Fortran INQUIRE confirms removal. Other operating systems, process creation, networking, IPC, signals, threads and all ABI structures are not validated or promised in the restricted sandbox.",
        "reviewed_revision": "50dc6df511c1cf5a245a4ab14cd4f705d4e66c2f",
        "procedures": [
          {
            "id": "unix-files",
            "package_id": "fortran-unix",
            "revision": "50dc6df511c1cf5a245a4ab14cd4f705d4e66c2f",
            "module": "unix_stat / unix_unistd",
            "procedure": "c_stat / c_unlink",
            "gams_codes": [
              "N1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "POSIX/SysV bindings on the playground 64-bit Linux/glibc environment. The source library is unchanged. The manifest features/profiles tables are removed for FPM 0.12 compatibility and their Linux preprocessor flag is supplied explicitly. A 13-byte sandbox-local file is created, its size is checked through c_stat, then c_unlink removes it and Fortran INQUIRE confirms removal. Other operating systems, process creation, networking, IPC, signals, threads and all ABI structures are not validated or promised in the restricted sandbox.",
            "evidence": [
              {
                "path": "src/unix_stat.F90",
                "sha256": "da5bcef29b53c88e244b3d412768e5367aa64e66aa55442188efa6252075ad22",
                "line": 1
              },
              {
                "path": "src/unix_unistd.F90",
                "sha256": "13ed7333a7fb2d78740011016ebc50d000d0bdda705d30201698679f44478c67",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/stat/stat.f90",
                "sha256": "3f774841a7f47bf254cdcabd5c436796c319aa02ae3bd5f9748dca121608ca23"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "fortran-unix",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-unix",
        "package_revision": "50dc6df511c1cf5a245a4ab14cd4f705d4e66c2f",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-unix.f90",
          "sha256": "949a6762cf02a6a06593058dfe1656244f47a38d287fcb025d2fd0c49a78aa2b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "50dc6df511c1cf5a245a4ab14cd4f705d4e66c2f",
        "verified_at": "2026-10-29T13:30:57.553160+00:00",
        "packages": []
      }
    },
    {
      "id": "github:interkosmos/fortran-zlib",
      "name": "fortran-zlib",
      "repository": {
        "host": "github",
        "owner": "interkosmos",
        "name": "fortran-zlib",
        "url": "https://github.com/interkosmos/fortran-zlib"
      },
      "description": "Fortran interfaces to zlib lossless compression and decompression.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Encoding and compression"
      ],
      "license": {
        "label": "ISC",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "archiving",
          "compression",
          "fortran",
          "fortran-2018",
          "fortran-package-manager",
          "zlib"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 14,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "compression",
          "language-bindings",
          "lossless-compression",
          "zlib"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "d5afd62acc65bdde39f5f5d60eb85122d0f86a22"
      },
      "playground": {
        "package_id": "fortran-zlib",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-zlib",
        "package_revision": "d5afd62acc65bdde39f5f5d60eb85122d0f86a22",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-zlib.f90",
          "sha256": "a924cdf893c2024f93197ad050134f7648adf5ed6a5875481180c225c4b2d90b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d5afd62acc65bdde39f5f5d60eb85122d0f86a22",
        "verified_at": "2026-10-27T23:52:44.682584+00:00",
        "packages": []
      }
    },
    {
      "id": "github:interkosmos/fortran-zstd",
      "name": "fortran-zstd",
      "repository": {
        "host": "github",
        "owner": "interkosmos",
        "name": "fortran-zstd",
        "url": "https://github.com/interkosmos/fortran-zstd"
      },
      "description": "Fortran interfaces to Zstandard lossless data compression.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Encoding and compression"
      ],
      "license": {
        "label": "ISC",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "archiving",
          "compression",
          "fortran",
          "fortran-2018",
          "fortran-package-manager",
          "zstandard",
          "zstd"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 11,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "compression",
          "language-bindings",
          "lossless-compression",
          "zstandard"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "4cb3e9f4a0db7c7ab24a8eeec06be9b471c52545"
      },
      "playground": {
        "package_id": "fortran-zstd",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-zstd",
        "package_revision": "4cb3e9f4a0db7c7ab24a8eeec06be9b471c52545",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-zstd.f90",
          "sha256": "a58ec43c70682d27934e542c34fabaae41758d884d0b053ab2eace249cce0674"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "4cb3e9f4a0db7c7ab24a8eeec06be9b471c52545",
        "verified_at": "2026-10-28T00:11:51.121365+00:00",
        "packages": []
      }
    },
    {
      "id": "github:ivan-pi/fortran-flann",
      "name": "fortran-flann",
      "repository": {
        "host": "github",
        "owner": "ivan-pi",
        "name": "fortran-flann",
        "url": "https://github.com/ivan-pi/fortran-flann"
      },
      "description": "FLANN interfaces for nearest-neighbor searches and spatial indexing.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Machine learning"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "approximate-nearest-neighbor-search",
          "hierarchical-clustering",
          "high-dimensional-data",
          "kdtree",
          "kmeans-clustering",
          "nearest-neighbor-search",
          "spatial-search"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 15,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "language-bindings",
          "machine-learning",
          "nearest-neighbors",
          "spatial-indexing"
        ],
        "gams_codes": [
          "N",
          "N4",
          "N5",
          "P"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "35370c851602d954d1d01d10c9c14ff82dd96496",
        "procedures": [
          {
            "id": "fortran-flann-knn-search",
            "package_id": "fortran-flann",
            "revision": "35370c851602d954d1d01d10c9c14ff82dd96496",
            "module": "flann",
            "procedure": "flann_index%knn_search",
            "gams_codes": [
              "N5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Nearest-neighbor search via FLANN; not a geometric PDE solver.",
            "evidence": [
              {
                "path": "src/flann.f90",
                "sha256": "6c2fb5c9d062de09209f6b47179a1888859b142f8c5e2a0323f83511383f0005",
                "line": 91
              }
            ],
            "author_examples": [
              {
                "path": "example/flann_demo.f90",
                "sha256": "fc9370e98332f5fdad8a22ab8b54b12a014667e1c7af35e57bb82cae791b9e63"
              }
            ],
            "driver_id": "flann-knn-reference"
          }
        ],
        "numerical_review": {
          "revision": "35370c851602d954d1d01d10c9c14ff82dd96496",
          "archive_sha256": "a3b9e1b13e4b613e2bf5943decdbfb6ba4f8a866115007dfae9c2eb947fc3075",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortran-flann-knn-search"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fortran-flann",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-flann",
        "package_revision": "35370c851602d954d1d01d10c9c14ff82dd96496",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-flann.f90",
          "sha256": "3d7aa99307528cbc8c4eac2a1c329cc7036061be2a019068b06a692ce261c658"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "35370c851602d954d1d01d10c9c14ff82dd96496",
        "verified_at": "2026-10-28T01:15:41.906948+00:00",
        "packages": []
      }
    },
    {
      "id": "github:ivan-pi/kiss",
      "name": "kiss",
      "repository": {
        "host": "github",
        "owner": "ivan-pi",
        "name": "kiss",
        "url": "https://github.com/ivan-pi/kiss"
      },
      "description": "Krylov iterative solvers for dense matrices and matrix-free linear operators.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "iterative-solvers",
          "krylov-methods",
          "linear-algebra",
          "linear-systems",
          "matrix-free"
        ],
        "gams_codes": [
          "D",
          "D2",
          "D2b",
          "D2b1",
          "D2b1b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "55f0f7ccb1601a0628a17928b5b6b79f61da2892",
        "procedures": [
          {
            "id": "kiss-cg-dense",
            "package_id": "kiss",
            "revision": "55f0f7ccb1601a0628a17928b5b6b79f61da2892",
            "module": "kiss",
            "procedure": "cg_dense",
            "gams_codes": [
              "D2b1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Conjugate gradient for real symmetric positive-definite dense systems. The checked driver solves two known right-hand sides, checks finite results and successful termination, and independently recomputes the residual and scaled normwise backward error.",
            "evidence": [
              {
                "path": "src/kiss.F90",
                "sha256": "2e6ac0f955f8ecd89bc387a95d54704baf56a4be4992cbcbc8d3d41295dc8584",
                "line": 147
              }
            ],
            "author_examples": [
              {
                "path": "test/test_kiss.f90",
                "sha256": "e368e8d682091dcd641d47e5308c089f4ec6ab7ac5083a99b38aecc94f97d074"
              }
            ],
            "driver_id": "kiss-positive-definite-solve"
          }
        ],
        "numerical_review": {
          "revision": "55f0f7ccb1601a0628a17928b5b6b79f61da2892",
          "archive_sha256": "b8a34e012c2c67a313f0f4f94d9674f8869dd525f858ea5ab1811e1e2041c79c",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "kiss-cg-dense"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "kiss",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=kiss",
        "package_revision": "55f0f7ccb1601a0628a17928b5b6b79f61da2892",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/kiss.f90",
          "sha256": "3f9f9d8e8f920f4e57271c2544a2f8dd08f4408ad928aadff480c99eb363b3c5"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "55f0f7ccb1601a0628a17928b5b6b79f61da2892",
        "verified_at": "2026-10-28T01:33:45.255776+00:00",
        "packages": []
      }
    },
    {
      "id": "github:ivan-pi/libdogleg-f",
      "name": "libdogleg-f",
      "repository": {
        "host": "github",
        "owner": "ivan-pi",
        "name": "libdogleg-f",
        "url": "https://github.com/ivan-pi/libdogleg-f"
      },
      "description": "Fortran interfaces to libdogleg trust-region nonlinear least-squares optimization.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "LGPL-3.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "c",
          "dogleg-method",
          "fortran",
          "nonlinear-least-squares",
          "numerical-optimization"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 6,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "language-bindings",
          "least-squares",
          "optimization",
          "trust-region"
        ],
        "gams_codes": [
          "G",
          "G1",
          "G1b",
          "G1b1",
          "G1b1b",
          "K",
          "K1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "32b65ae4f880a052768c05d24c24b79920710681",
        "procedures": [
          {
            "id": "libdogleg-dense",
            "package_id": "libdogleg-f",
            "revision": "32b65ae4f880a052768c05d24c24b79920710681",
            "module": "dogleg",
            "procedure": "dl_optimize (dl_optimize_dense2)",
            "gams_codes": [
              "G1b1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "user residual Jacobian",
            "notes": "Dense nonlinear least squares; Jacobian layout is parameters by residuals, transposed relative to MINPACK. For smooth nonlinear least squares, the user residual Jacobian supplies first-derivative information for the squared-residual objective; this is not a general scalar-objective gradient interface.",
            "evidence": [
              {
                "path": "src/dogleg.f90",
                "line": 142,
                "sha256": "55621942815cfc47627fde148cbb04f851501970b78a1f34314648ccbfef4ad9"
              }
            ],
            "author_examples": [
              {
                "path": "example/lmder_example.f90",
                "sha256": "8da803a1cfe3e3fc139b4e47f4ea7c6f32bbeb4fa8ad58ce95581000d4e4efc2"
              }
            ],
            "driver_id": "libdogleg-bard"
          }
        ],
        "numerical_review": {
          "revision": "32b65ae4f880a052768c05d24c24b79920710681",
          "archive_sha256": "567498c00c9e23382d9359e92a1c08fd02fbb5167a4c531b2fc8018eb9d2a122",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "libdogleg-dense"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "libdogleg-f",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=libdogleg-f",
        "package_revision": "32b65ae4f880a052768c05d24c24b79920710681",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/libdogleg-f.f90",
          "sha256": "5ad1e2c19efaab10f94f2d75d6e42c6a3e616d6c6a2e262667d45a51804747b0"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "32b65ae4f880a052768c05d24c24b79920710681",
        "verified_at": "2026-10-28T02:10:15.391492+00:00",
        "packages": []
      }
    },
    {
      "id": "github:ivan-pi/stiff3",
      "name": "stiff3",
      "repository": {
        "host": "github",
        "owner": "ivan-pi",
        "name": "stiff3",
        "url": "https://github.com/ivan-pi/stiff3"
      },
      "description": "Adaptive third-order Rosenbrock solver for stiff autonomous ordinary differential equations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "Apache-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "adaptive",
          "differential",
          "equation",
          "fortran",
          "ode",
          "solver",
          "stiff"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 24,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "adaptive-methods",
          "ode",
          "rosenbrock-methods",
          "stiff-equations"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I1a",
          "I1a2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "70ab5c86c2ac922ed148bbb1182345cca248e077",
        "procedures": [
          {
            "id": "stiff3-stiff3",
            "package_id": "stiff3",
            "revision": "70ab5c86c2ac922ed148bbb1182345cca248e077",
            "module": "stiff3_solver",
            "procedure": "stiff3",
            "gams_codes": [
              "I1a2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "user Jacobian in reviewed example",
            "notes": "Third-order Rosenbrock integration for stiff autonomous initial-value systems. The checked I1a2 driver solves the shared autonomous system y1'= -1000*y1+999*y2, y2'= -y2 from [2,1], checking exact exponential modes at four output times. Only this stiff ODE configuration is verified; no DAE capability or general stiff-problem accuracy is established.",
            "evidence": [
              {
                "path": "src/stiff3_solver.f90",
                "sha256": "ccdf1358450acc079ab1d338dfeff6cdd6415bf53717a85358bc546dec41a1fa",
                "line": 71
              }
            ],
            "author_examples": [
              {
                "path": "example/hires.f90",
                "sha256": "c9851c848a9ff3fa7e709fa66fe9a6360af29e8d897708a803fc848573f75966"
              }
            ],
            "driver_id": "stiff3-stiff-two-scale"
          }
        ],
        "numerical_review": {
          "revision": "70ab5c86c2ac922ed148bbb1182345cca248e077",
          "archive_sha256": "33c52164ec8e5a1b57b623f529209fadcd2c3db40b6cfcb63adf48de40ed3160",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "stiff3-stiff3"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "stiff3",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=stiff3",
        "package_revision": "70ab5c86c2ac922ed148bbb1182345cca248e077",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/stiff3.f90",
          "sha256": "24cfc8cf62e358d818c898c4ecaa8ad9aa71c955a442a6415a14cecc09f144bd"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "70ab5c86c2ac922ed148bbb1182345cca248e077",
        "verified_at": "2026-10-28T01:52:04.654432+00:00",
        "packages": []
      }
    },
    {
      "id": "github:ivan-pi/y12m",
      "name": "y12m",
      "repository": {
        "host": "github",
        "owner": "ivan-pi",
        "name": "y12m",
        "url": "https://github.com/ivan-pi/y12m"
      },
      "description": "Direct sparse LU factorization with pivoting, reordering and reuse for multiple right-hand sides.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "GPL-2.0-only (source template/build headers; manifest unspecified)",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 16,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "direct-solvers",
          "linear-algebra",
          "linear-systems",
          "lu-factorization",
          "sparse-matrices"
        ],
        "gams_codes": [
          "D",
          "D2",
          "D2a",
          "D2a4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "5245418ed3f87c72bff4660432212328640a6322",
        "procedures": [
          {
            "id": "y12m-y12mc",
            "package_id": "y12m",
            "revision": "5245418ed3f87c72bff4660432212328640a6322",
            "module": "y12m",
            "procedure": "y12mb, y12mc, y12md",
            "gams_codes": [
              "D2a4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Direct real sparse factorization and repeated solves using stored factors. Checked driver uses two nonsymmetric 10-by-10 matrices (including a cyclic row permutation), four manufactured right-hand sides per factorization and independent scalar residuals. No singular/ill-conditioned behavior is certified.",
            "evidence": [
              {
                "path": "src/y12m.f90",
                "sha256": "8dd4968f3d1eac005ebcc9387e1ac37b974edecef115e9473824ce7553bc8be1",
                "line": 91
              }
            ],
            "author_examples": [
              {
                "path": "test/test_y12mc_errors.F90",
                "sha256": "0519c3118c4c43c4d6616e63210659dc5248d7e7b360ac0f90739ce05e9324f5"
              }
            ],
            "driver_id": "y12m-sparse-reference"
          }
        ],
        "numerical_review": {
          "revision": "5245418ed3f87c72bff4660432212328640a6322",
          "archive_sha256": "412cfb698c2eb939db37c649d6eb0516f82850570e93ed58e2f4debae7d01a55",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "y12m-y12mc"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "y12m",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=y12m",
        "package_revision": "5245418ed3f87c72bff4660432212328640a6322",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/y12m.f90",
          "sha256": "c01a620520e97528228e175121a4e0cbbe992ba501e998f6e40fa8169a863aed"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5245418ed3f87c72bff4660432212328640a6322",
        "verified_at": "2026-10-28T02:10:15.391492+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/argv-fortran",
      "name": "argv-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "argv-fortran",
        "url": "https://github.com/jacobwilliams/argv-fortran"
      },
      "description": "Read command-line arguments as allocatable strings.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Command-line tools"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "argv",
          "fortran",
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 7,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "argument-parsing",
          "command-line",
          "strings"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "8135f30876162714e7632d7665a30642f89d5ce1"
      },
      "playground": {
        "package_id": "argv-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=argv-fortran",
        "package_revision": "8135f30876162714e7632d7665a30642f89d5ce1",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/argv-fortran.f90",
          "sha256": "66a8a8725ff4ae0f91b98b256a44662a5397e6cf273a466edc55d98bcf6ae218"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "8135f30876162714e7632d7665a30642f89d5ce1",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/astro-fortran",
      "name": "astro-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "astro-fortran",
        "url": "https://github.com/jacobwilliams/astro-fortran"
      },
      "description": "Fundamental astronomy models and coordinate transformations refactored from IAU SOFA.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Astronomy and orbits"
      ],
      "license": {
        "label": "BSD-3-Clause and SOFA Software License (LICENSE.txt)",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "astrometry",
          "astronomy",
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 19,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "astronomy",
          "coordinate-transformations",
          "iau-sofa"
        ],
        "gams_codes": [
          "P",
          "Z"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "9d61091d225a1b314ff8170153b06a8691aba283",
        "procedures": [
          {
            "id": "astro-fortran-g2icrs",
            "package_id": "astro-fortran",
            "revision": "9d61091d225a1b314ff8170153b06a8691aba283",
            "module": "astro_module",
            "procedure": "G2ICRS, ICRS2G",
            "gams_codes": [
              "P"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Galactic/equatorial coordinate transformations; no detailed astronomy classification is invented.",
            "evidence": [
              {
                "path": "src/astro_module.f90",
                "sha256": "91f48eb9a00257d59ead888d7ac6d1ba1d48529aeb19089b97d68d6d5328c6fb",
                "line": 12646
              }
            ],
            "author_examples": [
              {
                "path": "test/t_sofa_f.f90",
                "sha256": "152e548f5885a19c10f0c6f612d758df86b754e3b328238a72aa83a57cc69d13"
              }
            ],
            "driver_id": "astro-sky-reference"
          }
        ],
        "numerical_review": {
          "revision": "9d61091d225a1b314ff8170153b06a8691aba283",
          "archive_sha256": "ddbe566788db9e3521bf81e0579ec82ae05c1eb46c5da73383f6f58924b997f0",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "astro-fortran-g2icrs"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "astro-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=astro-fortran",
        "package_revision": "9d61091d225a1b314ff8170153b06a8691aba283",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/astro-fortran.f90",
          "sha256": "52fe6414e51dd37320e2c926c6fcab0b89b5bbde6570217c7d86659bba06d490"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "9d61091d225a1b314ff8170153b06a8691aba283",
        "verified_at": "2026-10-27T22:36:01.378932+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/bspline-fortran",
      "name": "bspline-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "bspline-fortran",
        "url": "https://github.com/jacobwilliams/bspline-fortran"
      },
      "description": "One- to six-dimensional B-spline interpolation.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interpolation"
      ],
      "license": {
        "label": "BSD",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "b-spline",
          "extrapolation",
          "fortran",
          "fortran-package-manager",
          "interpolation",
          "least-squares-curve-fitting",
          "quadrature-integration",
          "splines"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 190,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "b-splines",
          "interpolation",
          "multidimensional",
          "splines"
        ],
        "gams_codes": [
          "E",
          "E1",
          "E1a",
          "E2",
          "E2a"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "047c724451aeee7f883c0d5acba3f7bd22a5de01",
        "procedures": [
          {
            "id": "bspline-fortran-bspline-1d",
            "package_id": "bspline-fortran",
            "revision": "047c724451aeee7f883c0d5acba3f7bd22a5de01",
            "module": "bspline_module",
            "procedure": "bspline_1d%initialize, evaluate",
            "gams_codes": [
              "E1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "One-dimensional B-spline interpolation; order is polynomial degree plus one. The checked driver uses order 2 for shared shape checks and order 4 for cubic/first-derivative reproduction. Higher-dimensional classes retain their separate assignments.",
            "evidence": [
              {
                "path": "src/bspline_oo_module.f90",
                "sha256": "2b1bd0fb16092ccb4bb2bc4cf499249eb19252c888f582123f4c31c8de29772a",
                "line": 63
              }
            ],
            "author_examples": [
              {
                "path": "test/test_oo.f90",
                "sha256": "da44e4cc9de187984e10fade22525403a42847f79056e13dd154572af486afda"
              }
            ],
            "driver_id": "bspline-fortran-shape-interpolation"
          },
          {
            "id": "bspline-fortran-bspline-2d",
            "package_id": "bspline-fortran",
            "revision": "047c724451aeee7f883c0d5acba3f7bd22a5de01",
            "module": "bspline_module",
            "procedure": "bspline_2d%initialize, evaluate",
            "gams_codes": [
              "E2a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Tensor-product two-dimensional interpolation on a rectangular grid. The dedicated E2a driver uses a nonuniform 6-by-5 grid, checks all nodes and 500 cell samples for two surfaces against independent bilinear references. Extrapolation is not checked. Order-4 tensor splines additionally reproduce a bicubic polynomial and its analytic first and mixed partials at 121 query points; higher-order shape preservation is not claimed.",
            "evidence": [
              {
                "path": "src/bspline_oo_module.f90",
                "sha256": "2b1bd0fb16092ccb4bb2bc4cf499249eb19252c888f582123f4c31c8de29772a",
                "line": 87
              },
              {
                "path": "src/bspline_oo_module.f90",
                "sha256": "2b1bd0fb16092ccb4bb2bc4cf499249eb19252c888f582123f4c31c8de29772a",
                "line": 1322
              }
            ],
            "author_examples": [
              {
                "path": "test/test_oo.f90",
                "sha256": "da44e4cc9de187984e10fade22525403a42847f79056e13dd154572af486afda"
              }
            ],
            "driver_id": "bspline-tensor-surface"
          }
        ],
        "numerical_review": {
          "revision": "047c724451aeee7f883c0d5acba3f7bd22a5de01",
          "archive_sha256": "08cb59a93ad6af98bd9ecc97704e2da6fd158df8ff044eb99ff4970b46e7289f",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "bspline-fortran-bspline-1d",
            "bspline-fortran-bspline-2d"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "bspline-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=bspline-fortran",
        "package_revision": "047c724451aeee7f883c0d5acba3f7bd22a5de01",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/bspline-fortran.f90",
          "sha256": "1d975d9374e16f24b444cd4c1825967b49d2f5b94419d0a413cf3fc8c80c776c"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "047c724451aeee7f883c0d5acba3f7bd22a5de01",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/carlson-elliptic-integrals",
      "name": "carlson-elliptic-integrals",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "carlson-elliptic-integrals",
        "url": "https://github.com/jacobwilliams/carlson-elliptic-integrals"
      },
      "description": "Carlson symmetric elliptic integrals for pendulum periods and other applications.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Special functions"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 14,
        "stars_updated_at": "2026-10-28T17:30:42.130830+00:00"
      },
      "curation": {
        "topics": [
          "carlson-symmetric-forms",
          "elliptic-integrals",
          "pendulum",
          "special-functions"
        ],
        "gams_codes": [
          "C",
          "C14"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "5f25a59a555b7029505aac71a8341d5851f8abed",
        "procedures": [
          {
            "id": "carlson-elliptic-integrals-api",
            "package_id": "carlson-elliptic-integrals",
            "revision": "5f25a59a555b7029505aac71a8341d5851f8abed",
            "module": "carlson_elliptic_module",
            "procedure": "drf",
            "gams_codes": [
              "C14"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Carlson symmetric RF evaluated for pendulum periods and checked against independent composite Simpson integration. Dedicated C14 driver checks ten RF values against diagonal identities and two independent Simpson integral forms, plus permutation and homogeneity identities. Positive triples use 2048/4096 panels; four complete elliptic-integral moduli use 4096 panels. Singular/extreme arguments and other Carlson functions are outside the driver.",
            "evidence": [
              {
                "path": "src/carlson_elliptic_module.F90",
                "sha256": "a40da80250354bdbdee8a1eb30ca6a7ea8a6eae2ad0fc2ff9ef4f687c7c6cfa4",
                "line": 580
              }
            ],
            "author_examples": [],
            "driver_id": "carlson-rf-reference"
          }
        ],
        "numerical_review": {
          "revision": "5f25a59a555b7029505aac71a8341d5851f8abed",
          "archive_sha256": "2c3f4faa86b9840b36bf34df04801961c6931acfb750182e76a53aa20b2f31ef",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "carlson-elliptic-integrals-api"
          ],
          "notes": "Carlson symmetric RF evaluated for pendulum periods and checked against independent composite Simpson integration. Source review covers these representative procedures, not an exhaustive API inventory."
        }
      },
      "playground": {
        "package_id": "carlson-elliptic-integrals",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=carlson-elliptic-integrals",
        "package_revision": "5f25a59a555b7029505aac71a8341d5851f8abed",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/carlson-elliptic-integrals.f90",
          "sha256": "902bedb25b56cb11a72d91f9bdcfad4301a662b34c177f0d6093b602256a6c49"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5f25a59a555b7029505aac71a8341d5851f8abed",
        "verified_at": "2026-10-28T17:33:40.068326+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/conmax",
      "name": "conmax",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "conmax",
        "url": "https://github.com/jacobwilliams/conmax"
      },
      "description": "Linear, quadratic and constrained minimax optimization routines.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "conmax",
          "constrained-optimization",
          "fortran",
          "fortran-package-manager",
          "nonlinear-optimization",
          "numerical-optimization",
          "optimization"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "constrained-optimization",
          "linear-programming",
          "minimax",
          "optimization",
          "quadratic-programming"
        ],
        "gams_codes": [
          "G",
          "G2",
          "G2a",
          "K",
          "K2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "ab7f237d30f94f7d13b86997e0c49f3d67bd7c54",
        "procedures": [
          {
            "id": "conmax-slnpro",
            "package_id": "conmax",
            "revision": "ab7f237d30f94f7d13b86997e0c49f3d67bd7c54",
            "module": "conmax_module",
            "procedure": "slnpro",
            "gams_codes": [
              "G2a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Linear-programming entry point; constrained minimax routines are separate. Dedicated G2a driver checks three scaled free-variable LPs maximizing -y under x+y>=a, x-y<=b. Known intersections, primal feasibility, solver-reported objective and a nonnegative analytical dual certificate are checked. Infeasibility, unboundedness and general LP robustness are not tested.",
            "evidence": [
              {
                "path": "src/conmax.f90",
                "sha256": "533352fcb0bad345e3a1ab970fefec5f889fd844f4e7625f2f844e4d8f192dca",
                "line": 1912
              }
            ],
            "author_examples": [
              {
                "path": "test/lp.f90",
                "sha256": "ab5685c0f1334e4ba68ac41918b7bd64f61661fc338e32c7f3e729a58caf4893"
              }
            ],
            "driver_id": "conmax-linear-program-certificate"
          }
        ],
        "numerical_review": {
          "revision": "ab7f237d30f94f7d13b86997e0c49f3d67bd7c54",
          "archive_sha256": "f31c31ad41d37957f9794248ac4d0416ec3455fe9d27d9a5d7cb4cadff340580",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "conmax-slnpro"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "conmax",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=conmax",
        "package_revision": "ab7f237d30f94f7d13b86997e0c49f3d67bd7c54",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/conmax.f90",
          "sha256": "6c6109970a1e4b918453bbdfb6c3e6a816b67903b7496644efe21e9e767a71d6"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "ab7f237d30f94f7d13b86997e0c49f3d67bd7c54",
        "verified_at": "2026-10-28T01:33:45.255776+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/conmin",
      "name": "conmin",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "conmin",
        "url": "https://github.com/jacobwilliams/conmin"
      },
      "description": "Constrained nonlinear minimization using feasible directions and reverse communication.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "BSD-3-Clause (modernization); public-domain original",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "conmin",
          "constrained-optimization",
          "fortran",
          "fortran-package-manager",
          "numerical-optimization",
          "optimization"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 7,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "constrained-optimization",
          "nonlinear-optimization",
          "optimization",
          "reverse-communication"
        ],
        "gams_codes": [
          "G",
          "G2",
          "G2h",
          "G2h3",
          "G2h3b",
          "G2h3b1",
          "G2h3b1b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "201f3b29f023baf7bef13ad8f49b906ffb1c7757",
        "procedures": [
          {
            "id": "conmin-conmin-class",
            "package_id": "conmin",
            "revision": "201f3b29f023baf7bef13ad8f49b906ffb1c7757",
            "module": "conmin_module",
            "procedure": "conmin_class%solve",
            "gams_codes": [
              "G2h3b1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "configured objective/constraint gradients or internal differences",
            "notes": "Feasible-directions constrained optimization; analytic-gradient configuration only for this detailed class. Detailed analytic classification requires NFDG=1; NFDG=0 estimates all gradients.",
            "evidence": [
              {
                "path": "src/conmin.F90",
                "sha256": "c15c117b0afcd10355f7abf8c9d3e123edc5d3a8fed8a94f90de6ec8c21214a0",
                "line": 46
              },
              {
                "path": "src/conmin.F90",
                "sha256": "c15c117b0afcd10355f7abf8c9d3e123edc5d3a8fed8a94f90de6ec8c21214a0",
                "line": 160
              }
            ],
            "author_examples": [
              {
                "path": "test/TP37.f90",
                "sha256": "516506566d0a246976e2114f641833a3fac8da964d84674aae6dd5f0e83b2d18"
              }
            ],
            "driver_id": "conmin-ball-reference"
          }
        ],
        "numerical_review": {
          "revision": "201f3b29f023baf7bef13ad8f49b906ffb1c7757",
          "archive_sha256": "d5c83d31bd415152a05f11c70eb4ec2058df319048bdef6589bda8c20147e6ff",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "conmin-conmin-class"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "conmin",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=conmin",
        "package_revision": "201f3b29f023baf7bef13ad8f49b906ffb1c7757",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/conmin.f90",
          "sha256": "1a667c58aa19fee029b5107d153c55ebafe65aaf560f9155a844732bbe8b3706"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "201f3b29f023baf7bef13ad8f49b906ffb1c7757",
        "verified_at": "2026-10-28T00:46:44.377165+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/csv-fortran",
      "name": "csv-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "csv-fortran",
        "url": "https://github.com/jacobwilliams/csv-fortran"
      },
      "description": "Read and write CSV files with typed columns.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "csv",
          "fortran",
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 123,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "csv",
          "file-io",
          "serialization",
          "tabular-data"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "7c6c04a3df1c44083ba1a2a0a96d2c0ff18ebef2"
      },
      "playground": {
        "package_id": "csv-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=csv-fortran",
        "package_revision": "7c6c04a3df1c44083ba1a2a0a96d2c0ff18ebef2",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/csv-fortran.f90",
          "sha256": "fc9b5cf13bcabc1a568c5ad977708312ec7bcb73579247d0d4071829bd1d5b9d"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "7c6c04a3df1c44083ba1a2a0a96d2c0ff18ebef2",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/daglib",
      "name": "daglib",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "daglib",
        "url": "https://github.com/jacobwilliams/daglib"
      },
      "description": "Directed acyclic graphs and topological ordering of dependencies.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "directed-acyclic-graph",
          "fortran",
          "fortran-package-manager",
          "graphviz",
          "graphviz-dot-language",
          "toposort"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 28,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "dependency-ordering",
          "directed-acyclic-graphs",
          "graphs",
          "topological-sort"
        ],
        "gams_codes": [
          "N",
          "N4",
          "P"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "68fa83ebfd33fd6521327918b1d8e5084250a8ff",
        "procedures": [
          {
            "id": "daglib-toposort",
            "package_id": "daglib",
            "revision": "68fa83ebfd33fd6521327918b1d8e5084250a8ff",
            "module": "dag_module",
            "procedure": "dag%toposort",
            "gams_codes": [
              "P"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Topological ordering of a directed acyclic graph; retain broad computational-geometry/graph-algorithm class.",
            "evidence": [
              {
                "path": "src/dag_module.F90",
                "sha256": "5795942a4dc3d495dde47b78dd8367948821d277187ed13092b4650043157ae3",
                "line": 85
              }
            ],
            "author_examples": [
              {
                "path": "test/dag_example.f90",
                "sha256": "01aecbe9c9b33ab2ae2b86fc3c69afaa4fc837ae09653b988abe610b406bdf02"
              }
            ],
            "driver_id": "daglib-order-reference"
          }
        ],
        "numerical_review": {
          "revision": "68fa83ebfd33fd6521327918b1d8e5084250a8ff",
          "archive_sha256": "914c562ceb1ae8bad0487aecb437d8c5181159faa02af061a2eb7c69484113a6",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "daglib-toposort"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "daglib",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=daglib",
        "package_revision": "68fa83ebfd33fd6521327918b1d8e5084250a8ff",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/daglib.f90",
          "sha256": "5ae1a2418d6e95e68e4724f1ad2f31804b0e4d5a36c2afd135ade22dff572e40"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "68fa83ebfd33fd6521327918b1d8e5084250a8ff",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/ddeabm",
      "name": "ddeabm",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "ddeabm",
        "url": "https://github.com/jacobwilliams/ddeabm"
      },
      "description": "Adaptive Adams-Bashforth-Moulton ODE integration with event finding.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "adams-bashforth",
          "fortran",
          "fortran-package-manager",
          "ode",
          "root-finding",
          "slatec"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 41,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "adams-methods",
          "adaptive-methods",
          "event-detection",
          "initial-value-problems",
          "ode"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I1a",
          "I1a1",
          "I1a1b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "dba70c8c65388638662df2694339c5ba7feaf12a",
        "procedures": [
          {
            "id": "ddeabm-ddeabm-class",
            "package_id": "ddeabm",
            "revision": "dba70c8c65388638662df2694339c5ba7feaf12a",
            "module": "ddeabm_module",
            "procedure": "ddeabm_class%integrate",
            "gams_codes": [
              "I1a1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "right-hand side only",
            "notes": "Adams-Bashforth-Moulton multistep initial-value integration for nonstiff problems.",
            "evidence": [
              {
                "path": "src/ddeabm_module.F90",
                "sha256": "d2a2492a5bf5c2c7bb4d91752b8d4dd684a985342087cf21b745f79cc9025d95",
                "line": 60
              }
            ],
            "author_examples": [
              {
                "path": "test/ddeabm_test.f90",
                "sha256": "dff53627d9fd4827c9a204203d3083578e52678adb1cb1fee11601e30fddc16d"
              }
            ],
            "driver_id": "ddeabm-decay-oscillator"
          }
        ],
        "numerical_review": {
          "revision": "dba70c8c65388638662df2694339c5ba7feaf12a",
          "archive_sha256": "b8e5c3dcd67d8ed7183803cc56388e7cf696b1be5383bab381bd42778c1ad92b",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "ddeabm-ddeabm-class"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "ddeabm",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ddeabm",
        "package_revision": "dba70c8c65388638662df2694339c5ba7feaf12a",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ddeabm.f90",
          "sha256": "9111e39a3872639e9dfaf77cb406dfb72b2d0618cd992dbb0a66a0b8b01c34f5"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "dba70c8c65388638662df2694339c5ba7feaf12a",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": [
          {
            "id": "github:jacobwilliams/roots-fortran",
            "repository": "jacobwilliams/roots-fortran",
            "revision": "d1b45284cb3a6a2303638910452e20206f213084"
          }
        ]
      }
    },
    {
      "id": "github:jacobwilliams/dop853",
      "name": "dop853",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "dop853",
        "url": "https://github.com/jacobwilliams/dop853"
      },
      "description": "Adaptive eighth-order Runge-Kutta integration of ordinary differential equations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "BSD",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "dop853",
          "fortran",
          "fortran-package-manager",
          "ode",
          "runge-kutta"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 57,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "adaptive-methods",
          "initial-value-problems",
          "ode",
          "runge-kutta"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I1a",
          "I1a1",
          "I1a1a"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "1e9d0dbf4dcbc692ca557c0467629112dd1f0ce6",
        "procedures": [
          {
            "id": "dop853-dop853-class",
            "package_id": "dop853",
            "revision": "1e9d0dbf4dcbc692ca557c0467629112dd1f0ce6",
            "module": "dop853_module",
            "procedure": "dop853_class%integrate",
            "gams_codes": [
              "I1a1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "right-hand side only",
            "notes": "Explicit eighth-order one-step Runge-Kutta initial-value integration; not a stiff solver.",
            "evidence": [
              {
                "path": "src/dop853_module.F90",
                "sha256": "ca33da0a609e8ddf7aea4bbc312d958935428d5389187e9d92a7d3f73b1b9321",
                "line": 204
              }
            ],
            "author_examples": [
              {
                "path": "test/dop853_test.f90",
                "sha256": "535b26a36faabfa3427838114966be27fab19a0ccce739bd28ef20f522c7ca69"
              }
            ],
            "driver_id": "dop853-decay-oscillator"
          }
        ],
        "numerical_review": {
          "revision": "1e9d0dbf4dcbc692ca557c0467629112dd1f0ce6",
          "archive_sha256": "79f073b1502f9cc7bae134f926cd6a492aa62aad3d99db0ee9a488308304828b",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "dop853-dop853-class"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "dop853",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dop853",
        "package_revision": "1e9d0dbf4dcbc692ca557c0467629112dd1f0ce6",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/dop853.f90",
          "sha256": "dab90f237637ce5e97cd0cd14c40aa0682de13fd5535eebb1203fa51da6b88dd"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "1e9d0dbf4dcbc692ca557c0467629112dd1f0ce6",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/dvode",
      "name": "dvode",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "dvode",
        "url": "https://github.com/jacobwilliams/dvode"
      },
      "description": "Variable-coefficient multistep ODE solver for stiff and nonstiff systems.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "adams-bashforth",
          "fortran",
          "fortran-package-manager",
          "ode",
          "vode"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 10,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "initial-value-problems",
          "multistep-methods",
          "ode",
          "stiff-equations"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I1a",
          "I1a2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "59d2eedd1410a4bd6c196c24d08f95a7c20565c0",
        "procedures": [
          {
            "id": "dvode-dvode-t",
            "package_id": "dvode",
            "revision": "59d2eedd1410a4bd6c196c24d08f95a7c20565c0",
            "module": "dvode_module",
            "procedure": "dvode_t%solve (BDF mode)",
            "gams_codes": [
              "I1a2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "optional user Jacobian; finite-difference fallback",
            "notes": "Stiff BDF configuration; the package also offers a nonstiff Adams configuration. The checked I1a2 driver solves the shared autonomous system y1'= -1000*y1+999*y2, y2'= -y2 from [2,1], checking exact exponential modes at four output times. Only this stiff ODE configuration is verified; no DAE capability or general stiff-problem accuracy is established.",
            "evidence": [
              {
                "path": "src/dvode_module.F90",
                "sha256": "b7eb8a828f2141ff513ab863a18b634f6c091b05236e6f2fb505140906e1b8fc",
                "line": 251
              }
            ],
            "author_examples": [
              {
                "path": "test/dvdemo.f90",
                "sha256": "f50f4d66c914ec6722b7d7c8dcbe28afea887ffd0abd5e43a12c9303bbc4794b"
              }
            ],
            "driver_id": "dvode-stiff-two-scale"
          }
        ],
        "numerical_review": {
          "revision": "59d2eedd1410a4bd6c196c24d08f95a7c20565c0",
          "archive_sha256": "184807fd631421b32692c7ee37613bea78443f274a8d38954736f13c7c7246d3",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "dvode-dvode-t"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "dvode",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dvode",
        "package_revision": "59d2eedd1410a4bd6c196c24d08f95a7c20565c0",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/dvode.f90",
          "sha256": "8119e67c9c3fd21bef885755de3f18471ced4bf33b29ad1b6b8f6231eee94dc6"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "59d2eedd1410a4bd6c196c24d08f95a7c20565c0",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/finterp",
      "name": "finterp",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "finterp",
        "url": "https://github.com/jacobwilliams/finterp"
      },
      "description": "Multidimensional linear and nearest-neighbor interpolation.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interpolation"
      ],
      "license": {
        "label": "BSD",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "interpolation",
          "linear-interpolation",
          "nearest-neighbor-interpolation"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 59,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "grids",
          "interpolation",
          "multidimensional",
          "nearest-neighbors"
        ],
        "gams_codes": [
          "E",
          "E1",
          "E1a",
          "E2",
          "E2a"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "95aaceaf86f5d4d49328b783c5dff9b006b0bfc9",
        "procedures": [
          {
            "id": "finterp-linear-interp-1d",
            "package_id": "finterp",
            "revision": "95aaceaf86f5d4d49328b783c5dff9b006b0bfc9",
            "module": "linear_interpolation_module",
            "procedure": "linear_interp_1d%evaluate",
            "gams_codes": [
              "E1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "One-dimensional piecewise linear interpolation; multidimensional types are separate APIs.",
            "evidence": [
              {
                "path": "src/linear_interpolation_module.F90",
                "sha256": "ce7c98c39bacbf0b72e5c5c0c9a6e4e55b0bec297b105974263e3554eb038238",
                "line": 67
              }
            ],
            "author_examples": [
              {
                "path": "test/test.f90",
                "sha256": "2ba3595858555dd5239c1e0b2364d8d135cb400468c232457fd80f5fe04e64d8"
              }
            ],
            "driver_id": "finterp-shape-interpolation"
          },
          {
            "id": "finterp-linear-interp-2d",
            "package_id": "finterp",
            "revision": "95aaceaf86f5d4d49328b783c5dff9b006b0bfc9",
            "module": "linear_interpolation_module",
            "procedure": "linear_interp_2d%evaluate",
            "gams_codes": [
              "E2a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Two-dimensional multilinear interpolation on a rectilinear grid. The dedicated E2a driver uses a nonuniform 6-by-5 grid, checks all nodes and 500 cell samples for two surfaces against independent bilinear references. Extrapolation is not checked.",
            "evidence": [
              {
                "path": "src/linear_interpolation_module.F90",
                "sha256": "ce7c98c39bacbf0b72e5c5c0c9a6e4e55b0bec297b105974263e3554eb038238",
                "line": 81
              },
              {
                "path": "src/linear_interpolation_module.F90",
                "sha256": "ce7c98c39bacbf0b72e5c5c0c9a6e4e55b0bec297b105974263e3554eb038238",
                "line": 764
              }
            ],
            "author_examples": [
              {
                "path": "test/test.f90",
                "sha256": "2ba3595858555dd5239c1e0b2364d8d135cb400468c232457fd80f5fe04e64d8"
              }
            ],
            "driver_id": "finterp-bilinear-surface"
          }
        ],
        "numerical_review": {
          "revision": "95aaceaf86f5d4d49328b783c5dff9b006b0bfc9",
          "archive_sha256": "22e8a4ddd74b62f06606107703579db2d04d55f0df70d3d31b43b8c380b10244",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "finterp-linear-interp-1d",
            "finterp-linear-interp-2d"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "finterp",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=finterp",
        "package_revision": "95aaceaf86f5d4d49328b783c5dff9b006b0bfc9",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/finterp.f90",
          "sha256": "9281b42993ac1ca33ca107a94a5dde5c7144151d26595766baaa0b166700d3d2"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "95aaceaf86f5d4d49328b783c5dff9b006b0bfc9",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/flist",
      "name": "flist",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "flist",
        "url": "https://github.com/jacobwilliams/flist"
      },
      "description": "Linked lists storing values of different types under named keys.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "linked-list"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 36,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "dictionaries",
          "linked-lists",
          "polymorphism"
        ],
        "gams_codes": [
          "N",
          "N4",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "84ced24bccf894921a36ccc56721e53420c744c4"
      },
      "playground": {
        "package_id": "flist",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=flist",
        "package_revision": "84ced24bccf894921a36ccc56721e53420c744c4",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/flist.f90",
          "sha256": "b27870bafbe5562d5d48a7d8dddba4df102f35fff782f9de7c15e914cfcffd25"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "84ced24bccf894921a36ccc56721e53420c744c4",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/fmin",
      "name": "fmin",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "fmin",
        "url": "https://github.com/jacobwilliams/fmin"
      },
      "description": "Derivative-free minimization of a scalar function on an interval.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "brent",
          "fortran-package-manager",
          "minimization"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 8,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "derivative-free",
          "minimization",
          "optimization",
          "scalar-functions"
        ],
        "gams_codes": [
          "G",
          "G1",
          "G1a",
          "G1a1",
          "G1a1a"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "G1 denotes scalar minimization using a finite search interval; it does not claim support for general nonlinear constraints.",
        "reviewed_revision": "3d094fba0e9b98d132414f8442c7c76d32da1d30",
        "procedures": [
          {
            "id": "fmin-scalar",
            "package_id": "fmin",
            "revision": "3d094fba0e9b98d132414f8442c7c76d32da1d30",
            "module": "fmin_module",
            "procedure": "fmin",
            "gams_codes": [
              "G1a1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Search interval brackets a scalar minimizer; this is not a general constraint solver.",
            "evidence": [
              {
                "path": "src/fmin_module.f90",
                "line": 94,
                "sha256": "d63cd59c63c3be05d2f73bdacbf53acef42a70ecef893da770b6a3d087d32182"
              }
            ],
            "author_examples": [
              {
                "path": "test/test.f90",
                "sha256": "91e05165572abedfe90111e743b6a1403087130a53bed64d6eab4d973b29c7dd"
              }
            ],
            "driver_id": "fmin-sine"
          }
        ],
        "numerical_review": {
          "revision": "3d094fba0e9b98d132414f8442c7c76d32da1d30",
          "archive_sha256": "ea895586cc9219dcdf4270a301a02ea2fa7154cea29318f7520cd58cbc4f0e27",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fmin-scalar"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fmin",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fmin",
        "package_revision": "3d094fba0e9b98d132414f8442c7c76d32da1d30",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fmin.f90",
          "sha256": "767de3e53db2c970d38866039afdd3d3cbfc79bf7ca369eba6829fdcec598910"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "3d094fba0e9b98d132414f8442c7c76d32da1d30",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/fortran-astrodynamics-toolkit",
      "name": "fortran-astrodynamics-toolkit",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "Fortran-Astrodynamics-Toolkit",
        "url": "https://github.com/jacobwilliams/Fortran-Astrodynamics-Toolkit"
      },
      "description": "Orbital mechanics, coordinate transformations, and spacecraft trajectory tools.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Astronomy and orbits"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "astrodynamics",
          "ephemeris",
          "fortran",
          "fortran-package-manager",
          "gravity-field",
          "orbital-mechanics",
          "orbital-simulation",
          "runge-kutta",
          "runge-kutta-adaptive-step-size"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 212,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "astrodynamics",
          "coordinate-transformations",
          "orbital-mechanics",
          "spacecraft-trajectories"
        ],
        "gams_codes": [
          "P",
          "Z"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "3cf0a0a8ba2abf8bc4995c6da5b6abae07b45a0a",
        "procedures": [
          {
            "id": "fortran-astrodynamics-toolkit-orbital-elements-to-rv",
            "package_id": "fortran-astrodynamics-toolkit",
            "revision": "3cf0a0a8ba2abf8bc4995c6da5b6abae07b45a0a",
            "module": "fortran_astrodynamics_toolkit",
            "procedure": "orbital_elements_to_rv",
            "gams_codes": [
              "P"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Orbital-element to Cartesian state transformation; no detailed GAMS astronomy branch.",
            "evidence": [
              {
                "path": "src/orbital_mechanics_module.f90",
                "sha256": "1719bc28b855b52c84469d58212c4abae1adb48df048af921d012f1ce0bdd3b7",
                "line": 90
              }
            ],
            "author_examples": [
              {
                "path": "test/elements_test.f90",
                "sha256": "6e07d19804e2b92f6264f2acd909867877b2bfa5fb70ece9a21b91a0ce977b4a"
              }
            ],
            "driver_id": "fat-orbit-reference"
          }
        ],
        "numerical_review": {
          "revision": "3cf0a0a8ba2abf8bc4995c6da5b6abae07b45a0a",
          "archive_sha256": "14f756464ce125fae2aef47481996915d87d62b54a65b24ee0a8bed75857ac6f",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortran-astrodynamics-toolkit-orbital-elements-to-rv"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fortran-astrodynamics-toolkit",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-astrodynamics-toolkit",
        "package_revision": "3cf0a0a8ba2abf8bc4995c6da5b6abae07b45a0a",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-astrodynamics-toolkit.f90",
          "sha256": "934862b34490767b65250c2cdac28a91b951574f107c2d98309ff03bee325395"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "3cf0a0a8ba2abf8bc4995c6da5b6abae07b45a0a",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/fortran-search-and-sort",
      "name": "fortran-search-and-sort",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "fortran-search-and-sort",
        "url": "https://github.com/jacobwilliams/fortran-search-and-sort"
      },
      "description": "Generic sorting, searching, and duplicate removal for arrays.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Strings and sorting"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "binary-search",
          "fortran",
          "quicksort",
          "searching-algorithms",
          "sorting-algorithms"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 24,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "searching",
          "sorting",
          "unique-values"
        ],
        "gams_codes": [
          "N",
          "N5",
          "N6"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "f5a62cece0291ee553b1354bc22de28bbc134478"
      },
      "playground": {
        "package_id": "fortran-search-and-sort",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-search-and-sort",
        "package_revision": "f5a62cece0291ee553b1354bc22de28bbc134478",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-search-and-sort.f90",
          "sha256": "f89ec5d7342ef5683198abc7a5bfa42889cd443a1927b071872af902165cda07"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f5a62cece0291ee553b1354bc22de28bbc134478",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/fortran_function_parser",
      "name": "fortran_function_parser",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "fortran_function_parser",
        "url": "https://github.com/jacobwilliams/fortran_function_parser"
      },
      "description": "Parse and evaluate mathematical expressions supplied as strings.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Expression parsing"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "expression-parser",
          "fortran",
          "function-parser"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 35,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "expression-parsing",
          "mathematical-expressions",
          "parsing"
        ],
        "gams_codes": [
          "C",
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "N3 covers expression text processing. C remains broad; this review does not inventory each supported mathematical function.",
        "reviewed_revision": "4c977c925506bea3fb1ee44aac08114c5fa68a71",
        "procedures": [
          {
            "id": "fortran-function-parser-evaluate",
            "package_id": "fortran_function_parser",
            "revision": "4c977c925506bea3fb1ee44aac08114c5fa68a71",
            "module": "function_parser",
            "procedure": "fparser%evaluate",
            "gams_codes": [
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Numeric expression evaluation, not a symbolic algebra engine or nonlinear solver.",
            "evidence": [
              {
                "path": "src/function_parser.F90",
                "sha256": "e66c9eeb438265c3a3137236036120965ea50d079004e2150c278108a2c56202",
                "line": 240
              }
            ],
            "author_examples": [
              {
                "path": "test/tests.f90",
                "sha256": "f0b2679fadaf5c3cb4911bf8819bbd3404bed0947299cee686820dca7b9c74ef"
              }
            ],
            "driver_id": "function-parser-identities"
          }
        ],
        "numerical_review": {
          "revision": "4c977c925506bea3fb1ee44aac08114c5fa68a71",
          "archive_sha256": "88a21855bfa2002d480468c73c72f971dd1ab01caf8c23828a390bc1b3691a36",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortran-function-parser-evaluate"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fortran_function_parser",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran_function_parser",
        "package_revision": "4c977c925506bea3fb1ee44aac08114c5fa68a71",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran_function_parser.f90",
          "sha256": "064649d549884d8e3c2c3cfa4b527ceb0acd07d964f454873c8578078c55abac"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "4c977c925506bea3fb1ee44aac08114c5fa68a71",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/geodesic-fortran",
      "name": "geodesic-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "geodesic-fortran",
        "url": "https://github.com/jacobwilliams/geodesic-fortran"
      },
      "description": "Distances, bearings and geodetic coordinate transformations on spheres and ellipsoids.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Geodesy"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "geodesy",
          "geodetic-computations",
          "vincenty-direct",
          "vincenty-formula",
          "vincenty-inverse"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 12,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "coordinate-transformations",
          "distances",
          "ellipsoids",
          "geodesics",
          "geodesy"
        ],
        "gams_codes": [
          "P"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "b16eaf6622baabee7dfb75b99b78e42eaa878440",
        "procedures": [
          {
            "id": "geodesic-fortran-inverse",
            "package_id": "geodesic-fortran",
            "revision": "b16eaf6622baabee7dfb75b99b78e42eaa878440",
            "module": "geodesic_module",
            "procedure": "inverse, direct",
            "gams_codes": [
              "P"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Checked direct and inverse geodesics on a sphere and WGS84 equatorial/meridional paths, using independent haversine distances/bearings, exact equatorial arcs and refined meridional curvature quadrature. Direct inputs are independent references, not inverse outputs. General ellipsoidal paths and antipodal degeneracies remain unverified; P has no finer published children.",
            "evidence": [
              {
                "path": "src/geodesic_module.F90",
                "sha256": "147ba7ca6af754b10be54d10e96e051f1190d83c41cba408c491f2283a2e03d0",
                "line": 556
              }
            ],
            "author_examples": [
              {
                "path": "test/direct_inverse_test.f90",
                "sha256": "cdd346b924df45011e0f78aa866c466538d80fbd2045c37d3dbe84f698e2cc2e"
              }
            ],
            "driver_id": "geodesic-reference"
          }
        ],
        "numerical_review": {
          "revision": "b16eaf6622baabee7dfb75b99b78e42eaa878440",
          "archive_sha256": "21dc2d3c0e22fa61a211c6f2013161d5a43f9b6c9415979bada1aef0513552be",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "geodesic-fortran-inverse"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "geodesic-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=geodesic-fortran",
        "package_revision": "b16eaf6622baabee7dfb75b99b78e42eaa878440",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/geodesic-fortran.f90",
          "sha256": "ac90afaca96eb1c208041d97b66e4d3d92064bbc89d5da28d5d685134698fec0"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b16eaf6622baabee7dfb75b99b78e42eaa878440",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/json-fortran",
      "name": "json-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "json-fortran",
        "url": "https://github.com/jacobwilliams/json-fortran"
      },
      "description": "Read, write, and manipulate JSON documents.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "BSD",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "json"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 384,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "file-io",
          "json",
          "serialization"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "d9ed2e4ee53745f4ed98d7536e17bee5198aa3b0"
      },
      "playground": {
        "package_id": "json-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=json-fortran",
        "package_revision": "d9ed2e4ee53745f4ed98d7536e17bee5198aa3b0",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/json-fortran.f90",
          "sha256": "88ebfa11741e99ef4c64f912d15255f79fe1c6bd0892235d6c5143fd03661ac0"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d9ed2e4ee53745f4ed98d7536e17bee5198aa3b0",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/kronrod",
      "name": "kronrod",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "kronrod",
        "url": "https://github.com/jacobwilliams/kronrod"
      },
      "description": "Generate Gauss-Kronrod quadrature nodes and weights using arbitrary precision.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Quadrature"
      ],
      "license": {
        "label": "LGPL-2.1",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "gauss-kronrod",
          "gauss-kronrod-quadrature",
          "quadpack"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-29T01:11:46.981596+00:00"
      },
      "curation": {
        "topics": [
          "arbitrary-precision",
          "gauss-kronrod",
          "quadrature",
          "quadrature-rules"
        ],
        "gams_codes": [
          "H",
          "H2",
          "H2c"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Gauss-Kronrod quadrature-rule generation. A checksum-guarded adapter exposes the original internal procedures as module playground_kronrod, removes the large driver loop and declares app as the library directory; The consumer uses the wrapped module instead of running the original batch drivers. Procedure bodies, constants and precision settings are unchanged. The main generates the symmetric 7-point rule, checks six even polynomial integrals through degree 10 at 40-decimal-place tolerance with MPFUN arithmetic, and prints double-precision summaries. Only the unchanged MPFUN dependency is shared. This is a rule generator, not an adaptive integrator or full validation of every rule/order.",
        "reviewed_revision": "312278846b6e403fdea410a823d88ef4fb92a3cc",
        "procedures": [
          {
            "id": "kronrod-rule",
            "package_id": "kronrod",
            "revision": "312278846b6e403fdea410a823d88ef4fb92a3cc",
            "module": "playground_kronrod (catalog wrapper)",
            "procedure": "kronrod",
            "gams_codes": [
              "H2c"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Gauss-Kronrod quadrature-rule generation. A checksum-guarded adapter exposes the original internal procedures as module playground_kronrod, removes the large driver loop and declares app as the library directory; The consumer uses the wrapped module instead of running the original batch drivers. Procedure bodies, constants and precision settings are unchanged. The main generates the symmetric 7-point rule, checks six even polynomial integrals through degree 10 at 40-decimal-place tolerance with MPFUN arithmetic, and prints double-precision summaries. Only the unchanged MPFUN dependency is shared. This is a rule generator, not an adaptive integrator or full validation of every rule/order.",
            "evidence": [
              {
                "path": "app/main.f90",
                "sha256": "979e08f29ea88ca0b2d8399e9975279698790d938a0caedcf35fd3214864cce7",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "app/main.f90",
                "sha256": "979e08f29ea88ca0b2d8399e9975279698790d938a0caedcf35fd3214864cce7"
              }
            ],
            "driver_id": "kronrod-moments-reference"
          }
        ],
        "numerical_review": {
          "revision": "312278846b6e403fdea410a823d88ef4fb92a3cc",
          "archive_sha256": "f53b75081ca184120e6594ee2649abb402a5e0c45ca40d391b0b7292eff780ea",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "kronrod-rule"
          ],
          "notes": "Gauss-Kronrod quadrature-rule generation. A checksum-guarded adapter exposes the original internal procedures as module playground_kronrod, removes the large driver loop and declares app as the library directory; The consumer uses the wrapped module instead of running the original batch drivers. Procedure bodies, constants and precision settings are unchanged. The main generates the symmetric 7-point rule, checks six even polynomial integrals through degree 10 at 40-decimal-place tolerance with MPFUN arithmetic, and prints double-precision summaries. Only the unchanged MPFUN dependency is shared. This is a rule generator, not an adaptive integrator or full validation of every rule/order."
        }
      },
      "playground": {
        "package_id": "kronrod",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=kronrod",
        "package_revision": "312278846b6e403fdea410a823d88ef4fb92a3cc",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/kronrod.f90",
          "sha256": "bafd03bd2eef8a6ac7e8d60909ba717788ab9372c96624678a9666b8199611f9"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "312278846b6e403fdea410a823d88ef4fb92a3cc",
        "verified_at": "2026-10-29T01:33:12.542944+00:00",
        "packages": [
          {
            "id": "github:jacobwilliams/mpfun2020-var1",
            "repository": "jacobwilliams/mpfun2020-var1",
            "revision": "f2191ad80d811cd5e309d83ffad9b2607d27aabc"
          }
        ]
      }
    },
    {
      "id": "github:jacobwilliams/lbfgsb",
      "name": "lbfgsb",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "lbfgsb",
        "url": "https://github.com/jacobwilliams/lbfgsb"
      },
      "description": "Limited-memory quasi-Newton optimization with variable bounds.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "bfgs",
          "bfgs-algorithm",
          "constrained-optimization",
          "fortran",
          "fortran-package-manager",
          "lbfgsb",
          "lbfgsb-solver",
          "numerical-optimization"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 14,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "bound-constraints",
          "limited-memory",
          "optimization",
          "quasi-newton"
        ],
        "gams_codes": [
          "G",
          "G2",
          "G2h",
          "G2h1",
          "G2h1a",
          "G2h1a2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "ce1a9322016d6f31b652393e000a914b63af6fef",
        "procedures": [
          {
            "id": "lbfgsb-setulb",
            "package_id": "lbfgsb",
            "revision": "ce1a9322016d6f31b652393e000a914b63af6fef",
            "module": "lbfgsb_module",
            "procedure": "setulb",
            "gams_codes": [
              "G2h1a2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "user gradient via reverse communication",
            "notes": "Smooth bound-constrained minimization with limited-memory BFGS.",
            "evidence": [
              {
                "path": "src/lbfgsb.f90",
                "sha256": "8562cf29648293f653355e2ebbbab58559b60bce4ad976076e48ebe73a23981e",
                "line": 88
              }
            ],
            "author_examples": [
              {
                "path": "test/driver1.f90",
                "sha256": "edd8557304689516d90ca2e4f6befcaa4144586436d7e8027f0b194b09dc5e41"
              }
            ],
            "driver_id": "lbfgsb-box-quadratic"
          }
        ],
        "numerical_review": {
          "revision": "ce1a9322016d6f31b652393e000a914b63af6fef",
          "archive_sha256": "2be49cea9582c8766d328d3ec4d16542f397ed3095ab425adf687f7bc5c4de88",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "lbfgsb-setulb"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "lbfgsb",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lbfgsb",
        "package_revision": "ce1a9322016d6f31b652393e000a914b63af6fef",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/lbfgsb.f90",
          "sha256": "96872b902f9eb664df381874b9ded3fa8e990194756ca6ea344edd52de04b382"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "ce1a9322016d6f31b652393e000a914b63af6fef",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/lsmr",
      "name": "lsmr",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "LSMR",
        "url": "https://github.com/jacobwilliams/LSMR"
      },
      "description": "Iterative solution of sparse linear equations and least-squares problems.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "least-squares",
          "linear-algebra",
          "linear-equations",
          "lsmr",
          "sparse-linear-systems"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 8,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "iterative-solvers",
          "least-squares",
          "linear-algebra",
          "linear-systems",
          "sparse-matrices"
        ],
        "gams_codes": [
          "D",
          "D2",
          "D9",
          "D9a",
          "D9a1",
          "K",
          "K1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "12611e2299c5188441b097437695a66c85369e76",
        "procedures": [
          {
            "id": "lsmr-lsmr",
            "package_id": "lsmr",
            "revision": "12611e2299c5188441b097437695a66c85369e76",
            "module": "lsmrModule",
            "procedure": "lsmr",
            "gams_codes": [
              "D9a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Iterative least squares with forward and transpose matrix-product callbacks.",
            "evidence": [
              {
                "path": "src/lsmrModule.f90",
                "sha256": "6a1cb9be406e8e1a62350468a3b355509ca3240bc06543038ae6452a2dd9aeda",
                "line": 175
              }
            ],
            "author_examples": [
              {
                "path": "test/lsmrTestModule.f90",
                "sha256": "c0900f8ef4b781b0d27ac7b2e5896a0a6043d629638e541f2b8dfed336d63a09"
              }
            ],
            "driver_id": "lsmr-least-squares-reference"
          }
        ],
        "numerical_review": {
          "revision": "12611e2299c5188441b097437695a66c85369e76",
          "archive_sha256": "62fb8a51e5024e2dc6dfe2db0d18a3e336ba1a6008c901a37a1da300eb215a6b",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "lsmr-lsmr"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "lsmr",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lsmr",
        "package_revision": "12611e2299c5188441b097437695a66c85369e76",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/lsmr.f90",
          "sha256": "acb7b4670c7469aa12099b8b7a8a12520ffc614021ccf6648f1c7925d2a78e6d"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "12611e2299c5188441b097437695a66c85369e76",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/lsqr",
      "name": "lsqr",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "LSQR",
        "url": "https://github.com/jacobwilliams/LSQR"
      },
      "description": "Iterative sparse linear systems and least-squares solver using coordinate storage.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "conjugate-gradient",
          "fortran",
          "fortran-package-manager",
          "least-squares",
          "linear-algebra",
          "linear-equations",
          "lsqr"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 31,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "iterative-solvers",
          "least-squares",
          "linear-algebra",
          "linear-systems",
          "sparse-matrices"
        ],
        "gams_codes": [
          "D",
          "D2",
          "D9",
          "D9a",
          "D9a1",
          "K",
          "K1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "4df2ce600ca26a9f7e80dc01bfd0859d538547b3",
        "procedures": [
          {
            "id": "lsqr-lsqr-solver-ez",
            "package_id": "lsqr",
            "revision": "4df2ce600ca26a9f7e80dc01bfd0859d538547b3",
            "module": "lsqr_module",
            "procedure": "lsqr_solver_ez%solve",
            "gams_codes": [
              "D9a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Iterative least-squares solve using sparse matrix products; this is not a direct LU solver.",
            "evidence": [
              {
                "path": "src/lsqr.f90",
                "sha256": "6a8c1ef2bc79d872106f93b0700790bad5a44e108429f96c83cf7fdd323d071c",
                "line": 32
              }
            ],
            "author_examples": [
              {
                "path": "test/lsqrtest_ez.f90",
                "sha256": "ec4dcf395f84de683bc96090cc657d04787634f830f8d13a2871de23c78e8245"
              }
            ],
            "driver_id": "lsqr-least-squares-reference"
          }
        ],
        "numerical_review": {
          "revision": "4df2ce600ca26a9f7e80dc01bfd0859d538547b3",
          "archive_sha256": "3e5654977d4b207e0123ddd99bc669f0f60cb1526de8456399657e27bdc078fa",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "lsqr-lsqr-solver-ez"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "lsqr",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lsqr",
        "package_revision": "4df2ce600ca26a9f7e80dc01bfd0859d538547b3",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/lsqr.f90",
          "sha256": "bde69c8b8305e5d5f829a2a1fbac8e1d8f4bda8f20c6558dc9ab4f2a63d07049"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "4df2ce600ca26a9f7e80dc01bfd0859d538547b3",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/lusol",
      "name": "lusol",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "lusol",
        "url": "https://github.com/jacobwilliams/lusol"
      },
      "description": "Sparse LU factorization, linear solves and efficient column updates.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "MIT & BSD",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "linear-algebra",
          "lu-decomposition",
          "lu-factorization",
          "lusol",
          "matrix-factorization",
          "sparse-linear-algebra",
          "sparse-matrix"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T17:30:42.130830+00:00"
      },
      "curation": {
        "topics": [
          "linear-systems",
          "lu-factorization",
          "matrix-updates",
          "sparse-linear-algebra"
        ],
        "gams_codes": [
          "D",
          "D2",
          "D2a",
          "D2a4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "2d95174d44ec9bf9dabbbd07652c84c11fe56d71",
        "procedures": [
          {
            "id": "lusol-api",
            "package_id": "lusol",
            "revision": "2d95174d44ec9bf9dabbbd07652c84c11fe56d71",
            "module": "lusol",
            "procedure": "lu1fac / lu6sol / lu8rpc",
            "gams_codes": [
              "D2a4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Sparse LU factorization, solves and column replacement using an existing factorization; the demo uses the public 64-bit index kind.",
            "evidence": [
              {
                "path": "src/lusol.f90",
                "sha256": "2372004497e54012d074037e3f52edcc4193222b9d92af1295dd03e89e8391af",
                "line": 101
              }
            ],
            "author_examples": [
              {
                "path": "test/lusol_test.f90",
                "sha256": "b96078a020eaf15cecc4e871b85cf63b3ac6aa17fc64666d653f16afc044ce94"
              }
            ],
            "driver_id": "lusol-update-reference"
          }
        ],
        "numerical_review": {
          "revision": "2d95174d44ec9bf9dabbbd07652c84c11fe56d71",
          "archive_sha256": "cb6050bc25617e48c09595face9651f2c83ebd88cb72169f90e0e2217e54ea9e",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "lusol-api"
          ],
          "notes": "Sparse LU factorization, solves and column replacement using an existing factorization; the demo uses the public 64-bit index kind. Source review covers these representative procedures, not an exhaustive API inventory."
        }
      },
      "playground": {
        "package_id": "lusol",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lusol",
        "package_revision": "2d95174d44ec9bf9dabbbd07652c84c11fe56d71",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/lusol.f90",
          "sha256": "3fae5375fd7053ae16a796a047df1f9d2cf91656951b77c6fdc01aba2cf7c208"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2d95174d44ec9bf9dabbbd07652c84c11fe56d71",
        "verified_at": "2026-10-28T17:33:40.068326+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/mersenne-twister-fortran",
      "name": "mersenne-twister-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "mersenne-twister-fortran",
        "url": "https://github.com/jacobwilliams/mersenne-twister-fortran"
      },
      "description": "Reproducible 64-bit Mersenne Twister random number generation.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Random numbers"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "mersenne-twister",
          "random-number-generators",
          "rng"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 10,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "mersenne-twister",
          "pseudorandom",
          "random-numbers",
          "reproducibility"
        ],
        "gams_codes": [
          "L",
          "L6",
          "L6a",
          "L6a21"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "1e3e364f4c022eab3fcd5d07b10a2c2be77a822b",
        "procedures": [
          {
            "id": "mersenne-twister-fortran-genrand64-real2",
            "package_id": "mersenne-twister-fortran",
            "revision": "1e3e364f4c022eab3fcd5d07b10a2c2be77a822b",
            "module": "mt19937_64",
            "procedure": "mt19937%genrand64_real2",
            "gams_codes": [
              "L6a21"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Uniform MT19937-64 values in [0,1). The checked driver verifies selected integer outputs against a C++ std::mt19937_64 reference, real conversion, and 1000-value seeded replay.",
            "evidence": [
              {
                "path": "src/mt19937-64.f90",
                "sha256": "e41634731fde9378f0f363079311b45d81c85edd5678b226b8de50e30a1fc047",
                "line": 63
              }
            ],
            "author_examples": [
              {
                "path": "test/mt19937_64_test.f90",
                "sha256": "808c5c533d3844c4328f923ba962f92cd704f3a16b55bd7044a2caf7eb601e81"
              }
            ],
            "driver_id": "mt19937-64-reference-sequence"
          }
        ],
        "numerical_review": {
          "revision": "1e3e364f4c022eab3fcd5d07b10a2c2be77a822b",
          "archive_sha256": "95d5fa39dc727f587d4b4881cd606d5ea28f41ced883d493eb3576fe23eb1671",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "mersenne-twister-fortran-genrand64-real2"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "mersenne-twister-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=mersenne-twister-fortran",
        "package_revision": "1e3e364f4c022eab3fcd5d07b10a2c2be77a822b",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/mersenne-twister-fortran.f90",
          "sha256": "163e3483e21efbecabd772c417a660c0eebb63389356d32fca1873a946c87915"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "1e3e364f4c022eab3fcd5d07b10a2c2be77a822b",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/minpack",
      "name": "minpack",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "minpack",
        "url": "https://github.com/jacobwilliams/minpack"
      },
      "description": "Nonlinear equation solvers and nonlinear least-squares fitting.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 4,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "curve-fitting",
          "least-squares",
          "nonlinear-equations",
          "optimization"
        ],
        "gams_codes": [
          "F",
          "F2",
          "G",
          "G1",
          "G1b",
          "G1b1",
          "G1b1a",
          "G1b1b",
          "K",
          "K1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "c0b5aea9fcd2b83865af921a7a7e881904f8d3c2",
        "procedures": [
          {
            "id": "minpack-lmdif1",
            "package_id": "minpack",
            "revision": "c0b5aea9fcd2b83865af921a7a7e881904f8d3c2",
            "module": "minpack_module",
            "procedure": "lmdif1",
            "gams_codes": [
              "G1b1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "finite-difference residual Jacobian",
            "notes": "Nonlinear least squares using residual values; the scalar objective is their squared norm.",
            "evidence": [
              {
                "path": "src/minpack.f90",
                "line": 2331,
                "sha256": "44ff6b6482af824875c3af49feb4bfe9b63933cd3cf5ecf05159f931353cbe27"
              }
            ],
            "author_examples": [
              {
                "path": "examples/example_lmdif1.f90",
                "sha256": "f8d8c70137f80a69bfc907cab1ef588184cdbe431307ddca77611981faa9763d"
              }
            ],
            "driver_id": "minpack-bard"
          },
          {
            "id": "minpack-lmder1",
            "package_id": "minpack",
            "revision": "c0b5aea9fcd2b83865af921a7a7e881904f8d3c2",
            "module": "minpack_module",
            "procedure": "lmder1",
            "gams_codes": [
              "G1b1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "user residual Jacobian",
            "notes": "Nonlinear least squares; requires both residual values and their Jacobian. For smooth nonlinear least squares, the user residual Jacobian supplies first-derivative information for the squared-residual objective; this is not a general scalar-objective gradient interface.",
            "evidence": [
              {
                "path": "src/minpack.f90",
                "line": 1846,
                "sha256": "44ff6b6482af824875c3af49feb4bfe9b63933cd3cf5ecf05159f931353cbe27"
              }
            ],
            "author_examples": [
              {
                "path": "examples/example_lmder1.f90",
                "sha256": "140de0641ffd3e088ad99036c3e6077a8558802fa10858ce5d027a8d0a8a4577"
              }
            ],
            "driver_id": "minpack-lmder-reference"
          },
          {
            "id": "minpack-hybrd1",
            "package_id": "minpack",
            "revision": "c0b5aea9fcd2b83865af921a7a7e881904f8d3c2",
            "module": "minpack_module",
            "procedure": "hybrd1",
            "gams_codes": [
              "F2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "finite-difference Jacobian",
            "notes": "Powell hybrid solver for a square system of nonlinear equations. The checked F2 driver solves [1-x,10*(y-x**2)]=0 from [-1.2,1] and [2,2], requiring the known root [1,1], small recomputed residuals and documented successful termination. Configuration: finite-difference Jacobian. Other problem dimensions, singular systems and global convergence are not verified.",
            "evidence": [
              {
                "path": "src/minpack.f90",
                "sha256": "44ff6b6482af824875c3af49feb4bfe9b63933cd3cf5ecf05159f931353cbe27",
                "line": 959
              }
            ],
            "author_examples": [
              {
                "path": "examples/example_hybrd1.f90",
                "sha256": "208ec876826340d2481918a2fd648440457c977352826378e5275223acd81cd2"
              }
            ],
            "driver_id": "minpack-rosenbrock-system"
          }
        ],
        "numerical_review": {
          "revision": "c0b5aea9fcd2b83865af921a7a7e881904f8d3c2",
          "archive_sha256": "7da3f3ef43bf7fa10c518829263b041472022fb75b5a3c5cb85481397390a7b9",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "minpack-lmdif1",
            "minpack-lmder1",
            "minpack-hybrd1"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "minpack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=minpack",
        "package_revision": "c0b5aea9fcd2b83865af921a7a7e881904f8d3c2",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/minpack.f90",
          "sha256": "cf0693ed8c2d2e864525dd4d354666d235a0fbbdaf16ed202990e12c99b2d0ea"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "c0b5aea9fcd2b83865af921a7a7e881904f8d3c2",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/mpfun2020-var1",
      "name": "mpfun2020-var1",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "MPFUN2020-var1",
        "url": "https://github.com/jacobwilliams/MPFUN2020-var1"
      },
      "description": "Thread-safe arbitrary-precision real and complex arithmetic.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "High precision"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "arbitrary-precision"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arbitrary-precision",
          "complex-arithmetic",
          "precision",
          "real-arithmetic",
          "thread-safe"
        ],
        "gams_codes": [
          "A",
          "A3",
          "A3c",
          "A4",
          "A4c"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "f2191ad80d811cd5e309d83ffad9b2607d27aabc",
        "procedures": [
          {
            "id": "mpfun2020-var1-mpreal",
            "package_id": "mpfun2020-var1",
            "revision": "f2191ad80d811cd5e309d83ffad9b2607d27aabc",
            "module": "mpmodule",
            "procedure": "operator(+) for mpreal (mp_addrr)",
            "gams_codes": [
              "A3c"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Addition of arbitrary-precision real operands through the public overloaded operator; other arithmetic operations need their own records. Dedicated A3c driver: six exact real additions at 120 requested decimal digits, including 10^80+1, negative addition, cancellation and a literal long-integer reference. Constructors, comparisons and addition are used; no full-domain accuracy claim.",
            "evidence": [
              {
                "path": "src/mpfung1.f90",
                "sha256": "f39e177daed0e8f3e2b10b01970d17c29526e2d46fbccab08cc98bc5cbd86836",
                "line": 862
              }
            ],
            "author_examples": [
              {
                "path": "test/tquad.f90",
                "sha256": "a81e5c19bc429460ef2b00bc54ce72d5469102bfadbc7af19fec68500d69239d"
              }
            ],
            "driver_id": "mpfun-real-addition"
          },
          {
            "id": "mpfun2020-var1-mpcmplx",
            "package_id": "mpfun2020-var1",
            "revision": "f2191ad80d811cd5e309d83ffad9b2607d27aabc",
            "module": "mpmodule",
            "procedure": "operator(+) for mpcomplex (mp_addzz)",
            "gams_codes": [
              "A4c"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Addition of arbitrary-precision complex operands through the public overloaded operator; precision is not limited to hardware complex kinds. Dedicated A4c driver: five exact complex sums at 120 requested decimal digits, checking each component independently with explicit decimal references, including large-component cancellation to (1,2). Other complex arithmetic is outside this driver.",
            "evidence": [
              {
                "path": "src/mpfung1.f90",
                "sha256": "f39e177daed0e8f3e2b10b01970d17c29526e2d46fbccab08cc98bc5cbd86836",
                "line": 942
              }
            ],
            "author_examples": [
              {
                "path": "test/tpphix3.f90",
                "sha256": "eb6f9cba24cc2eadba647a3fba3c3277e01fa9b4f1d841a2a4bd28ad608d7971"
              }
            ],
            "driver_id": "mpfun-complex-addition"
          }
        ],
        "numerical_review": {
          "revision": "f2191ad80d811cd5e309d83ffad9b2607d27aabc",
          "archive_sha256": "1373c64f1f5c578e5270ad840b2b90d0468b88837fc3c6a5e83c4bc4f2b7a5a7",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "mpfun2020-var1-mpreal",
            "mpfun2020-var1-mpcmplx"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "mpfun2020-var1",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=mpfun2020-var1",
        "package_revision": "f2191ad80d811cd5e309d83ffad9b2607d27aabc",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/mpfun2020-var1.f90",
          "sha256": "4a623b20c087773d185ce1c43a7650be5218be3cb90b6f34b984dae124c1da6a"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f2191ad80d811cd5e309d83ffad9b2607d27aabc",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/nlesolver-fortran",
      "name": "nlesolver-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "nlesolver-fortran",
        "url": "https://github.com/jacobwilliams/nlesolver-fortran"
      },
      "description": "Newton and quasi-Newton solvers for dense or sparse nonlinear equation systems.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "broyden-method",
          "differential-correction-algorithm",
          "fortran",
          "fortran-package-manager",
          "lsmr",
          "lsqr",
          "lusol",
          "minimum-norm",
          "newton-raphson",
          "nonlinear-equation-solver",
          "nonlinear-equations",
          "quasi-newton"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 55,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "newton-methods",
          "nonlinear-equations",
          "quasi-newton",
          "sparse-matrices"
        ],
        "gams_codes": [
          "F",
          "F2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "60f38870a25e6b448dd552f184aa2f8616fc8cb0",
        "procedures": [
          {
            "id": "nlesolver-fortran-nlesolver-type",
            "package_id": "nlesolver-fortran",
            "revision": "60f38870a25e6b448dd552f184aa2f8616fc8cb0",
            "module": "nlesolver_module",
            "procedure": "nlesolver_type%solve",
            "gams_codes": [
              "F2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "analytic or approximated Jacobian, configured at initialization",
            "notes": "Newton/quasi-Newton nonlinear system solver; callback and matrix configuration matter. The checked F2 driver solves [1-x,10*(y-x**2)]=0 from [-1.2,1] and [2,2], requiring the known root [1,1], small recomputed residuals and documented successful termination. Configuration: analytic dense Jacobian; backtracking; no Broyden updates. Other problem dimensions, singular systems and global convergence are not verified.",
            "evidence": [
              {
                "path": "src/nlesolver_module.F90",
                "sha256": "2d8d89acd3e3a8bbc754c10270fa67b14bdb6c9f186f93a92e53c3ba54e8beb1",
                "line": 97
              }
            ],
            "author_examples": [
              {
                "path": "test/sparse_test.f90",
                "sha256": "656e876308293a4594bf5d3fbe0e6cfc3051e5a078aad16bfd6984fffa081bae"
              }
            ],
            "driver_id": "nlesolver-rosenbrock-system"
          }
        ],
        "numerical_review": {
          "revision": "60f38870a25e6b448dd552f184aa2f8616fc8cb0",
          "archive_sha256": "0fe03089eaccc651b3f752e93353aa0c0d5dd0379ef5179c0902876dac9ce32d",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "nlesolver-fortran-nlesolver-type"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "nlesolver-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nlesolver-fortran",
        "package_revision": "60f38870a25e6b448dd552f184aa2f8616fc8cb0",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/nlesolver-fortran.f90",
          "sha256": "cbb9c9c9f87d704464c74ef7f3dda650de3834bf33c72fe44bc7225e23819a7c"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "60f38870a25e6b448dd552f184aa2f8616fc8cb0",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": [
          {
            "id": "github:jacobwilliams/fmin",
            "repository": "jacobwilliams/fmin",
            "revision": "88af2947680c8980f72fdafdac77715c828e8198"
          },
          {
            "id": "github:jacobwilliams/lsmr",
            "repository": "jacobwilliams/LSMR",
            "revision": "6230146c61e8341b1077c22bdc67085e7e382f1b"
          },
          {
            "id": "github:jacobwilliams/lsqr",
            "repository": "jacobwilliams/LSQR",
            "revision": "a11a9ed9c631f88a567771b0afce7f4c398369fc"
          },
          {
            "id": "github:jacobwilliams/lusol",
            "repository": "jacobwilliams/lusol",
            "revision": "e5567293df3292130ba7e4809931545aadd323ff"
          }
        ]
      }
    },
    {
      "id": "github:jacobwilliams/numdiff",
      "name": "numdiff",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "NumDiff",
        "url": "https://github.com/jacobwilliams/NumDiff"
      },
      "description": "Numerical derivatives and sparse Jacobian estimation.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differentiation"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "differentiation",
          "finite-differences",
          "graph-coloring",
          "numerical-differentiation",
          "numerical-methods",
          "optimization",
          "sparsity-optimization"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 76,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "differentiation",
          "finite-differences",
          "jacobians",
          "sparse-matrices"
        ],
        "gams_codes": [
          "H",
          "H1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "687157df8d2dec072b5484974bab71f7b14b0e9f",
        "procedures": [
          {
            "id": "numdiff-compute-derivative",
            "package_id": "numdiff",
            "revision": "687157df8d2dec072b5484974bab71f7b14b0e9f",
            "module": "diff_module",
            "procedure": "diff_func%compute_derivative",
            "gams_codes": [
              "H1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "function values; estimates derivatives",
            "notes": "Finite-difference numerical differentiation; sparse Jacobian facilities are not all reviewed here. The checked H1 driver uses exp(x)*sin(x) at four shared points with analytic references and explicit tolerances; only the recorded scalar configuration is verified.",
            "evidence": [
              {
                "path": "src/diff_module.f90",
                "sha256": "78ad89f405de2f82618332a131085deceed4312bb5c2cd8c2ff8a92a41b34557",
                "line": 33
              }
            ],
            "author_examples": [
              {
                "path": "test/diff_test.f90",
                "sha256": "1b75497ce9706b8feef11150389161401103d1ef1e8b19dba9d35402845c773a"
              }
            ],
            "driver_id": "numdiff-analytic-derivatives"
          }
        ],
        "numerical_review": {
          "revision": "687157df8d2dec072b5484974bab71f7b14b0e9f",
          "archive_sha256": "b51fd9daad66ba3579c231266806cc0855dfbbe184959dd68a08c9e69a1fe6e1",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "numdiff-compute-derivative"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "numdiff",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=numdiff",
        "package_revision": "687157df8d2dec072b5484974bab71f7b14b0e9f",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/numdiff.f90",
          "sha256": "50a55c4c34c6c8bd0e78813af9918b448029f07b7b9a64ed63ba925b4bbe96bb"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "687157df8d2dec072b5484974bab71f7b14b0e9f",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/optgra",
      "name": "optgra",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "optgra",
        "url": "https://github.com/jacobwilliams/optgra"
      },
      "description": "Constrained optimization designed for nearly linear problems with many constraints.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "GPL-3.0-only OR LicenseRef-ESA-ESCL-2.4-Weak-Copyleft",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "constrained-optimization",
          "fortran",
          "fortran-package-manager",
          "numerical-optimization",
          "optimization"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "constrained-optimization",
          "nearly-linear-problems",
          "optimization"
        ],
        "gams_codes": [
          "G",
          "G2",
          "G2h",
          "G2h3",
          "G2h3b",
          "G2h3b1",
          "G2h3b1b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "914bed713e80faa4a190e03beb3a8307077eb028",
        "procedures": [
          {
            "id": "optgra-optgra",
            "package_id": "optgra",
            "revision": "914bed713e80faa4a190e03beb3a8307077eb028",
            "module": "optgra_module",
            "procedure": "optgra%solve",
            "gams_codes": [
              "G2h3b1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "user objective/constraint derivatives in analytic mode",
            "notes": "Smooth constrained optimization; notes on nearly linear problems do not imply a linear-programming solver.",
            "evidence": [
              {
                "path": "src/optgra.F90",
                "sha256": "39252e9d069c4183ebdbfa9c6b1b6633e396f435ee88f7fbfcf0e2a774fbe306",
                "line": 36
              }
            ],
            "author_examples": [
              {
                "path": "test/optgra_test.f90",
                "sha256": "1f8c3efbf92860dfc015f0e62056fc8a340c1de58fe2dfe97bf9d67534a9e6e5"
              }
            ],
            "driver_id": "optgra-halfspace-reference"
          }
        ],
        "numerical_review": {
          "revision": "914bed713e80faa4a190e03beb3a8307077eb028",
          "archive_sha256": "576c186c8d8dcb11580f01d4ae618beb2cd65c4a1a7e637b4f1fd0220564a339",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "optgra-optgra"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "optgra",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=optgra",
        "package_revision": "914bed713e80faa4a190e03beb3a8307077eb028",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/optgra.f90",
          "sha256": "f3043b80361d8ed1e5bda4cd010a265da29c387149f46cdcac263d91fe86712d"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "914bed713e80faa4a190e03beb3a8307077eb028",
        "verified_at": "2026-10-28T01:52:04.654432+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/pchip",
      "name": "pchip",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "PCHIP",
        "url": "https://github.com/jacobwilliams/PCHIP"
      },
      "description": "Shape-preserving piecewise cubic interpolation.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interpolation"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "hermite-interpolation",
          "interpolation",
          "slatec"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 33,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "interpolation",
          "shape-preserving",
          "splines",
          "tabulated-data"
        ],
        "gams_codes": [
          "E",
          "E1",
          "E1a"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "8f5350565072622a2344dd0ec75193832b31eb10",
        "procedures": [
          {
            "id": "pchip-dpchim",
            "package_id": "pchip",
            "revision": "8f5350565072622a2344dd0ec75193832b31eb10",
            "module": "pchip_module",
            "procedure": "dpchim, dpchfe",
            "gams_codes": [
              "E1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Shape-preserving piecewise cubic Hermite interpolation; slopes are estimated from tabulated values.",
            "evidence": [
              {
                "path": "src/pchip_module.f90",
                "sha256": "d92e5471b464d79b742256fd611c1f12ce294bffaac5d864d1d9163784d1fb32",
                "line": 2216
              }
            ],
            "author_examples": [
              {
                "path": "test/pchip_test.f90",
                "sha256": "63f9e869e896f9792b2d3b6ccc23fde01e4911a436eb73a158edeaf150742664"
              }
            ],
            "driver_id": "pchip-shape-interpolation"
          }
        ],
        "numerical_review": {
          "revision": "8f5350565072622a2344dd0ec75193832b31eb10",
          "archive_sha256": "22a2fb25220452a409363a8d8a2c039491fe62df0b91fc89141b28d3dcc115c6",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "pchip-dpchim"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "pchip",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=pchip",
        "package_revision": "8f5350565072622a2344dd0ec75193832b31eb10",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/pchip.f90",
          "sha256": "db49fe3937cd2abccb2c0e5f49216ac47043e9436df7fcebcc3490b8441fd8cb"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "8f5350565072622a2344dd0ec75193832b31eb10",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/pikaia",
      "name": "pikaia",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "pikaia",
        "url": "https://github.com/jacobwilliams/pikaia"
      },
      "description": "Genetic algorithm for global optimization with reproducible random seeds.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "genetic-algorithm",
          "numerical-optimization",
          "optimization",
          "pikaia"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 39,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "genetic-algorithms",
          "global-optimization",
          "optimization",
          "reproducibility",
          "stochastic-methods"
        ],
        "gams_codes": [
          "G",
          "G2",
          "G2i"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "c080c4004896243bf9b8bbb4577e402c9e31c5e3",
        "procedures": [
          {
            "id": "pikaia-pikaia-class",
            "package_id": "pikaia",
            "revision": "c080c4004896243bf9b8bbb4577e402c9e31c5e3",
            "module": "pikaia_module",
            "procedure": "pikaia_class%solve",
            "gams_codes": [
              "G2i"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Genetic global optimization on bounded search variables; no guarantee of finding the global optimum. Dedicated G2i driver checks the 2D nonconvex Rastrigin problem on [-2,2]^2 for three explicit seeds, population 100 and 600 generations. Known global solution/objective, bounds and independently recomputed fitness are checked. Finite fixed-seed success is not a guarantee of global convergence or accuracy on other problems.",
            "evidence": [
              {
                "path": "src/pikaia_module.f90",
                "sha256": "e3a8545bb8d88372ac5019ab32ff52685beab689c403626b6dbee54f2f450b71",
                "line": 65
              }
            ],
            "author_examples": [
              {
                "path": "test/xpk2.f90",
                "sha256": "e5e70fb83117298e45639f1839c94511d8624777ce119ea5641da2fee2afad0b"
              }
            ],
            "driver_id": "pikaia-rastrigin-reference"
          }
        ],
        "numerical_review": {
          "revision": "c080c4004896243bf9b8bbb4577e402c9e31c5e3",
          "archive_sha256": "a3e1a44da80c0497d7211ec5d0f2ceb1f8233369f6ab6312eff728720b36872b",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "pikaia-pikaia-class"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "pikaia",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=pikaia",
        "package_revision": "c080c4004896243bf9b8bbb4577e402c9e31c5e3",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/pikaia.f90",
          "sha256": "3e2363b011ace51d8306b03c5f7968f0e714bcb1684a236d79b3dfd8b9eba745"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "c080c4004896243bf9b8bbb4577e402c9e31c5e3",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": [
          {
            "id": "github:jacobwilliams/mersenne-twister-fortran",
            "repository": "jacobwilliams/mersenne-twister-fortran",
            "revision": "06961991ad4d014fbdd5b542328dd784970f33ed"
          }
        ]
      }
    },
    {
      "id": "github:jacobwilliams/polyroots-fortran",
      "name": "polyroots-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "polyroots-fortran",
        "url": "https://github.com/jacobwilliams/polyroots-fortran"
      },
      "description": "Find all real and complex roots of polynomial equations using several numerical algorithms.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "companion-matrix",
          "eigenvalues",
          "fortran",
          "fortran-package-manager",
          "jenkins-traub",
          "laguerre-method",
          "nonlinear-equations",
          "polynomial-equations",
          "polynomial-roots",
          "polynomials",
          "root-finding"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 29,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "complex-arithmetic",
          "polynomials",
          "root-finding"
        ],
        "gams_codes": [
          "F",
          "F1",
          "F1a"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "165ed6fbec98cc23d9ed4784fbc4708adb5e0bcf",
        "procedures": [
          {
            "id": "polyroots-fortran-polyroots",
            "package_id": "polyroots-fortran",
            "revision": "165ed6fbec98cc23d9ed4784fbc4708adb5e0bcf",
            "module": "polyroots_module",
            "procedure": "polyroots",
            "gams_codes": [
              "F1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Real companion-matrix eigenvalue solver using LAPACK. The checked F1a driver checks distinct known roots without relying on output order, normalized Horner residuals, and coefficient scales 1, 1e80 and 1e-80. Repeated or tightly clustered roots, extreme degree and all invalid inputs are outside this validation.",
            "evidence": [
              {
                "path": "src/polyroots_module.F90",
                "sha256": "3a43efae1e310cf185b1d79e04fe72be29794128b4058ea33d2f60a579b872fb",
                "line": 2676
              }
            ],
            "author_examples": [
              {
                "path": "test/polyroots_test.f90",
                "sha256": "9d91d3e972d61e932a93666bd93447a1667bc33e200ca50bf77d3b75bddb6fed"
              }
            ],
            "driver_id": "polyroots-real-reference"
          },
          {
            "id": "polyroots-fortran-rpoly",
            "package_id": "polyroots-fortran",
            "revision": "165ed6fbec98cc23d9ed4784fbc4708adb5e0bcf",
            "module": "polyroots_module",
            "procedure": "rpoly",
            "gams_codes": [
              "F1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Jenkins-Traub all-roots solver for real polynomial coefficients. The checked F1a driver checks distinct known roots without relying on output order, normalized Horner residuals, and coefficient scales 1, 1e80 and 1e-80. Repeated or tightly clustered roots, extreme degree and all invalid inputs are outside this validation.",
            "evidence": [
              {
                "path": "src/polyroots_module.F90",
                "sha256": "3a43efae1e310cf185b1d79e04fe72be29794128b4058ea33d2f60a579b872fb",
                "line": 93
              }
            ],
            "author_examples": [
              {
                "path": "test/polyroots_test.f90",
                "sha256": "9d91d3e972d61e932a93666bd93447a1667bc33e200ca50bf77d3b75bddb6fed"
              }
            ],
            "driver_id": "rpoly-real-reference"
          },
          {
            "id": "polyroots-fortran-cpolyroots",
            "package_id": "polyroots-fortran",
            "revision": "165ed6fbec98cc23d9ed4784fbc4708adb5e0bcf",
            "module": "polyroots_module",
            "procedure": "cpolyroots",
            "gams_codes": [
              "F1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Complex companion-matrix eigenvalue solver using LAPACK. The checked F1a driver checks distinct known roots without relying on output order, normalized Horner residuals, and coefficient scales 1, 1e80 and 1e-80. Repeated or tightly clustered roots, extreme degree and all invalid inputs are outside this validation.",
            "evidence": [
              {
                "path": "src/polyroots_module.F90",
                "sha256": "3a43efae1e310cf185b1d79e04fe72be29794128b4058ea33d2f60a579b872fb",
                "line": 2764
              }
            ],
            "author_examples": [
              {
                "path": "test/polyroots_test.f90",
                "sha256": "9d91d3e972d61e932a93666bd93447a1667bc33e200ca50bf77d3b75bddb6fed"
              }
            ],
            "driver_id": "cpolyroots-complex-reference"
          }
        ],
        "numerical_review": {
          "revision": "165ed6fbec98cc23d9ed4784fbc4708adb5e0bcf",
          "archive_sha256": "2a36e248e8c4eeb877b5497428ac0a46897fa076918204a304f9e00292001f9c",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "polyroots-fortran-polyroots",
            "polyroots-fortran-rpoly",
            "polyroots-fortran-cpolyroots"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "polyroots-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=polyroots-fortran",
        "package_revision": "165ed6fbec98cc23d9ed4784fbc4708adb5e0bcf",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/polyroots-fortran.f90",
          "sha256": "db4fcba33a4969192dc2eb0a7c3989b3e4069efee83486506e5f7d0f33aa4bbb"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "165ed6fbec98cc23d9ed4784fbc4708adb5e0bcf",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/popen-fortran",
      "name": "popen-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "popen-fortran",
        "url": "https://github.com/jacobwilliams/popen-fortran"
      },
      "description": "Capture the text output of a subprocess.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Files and processes"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "popen"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 4,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "processes",
          "subprocesses",
          "text-processing"
        ],
        "gams_codes": [
          "N",
          "N1",
          "S"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "N1 covers captured process output. Process support remains at S; no immediate analysis-tool subclass is claimed.",
        "reviewed_revision": "574076fff90dcfa9a16b2b2a21d92448ca6cd40b"
      },
      "playground": {
        "package_id": "popen-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=popen-fortran",
        "package_revision": "574076fff90dcfa9a16b2b2a21d92448ca6cd40b",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/popen-fortran.f90",
          "sha256": "3607babd42189d98ba4e9d47efc4cb1d863af9a8382baab2cd55af4d869b608e"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "574076fff90dcfa9a16b2b2a21d92448ca6cd40b",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/powellopt",
      "name": "powellopt",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "PowellOpt",
        "url": "https://github.com/jacobwilliams/PowellOpt"
      },
      "description": "Powell derivative-free optimization methods including BOBYQA and COBYLA.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "BSD",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "constrained-optimization",
          "fortran",
          "fortran-package-manager",
          "nonlinear-optimization",
          "numerical-optimization",
          "optimization",
          "unconstrained-optimization"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 39,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "bound-constraints",
          "constrained-optimization",
          "derivative-free",
          "optimization"
        ],
        "gams_codes": [
          "G",
          "G2",
          "G2h",
          "G2h1",
          "G2h1a",
          "G2h1a1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "G2 is supported by BOBYQA bound constraints and COBYLA constraints. No unconstrained subclass is inferred solely from the Powell family name.",
        "reviewed_revision": "0987cd09d695cec968a3d02c8230d4ce5af33533",
        "procedures": [
          {
            "id": "powellopt-bobyqa",
            "package_id": "powellopt",
            "revision": "0987cd09d695cec968a3d02c8230d4ce5af33533",
            "module": "bobyqa_module",
            "procedure": "bobyqa",
            "gams_codes": [
              "G2h1a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Bound-constrained smooth derivative-free optimization by quadratic models; COBYLA and other algorithms are separate. Dedicated G2h1a1 driver solves the shared box quadratic from three starts without providing derivatives. Known solution (1,0), objective 2, callback bounds and projected-gradient residual are checked. The API returns no status flag, so answer checks and nonexhausted 1000-call budget determine acceptance. General convergence is not inferred from normal return.",
            "evidence": [
              {
                "path": "src/bobyqa.f90",
                "sha256": "6fe1483b9f0c45961289b2b8c9276293b5378d79771d0bb4a230460b71a2eebe",
                "line": 77
              }
            ],
            "author_examples": [],
            "driver_id": "bobyqa-box-reference"
          }
        ],
        "numerical_review": {
          "revision": "0987cd09d695cec968a3d02c8230d4ce5af33533",
          "archive_sha256": "80eb370f64fd8da6d228ae93dc37bd9a267d35f85d7cef806bb5840b01cb6eef",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "powellopt-bobyqa"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "powellopt",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=powellopt",
        "package_revision": "0987cd09d695cec968a3d02c8230d4ce5af33533",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/powellopt.f90",
          "sha256": "cd857f726ec3f473f9cfbeb3a3728c58e6a6fabc8a2eaecc4cfe2ff2f23e20fa"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "0987cd09d695cec968a3d02c8230d4ce5af33533",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/psqp",
      "name": "psqp",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "psqp",
        "url": "https://github.com/jacobwilliams/psqp"
      },
      "description": "Sequential quadratic programming with variable bounds and general nonlinear constraints.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "LGPL",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "nonlinear-optimization",
          "numerical-optimization",
          "optimization",
          "sqp"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 6,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "bound-constraints",
          "constrained-optimization",
          "optimization",
          "sequential-quadratic-programming"
        ],
        "gams_codes": [
          "G",
          "G2",
          "G2h",
          "G2h3",
          "G2h3b",
          "G2h3b1",
          "G2h3b1b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "57a853e14e3806d69adad6d6d44396d9665d842e",
        "procedures": [
          {
            "id": "psqp-psqpn",
            "package_id": "psqp",
            "revision": "57a853e14e3806d69adad6d6d44396d9665d842e",
            "module": "psqp_module",
            "procedure": "psqp_class%psqpn",
            "gams_codes": [
              "G2h3b1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "user objective gradient and constraint Jacobian",
            "notes": "Sequential quadratic programming for smooth nonlinear constraints and bounds.",
            "evidence": [
              {
                "path": "src/psqp_module.f90",
                "sha256": "fd0411a95a43bad3ddff172f6b93955091407e41a718a436913cf38b5e95ca96",
                "line": 62
              }
            ],
            "author_examples": [
              {
                "path": "test/tsqp.f90",
                "sha256": "552c084f09e4f1ac2ee26a3fe5892758affe75ba7d132c7844d878e1d558ae2f"
              }
            ],
            "driver_id": "psqp-projection-reference"
          }
        ],
        "numerical_review": {
          "revision": "57a853e14e3806d69adad6d6d44396d9665d842e",
          "archive_sha256": "1e885c8e481fa2962d883e6a1a1199117d3ca4ad3975799a8d72634639746531",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "psqp-psqpn"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "psqp",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=psqp",
        "package_revision": "57a853e14e3806d69adad6d6d44396d9665d842e",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/psqp.f90",
          "sha256": "8f4edf5eb224200c1d41e75371b19561b33741950215f8deaaa344cb1224abe1"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "57a853e14e3806d69adad6d6d44396d9665d842e",
        "verified_at": "2026-10-28T01:52:04.654432+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/pyplot-fortran",
      "name": "pyplot-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "pyplot-fortran",
        "url": "https://github.com/jacobwilliams/pyplot-fortran"
      },
      "description": "Create PNG plots from Fortran through Python and Matplotlib.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Plotting"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "contour-plot",
          "fortran",
          "fortran-package-manager",
          "matplotlib",
          "plot",
          "plotting",
          "plotting-in-fortran",
          "pyplot"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 225,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "matplotlib",
          "plotting",
          "png",
          "python",
          "visualization"
        ],
        "gams_codes": [
          "Q"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "217d0c97a12812ff5c5aca00e5439237e866bc91"
      },
      "playground": {
        "package_id": "pyplot-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=pyplot-fortran",
        "package_revision": "217d0c97a12812ff5c5aca00e5439237e866bc91",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/pyplot-fortran.f90",
          "sha256": "99e12d83c262c7326668f5351724e445f452b4b5d233a6a61a92e2502ebad61d"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "217d0c97a12812ff5c5aca00e5439237e866bc91",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/qdldl-fortran",
      "name": "qdldl-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "qdldl-fortran",
        "url": "https://github.com/jacobwilliams/qdldl-fortran"
      },
      "description": "Sparse LDL-transpose factorization, orderings and solves for quasi-definite systems.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "Apache-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "ldl-factorization",
          "linear-algebra",
          "linear-systems",
          "numerical-optimization",
          "sparse-data",
          "sparse-linear-systems"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-28T17:30:42.130830+00:00"
      },
      "curation": {
        "topics": [
          "ldlt-factorization",
          "linear-systems",
          "matrix-ordering",
          "quasi-definite",
          "sparse-linear-algebra"
        ],
        "gams_codes": [
          "D",
          "D2",
          "D2b",
          "D2b4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "8ebdd7fa1075bfb89115d0955806b0996b6b29d5",
        "procedures": [
          {
            "id": "qdldl-fortran-api",
            "package_id": "qdldl-fortran",
            "revision": "8ebdd7fa1075bfb89115d0955806b0996b6b29d5",
            "module": "qdldl_module",
            "procedure": "qdldl_type%analyze / factor / solve",
            "gams_codes": [
              "D2b4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Sparse symmetric quasi-definite systems; no general-indefinite or pivoting guarantee is inferred. Natural, RCM and AMD orderings are checked. The checked driver solves two known right-hand sides, checks finite results and successful termination, and independently recomputes the residual and scaled normwise backward error.",
            "evidence": [
              {
                "path": "src/qdldl_module.f90",
                "sha256": "afbd0beefc25c5998522cd2ba8f86fbb96b40848edcf0132d5784ac697df75b9",
                "line": 28
              }
            ],
            "author_examples": [
              {
                "path": "example/example_kkt.f90",
                "sha256": "d1a429384355e642203654c5534ee7dc888e1382c201acb9d952dd0947da597a"
              }
            ],
            "driver_id": "qdldl-quasidefinite-solve"
          }
        ],
        "numerical_review": {
          "revision": "8ebdd7fa1075bfb89115d0955806b0996b6b29d5",
          "archive_sha256": "a757aa58d41657737514df2150f12fa6e594013c25266f52857fcae7b516e665",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "qdldl-fortran-api"
          ],
          "notes": "Sparse symmetric quasi-definite systems; no general-indefinite or pivoting guarantee is inferred. Natural, RCM and AMD orderings are checked. Source review covers these representative procedures, not an exhaustive API inventory."
        }
      },
      "playground": {
        "package_id": "qdldl-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=qdldl-fortran",
        "package_revision": "8ebdd7fa1075bfb89115d0955806b0996b6b29d5",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/qdldl-fortran.f90",
          "sha256": "5fd5ec25814763ee862ff104b7637831c0234399267d07ad9431e76a522b9f5d"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "8ebdd7fa1075bfb89115d0955806b0996b6b29d5",
        "verified_at": "2026-10-28T17:33:40.068326+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/quadpack",
      "name": "quadpack",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "quadpack",
        "url": "https://github.com/jacobwilliams/quadpack"
      },
      "description": "Adaptive numerical integration, including improper and oscillatory integrals.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Integration"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "gauss-kronrod",
          "gauss-kronrod-quadrature",
          "numerical-integration",
          "quadpack",
          "quadrature",
          "quadrature-integration",
          "slatec"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 88,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "adaptive-methods",
          "improper-integrals",
          "oscillatory-integrals",
          "quadrature"
        ],
        "gams_codes": [
          "H",
          "H2",
          "H2a",
          "H2a1",
          "H2a1a",
          "H2a1a1",
          "H2a2",
          "H2a2a",
          "H2a2a1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "ab42d50794280a8e7996f2ee4cda1f8753dfde5b",
        "procedures": [
          {
            "id": "quadpack-dqag",
            "package_id": "quadpack",
            "revision": "ab42d50794280a8e7996f2ee4cda1f8753dfde5b",
            "module": "quadpack",
            "procedure": "dqag",
            "gams_codes": [
              "H2a1a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Adaptive finite-interval quadrature of a callback; improper and weighted integrals require other routines.",
            "evidence": [
              {
                "path": "src/quadpack_generic.F90",
                "sha256": "c99ab78b9639e4c66c82ae3acd56efcd53a50026d3b8993ce4737fbaa91e88e8",
                "line": 96
              }
            ],
            "author_examples": [
              {
                "path": "test/quadpack_test_module.F90",
                "sha256": "6583d801d13851ac7626444aff65e6714e3e561f7d8442d5424655bcb50c56b4"
              }
            ],
            "driver_id": "quadpack-smooth"
          },
          {
            "id": "quadpack-dqags",
            "package_id": "quadpack",
            "revision": "ab42d50794280a8e7996f2ee4cda1f8753dfde5b",
            "module": "quadpack",
            "procedure": "dqags",
            "gams_codes": [
              "H2a2a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "function values only",
            "notes": "Adaptive one-dimensional integration on a finite interval using subdivision and extrapolation for integrable singularities. The checked driver adapts author test_qags (1/sqrt(x)) and adds log(x)/sqrt(x). These endpoint singularities have exact integrals 2 and -4. It checks status zero, finite values, independent accuracy and callback counts; it does not evaluate the singular endpoint or claim coverage of all special integrands.",
            "evidence": [
              {
                "path": "src/quadpack_generic.F90",
                "sha256": "c99ab78b9639e4c66c82ae3acd56efcd53a50026d3b8993ce4737fbaa91e88e8",
                "line": 1711
              }
            ],
            "author_examples": [
              {
                "path": "test/quadpack_test_module.F90",
                "sha256": "6583d801d13851ac7626444aff65e6714e3e561f7d8442d5424655bcb50c56b4",
                "line": 160
              }
            ],
            "driver_id": "quadpack-endpoint-singular"
          }
        ],
        "numerical_review": {
          "revision": "ab42d50794280a8e7996f2ee4cda1f8753dfde5b",
          "archive_sha256": "973158fce8508717b04496a0546c3ad1c7a2408ac1d7d5822b0331e116fab7f0",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "quadpack-dqag",
            "quadpack-dqags"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "quadpack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=quadpack",
        "package_revision": "ab42d50794280a8e7996f2ee4cda1f8753dfde5b",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/quadpack.f90",
          "sha256": "915ba6b25315da0c1b5bacbc209e41e7de24e8b5e983411aa467829fb855144b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "ab42d50794280a8e7996f2ee4cda1f8753dfde5b",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/quadrature-fortran",
      "name": "quadrature-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "quadrature-fortran",
        "url": "https://github.com/jacobwilliams/quadrature-fortran"
      },
      "description": "Adaptive Gaussian quadrature in one or more dimensions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Integration"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "integration",
          "numerical-integration",
          "quadrature",
          "quadrature-integration"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 43,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "adaptive-methods",
          "gaussian-quadrature",
          "multidimensional",
          "quadrature"
        ],
        "gams_codes": [
          "H",
          "H2",
          "H2a",
          "H2a1",
          "H2a1a",
          "H2a1a1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "1d208fc59569a97b1c2abf9c45f7c352dcc7b318",
        "procedures": [
          {
            "id": "quadrature-fortran-integration-class-1d",
            "package_id": "quadrature-fortran",
            "revision": "1d208fc59569a97b1c2abf9c45f7c352dcc7b318",
            "module": "quadrature_module",
            "procedure": "integration_class_1d%integrate",
            "gams_codes": [
              "H2a1a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Adaptive finite-interval one-dimensional quadrature.",
            "evidence": [
              {
                "path": "src/quadrature_module.F90",
                "sha256": "9c407f2553745d6d07ec30f4101199a644b0558cdc9d951602da59c5dfeb315f",
                "line": 72
              }
            ],
            "author_examples": [
              {
                "path": "test/test.f90",
                "sha256": "c654bec4a4141cfc48a1fca81f670f946d27532d68e0ac4c734dc4fbcad051e3"
              }
            ],
            "driver_id": "quadrature-fortran-smooth"
          }
        ],
        "numerical_review": {
          "revision": "1d208fc59569a97b1c2abf9c45f7c352dcc7b318",
          "archive_sha256": "b099c2ee3e5c9c993e888cff0724fd7035dfb36559b09bc516ac94c45a610a34",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "quadrature-fortran-integration-class-1d"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "quadrature-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=quadrature-fortran",
        "package_revision": "1d208fc59569a97b1c2abf9c45f7c352dcc7b318",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/quadrature-fortran.f90",
          "sha256": "8f7b5ba97eff8093f0324e9db518f7f21946df21ca16ca01814b31887044d22b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "1d208fc59569a97b1c2abf9c45f7c352dcc7b318",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/regridpack",
      "name": "regridpack",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "regridpack",
        "url": "https://github.com/jacobwilliams/regridpack"
      },
      "description": "Linear and cubic interpolation between one- to four-dimensional grids.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interpolation"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "interpolation",
          "linear-interpolation",
          "regridding",
          "spline-interpolation"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 20,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "grids",
          "interpolation",
          "multidimensional",
          "tabulated-data"
        ],
        "gams_codes": [
          "E",
          "E1",
          "E1a",
          "E2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "e47346d9244ab93f70367f16364d73217fbc0451",
        "procedures": [
          {
            "id": "regridpack-regrid",
            "package_id": "regridpack",
            "revision": "e47346d9244ab93f70367f16364d73217fbc0451",
            "module": "regridpack_module",
            "procedure": "regrid",
            "gams_codes": [
              "E1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "One-dimensional piecewise linear/cubic regridding overload; multidimensional overloads require separate review.",
            "evidence": [
              {
                "path": "src/regridpack_module.f90",
                "sha256": "1ece7df02a63ae56371c9c9d92cd0327112d35d2ee545442f22be8d4fe7d8bee",
                "line": 22
              }
            ],
            "author_examples": [],
            "driver_id": "regridpack-polynomial-reference"
          }
        ],
        "numerical_review": {
          "revision": "e47346d9244ab93f70367f16364d73217fbc0451",
          "archive_sha256": "e1fb4cdf060a0c8c3d9112bef5eaad01e4936486b9ffe1072cff8729643503c8",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "regridpack-regrid"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "regridpack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=regridpack",
        "package_revision": "e47346d9244ab93f70367f16364d73217fbc0451",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/regridpack.f90",
          "sha256": "36c0ea6a8f05d179fd9762415ec4eb6f0c6c14c266281fc1d34eba0c9b45ac02"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e47346d9244ab93f70367f16364d73217fbc0451",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/rklib",
      "name": "rklib",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "rklib",
        "url": "https://github.com/jacobwilliams/rklib"
      },
      "description": "A collection of fixed- and variable-step Runge-Kutta ODE integration methods.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "differential-equations",
          "fortran",
          "fortran-package-manager",
          "ode",
          "ode-solver",
          "root-finding",
          "runge-kutta",
          "runge-kutta-adaptive-step-size",
          "runge-kutta-fehlberg"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 95,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "adaptive-methods",
          "initial-value-problems",
          "ode",
          "runge-kutta"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I1a",
          "I1a1",
          "I1a1a"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "e3d51f9e8a2e6756612e8e53687ab2d4b67dfb76",
        "procedures": [
          {
            "id": "rklib-rk4",
            "package_id": "rklib",
            "revision": "e3d51f9e8a2e6756612e8e53687ab2d4b67dfb76",
            "module": "rklib_module",
            "procedure": "rk4_class%integrate",
            "gams_codes": [
              "I1a1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "right-hand side only",
            "notes": "Classical explicit fourth-order Runge-Kutta; not a claim about every integrator in the collection.",
            "evidence": [
              {
                "path": "src/rklib_fixed_steps.f90",
                "sha256": "c9809cb3c27a44c7ff6b4237bfb3258a8d1223ff30917d6d7b1b97c5f579e46a",
                "line": 203
              }
            ],
            "author_examples": [
              {
                "path": "test/rk_decay.F90",
                "sha256": "e4b663473d74c8c93b8fb632783274c59a78ea615451f399d0619b8cc593cae5"
              }
            ],
            "driver_id": "rklib-decay-oscillator"
          }
        ],
        "numerical_review": {
          "revision": "e3d51f9e8a2e6756612e8e53687ab2d4b67dfb76",
          "archive_sha256": "6c70084cb47a59f6d61b326801135cdf2889ec723b7454a82f9e04b3735593d8",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "rklib-rk4"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "rklib",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rklib",
        "package_revision": "e3d51f9e8a2e6756612e8e53687ab2d4b67dfb76",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/rklib.f90",
          "sha256": "8ca1e61a1ce96fa460f9c5c0deb5d29531bc3d21282bb6ecf54ad3649c5f55dc"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e3d51f9e8a2e6756612e8e53687ab2d4b67dfb76",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": [
          {
            "id": "github:jacobwilliams/roots-fortran",
            "repository": "jacobwilliams/roots-fortran",
            "revision": "85dc6b98404a61d49944939414f7f56c3f32edd1"
          }
        ]
      }
    },
    {
      "id": "github:jacobwilliams/roots-fortran",
      "name": "roots-fortran",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "roots-fortran",
        "url": "https://github.com/jacobwilliams/roots-fortran"
      },
      "description": "Find roots of scalar functions using bracketing and other solvers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "bisection",
          "brent-dekker",
          "fortran",
          "fortran-package-manager",
          "muller",
          "muller-s-method",
          "regula-falsi",
          "root-finding",
          "zeroin"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 53,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "nonlinear-equations",
          "root-finding",
          "scalar-functions"
        ],
        "gams_codes": [
          "F",
          "F1",
          "F1b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "85dc6b98404a61d49944939414f7f56c3f32edd1",
        "procedures": [
          {
            "id": "roots-fortran-brent",
            "package_id": "roots-fortran",
            "revision": "85dc6b98404a61d49944939414f7f56c3f32edd1",
            "module": "root_module",
            "procedure": "brent_solver%solve",
            "gams_codes": [
              "F1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Bracketing solver for a general scalar function; not an optimization routine.",
            "evidence": [
              {
                "path": "src/root_module.F90",
                "sha256": "a1e4d4337d643384167d963e87973c80b4e805e38869be2fca071876fd306ad2",
                "line": 123
              }
            ],
            "author_examples": [],
            "driver_id": "roots-fortran-brent"
          }
        ],
        "numerical_review": {
          "revision": "85dc6b98404a61d49944939414f7f56c3f32edd1",
          "archive_sha256": "77e3839b1df2500887afbba0924a36fc6265c705f5189c2c8a6c48f169cb8228",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "roots-fortran-brent"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "roots-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=roots-fortran",
        "package_revision": "85dc6b98404a61d49944939414f7f56c3f32edd1",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/roots-fortran.f90",
          "sha256": "5cbbf582739e7cca634550ad33aebf2cbcfc1c093bc43bceff2a61148ac71632"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "85dc6b98404a61d49944939414f7f56c3f32edd1",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/simulated-annealing",
      "name": "simulated-annealing",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "simulated-annealing",
        "url": "https://github.com/jacobwilliams/simulated-annealing"
      },
      "description": "Stochastic global optimization by simulated annealing with bounds and reproducible seeds.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "annealing",
          "basin-hopping",
          "fortran",
          "fortran-package-manager",
          "minimization",
          "optimization",
          "python",
          "simulated-annealing",
          "stochastic-optimization"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 34,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "bound-constraints",
          "global-optimization",
          "optimization",
          "simulated-annealing",
          "stochastic-methods"
        ],
        "gams_codes": [
          "G",
          "G2",
          "G2i"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "a2fa094d1ee39525c7e081cfd67866975e9e1dc5",
        "procedures": [
          {
            "id": "simulated-annealing-simulated-annealing-type",
            "package_id": "simulated-annealing",
            "revision": "a2fa094d1ee39525c7e081cfd67866975e9e1dc5",
            "module": "simulated_annealing_module",
            "procedure": "simulated_annealing_type%optimize",
            "gams_codes": [
              "G2i"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Stochastic bounded global search; convergence in a finite run is not guaranteed.",
            "evidence": [
              {
                "path": "src/simulated_annealing.F90",
                "sha256": "b9045931c29bb56d8213afa0c7308fdb2f417b79e36e20cc02f2b377c6804bfc",
                "line": 59
              }
            ],
            "author_examples": [
              {
                "path": "test/test.f90",
                "sha256": "2388f5a4911ac89d6f4c8d6271053a89d801c43f57cfc39f84f68d82f03a2a32"
              }
            ],
            "driver_id": "annealing-rastrigin-reference"
          }
        ],
        "numerical_review": {
          "revision": "a2fa094d1ee39525c7e081cfd67866975e9e1dc5",
          "archive_sha256": "d2fb01dfd123ccbda75b4bcfc547da517f3ef9ea8e71a686ef6572253b9b58ba",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "simulated-annealing-simulated-annealing-type"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "simulated-annealing",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=simulated-annealing",
        "package_revision": "a2fa094d1ee39525c7e081cfd67866975e9e1dc5",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/simulated-annealing.f90",
          "sha256": "9591f3cb29f9512a694f0af87be58ab01086831d98aa260c714f3310d060871a"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "a2fa094d1ee39525c7e081cfd67866975e9e1dc5",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/slsqp",
      "name": "slsqp",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "slsqp",
        "url": "https://github.com/jacobwilliams/slsqp"
      },
      "description": "Sequential least-squares optimization with bounds and nonlinear constraints.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "constrained-optimization",
          "fortran",
          "fortran-package-manager",
          "nnls",
          "numerical-optimization",
          "optimization",
          "sqp"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 114,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "bound-constraints",
          "constrained-optimization",
          "optimization",
          "sequential-quadratic-programming"
        ],
        "gams_codes": [
          "G",
          "G2",
          "G2h",
          "G2h3",
          "G2h3b",
          "G2h3b1",
          "G2h3b1b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "e28b14fc48189fd4fce5f359327164fca55b52be",
        "procedures": [
          {
            "id": "slsqp-slsqp-solver",
            "package_id": "slsqp",
            "revision": "e28b14fc48189fd4fce5f359327164fca55b52be",
            "module": "slsqp_module",
            "procedure": "slsqp_solver%optimize",
            "gams_codes": [
              "G2h3b1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "user objective gradient and constraint Jacobian in analytic mode",
            "notes": "Smooth optimization with nonlinear equality and inequality constraints; finite-difference modes are separate configurations.",
            "evidence": [
              {
                "path": "src/slsqp_module.f90",
                "sha256": "0417f69540016ec21c42ac09f353b3cb9ca7e2ed7dc02b94026a04d599d4c51f",
                "line": 21
              }
            ],
            "author_examples": [
              {
                "path": "test/slsqp_test.f90",
                "sha256": "a195f2addfeb7b206b83a327095cc41dc32f95afdda9890e93b7a036d0aa8b4d"
              }
            ],
            "driver_id": "slsqp-circle-equality"
          }
        ],
        "numerical_review": {
          "revision": "e28b14fc48189fd4fce5f359327164fca55b52be",
          "archive_sha256": "4163e6844f6ffef649e9650c3123173e48ad6140cd1130c9eb2cf4f1d43eef88",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "slsqp-slsqp-solver"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "slsqp",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=slsqp",
        "package_revision": "e28b14fc48189fd4fce5f359327164fca55b52be",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/slsqp.f90",
          "sha256": "e384930884dfee5f4d867046b440cc9c0fecd3ee1cc9cd834d8d6aba1cd91dda"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e28b14fc48189fd4fce5f359327164fca55b52be",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/specfun",
      "name": "specfun",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "specfun",
        "url": "https://github.com/jacobwilliams/specfun"
      },
      "description": "Special functions including Bessel, Airy, gamma, and related functions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Special functions"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "scipy",
          "special-functions"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 8,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "airy-functions",
          "bessel-functions",
          "gamma-functions",
          "special-functions"
        ],
        "gams_codes": [
          "C",
          "C7",
          "C10",
          "C19"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "e74d9c810d5c9248b5d8ffab4b766e7bb22ffd23",
        "procedures": [
          {
            "id": "specfun-bernob",
            "package_id": "specfun",
            "revision": "e74d9c810d5c9248b5d8ffab4b766e7bb22ffd23",
            "module": "specfun_module",
            "procedure": "bernob",
            "gams_codes": [
              "C19"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Bernoulli numbers; do not classify this procedure as gamma or Bessel just because the package also contains those functions. Dedicated C19 driver checks B0, B1 and even B2..B12 against explicit rational values and 24 integer power sums against direct int64 summation. Pinned bernob leaves odd output positions above B1 unassigned; these positions are never read and their mathematical zeros are supplied locally only for the power-sum application. Small n<2 is also outside the driver because the implementation writes B0..B2 unconditionally.",
            "evidence": [
              {
                "path": "src/specfun.F90",
                "sha256": "26954173c4244ded68b347cda4a4af81fff8f9479c142658f9c6393a3dccdeab",
                "line": 776
              }
            ],
            "author_examples": [],
            "driver_id": "bernoulli-power-sums"
          }
        ],
        "numerical_review": {
          "revision": "e74d9c810d5c9248b5d8ffab4b766e7bb22ffd23",
          "archive_sha256": "0aa46035360d2d462e1d8cfe03bac7c433bf44d021f98074215db40984f7c05b",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "specfun-bernob"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "specfun",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=specfun",
        "package_revision": "e74d9c810d5c9248b5d8ffab4b766e7bb22ffd23",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/specfun.f90",
          "sha256": "885e59b97b08643364bf948a92e7277ef86f5212a63f625cf579c94227271f49"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e74d9c810d5c9248b5d8ffab4b766e7bb22ffd23",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/splpak",
      "name": "splpak",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "splpak",
        "url": "https://github.com/jacobwilliams/splpak"
      },
      "description": "Least-squares fitting and evaluation of multidimensional cubic splines.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interpolation"
      ],
      "license": {
        "label": "Apache",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "cubic-splines",
          "curve-fitting",
          "fortran",
          "fortran-package-manager",
          "interpolation",
          "least-squares",
          "splines"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 12,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "curve-fitting",
          "least-squares",
          "multidimensional",
          "splines"
        ],
        "gams_codes": [
          "K",
          "K1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "35340cb2d193c7aa44f03978db21660df8297cc0",
        "procedures": [
          {
            "id": "splpak-splpak-type",
            "package_id": "splpak",
            "revision": "35340cb2d193c7aa44f03978db21660df8297cc0",
            "module": "splpak_module",
            "procedure": "splpak_type%initialize, evaluate",
            "gams_codes": [
              "K1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Least-squares spline fitting; retain K1 pending a closer match among its finer subclasses. Dedicated K1 driver checks three known affine least-squares fits, including duplicate-coordinate opposite noise and a known nonzero SSE of 1.5, plus nonuniform-weight constant data. Values and analytic derivatives are checked at 21 points per fit. Cubic/nonlinear fitting accuracy, multidimensional fits, extrapolation and ill-conditioning are outside this driver.",
            "evidence": [
              {
                "path": "src/splpak.F90",
                "sha256": "0425b4114c6d9917cefee8b7320987bd74e1f31d6c55dd85bc1cd603ad9ec54d",
                "line": 45
              }
            ],
            "author_examples": [
              {
                "path": "test/splpak_test.f90",
                "sha256": "6a26ae73fe6893ab654750cf5e848f4e12f5d415dc9dfebba2b7581ef4bd5b16"
              }
            ],
            "driver_id": "splpak-paired-noise-fit"
          }
        ],
        "numerical_review": {
          "revision": "35340cb2d193c7aa44f03978db21660df8297cc0",
          "archive_sha256": "3909e8aa03c933e98106793f8a68b1843f4ad94bd3e6620c89bf1032a0d1235b",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "splpak-splpak-type"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "splpak",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=splpak",
        "package_revision": "35340cb2d193c7aa44f03978db21660df8297cc0",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/splpak.f90",
          "sha256": "fadfa994f51767ac9a78e8512024429aceae52e762bd657af04cb19d5def8cc6"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "35340cb2d193c7aa44f03978db21660df8297cc0",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jacobwilliams/stringsort",
      "name": "stringsort",
      "repository": {
        "host": "github",
        "owner": "jacobwilliams",
        "name": "stringsort",
        "url": "https://github.com/jacobwilliams/stringsort"
      },
      "description": "Lexical and natural sorting of character arrays.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Strings and sorting"
      ],
      "license": {
        "label": "BSD-3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "quicksort",
          "sorting-algorithms"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 19,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "natural-sort",
          "sorting",
          "strings"
        ],
        "gams_codes": [
          "N",
          "N3",
          "N6"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "4b074d4930f6d7dcb402609085e7c301437d8699"
      },
      "playground": {
        "package_id": "stringsort",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=stringsort",
        "package_revision": "4b074d4930f6d7dcb402609085e7c301437d8699",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/stringsort.f90",
          "sha256": "fe0d76725dc7c4bb161dcd69983c0407f972a20cdb11257f8cfe0b6bf21bf2de"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "4b074d4930f6d7dcb402609085e7c301437d8699",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jaiken17/fortran-simplify",
      "name": "fortran-simplify",
      "repository": {
        "host": "github",
        "owner": "jaiken17",
        "name": "fortran-simplify",
        "url": "https://github.com/jaiken17/fortran-simplify"
      },
      "description": "Reduce the number of polyline points using geometric simplification algorithms.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Geometry"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "noise-reduction",
          "polyline",
          "polyline-simplification"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T22:42:25.593426+00:00"
      },
      "curation": {
        "topics": [
          "computational-geometry",
          "curve-approximation",
          "polyline-simplification"
        ],
        "gams_codes": [
          "K",
          "P"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Polyline simplification. The main checks one call of perpendicular-distance reduction against endpoints and an independent interpolation bound, and plots the original and reduced curves. Separate GNU 16 probes confirm incorrect radial-distance filtering and lost endpoints on consecutive perpendicular-distance calls at this pin; see the retained reproducers. The single-call example does not fix those upstream limitations.",
        "reviewed_revision": "f546422216fb88eba97e2a0f4910935efbcdce83",
        "procedures": [
          {
            "id": "fortran-simplify-perpendicular",
            "package_id": "fortran-simplify",
            "revision": "f546422216fb88eba97e2a0f4910935efbcdce83",
            "module": "simplify",
            "procedure": "perpendicular_distance",
            "gams_codes": [
              "P",
              "K"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Polyline simplification. The main checks one call of perpendicular-distance reduction against endpoints and an independent interpolation bound, and plots the original and reduced curves. Separate GNU 16 probes confirm incorrect radial-distance filtering and lost endpoints on consecutive perpendicular-distance calls at this pin; see the retained reproducers. The single-call example does not fix those upstream limitations.",
            "evidence": [
              {
                "path": "src/simplify.f90",
                "sha256": "c8606e0e0ebdab544827ab7300489171adc02f9813143962e511f9702d1449b5",
                "line": 559
              }
            ],
            "author_examples": [
              {
                "path": "example/simplify_example.f90",
                "sha256": "678a13f8a2b533550465606c04f38db0f21aff9fbd82336857478cab5149365c"
              }
            ]
          }
        ],
        "numerical_review": {
          "revision": "f546422216fb88eba97e2a0f4910935efbcdce83",
          "archive_sha256": "fac116dbcb42131306061eb500eaa04ef49075e7301f0c01f19c80e7196740f6",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortran-simplify-perpendicular"
          ],
          "notes": "Polyline simplification. The main checks one call of perpendicular-distance reduction against endpoints and an independent interpolation bound, and plots the original and reduced curves. Separate GNU 16 probes confirm incorrect radial-distance filtering and lost endpoints on consecutive perpendicular-distance calls at this pin; see the retained reproducers. The single-call example does not fix those upstream limitations."
        }
      },
      "playground": {
        "package_id": "fortran-simplify",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-simplify",
        "package_revision": "f546422216fb88eba97e2a0f4910935efbcdce83",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-simplify.f90",
          "sha256": "e2651c4bb7d9a41b345f04ee18eadb5051c175eabdf8405bd9a89b0c65c3f312"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f546422216fb88eba97e2a0f4910935efbcdce83",
        "verified_at": "2026-10-28T22:42:59.624262+00:00",
        "packages": [
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          }
        ]
      }
    },
    {
      "id": "github:jaiken17/fortrandf",
      "name": "fortrandf",
      "repository": {
        "host": "github",
        "owner": "jaiken17",
        "name": "fortranDF",
        "url": "https://github.com/jaiken17/fortranDF"
      },
      "description": "In-memory data frames with named columns of different intrinsic types.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "dataframe",
          "fortran",
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 20,
        "stars_updated_at": "2026-10-28T21:31:23.622767+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "data-frames",
          "heterogeneous-data",
          "tabular-data"
        ],
        "gams_codes": [
          "N",
          "N4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Named heterogeneous in-memory columns; retrieval and a calibration update are checked. This is a storage example, not a statistical estimation library.",
        "reviewed_revision": "58300f8ae39d463e729960e960939fb53e2c7de4"
      },
      "playground": {
        "package_id": "fortrandf",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortrandf",
        "package_revision": "58300f8ae39d463e729960e960939fb53e2c7de4",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortrandf.f90",
          "sha256": "07a49525fabd459c52aafe412ace552f644f1c051084f2a9788063ae3d037f1d"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "58300f8ae39d463e729960e960939fb53e2c7de4",
        "verified_at": "2026-10-28T21:40:06.974444+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jalvesz/fsparse",
      "name": "fsparse",
      "repository": {
        "host": "github",
        "owner": "jalvesz",
        "name": "FSPARSE",
        "url": "https://github.com/jalvesz/FSPARSE"
      },
      "description": "Sparse matrix storage, format conversions and matrix-vector products.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-library",
          "fortran-package-manager",
          "sparse-matrices"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 36,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "format-conversion",
          "linear-algebra",
          "matrix-vector-products",
          "sparse-matrices"
        ],
        "gams_codes": [
          "D",
          "D1",
          "D1b",
          "D1b4",
          "D1b9"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "fa8233420ab0110bb688d565879164386521a8fc",
        "procedures": [
          {
            "id": "fsparse-matvec",
            "package_id": "fsparse",
            "revision": "fa8233420ab0110bb688d565879164386521a8fc",
            "module": "fsparse",
            "procedure": "matvec",
            "gams_codes": [
              "D1b4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Sparse matrix-vector product; storage conversion is a distinct API. Dedicated D1b4 driver checks 24 real64 COO/CSR calls against independent scalar loops on a rectangular 4-by-3 matrix with an empty row. Zero/nonzero output initialization, signed/zero input vectors and repeated accumulation y:=y+A*x are verified. Symmetric-storage shortcuts, complex overloads and other sparse formats are outside this driver.",
            "evidence": [
              {
                "path": "src/matvec/fsparse_matvec.f90",
                "sha256": "f2da533f16950e8197396b487a6707e010f82702ce429573b4017e47a6a229e8",
                "line": 14
              }
            ],
            "author_examples": [
              {
                "path": "test/test_matrices.f90",
                "sha256": "df71f7ee49f0246207b77243bdf32c1e10642908379a9e303a6a926c3d4a4c1b"
              }
            ],
            "driver_id": "fsparse-matvec-reference"
          },
          {
            "id": "fsparse-dense2coo",
            "package_id": "fsparse",
            "revision": "fa8233420ab0110bb688d565879164386521a8fc",
            "module": "fsparse",
            "procedure": "dense2coo, coo2dense, coo2csr, csr2coo",
            "gams_codes": [
              "D1b9"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Checked real64 full-storage conversions: independent COO coordinates/values, CSR row pointers/columns/values and reconstructions for five exact dyadic fixtures, including empty rows/columns and an all-zero matrix. coo2dense requires caller initialization of unstored entries. Threshold/subnormal behavior, duplicate entries and storage reuse are not verified; no linear-system solve is claimed.",
            "evidence": [
              {
                "path": "src/conversion/fsparse_conversions.f90",
                "sha256": "eedaa24f37fb1dca8e86361921abad3ebde355ab8855f92350fdc3d54eea650d",
                "line": 17
              }
            ],
            "author_examples": [
              {
                "path": "test/test_matrices.f90",
                "sha256": "df71f7ee49f0246207b77243bdf32c1e10642908379a9e303a6a926c3d4a4c1b"
              }
            ],
            "driver_id": "fsparse-storage-reference"
          }
        ],
        "numerical_review": {
          "revision": "fa8233420ab0110bb688d565879164386521a8fc",
          "archive_sha256": "b7b87843bd2027e60ec865ded63c853ec7c32d9627fa1513135d37727f3f2a23",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fsparse-matvec",
            "fsparse-dense2coo"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fsparse",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fsparse",
        "package_revision": "fa8233420ab0110bb688d565879164386521a8fc",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fsparse.f90",
          "sha256": "f81550216dfa6804b6832d3a646d0c7d3faf840149a0b6ebfbc202a2c556e0c2"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "fa8233420ab0110bb688d565879164386521a8fc",
        "verified_at": "2026-10-27T22:36:01.378932+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jannisteunissen/config_fortran",
      "name": "config-fortran",
      "repository": {
        "host": "github",
        "owner": "jannisteunissen",
        "name": "config_fortran",
        "url": "https://github.com/jannisteunissen/config_fortran"
      },
      "description": "Documented scalar and array configuration settings read from text files.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Configuration"
      ],
      "license": {
        "label": "GPL-3.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 39,
        "stars_updated_at": "2026-10-29T12:15:32.322175+00:00"
      },
      "curation": {
        "topics": [
          "configuration",
          "configuration-files",
          "input-validation"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Documented configuration values. An FPM wrapper selects unchanged m_config.f90. The main creates its own tiny configuration file, overrides integer, logical, string and grouped real defaults, reads a dynamically sized real array, checks every value and clears the configuration. No uploaded data file or external service is required. Command-line parsing, invalid-file diagnostics and all string/array/grouping behavior are not validated.",
        "reviewed_revision": "106354774b2e6138161952f434c69e7913fa2000",
        "procedures": [
          {
            "id": "configuration-values",
            "package_id": "config-fortran",
            "revision": "106354774b2e6138161952f434c69e7913fa2000",
            "module": "m_config",
            "procedure": "CFG_add / CFG_read_file / CFG_get / CFG_get_size",
            "gams_codes": [
              "N1",
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Documented configuration values. An FPM wrapper selects unchanged m_config.f90. The main creates its own tiny configuration file, overrides integer, logical, string and grouped real defaults, reads a dynamically sized real array, checks every value and clears the configuration. No uploaded data file or external service is required. Command-line parsing, invalid-file diagnostics and all string/array/grouping behavior are not validated.",
            "evidence": [
              {
                "path": "m_config.f90",
                "sha256": "568f6e007b8c9ed2e911bfc99a850c79b7873e91afd7e9396ab0f4f80a8cf838",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example_1.f90",
                "sha256": "538fb21b88402c16ce11dac9c171691b874af33efd88bc6a15be76a2a9072eb0"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "config-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=config-fortran",
        "package_revision": "106354774b2e6138161952f434c69e7913fa2000",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/config-fortran.f90",
          "sha256": "f65f0e8ff44a418236ac15b06b6f6fc8c268aeee982eb5339caef63b5bb33ccb"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "106354774b2e6138161952f434c69e7913fa2000",
        "verified_at": "2026-10-29T12:13:59.407766+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jannisteunissen/lookup_table_fortran",
      "name": "lookup-table-fortran",
      "repository": {
        "host": "github",
        "owner": "jannisteunissen",
        "name": "lookup_table_fortran",
        "url": "https://github.com/jannisteunissen/lookup_table_fortran"
      },
      "description": "Linear lookup tables with multiple columns and selectable grid spacing.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interpolation"
      ],
      "license": {
        "label": "GPL-3.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 25,
        "stars_updated_at": "2026-10-29T12:15:32.322175+00:00"
      },
      "curation": {
        "topics": [
          "linear-interpolation",
          "lookup-tables",
          "tabulated-functions"
        ],
        "gams_codes": [
          "E",
          "E1",
          "E1a",
          "E3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Linear lookup tables. An operator-owned FPM manifest wraps the unchanged m_lookup_table.f90 file. The main checks exact interpolation of a linear function, the expected interpolation error for a quadratic, an exact grid value, and clamping below/above the endpoints. No mathematical source edits. The 2D interface, nonuniform spacing options, persistence and all boundary cases are not validated by this example.",
        "reviewed_revision": "b7dc72359e7c2cc105abfbf79b570c655a7f1d04",
        "procedures": [
          {
            "id": "lookup-interpolation",
            "package_id": "lookup-table-fortran",
            "revision": "b7dc72359e7c2cc105abfbf79b570c655a7f1d04",
            "module": "m_lookup_table",
            "procedure": "LT_create / LT_set_col / LT_set_col_data / LT_add_col / LT_get_loc / LT_get_col / LT_get_mcol / LT_get_col_at_loc / LT_get_mcol_at_loc",
            "gams_codes": [
              "E1a",
              "E3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Linear lookup tables. An operator-owned FPM manifest wraps the unchanged m_lookup_table.f90 file. The main checks exact interpolation of a linear function, the expected interpolation error for a quadratic, an exact grid value, and clamping below/above the endpoints. No mathematical source edits. The 2D interface, nonuniform spacing options, persistence and all boundary cases are not validated by this example. Linear grids only: independent two-stage interpolation references check 98 queries on original/copied and updated tables, three columns, four lookup routes, location coordinates, endpoint clamping and column resampling/addition. This E3 service driver does not verify the separate E1a mapping.",
            "evidence": [
              {
                "path": "m_lookup_table.f90",
                "sha256": "cb8cf06bf3032ed370ca0b9af97af4045ed665c8077cb4cf396f8c6e498e0443",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "usage_example.f90",
                "sha256": "27793b4c62a9c1de91b941b5fe4246fe2226e0d30cbae14e120c703babb4b2d3"
              }
            ],
            "driver_id": "lookup-services-reference"
          }
        ],
        "numerical_review": {
          "revision": "b7dc72359e7c2cc105abfbf79b570c655a7f1d04",
          "archive_sha256": "0744a0be71d51cf990d67aaf326807132c7ef57f7d7cc594b42c54980be2c5cd",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "lookup-interpolation"
          ],
          "notes": "Linear lookup tables. An operator-owned FPM manifest wraps the unchanged m_lookup_table.f90 file. The main checks exact interpolation of a linear function, the expected interpolation error for a quadratic, an exact grid value, and clamping below/above the endpoints. No mathematical source edits. The 2D interface, nonuniform spacing options, persistence and all boundary cases are not validated by this example."
        }
      },
      "playground": {
        "package_id": "lookup-table-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lookup-table-fortran",
        "package_revision": "b7dc72359e7c2cc105abfbf79b570c655a7f1d04",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/lookup-table-fortran.f90",
          "sha256": "2247c7358e3bfa2ce064b1007bebeb0a994917b06f3e51355f766c5156ba3c92"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b7dc72359e7c2cc105abfbf79b570c655a7f1d04",
        "verified_at": "2026-10-29T12:13:59.407766+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jannisteunissen/rng_fortran",
      "name": "rng-fortran",
      "repository": {
        "host": "github",
        "owner": "jannisteunissen",
        "name": "rng_fortran",
        "url": "https://github.com/jannisteunissen/rng_fortran"
      },
      "description": "Xoroshiro128+ generator with uniform, normal and Poisson sampling.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Random numbers"
      ],
      "license": {
        "label": "GPL-3.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "random",
          "random-number-generator",
          "rng",
          "xoroshiro",
          "xoroshiro128"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 28,
        "stars_updated_at": "2026-10-29T12:15:32.322175+00:00"
      },
      "curation": {
        "topics": [
          "normal-distribution",
          "poisson-distribution",
          "random-number-generation",
          "xoroshiro128plus"
        ],
        "gams_codes": [
          "L",
          "L6",
          "L6a",
          "L6a21",
          "L6c"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Xoroshiro128+ pseudo-random generator. An FPM wrapper selects unchanged m_random.f90 and uses -fwrapv for its intentional signed-integer wraparound. Two fresh generators replay 10000 seeded uniform draws exactly; the main checks the implementation range [0,1), broad uniform/normal/Poisson(4) moment tolerances, nonnegative counts and unit circle/sphere norms. These are deterministic smoke checks, not statistical quality or cryptographic validation. OpenMP, jump independence, large Poisson rates and all distributions are not covered. A separate hosted reproducer confirms that set_seed does not clear the cached second normal after an odd normal() call; use a fresh generator to restart normal sequences. The selected replay uses fresh objects.",
        "reviewed_revision": "5ead95f436323d07fc82acc3613f66550947f256",
        "procedures": [
          {
            "id": "rng-uniform",
            "package_id": "rng-fortran",
            "revision": "5ead95f436323d07fc82acc3613f66550947f256",
            "module": "m_random",
            "procedure": "rng_t%set_seed / unif_01",
            "gams_codes": [
              "L6a21",
              "L6c"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Xoroshiro128+ pseudo-random generator. An FPM wrapper selects unchanged m_random.f90 and uses -fwrapv for its intentional signed-integer wraparound. Two fresh generators replay 10000 seeded uniform draws exactly; the main checks the implementation range [0,1), broad uniform/normal/Poisson(4) moment tolerances, nonnegative counts and unit circle/sphere norms. These are deterministic smoke checks, not statistical quality or cryptographic validation. OpenMP, jump independence, large Poisson rates and all distributions are not covered. A separate hosted reproducer confirms that set_seed does not clear the cached second normal after an odd normal() call; use a fresh generator to restart normal sequences. The selected replay uses fresh objects. Dedicated L6a21 driver checks 15 interleaved streams against unsigned-Python prefixes and rolling hashes, exact 52-bit integer/uniform conversion, seeded restarts and zero/default/two explicit jumps. Jump references use independent GF(2) transition-matrix exponentiation to 2**64. This establishes fixed bitstream and seed/jump API behavior, not statistical quality or thread independence; the cached-normal reseeding defect remains unresolved.",
            "evidence": [
              {
                "path": "m_random.f90",
                "sha256": "6724a27e2cee58df03723071fd62dc5371b294a524c26f461002ffbe6fddf5ae",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example.f90",
                "sha256": "aa79abd9d6ee57cac43006c7561efdb4e4a75ddf0a6c065652e449adeec1772e"
              }
            ],
            "driver_id": "rng-xoroshiro-reference"
          },
          {
            "id": "rng-distributions",
            "package_id": "rng-fortran",
            "revision": "5ead95f436323d07fc82acc3613f66550947f256",
            "module": "m_random",
            "procedure": "rng_t%normal / poisson / circle / sphere",
            "gams_codes": [
              "L6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Xoroshiro128+ pseudo-random generator. An FPM wrapper selects unchanged m_random.f90 and uses -fwrapv for its intentional signed-integer wraparound. Two fresh generators replay 10000 seeded uniform draws exactly; the main checks the implementation range [0,1), broad uniform/normal/Poisson(4) moment tolerances, nonnegative counts and unit circle/sphere norms. These are deterministic smoke checks, not statistical quality or cryptographic validation. OpenMP, jump independence, large Poisson rates and all distributions are not covered. A separate hosted reproducer confirms that set_seed does not clear the cached second normal after an odd normal() call; use a fresh generator to restart normal sequences. The selected replay uses fresh objects. Dedicated L6 consumer checks exact replay with fresh seeded objects, 60000 normal and 60000 small-rate Poisson samples against broad analytic moment/zero-probability tolerances, and 3000 circle plus 3000 sphere samples against exact norm references and broad coordinate moments. These are fixed-seed deterministic smoke checks, not statistical or cryptographic quality certification. Fresh allocations avoid the known cached-normal reseeding issue; that issue remains unresolved. Poisson rates >=10/rejection sampling, parallel/jump independence and full distribution coverage are not verified.",
            "evidence": [
              {
                "path": "m_random.f90",
                "sha256": "6724a27e2cee58df03723071fd62dc5371b294a524c26f461002ffbe6fddf5ae",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example.f90",
                "sha256": "aa79abd9d6ee57cac43006c7561efdb4e4a75ddf0a6c065652e449adeec1772e"
              }
            ],
            "driver_id": "rng-distributions-reference"
          }
        ],
        "numerical_review": {
          "revision": "5ead95f436323d07fc82acc3613f66550947f256",
          "archive_sha256": "9de2594251208c855d148f8207c216df95072e62e74d51ba432b0ab77426cb52",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "rng-uniform",
            "rng-distributions"
          ],
          "notes": "Xoroshiro128+ pseudo-random generator. An FPM wrapper selects unchanged m_random.f90 and uses -fwrapv for its intentional signed-integer wraparound. Two fresh generators replay 10000 seeded uniform draws exactly; the main checks the implementation range [0,1), broad uniform/normal/Poisson(4) moment tolerances, nonnegative counts and unit circle/sphere norms. These are deterministic smoke checks, not statistical quality or cryptographic validation. OpenMP, jump independence, large Poisson rates and all distributions are not covered. A separate hosted reproducer confirms that set_seed does not clear the cached second normal after an odd normal() call; use a fresh generator to restart normal sequences. The selected replay uses fresh objects."
        }
      },
      "playground": {
        "package_id": "rng-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rng-fortran",
        "package_revision": "5ead95f436323d07fc82acc3613f66550947f256",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/rng-fortran.f90",
          "sha256": "711acfef0457f1f3e4bae024d97f403847bf18c97df85bf56caf766429c534a8"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5ead95f436323d07fc82acc3613f66550947f256",
        "verified_at": "2026-10-29T12:13:59.407766+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jchristopherson/collections",
      "name": "collections",
      "repository": {
        "host": "github",
        "owner": "jchristopherson",
        "name": "collections",
        "url": "https://github.com/jchristopherson/collections"
      },
      "description": "Generic dynamically growing lists and linked lists with polymorphic values.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "collection",
          "collections",
          "fortran",
          "generic-collections",
          "generic-list",
          "linked-list",
          "list",
          "lists"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "dynamic-arrays",
          "linked-lists",
          "polymorphism"
        ],
        "gams_codes": [
          "N",
          "N4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "ce37c94e72b3ae5db2e2208489999260a7875f81"
      },
      "playground": {
        "package_id": "collections",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=collections",
        "package_revision": "ce37c94e72b3ae5db2e2208489999260a7875f81",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/collections.f90",
          "sha256": "079054a8e6cbfac5304655b4d99c8550441b5c04c09eda44caaeee6692b3db18"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "ce37c94e72b3ae5db2e2208489999260a7875f81",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jchristopherson/diffeq",
      "name": "diffeq",
      "repository": {
        "host": "github",
        "owner": "jchristopherson",
        "name": "diffeq",
        "url": "https://github.com/jchristopherson/diffeq"
      },
      "description": "Adaptive explicit and implicit integrators for ordinary differential and differential-algebraic equations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "adams-bashforth-moulton",
          "backwards-differentiation-formula",
          "bdf",
          "differential-algebraic-equations",
          "differential-equations",
          "esdirk",
          "event-detection",
          "implicit-runge-kutta",
          "index-reduction",
          "kennedy-carpenter",
          "rosenbrock",
          "runge-kutta-methods",
          "tsitouras"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 8,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "adaptive-methods",
          "dae",
          "differential-equations",
          "implicit-methods",
          "ode"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I1a",
          "I1a1",
          "I1a1a"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "I1 includes both the ordinary differential and differential-algebraic integrators.",
        "reviewed_revision": "989b320179c23aaff4bfe72994c90e9034f50c74",
        "procedures": [
          {
            "id": "diffeq-runge-kutta-45",
            "package_id": "diffeq",
            "revision": "989b320179c23aaff4bfe72994c90e9034f50c74",
            "module": "diffeq",
            "procedure": "runge_kutta_45%solve",
            "gams_codes": [
              "I1a1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "right-hand side only",
            "notes": "Explicit adaptive Runge-Kutta initial-value integration; implicit methods are separate types.",
            "evidence": [
              {
                "path": "src/singlestep/explicit/diffeq_rk45.f90",
                "sha256": "d3b7b2711968c1d14fbb9c45b9d7df14c1402557d61a540d041c43f0e101dc37",
                "line": 32
              }
            ],
            "author_examples": [
              {
                "path": "examples/rk45_example.f90",
                "sha256": "a8c701257c1f3bbf4a05a7379e0e8e2461ea04e8e7680ffafb489358ded97359"
              }
            ],
            "driver_id": "diffeq-rk45-reference"
          }
        ],
        "numerical_review": {
          "revision": "989b320179c23aaff4bfe72994c90e9034f50c74",
          "archive_sha256": "09f6e92aea1dc8c9eb9233d4052b012e3b53a739e1ce078453d0421ddb1d4e87",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "diffeq-runge-kutta-45"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "diffeq",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=diffeq",
        "package_revision": "989b320179c23aaff4bfe72994c90e9034f50c74",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/diffeq.f90",
          "sha256": "eead828109c30eaca4aa69c27bbb32ea354baae23187ab0b0dfca69e1a5ec40e"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "989b320179c23aaff4bfe72994c90e9034f50c74",
        "verified_at": "2026-10-28T21:02:12.296868+00:00",
        "packages": [
          {
            "id": "github:jchristopherson/linalg",
            "repository": "jchristopherson/linalg",
            "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68"
          }
        ]
      }
    },
    {
      "id": "github:jchristopherson/dynamics",
      "name": "dynamics",
      "repository": {
        "host": "github",
        "owner": "jchristopherson",
        "name": "dynamics",
        "url": "https://github.com/jchristopherson/dynamics"
      },
      "description": "Frequency response, vibration analysis, modal analysis and dynamic-system calculations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Dynamics and control"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "denavit-hartenberg",
          "frequency-analysis",
          "frequency-response",
          "frf-fitting",
          "geometric-algorithms",
          "kinematics",
          "modal-analysis",
          "parallel-linkage",
          "poincare-map",
          "quaternions",
          "rotation-matrix",
          "serial-linkage",
          "structural-dynamics",
          "system-identification"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-28T17:30:42.130830+00:00"
      },
      "curation": {
        "topics": [
          "control-systems",
          "damping",
          "frequency-response",
          "modal-analysis",
          "vibration"
        ],
        "gams_codes": [
          "I",
          "I1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "580d04859a25126d3261e44b3fbec5111835e3a4",
        "procedures": [
          {
            "id": "dynamics-api",
            "package_id": "dynamics",
            "revision": "580d04859a25126d3261e44b3fbec5111835e3a4",
            "module": "dynamics_frequency_response",
            "procedure": "frequency_response (frf_modal_prop_damp)",
            "gams_codes": [
              "I1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Steady-state harmonic response of a linear second-order ODE system with proportional damping; retain the broad ODE class rather than label this an initial-value integrator.",
            "evidence": [
              {
                "path": "src/frequency/dynamics_frequency_response.f90",
                "sha256": "5b1700c13c9940f770652f3c3f079a1d640377279306b618681e04d7d9d3095f",
                "line": 119
              }
            ],
            "author_examples": [
              {
                "path": "examples/frf_example_1.f90",
                "sha256": "d28f69355f302d461fccc865f77d649e6bb64599f600a0036660d159d520c09b"
              }
            ],
            "driver_id": "dynamics-response-reference"
          }
        ],
        "numerical_review": {
          "revision": "580d04859a25126d3261e44b3fbec5111835e3a4",
          "archive_sha256": "9aae4e1bff56b7a4bcf738be61dced3038d778b5b94bbc91ecb9edf58eaa3d87",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "dynamics-api"
          ],
          "notes": "Steady-state harmonic response of a linear second-order ODE system with proportional damping; retain the broad ODE class rather than label this an initial-value integrator. Source review covers these representative procedures, not an exhaustive API inventory."
        }
      },
      "playground": {
        "package_id": "dynamics",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dynamics",
        "package_revision": "580d04859a25126d3261e44b3fbec5111835e3a4",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/dynamics.f90",
          "sha256": "07d547e95b7a8f5504ee5ebecca8715581dfc48dbb3e7df5f040abb97fb8d239"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "580d04859a25126d3261e44b3fbec5111835e3a4",
        "verified_at": "2026-10-28T17:33:40.068326+00:00",
        "packages": [
          {
            "id": "github:jchristopherson/collections",
            "repository": "jchristopherson/collections",
            "revision": "ce37c94e72b3ae5db2e2208489999260a7875f81"
          },
          {
            "id": "github:jchristopherson/diffeq",
            "repository": "jchristopherson/diffeq",
            "revision": "989b320179c23aaff4bfe72994c90e9034f50c74"
          },
          {
            "id": "github:jchristopherson/ferror",
            "repository": "jchristopherson/ferror",
            "revision": "9d6c9750f5c14ef2c806104ea8dfdfc9ce91efed"
          },
          {
            "id": "github:jchristopherson/fortran_test_helper",
            "repository": "jchristopherson/fortran_test_helper",
            "revision": "1557b1485d8a5b042862042552f1e1a34552ca5e"
          },
          {
            "id": "github:jchristopherson/fstats",
            "repository": "jchristopherson/fstats",
            "revision": "5fdb86d1e7fa057d776d7d9477942fd6d387dd2f"
          },
          {
            "id": "github:jchristopherson/fstring",
            "repository": "jchristopherson/fstring",
            "revision": "1bb1043a1ed34b8bd57f2687166463dd573bce3d"
          },
          {
            "id": "github:jchristopherson/linalg",
            "repository": "jchristopherson/linalg",
            "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68"
          },
          {
            "id": "github:jchristopherson/nonlin",
            "repository": "jchristopherson/nonlin",
            "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8"
          },
          {
            "id": "github:jchristopherson/peaks",
            "repository": "jchristopherson/peaks",
            "revision": "5bd81dc18ddd629ecf3daa08769ff2440def3682"
          },
          {
            "id": "github:jchristopherson/spectrum",
            "repository": "jchristopherson/spectrum",
            "revision": "5af0d5a85eccf971aa6e0fc72b1c7439c3cef536"
          }
        ]
      }
    },
    {
      "id": "github:jchristopherson/ferror",
      "name": "ferror",
      "repository": {
        "host": "github",
        "owner": "jchristopherson",
        "name": "ferror",
        "url": "https://github.com/jchristopherson/ferror"
      },
      "description": "Structured error and warning reporting with configurable handling.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Error handling"
      ],
      "license": {
        "label": "GPL-3.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 11,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "diagnostics",
          "error-handling",
          "warnings"
        ],
        "gams_codes": [
          "R",
          "R3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "9d6c9750f5c14ef2c806104ea8dfdfc9ce91efed"
      },
      "playground": {
        "package_id": "ferror",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ferror",
        "package_revision": "9d6c9750f5c14ef2c806104ea8dfdfc9ce91efed",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ferror.f90",
          "sha256": "0f5e7ff5ceab93e28a04183189a6ddca98dd2343f8782322cd7f470d4c1ee15a"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "9d6c9750f5c14ef2c806104ea8dfdfc9ce91efed",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jchristopherson/fortran_test_helper",
      "name": "fortran_test_helper",
      "repository": {
        "host": "github",
        "owner": "jchristopherson",
        "name": "fortran_test_helper",
        "url": "https://github.com/jchristopherson/fortran_test_helper"
      },
      "description": "Assertions and random array generators for numerical tests.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Testing"
      ],
      "license": {
        "label": "GPL-3.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "assertions",
          "numerical-testing",
          "random-numbers",
          "unit-testing"
        ],
        "gams_codes": [
          "L",
          "L6",
          "L6a",
          "L6a21",
          "S",
          "S3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "1557b1485d8a5b042862042552f1e1a34552ca5e",
        "procedures": [
          {
            "id": "fortran-test-helper-create-r64-array",
            "package_id": "fortran_test_helper",
            "revision": "1557b1485d8a5b042862042552f1e1a34552ca5e",
            "module": "fortran_test_helper",
            "procedure": "create_random_array (real64 overload)",
            "gams_codes": [
              "L6a21"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Uniform real test arrays generated from RANDOM_NUMBER; assertion routines are separate software-testing tools.",
            "evidence": [
              {
                "path": "src/fth_arrays.f90",
                "sha256": "88f10fd95539fb964a76bda9ca9fc086230f579b1084d641e66cd41d927d691d",
                "line": 102
              }
            ],
            "author_examples": []
          }
        ],
        "numerical_review": {
          "revision": "1557b1485d8a5b042862042552f1e1a34552ca5e",
          "archive_sha256": "846d7506d044b41eb307619d84369d97afdd8b4838ea19eae6803735dffc10e2",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortran-test-helper-create-r64-array"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fortran_test_helper",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran_test_helper",
        "package_revision": "1557b1485d8a5b042862042552f1e1a34552ca5e",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran_test_helper.f90",
          "sha256": "bb73327d768f7c37a378352c9b1e40dfc45a447b2a6069cdb96633f3ade8e443"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "1557b1485d8a5b042862042552f1e1a34552ca5e",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jchristopherson/friction",
      "name": "friction",
      "repository": {
        "host": "github",
        "owner": "jchristopherson",
        "name": "friction",
        "url": "https://github.com/jchristopherson/friction"
      },
      "description": "Coulomb, Stribeck and dynamic friction models for contacting bodies.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Dynamics and control"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "coulomb",
          "friction",
          "generalized-maxwell-slip",
          "lu-gre",
          "maxwell",
          "stribeck-friction"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 9,
        "stars_updated_at": "2026-10-28T22:02:20.239918+00:00"
      },
      "curation": {
        "topics": [
          "constitutive-models",
          "contact-mechanics",
          "coulomb-friction",
          "friction",
          "stribeck-friction"
        ],
        "gams_codes": [
          "I",
          "I1",
          "L",
          "L8"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Constitutive friction models, with nonlinear parameter fitting and internal-state ODE integration in the reviewed source. The checked main covers algebraic Coulomb and Stribeck forces only; it does not validate parameter fitting or dynamic internal-state integration.",
        "reviewed_revision": "8e75dcac26f47417a439adfcbaa24834105d89fe",
        "procedures": [
          {
            "id": "friction-fit",
            "package_id": "friction",
            "revision": "8e75dcac26f47417a439adfcbaa24834105d89fe",
            "module": "friction_core",
            "procedure": "friction_model%fit",
            "gams_codes": [
              "L8"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Parameter fitting remains unverified: the pinned Coulomb fit returned approximately 0.75 for noiseless observations with true coefficient 0.375 while reporting residual convergence. Source review finds fit_fcn returns model minus observed force, then passes observed force again as the least-squares target. Exact reproducer and cached GNU 16 result are retained in docs/gams-candidates/friction-double-subtraction. Ordinary algebraic force evaluation is separately checked; dynamic-state fitting remains unverified.",
            "evidence": [
              {
                "path": "src/friction_core.f90",
                "sha256": "6ad2be97b6ae8ecec8c50ba6e3a363f8a968f00233f5a4216d7edd85c69e9c82",
                "line": 315
              }
            ],
            "author_examples": [
              {
                "path": "test/friction_model_tests.f90",
                "sha256": "b50c84375eb9a8909ff88d67bf199e146e24f71669aeef22b5bc8f860cb15e9f"
              }
            ]
          },
          {
            "id": "friction-internal-state",
            "package_id": "friction",
            "revision": "8e75dcac26f47417a439adfcbaa24834105d89fe",
            "module": "friction_core",
            "procedure": "internal_state_odes / internal_var_fit_fcn",
            "gams_codes": [
              "I1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Constitutive friction models, with nonlinear parameter fitting and internal-state ODE integration in the reviewed source. The checked main covers algebraic Coulomb and Stribeck forces only; it does not validate parameter fitting or dynamic internal-state integration. Public LuGre state integration is now separately checked by friction-lugre-state; this does not verify the private interpolation/fitting callbacks recorded here.",
            "evidence": [
              {
                "path": "src/friction_core.f90",
                "sha256": "6ad2be97b6ae8ecec8c50ba6e3a363f8a968f00233f5a4216d7edd85c69e9c82",
                "line": 221
              }
            ],
            "author_examples": []
          },
          {
            "id": "friction-lugre-state",
            "package_id": "friction",
            "revision": "8e75dcac26f47417a439adfcbaa24834105d89fe",
            "module": "friction_lugre",
            "procedure": "lugre_model%state / evaluate (integrated with diffeq runge_kutta_23)",
            "gams_codes": [
              "I1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Public LuGre constitutive internal-state ODE, distinct from the private fitting/interpolation callbacks in friction_core. Dedicated driver integrates constant-velocity segments with reversals, rest, changing segment loads and nonzero initial states against a closed-form exponential solution. Force histories and state derivatives are independently checked. No parameter-fitting or private callback claim.",
            "evidence": [
              {
                "path": "src/models/friction_lugre.f90",
                "sha256": "f9f3c6376eb600ce00edb00a2b88dd9963a1948fb76b76b998d1658c7df961ba",
                "line": 161
              }
            ],
            "author_examples": [
              {
                "path": "examples/lugre_example.f90",
                "sha256": "41ff9971a214b652d1ed932075fadf8fbd0de75c49def49c0ebd08c806762e26",
                "line": 1
              }
            ],
            "driver_id": "friction-lugre-reference"
          }
        ],
        "numerical_review": {
          "revision": "8e75dcac26f47417a439adfcbaa24834105d89fe",
          "archive_sha256": "71dddc287abf50fc6c174e610eda1711fa5befc0b970fa931cc854381b1603cb",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "friction-fit",
            "friction-internal-state",
            "friction-lugre-state"
          ],
          "notes": "Constitutive friction models, with nonlinear parameter fitting and internal-state ODE integration in the reviewed source. The checked main covers algebraic Coulomb and Stribeck forces only; it does not validate parameter fitting or dynamic internal-state integration. Public LuGre state/evaluate APIs separately reviewed with an analytical piecewise-constant IVP consumer; private fitting callbacks and the known fitting failure remain outside the checked scope."
        }
      },
      "playground": {
        "package_id": "friction",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=friction",
        "package_revision": "8e75dcac26f47417a439adfcbaa24834105d89fe",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/friction.f90",
          "sha256": "0318e4d8e772383e58c39b5b7495fb1d979269753b253a3bc85389a524a556bc"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "8e75dcac26f47417a439adfcbaa24834105d89fe",
        "verified_at": "2026-10-28T22:10:17.874400+00:00",
        "packages": [
          {
            "id": "github:jchristopherson/collections",
            "repository": "jchristopherson/collections",
            "revision": "ce37c94e72b3ae5db2e2208489999260a7875f81"
          },
          {
            "id": "github:jchristopherson/diffeq",
            "repository": "jchristopherson/diffeq",
            "revision": "989b320179c23aaff4bfe72994c90e9034f50c74"
          },
          {
            "id": "github:jchristopherson/fstats",
            "repository": "jchristopherson/fstats",
            "revision": "5fdb86d1e7fa057d776d7d9477942fd6d387dd2f"
          },
          {
            "id": "github:jchristopherson/fstring",
            "repository": "jchristopherson/fstring",
            "revision": "1bb1043a1ed34b8bd57f2687166463dd573bce3d"
          },
          {
            "id": "github:jchristopherson/linalg",
            "repository": "jchristopherson/linalg",
            "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68"
          }
        ]
      }
    },
    {
      "id": "github:jchristopherson/fstats",
      "name": "fstats",
      "repository": {
        "host": "github",
        "owner": "jchristopherson",
        "name": "fstats",
        "url": "https://github.com/jchristopherson/fstats"
      },
      "description": "Probability distributions, statistical tests, regression, bootstrap sampling, and MCMC.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Statistics"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "allan-variance",
          "anova",
          "bootstrap",
          "design-of-experiments",
          "distributions",
          "experimental-design",
          "gauge-r-and-r-study",
          "hypothesis-testing",
          "interpolation",
          "levenberg-marquardt",
          "lowess",
          "markov-chain-monte-carlo",
          "mcmc-sampler",
          "missing-data",
          "regression",
          "sampling-distribution",
          "special-functions",
          "statistical-testing",
          "statistics"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 16,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "bootstrap",
          "hypothesis-testing",
          "mcmc",
          "probability-distributions",
          "regression",
          "statistics"
        ],
        "gams_codes": [
          "L",
          "L1",
          "L1a",
          "L1a1",
          "L1a1a",
          "L1a1b",
          "L2",
          "L4",
          "L5",
          "L6",
          "L8",
          "M",
          "M1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Distribution evaluation, random sampling, summaries, statistical tests, resampling, regression and MCMC support the selected statistical and simulation subclasses.",
        "reviewed_revision": "5fdb86d1e7fa057d776d7d9477942fd6d387dd2f",
        "procedures": [
          {
            "id": "fstats-variance",
            "package_id": "fstats",
            "revision": "5fdb86d1e7fa057d776d7d9477942fd6d387dd2f",
            "module": "fstats",
            "procedure": "variance",
            "gams_codes": [
              "L1a1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Sample dispersion/variance; probability distributions, tests, and regression need their own procedure records.",
            "evidence": [
              {
                "path": "src/statistics/fstats_descriptive_statistics.f90",
                "sha256": "ec18e6e3c31f0d593ba311eccbc8f029640b01c0eeb88be269581551b0a61099",
                "line": 51
              }
            ],
            "author_examples": [
              {
                "path": "tests/fstats_statistics_tests.f90",
                "sha256": "b9984871b167b2b69c73705698a11d93461397e6fc406047ad3448ab86c1c9ea"
              }
            ],
            "driver_id": "fstats-sample-variance-checks"
          },
          {
            "id": "fstats-mean",
            "package_id": "fstats",
            "revision": "5fdb86d1e7fa057d776d7d9477942fd6d387dd2f",
            "module": "fstats",
            "procedure": "mean",
            "gams_codes": [
              "L1a1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Sample location/mean; not a claim to cover every descriptive statistic.",
            "evidence": [
              {
                "path": "src/statistics/fstats_descriptive_statistics.f90",
                "sha256": "ec18e6e3c31f0d593ba311eccbc8f029640b01c0eeb88be269581551b0a61099",
                "line": 45
              }
            ],
            "author_examples": [
              {
                "path": "tests/fstats_statistics_tests.f90",
                "sha256": "b9984871b167b2b69c73705698a11d93461397e6fc406047ad3448ab86c1c9ea"
              }
            ],
            "driver_id": "fstats-mean-checks"
          }
        ],
        "numerical_review": {
          "revision": "5fdb86d1e7fa057d776d7d9477942fd6d387dd2f",
          "archive_sha256": "cf6b7367fc2a0d74f46000dc80a4cbedd07fd554e29117144b695b3a9ffa6fef",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fstats-variance",
            "fstats-mean"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fstats",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fstats",
        "package_revision": "5fdb86d1e7fa057d776d7d9477942fd6d387dd2f",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fstats.f90",
          "sha256": "5f59de90d4494ddc13641d5fecc68b31b0a889f8a3a27dfad7e2e0e9aecd82a9"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5fdb86d1e7fa057d776d7d9477942fd6d387dd2f",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": [
          {
            "id": "github:jchristopherson/collections",
            "repository": "jchristopherson/collections",
            "revision": "ce37c94e72b3ae5db2e2208489999260a7875f81"
          },
          {
            "id": "github:jchristopherson/fstring",
            "repository": "jchristopherson/fstring",
            "revision": "1bb1043a1ed34b8bd57f2687166463dd573bce3d"
          },
          {
            "id": "github:jchristopherson/linalg",
            "repository": "jchristopherson/linalg",
            "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68"
          }
        ]
      }
    },
    {
      "id": "github:jchristopherson/geompack",
      "name": "geompack",
      "repository": {
        "host": "github",
        "owner": "jchristopherson",
        "name": "geompack",
        "url": "https://github.com/jchristopherson/geompack"
      },
      "description": "Delaunay triangulation of planar point sets.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Geometry"
      ],
      "license": {
        "label": "GPL-3.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "delaunay-triangulation",
          "fortran",
          "fortran-package-manager",
          "geometry",
          "triangulation",
          "triangulation-delaunay"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 4,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "delaunay-triangulation",
          "geometry",
          "meshes",
          "point-sets"
        ],
        "gams_codes": [
          "P"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "b7a327ca3a13507859c42dd6fba50af0bb5d5c6a",
        "procedures": [
          {
            "id": "geompack-r8tris2",
            "package_id": "geompack",
            "revision": "b7a327ca3a13507859c42dd6fba50af0bb5d5c6a",
            "module": "geompack",
            "procedure": "r8tris2",
            "gams_codes": [
              "P"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Delaunay triangulation of planar point coordinates.",
            "evidence": [
              {
                "path": "src/r8tris2.f90",
                "sha256": "666b6632d06df0c5aff082caf53caa78078b90d45bcc30657a5cb2521d553a74",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/geompack_test_routines.f90",
                "sha256": "10c07fdf84fdb03477904aa7e29852b0e009f0ef2293fac657e0e3645b02a4a8"
              }
            ],
            "driver_id": "geompack-delaunay-reference"
          }
        ],
        "numerical_review": {
          "revision": "b7a327ca3a13507859c42dd6fba50af0bb5d5c6a",
          "archive_sha256": "63a1e8af824b6398516b4f51ff5f367fd99c5a79ed0af1e213d18956898cb466",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "geompack-r8tris2"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "geompack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=geompack",
        "package_revision": "b7a327ca3a13507859c42dd6fba50af0bb5d5c6a",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/geompack.f90",
          "sha256": "ddcb5ae0b22edfe9cee615eae2bd7f1a4ee3bf5c345c8bc0dbb8cb449a4334ba"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b7a327ca3a13507859c42dd6fba50af0bb5d5c6a",
        "verified_at": "2026-10-27T22:36:01.378932+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jchristopherson/linalg",
      "name": "linalg",
      "repository": {
        "host": "github",
        "owner": "jchristopherson",
        "name": "linalg",
        "url": "https://github.com/jchristopherson/linalg"
      },
      "description": "Convenient dense and sparse linear algebra interfaces to BLAS, LAPACK and ARPACK.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "MIT; bundled QRUPDATE GPL-3.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "blas",
          "cholesky-decomposition",
          "compressed-row-storage",
          "compressed-sparse-row",
          "eigenvalues",
          "eigenvectors",
          "fortran",
          "lapack",
          "linear-algebra",
          "lu-decomposition",
          "qr-decomposition",
          "singular-value-decomposition",
          "sparse-matrix"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 25,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arpack",
          "blas",
          "lapack",
          "linear-algebra",
          "sparse-matrices"
        ],
        "gams_codes": [
          "D",
          "D1",
          "D2",
          "D2a",
          "D2a1",
          "D3",
          "D4",
          "D4a",
          "D4a1",
          "D5",
          "D6",
          "D9",
          "D9a",
          "D9a1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
        "procedures": [
          {
            "id": "linalg-lu-factor",
            "package_id": "linalg",
            "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
            "module": "linalg",
            "procedure": "lu_factor, solve_lu",
            "gams_codes": [
              "D2a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Dense real LU factorization and solution; other generic overloads and algorithms are not covered by this one mapping.",
            "evidence": [
              {
                "path": "src/linalg_lu.f90",
                "sha256": "94805cf6433a3b6da3ddc91f2650a3b6a018a7c5cf92cf0ea07259aec9e30219",
                "line": 18
              }
            ],
            "author_examples": [
              {
                "path": "examples/linalg_lu_example.f90",
                "sha256": "6c0079778214da05570172d9e8b835f2f65cbe587840cc4b529220422de7210a"
              }
            ],
            "driver_id": "linalg-lu-reference"
          },
          {
            "id": "linalg-eigen",
            "package_id": "linalg",
            "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
            "module": "linalg",
            "procedure": "eigen (real symmetric overload)",
            "gams_codes": [
              "D4a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Real symmetric standard eigenproblem; generalized and complex overloads require separate classification.",
            "evidence": [
              {
                "path": "src/linalg_eigen.f90",
                "sha256": "473dd46f94f8e2cf410f9b74ccd4dc7cd1be07f1d64d6f4abf6afe8d0dcde15e",
                "line": 17
              }
            ],
            "author_examples": [
              {
                "path": "tests/test_eigen.f90",
                "sha256": "6c169ba8530b93f636f1e15c38645f985b41927f688e5231c7b858337383dcb7"
              }
            ],
            "driver_id": "linalg-eigen-reference"
          },
          {
            "id": "linalg-qr-factor",
            "package_id": "linalg",
            "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
            "module": "linalg",
            "procedure": "qr_factor",
            "gams_codes": [
              "D5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "QR factorization.",
            "evidence": [
              {
                "path": "src/linalg_qr.f90",
                "sha256": "1a733264f5667eaed0399d55cb8ff6ac86823a6f0cd06f7f7f7c713afbbda162",
                "line": 20
              }
            ],
            "author_examples": [
              {
                "path": "examples/linalg_qr_example.f90",
                "sha256": "358223450ea4c81c235a6060c4810725b9f09625ec1d17a0893a96a58c1940f0"
              }
            ],
            "driver_id": "linalg-qr-reference"
          },
          {
            "id": "linalg-svd",
            "package_id": "linalg",
            "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
            "module": "linalg",
            "procedure": "svd",
            "gams_codes": [
              "D6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Singular value decomposition.",
            "evidence": [
              {
                "path": "src/linalg_svd.f90",
                "sha256": "988ab8f129c2edbf6b691c8c0f4c40b6aeb756d8a99f6e9a31414d04006e1ce9",
                "line": 12
              }
            ],
            "author_examples": [
              {
                "path": "tests/test_svd.f90",
                "sha256": "4abb9d9243a127c17cef29ad305096df6c82d57cf3f84d2c63f4af060b4e46ba"
              }
            ],
            "driver_id": "linalg-svd-reference"
          },
          {
            "id": "linalg-solve-least-squares",
            "package_id": "linalg",
            "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
            "module": "linalg",
            "procedure": "solve_least_squares",
            "gams_codes": [
              "D9a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Unconstrained dense linear least-squares solution.",
            "evidence": [
              {
                "path": "src/linalg_least_squares.f90",
                "sha256": "525b2de0e9ab0316c914baa9534efabce0a5dbc4f88fef763caad1db7409fbb1",
                "line": 14
              }
            ],
            "author_examples": [],
            "driver_id": "linalg-least-squares-reference"
          }
        ],
        "numerical_review": {
          "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
          "archive_sha256": "6210b8b167b50694941f48b20ad5d94bdacab026f1eb4720e2d55e8ddde0b59a",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "linalg-lu-factor",
            "linalg-eigen",
            "linalg-qr-factor",
            "linalg-svd",
            "linalg-solve-least-squares"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "linalg",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=linalg",
        "package_revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/linalg.f90",
          "sha256": "75ece43120bc9f62a5d9ae13afd5a42003055c3a2f58ba44fbea27a6f471f94b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "cb8fb7b1c67986591083cac516eb700f47d69b68",
        "verified_at": "2026-10-28T21:02:12.296868+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jchristopherson/nonlin",
      "name": "nonlin",
      "repository": {
        "host": "github",
        "owner": "jchristopherson",
        "name": "nonlin",
        "url": "https://github.com/jchristopherson/nonlin"
      },
      "description": "Object-oriented solvers for nonlinear equations, least squares and optimization.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "MIT; linalg dependency bundles GPL-3.0-or-later QRUPDATE",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "bfgs",
          "fortran",
          "least-squares",
          "levenberg-marquardt",
          "nelder-mead",
          "newton-raphson-multivariable",
          "newtons-method",
          "nonlinear-equations",
          "optimization",
          "polynomials",
          "quasi-newton"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 27,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "least-squares",
          "nonlinear-equations",
          "optimization",
          "root-finding"
        ],
        "gams_codes": [
          "F",
          "F1",
          "F1b",
          "F2",
          "G",
          "G1",
          "G1b",
          "G1b1",
          "G1b1a",
          "G1b1b",
          "K",
          "K1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
        "procedures": [
          {
            "id": "nonlin-nelder-mead",
            "package_id": "nonlin",
            "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
            "module": "nonlin",
            "procedure": "nelder_mead%solve",
            "gams_codes": [
              "G1b1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Accepts a scalar objective through fcnnvar_helper.",
            "evidence": [
              {
                "path": "src/nonlin_optimize.f90",
                "line": 127,
                "sha256": "51aca88be20946a42cf59c9ec833a481e3f15774eb13d19f5a3e859a41c3cb4d"
              }
            ],
            "author_examples": [
              {
                "path": "examples/nonlin_nm_opt_example.f90",
                "sha256": "c0e8ebe4758c59d6701e48aaff0abf2b3f3cff8ba90a48f01f93ea1b97a3560f"
              },
              {
                "path": "examples/example_problems.f90",
                "sha256": "22fdb9fbed34daccff775cea9211e0b398fa8aec792460c9a3e808d7dd4eaedb",
                "line": 126
              }
            ],
            "driver_id": "nonlin-rosenbrock-nm"
          },
          {
            "id": "nonlin-bfgs",
            "package_id": "nonlin",
            "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
            "module": "nonlin",
            "procedure": "bfgs%solve",
            "gams_codes": [
              "G1b1a",
              "G1b1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "optional user gradient; finite-difference fallback",
            "notes": "User gradients are registered with fcnnvar_helper%set_gradient_fcn. G1b1a applies to finite-difference mode; G1b1b applies when the user supplies the gradient/Jacobian. The driver, where present, identifies its selected configuration.",
            "evidence": [
              {
                "path": "src/nonlin_optimize.f90",
                "line": 584,
                "sha256": "51aca88be20946a42cf59c9ec833a481e3f15774eb13d19f5a3e859a41c3cb4d"
              },
              {
                "path": "src/nonlin_multi_var.f90",
                "line": 204,
                "sha256": "d7d000db98bbe779d13dc4e643085711fef6dd817b1127265c05afb50deb49c4"
              }
            ],
            "author_examples": [
              {
                "path": "examples/nonlin_bfgs_example.f90",
                "sha256": "d1f6750301ffc98d17659eee49729ac77e78df168036eeb76789229f00e71880"
              },
              {
                "path": "examples/example_problems.f90",
                "sha256": "22fdb9fbed34daccff775cea9211e0b398fa8aec792460c9a3e808d7dd4eaedb",
                "line": 126
              }
            ],
            "driver_id": "nonlin-rosenbrock-bfgs"
          },
          {
            "id": "nonlin-least-squares",
            "package_id": "nonlin",
            "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
            "module": "nonlin",
            "procedure": "least_squares_solver%solve",
            "gams_codes": [
              "G1b1a",
              "G1b1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "optional user residual Jacobian",
            "notes": "The unconstrained least_squares_solver is mapped; constrained_least_squares_solver is a distinct type. For smooth nonlinear least squares, the user residual Jacobian supplies first-derivative information for the squared-residual objective; this is not a general scalar-objective gradient interface. G1b1a applies to finite-difference mode; G1b1b applies when the user supplies the gradient/Jacobian. The driver, where present, identifies its selected configuration.",
            "evidence": [
              {
                "path": "src/nonlin_least_squares.f90",
                "line": 141,
                "sha256": "cca74546680f2599f994d89415279792ca6b22a56ea5f4e6749bb72aa85b3cb5"
              }
            ],
            "author_examples": [
              {
                "path": "examples/nonlin_least_squares_example.f90",
                "sha256": "5b3c6e6e1a98864ddc12d1faca3132372f9a2958ba88cf340dc2af5dfcfc7d35"
              }
            ],
            "driver_id": "nonlin-lsq-jacobian-reference"
          },
          {
            "id": "nonlin-newton-solver",
            "package_id": "nonlin",
            "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
            "module": "nonlin",
            "procedure": "newton_solver%solve",
            "gams_codes": [
              "F2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "optional user Jacobian; finite-difference fallback",
            "notes": "Newton solution of nonlinear systems through vecfcn_helper. The checked F2 driver solves [1-x,10*(y-x**2)]=0 from [-1.2,1] and [2,2], requiring the known root [1,1], small recomputed residuals and documented successful termination. Configuration: finite-difference and analytic Jacobians. Other problem dimensions, singular systems and global convergence are not verified.",
            "evidence": [
              {
                "path": "src/nonlin_solve.f90",
                "sha256": "62139eb882d355d4b3f34ee7fe9a261676623c793814b730ca8e7925976d4130",
                "line": 83
              }
            ],
            "author_examples": [
              {
                "path": "examples/nonlin_newton_example.f90",
                "sha256": "5bea43535929c2ef5364b3e02df8504c0c60d30899f4815a57f23f016ffbcaa1"
              }
            ],
            "driver_id": "nonlin-rosenbrock-system"
          },
          {
            "id": "nonlin-brent-solver",
            "package_id": "nonlin",
            "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
            "module": "nonlin",
            "procedure": "brent_solver%solve",
            "gams_codes": [
              "F1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Scalar bracketing root finding; not Brent minimization.",
            "evidence": [
              {
                "path": "src/nonlin_solve.f90",
                "sha256": "62139eb882d355d4b3f34ee7fe9a261676623c793814b730ca8e7925976d4130",
                "line": 92
              }
            ],
            "author_examples": [
              {
                "path": "examples/nonlin_brent_example.f90",
                "sha256": "5bba1305f0ef0d684080bf85e20e2db41f8baff042b525afa001e944aa6a82dc"
              }
            ],
            "driver_id": "nonlin-roots-brent"
          },
          {
            "id": "nonlin-newton-1var",
            "package_id": "nonlin",
            "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
            "module": "nonlin",
            "procedure": "newton_1var_solver%solve",
            "gams_codes": [
              "F1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "optional first derivative; finite differences otherwise",
            "notes": "Safeguarded scalar Newton iteration retaining a bracket. The checked driver supplies an analytic derivative. GAMS F1b has no derivative-specific descendants.",
            "evidence": [
              {
                "path": "src/nonlin_solve.f90",
                "sha256": "62139eb882d355d4b3f34ee7fe9a261676623c793814b730ca8e7925976d4130",
                "line": 101
              },
              {
                "path": "src/nonlin_single_var.f90",
                "sha256": "2fdf9c0ed8429aa6a1875ecbb3a3dbd36ef609971cf9c9d10c4277d36a31ee08",
                "line": 67
              }
            ],
            "author_examples": [
              {
                "path": "examples/nonlin_newton1d_example.f90",
                "sha256": "749b9305ff5ebe3c5aa7d3f26548355f53747b91c7612f0458a16ecb8b1fb7bd"
              }
            ],
            "driver_id": "nonlin-roots-newton"
          }
        ],
        "numerical_review": {
          "revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
          "archive_sha256": "3a6f6cf6daa9b352213407f7c90555c22a492ad455cab0e2eb708efc7d34eaba",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "nonlin-nelder-mead",
            "nonlin-bfgs",
            "nonlin-least-squares",
            "nonlin-newton-solver",
            "nonlin-brent-solver",
            "nonlin-newton-1var"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "nonlin",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nonlin",
        "package_revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/nonlin.f90",
          "sha256": "4c25ae882446282ee2e168b8a47d004792d76c59ade47021f4babda850b9610e"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2133d067886ea6eca0552ebca9ed7bb8a262e5b8",
        "verified_at": "2026-10-28T21:02:12.296868+00:00",
        "packages": [
          {
            "id": "github:jchristopherson/ferror",
            "repository": "jchristopherson/ferror",
            "revision": "9d6c9750f5c14ef2c806104ea8dfdfc9ce91efed"
          },
          {
            "id": "github:jchristopherson/linalg",
            "repository": "jchristopherson/linalg",
            "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68"
          }
        ]
      }
    },
    {
      "id": "github:jchristopherson/peaks",
      "name": "peaks",
      "repository": {
        "host": "github",
        "owner": "jchristopherson",
        "name": "peaks",
        "url": "https://github.com/jchristopherson/peaks"
      },
      "description": "Detect local maxima and minima in sampled signals using a noise threshold.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Signal processing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "peak-detection",
          "signal-analysis"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "peak-detection",
          "sampled-data",
          "signal-processing"
        ],
        "gams_codes": [
          "N",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "5bd81dc18ddd629ecf3daa08769ff2440def3682"
      },
      "playground": {
        "package_id": "peaks",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=peaks",
        "package_revision": "5bd81dc18ddd629ecf3daa08769ff2440def3682",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/peaks.f90",
          "sha256": "f71c0b48cf8774ed6790d77748c3b55cef8ecdb42916e95b890868fc51557a99"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5bd81dc18ddd629ecf3daa08769ff2440def3682",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": [
          {
            "id": "github:jchristopherson/fortran_test_helper",
            "repository": "jchristopherson/fortran_test_helper",
            "revision": "1557b1485d8a5b042862042552f1e1a34552ca5e"
          }
        ]
      }
    },
    {
      "id": "github:jchristopherson/spectrum",
      "name": "spectrum",
      "repository": {
        "host": "github",
        "owner": "jchristopherson",
        "name": "spectrum",
        "url": "https://github.com/jchristopherson/spectrum"
      },
      "description": "Filtering, spectral estimation, convolution, resampling, and signal analysis.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Signal processing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "cross-spectral-density",
          "filter",
          "filtering",
          "fir-filter",
          "fortran",
          "gaussian-filter",
          "iir-filters",
          "numerical-differentiation",
          "periodogram",
          "power-spectral-density",
          "psd",
          "total-variation-filter",
          "total-variation-regularization",
          "transfer-function"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "convolution",
          "filtering",
          "resampling",
          "signal-processing",
          "spectral-analysis"
        ],
        "gams_codes": [
          "J",
          "J1",
          "J1a",
          "J1a1",
          "J2",
          "K",
          "K5",
          "N"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "J1/J2 cover transforms and convolution, K5 smoothing. General signal-data handling retains N without claiming a specific data-management operation.",
        "reviewed_revision": "5af0d5a85eccf971aa6e0fc72b1c7439c3cef536",
        "procedures": [
          {
            "id": "spectrum-convolve",
            "package_id": "spectrum",
            "revision": "5af0d5a85eccf971aa6e0fc72b1c7439c3cef536",
            "module": "spectrum",
            "procedure": "convolve",
            "gams_codes": [
              "J2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Discrete convolution; filtering and spectral estimation APIs remain broader package-level assignments. The checked J2 driver compares full and central results, including swapped inputs, with independent direct convolution for two length-37 signals and eight kernel lengths. It checks the actual central crop and longer-input output length at this pin.",
            "evidence": [
              {
                "path": "src/spectrum_convolve.f90",
                "sha256": "ebe3af6f2f764024d7a14931af15d248c9b1134d9813ee5e0f3e21d8c9a19995",
                "line": 41
              }
            ],
            "author_examples": [
              {
                "path": "examples/gaussian_filter_example.f90",
                "sha256": "df0fefca41dc195264ec43df19bd37dee291add4954e89bbfdba324ad543961a"
              }
            ],
            "driver_id": "spectrum-convolution-reference"
          },
          {
            "id": "spectrum-rfft",
            "package_id": "spectrum",
            "revision": "5af0d5a85eccf971aa6e0fc72b1c7439c3cef536",
            "module": "spectrum",
            "procedure": "rfft, irfft",
            "gams_codes": [
              "J1a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "One-dimensional real-input Fourier transform and inverse API. Checked driver covers rfft only: 42 forward transforms against direct trigonometric sums and Parseval energy, including odd/even lengths, zero padding and truncation. irfft is not verified; its source infers original length from half-spectrum length parity, which cannot encode both original parities.",
            "evidence": [
              {
                "path": "src/spectrum_fft.f90",
                "sha256": "d6b59a5c0e3e923eaa187863a48803564a8a1199d6ecccaedd7376da67099b1c",
                "line": 48
              }
            ],
            "author_examples": [
              {
                "path": "test/spectrum_fft_tests.f90",
                "sha256": "e150aac7d74d111733e5d4f21ce921c2bf0cce1ff12f67d534e3e8dfea1e8eca"
              }
            ],
            "driver_id": "spectrum-real-dft-reference"
          }
        ],
        "numerical_review": {
          "revision": "5af0d5a85eccf971aa6e0fc72b1c7439c3cef536",
          "archive_sha256": "20079f9ad017369097d5463fec26732775fb33a868eb2d3c3a308a044cb92e79",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "spectrum-convolve",
            "spectrum-rfft"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "spectrum",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=spectrum",
        "package_revision": "5af0d5a85eccf971aa6e0fc72b1c7439c3cef536",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/spectrum.f90",
          "sha256": "67a3c45d401e844312052026ed6743fdc6234c7f9adb876f5a0dd2b858e93be9"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5af0d5a85eccf971aa6e0fc72b1c7439c3cef536",
        "verified_at": "2026-10-28T21:02:12.296868+00:00",
        "packages": [
          {
            "id": "github:jchristopherson/linalg",
            "repository": "jchristopherson/linalg",
            "revision": "cb8fb7b1c67986591083cac516eb700f47d69b68"
          }
        ]
      }
    },
    {
      "id": "github:jeyemhex/fortran-regex",
      "name": "jeyemhex-regex",
      "repository": {
        "host": "github",
        "owner": "jeyemhex",
        "name": "fortran-regex",
        "url": "https://github.com/jeyemhex/fortran-regex"
      },
      "description": "Pure Fortran regular-expression matching, splitting and replacement.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Text processing"
      ],
      "license": {
        "label": "LGPL-2.1",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-29T01:11:46.981596+00:00"
      },
      "curation": {
        "topics": [
          "pattern-matching",
          "pure-fortran",
          "regular-expressions",
          "text-processing"
        ],
        "gams_codes": [
          "N",
          "N3",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Pure Fortran regular expressions by Edward Higgins, distinct from perazz/fortran-regex already selected under fortran-regex. The main checks matching and nonmatching anchored decimal measurements, matched substring, comma/space splitting and replacement. No source edits or native regex library. Pattern whitespace is ignored unless escaped; the author documents missing capture references and other features, so PCRE compatibility and all patterns are not claimed.",
        "reviewed_revision": "2ca0043837a86a4f77df494ddad2240c1b70e576",
        "procedures": [
          {
            "id": "jeyemhex-regex-strings",
            "package_id": "jeyemhex-regex",
            "revision": "2ca0043837a86a4f77df494ddad2240c1b70e576",
            "module": "regex",
            "procedure": "re_match / re_match_str / re_split / re_replace",
            "gams_codes": [
              "N3",
              "N5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Pure Fortran regular expressions by Edward Higgins, distinct from perazz/fortran-regex already selected under fortran-regex. The main checks matching and nonmatching anchored decimal measurements, matched substring, comma/space splitting and replacement. No source edits or native regex library. Pattern whitespace is ignored unless escaped; the author documents missing capture references and other features, so PCRE compatibility and all patterns are not claimed.",
            "evidence": [
              {
                "path": "src/regex.f90",
                "sha256": "0c4353791ee919da9418a127f43eb6fa3869e1539127edcc1dffb204b0392aa2",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/re_example.f90",
                "sha256": "510884d09fa7e656ffea00fc060127a51ace633697c00ad28aaa5ced6a0aa4b7"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "jeyemhex-regex",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=jeyemhex-regex",
        "package_revision": "2ca0043837a86a4f77df494ddad2240c1b70e576",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/jeyemhex-regex.f90",
          "sha256": "54189e2c4ce91df3b0ddc8af3ba7ff956f4612a06a68f251525edc8f43092d43"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2ca0043837a86a4f77df494ddad2240c1b70e576",
        "verified_at": "2026-10-29T01:33:12.542944+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jlokimlin/fishpack",
      "name": "fishpack",
      "repository": {
        "host": "github",
        "owner": "jlokimlin",
        "name": "fishpack",
        "url": "https://github.com/jlokimlin/fishpack"
      },
      "description": "Finite-difference solvers for separable elliptic partial differential equations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "UCAR AND MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 38,
        "stars_updated_at": "2026-10-28T16:54:18.541524+00:00"
      },
      "curation": {
        "topics": [
          "finite-differences",
          "helmholtz-equation",
          "partial-differential-equations",
          "poisson-equation"
        ],
        "gams_codes": [
          "I",
          "I2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "9dc7d2e7a847fa6a610752d4e91eda3ef9c6130d",
        "procedures": [
          {
            "id": "fishpack-api",
            "package_id": "fishpack",
            "revision": "9dc7d2e7a847fa6a610752d4e91eda3ef9c6130d",
            "module": "fishpack",
            "procedure": "hwscrt",
            "gams_codes": [
              "I2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable; sampled forcing and boundary values supplied",
            "notes": "Centered-grid finite-difference solver for separable two-dimensional Poisson/Helmholtz equations. Checked six rectangular-grid Poisson/Helmholtz solves with nonzero Dirichlet values, exact discrete eigenmode solutions, preserved boundaries, independently evaluated five-point residuals and second-order mesh refinement. Other boundary modes and positive shifts remain unverified.",
            "evidence": [
              {
                "path": "src/centered_cartesian_solver.f90",
                "sha256": "7637d5e74bcbc78eb40b1d3fe6aadcbd8ea3e1eaae643fa9991150288f113726",
                "line": 305
              }
            ],
            "author_examples": [
              {
                "path": "examples/thwscrt.f90",
                "sha256": "6960893da7a3bfae50314d5b0f3bf95a66fd7868b89088b0781d954cb39c2da6"
              }
            ],
            "driver_id": "fishpack-helmholtz-reference"
          }
        ],
        "numerical_review": {
          "revision": "9dc7d2e7a847fa6a610752d4e91eda3ef9c6130d",
          "archive_sha256": "06859781f35cceb1021f8387ff02944bfac301baae4d88f2abae7998e995b71e",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fishpack-api"
          ],
          "notes": "Centered-grid finite-difference solver for separable two-dimensional Poisson/Helmholtz equations. Source APIs reviewed at this exact revision. Sandbox verification covers the supplied consumer, not all routines."
        }
      },
      "playground": {
        "package_id": "fishpack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fishpack",
        "package_revision": "9dc7d2e7a847fa6a610752d4e91eda3ef9c6130d",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fishpack.f90",
          "sha256": "5bfc3e119732ee14381ea266431bcf15efeee9fb68e4a9e611a8e14e1c1f0e98"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "9dc7d2e7a847fa6a610752d4e91eda3ef9c6130d",
        "verified_at": "2026-10-28T16:55:51.932132+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jlokimlin/spherepack",
      "name": "spherepack",
      "repository": {
        "host": "github",
        "owner": "jlokimlin",
        "name": "spherepack",
        "url": "https://github.com/jlokimlin/spherepack"
      },
      "description": "Spherical harmonic transforms and spherical differential-equation solvers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Integral transforms"
      ],
      "license": {
        "label": "UCAR AND MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 36,
        "stars_updated_at": "2026-10-28T16:54:18.541524+00:00"
      },
      "curation": {
        "topics": [
          "helmholtz-equation",
          "integral-transforms",
          "partial-differential-equations",
          "spherical-harmonics"
        ],
        "gams_codes": [
          "I",
          "I2",
          "J"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "e80da29462c5987162a0884baaab7434d0215467",
        "procedures": [
          {
            "id": "spherepack-api",
            "package_id": "spherepack",
            "revision": "e80da29462c5987162a0884baaab7434d0215467",
            "module": "type_Sphere",
            "procedure": "Sphere%invert_helmholtz",
            "gams_codes": [
              "I2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "problem-specific source or delayed derivative callback",
            "notes": "Spherical Helmholtz inversion using harmonic analysis and synthesis; two vector-workspace rank declarations are patched in the catalog recipe. Dedicated I2 driver checks 258 nonresonant Helmholtz and zero-mean Poisson solves against exact real spherical-harmonic solutions on Gaussian and regular grids. Ten zonal/nonzonal modes through degree three and their mixture are used at three resolutions; no vector PDE or resonant-shift claim.",
            "evidence": [
              {
                "path": "src/type_Sphere.f90",
                "sha256": "c589e66855e16fee2a72a9e50083b677d98b73ab21d894c78f42bc63b4218858",
                "line": 748
              }
            ],
            "author_examples": [
              {
                "path": "examples/helmsph.f90",
                "sha256": "d0c30718e842c77a52dd4c3b4aee4560f04f8f9e4f9935685618539bd15c1e81"
              }
            ],
            "driver_id": "spherepack-helmholtz-reference"
          },
          {
            "id": "spherepack-scalar-transform",
            "package_id": "spherepack",
            "revision": "e80da29462c5987162a0884baaab7434d0215467",
            "module": "type_GaussianSphere",
            "procedure": "GaussianSphere%perform_scalar_analysis / perform_scalar_synthesis",
            "gams_codes": [
              "J"
            ],
            "review_level": "source-reviewed",
            "derivatives": "problem-specific source or delayed derivative callback",
            "notes": "Spherical harmonic analysis and synthesis on Gaussian grids; no narrower trigonometric-transform subclass is inferred. Dedicated J consumer verifies P0..P4 zonal fields and a mixed zonal field on three Gaussian grids. Analyzed coefficients must match independently normalized Legendre amplitudes, valid nonzonal coefficients must vanish, and synthesis is checked both after analysis and after erasing/injecting exact coefficients. Nonzero nonzonal modes, vector transforms, Nyquist/invalid coefficient storage and Helmholtz/PDE routines are not verified.",
            "evidence": [
              {
                "path": "src/type_GaussianSphere.f90",
                "sha256": "9c1e6364e3c4baed68d89ca4e49ed47786bbde9bddf66d82aac010475bf8745a",
                "line": 183
              }
            ],
            "author_examples": [
              {
                "path": "examples/helmsph.f90",
                "sha256": "d0c30718e842c77a52dd4c3b4aee4560f04f8f9e4f9935685618539bd15c1e81"
              }
            ],
            "driver_id": "spherepack-zonal-reference"
          }
        ],
        "numerical_review": {
          "revision": "e80da29462c5987162a0884baaab7434d0215467",
          "archive_sha256": "ff1f1d582099f5e95d44a084106ddd80d1efa6b51f220d7313520716171237cd",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "spherepack-api",
            "spherepack-scalar-transform"
          ],
          "notes": "Spherical Helmholtz inversion using harmonic analysis and synthesis; two vector-workspace rank declarations are patched in the catalog recipe. Source APIs reviewed at this exact revision. Sandbox verification covers the supplied consumer, not all routines."
        }
      },
      "playground": {
        "package_id": "spherepack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=spherepack",
        "package_revision": "e80da29462c5987162a0884baaab7434d0215467",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/spherepack.f90",
          "sha256": "0f4d7750a45ffff3a8474834a3c3823ddeee6bfb005017a03b31943044d6faaa"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e80da29462c5987162a0884baaab7434d0215467",
        "verified_at": "2026-10-28T16:55:51.932132+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jmhodges/kdtree2",
      "name": "kdtree2",
      "repository": {
        "host": "github",
        "owner": "jmhodges",
        "name": "kdtree2",
        "url": "https://github.com/jmhodges/kdtree2"
      },
      "description": "Nearest-neighbor and radius searches using k-dimensional trees.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Computational geometry"
      ],
      "license": {
        "label": "AFL-1.1",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 67,
        "stars_updated_at": "2026-10-29T12:15:32.322175+00:00"
      },
      "curation": {
        "topics": [
          "computational-geometry",
          "kd-tree",
          "nearest-neighbor",
          "spatial-search"
        ],
        "gams_codes": [
          "N",
          "N5",
          "P"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Nearest-neighbor and radius searches. An FPM wrapper selects unchanged src-f90/kdtree2.f90; the archived upstream single-precision setting is retained. The checked main builds a tree for 30 deterministic 2D points, compares four nearest indices and squared distances against an independent direct search, and checks radius-search count, membership, distances and uniqueness. The original Academic Free License 1.1 is retained. No source edits. The implementation has global search state and is not offered as thread-safe; the old interface, C++ code, every dimension and large-scale performance are not validated.",
        "reviewed_revision": "dc757acec3162948cb228c2e0457d10134ec1edc",
        "procedures": [
          {
            "id": "spatial-neighbors",
            "package_id": "kdtree2",
            "revision": "dc757acec3162948cb228c2e0457d10134ec1edc",
            "module": "kdtree2_module",
            "procedure": "kdtree2_create / kdtree2_n_nearest / kdtree2_r_nearest",
            "gams_codes": [
              "P",
              "N5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Nearest-neighbor and radius searches. An FPM wrapper selects unchanged src-f90/kdtree2.f90; the archived upstream single-precision setting is retained. The checked main builds a tree for 30 deterministic 2D points, compares four nearest indices and squared distances against an independent direct search, and checks radius-search count, membership, distances and uniqueness. The original Academic Free License 1.1 is retained. No source edits. The implementation has global search state and is not offered as thread-safe; the old interface, C++ code, every dimension and large-scale performance are not validated. The class-specific N5 driver additionally verifies 36 3D searches over 48 points against exhaustive real64 distances: k=1,5,48, radii squared 0/0.125/4 and both storage rearrangement modes. Tie ordering is not prescribed; complete radius sets and uniqueness are checked. This driver does not separately verify the broad P mapping.",
            "evidence": [
              {
                "path": "src-f90/kdtree2.f90",
                "sha256": "fc83829b66600b0581728b33d43748bbf06ad41d278914c9558a36730b0e2bde",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "src-f90/kdtree2_test.f90",
                "sha256": "fb97b7e385bd6e6b6faf023922d05c4bc135770012056f03368658be58dc0432"
              }
            ],
            "driver_id": "kdtree-neighbor-reference"
          }
        ],
        "numerical_review": {
          "revision": "dc757acec3162948cb228c2e0457d10134ec1edc",
          "archive_sha256": "1c009c7d231db804c48dfc3c9799b05fb2522073236f0cb27a1407a9fcc2d4ce",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "spatial-neighbors"
          ],
          "notes": "Nearest-neighbor and radius searches. An FPM wrapper selects unchanged src-f90/kdtree2.f90; the archived upstream single-precision setting is retained. The checked main builds a tree for 30 deterministic 2D points, compares four nearest indices and squared distances against an independent direct search, and checks radius-search count, membership, distances and uniqueness. The original Academic Free License 1.1 is retained. No source edits. The implementation has global search state and is not offered as thread-safe; the old interface, C++ code, every dimension and large-scale performance are not validated."
        }
      },
      "playground": {
        "package_id": "kdtree2",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=kdtree2",
        "package_revision": "dc757acec3162948cb228c2e0457d10134ec1edc",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/kdtree2.f90",
          "sha256": "77d3a0763ea8d542d689fc85922be56e12500402d432134b1e0824f44baaa051"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "dc757acec3162948cb228c2e0457d10134ec1edc",
        "verified_at": "2026-10-29T12:13:59.407766+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jordan4ibanez/fglm",
      "name": "fglm",
      "repository": {
        "host": "github",
        "owner": "jordan4ibanez",
        "name": "fglm",
        "url": "https://github.com/jordan4ibanez/fglm"
      },
      "description": "Typed vectors and 4-by-4 matrices for geometric transformations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T21:31:23.622523+00:00"
      },
      "curation": {
        "topics": [
          "geometry",
          "matrices",
          "transformations",
          "vectors"
        ],
        "gams_codes": [
          "D",
          "D1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Vector addition and component products, and column-major homogeneous translation and rotation matrices. The example checks a known point and a quarter-turn about z; broader geometry functionality is not exhaustively validated.",
        "reviewed_revision": "e1b6a5404b3e7a266da33173a07166970c16dd86",
        "procedures": [
          {
            "id": "fglm-api",
            "package_id": "fglm",
            "revision": "e1b6a5404b3e7a266da33173a07166970c16dd86",
            "module": "vector_3d / matrix_4f",
            "procedure": "add / multiply / translate / rotate_z",
            "gams_codes": [
              "D1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Vector addition and component products, and column-major homogeneous translation and rotation matrices. The example checks a known point and a quarter-turn about z; broader geometry functionality is not exhaustively validated.",
            "evidence": [
              {
                "path": "src/matrix_4f.f90",
                "line": 267,
                "sha256": "70efb588350accfa3b63dfda3f3913a145f5ba2e46fdd720ebf2928dfa512fd9"
              },
              {
                "path": "src/vector_3d.f90",
                "line": 259,
                "sha256": "2ea8f8025ab25baa75146fbec0dbbad78af5b83628996ca1ea260d7d66caeca7"
              }
            ],
            "author_examples": [],
            "driver_id": "fglm-transform-reference"
          }
        ],
        "numerical_review": {
          "revision": "e1b6a5404b3e7a266da33173a07166970c16dd86",
          "archive_sha256": "0d4d3f14d4e408a24d51beac17fed72b7eccec715486b691d70d4ac447c1fa66",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fglm-api"
          ],
          "notes": "Vector addition and component products, and column-major homogeneous translation and rotation matrices. The example checks a known point and a quarter-turn about z; broader geometry functionality is not exhaustively validated."
        }
      },
      "playground": {
        "package_id": "fglm",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fglm",
        "package_revision": "e1b6a5404b3e7a266da33173a07166970c16dd86",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fglm.f90",
          "sha256": "4c0be6163b6b4f283b4e23d81e26a1b9933395f689f354da0a2037e98448aa2b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e1b6a5404b3e7a266da33173a07166970c16dd86",
        "verified_at": "2026-10-28T21:40:06.974444+00:00",
        "packages": [
          {
            "id": "github:jordan4ibanez/constants_f90",
            "repository": "jordan4ibanez/constants_f90",
            "revision": "22b34d79274429ab391e92a94011befeb996704a"
          }
        ]
      }
    },
    {
      "id": "github:jordan4ibanez/for_fifo_queue",
      "name": "for_fifo_queue",
      "repository": {
        "host": "github",
        "owner": "jordan4ibanez",
        "name": "for_fifo_queue",
        "url": "https://github.com/jordan4ibanez/for_fifo_queue"
      },
      "description": "FIFO queue using C storage for fixed-size values.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data structures"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-29T01:11:46.981596+00:00"
      },
      "curation": {
        "topics": [
          "c-interoperability",
          "data-structures",
          "fifo",
          "queues"
        ],
        "gams_codes": [
          "N",
          "N4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "FIFO container using C allocations and byte copies. The main enqueues four 64-bit C-interoperable integers, verifies count and exact retrieval order, frees every popped allocation with C free, checks empty-pop behavior and destroys the queue. No source edits. The implementation uses GNU LOC and raw byte storage; the example makes no portability claim for arbitrary derived types, pointer-owning values, threading or every compiler.",
        "reviewed_revision": "b04b536589af8cf041b8e5e53484e57147fc746f",
        "procedures": [
          {
            "id": "fifo-queue-values",
            "package_id": "for_fifo_queue",
            "revision": "b04b536589af8cf041b8e5e53484e57147fc746f",
            "module": "fifo_queue",
            "procedure": "new_fifo_queue / fifo%push / pop / count / destroy",
            "gams_codes": [
              "N4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "FIFO container using C allocations and byte copies. The main enqueues four 64-bit C-interoperable integers, verifies count and exact retrieval order, frees every popped allocation with C free, checks empty-pop behavior and destroys the queue. No source edits. The implementation uses GNU LOC and raw byte storage; the example makes no portability claim for arbitrary derived types, pointer-owning values, threading or every compiler. The class-specific N4 driver checks 160 copied two-int64 records against an independent FIFO model, interleaved pushes/pops, three drain/refill cycles, empty-pop null pointers, independent queues and freeing all popped allocations. No pointer-owning or misaligned payload is certified.",
            "evidence": [
              {
                "path": "src/fifo_queue.f90",
                "sha256": "4a316e13281710c0467460c906029613d057996cf781eda942d879242396ec2c",
                "line": 1
              },
              {
                "path": "src/fifo_queue.c",
                "sha256": "7b30bb7afe4cc5cd12e5f79181f405bb52db33e94d53f01138a940958bfcefa9",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/tutorial.f90",
                "sha256": "c9a7f8bf73a4f99a96c885a3c7ab83dba477039bea68e7e7bb064d1419276aee"
              }
            ],
            "driver_id": "fifo-storage-reference"
          }
        ]
      },
      "playground": {
        "package_id": "for_fifo_queue",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=for_fifo_queue",
        "package_revision": "b04b536589af8cf041b8e5e53484e57147fc746f",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/for_fifo_queue.f90",
          "sha256": "d89062451085174aeb37a5aabb34a43c4b1a3f55d67999e8242d0c7cca1185e4"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b04b536589af8cf041b8e5e53484e57147fc746f",
        "verified_at": "2026-10-29T01:33:12.542944+00:00",
        "packages": []
      }
    },
    {
      "id": "github:jordan4ibanez/integer_set",
      "name": "integer_set",
      "repository": {
        "host": "github",
        "owner": "jordan4ibanez",
        "name": "integer_set",
        "url": "https://github.com/jordan4ibanez/integer_set"
      },
      "description": "Simple 32-bit and 64-bit integer sets with insertion, removal and sorting.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data structures"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-29T00:20:04.805639+00:00"
      },
      "curation": {
        "topics": [
          "data-structures",
          "integer-arithmetic",
          "sets"
        ],
        "gams_codes": [
          "N",
          "N4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Simple fixed-width integer sets. The checked main verifies duplicate rejection, removal and sorted contents for 32-bit values, and duplicate rejection for a 64-bit value above the 32-bit range. Membership is checked from public data, not a separate membership API. No source edits. Performance, every boundary and all operations are not validated.",
        "reviewed_revision": "85d336319d6593f9768c599835342912ce0b7bb8",
        "procedures": [
          {
            "id": "integer-set-storage",
            "package_id": "integer_set",
            "revision": "85d336319d6593f9768c599835342912ce0b7bb8",
            "module": "integer32_set / integer64_set",
            "procedure": "push / pop / sort",
            "gams_codes": [
              "N4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Simple fixed-width integer sets. The checked main verifies duplicate rejection, removal and sorted contents for 32-bit values, and duplicate rejection for a 64-bit value above the 32-bit range. Membership is checked from public data, not a separate membership API. No source edits. Performance, every boundary and all operations are not validated.",
            "evidence": [
              {
                "path": "src/integer32_set.f90",
                "sha256": "a4a3fdfee506038548995f7f4a88dc4d0fb0df8946a47ece05f4ecf3fdecc2b1",
                "line": 1
              }
            ],
            "author_examples": []
          }
        ]
      },
      "playground": {
        "package_id": "integer_set",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=integer_set",
        "package_revision": "85d336319d6593f9768c599835342912ce0b7bb8",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/integer_set.f90",
          "sha256": "8128be88e99967deea42424e22b84ddeac5c956e5baae3e430ca78122551480b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "85d336319d6593f9768c599835342912ce0b7bb8",
        "verified_at": "2026-10-29T00:34:23.456367+00:00",
        "packages": [
          {
            "id": "github:jordan4ibanez/constants_f90",
            "repository": "jordan4ibanez/constants_f90",
            "revision": "22b34d79274429ab391e92a94011befeb996704a"
          }
        ]
      }
    },
    {
      "id": "github:konrad1991/opti",
      "name": "opti",
      "repository": {
        "host": "github",
        "owner": "Konrad1991",
        "name": "opti",
        "url": "https://github.com/Konrad1991/opti"
      },
      "description": "Particle swarm optimization with star and adaptive neighborhood topologies.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "GPL-2.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "numerical-optimization",
          "particle-swarm-optimization",
          "pso",
          "pso-algorithm",
          "swarm-intelligence",
          "topology"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "global-optimization",
          "optimization",
          "particle-swarm",
          "stochastic-methods"
        ],
        "gams_codes": [
          "G",
          "G2",
          "G2i"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "6fb22db21bd2338e00690ff3706be61a1f101101",
        "procedures": [
          {
            "id": "opti-optimizer",
            "package_id": "opti",
            "revision": "6fb22db21bd2338e00690ff3706be61a1f101101",
            "module": "psomod",
            "procedure": "optimizer",
            "gams_codes": [
              "G2i"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Bounded particle-swarm global search; no global-optimum guarantee.",
            "evidence": [
              {
                "path": "src/particle_swarm.f90",
                "sha256": "99dbf107e8cdd418b72892545e7064b28fd67570174d072646a16e80ef1ed2a9",
                "line": 57
              }
            ],
            "author_examples": [
              {
                "path": "test/check.f90",
                "sha256": "481415e61d3ac9944fb6e0bbb7c0dc8c309f0a2d664fb8052c8ce813d9507d21"
              }
            ],
            "driver_id": "opti-rastrigin-reference"
          }
        ],
        "numerical_review": {
          "revision": "6fb22db21bd2338e00690ff3706be61a1f101101",
          "archive_sha256": "db700adb3e72d2f347fc8ef30a32ee61cac3f4c943be9af3354680ad8f9ee003",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "opti-optimizer"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "opti",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=opti",
        "package_revision": "6fb22db21bd2338e00690ff3706be61a1f101101",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/opti.f90",
          "sha256": "93c70dc077446872feb4a1962dfa3b4579cc1b661a6e97435a58270736abdaf5"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "6fb22db21bd2338e00690ff3706be61a1f101101",
        "verified_at": "2026-10-28T20:12:46.446837+00:00",
        "packages": [
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          }
        ]
      }
    },
    {
      "id": "github:kookma/ogpf",
      "name": "ogpf",
      "repository": {
        "host": "github",
        "owner": "kookma",
        "name": "ogpf",
        "url": "https://github.com/kookma/ogpf"
      },
      "description": "Object-based Gnuplot interface with browser-viewable contour plots.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Plotting"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "2d-plot",
          "3d-graphics",
          "animation",
          "color-palette",
          "contour-plot",
          "contours",
          "fortran2003",
          "fortran2008",
          "gnuplot",
          "graphics",
          "modern-fortran",
          "surface-plot"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 178,
        "stars_updated_at": "2026-10-29T22:54:35.874470+00:00"
      },
      "curation": {
        "topics": [
          "contour-plots",
          "gnuplot",
          "graphics",
          "plotting"
        ],
        "gams_codes": [
          "Q"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The checked example computes a Gaussian grid and uses the upstream contour interface to generate a PNG. A checksum-guarded catalog patch selects the headless pngcairo terminal instead of the upstream window terminal; the numerical and plotting procedures are unchanged. GNUplot is pinned as a native build dependency. The sandbox must return a browser-viewable PNG, and its preview is reviewed. MIT licensing is stated in both LICENSE and the upstream FPM manifest. Q covers graphics.",
        "reviewed_revision": "bd18021949be028856957c9c03832742513d5c67",
        "procedures": [
          {
            "id": "ogpf-contour",
            "package_id": "ogpf",
            "revision": "bd18021949be028856957c9c03832742513d5c67",
            "module": "ogpf / gpf",
            "procedure": "options / contour",
            "gams_codes": [
              "Q"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The checked example computes a Gaussian grid and uses the upstream contour interface to generate a PNG. A checksum-guarded catalog patch selects the headless pngcairo terminal instead of the upstream window terminal; the numerical and plotting procedures are unchanged. GNUplot is pinned as a native build dependency. The sandbox must return a browser-viewable PNG, and its preview is reviewed. MIT licensing is stated in both LICENSE and the upstream FPM manifest. Q covers graphics.",
            "evidence": [
              {
                "path": "src/ogpf.f90",
                "sha256": "4a53cd4bcc233db46287925b2e6a956515bc899defe92bd62a89a440f2d2d9fd",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/demo.f90",
                "sha256": "8d31c97a7b89a46620a6760a17d4daaa268c240daa28a68e55a988aee5cbbcaa"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "ogpf",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ogpf",
        "package_revision": "bd18021949be028856957c9c03832742513d5c67",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ogpf.f90",
          "sha256": "cfb660e591ebe8908e52cee810763d15b4a121a08d9270d717d5b5fadc0c7308"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "bd18021949be028856957c9c03832742513d5c67",
        "verified_at": "2026-10-29T23:03:22.407960+00:00",
        "packages": []
      }
    },
    {
      "id": "github:ladaf/poisfft",
      "name": "poisfft",
      "repository": {
        "host": "github",
        "owner": "LadaF",
        "name": "PoisFFT",
        "url": "https://github.com/LadaF/PoisFFT"
      },
      "description": "FFT-based Poisson solvers on regular grids; serial FFTW build.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "GPL-2.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 59,
        "stars_updated_at": "2026-10-29T13:26:21.447807+00:00"
      },
      "curation": {
        "topics": [
          "fft",
          "fftw",
          "partial-differential-equations",
          "poisson-equation",
          "spectral-methods"
        ],
        "gams_codes": [
          "I",
          "I2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Serial FFTW Poisson solvers. An FPM wrapper selects the Fortran library modules, retains upstream template includes, adds CPP-disabled USE declarations for the FPM dependency scanner, declares unused MPI/PFFT modules external for scanning, enables CPP and links Debian FFTW 3.3.10 single/double and thread libraries. MPI/PFFT and C/C++ bindings are not offered. The checked double-precision periodic 1D spectral problem compares its solution with sin(2*pi*x) at 32 points. Other boundary conditions, finite-difference modes, nonuniform grids, higher-dimensional solvers, single precision and parallel execution are not validated.",
        "reviewed_revision": "7e7ebcd75130553ef2cf58548ec519933a3d3426",
        "procedures": [
          {
            "id": "poisfft-periodic",
            "package_id": "poisfft",
            "revision": "7e7ebcd75130553ef2cf58548ec519933a3d3426",
            "module": "PoisFFT_DP",
            "procedure": "PoisFFT_Solver1D / Execute / Finalize",
            "gams_codes": [
              "I2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Serial FFTW Poisson solvers. An FPM wrapper selects the Fortran library modules, retains upstream template includes, adds CPP-disabled USE declarations for the FPM dependency scanner, declares unused MPI/PFFT modules external for scanning, enables CPP and links Debian FFTW 3.3.10 single/double and thread libraries. MPI/PFFT and C/C++ bindings are not offered. The checked double-precision periodic 1D spectral problem compares its solution with sin(2*pi*x) at 32 points. Other boundary conditions, finite-difference modes, nonuniform grids, higher-dimensional solvers, single precision and parallel execution are not validated. A class-specific I2 driver additionally verifies spectral and second-order finite-difference periodic solvers at 16/32/64 points against exact two-mode discrete solutions, finite-difference residuals, zero-mean gauge and reuse of each plan for zero forcing (12 solves). Finite-difference errors are separated from solver error; other boundary conditions, dimensions and parallel variants remain unverified.",
            "evidence": [
              {
                "path": "src/poisfft-inc.f90",
                "sha256": "9ce3fb97ce0e771e308e6b53a393f3530f9aa0736103709e7ed4a8f7b7dc3c45",
                "line": 1
              },
              {
                "path": "src/poisfft-solvers-inc.f90",
                "sha256": "2ecc7e1d79996d82f5132ddcc74a8452dfc95d8a2fe1ab2d7f005254640d13d2",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "src/testpoisson.f90",
                "sha256": "23e42cc2130f1dc249c801130a9c0fe68e5e94ceb2c16835a41cb4dfbd89c849"
              }
            ],
            "driver_id": "poisfft-periodic-reference"
          }
        ],
        "numerical_review": {
          "revision": "7e7ebcd75130553ef2cf58548ec519933a3d3426",
          "archive_sha256": "9e33e20c359f8fb4408d70e4d0b39d1c0062408788f1ee9adc37f631c6a46b66",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "poisfft-periodic"
          ],
          "notes": "Serial FFTW Poisson solvers. An FPM wrapper selects the Fortran library modules, retains upstream template includes, adds CPP-disabled USE declarations for the FPM dependency scanner, declares unused MPI/PFFT modules external for scanning, enables CPP and links Debian FFTW 3.3.10 single/double and thread libraries. MPI/PFFT and C/C++ bindings are not offered. The checked double-precision periodic 1D spectral problem compares its solution with sin(2*pi*x) at 32 points. Other boundary conditions, finite-difference modes, nonuniform grids, higher-dimensional solvers, single precision and parallel execution are not validated."
        }
      },
      "playground": {
        "package_id": "poisfft",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=poisfft",
        "package_revision": "7e7ebcd75130553ef2cf58548ec519933a3d3426",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/poisfft.f90",
          "sha256": "047c9768aaf0cf7d592605d206e5c4b4fee77a0e99b3919a28fa0ba4ed8d9acf"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "7e7ebcd75130553ef2cf58548ec519933a3d3426",
        "verified_at": "2026-10-29T13:30:57.553160+00:00",
        "packages": []
      }
    },
    {
      "id": "github:lauvergn/ad_dnsvm",
      "name": "ad_dnsvm",
      "repository": {
        "host": "github",
        "owner": "lauvergn",
        "name": "AD_dnSVM",
        "url": "https://github.com/lauvergn/AD_dnSVM"
      },
      "description": "Forward automatic differentiation of scalars, vectors and matrices through third derivatives.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differentiation"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "automatic-differentiation",
          "fortran"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 31,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "automatic-differentiation",
          "derivatives",
          "differentiation",
          "higher-order-derivatives"
        ],
        "gams_codes": [
          "H",
          "H1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "32db0bd122ce1dae290e9cf4c1fda4ab8f3de6f1",
        "procedures": [
          {
            "id": "ad-dnsvm-get-dns",
            "package_id": "ad_dnsvm",
            "revision": "32db0bd122ce1dae290e9cf4c1fda4ab8f3de6f1",
            "module": "ADdnSVM_m",
            "procedure": "get_d1, get_d2, get_d3",
            "gams_codes": [
              "H1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "operator-overloaded forward automatic differentiation",
            "notes": "Derivatives carried by automatic-differentiation types; not a finite-difference solver. The checked H1 driver uses exp(x)*sin(x) at four shared points with analytic references and explicit tolerances; only the recorded scalar configuration is verified.",
            "evidence": [
              {
                "path": "SRC/ADdnSVM/dnS_m.f90",
                "sha256": "88cd7d3889d4e766612171de2e3a40479ec31dda55851c172ad3bdf9602812c2",
                "line": 236
              }
            ],
            "author_examples": [
              {
                "path": "APP/Example_dnS.f90",
                "sha256": "dd3fb84216fec3e11aeaef600b92aa6a994141a90fe4148eeb27497a198a4315"
              }
            ],
            "driver_id": "ad-dnsvm-analytic-derivatives"
          }
        ],
        "numerical_review": {
          "revision": "32db0bd122ce1dae290e9cf4c1fda4ab8f3de6f1",
          "archive_sha256": "021f923a7f7d01be51416456b96bcfe4fb3ae3207d04fe0d71d03208b570c554",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "ad-dnsvm-get-dns"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "ad_dnsvm",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ad_dnsvm",
        "package_revision": "32db0bd122ce1dae290e9cf4c1fda4ab8f3de6f1",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ad_dnsvm.f90",
          "sha256": "142dd17cbbe671597b5012e1f056e084be064e1308d0d3f3db0a9d1e5d6f0ead"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "32db0bd122ce1dae290e9cf4c1fda4ab8f3de6f1",
        "verified_at": "2026-10-27T22:20:55.737826+00:00",
        "packages": [
          {
            "id": "github:lauvergn/qdutillib",
            "repository": "lauvergn/QDUtilLib",
            "revision": "8a1fa9ca7cf52683c98cc4bcb40f21dc41df6ed5"
          }
        ]
      }
    },
    {
      "id": "github:lauvergn/qdutillib",
      "name": "qdutillib",
      "repository": {
        "host": "github",
        "owner": "lauvergn",
        "name": "QDUtilLib",
        "url": "https://github.com/lauvergn/QDUtilLib"
      },
      "description": "Gauss-Legendre and Gauss-Hermite quadrature, linear algebra and numerical utilities.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Integration"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T16:54:18.541524+00:00"
      },
      "curation": {
        "topics": [
          "gauss-hermite",
          "gauss-legendre",
          "gaussian-quadrature",
          "quadrature"
        ],
        "gams_codes": [
          "H",
          "H2",
          "H2c"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "8a1fa9ca7cf52683c98cc4bcb40f21dc41df6ed5",
        "procedures": [
          {
            "id": "qdutillib-api",
            "package_id": "qdutillib",
            "revision": "8a1fa9ca7cf52683c98cc4bcb40f21dc41df6ed5",
            "module": "QDUtil_Quadrature_m",
            "procedure": "Init_Quadrature",
            "gams_codes": [
              "H2c"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Constructs quadrature nodes and weights; the HO rule uses full-function weights and requires the Gaussian in the integrand.",
            "evidence": [
              {
                "path": "SRC/Quadrature/Quadrature_m.f90",
                "sha256": "a0c2e6b3f7a6e7ef0d0ab42f6e5c0b3b7177a9c0fc5f18d09e5a65aeda005bf9",
                "line": 81
              }
            ],
            "author_examples": [
              {
                "path": "APP/App_QDLib.f90",
                "sha256": "f9228fb8929ad1eff119c632ed2ab936a1cffe85b349d67ae84c287bbcab0ab9"
              }
            ],
            "driver_id": "qdutillib-moments-reference"
          }
        ],
        "numerical_review": {
          "revision": "8a1fa9ca7cf52683c98cc4bcb40f21dc41df6ed5",
          "archive_sha256": "797b427653a60b8cf760c13400c35fc7b79fad59915b1fa508eac97de207281b",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "qdutillib-api"
          ],
          "notes": "Constructs quadrature nodes and weights; the HO rule uses full-function weights and requires the Gaussian in the integrand. Source APIs reviewed at this exact revision. Sandbox verification covers the supplied consumer, not all routines."
        }
      },
      "playground": {
        "package_id": "qdutillib",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=qdutillib",
        "package_revision": "8a1fa9ca7cf52683c98cc4bcb40f21dc41df6ed5",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/qdutillib.f90",
          "sha256": "89e1f5f8ab95cef1fba9c4b546a5b742d31a4b15d644a28e9f0757656a68f421"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "8a1fa9ca7cf52683c98cc4bcb40f21dc41df6ed5",
        "verified_at": "2026-10-28T16:55:51.932132+00:00",
        "packages": []
      }
    },
    {
      "id": "github:leonfoks/coretran",
      "name": "coretran",
      "repository": {
        "host": "github",
        "owner": "leonfoks",
        "name": "coretran",
        "url": "https://github.com/leonfoks/coretran"
      },
      "description": "Scientific utilities including sorting, dynamic arrays and k-d trees.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Numerical utilities"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "ford",
          "fortran",
          "fortran-routines",
          "kdtrees",
          "modern",
          "object-oriented",
          "scientific-computing",
          "sorting-algorithms"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 114,
        "stars_updated_at": "2026-10-29T12:53:38.105617+00:00"
      },
      "curation": {
        "topics": [
          "kd-tree",
          "nearest-neighbor",
          "scientific-computing",
          "sorting"
        ],
        "gams_codes": [
          "N",
          "N5",
          "N6",
          "P"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Scientific utilities. The main sorts repeated and negative integers, builds a k-d tree for 20 deterministic 2D points and compares the nearest point with an independent direct search. The OpenMP metapackage is resolved explicitly and -fopenmp is enabled; the execution sandbox still uses one thread. No source edits. The broad library is compiled, but this driver does not validate all containers, random generators, mathematical utilities or parallel performance.",
        "reviewed_revision": "204c4707f6680b6d7d1e4da39077d0fd3acfe37e",
        "procedures": [
          {
            "id": "coretran-sort",
            "package_id": "coretran",
            "revision": "204c4707f6680b6d7d1e4da39077d0fd3acfe37e",
            "module": "m_sort",
            "procedure": "sort",
            "gams_codes": [
              "N6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Scientific utilities. The main sorts repeated and negative integers, builds a k-d tree for 20 deterministic 2D points and compares the nearest point with an independent direct search. The OpenMP metapackage is resolved explicitly and -fopenmp is enabled; the execution sandbox still uses one thread. No source edits. The broad library is compiled, but this driver does not validate all containers, random generators, mathematical utilities or parallel performance. The checked GAMS driver uses explicit stable=true only. A mixed-setting probe fails with stable=false on 16 equal integer32 values; source/hash/result are retained in docs/gams-candidates/coretran-sort.",
            "evidence": [
              {
                "path": "src/sorting/m_sort.f90",
                "sha256": "ab93ce2b00b1883c12517fc176c689430ecf22348404223e4588320976680a03",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/m_tests.f90",
                "sha256": "bf13819d217fb1f35a35b20b5694b769cc97a4d865637d3ad526398c65705eb3"
              }
            ],
            "driver_id": "coretran-sort-reference"
          },
          {
            "id": "coretran-neighbor",
            "package_id": "coretran",
            "revision": "204c4707f6680b6d7d1e4da39077d0fd3acfe37e",
            "module": "m_KdTree",
            "procedure": "KdTree / KdTreeSearch%nearest",
            "gams_codes": [
              "P",
              "N5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Scientific utilities. The main sorts repeated and negative integers, builds a k-d tree for 20 deterministic 2D points and compares the nearest point with an independent direct search. The OpenMP metapackage is resolved explicitly and -fopenmp is enabled; the execution sandbox still uses one thread. No source edits. The broad library is compiled, but this driver does not validate all containers, random generators, mathematical utilities or parallel performance. A broader nearest-neighbor probe fails on a valid 31-point query; its source, hash and result are retained in docs/gams-candidates/coretran-nearest. This procedure has no checked GAMS driver.",
            "evidence": [
              {
                "path": "src/spatial/m_KdTree.f90",
                "sha256": "97f1af49aaaf8e006831b7ff88460ca312c8f628e53d76524323fd300058edd5",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/m_tests.f90",
                "sha256": "bf13819d217fb1f35a35b20b5694b769cc97a4d865637d3ad526398c65705eb3"
              }
            ]
          }
        ],
        "numerical_review": {
          "revision": "204c4707f6680b6d7d1e4da39077d0fd3acfe37e",
          "archive_sha256": "29b2e281a6d1bdefd6abe141da563fe015737eb7c2604083c666cfcbe9df19e0",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "coretran-sort",
            "coretran-neighbor"
          ],
          "notes": "Scientific utilities. The main sorts repeated and negative integers, builds a k-d tree for 20 deterministic 2D points and compares the nearest point with an independent direct search. The OpenMP metapackage is resolved explicitly and -fopenmp is enabled; the execution sandbox still uses one thread. No source edits. The broad library is compiled, but this driver does not validate all containers, random generators, mathematical utilities or parallel performance."
        }
      },
      "playground": {
        "package_id": "coretran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=coretran",
        "package_revision": "204c4707f6680b6d7d1e4da39077d0fd3acfe37e",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/coretran.f90",
          "sha256": "78caf6f9e958b712d29aa17fd26e11478a930eca880c56739588b3121c95bea1"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "204c4707f6680b6d7d1e4da39077d0fd3acfe37e",
        "verified_at": "2026-10-29T12:54:09.059921+00:00",
        "packages": []
      }
    },
    {
      "id": "github:lewisfish/fortran_stb_image",
      "name": "fortran_stb_image",
      "repository": {
        "host": "github",
        "owner": "lewisfish",
        "name": "fortran_stb_image",
        "url": "https://github.com/lewisfish/fortran_stb_image"
      },
      "description": "Read and write PNG and other raster image formats through the stb libraries.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Images"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "file-io",
          "image-io",
          "images",
          "language-bindings",
          "png"
        ],
        "gams_codes": [
          "N",
          "N1",
          "Q"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "f5c1633dfbaa1953fe8fa12bd01cb06dab0b6128"
      },
      "playground": {
        "package_id": "fortran_stb_image",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran_stb_image",
        "package_revision": "f5c1633dfbaa1953fe8fa12bd01cb06dab0b6128",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran_stb_image.f90",
          "sha256": "d7e4c2a3c12208a44f9e73f896cccacfc64d213206e6369fae65ba0e99f911da"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f5c1633dfbaa1953fe8fa12bd01cb06dab0b6128",
        "verified_at": "2026-10-28T01:15:41.906948+00:00",
        "packages": []
      }
    },
    {
      "id": "github:libmbd/libmbd",
      "name": "libmbd",
      "repository": {
        "host": "github",
        "owner": "libmbd",
        "name": "libmbd",
        "url": "https://github.com/libmbd/libmbd"
      },
      "description": "Many-body dispersion energies and gradients; checked argon-dimer example.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Quantum mechanics"
      ],
      "license": {
        "label": "MPL-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 67,
        "stars_updated_at": "2026-10-30T00:25:47.816978+00:00"
      },
      "curation": {
        "topics": [
          "dispersion",
          "gradients",
          "interaction-energy",
          "many-body",
          "quantum-chemistry"
        ],
        "gams_codes": [
          "D",
          "D4",
          "Z"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The serial Fortran library and Fortran-written C interface are selected from the upstream CMake target and linked with pinned OpenBLAS. MPI/ScaLAPACK and ELSI are disabled. An audited version module uses an explicitly identified 0.0.0 plus pinned-commit suffix for the Git archive, rather than claiming a release version. The checked main adapts the author's argon-dimer tests at four angstrom separation, verifies dispersion energy and gradient norm against upstream reference values, checks finite results and equal/opposite gradients, and checks library exceptions. D4 covers the Hamiltonian diagonalization used by the many-body dispersion calculation; Z denotes the domain-specific physical model, not a general-purpose eigensolver interface. Other molecules, periodic systems, distributed runs and all available models are outside this consumer verification scope. MPL-2.0 notices are retained.",
        "reviewed_revision": "77d7ab424d21f43dea9f57734b355ce4ea4d1a42",
        "procedures": [
          {
            "id": "libmbd-dispersion",
            "package_id": "libmbd",
            "revision": "77d7ab424d21f43dea9f57734b355ce4ea4d1a42",
            "module": "mbd / mbd_hamiltonian",
            "procedure": "mbd_calc_t%evaluate_vdw_method / get_mbd_hamiltonian_energy_real",
            "gams_codes": [
              "D4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The serial Fortran library and Fortran-written C interface are selected from the upstream CMake target and linked with pinned OpenBLAS. MPI/ScaLAPACK and ELSI are disabled. An audited version module uses an explicitly identified 0.0.0 plus pinned-commit suffix for the Git archive, rather than claiming a release version. The checked main adapts the author's argon-dimer tests at four angstrom separation, verifies dispersion energy and gradient norm against upstream reference values, checks finite results and equal/opposite gradients, and checks library exceptions. D4 covers the Hamiltonian diagonalization used by the many-body dispersion calculation; Z denotes the domain-specific physical model, not a general-purpose eigensolver interface. Other molecules, periodic systems, distributed runs and all available models are outside this consumer verification scope. MPL-2.0 notices are retained.",
            "evidence": [
              {
                "path": "src/mbd.F90",
                "sha256": "774485717852b118cbaf93b1f494f4f3ec31c245d0aa84c2c462d9102f69814a",
                "line": 1
              },
              {
                "path": "src/mbd_hamiltonian.F90",
                "sha256": "004fc70ec2b1ddb6366276db9c598a92e91f84b94e552a51e9f28e5fb53d36ba",
                "line": 1
              },
              {
                "path": "src/mbd_matrix.F90",
                "sha256": "a73913642f08931af976e285609f87b89d0d70e159eaa26c9b778c7a469e7d53",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "tests/mbd_api_tests.F90",
                "sha256": "3d42b5853df6f510ee4b024e41216db3fa45d9c610974f418453865e42e42b31"
              }
            ],
            "driver_id": "libmbd-dimer-spectrum"
          }
        ],
        "numerical_review": {
          "revision": "77d7ab424d21f43dea9f57734b355ce4ea4d1a42",
          "archive_sha256": "b772f07bcca8686b0beb25abf434a8180e5230936c6d44cacbcb3a7c3aac0575",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "libmbd-dispersion"
          ],
          "notes": "The serial Fortran library and Fortran-written C interface are selected from the upstream CMake target and linked with pinned OpenBLAS. MPI/ScaLAPACK and ELSI are disabled. An audited version module uses an explicitly identified 0.0.0 plus pinned-commit suffix for the Git archive, rather than claiming a release version. The checked main adapts the author's argon-dimer tests at four angstrom separation, verifies dispersion energy and gradient norm against upstream reference values, checks finite results and equal/opposite gradients, and checks library exceptions. D4 covers the Hamiltonian diagonalization used by the many-body dispersion calculation; Z denotes the domain-specific physical model, not a general-purpose eigensolver interface. Other molecules, periodic systems, distributed runs and all available models are outside this consumer verification scope. MPL-2.0 notices are retained."
        }
      },
      "playground": {
        "package_id": "libmbd",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=libmbd",
        "package_revision": "77d7ab424d21f43dea9f57734b355ce4ea4d1a42",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/libmbd.f90",
          "sha256": "4389061fb559e64401d63638bd8ab3ac58a2c5b8b92e82a1aea1f09a0cd6a90a"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "77d7ab424d21f43dea9f57734b355ce4ea4d1a42",
        "verified_at": "2026-10-30T00:29:48.037366+00:00",
        "packages": []
      }
    },
    {
      "id": "github:lkedward/fhash",
      "name": "fhash",
      "repository": {
        "host": "github",
        "owner": "LKedward",
        "name": "fhash",
        "url": "https://github.com/LKedward/fhash"
      },
      "description": "Hash tables with generic keys and values.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "fpm",
          "hashmap",
          "hashtable"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 42,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "dictionaries",
          "hash-tables",
          "polymorphism"
        ],
        "gams_codes": [
          "N",
          "N4",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "3230739066bd828cd2aa49eca48327a607d57732"
      },
      "playground": {
        "package_id": "fhash",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fhash",
        "package_revision": "3230739066bd828cd2aa49eca48327a607d57732",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fhash.f90",
          "sha256": "3ded535863529c89a81e99f40a156d742f2a6ec3371ed76fb39a4558480ac37b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "3230739066bd828cd2aa49eca48327a607d57732",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:loiseaujc/specialmatrices",
      "name": "specialmatrices",
      "repository": {
        "host": "github",
        "owner": "loiseaujc",
        "name": "SpecialMatrices",
        "url": "https://github.com/loiseaujc/SpecialMatrices"
      },
      "description": "Structured diagonal, circulant, Toeplitz, tridiagonal, and other matrices.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD-3-Clause (README declaration; manifest placeholder)",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "linear-algebra",
          "sparse-linear-systems",
          "sparse-matrix"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 4,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "circulant-matrices",
          "linear-algebra",
          "structured-matrices",
          "toeplitz-matrices",
          "tridiagonal-matrices"
        ],
        "gams_codes": [
          "D",
          "D1",
          "D2",
          "D3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "2f53a4b51afbeb2efd2b60eb379283f978359d2f",
        "procedures": [
          {
            "id": "specialmatrices-solve",
            "package_id": "specialmatrices",
            "revision": "2f53a4b51afbeb2efd2b60eb379283f978359d2f",
            "module": "SpecialMatrices",
            "procedure": "solve (diagonal matrices)",
            "gams_codes": [
              "D2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Structured matrix solve; retain D2 because the generic includes several structures and arithmetic types.",
            "evidence": [
              {
                "path": "src/Diagonal/specialmatrices_diagonal.f90",
                "sha256": "c0f599c3489b4a1352da6ff5ecd1f545226b2de540411b67b7137ea59e84633f",
                "line": 191
              }
            ],
            "author_examples": [],
            "driver_id": "specialmatrices-diagonal-reference"
          }
        ],
        "numerical_review": {
          "revision": "2f53a4b51afbeb2efd2b60eb379283f978359d2f",
          "archive_sha256": "b44d6c7e8806a2588fcbfde53fa280a867e0ce9fe31bd2d68828c6131194ce22",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "specialmatrices-solve"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "specialmatrices",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=specialmatrices",
        "package_revision": "2f53a4b51afbeb2efd2b60eb379283f978359d2f",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/specialmatrices.f90",
          "sha256": "f6e9f856c46733320804ef956be8df9bf6de65614541819677d3835413cdd770"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2f53a4b51afbeb2efd2b60eb379283f978359d2f",
        "verified_at": "2026-10-28T20:12:46.446837+00:00",
        "packages": [
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          },
          {
            "id": "github:nshalle/fftpack",
            "repository": "nshalle/fftpack",
            "revision": "73745a4e82f5f9c3fa07f49cac0439c21ba50829"
          }
        ]
      }
    },
    {
      "id": "github:mardiehl/stdlib_os",
      "name": "stdlib-os",
      "repository": {
        "host": "github",
        "owner": "MarDiehl",
        "name": "stdlib_os",
        "url": "https://github.com/MarDiehl/stdlib_os"
      },
      "description": "Operating-system and path utilities: directories, file metadata and path manipulation.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "File system"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 15,
        "stars_updated_at": "2026-10-29T19:56:39.893532+00:00"
      },
      "curation": {
        "topics": [
          "c-interoperability",
          "directories",
          "file-metadata",
          "filesystem",
          "paths"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Mixed C/Fortran operating-system utilities wrapped for FPM. Two checksum-guarded compatibility edits set the Linux os_name constant and restrict the ISO_C_BINDING import to avoid the Fortran 2023 F_C_STRING name collision. OS_SYSTEM_ID is configured as OS_LINUX. The checked consumer creates nested temporary directories and a 14-byte stream file, checks file size and type, basename/dirname and path normalization, then renames and deletes the file and removes both directories. No external files or user environment are required. This configured recipe and exported project target Linux; Windows branches, processes, user/home lookup and every path utility are not validated.",
        "reviewed_revision": "60768243de9325d9b57b2e825e7312d70b1e538a",
        "procedures": [
          {
            "id": "stdlib-os-files",
            "package_id": "stdlib-os",
            "revision": "60768243de9325d9b57b2e825e7312d70b1e538a",
            "module": "os / os_path",
            "procedure": "mkdir / rename / unlink / rmdir / join / exists / getsize",
            "gams_codes": [
              "N1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Mixed C/Fortran operating-system utilities wrapped for FPM. Two checksum-guarded compatibility edits set the Linux os_name constant and restrict the ISO_C_BINDING import to avoid the Fortran 2023 F_C_STRING name collision. OS_SYSTEM_ID is configured as OS_LINUX. The checked consumer creates nested temporary directories and a 14-byte stream file, checks file size and type, basename/dirname and path normalization, then renames and deletes the file and removes both directories. No external files or user environment are required. This configured recipe and exported project target Linux; Windows branches, processes, user/home lookup and every path utility are not validated.",
            "evidence": [
              {
                "path": "src/os.F90",
                "sha256": "8842d3d66329772abd9e3a58ab69be679a2ca6f25f73c45bb1fda289f5a41678",
                "line": 1
              },
              {
                "path": "src/os_path.F90",
                "sha256": "071b23b66a0f7830180ee687f76f3ba1f123154a3984b45b6757f996f476433d",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/stdlib_test.f90",
                "sha256": "cc99262c73219202f5be74a8c48f3d58588c8646b0e3a916e5a59cb3201fa99a"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "stdlib-os",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=stdlib-os",
        "package_revision": "60768243de9325d9b57b2e825e7312d70b1e538a",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/stdlib-os.f90",
          "sha256": "e203c0792caa37090663e628d46b81e03f6372ffbf4f1bb04c256407ff654c15"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "60768243de9325d9b57b2e825e7312d70b1e538a",
        "verified_at": "2026-10-29T19:54:58.400223+00:00",
        "packages": []
      }
    },
    {
      "id": "github:metoffice/ennuf",
      "name": "ennuf",
      "repository": {
        "host": "github",
        "owner": "MetOffice",
        "name": "ennuf",
        "url": "https://github.com/MetOffice/ennuf"
      },
      "description": "Fortran neural-network inference with a generated, fixed-weight 2-2-1 ReLU example.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Machine learning"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 4,
        "stars_updated_at": "2026-10-30T01:36:35.871512+00:00"
      },
      "curation": {
        "topics": [
          "code-generation",
          "inference",
          "machine-learning",
          "neural-networks",
          "relu"
        ],
        "gams_codes": [
          "K"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The pinned upstream neural_net_mod module is compiled with an audited, generated fixed-weight model: two inputs, two ReLU hidden units and one output in REAL32. Operator generation uses the author Model/Dense/Activation API and NumPy 2.2.6; neither TensorFlow, PyTorch nor Python inference runs in visitor jobs. The generator sorts the imported layer routine names for reproducibility; network operations are unchanged. Four inputs exercise positive and clipped hidden units and predictions are checked against independently evaluated weights and biases, including negative and positive outputs and finiteness. K covers inference as approximation; no least-squares fitting or training classification is inferred. The sample network is illustrative, not a trained scientific model. Other network layers, external model conversion and training are not verified. BSD-3-Clause and Crown copyright notices are retained.",
        "reviewed_revision": "2555a7f1560ef3cb7cf707221fa5bb1b5334ee6f",
        "procedures": [
          {
            "id": "ennuf-inference",
            "package_id": "ennuf",
            "revision": "2555a7f1560ef3cb7cf707221fa5bb1b5334ee6f",
            "module": "neural_net_mod / generated ennuf_example_mod",
            "procedure": "dense / activation_function / ennuf_example",
            "gams_codes": [
              "K"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The pinned upstream neural_net_mod module is compiled with an audited, generated fixed-weight model: two inputs, two ReLU hidden units and one output in REAL32. Operator generation uses the author Model/Dense/Activation API and NumPy 2.2.6; neither TensorFlow, PyTorch nor Python inference runs in visitor jobs. The generator sorts the imported layer routine names for reproducibility; network operations are unchanged. Four inputs exercise positive and clipped hidden units and predictions are checked against independently evaluated weights and biases, including negative and positive outputs and finiteness. K covers inference as approximation; no least-squares fitting or training classification is inferred. The sample network is illustrative, not a trained scientific model. Other network layers, external model conversion and training are not verified. BSD-3-Clause and Crown copyright notices are retained. The dedicated GAMS driver additionally checks generic dense/activation pipelines with 1/2/5 channel rows and five activations against 35,200 scalar references, and the existing generated model on an 81-point grid covering all four ReLU regions. Extreme-logit softmax and external model conversion remain unverified.",
            "evidence": [
              {
                "path": "src/ennuf/_internal/fortran/neural_net_mod.f90",
                "sha256": "6b036196f96eb13729e3b0730c22840373c56bb7197cf4c8de9357a3d667e5d8",
                "line": 1
              },
              {
                "path": "src/ennuf/_internal/ml_model/model.py",
                "sha256": "72ccc5b83c36336e8a4dd80bd771b1aa9ff570a18ad4d945bec6bf773016adf2",
                "line": 1
              },
              {
                "path": "src/ennuf/_internal/ml_model/layers/dense.py",
                "sha256": "df554605edb4f028816042c540f22bd736518257a6a163c53e9433398aac9f27",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/testennuf/example_models/pytorch_simple_mlp.py",
                "sha256": "e39ec6d028c5ae3a710718163643e7bee920034aae63881da008cbd28aeac221"
              }
            ],
            "driver_id": "ennuf-inference-reference"
          }
        ],
        "numerical_review": {
          "revision": "2555a7f1560ef3cb7cf707221fa5bb1b5334ee6f",
          "archive_sha256": "1854fdfcb0594d79983338991333556a3fdb89b8eaebb827ba93037d833f7cf1",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "ennuf-inference"
          ],
          "notes": "The pinned upstream neural_net_mod module is compiled with an audited, generated fixed-weight model: two inputs, two ReLU hidden units and one output in REAL32. Operator generation uses the author Model/Dense/Activation API and NumPy 2.2.6; neither TensorFlow, PyTorch nor Python inference runs in visitor jobs. The generator sorts the imported layer routine names for reproducibility; network operations are unchanged. Four inputs exercise positive and clipped hidden units and predictions are checked against independently evaluated weights and biases, including negative and positive outputs and finiteness. K covers inference as approximation; no least-squares fitting or training classification is inferred. The sample network is illustrative, not a trained scientific model. Other network layers, external model conversion and training are not verified. BSD-3-Clause and Crown copyright notices are retained."
        }
      },
      "playground": {
        "package_id": "ennuf",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ennuf",
        "package_revision": "2555a7f1560ef3cb7cf707221fa5bb1b5334ee6f",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ennuf.f90",
          "sha256": "bdf49713f9e21518812314e3325cf4be2e2e21b290c48a1277e6eaf8f3bee469"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2555a7f1560ef3cb7cf707221fa5bb1b5334ee6f",
        "verified_at": "2026-10-30T03:06:28.798191+00:00",
        "packages": []
      }
    },
    {
      "id": "github:milanskocic/ciaaw",
      "name": "ciaaw",
      "repository": {
        "host": "github",
        "owner": "MilanSkocic",
        "name": "ciaaw",
        "url": "https://github.com/MilanSkocic/ciaaw"
      },
      "description": "Standard atomic weights, isotopic abundances and nuclide masses for chemistry.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Physical properties"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "chemistry",
          "fortran",
          "fortran-package-manager",
          "isotopes",
          "standard-atomic-masses"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "atomic-weights",
          "chemistry",
          "isotopes",
          "physical-properties"
        ],
        "gams_codes": [
          "Z"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "02efd49caea1a7bbff0602b752075d3fe935bd10"
      },
      "playground": {
        "package_id": "ciaaw",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ciaaw",
        "package_revision": "02efd49caea1a7bbff0602b752075d3fe935bd10",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ciaaw.f90",
          "sha256": "c208861f1e4ce53319caa3b06a4213c372db2d1780740d11955583fc6920e986"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "02efd49caea1a7bbff0602b752075d3fe935bd10",
        "verified_at": "2026-10-28T20:12:46.446837+00:00",
        "packages": [
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          },
          {
            "id": "github:milanskocic/codata",
            "repository": "MilanSkocic/codata",
            "revision": "d0c9b1552f0fa483a364de4a69e82c5e23344caf"
          },
          {
            "id": "github:urbanjost/m_cli2",
            "repository": "urbanjost/M_CLI2",
            "revision": "a6934890178377cd92444d290aa3d3198ba9954d"
          }
        ]
      }
    },
    {
      "id": "github:milanskocic/codata",
      "name": "codata",
      "repository": {
        "host": "github",
        "owner": "MilanSkocic",
        "name": "codata",
        "url": "https://github.com/MilanSkocic/codata"
      },
      "description": "CODATA physical constants and uncertainties for several published adjustments.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Physical constants"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "c",
          "codata",
          "fortran-language",
          "fortran-library",
          "fortran-package-manager",
          "python",
          "science"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 10,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "physical-constants",
          "physics",
          "uncertainty"
        ],
        "gams_codes": [
          "Z"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "d0c9b1552f0fa483a364de4a69e82c5e23344caf"
      },
      "playground": {
        "package_id": "codata",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=codata",
        "package_revision": "d0c9b1552f0fa483a364de4a69e82c5e23344caf",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/codata.f90",
          "sha256": "2a6368afdfbed5253b21d416f634d5cff8bb65cb3c90273cfddfdbb95274021b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d0c9b1552f0fa483a364de4a69e82c5e23344caf",
        "verified_at": "2026-10-28T20:12:46.446837+00:00",
        "packages": [
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          }
        ]
      }
    },
    {
      "id": "github:milanskocic/ecx",
      "name": "ecx",
      "repository": {
        "host": "github",
        "owner": "MilanSkocic",
        "name": "ecx",
        "url": "https://github.com/MilanSkocic/ecx"
      },
      "description": "Electrochemical kinetics, impedance and photoelectrochemistry calculations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Physical properties"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "electrochemistry",
          "fortran-language",
          "fortran-library",
          "fortran-package-manager",
          "science"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T22:42:25.593426+00:00"
      },
      "curation": {
        "topics": [
          "electrical-impedance",
          "electrochemistry",
          "electrode-kinetics",
          "equivalent-circuits"
        ],
        "gams_codes": [
          "A",
          "A4",
          "Z"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Electrochemical models with complex-valued equivalent-circuit impedance. The main verifies resistor and capacitor impedances and their series combination against direct complex formulas at four angular frequencies. Kinetics and parameter estimation are not covered. A4 classifies the complex arithmetic interface, not an electrochemistry-specific GAMS class.",
        "reviewed_revision": "d30725e3cb9186bc79f81481f3d6fae8d177a7b7",
        "procedures": [
          {
            "id": "ecx-impedance",
            "package_id": "ecx",
            "revision": "d30725e3cb9186bc79f81481f3d6fae8d177a7b7",
            "module": "ecx__api / ecx__eis",
            "procedure": "z / zr / zc / zl",
            "gams_codes": [
              "A4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Electrochemical models with complex-valued equivalent-circuit impedance. The main verifies resistor and capacitor impedances and their series combination against direct complex formulas at four angular frequencies. Kinetics and parameter estimation are not covered. A4 classifies the complex arithmetic interface, not an electrochemistry-specific GAMS class. Dedicated A4 consumer checks R, C and L at 216 frequency cases over 12 parameter sets, with finite complex results, status/message checks and normalized closed-form errors. Series RLC resonance and parallel RC combinations are formed by the driver, not a package circuit solver. Nonideal elements, fitting, kinetics and exceptional inputs are not verified.",
            "evidence": [
              {
                "path": "src/ecx_api.f90",
                "sha256": "0d58382714be58fe13111801a48e95215bfcb30e02574f978d1627092ca9abb7",
                "line": 1
              },
              {
                "path": "src/ecx_eis.f90",
                "sha256": "f860f6e5054217a00e40038e58844c9e5dbaa82dfcbe2885e2cc7b4a64de6ac8",
                "line": 15
              }
            ],
            "author_examples": [
              {
                "path": "example/example.f90",
                "sha256": "41014b75e7eb9d070f9c2ced74977331605e1b0344eee20a2f79f9d96c1e23f7"
              }
            ],
            "driver_id": "ecx-rlc-reference"
          }
        ],
        "numerical_review": {
          "revision": "d30725e3cb9186bc79f81481f3d6fae8d177a7b7",
          "archive_sha256": "65110c8ee4576328c839d3421b391b72f5258c940a277a8f5971715bc3d64737",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "ecx-impedance"
          ],
          "notes": "Electrochemical models with complex-valued equivalent-circuit impedance. The main verifies resistor and capacitor impedances and their series combination against direct complex formulas at four angular frequencies. Kinetics and parameter estimation are not covered. A4 classifies the complex arithmetic interface, not an electrochemistry-specific GAMS class."
        }
      },
      "playground": {
        "package_id": "ecx",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ecx",
        "package_revision": "d30725e3cb9186bc79f81481f3d6fae8d177a7b7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ecx.f90",
          "sha256": "3deee68d105f318abe53018e64015faea80384adef71815e1aaa50933d3da7ca"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d30725e3cb9186bc79f81481f3d6fae8d177a7b7",
        "verified_at": "2026-10-28T22:42:59.624262+00:00",
        "packages": [
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          },
          {
            "id": "github:milanskocic/ciaaw",
            "repository": "MilanSkocic/ciaaw",
            "revision": "02efd49caea1a7bbff0602b752075d3fe935bd10"
          },
          {
            "id": "github:milanskocic/codata",
            "repository": "MilanSkocic/codata",
            "revision": "d0c9b1552f0fa483a364de4a69e82c5e23344caf"
          },
          {
            "id": "github:urbanjost/m_cli2",
            "repository": "urbanjost/M_CLI2",
            "revision": "a6934890178377cd92444d290aa3d3198ba9954d"
          }
        ]
      }
    },
    {
      "id": "github:milanskocic/iapws",
      "name": "iapws",
      "repository": {
        "host": "github",
        "owner": "MilanSkocic",
        "name": "iapws",
        "url": "https://github.com/MilanSkocic/iapws"
      },
      "description": "IAPWS thermodynamic properties of water, including saturation pressure and temperature.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Physical properties"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran-language",
          "fortran-library",
          "fortran-package-manager",
          "iapws",
          "science",
          "water"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 7,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "iapws",
          "physical-properties",
          "thermodynamics",
          "water"
        ],
        "gams_codes": [
          "Z"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "ce3820c011737bcc3a37a02b9ccfeff28616019f"
      },
      "playground": {
        "package_id": "iapws",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=iapws",
        "package_revision": "ce3820c011737bcc3a37a02b9ccfeff28616019f",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/iapws.f90",
          "sha256": "f51514ee1cd242b1cc58bb4ed2b2a9ff3895bb481f3327eb09b0a30a79c3bae3"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "ce3820c011737bcc3a37a02b9ccfeff28616019f",
        "verified_at": "2026-10-28T20:12:46.446837+00:00",
        "packages": [
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          },
          {
            "id": "github:milanskocic/ciaaw",
            "repository": "MilanSkocic/ciaaw",
            "revision": "140e0089f78d93eb6333fc8db4ff75aa84893522"
          },
          {
            "id": "github:urbanjost/m_cli2",
            "repository": "urbanjost/M_CLI2",
            "revision": "a6934890178377cd92444d290aa3d3198ba9954d"
          }
        ]
      }
    },
    {
      "id": "github:minard-jules/nafpack",
      "name": "nafpack",
      "repository": {
        "host": "github",
        "owner": "Minard-Jules",
        "name": "NAFPack",
        "url": "https://github.com/Minard-Jules/NAFPack"
      },
      "description": "Numerical analysis routines for Fourier transforms, linear systems and eigenproblems.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "General utilities"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "cmake",
          "eigenvalues",
          "fft",
          "fftw",
          "fpm",
          "linear-algebra"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "eigenvalues",
          "fourier-transforms",
          "linear-systems",
          "numerical-methods"
        ],
        "gams_codes": [
          "D",
          "D2",
          "D4",
          "J",
          "J1",
          "J1a",
          "J1a2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "9b1e9a98f8c28853a48e152605f84c994c271f45",
        "procedures": [
          {
            "id": "nafpack-execute-fft-plan-sp",
            "package_id": "nafpack",
            "revision": "9b1e9a98f8c28853a48e152605f84c994c271f45",
            "module": "NAFPack_Fourier_Transform",
            "procedure": "Fourier_Transform%execute_fft_plan_sp",
            "gams_codes": [
              "J1a2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Single-precision complex one-dimensional Fourier transform; other numerical modules are separate.",
            "evidence": [
              {
                "path": "src/Fourier_Transform/NAFPack_Fourier_Transform.f90",
                "sha256": "a6d3ea7f7892da95ca51d33a1f862b3edb665ef0338162df4d079275e5f53d78",
                "line": 37
              }
            ],
            "author_examples": [
              {
                "path": "test/Fourier_Transform/test_Fourier_Transform_fft_complex.f90",
                "sha256": "8c8786e96bcca6d050c96d12e5b0e068f5997b177c2ec7947cfb23aac2b632c6"
              }
            ],
            "driver_id": "nafpack-fft-reference"
          }
        ],
        "numerical_review": {
          "revision": "9b1e9a98f8c28853a48e152605f84c994c271f45",
          "archive_sha256": "fab50ff6999afd7ab8bfeabdf8aaf3a93b3e23f6ff9d8e85c74d84d0664f5a51",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "nafpack-execute-fft-plan-sp"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "nafpack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nafpack",
        "package_revision": "9b1e9a98f8c28853a48e152605f84c994c271f45",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/nafpack.f90",
          "sha256": "347789bb31514ff80223015be8b5f5e23e59bbbceff089ce6a5b44a09bf80389"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "9b1e9a98f8c28853a48e152605f84c994c271f45",
        "verified_at": "2026-10-28T02:10:15.391492+00:00",
        "packages": []
      }
    },
    {
      "id": "github:modern-fortran/neural-fortran",
      "name": "neural-fortran",
      "repository": {
        "host": "github",
        "owner": "modern-fortran",
        "name": "neural-fortran",
        "url": "https://github.com/modern-fortran/neural-fortran"
      },
      "description": "Neural networks with dense and convolutional layers and gradient-based training.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Machine learning"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "cnn",
          "deep-learning",
          "fortran",
          "machine-learning",
          "neural-network",
          "parallel"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 478,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "convolutional-networks",
          "gradient-based-optimization",
          "machine-learning",
          "neural-networks"
        ],
        "gams_codes": [
          "G",
          "G1",
          "G1b",
          "K"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "G1 covers gradient-based network training. K remains broad because the package is not restricted to least-squares fitting.",
        "reviewed_revision": "b2073fa542c8dcdf9466d1a192d2888b628a5df3",
        "procedures": [
          {
            "id": "neural-network-train",
            "package_id": "neural-fortran",
            "revision": "b2073fa542c8dcdf9466d1a192d2888b628a5df3",
            "module": "nf",
            "procedure": "network%train",
            "gams_codes": [
              "G1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "internal backpropagation",
            "notes": "Network-specific SGD with internal backpropagation, not a general scalar-objective callback solver. The checked driver calls network%train on one/two-input, two-output affine maps with full/stochastic batches; nonlinear networks and other optimizers remain unverified.",
            "evidence": [
              {
                "path": "src/nf/nf_network.f90",
                "line": 248,
                "sha256": "52a5650685f3b959be16e6fdc458c48889adde993374b2f727053162dab71b68"
              },
              {
                "path": "src/nf/nf_optimizers.f90",
                "line": 123,
                "sha256": "0704ed1773a418b7b6d2f53882abab206350d5efa55fb3c55bdabbfc69236f14"
              },
              {
                "path": "src/nf/nf_network_submodule.f90",
                "line": 561,
                "sha256": "dd9a175a466549de3365c05e99c0c84930f3ef87aa617f21911e773fa25012c7"
              }
            ],
            "author_examples": [
              {
                "path": "example/quadratic.f90",
                "sha256": "9d06ad1616a851e327bb5d0a82387dc18500c4465bcb6545c24ffb948340eba4"
              }
            ],
            "driver_id": "neural-affine-reference"
          }
        ],
        "numerical_review": {
          "revision": "b2073fa542c8dcdf9466d1a192d2888b628a5df3",
          "archive_sha256": "2e92f6d91db9bb2da0dabb45d3985de12d2eae493a5ee2a6881ba54d7f9e43ba",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "neural-network-train"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "neural-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=neural-fortran",
        "package_revision": "b2073fa542c8dcdf9466d1a192d2888b628a5df3",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/neural-fortran.f90",
          "sha256": "af8c830fedb2ae38084825d3112b71441d04773cd4facc0a6649da9f61330ac4"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b2073fa542c8dcdf9466d1a192d2888b628a5df3",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:modern-fortran/tsunami",
      "name": "tsunami",
      "repository": {
        "host": "github",
        "owner": "modern-fortran",
        "name": "tsunami",
        "url": "https://github.com/modern-fortran/tsunami"
      },
      "description": "Serial Chapter 4 shallow-water example modules: periodic finite differences and Gaussian initial conditions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "book",
          "fortran",
          "shallow-water-equations",
          "tsunami"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 166,
        "stars_updated_at": "2026-10-30T13:13:55.640353+00:00"
      },
      "curation": {
        "topics": [
          "educational",
          "finite-differences",
          "partial-differential-equations",
          "shallow-water-equations",
          "wave-propagation"
        ],
        "gams_codes": [
          "H",
          "H1",
          "I",
          "I2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Only the author serial Chapter 4 mod_diff and mod_initial modules are wrapped; their contents are unchanged. The main follows the chapter shallow-water time-stepping equations on a 100-cell periodic grid for 200 steps. It checks the centered difference against a discrete sine derivative, the upwind difference against an independently indexed periodic reference, Gaussian peak/symmetry, finite water height/velocity, positive total depth, nontrivial evolution, and conservation of integrated elevation. The example uses REAL32, with REAL64 accumulation of mass. I2 classifies the demonstrated PDE calculation; H1 classifies diff_centered/diff_upwind as numerical differentiation. This is an educational finite-difference demonstration, not validation of a production tsunami model. Other chapters, coarrays and parallel scaling are not verified. MIT notices are retained.",
        "reviewed_revision": "70b5702aed42bbea0733335d50e0eb70cb159e08",
        "procedures": [
          {
            "id": "tsunami-periodic-differences",
            "package_id": "tsunami",
            "revision": "70b5702aed42bbea0733335d50e0eb70cb159e08",
            "module": "mod_diff",
            "procedure": "diff_centered / diff_upwind",
            "gams_codes": [
              "H1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "finite differences",
            "notes": "Only the author serial Chapter 4 mod_diff and mod_initial modules are wrapped; their contents are unchanged. The main follows the chapter shallow-water time-stepping equations on a 100-cell periodic grid for 200 steps. It checks the centered difference against a discrete sine derivative, the upwind difference against an independently indexed periodic reference, Gaussian peak/symmetry, finite water height/velocity, positive total depth, nontrivial evolution, and conservation of integrated elevation. The example uses REAL32, with REAL64 accumulation of mass. I2 classifies the demonstrated PDE calculation; H1 classifies diff_centered/diff_upwind as numerical differentiation. This is an educational finite-difference demonstration, not validation of a production tsunami model. Other chapters, coarrays and parallel scaling are not verified. MIT notices are retained.",
            "evidence": [
              {
                "path": "src/ch04/mod_diff.f90",
                "sha256": "70192504a9ba8d9e8a24cf17e7d95b57497236fccfcb9be0df3ae9b040b75c98",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "src/ch04/tsunami.f90",
                "sha256": "63b348e3dd14f5aed68d4cab24a565068c65c867c6aa74f995de7d3c7eb9cae9",
                "line": 1
              }
            ],
            "driver_id": "tsunami-differences-reference"
          }
        ],
        "numerical_review": {
          "revision": "70b5702aed42bbea0733335d50e0eb70cb159e08",
          "archive_sha256": "732c1ff0e223dd3b596305073a66886ac40b497dd3ad32f5b3f156c5648f271e",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "tsunami-periodic-differences"
          ],
          "notes": "Only the author serial Chapter 4 mod_diff and mod_initial modules are wrapped; their contents are unchanged. The main follows the chapter shallow-water time-stepping equations on a 100-cell periodic grid for 200 steps. It checks the centered difference against a discrete sine derivative, the upwind difference against an independently indexed periodic reference, Gaussian peak/symmetry, finite water height/velocity, positive total depth, nontrivial evolution, and conservation of integrated elevation. The example uses REAL32, with REAL64 accumulation of mass. I2 classifies the demonstrated PDE calculation; H1 classifies diff_centered/diff_upwind as numerical differentiation. This is an educational finite-difference demonstration, not validation of a production tsunami model. Other chapters, coarrays and parallel scaling are not verified. MIT notices are retained."
        }
      },
      "playground": {
        "package_id": "tsunami",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=tsunami",
        "package_revision": "70b5702aed42bbea0733335d50e0eb70cb159e08",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/tsunami.f90",
          "sha256": "be49e341413a5bdcef2fee130a81aeba350079e53c26780782c7946e1d7b5694"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "70b5702aed42bbea0733335d50e0eb70cb159e08",
        "verified_at": "2026-10-30T13:13:55.964427+00:00",
        "packages": []
      }
    },
    {
      "id": "github:mredies/npy-for-fortran",
      "name": "npy-for-fortran",
      "repository": {
        "host": "github",
        "owner": "MRedies",
        "name": "NPY-for-Fortran",
        "url": "https://github.com/MRedies/NPY-for-Fortran"
      },
      "description": "Write numerical vectors and matrices in NumPy NPY format.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "forschungszentrum-juelich",
          "fortran",
          "npz",
          "npz-files",
          "numpy",
          "pgi",
          "physics",
          "scientific-computing"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 44,
        "stars_updated_at": "2026-10-29T12:53:38.105617+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "binary-io",
          "npy",
          "numpy",
          "python-interoperability"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "NumPy NPY writing. An FPM wrapper selects unchanged src/npy.f90. The main writes a 2-by-3 real64 matrix, checks version-2 magic, dtype/order header, exact binary payload and file size, and prints the matrix and header. A separate hosted probe captures the actual file bytes and NumPy independently loads the expected shape, dtype and exact values with pickle disabled. No source edits. The author no longer actively maintains the project. Other kinds/ranks, big-endian platforms and NPZ archive operations are not validated; the browser displays the checked summary rather than offering a general NPY-file download.",
        "reviewed_revision": "b76d22c6ece4e820d31d71825b2f774d060cd288",
        "procedures": [
          {
            "id": "npy-matrix",
            "package_id": "npy-for-fortran",
            "revision": "b76d22c6ece4e820d31d71825b2f774d060cd288",
            "module": "m_npy",
            "procedure": "save_npy / write_dbl_mtx",
            "gams_codes": [
              "N1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "NumPy NPY writing. An FPM wrapper selects unchanged src/npy.f90. The main writes a 2-by-3 real64 matrix, checks version-2 magic, dtype/order header, exact binary payload and file size, and prints the matrix and header. A separate hosted probe captures the actual file bytes and NumPy independently loads the expected shape, dtype and exact values with pickle disabled. No source edits. The author no longer actively maintains the project. Other kinds/ranks, big-endian platforms and NPZ archive operations are not validated; the browser displays the checked summary rather than offering a general NPY-file download.",
            "evidence": [
              {
                "path": "src/npy.f90",
                "sha256": "c7c5122f465ff645a54515acfa49fac51df11360d884d2d2a70526e89504c564",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "src/example.f90",
                "sha256": "50c7f3f3fe87f53cc76a1c23dd9a47bd22e693b6b199e0b7eca48e9509319fa9"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "npy-for-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=npy-for-fortran",
        "package_revision": "b76d22c6ece4e820d31d71825b2f774d060cd288",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/npy-for-fortran.f90",
          "sha256": "a55cca9864eb37b53ad453ba9b27ebe641d13ae1b47f18ed7a2c8e36ae8bf678"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b76d22c6ece4e820d31d71825b2f774d060cd288",
        "verified_at": "2026-10-29T12:54:09.059921+00:00",
        "packages": []
      }
    },
    {
      "id": "github:nedtaylor/athena",
      "name": "athena",
      "repository": {
        "host": "github",
        "owner": "nedtaylor",
        "name": "athena",
        "url": "https://github.com/nedtaylor/athena"
      },
      "description": "Neural networks with convolutional, graph-based and physics-informed layers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Machine learning"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "automatic-differentiation",
          "cnn",
          "convolution",
          "convolutional-neural-networks",
          "deep-learning",
          "feed-forward-neural-networks",
          "fortran",
          "fortran-package-manager",
          "graph-neural-network",
          "inverse-design",
          "machine-learning",
          "message-passing-neural-network",
          "neural-network",
          "physics-informed-neural-networks"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 38,
        "stars_updated_at": "2026-10-28T22:42:25.593426+00:00"
      },
      "curation": {
        "topics": [
          "automatic-differentiation",
          "deep-learning",
          "machine-learning",
          "neural-networks"
        ],
        "gams_codes": [
          "K"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Neural-network function approximation. A fixed-weight dense layer with tanh activation is compared against direct Fortran matrix multiplication and TANH. This does not test training, automatic derivatives, graph convolutions or model accuracy on a dataset. K remains broad.",
        "reviewed_revision": "4b81aeac07113628c2c9a476648d5ac2a91b7c91",
        "procedures": [
          {
            "id": "athena-dense",
            "package_id": "athena",
            "revision": "4b81aeac07113628c2c9a476648d5ac2a91b7c91",
            "module": "athena__full_layer",
            "procedure": "full_layer_type%forward",
            "gams_codes": [
              "K"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Neural-network function approximation. A fixed-weight dense layer with tanh activation is compared against direct Fortran matrix multiplication and TANH. This does not test training, automatic derivatives, graph convolutions or model accuracy on a dataset. K remains broad.",
            "evidence": [
              {
                "path": "src/athena/athena_full_layer.f90",
                "sha256": "3adf76bb010817848295767e7da7a5d3a61ffc23159f73308af43bd713fbdc09",
                "line": 839
              }
            ],
            "author_examples": [
              {
                "path": "test/test_full_layer.f90",
                "sha256": "5a87fd9d549312f85a5c18ca3226750cefbf1dbac269d88b920eaf03dd6f66ee"
              }
            ],
            "driver_id": "athena-dense-reference"
          }
        ],
        "numerical_review": {
          "revision": "4b81aeac07113628c2c9a476648d5ac2a91b7c91",
          "archive_sha256": "2cc29f7f0b259e50642c1b05facf6bcb733acd992d0775df45c3ab1f58a6035c",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "athena-dense"
          ],
          "notes": "Neural-network function approximation. A fixed-weight dense layer with tanh activation is compared against direct Fortran matrix multiplication and TANH. This does not test training, automatic derivatives, graph convolutions or model accuracy on a dataset. K remains broad."
        }
      },
      "playground": {
        "package_id": "athena",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=athena",
        "package_revision": "4b81aeac07113628c2c9a476648d5ac2a91b7c91",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/athena.f90",
          "sha256": "8f04495cdeb595be7089fec7a5c96844ed5125e0d22847204e29e0931a32a5c3"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "4b81aeac07113628c2c9a476648d5ac2a91b7c91",
        "verified_at": "2026-10-28T22:42:59.624262+00:00",
        "packages": [
          {
            "id": "github:nedtaylor/coreutils",
            "repository": "nedtaylor/coreutils",
            "revision": "ead4501f4b695c4f0fe3267f1bf5318544c9b1e2"
          },
          {
            "id": "github:nedtaylor/diffstruc",
            "repository": "nedtaylor/diffstruc",
            "revision": "88565f8e01792706edc0bd7e70dde957c26122a4"
          },
          {
            "id": "github:nedtaylor/graphstruc",
            "repository": "nedtaylor/graphstruc",
            "revision": "ad41c6bca04cadd1df20319b29f231469c530dae"
          }
        ]
      }
    },
    {
      "id": "github:nedtaylor/diffstruc",
      "name": "diffstruc",
      "repository": {
        "host": "github",
        "owner": "nedtaylor",
        "name": "diffstruc",
        "url": "https://github.com/nedtaylor/diffstruc"
      },
      "description": "Forward and reverse automatic differentiation with array computation graphs.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differentiation"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "automatic-differentiation",
          "backpropagation",
          "differentiation",
          "fortran",
          "fortran-package-manager",
          "forward-mode",
          "library",
          "partial-differentiation",
          "reverse-mode"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 32,
        "stars_updated_at": "2026-10-28T17:54:16.128500+00:00"
      },
      "curation": {
        "topics": [
          "automatic-differentiation",
          "derivatives",
          "forward-mode",
          "gradients",
          "reverse-mode"
        ],
        "gams_codes": [
          "H",
          "H1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "88565f8e01792706edc0bd7e70dde957c26122a4",
        "procedures": [
          {
            "id": "diffstruc-api",
            "package_id": "diffstruc",
            "revision": "88565f8e01792706edc0bd7e70dde957c26122a4",
            "module": "diffstruc",
            "procedure": "array_type%grad_forward / grad_reverse",
            "gams_codes": [
              "H1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "automatic differentiation",
            "notes": "Forward directional derivatives and reverse-mode gradients of array expressions; the demo restores the direction mask before reverse accumulation.",
            "evidence": [
              {
                "path": "src/diffstruc/diffstruc_types_sub.f90",
                "sha256": "a79fe601b0c1bc5133b89a05953f8f6ccc658a313af9fe93a8124025d65c3dc9",
                "line": 505
              }
            ],
            "author_examples": [
              {
                "path": "test/test_functions.f90",
                "sha256": "ddf07c01c9cb4e4eb971046b5f2d70ff8cbf1ee17fca7a374748c3e772e83182"
              }
            ],
            "driver_id": "diffstruc-hessian-reference"
          }
        ],
        "numerical_review": {
          "revision": "88565f8e01792706edc0bd7e70dde957c26122a4",
          "archive_sha256": "84daa1e2c23f1cd2285b5212f4f5390cf930336c98feae7da0b5eb4534a7e65f",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "diffstruc-api"
          ],
          "notes": "Forward directional derivatives and reverse-mode gradients of array expressions; the demo restores the direction mask before reverse accumulation. Source review covers these representative procedures, not an exhaustive API inventory."
        }
      },
      "playground": {
        "package_id": "diffstruc",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=diffstruc",
        "package_revision": "88565f8e01792706edc0bd7e70dde957c26122a4",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/diffstruc.f90",
          "sha256": "397e18afd29ec87d1581255f13d4f711b290181c6f3781c951ac506bd4a84fb6"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "88565f8e01792706edc0bd7e70dde957c26122a4",
        "verified_at": "2026-10-28T17:55:12.282099+00:00",
        "packages": [
          {
            "id": "github:nedtaylor/coreutils",
            "repository": "nedtaylor/coreutils",
            "revision": "ead4501f4b695c4f0fe3267f1bf5318544c9b1e2"
          }
        ]
      }
    },
    {
      "id": "github:nedtaylor/graphstruc",
      "name": "graphstruc",
      "repository": {
        "host": "github",
        "owner": "nedtaylor",
        "name": "graphstruc",
        "url": "https://github.com/nedtaylor/graphstruc"
      },
      "description": "Derived types for graphs, vertices, edges and adjacency structures.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "graph-structures",
          "graphs",
          "library"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "adjacency-structures",
          "containers",
          "graphs"
        ],
        "gams_codes": [
          "N",
          "N4",
          "P"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "51e18bedd638b935be8b9ac744b2e9f9e79213e7",
        "procedures": [
          {
            "id": "graphstruc-add-vertex",
            "package_id": "graphstruc",
            "revision": "51e18bedd638b935be8b9ac744b2e9f9e79213e7",
            "module": "graphstruc",
            "procedure": "graph_type%add_vertex, add_edge",
            "gams_codes": [
              "N4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Graph storage and construction; this entry is not a shortest-path or graph-optimization algorithm.",
            "evidence": [
              {
                "path": "src/graphstruc/graphstruc_types.f90",
                "sha256": "4bda7ffeacabd9a45415d11f2f5cf104f2b5a2da2f52ec03358e23d87973e77e",
                "line": 103
              }
            ],
            "author_examples": [
              {
                "path": "example/example.f90",
                "sha256": "24103aa1092487f238dd6743d925856c85fa622b79cbad8da252921e1dcf3b18"
              }
            ]
          }
        ],
        "numerical_review": {
          "revision": "51e18bedd638b935be8b9ac744b2e9f9e79213e7",
          "archive_sha256": "24e32c4c7f5d9a673b6d39937e44c4b3da0097aa29f4d4b369dc9441f3b55665",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "graphstruc-add-vertex"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "graphstruc",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=graphstruc",
        "package_revision": "51e18bedd638b935be8b9ac744b2e9f9e79213e7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/graphstruc.f90",
          "sha256": "d97a818af17369255cc47ffa5367377232cb18dd4fe123644a5e48ad30a093d1"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "51e18bedd638b935be8b9ac744b2e9f9e79213e7",
        "verified_at": "2026-10-28T01:33:45.255776+00:00",
        "packages": [
          {
            "id": "github:nedtaylor/coreutils",
            "repository": "nedtaylor/coreutils",
            "revision": "ead4501f4b695c4f0fe3267f1bf5318544c9b1e2"
          }
        ]
      }
    },
    {
      "id": "github:nekstab/lightkrylov",
      "name": "lightkrylov",
      "repository": {
        "host": "github",
        "owner": "nekStab",
        "name": "LightKrylov",
        "url": "https://github.com/nekStab/LightKrylov"
      },
      "description": "Krylov methods for eigenvalues, linear systems, singular values and matrix exponentials.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 44,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "eigenvalues",
          "krylov-methods",
          "linear-algebra",
          "linear-systems",
          "matrix-exponentials",
          "svd"
        ],
        "gams_codes": [
          "D",
          "D2",
          "D4",
          "D6"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "849fa1d2f29c14d0181315e76e731bff7f0b2d08",
        "procedures": [
          {
            "id": "lightkrylov-gmres",
            "package_id": "lightkrylov",
            "revision": "849fa1d2f29c14d0181315e76e731bff7f0b2d08",
            "module": "LightKrylov",
            "procedure": "gmres",
            "gams_codes": [
              "D2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "General linear-operator iterative solve; no matrix sparsity or definiteness is imposed by this record.",
            "evidence": [
              {
                "path": "src/IterativeSolvers/IterativeSolvers.f90",
                "sha256": "d70d788422278f3dee87f5e4dac7cc143721fdeefe5057a9791af4daa581f726",
                "line": 379
              }
            ],
            "author_examples": [
              {
                "path": "test/Tests.f90",
                "sha256": "06c1b1acb449ffd83684741776535e049a850596f6e2967daa53f217bd9d69bf"
              }
            ],
            "driver_id": "lightkrylov-gmres-reference"
          }
        ],
        "numerical_review": {
          "revision": "849fa1d2f29c14d0181315e76e731bff7f0b2d08",
          "archive_sha256": "d1eb50b781520f370535a464ed24963c562866e6ba7ebf7ca5cdce30c61e35e2",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "lightkrylov-gmres"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "lightkrylov",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lightkrylov",
        "package_revision": "849fa1d2f29c14d0181315e76e731bff7f0b2d08",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/lightkrylov.f90",
          "sha256": "52c6079f2c56aa3c43133d034233fabc35cb793e77d8501ad397cd77fc74cdc3"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "849fa1d2f29c14d0181315e76e731bff7f0b2d08",
        "verified_at": "2026-10-28T20:12:46.446837+00:00",
        "packages": [
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          },
          {
            "id": "github:szaghi/face",
            "repository": "szaghi/FACE",
            "revision": "b20893e48518a81c25982ef20cc5a7cf8d31c8d8"
          }
        ]
      }
    },
    {
      "id": "github:nicholaswogan/differentia",
      "name": "differentia",
      "repository": {
        "host": "github",
        "owner": "Nicholaswogan",
        "name": "Differentia",
        "url": "https://github.com/Nicholaswogan/Differentia"
      },
      "description": "Forward-mode derivatives, gradients and square Jacobians using dual numbers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Automatic differentiation"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "autodiff",
          "autodifferentiation",
          "automatic-differentiation",
          "differential-equations"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 28,
        "stars_updated_at": "2026-10-29T12:53:38.105617+00:00"
      },
      "curation": {
        "topics": [
          "automatic-differentiation",
          "derivatives",
          "dual-numbers",
          "gradients",
          "jacobian"
        ],
        "gams_codes": [
          "H",
          "H1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Forward-mode automatic differentiation with dual numbers. The main checks the upstream scalar example against its analytical value and derivative, a two-variable polynomial gradient and a square 2-by-2 Jacobian against exact formulas. GNU heap trampolines support the internal callback procedures in the restricted sandbox. Library sources are unchanged. The author limits jacobian to square problems and documents incomplete intrinsic coverage; sparse interfaces, every overload and all failure modes are not validated.",
        "reviewed_revision": "2388e8ecf300a7bbc0904feab47023413464edf9",
        "procedures": [
          {
            "id": "differentia-ad",
            "package_id": "differentia",
            "revision": "2388e8ecf300a7bbc0904feab47023413464edf9",
            "module": "differentia",
            "procedure": "derivative / gradient / jacobian",
            "gams_codes": [
              "H1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Forward-mode automatic differentiation with dual numbers. The main checks the upstream scalar example against its analytical value and derivative, a two-variable polynomial gradient and a square 2-by-2 Jacobian against exact formulas. GNU heap trampolines support the internal callback procedures in the restricted sandbox. Library sources are unchanged. The author limits jacobian to square problems and documents incomplete intrinsic coverage; sparse interfaces, every overload and all failure modes are not validated.",
            "evidence": [
              {
                "path": "src/differentia_derivative.f90",
                "sha256": "2e291639fc48df4b60e840153613ba3038fb04f7716abf1b692edbab1f248cc3",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/test_differentia.f90",
                "sha256": "203531b65c6cc64b08c3052859d185c7cd318a66ff5fd1509710b61c44e12035"
              }
            ],
            "driver_id": "differentia-analytic-reference"
          }
        ],
        "numerical_review": {
          "revision": "2388e8ecf300a7bbc0904feab47023413464edf9",
          "archive_sha256": "99643ce39a15906f58a7af9ec7c7edfeaadb161d8f3087e0e5dc8d0961f4f329",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "differentia-ad"
          ],
          "notes": "Forward-mode automatic differentiation with dual numbers. The main checks the upstream scalar example against its analytical value and derivative, a two-variable polynomial gradient and a square 2-by-2 Jacobian against exact formulas. GNU heap trampolines support the internal callback procedures in the restricted sandbox. Library sources are unchanged. The author limits jacobian to square problems and documents incomplete intrinsic coverage; sparse interfaces, every overload and all failure modes are not validated."
        }
      },
      "playground": {
        "package_id": "differentia",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=differentia",
        "package_revision": "2388e8ecf300a7bbc0904feab47023413464edf9",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/differentia.f90",
          "sha256": "d2e2713d34eb7f03c91d0df8668b065aa7ce03e2194ccef7ad782dc37183b68f"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2388e8ecf300a7bbc0904feab47023413464edf9",
        "verified_at": "2026-10-29T12:54:09.059921+00:00",
        "packages": []
      }
    },
    {
      "id": "github:nicholaswogan/forwarddiff",
      "name": "forwarddiff",
      "repository": {
        "host": "github",
        "owner": "Nicholaswogan",
        "name": "forwarddiff",
        "url": "https://github.com/Nicholaswogan/forwarddiff"
      },
      "description": "Forward automatic differentiation using dual numbers (Differentia).",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differentiation"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "autodiff",
          "autodifferentiation",
          "automatic-differentiation",
          "differential-equations"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 28,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "automatic-differentiation",
          "derivatives",
          "differentiation",
          "dual-numbers"
        ],
        "gams_codes": [
          "H",
          "H1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "2388e8ecf300a7bbc0904feab47023413464edf9",
        "procedures": [
          {
            "id": "forwarddiff-derivative",
            "package_id": "forwarddiff",
            "revision": "2388e8ecf300a7bbc0904feab47023413464edf9",
            "module": "differentia",
            "procedure": "derivative",
            "gams_codes": [
              "H1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "dual-number evaluation; automatic differentiation",
            "notes": "Forward automatic differentiation, distinct from finite differences.",
            "evidence": [
              {
                "path": "src/differentia_derivative.f90",
                "sha256": "2e291639fc48df4b60e840153613ba3038fb04f7716abf1b692edbab1f248cc3",
                "line": 54
              }
            ],
            "author_examples": [
              {
                "path": "test/test_differentia.f90",
                "sha256": "203531b65c6cc64b08c3052859d185c7cd318a66ff5fd1509710b61c44e12035"
              }
            ],
            "driver_id": "forwarddiff-analytic-reference"
          }
        ],
        "numerical_review": {
          "revision": "2388e8ecf300a7bbc0904feab47023413464edf9",
          "archive_sha256": "99643ce39a15906f58a7af9ec7c7edfeaadb161d8f3087e0e5dc8d0961f4f329",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "forwarddiff-derivative"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "forwarddiff",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forwarddiff",
        "package_revision": "2388e8ecf300a7bbc0904feab47023413464edf9",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/forwarddiff.f90",
          "sha256": "dd2ada5d6a52126ab00677f8812a98ffb64af503f1594143bfcf457646b80311"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2388e8ecf300a7bbc0904feab47023413464edf9",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:nicholaswogan/odepack",
      "name": "odepack",
      "repository": {
        "host": "github",
        "owner": "Nicholaswogan",
        "name": "odepack",
        "url": "https://github.com/Nicholaswogan/odepack"
      },
      "description": "Modern thread-safe interfaces to the LSODA and LSODAR initial-value ODE solvers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "Public Domain",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran-package-manager",
          "ode",
          "ode-solver",
          "odepack"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 21,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "event-detection",
          "initial-value-problems",
          "ode",
          "stiff-equations",
          "thread-safe"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I1a",
          "I1a2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "d5db96093dc14fff54e10575cc586fa85392b078",
        "procedures": [
          {
            "id": "odepack-lsoda-class",
            "package_id": "odepack",
            "revision": "d5db96093dc14fff54e10575cc586fa85392b078",
            "module": "odepack_mod",
            "procedure": "lsoda_class%integrate",
            "gams_codes": [
              "I1a2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "optional user Jacobian; internal approximation supported",
            "notes": "Automatic switching between Adams and BDF; classify stiff capability here without claiming all ODEPACK methods. The checked I1a2 driver solves the shared autonomous system y1'= -1000*y1+999*y2, y2'= -y2 from [2,1], checking exact exponential modes at four output times. Only this stiff ODE configuration is verified; no DAE capability or general stiff-problem accuracy is established.",
            "evidence": [
              {
                "path": "src/odepack_mod.f90",
                "sha256": "9d2d19c4a9f6392a9ca6589d3b4e25b032bec4f9481e38bcf3102697ad6b3e8e",
                "line": 13
              }
            ],
            "author_examples": [
              {
                "path": "test/benchmark.f90",
                "sha256": "6323b762eb8cb063e9fa1e6fd0a35a71e96b53d76777388602044c9616409fe4"
              }
            ],
            "driver_id": "lsoda-stiff-two-scale"
          }
        ],
        "numerical_review": {
          "revision": "d5db96093dc14fff54e10575cc586fa85392b078",
          "archive_sha256": "3527e963adfa7c128092d59079cbd33ab3b126837b5e93ecc7c50d2cfc3589fa",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "odepack-lsoda-class"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "odepack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=odepack",
        "package_revision": "d5db96093dc14fff54e10575cc586fa85392b078",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/odepack.f90",
          "sha256": "c0357375499d095429bc622d2d1a653eaff678c676350861d69e72071fed6870"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d5db96093dc14fff54e10575cc586fa85392b078",
        "verified_at": "2026-10-28T01:15:41.906948+00:00",
        "packages": []
      }
    },
    {
      "id": "github:ofmla/seiscope_opt_toolbox_w_ctypes",
      "name": "seiscope-optimization",
      "repository": {
        "host": "github",
        "owner": "ofmla",
        "name": "seiscope_opt_toolbox_w_ctypes",
        "url": "https://github.com/ofmla/seiscope_opt_toolbox_w_ctypes"
      },
      "description": "Gradient-based optimization with L-BFGS, nonlinear conjugate gradients and truncated Newton methods.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "MIT & BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "ctypes-wrapper",
          "fortran",
          "fortran-package-manager",
          "geophysics",
          "gradient-based-optimisation",
          "python-bindings",
          "wrapper-library"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 32,
        "stars_updated_at": "2026-10-28T17:54:16.128500+00:00"
      },
      "curation": {
        "topics": [
          "gradient-based-optimization",
          "lbfgs",
          "nonlinear-conjugate-gradient",
          "optimization",
          "truncated-newton"
        ],
        "gams_codes": [
          "G",
          "G1",
          "G1b",
          "G1b1",
          "G1b1b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "74a25c29d13c506e16f8025eb13a2cf396dc23c0",
        "procedures": [
          {
            "id": "seiscope-optimization-api",
            "package_id": "seiscope-optimization",
            "revision": "74a25c29d13c506e16f8025eb13a2cf396dc23c0",
            "module": "opt_LBFGS",
            "procedure": "LBFGS",
            "gams_codes": [
              "G1b1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "user first derivatives",
            "notes": "Unconstrained smooth multivariate minimization requiring user first derivatives. The guarded catalog edit replaces an uninitialized workspace-length actual argument with optim%l.",
            "evidence": [
              {
                "path": "src/sotb/merged-LBFGS.f90",
                "sha256": "e11e89d0d264264cb73cf6d138a228406d0682151d2863d6947355bf8401951c",
                "line": 213
              }
            ],
            "author_examples": [
              {
                "path": "app/LBFGS/test_LBFGS.f90",
                "sha256": "f802ce7e82063cba7b0367531f8dcf99bf5ab9b6128435ed049816dd0389944d"
              }
            ],
            "driver_id": "seiscope-lbfgs-reference"
          }
        ],
        "numerical_review": {
          "revision": "74a25c29d13c506e16f8025eb13a2cf396dc23c0",
          "archive_sha256": "8915f61094dc4ec7cf3be3cf663638ef3433815dd707e9cfc33fdfdb29efe874",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "seiscope-optimization-api"
          ],
          "notes": "Unconstrained smooth multivariate minimization requiring user first derivatives. The guarded catalog edit replaces an uninitialized workspace-length actual argument with optim%l. Source review covers these representative procedures, not an exhaustive API inventory."
        }
      },
      "playground": {
        "package_id": "seiscope-optimization",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=seiscope-optimization",
        "package_revision": "74a25c29d13c506e16f8025eb13a2cf396dc23c0",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/seiscope-optimization.f90",
          "sha256": "0ee11b1fe7b91545d305103b11e715689e87139108a7b2be5ec5db98bdf4466a"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "74a25c29d13c506e16f8025eb13a2cf396dc23c0",
        "verified_at": "2026-10-28T17:55:12.282099+00:00",
        "packages": []
      }
    },
    {
      "id": "github:opencollab/arpack-ng",
      "name": "arpack-ng",
      "repository": {
        "host": "github",
        "owner": "opencollab",
        "name": "arpack-ng",
        "url": "https://github.com/opencollab/arpack-ng"
      },
      "description": "Serial iterative eigensolvers for selected eigenvalues of large matrices.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "arpack",
          "eigenvalue",
          "linear-algebra",
          "parpack"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 358,
        "stars_updated_at": "2026-10-29T13:59:01.916745+00:00"
      },
      "curation": {
        "topics": [
          "arnoldi",
          "eigenvalues",
          "eigenvectors",
          "lanczos",
          "reverse-communication"
        ],
        "gams_codes": [
          "D",
          "D4",
          "D4a",
          "D4a1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Serial classic Fortran ARPACK-NG interfaces, built from unchanged SRC .f files, the documented UTIL support set, and upstream debug/statistics initializers. The wrapper uses native LP64 BLAS/LAPACK and excludes PARPACK/MPI and generated C bindings. The upstream second_NONE timing stub disables ARPACK internal elapsed-time statistics; playground build/run timings still work. Adapted from the author symmetric reverse-communication example, the main computes three smallest eigenpairs of a 20-by-20 symmetric tridiagonal operator, checks convergence status/count, analytical eigenvalues and eigenvector residual norms. A deterministic nonzero initial residual avoids dependence on random initialization. Nonsymmetric/complex modes, shift-invert, generalized problems and parallel execution are not validated.",
        "reviewed_revision": "66faef9e09bb35f5acafe02960885050acc46fa0",
        "procedures": [
          {
            "id": "arpack-eigenpairs",
            "package_id": "arpack-ng",
            "revision": "66faef9e09bb35f5acafe02960885050acc46fa0",
            "module": "classic Fortran interface",
            "procedure": "DSAUPD / DSEUPD",
            "gams_codes": [
              "D4a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Serial classic Fortran ARPACK-NG interfaces, built from unchanged SRC .f files, the documented UTIL support set, and upstream debug/statistics initializers. The wrapper uses native LP64 BLAS/LAPACK and excludes PARPACK/MPI and generated C bindings. The upstream second_NONE timing stub disables ARPACK internal elapsed-time statistics; playground build/run timings still work. Adapted from the author symmetric reverse-communication example, the main computes three smallest eigenpairs of a 20-by-20 symmetric tridiagonal operator, checks convergence status/count, analytical eigenvalues and eigenvector residual norms. A deterministic nonzero initial residual avoids dependence on random initialization. Nonsymmetric/complex modes, shift-invert, generalized problems and parallel execution are not validated. Dedicated D4 driver checks the three smallest and three largest eigenpairs of the 20-by-20 Dirichlet tridiagonal (2 diagonal,-1 off-diagonal), with explicit starting residual, convergence/extraction status, analytical eigenvalues and sign-invariant sine eigenvector comparisons, equation residuals and orthonormality. Generalized, nonsymmetric, shift-invert and arbitrary spectra are not verified. Refined from broad D4 to D4a1 for the reviewed real symmetric ordinary-eigenproblem interfaces.",
            "evidence": [
              {
                "path": "SRC/dsaupd.f",
                "sha256": "f617f514a1aa92a5f3068a59926fb4d543cf4d28b21602d1b2db386aa4ba5ac4",
                "line": 1
              },
              {
                "path": "SRC/dseupd.f",
                "sha256": "481d9ce754f20627739d6389104fa50911b7ecc60b6027ee2a2baafad2b6835b",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "EXAMPLES/SYM/dsdrv1.f",
                "sha256": "e873620043a19a17508626f352371edd48b23638b2d40b574924f6043467bfc9"
              }
            ],
            "driver_id": "arpack-poisson-eigenpairs"
          }
        ],
        "numerical_review": {
          "revision": "66faef9e09bb35f5acafe02960885050acc46fa0",
          "archive_sha256": "39b4a93f6dd7bcbdfba99f0f74a48d5a5e3e5cc9ed9787c9b076be971629fde2",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "arpack-eigenpairs"
          ],
          "notes": "Serial classic Fortran ARPACK-NG interfaces, built from unchanged SRC .f files, the documented UTIL support set, and upstream debug/statistics initializers. The wrapper uses native LP64 BLAS/LAPACK and excludes PARPACK/MPI and generated C bindings. The upstream second_NONE timing stub disables ARPACK internal elapsed-time statistics; playground build/run timings still work. Adapted from the author symmetric reverse-communication example, the main computes three smallest eigenpairs of a 20-by-20 symmetric tridiagonal operator, checks convergence status/count, analytical eigenvalues and eigenvector residual norms. A deterministic nonzero initial residual avoids dependence on random initialization. Nonsymmetric/complex modes, shift-invert, generalized problems and parallel execution are not validated."
        }
      },
      "playground": {
        "package_id": "arpack-ng",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=arpack-ng",
        "package_revision": "66faef9e09bb35f5acafe02960885050acc46fa0",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/arpack-ng.f90",
          "sha256": "44356fab70ddf7be80c828914a0bfc6866f4f709abbca761058825b88cf056f6"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "66faef9e09bb35f5acafe02960885050acc46fa0",
        "verified_at": "2026-10-29T14:04:20.544152+00:00",
        "packages": []
      }
    },
    {
      "id": "github:perazz/fastmath",
      "name": "fastmath",
      "repository": {
        "host": "github",
        "owner": "perazz",
        "name": "fastmath",
        "url": "https://github.com/perazz/fastmath"
      },
      "description": "Approximate exponential, logarithm and inverse-square-root functions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "General utilities"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "exponential",
          "fast-math",
          "fortran",
          "logarithm",
          "rsqrt"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 17,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "approximate-math",
          "elementary-functions",
          "exponential-functions",
          "logarithms"
        ],
        "gams_codes": [
          "C",
          "C2",
          "C4",
          "C4b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "ad0f14c455205c0e6c1b9300cd7f333fafb750e2",
        "procedures": [
          {
            "id": "fastmath-fexp",
            "package_id": "fastmath",
            "revision": "ad0f14c455205c0e6c1b9300cd7f333fafb750e2",
            "module": "fast_exp / fast_log",
            "procedure": "fexp; fast_log / flog_quintic",
            "gams_codes": [
              "C4b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Approximate exponential/logarithm evaluation; accuracy differs from standard intrinsics. Independent consumer checks fexp and flog_quintic at 641 grid points from -80 to 80, using intrinsic exp and the known inverse arguments as references. Explicit approximation tolerances, positivity, finite results, scalar/array agreement and grid monotonicity are enforced. This is not a speed benchmark or an accuracy guarantee outside the tested normal finite range.",
            "evidence": [
              {
                "path": "src/fast_exp.f90",
                "sha256": "0f54b553646fc0885190e544826a71556499f48be669e75985a074ef7fef07f0",
                "line": 76
              },
              {
                "path": "src/fast_log.f90",
                "sha256": "9b1c57920eabce5105d5c01d17e16a2fcbe334aab7de629c42385a205c0a7570",
                "line": 144
              }
            ],
            "author_examples": [
              {
                "path": "test/test.f90",
                "sha256": "6d8276ab02a8f82f9795c7a9abe4e5e89e51f33b26cf081dcb68480eefc3141a"
              }
            ],
            "driver_id": "fastmath-exp-log-reference"
          },
          {
            "id": "fastmath-frsqrt",
            "package_id": "fastmath",
            "revision": "ad0f14c455205c0e6c1b9300cd7f333fafb750e2",
            "module": "fast_rsqrt",
            "procedure": "frsqrt",
            "gams_codes": [
              "C2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Approximate reciprocal square root, with documented accuracy tradeoffs. Independent consumer checks 168 exactly representable dyadic squares using reciprocals of their known roots, over root binary exponents -250..250 and eight mantissas. Finite positive results, scalar/array agreement and normalized equation residuals are required. Zero, negative, subnormal, infinity/NaN arguments and speed are not verified.",
            "evidence": [
              {
                "path": "src/fast_rsqrt.f90",
                "sha256": "54bf8c270c3fbd9bc30abf3d20b7ef953db6cd9459d1e56c5e97a73f3a03653b",
                "line": 55
              }
            ],
            "author_examples": [
              {
                "path": "test/test.f90",
                "sha256": "6d8276ab02a8f82f9795c7a9abe4e5e89e51f33b26cf081dcb68480eefc3141a"
              }
            ],
            "driver_id": "fastmath-rsqrt-reference"
          }
        ],
        "numerical_review": {
          "revision": "ad0f14c455205c0e6c1b9300cd7f333fafb750e2",
          "archive_sha256": "cea87a0687612725d0baf1f5b19c802e0d55c3a4c9e595fe7f85d4c4c71d656a",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fastmath-fexp",
            "fastmath-frsqrt"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fastmath",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fastmath",
        "package_revision": "ad0f14c455205c0e6c1b9300cd7f333fafb750e2",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fastmath.f90",
          "sha256": "ea4c83d7e3471a118d0a32d6ea82292c06099fd0b27ed8a7e955ccf5c7697b47"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "ad0f14c455205c0e6c1b9300cd7f333fafb750e2",
        "verified_at": "2026-10-28T01:15:41.906948+00:00",
        "packages": []
      }
    },
    {
      "id": "github:perazz/fitpack",
      "name": "fitpack",
      "repository": {
        "host": "github",
        "owner": "perazz",
        "name": "fitpack",
        "url": "https://github.com/perazz/fitpack"
      },
      "description": "Spline fitting, smoothing, derivatives, and integration of curves and surfaces.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interpolation"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "curve-fitting",
          "fortran",
          "smoothing",
          "smoothing-splines",
          "spline-approximation",
          "spline-curve",
          "spline-interpolation",
          "splines",
          "surface-fitting"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 75,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "curve-fitting",
          "derivatives",
          "interpolation",
          "smoothing",
          "splines"
        ],
        "gams_codes": [
          "E",
          "E1",
          "E1a",
          "E2",
          "H",
          "H1",
          "H2",
          "H2a",
          "H2a2",
          "H2a2b",
          "H2a2b2",
          "K",
          "K1",
          "K5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "1907c7bad9f5c4557970e906bdd4909eb52b2d4c",
        "procedures": [
          {
            "id": "fitpack-fitpack-curve",
            "package_id": "fitpack",
            "revision": "1907c7bad9f5c4557970e906bdd4909eb52b2d4c",
            "module": "fitpack",
            "procedure": "fitpack_curve",
            "gams_codes": [
              "E1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Univariate spline interpolation/fitting interface; smoothing options retain additional package-level K assignments.",
            "evidence": [
              {
                "path": "src/fitpack_curves.f90",
                "sha256": "2b0617067286348f3b54cbb314450fffe778f479832122c1bb33b954efeee654",
                "line": 54
              }
            ],
            "author_examples": [
              {
                "path": "test/fitpack_curve_tests.f90",
                "sha256": "0bb92548cb070e70e245b1f837fb931014e69b6f1c335f8cfdca49c514908847"
              }
            ],
            "driver_id": "fitpack-polynomial-values"
          },
          {
            "id": "fitpack-curve-derivative",
            "package_id": "fitpack",
            "revision": "1907c7bad9f5c4557970e906bdd4909eb52b2d4c",
            "module": "fitpack",
            "procedure": "fitpack_curve%dfdx",
            "gams_codes": [
              "H1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "derivatives of fitted spline representation",
            "notes": "Evaluates derivatives of a fitted spline rather than differentiating an arbitrary callback.",
            "evidence": [
              {
                "path": "src/fitpack_curves.f90",
                "sha256": "2b0617067286348f3b54cbb314450fffe778f479832122c1bb33b954efeee654",
                "line": 118
              }
            ],
            "author_examples": [
              {
                "path": "examples/example_curve.f90",
                "sha256": "fa2fa26f553e1fcbb57dd8eef73337e1a43d4d7c5267f06a7874250c9d3d7064"
              }
            ],
            "driver_id": "fitpack-polynomial-derivatives"
          },
          {
            "id": "fitpack-integral",
            "package_id": "fitpack",
            "revision": "1907c7bad9f5c4557970e906bdd4909eb52b2d4c",
            "module": "fitpack",
            "procedure": "fitpack_curve%integral",
            "gams_codes": [
              "H2a2b2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Integrates a stored spline representation on a finite interval; not adaptive callback quadrature. Checked cubic interpolants of degree-zero through degree-three polynomials on irregular nodes, 36 integral calls, reversed/zero intervals and off-knot partition additivity against analytic antiderivatives. Outside-domain and smoothing-error behavior are not verified.",
            "evidence": [
              {
                "path": "src/fitpack_curves.f90",
                "sha256": "2b0617067286348f3b54cbb314450fffe778f479832122c1bb33b954efeee654",
                "line": 105
              }
            ],
            "author_examples": [
              {
                "path": "examples/example_curve.f90",
                "sha256": "fa2fa26f553e1fcbb57dd8eef73337e1a43d4d7c5267f06a7874250c9d3d7064"
              }
            ],
            "driver_id": "fitpack-spline-integral"
          }
        ],
        "numerical_review": {
          "revision": "1907c7bad9f5c4557970e906bdd4909eb52b2d4c",
          "archive_sha256": "7920f83f31016a23d2281af30ac5264cbc317b754b6a4c7de1a0efa3efc0d0b9",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fitpack-fitpack-curve",
            "fitpack-curve-derivative",
            "fitpack-integral"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fitpack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fitpack",
        "package_revision": "1907c7bad9f5c4557970e906bdd4909eb52b2d4c",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fitpack.f90",
          "sha256": "55353dc85af65a2bebfd496d09b0c9eb1b49fb781a5b8663cf85d5fb98aea220"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "1907c7bad9f5c4557970e906bdd4909eb52b2d4c",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:perazz/fortran-bessels",
      "name": "fortran-bessels",
      "repository": {
        "host": "github",
        "owner": "perazz",
        "name": "fortran-bessels",
        "url": "https://github.com/perazz/fortran-bessels"
      },
      "description": "Bessel and modified Bessel functions, demonstrated with fixed orders zero and one.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Special functions"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "bessel",
          "bessel-function",
          "fortran",
          "math",
          "special-functions"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 12,
        "stars_updated_at": "2026-10-28T17:30:42.130830+00:00"
      },
      "curation": {
        "topics": [
          "bessel-functions",
          "cylindrical-functions",
          "modified-bessel-functions",
          "special-functions"
        ],
        "gams_codes": [
          "C",
          "C10",
          "C10b",
          "C10b1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "7bf8d6b144b00d4201a782ca65f6ae14a84d49a1",
        "procedures": [
          {
            "id": "fortran-bessels-api",
            "package_id": "fortran-bessels",
            "revision": "7bf8d6b144b00d4201a782ca65f6ae14a84d49a1",
            "module": "bessels",
            "procedure": "besseli0 / besseli1 / besselk0 / besselk1",
            "gams_codes": [
              "C10b1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Real positive arguments and fixed orders zero and one only. Independent values at x=1 and a modified-Bessel Wronskian identity are checked. Upstream documents limitations in other variable-order paths.",
            "evidence": [
              {
                "path": "src/bessels.f90",
                "sha256": "859f5041eaf7b87320a016b2875857980d991f84bd864d37ee284d7bfcdc2932",
                "line": 752
              }
            ],
            "author_examples": [
              {
                "path": "test/bessels_test.f90",
                "sha256": "6f2229cd6ab71296530e5923819095a75d3c17ed235e9e3b33df7a7c66df39db"
              }
            ],
            "driver_id": "bessels-modified-values"
          }
        ],
        "numerical_review": {
          "revision": "7bf8d6b144b00d4201a782ca65f6ae14a84d49a1",
          "archive_sha256": "bbfb4be6e3a7f9f01d9ea315b2344bd52274ff7f269c2132fc81edbc874b925c",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortran-bessels-api"
          ],
          "notes": "Real positive arguments and fixed orders zero and one only. Independent values at x=1 and a modified-Bessel Wronskian identity are checked. Upstream documents limitations in other variable-order paths. Source review covers these representative procedures, not an exhaustive API inventory."
        }
      },
      "playground": {
        "package_id": "fortran-bessels",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-bessels",
        "package_revision": "7bf8d6b144b00d4201a782ca65f6ae14a84d49a1",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-bessels.f90",
          "sha256": "17e3b5892380d89ef7bfe7a9a5e7e713fa75b7e49ad3dae6b56fba268bc06cde"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "7bf8d6b144b00d4201a782ca65f6ae14a84d49a1",
        "verified_at": "2026-10-28T17:33:40.068326+00:00",
        "packages": []
      }
    },
    {
      "id": "github:perazz/fortran-fast-float",
      "name": "fortran-fast-float",
      "repository": {
        "host": "github",
        "owner": "perazz",
        "name": "fortran-fast-float",
        "url": "https://github.com/perazz/fortran-fast-float"
      },
      "description": "Parse decimal and exponent strings into real and integer values.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Text processing"
      ],
      "license": {
        "label": "MIT OR Apache-2.0 OR BSL-1.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "eisel-lemire",
          "fast-float",
          "floating-point",
          "floating-point-conversion",
          "fortran",
          "fortran-package-manager",
          "fpm",
          "modern-fortran",
          "parsing",
          "parsing-algorithm",
          "string-to-number"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 8,
        "stars_updated_at": "2026-10-29T12:15:32.322175+00:00"
      },
      "curation": {
        "topics": [
          "decimal-conversion",
          "floating-point",
          "numeric-parsing",
          "text-processing"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Numeric text parsing. FPM 0.12 rejects the upstream features/profiles tables; a checksum-guarded manifest adaptation removes them and supplies the intended -fno-range-check compiler setting explicitly. The Fortran sources are unchanged and development-only benchmark dependencies are not built. The main checks decimal/scientific and Fortran D-exponent parsing, the largest positive signed int64, hexadecimal parsing, invalid-input status and exponent-overflow status. Correct rounding for every input, all formats, underflow, platforms and speed claims are not validated.",
        "reviewed_revision": "195e47d90874cb1ff38598d80a7e4919c49b89d8",
        "procedures": [
          {
            "id": "numeric-parsing",
            "package_id": "fortran-fast-float",
            "revision": "195e47d90874cb1ff38598d80a7e4919c49b89d8",
            "module": "fast_float_module",
            "procedure": "parse_double / parse_i64 / parse_i32",
            "gams_codes": [
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Numeric text parsing. FPM 0.12 rejects the upstream features/profiles tables; a checksum-guarded manifest adaptation removes them and supplies the intended -fno-range-check compiler setting explicitly. The Fortran sources are unchanged and development-only benchmark dependencies are not built. The main checks decimal/scientific and Fortran D-exponent parsing, the largest positive signed int64, hexadecimal parsing, invalid-input status and exponent-overflow status. Correct rounding for every input, all formats, underflow, platforms and speed claims are not validated. The class-specific N3 driver checks 154 calls, including 129 exact dyadic decimals, signed integer boundaries, binary/hex input, Fortran D exponent, one binary64 halfway rounding case and six invalid/overflow outcomes. It does not certify correct rounding for all inputs or complete-token consumption.",
            "evidence": [
              {
                "path": "src/fast_float_module.F90",
                "sha256": "1ea1f5ef985405a279fdc3e16b010dbe27973d70c2d446a44b5f79ff87d854a4",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/check.f90",
                "sha256": "a8929363a2afc183edeb9c5aa8b31322334b0227c410fe345e2f2ba7e5eca526"
              }
            ],
            "driver_id": "fast-float-parsing-reference"
          }
        ]
      },
      "playground": {
        "package_id": "fortran-fast-float",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-fast-float",
        "package_revision": "195e47d90874cb1ff38598d80a7e4919c49b89d8",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-fast-float.f90",
          "sha256": "3faed9ca14d382bcf516cb861f6520db22a85a275229440a53de4be0dc929834"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "195e47d90874cb1ff38598d80a7e4919c49b89d8",
        "verified_at": "2026-10-29T12:13:59.407766+00:00",
        "packages": []
      }
    },
    {
      "id": "github:perazz/fortran-lapack",
      "name": "fortran-lapack",
      "repository": {
        "host": "github",
        "owner": "perazz",
        "name": "fortran-lapack",
        "url": "https://github.com/perazz/fortran-lapack"
      },
      "description": "Modern linear algebra: linear systems, eigenvalues, least squares, and matrix factorizations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD3",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "blas",
          "eigenvalues",
          "eigenvectors",
          "fortran",
          "fortran-package-manager",
          "lapack",
          "lapack95",
          "lapacke",
          "linear-algebra",
          "linear-equations",
          "machine-learning",
          "matrix-factorization",
          "modern-fortran",
          "modern-fortran-modules",
          "numpy",
          "singular-values",
          "svd"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 42,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "eigenvalues",
          "lapack",
          "least-squares",
          "linear-algebra",
          "linear-systems",
          "matrix-factorization"
        ],
        "gams_codes": [
          "D",
          "D2",
          "D2a",
          "D2a1",
          "D4",
          "D4a",
          "D4a1",
          "D5",
          "D6",
          "D9",
          "D9a",
          "D9a1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
        "procedures": [
          {
            "id": "fortran-lapack-solve",
            "package_id": "fortran-lapack",
            "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
            "module": "linear_algebra",
            "procedure": "solve",
            "gams_codes": [
              "D2a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Real dense linear systems; the generic API also has other overloads not classified by this record.",
            "evidence": [
              {
                "path": "src/la_solve.f90",
                "sha256": "ca7b0ea399dad6e2e4ab03785c95f47795a2db957a018cb57ad84f50fa5c944b",
                "line": 139
              }
            ],
            "author_examples": [
              {
                "path": "test/test_la_solve.f90",
                "sha256": "bad47b312ddb22e98bda7dc44ea06c9ba02fe30cce4b143c8da27d8e1bae5232"
              }
            ],
            "driver_id": "fortran-lapack-dense-solve"
          },
          {
            "id": "fortran-lapack-eigh",
            "package_id": "fortran-lapack",
            "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
            "module": "linear_algebra",
            "procedure": "eigh (real symmetric overload)",
            "gams_codes": [
              "D4a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Standard real symmetric eigenproblem; complex Hermitian overload is not included in this record.",
            "evidence": [
              {
                "path": "src/la_eigs.f90",
                "sha256": "2fc9eb41ce23953ab667307bd3491e4df8f596d83434424e1e4c47bb7e2812fb",
                "line": 209
              }
            ],
            "author_examples": [
              {
                "path": "test/test_la_eigs.f90",
                "sha256": "0390b1bc8f2b50ced1ee058d553f6cdd3180c5599e62e5dfa90989ad4f3e8ebd"
              }
            ]
          },
          {
            "id": "fortran-lapack-qr",
            "package_id": "fortran-lapack",
            "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
            "module": "linear_algebra",
            "procedure": "qr",
            "gams_codes": [
              "D5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "QR decomposition; inspect the overload for pivoting and arithmetic type.",
            "evidence": [
              {
                "path": "src/la_qr.f90",
                "sha256": "a5e62f3945abb8525157d2731b7a4a5506ab3c393ba094f6f3ec4edc0b27214f",
                "line": 56
              }
            ],
            "author_examples": [
              {
                "path": "test/test_la_qr.f90",
                "sha256": "331d45304232c7b57f12d3c928d943e96af659d96e41daa4f5c46a2b4ec5201b"
              }
            ],
            "driver_id": "fortran-lapack-qr-decomposition"
          },
          {
            "id": "fortran-lapack-svd",
            "package_id": "fortran-lapack",
            "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
            "module": "linear_algebra",
            "procedure": "svd",
            "gams_codes": [
              "D6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Singular value decomposition.",
            "evidence": [
              {
                "path": "src/la_svd.f90",
                "sha256": "29bb0e00f7c8ad36febc5d4f44f5f1b4f2e6da4df4c77a1d8e015664b28e95b8",
                "line": 47
              }
            ],
            "author_examples": [
              {
                "path": "test/test_la_svd.f90",
                "sha256": "f7d8ab0da8c7badb0d8bdc43d30f5a7cd044c7afc4d7605111b44839ecdeb824"
              }
            ]
          },
          {
            "id": "fortran-lapack-lstsq",
            "package_id": "fortran-lapack",
            "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
            "module": "linear_algebra",
            "procedure": "lstsq",
            "gams_codes": [
              "D9a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Unconstrained linear least-squares solution.",
            "evidence": [
              {
                "path": "src/la_least_squares.f90",
                "sha256": "19fbb22fafa5d984cd96646cc43374592d700e2c2941ec1899ab3f5adc43802c",
                "line": 168
              }
            ],
            "author_examples": [
              {
                "path": "test/test_linalg_lstsq.f90",
                "sha256": "7c96b67b140d664a8ce61e1d443a27a5e8b3a217dc85e66435e42c9127af4810"
              }
            ],
            "driver_id": "fortran-lapack-least-squares"
          },
          {
            "id": "fortran-lapack-syev",
            "package_id": "fortran-lapack",
            "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
            "module": "la_lapack",
            "procedure": "syev (real64 overload)",
            "gams_codes": [
              "D4a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Lower-level real64 LAPACK syev interface with explicit workspace; high-level wrapper is a separate configuration.",
            "evidence": [
              {
                "path": "src/la_lapack_eigv_sym.f90",
                "line": 6095,
                "sha256": "a11c54e93d03ebe7595f0f5c7ed4c502237d357710c8c899dcae2e6ef857c448"
              }
            ],
            "author_examples": [],
            "driver_id": "fortran-lapack-symmetric-eigen"
          },
          {
            "id": "fortran-lapack-gesvd",
            "package_id": "fortran-lapack",
            "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
            "module": "la_lapack",
            "procedure": "gesvd (real64 overload)",
            "gams_codes": [
              "D6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Lower-level real64 LAPACK gesvd interface with explicit workspace; high-level wrapper is a separate configuration.",
            "evidence": [
              {
                "path": "src/la_lapack_eigv_svd_drivers.f90",
                "line": 2310,
                "sha256": "506054fe119297bfbf4f8b9037582e5af83e3e7e948f364ea71da2d6f7b2774b"
              }
            ],
            "author_examples": [],
            "driver_id": "fortran-lapack-svd-decomposition"
          }
        ],
        "numerical_review": {
          "revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
          "archive_sha256": "42a5cc095c28818d597c92b94e72715d5bb620be8068866f0efba26cc2454d1b",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortran-lapack-solve",
            "fortran-lapack-eigh",
            "fortran-lapack-qr",
            "fortran-lapack-svd",
            "fortran-lapack-lstsq",
            "fortran-lapack-syev",
            "fortran-lapack-gesvd"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fortran-lapack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-lapack",
        "package_revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-lapack.f90",
          "sha256": "66c6d1b1edbe1b6da10d6bf41a0aff2975d6ccbe0d2b220c04292162189987fb"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e5e45fdd5a38bfab06d1f703f12b787937aa33bb",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:perazz/fortran-primes",
      "name": "fortran-primes",
      "repository": {
        "host": "github",
        "owner": "perazz",
        "name": "fortran-primes",
        "url": "https://github.com/perazz/fortran-primes"
      },
      "description": "Generate prime numbers, test primality, and factor integers.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Number theory"
      ],
      "license": {
        "label": "MIT; source headers also identify CC-BY-NC-4.0 components",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "factorization",
          "fortran",
          "fortran-package-manager",
          "modern-fortran",
          "prime-numbers",
          "primes"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 14,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "integer-factorization",
          "number-theory",
          "prime-numbers"
        ],
        "gams_codes": [
          "B"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "817abbf15c2565d2b92c35546d9e18152eb02e2c",
        "procedures": [
          {
            "id": "fortran-primes-is-prime",
            "package_id": "fortran-primes",
            "revision": "817abbf15c2565d2b92c35546d9e18152eb02e2c",
            "module": "prime_numbers",
            "procedure": "primes, is_prime",
            "gams_codes": [
              "B"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Prime enumeration and primality testing; B has no finer published GAMS children. Dedicated GAMS B driver: prime enumeration and primality compared with independent trial division, including selected int64 values; not full-domain validation. Pinned limitation: the int64 input 3215031751 times out in the signed-int32 branch; retained failing source/result and minimal reproducer are in docs/gams-candidates/fortran-primes. The checked driver excludes that input.",
            "evidence": [
              {
                "path": "src/prime_numbers.f90",
                "sha256": "5086bda43361b5fdf5d523460d54a941f00e6d59b273d916d6127301623cb40d",
                "line": 40
              }
            ],
            "author_examples": [
              {
                "path": "test/test_primes.f90",
                "sha256": "adfd87143ec3021c2241c8caa160152068b6d56a218a81d0e5cda02d8ca68a76"
              }
            ],
            "driver_id": "primes-trial-division"
          }
        ],
        "numerical_review": {
          "revision": "817abbf15c2565d2b92c35546d9e18152eb02e2c",
          "archive_sha256": "1ae02b151c246b976ac7ad34d117ef9990d82cee2a68b4d2946dd100024763c1",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortran-primes-is-prime"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fortran-primes",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-primes",
        "package_revision": "817abbf15c2565d2b92c35546d9e18152eb02e2c",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-primes.f90",
          "sha256": "99718d896d36e2b277b500a65b1edbd3c788c8c0f37ff8d650ecf8471c88c44b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "817abbf15c2565d2b92c35546d9e18152eb02e2c",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:perazz/fortran-regex",
      "name": "fortran-regex",
      "repository": {
        "host": "github",
        "owner": "perazz",
        "name": "fortran-regex",
        "url": "https://github.com/perazz/fortran-regex"
      },
      "description": "Search text with a lightweight regular expression engine.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Text parsing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "regex",
          "regex-parser",
          "regular-expression",
          "regular-expressions"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 30,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "pattern-matching",
          "regular-expressions",
          "text-processing"
        ],
        "gams_codes": [
          "N",
          "N3",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "96ab33fe003862a28cec91ddd170ac0e86c26c87"
      },
      "playground": {
        "package_id": "fortran-regex",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-regex",
        "package_revision": "96ab33fe003862a28cec91ddd170ac0e86c26c87",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-regex.f90",
          "sha256": "7d3920a6b5f1c560665ea98f229f29cda121301b36f3c23d2f0c6bfd1f1e8eed"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "96ab33fe003862a28cec91ddd170ac0e86c26c87",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:perazz/fortran-shlex",
      "name": "fortran-shlex",
      "repository": {
        "host": "github",
        "owner": "perazz",
        "name": "fortran-shlex",
        "url": "https://github.com/perazz/fortran-shlex"
      },
      "description": "Split command strings into tokens while respecting quotes.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Text parsing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "posix",
          "regular-expressions",
          "shlex",
          "shlex-library"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 10,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "command-line",
          "parsing",
          "quoting",
          "tokenization"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "e20b6f86c82e33fae78b54b074bab5369efde6a3"
      },
      "playground": {
        "package_id": "fortran-shlex",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-shlex",
        "package_revision": "e20b6f86c82e33fae78b54b074bab5369efde6a3",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-shlex.f90",
          "sha256": "8d9bc325ca764585d993c6330717a0066a02b11e427dd565f67c90b1ae1799c6"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e20b6f86c82e33fae78b54b074bab5369efde6a3",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:perazz/twopnt",
      "name": "twopnt",
      "repository": {
        "host": "github",
        "owner": "perazz",
        "name": "twopnt",
        "url": "https://github.com/perazz/twopnt"
      },
      "description": "Boundary-value problem solver with adaptive grids and a modern object interface.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "boundary-value-problem",
          "boundary-value-problems",
          "bvp",
          "fortran"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "adaptive-grids",
          "boundary-value-problems",
          "differential-equations"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I1b"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "4ce477215f84a88d879f0ca3937cab9bedfb7762",
        "procedures": [
          {
            "id": "twopnt-solve",
            "package_id": "twopnt",
            "revision": "4ce477215f84a88d879f0ca3937cab9bedfb7762",
            "module": "twopnt_core",
            "procedure": "TwoPntBVProblem%run",
            "gams_codes": [
              "I1b"
            ],
            "review_level": "source-reviewed",
            "derivatives": "problem residual and configured Jacobian handling",
            "notes": "Adaptive boundary-value solution; retain I1b rather than infer linearity for all supported problems. A manufactured Poisson probe u_second_derivative=-2 with zero endpoints failed the full-profile/residual checks: the pinned solver reports success but returns the preceding iterate (the zero initial guess on the linear problem). The convergence exit occurs before v0=v1 in search. Failed source/output are retained under docs/gams-candidates/twopnt; this probe is not a verified driver and no library patch has been applied.",
            "evidence": [
              {
                "path": "src/twopnt_core.f90",
                "sha256": "830a05ba3f3a7c444645826d03dbac8f793652d3318c9cd7752ed6a152dc79fd",
                "line": 357
              }
            ],
            "author_examples": []
          }
        ],
        "numerical_review": {
          "revision": "4ce477215f84a88d879f0ca3937cab9bedfb7762",
          "archive_sha256": "33884a9ec5fd2cea1d66c64c786dbb42beb9b58100e10ada14a725cbce66a02e",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "twopnt-solve"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "twopnt",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=twopnt",
        "package_revision": "4ce477215f84a88d879f0ca3937cab9bedfb7762",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/twopnt.f90",
          "sha256": "c470ef0cd5d304a01ef29f187458c1629fbe4ef684c83290dc0707fbe32c196c"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "4ce477215f84a88d879f0ca3937cab9bedfb7762",
        "verified_at": "2026-10-27T22:36:01.378932+00:00",
        "packages": []
      }
    },
    {
      "id": "github:pierugit/fmmap",
      "name": "fmmap",
      "repository": {
        "host": "github",
        "owner": "PierUgit",
        "name": "fmmap",
        "url": "https://github.com/PierUgit/fmmap"
      },
      "description": "Map files into memory and access their contents as Fortran arrays.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Files and processes"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "memory-mapped-file"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 12,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "file-io",
          "memory-mapped-files"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "0ccbb98b7165233bdd5a07728ee4312deed4f8f7"
      },
      "playground": {
        "package_id": "fmmap",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fmmap",
        "package_revision": "0ccbb98b7165233bdd5a07728ee4312deed4f8f7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fmmap.f90",
          "sha256": "16cca4977d769efb16d77f4c6248a2ab3a07762eac47ba36cfa4f5e89464fdb7"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "0ccbb98b7165233bdd5a07728ee4312deed4f8f7",
        "verified_at": "2026-10-28T01:33:45.255776+00:00",
        "packages": []
      }
    },
    {
      "id": "github:plplot/plplot",
      "name": "plplot",
      "repository": {
        "host": "github",
        "owner": "PLplot",
        "name": "PLplot",
        "url": "https://github.com/PLplot/PLplot"
      },
      "description": "PLplot 5.15.0 Fortran bindings, compiled with GNU 16 against the pinned native C library; headless Cairo PNG plots.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Plotting"
      ],
      "license": {
        "label": "LGPL-2.0-or-later (Fortran bindings); LGPL-2.0 (core)",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 63,
        "stars_updated_at": "2026-10-30T17:10:55.680552+00:00"
      },
      "curation": {
        "topics": [
          "cairo",
          "headless",
          "plotting",
          "png",
          "scientific-visualization"
        ],
        "gams_codes": [
          "Q"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The unmodified PLplot 5.15.0 modern Fortran binding modules are compiled with GNU Fortran 16 against Debian libplplot 5.15.0+dfsg2-15+b1. The author CMake precision template is configured with c_double to match the native double-precision C core; the generated include is checksum-locked. Original included parameter/interface sources and LGPL notices are retained. The checked main follows the author plinit/plenv/pllab/plline/plend API, checks finite sine samples and known extrema, requests the headless pngcairo driver at 800x500, and verifies the generated PNG signature and nontrivial size. The sandbox must return a browser-viewable PNG, which is visually reviewed. Q covers graphics. Native C/Cairo libraries and fonts are installed only in this package image; no precompiled Debian Fortran module files are used by the consumer. Interactive windows, other output drivers and the full upstream example/test suite are not verified.",
        "reviewed_revision": "a28c702862ea466a4ee22faba1b676aade77dc4c",
        "procedures": [
          {
            "id": "plplot-demo-api",
            "package_id": "plplot",
            "revision": "a28c702862ea466a4ee22faba1b676aade77dc4c",
            "module": "plplot",
            "procedure": "plinit / plenv / pllab / plline / plend",
            "gams_codes": [
              "Q"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The unmodified PLplot 5.15.0 modern Fortran binding modules are compiled with GNU Fortran 16 against Debian libplplot 5.15.0+dfsg2-15+b1. The author CMake precision template is configured with c_double to match the native double-precision C core; the generated include is checksum-locked. Original included parameter/interface sources and LGPL notices are retained. The checked main follows the author plinit/plenv/pllab/plline/plend API, checks finite sine samples and known extrema, requests the headless pngcairo driver at 800x500, and verifies the generated PNG signature and nontrivial size. The sandbox must return a browser-viewable PNG, which is visually reviewed. Q covers graphics. Native C/Cairo libraries and fonts are installed only in this package image; no precompiled Debian Fortran module files are used by the consumer. Interactive windows, other output drivers and the full upstream example/test suite are not verified.",
            "evidence": [
              {
                "path": "bindings/fortran/plplot.f90",
                "sha256": "a6d9638c10f45bccb1831d2d97a109668e22a9fece4fb5cb2667dfcca403ac63",
                "line": 1
              },
              {
                "path": "bindings/fortran/plplot_double.f90",
                "sha256": "b9134d1f3342ee08581248e7def1d539a426676026d1297e2c900e03488fa0ce",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/fortran/x01f.f90",
                "sha256": "ad2d00c59543140fdb871ef80f9c1b66965b9b0b7bfde891ae63387c44298bd6",
                "line": 1
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "plplot",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=plplot",
        "package_revision": "a28c702862ea466a4ee22faba1b676aade77dc4c",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/plplot.f90",
          "sha256": "cdd45260d4096781031061feed4e28d7f23ff65e3a9416041c16c74d5c73828f"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "a28c702862ea466a4ee22faba1b676aade77dc4c",
        "verified_at": "2026-10-30T17:14:08.367055+00:00",
        "packages": []
      }
    },
    {
      "id": "github:princemahajan/flint",
      "name": "flint",
      "repository": {
        "host": "github",
        "owner": "princemahajan",
        "name": "FLINT",
        "url": "https://github.com/princemahajan/FLINT"
      },
      "description": "Adaptive explicit Runge-Kutta ODE integration with dense output and event detection.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "Apache-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "differential-equations",
          "fortran",
          "julia",
          "numerical-integration",
          "ode",
          "ode-events",
          "runge-kutta"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 48,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "adaptive-methods",
          "dense-output",
          "event-detection",
          "ode",
          "runge-kutta"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I1a",
          "I1a1",
          "I1a1a"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "b6322037cb751b11fa64ea66cf23173ae572fff6",
        "procedures": [
          {
            "id": "flint-erk-class",
            "package_id": "flint",
            "revision": "b6322037cb751b11fa64ea66cf23173ae572fff6",
            "module": "FLINT",
            "procedure": "ERK_class%Integrate",
            "gams_codes": [
              "I1a1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "right-hand side only",
            "notes": "Explicit adaptive Runge-Kutta initial-value integration with optional dense output.",
            "evidence": [
              {
                "path": "src/ERK.f90",
                "sha256": "ba706fe5cfbe60fcbb0d5e7a3c8eafd96a65018c0de5ae348c8b23a3216692fe",
                "line": 72
              }
            ],
            "author_examples": [
              {
                "path": "tests/test_WP.f90",
                "sha256": "35fa4f2caab02d289115d3ca33629c28e7872b733da781df352849c0645f09d4"
              }
            ],
            "driver_id": "flint-ivp-reference"
          }
        ],
        "numerical_review": {
          "revision": "b6322037cb751b11fa64ea66cf23173ae572fff6",
          "archive_sha256": "8023582792da69e2b317f67b56f2dedbe03c48e4f223cd2877c8b24dffb90e25",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "flint-erk-class"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "flint",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=flint",
        "package_revision": "b6322037cb751b11fa64ea66cf23173ae572fff6",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/flint.f90",
          "sha256": "3525075c7c9c46705d6200ca2965c4acab281b4102126b5bccbb8c4088957d3f"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b6322037cb751b11fa64ea66cf23173ae572fff6",
        "verified_at": "2026-10-27T22:20:55.737826+00:00",
        "packages": []
      }
    },
    {
      "id": "github:reinh-bader/fgsl",
      "name": "fgsl",
      "repository": {
        "host": "github",
        "owner": "reinh-bader",
        "name": "fgsl",
        "url": "https://github.com/reinh-bader/fgsl"
      },
      "description": "Fortran bindings to GSL; checked adaptive quadrature with an endpoint singularity.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Numerical libraries"
      ],
      "license": {
        "label": "GPL-2.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "c-interop",
          "gsl",
          "gsl-library",
          "scientific-computing"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 95,
        "stars_updated_at": "2026-10-29T23:19:15.654037+00:00"
      },
      "curation": {
        "topics": [
          "gsl",
          "linear-algebra",
          "numerical-methods",
          "optimization",
          "quadrature",
          "special-functions",
          "statistics"
        ],
        "gams_codes": [
          "C",
          "D",
          "E",
          "F",
          "G",
          "H",
          "H2",
          "H2a",
          "H2a1",
          "H2a1a",
          "H2a1a1",
          "I",
          "J",
          "K",
          "L"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "FGSL wraps GSL numerical routines. Broad classifications follow the exported interfaces for special functions, linear algebra, interpolation, root finding, optimization, integration/differentiation, ODEs, transforms, fitting and statistics. The checked consumer adapts the author's QAGS example and independently verifies the integral of log(x)/sqrt(x) on [0,1] against -4, status and error estimate. The procedure mapping covers adaptive one-dimensional finite-interval quadrature; other numerical interfaces are not runtime-verified by this example. Upstream Autoconf probes generated the complete configuration on GNU/Linux LP64 with GSL 2.8. An audited asset stages that header as config.inc; checksum-guarded edits change only its include filename in Fortran and C. The C support object and pinned system GSL libraries are linked. Local exports include the asset and patches; this configuration targets GNU/Linux LP64, and another ABI or GSL version requires regeneration against its local tools. GPL-2.0-or-later notices are retained.",
        "reviewed_revision": "27a3e7cc0809623bcfde680c39a6fdcf0f590c4c",
        "procedures": [
          {
            "id": "fgsl-qags",
            "package_id": "fgsl",
            "revision": "27a3e7cc0809623bcfde680c39a6fdcf0f590c4c",
            "module": "fgsl",
            "procedure": "fgsl_integration_qags",
            "gams_codes": [
              "H2a1a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "FGSL wraps GSL numerical routines. Broad classifications follow the exported interfaces for special functions, linear algebra, interpolation, root finding, optimization, integration/differentiation, ODEs, transforms, fitting and statistics. The checked consumer adapts the author's QAGS example and independently verifies the integral of log(x)/sqrt(x) on [0,1] against -4, status and error estimate. The procedure mapping covers adaptive one-dimensional finite-interval quadrature; other numerical interfaces are not runtime-verified by this example. Upstream Autoconf probes generated the complete configuration on GNU/Linux LP64 with GSL 2.8. An audited asset stages that header as config.inc; checksum-guarded edits change only its include filename in Fortran and C. The C support object and pinned system GSL libraries are linked. Local exports include the asset and patches; this configuration targets GNU/Linux LP64, and another ABI or GSL version requires regeneration against its local tools. GPL-2.0-or-later notices are retained.",
            "evidence": [
              {
                "path": "api/integration.finc",
                "sha256": "23e69e3b8988a70a4d0e941c79ec8d9e155b8af036d8fd1c5b6e8c2d11b78eac",
                "line": 1
              },
              {
                "path": "interface/integration.finc",
                "sha256": "82170aafcb6af1aec77b918c2e2a3d3ce508d9fd5bd5ae869675e64878a2b8d5",
                "line": 1
              },
              {
                "path": "fgsl.F90",
                "sha256": "b4fdf9b6ecf777be9165f4811988644cd12530cfba7365ca867cea2e07c758c0",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "doc/examples/integration.f90",
                "sha256": "70e3a685575ed22f8b8fcc1cf37ca0a17d4d67b76917f02f95aaf2594b1dc1cf"
              }
            ],
            "driver_id": "fgsl-qags-reference"
          }
        ],
        "numerical_review": {
          "revision": "27a3e7cc0809623bcfde680c39a6fdcf0f590c4c",
          "archive_sha256": "2c592ebb37d6ba1303153bac3ba0cee40585232d0d268ef99323b9849e85fbc9",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fgsl-qags"
          ],
          "notes": "FGSL wraps GSL numerical routines. Broad classifications follow the exported interfaces for special functions, linear algebra, interpolation, root finding, optimization, integration/differentiation, ODEs, transforms, fitting and statistics. The checked consumer adapts the author's QAGS example and independently verifies the integral of log(x)/sqrt(x) on [0,1] against -4, status and error estimate. The procedure mapping covers adaptive one-dimensional finite-interval quadrature; other numerical interfaces are not runtime-verified by this example. Upstream Autoconf probes generated the complete configuration on GNU/Linux LP64 with GSL 2.8. An audited asset stages that header as config.inc; checksum-guarded edits change only its include filename in Fortran and C. The C support object and pinned system GSL libraries are linked. Local exports include the asset and patches; this configuration targets GNU/Linux LP64, and another ABI or GSL version requires regeneration against its local tools. GPL-2.0-or-later notices are retained."
        }
      },
      "playground": {
        "package_id": "fgsl",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fgsl",
        "package_revision": "27a3e7cc0809623bcfde680c39a6fdcf0f590c4c",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fgsl.f90",
          "sha256": "bbd46afacb88187d405c33fd1d10fa550799cf8bb1c29e0eb210af3f7d705180"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "27a3e7cc0809623bcfde680c39a6fdcf0f590c4c",
        "verified_at": "2026-10-29T23:21:45.294111+00:00",
        "packages": []
      }
    },
    {
      "id": "github:renatomatz/econ-toolchain",
      "name": "econ-toolchain",
      "repository": {
        "host": "github",
        "owner": "renatomatz",
        "name": "econ-toolchain",
        "url": "https://github.com/renatomatz/econ-toolchain"
      },
      "description": "Markov chains, stochastic-process discretization and numerical tools for economic models.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Statistics"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T19:06:33.093926+00:00"
      },
      "curation": {
        "topics": [
          "economics",
          "markov-chains",
          "stationary-distributions",
          "stochastic-processes",
          "tauchen-discretization"
        ],
        "gams_codes": [
          "M"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "301d1659ba3d34973195985c552ca6fcfe2d9f29",
        "procedures": [
          {
            "id": "econ-toolchain-api",
            "package_id": "econ-toolchain",
            "revision": "301d1659ba3d34973195985c552ca6fcfe2d9f29",
            "module": "dist_mod",
            "procedure": "markov_steady_state / tauchen",
            "gams_codes": [
              "M"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Stochastic-process modeling: deterministic stationary probabilities and AR(1) Markov discretization, not a claim of random sampling. The stationary routine uses column-stochastic matrices, while tauchen returns row-stochastic matrices; the consumer transposes explicitly. Checked driver verifies analytic two-state and rank-one equilibria, normal midpoint-cell probabilities, normalization and stationary residuals; no random sampling claim.",
            "evidence": [
              {
                "path": "src/dist.f90",
                "sha256": "8d8a2905135114193fdef5b858fd1d40baf615f6b7e16330703194f613619b2b",
                "line": 62
              }
            ],
            "author_examples": [
              {
                "path": "test/markov_test.f90",
                "sha256": "9a75d29e32c81203ad5bfdcc68949468557645f4684e3ab40d968336cd361dae"
              },
              {
                "path": "test/tauchen_test.f90",
                "sha256": "f0875648571516ed6ab67343edade07c4ae301e95d5519552acf635b5061241e"
              }
            ],
            "driver_id": "econ-markov-reference"
          }
        ],
        "numerical_review": {
          "revision": "301d1659ba3d34973195985c552ca6fcfe2d9f29",
          "archive_sha256": "17f9f11a1e31418ab0211127966d9336068ce6d4662f421a9a513a6daedd70a5",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "econ-toolchain-api"
          ],
          "notes": "Stochastic-process modeling: deterministic stationary probabilities and AR(1) Markov discretization, not a claim of random sampling. The stationary routine uses column-stochastic matrices, while tauchen returns row-stochastic matrices; the consumer transposes explicitly. Source review covers these representative procedures, not an exhaustive API inventory."
        }
      },
      "playground": {
        "package_id": "econ-toolchain",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=econ-toolchain",
        "package_revision": "301d1659ba3d34973195985c552ca6fcfe2d9f29",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/econ-toolchain.f90",
          "sha256": "1836f3e088db1b8d5e9b4fca85d76a6e5f3d62eadd4d4c666ca4a954c064a07b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "301d1659ba3d34973195985c552ca6fcfe2d9f29",
        "verified_at": "2026-10-28T20:12:46.446837+00:00",
        "packages": [
          {
            "id": "github:fortran-lang/stdlib",
            "repository": "fortran-lang/stdlib",
            "revision": "58eb9133966c2797e0593281169ef57c43eccc1d"
          },
          {
            "id": "github:jacobwilliams/simulated-annealing",
            "repository": "jacobwilliams/simulated-annealing",
            "revision": "a2fa094d1ee39525c7e081cfd67866975e9e1dc5"
          }
        ]
      }
    },
    {
      "id": "github:rjabi/fjsample",
      "name": "fjsample",
      "repository": {
        "host": "github",
        "owner": "RJaBi",
        "name": "FJsample",
        "url": "https://github.com/RJaBi/FJsample"
      },
      "description": "Jackknife and bootstrap resampling, bias estimates and statistical uncertainties.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Statistics"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "bootstrap-resampling",
          "fortran",
          "fortran-package-manager",
          "jackknife-resampling",
          "meson-python"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "bootstrap",
          "jackknife",
          "resampling",
          "statistics",
          "uncertainty"
        ],
        "gams_codes": [
          "L",
          "L1",
          "L2",
          "L4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "8563d2653d1a9d80a355b2064f4b153559698915",
        "procedures": [
          {
            "id": "fjsample-jackerror",
            "package_id": "fjsample",
            "revision": "8563d2653d1a9d80a355b2064f4b153559698915",
            "module": "FJsample",
            "procedure": "Complement, jackError",
            "gams_codes": [
              "L4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Jackknife resampling uncertainty estimates; keep broad data-analysis class pending a suitable finer match. Checked driver verifies leave-one-out means, sample-mean and squared-mean uncertainty; the returned bias is full estimate minus average resampled estimate, without the conventional n-1 multiplier.",
            "evidence": [
              {
                "path": "src/jack.f90",
                "sha256": "9796190eb7c77a7b7cf8d0341ba9362b8f9ac58d78d4f89334f1cbffc1600d8e",
                "line": 21
              }
            ],
            "author_examples": [
              {
                "path": "app/main.f90",
                "sha256": "fdf0bee20cc5fc242153abdb5a881ab163b76004061dc1416ff55f87a34623b8"
              }
            ],
            "driver_id": "fjsample-jackknife-reference"
          }
        ],
        "numerical_review": {
          "revision": "8563d2653d1a9d80a355b2064f4b153559698915",
          "archive_sha256": "4def47fc11f70e1efac048271e43733601a3ad6e8152e0b747df139354742de8",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fjsample-jackerror"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fjsample",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fjsample",
        "package_revision": "8563d2653d1a9d80a355b2064f4b153559698915",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fjsample.f90",
          "sha256": "3d7cd7e1623d76a45460b4e94d898a42e38f535a402811ac23d5f16e5d40ec32"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "8563d2653d1a9d80a355b2064f4b153559698915",
        "verified_at": "2026-10-28T00:46:44.377165+00:00",
        "packages": []
      }
    },
    {
      "id": "github:samharrison7/fortran-error-handler",
      "name": "fortran-error-handler",
      "repository": {
        "host": "github",
        "owner": "samharrison7",
        "name": "fortran-error-handler",
        "url": "https://github.com/samharrison7/fortran-error-handler"
      },
      "description": "Structured errors, input criteria, result values and custom traces.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Error handling"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "error-handling",
          "fortran",
          "fortran-package-manager",
          "fpm"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 20,
        "stars_updated_at": "2026-10-29T13:59:01.916745+00:00"
      },
      "curation": {
        "topics": [
          "diagnostics",
          "error-handling",
          "input-validation",
          "object-oriented"
        ],
        "gams_codes": [
          "R",
          "R2",
          "R3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Structured error handling and validation. The upstream FPM library sources are unchanged; unlimited free-form line length accommodates existing long source lines. Adapted from the author example, the main checks a valid bounded integer in a Result object, rejects an out-of-range integer with expected code 105, checks two retained application trace entries, and triggers a custom noncritical warning while execution continues. The example uses fixed values rather than interactive input. All Result ranks/types, critical-error termination, all validation criteria and every trace-propagation path are not validated.",
        "reviewed_revision": "ab840882bb5036de00de8b2580e745fa5314d6fd",
        "procedures": [
          {
            "id": "error-validation",
            "package_id": "fortran-error-handler",
            "revision": "ab840882bb5036de00de8b2580e745fa5314d6fd",
            "module": "ErrorCriteriaModule / ErrorHandlerModule",
            "procedure": "limit / trigger / addToTrace",
            "gams_codes": [
              "R2",
              "R3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Structured error handling and validation. The upstream FPM library sources are unchanged; unlimited free-form line length accommodates existing long source lines. Adapted from the author example, the main checks a valid bounded integer in a Result object, rejects an out-of-range integer with expected code 105, checks two retained application trace entries, and triggers a custom noncritical warning while execution continues. The example uses fixed values rather than interactive input. All Result ranks/types, critical-error termination, all validation criteria and every trace-propagation path are not validated. Dedicated R2 consumer checks 102 integer/real32/real64 inclusive bound comparisons against native logical expressions, including one-sided/equal bounds and nearest representable values inside/outside both endpoints. All 30 expected rejections must retain code 105, a supplied custom message and one supplied trace entry. No error is triggered. Other criteria, reversed/missing bounds, NaNs, critical termination and the separate R3 handling mapping are not verified.",
            "evidence": [
              {
                "path": "src/ErrorCriteria.f90",
                "sha256": "6b9e8265a18e15bb301435d06322d31467b220a93081cce403483da2229e2bd9",
                "line": 1
              },
              {
                "path": "src/ErrorInstance.f90",
                "sha256": "a270e72c6883ceab3a9306f241b3e7fe9470647b0c5defacbdcc05e94b7fd51e",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/example_usage.f90",
                "sha256": "9aeb703ccb8dbb6089225d0db3c7569ad951013a5cda7d48ed16279a78e2fbfc"
              }
            ],
            "driver_id": "error-bounds-reference"
          }
        ]
      },
      "playground": {
        "package_id": "fortran-error-handler",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-error-handler",
        "package_revision": "ab840882bb5036de00de8b2580e745fa5314d6fd",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-error-handler.f90",
          "sha256": "b2731334cf8bb64932b3f3b985c57b2dfa6a3237d08842aca6501716259bb081"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "ab840882bb5036de00de8b2580e745fa5314d6fd",
        "verified_at": "2026-10-29T14:04:20.544152+00:00",
        "packages": []
      }
    },
    {
      "id": "github:scientific-computing/fkb",
      "name": "fkb",
      "repository": {
        "host": "github",
        "owner": "scientific-computing",
        "name": "FKB",
        "url": "https://github.com/scientific-computing/FKB"
      },
      "description": "Fortran-Keras bridge: load neural-network weights and evaluate predictions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Machine learning"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "deep-learning",
          "fortran",
          "keras"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 188,
        "stars_updated_at": "2026-10-29T21:15:52.018636+00:00"
      },
      "curation": {
        "topics": [
          "inference",
          "keras",
          "machine-learning",
          "model-io",
          "neural-networks"
        ],
        "gams_codes": [
          "K"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The upstream CMake neural library source set is wrapped for FPM in REAL64/INT32 mode with single-image coarrays and OpenMP. The deterministic consumer writes and loads a tiny two-dense-layer ReLU network, checks four predictions against independently calculated weights and biases, and verifies saving and reloading the model. K (Approximation) describes the tested neural-network inference. Training, Keras conversion tools, dropout and batch normalization are not verified; no optimization classification is inferred from their presence.",
        "reviewed_revision": "a1c97d4d66431df87662b59fe8e8a24feaf28a3a",
        "procedures": [
          {
            "id": "fkb-inference",
            "package_id": "fkb",
            "revision": "a1c97d4d66431df87662b59fe8e8a24feaf28a3a",
            "module": "mod_network",
            "procedure": "load / output / save",
            "gams_codes": [
              "K"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The upstream CMake neural library source set is wrapped for FPM in REAL64/INT32 mode with single-image coarrays and OpenMP. The deterministic consumer writes and loads a tiny two-dense-layer ReLU network, checks four predictions against independently calculated weights and biases, and verifies saving and reloading the model. K (Approximation) describes the tested neural-network inference. Training, Keras conversion tools, dropout and batch normalization are not verified; no optimization classification is inferred from their presence. The K driver adds a non-diagonal 2-3-2 ReLU/linear network, 25 two-dimensional grid inputs and 50 original/restored predictions against scalar forward sums. Save/reload is checked; training and approximation quality are not certified.",
            "evidence": [
              {
                "path": "src/lib/mod_network.F90",
                "sha256": "a79b92aa54dd8e0e11009da9ecb09fce9b114d3cb6fa406b9d7e5ddfc17a3951",
                "line": 163
              },
              {
                "path": "src/lib/mod_dense_layer.F90",
                "sha256": "9030f4ca3e88dda2de3b15b9420daadb9b3147e8d5c18a8bba23b069275fd7be",
                "line": 1
              },
              {
                "path": "src/lib/mod_activation.F90",
                "sha256": "56401a1c9829303ff1e2f22de0a4552ead30a5af830f15b71b60eb1f76e36aca",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "src/tests/test_keras.F90",
                "sha256": "1edfc843fefa10ff2db6e9b2a5af2aaa7adf06f9dae9e9865c3dfd09644c493e"
              },
              {
                "path": "src/tests/test_save_and_load.F90",
                "sha256": "85d5f5071188738e2d83ff549233ebaad1420c031a07d59e9bbca04f4e69dda7"
              }
            ],
            "driver_id": "fkb-network-reference"
          }
        ],
        "numerical_review": {
          "revision": "a1c97d4d66431df87662b59fe8e8a24feaf28a3a",
          "archive_sha256": "53f813715117928de41f0f740c8767ed35c2fdf97a6bd9c648c302bf1de90cbe",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fkb-inference"
          ],
          "notes": "The upstream CMake neural library source set is wrapped for FPM in REAL64/INT32 mode with single-image coarrays and OpenMP. The deterministic consumer writes and loads a tiny two-dense-layer ReLU network, checks four predictions against independently calculated weights and biases, and verifies saving and reloading the model. K (Approximation) describes the tested neural-network inference. Training, Keras conversion tools, dropout and batch normalization are not verified; no optimization classification is inferred from their presence."
        }
      },
      "playground": {
        "package_id": "fkb",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fkb",
        "package_revision": "a1c97d4d66431df87662b59fe8e8a24feaf28a3a",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fkb.f90",
          "sha256": "638fb20985b3c8f0707e5e038e021ee1a82f136b306081c05b88443d880318b0"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "a1c97d4d66431df87662b59fe8e8a24feaf28a3a",
        "verified_at": "2026-10-29T21:18:06.912825+00:00",
        "packages": []
      }
    },
    {
      "id": "github:scifortran/scifortran",
      "name": "scifortran",
      "repository": {
        "host": "github",
        "owner": "SciFortran",
        "name": "SciFortran",
        "url": "https://github.com/SciFortran/SciFortran"
      },
      "description": "SciFortran integration subset: sampled-data rules and adaptive quadrature.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Integration"
      ],
      "license": {
        "label": "LGPL-3.0-or-later AND CC0-1.0 AND BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "arpack",
          "blas",
          "cmake",
          "fftpack",
          "fortran",
          "lapack",
          "minpack",
          "mpi",
          "quadpack",
          "scalapack",
          "scientific",
          "scipy"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 211,
        "stars_updated_at": "2026-10-29T20:54:40.271634+00:00"
      },
      "curation": {
        "topics": [
          "adaptive-quadrature",
          "numerical-integration",
          "quadpack",
          "simpson-rule",
          "trapezoidal-rule"
        ],
        "gams_codes": [
          "H",
          "H2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Selected integration subset, explicitly labeled in the menu: SF_INTEGRATE, GAUSS_QUADRATURE and standalone bundled QUADPACK procedures. Original include files remain in their source directories and the operator FPM wrapper compiles only the listed library files. Checksum-guarded edits promote 478 long coefficient literals from E to D exponents in DATA statements and REAL(8) PARAMETER array initializers in two bundled QUADPACK files. Each target array is checked to be REAL(8), and all decimal digits are retained. This avoids evaluating the supplied coefficients at default-real precision before assignment to double precision; formulas and the default-real compiler mode are unchanged. The linked quadrature-fortran BSD-3-Clause notice is restored as comments in GAUSS_QUADRATURE so source exports retain it. The consumer checks the Simpson and trapezoidal integrals of a sampled cubic against 1/4, adaptive integration of exp(x) over [0,1] against e-1 and exp(-x) over [0,infinity) against 1, and rejects nonfinite results. All six finite-interval Gauss-Kronrod rule choices are also checked against e-1. The example uses module callbacks: an initial consumer with internal callbacks segfaulted in the sandbox. Other SciFortran modules, MPI, linear algebra, the SCIFOR umbrella module, multidimensional/vector quadrature and all integration options are outside this selected build and verification scope.",
        "reviewed_revision": "ca4a55f49cfdf7a94e388bc3475a5db574d5de99",
        "procedures": [
          {
            "id": "scifortran-integration",
            "package_id": "scifortran",
            "revision": "ca4a55f49cfdf7a94e388bc3475a5db574d5de99",
            "module": "SF_INTEGRATE",
            "procedure": "simps / trapz / quad",
            "gams_codes": [
              "H2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Selected integration subset, explicitly labeled in the menu: SF_INTEGRATE, GAUSS_QUADRATURE and standalone bundled QUADPACK procedures. Original include files remain in their source directories and the operator FPM wrapper compiles only the listed library files. Checksum-guarded edits promote 478 long coefficient literals from E to D exponents in DATA statements and REAL(8) PARAMETER array initializers in two bundled QUADPACK files. Each target array is checked to be REAL(8), and all decimal digits are retained. This avoids evaluating the supplied coefficients at default-real precision before assignment to double precision; formulas and the default-real compiler mode are unchanged. The linked quadrature-fortran BSD-3-Clause notice is restored as comments in GAUSS_QUADRATURE so source exports retain it. The consumer checks the Simpson and trapezoidal integrals of a sampled cubic against 1/4, adaptive integration of exp(x) over [0,1] against e-1 and exp(-x) over [0,infinity) against 1, and rejects nonfinite results. All six finite-interval Gauss-Kronrod rule choices are also checked against e-1. The example uses module callbacks: an initial consumer with internal callbacks segfaulted in the sandbox. Other SciFortran modules, MPI, linear algebra, the SCIFOR umbrella module, multidimensional/vector quadrature and all integration options are outside this selected build and verification scope. Dedicated H2 consumer verifies 60 sampled polynomial fixtures through four Simpson/trapezoid routes (240 calls), using exact integrals and analytic trapezoidal corrections. Checks 178 adaptive calls: polynomial antiderivatives with default/six Gauss-Kronrod rules, exponential tails, Gaussian/Cauchy whole-line integrals and endpoint-root singularities. Uses module callbacks and existing coefficient-precision repairs. Weighted/pole integrals, complex/nonuniform sampled rules, all error paths and performance are outside this driver.",
            "evidence": [
              {
                "path": "src/SF_INTEGRATE/SF_INTEGRATE.f90",
                "sha256": "61d482f37170575a8e7af1b75aea6208eb7dbf64d4cc937d13b3fb6b8edf2a13",
                "line": 1
              },
              {
                "path": "src/SF_INTEGRATE/integrate_sample_1d.f90",
                "sha256": "02ea04872226cd79de58c61ba1e608463ed0530153eb56c3e5d4ff590d638733",
                "line": 1
              },
              {
                "path": "src/SF_INTEGRATE/integrate_quad_func.f90",
                "sha256": "62e566c1b670d536f43ac786939786dc85281e8b312cf49249a22f9efb6e0316",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/src/SF_INTEGRATE/01_test_sf_integrate_quad.f90",
                "sha256": "3d186c6d369e6ce1e38a7a6db39b2e0de520a94ad6244bfc6673e61aef712fbe"
              }
            ],
            "driver_id": "scifortran-quadrature-reference"
          }
        ],
        "numerical_review": {
          "revision": "ca4a55f49cfdf7a94e388bc3475a5db574d5de99",
          "archive_sha256": "f72bda1fbd2ad63d7d99fb3939317373a7c956c2910d9cf7da5909965d64fd91",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "scifortran-integration"
          ],
          "notes": "Selected integration subset, explicitly labeled in the menu: SF_INTEGRATE, GAUSS_QUADRATURE and standalone bundled QUADPACK procedures. Original include files remain in their source directories and the operator FPM wrapper compiles only the listed library files. Checksum-guarded edits promote 478 long coefficient literals from E to D exponents in DATA statements and REAL(8) PARAMETER array initializers in two bundled QUADPACK files. Each target array is checked to be REAL(8), and all decimal digits are retained. This avoids evaluating the supplied coefficients at default-real precision before assignment to double precision; formulas and the default-real compiler mode are unchanged. The linked quadrature-fortran BSD-3-Clause notice is restored as comments in GAUSS_QUADRATURE so source exports retain it. The consumer checks the Simpson and trapezoidal integrals of a sampled cubic against 1/4, adaptive integration of exp(x) over [0,1] against e-1 and exp(-x) over [0,infinity) against 1, and rejects nonfinite results. All six finite-interval Gauss-Kronrod rule choices are also checked against e-1. The example uses module callbacks: an initial consumer with internal callbacks segfaulted in the sandbox. Other SciFortran modules, MPI, linear algebra, the SCIFOR umbrella module, multidimensional/vector quadrature and all integration options are outside this selected build and verification scope."
        }
      },
      "playground": {
        "package_id": "scifortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=scifortran",
        "package_revision": "ca4a55f49cfdf7a94e388bc3475a5db574d5de99",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/scifortran.f90",
          "sha256": "00c832772ffb10062656d96d492492c2dd68ccb0c9d7009743ea6e90535bfbb7"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "ca4a55f49cfdf7a94e388bc3475a5db574d5de99",
        "verified_at": "2026-10-29T20:53:30.579816+00:00",
        "packages": []
      }
    },
    {
      "id": "github:scipy/propack",
      "name": "propack",
      "repository": {
        "host": "github",
        "owner": "scipy",
        "name": "PROPACK",
        "url": "https://github.com/scipy/PROPACK"
      },
      "description": "Partial singular-value decompositions using the historical SciPy PROPACK sources (double precision).",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 21,
        "stars_updated_at": "2026-10-29T19:26:39.127603+00:00"
      },
      "curation": {
        "topics": [
          "lanczos",
          "linear-algebra",
          "singular-value-decomposition",
          "sparse-matrices"
        ],
        "gams_codes": [
          "D",
          "D6"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Historical SciPy PROPACK 2.1 sources, whose repository is archived and explicitly points to rmlarsen/propack for the maintained implementation. The current author archive and tags v2.2/v2.1 exceed the unchanged source download limit, largely due to saved example outputs. The menu explicitly identifies this historical source choice. Only the native double-precision serial routines are wrapped, using the portable RISC modified Gram-Schmidt implementation and compatible system LP64 BLAS/LAPACK. Numerical sources are unchanged. A callback supplies multiplication by a rectangular diagonal matrix with known singular values. The consumer passes a writable convergence-count argument, requests the leading three singular triplets, and checks 12, 11 and 10, both A*v-sigma*u and transpose(A)*u-sigma*v residuals, finite values and unit vector norms. The restarted algorithm, other precisions, arbitrary sparse matrices and parallel performance are not verified.",
        "reviewed_revision": "36f95269ecee6ae42af0c00707b3c3cf3f869a35",
        "procedures": [
          {
            "id": "propack-partial-svd",
            "package_id": "propack",
            "revision": "36f95269ecee6ae42af0c00707b3c3cf3f869a35",
            "module": "classic double-precision interface",
            "procedure": "dlansvd",
            "gams_codes": [
              "D6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Historical SciPy PROPACK 2.1 sources, whose repository is archived and explicitly points to rmlarsen/propack for the maintained implementation. The current author archive and tags v2.2/v2.1 exceed the unchanged source download limit, largely due to saved example outputs. The menu explicitly identifies this historical source choice. Only the native double-precision serial routines are wrapped, using the portable RISC modified Gram-Schmidt implementation and compatible system LP64 BLAS/LAPACK. Numerical sources are unchanged. A callback supplies multiplication by a rectangular diagonal matrix with known singular values. The consumer passes a writable convergence-count argument, requests the leading three singular triplets, and checks 12, 11 and 10, both A*v-sigma*u and transpose(A)*u-sigma*v residuals, finite values and unit vector norms. The restarted algorithm, other precisions, arbitrary sparse matrices and parallel performance are not verified.",
            "evidence": [
              {
                "path": "double/dlansvd.F",
                "sha256": "82ce6f20413580bd6def15c7db80e80a34a3c6f5a2e54ced5a6a9e448ae4fc1f",
                "line": 1
              },
              {
                "path": "double/dlanbpro.F",
                "sha256": "d018318cd3ff13a023c8d7ecc0c58ce1cca24f3bc5329b4ecbd53f427cecf27b",
                "line": 1
              }
            ],
            "author_examples": [],
            "driver_id": "propack-spectrum-reference"
          }
        ],
        "numerical_review": {
          "revision": "36f95269ecee6ae42af0c00707b3c3cf3f869a35",
          "archive_sha256": "bf950e4758192c196d6a4cdd74d9d6163536557b58ad24e7afa2cb4f5fef60ee",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "propack-partial-svd"
          ],
          "notes": "Historical SciPy PROPACK 2.1 sources, whose repository is archived and explicitly points to rmlarsen/propack for the maintained implementation. The current author archive and tags v2.2/v2.1 exceed the unchanged source download limit, largely due to saved example outputs. The menu explicitly identifies this historical source choice. Only the native double-precision serial routines are wrapped, using the portable RISC modified Gram-Schmidt implementation and compatible system LP64 BLAS/LAPACK. Numerical sources are unchanged. A callback supplies multiplication by a rectangular diagonal matrix with known singular values. The consumer passes a writable convergence-count argument, requests the leading three singular triplets, and checks 12, 11 and 10, both A*v-sigma*u and transpose(A)*u-sigma*v residuals, finite values and unit vector norms. The restarted algorithm, other precisions, arbitrary sparse matrices and parallel performance are not verified."
        }
      },
      "playground": {
        "package_id": "propack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=propack",
        "package_revision": "36f95269ecee6ae42af0c00707b3c3cf3f869a35",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/propack.f90",
          "sha256": "a01b67fdcdf1fe648c0c5eb7d9829db26d604ac205fa37df8b405d33fec0e71d"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "36f95269ecee6ae42af0c00707b3c3cf3f869a35",
        "verified_at": "2026-10-29T19:30:07.012330+00:00",
        "packages": []
      }
    },
    {
      "id": "github:scivision/ffilesystem",
      "name": "ffilesystem",
      "repository": {
        "host": "github",
        "owner": "scivision",
        "name": "ffilesystem",
        "url": "https://github.com/scivision/ffilesystem"
      },
      "description": "Portable filesystem and path operations through Fortran, C and C++ interfaces.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Files and processes"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "cpp17",
          "filesystem",
          "fortran",
          "libc",
          "path-manipulation"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 45,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "directories",
          "file-io",
          "filesystem",
          "paths",
          "portability"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "6387e623aa19325a1078f63fa882eb257518d038"
      },
      "playground": {
        "package_id": "ffilesystem",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ffilesystem",
        "package_revision": "6387e623aa19325a1078f63fa882eb257518d038",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ffilesystem.f90",
          "sha256": "a96d72ed52a4e512de22a04785b6c02ae96b64c18ef4225f5b2f6c703cbd14fc"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "6387e623aa19325a1078f63fa882eb257518d038",
        "verified_at": "2026-10-27T23:25:35.966397+00:00",
        "packages": []
      }
    },
    {
      "id": "github:scivision/rpn-calculator-fortran",
      "name": "rpn-calculator-fortran",
      "repository": {
        "host": "github",
        "owner": "scivision",
        "name": "rpn-calculator-fortran",
        "url": "https://github.com/scivision/rpn-calculator-fortran"
      },
      "description": "Numerical functions from an RPN calculator, including special functions, rational arithmetic and conversions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Special functions"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "modern-fortran",
          "reverse-polish-calculator"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 26,
        "stars_updated_at": "2026-10-29T00:50:30.284213+00:00"
      },
      "curation": {
        "topics": [
          "bessel-functions",
          "gamma-function",
          "rational-arithmetic",
          "rpn-calculator",
          "special-functions"
        ],
        "gams_codes": [
          "B",
          "C",
          "C2",
          "C4",
          "C7",
          "C10"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Numerical routines from the RPN calculator, called directly without its interactive interface. The checked main verifies a negative cube root, sinc and sech at zero, beta(2,3), modified Bessel I0 at zero, and integer gcd/lcm against known results. A checksum-guarded manifest correction sets source-form=default so .f and .f90 files use their respective forms. No numerical sources are changed. The tests do not establish accuracy over full argument ranges or validate the complete calculator.",
        "reviewed_revision": "7708e4949f17511d81f4e7dd0271a500f0bc3631",
        "procedures": [
          {
            "id": "rpn-elementary",
            "package_id": "rpn-calculator-fortran",
            "revision": "7708e4949f17511d81f4e7dd0271a500f0bc3631",
            "module": "funcs / hyper",
            "procedure": "cuberoot / sinc / sech",
            "gams_codes": [
              "C2",
              "C4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Numerical routines from the RPN calculator, called directly without its interactive interface. The checked main verifies a negative cube root, sinc and sech at zero, beta(2,3), modified Bessel I0 at zero, and integer gcd/lcm against known results. A checksum-guarded manifest correction sets source-form=default so .f and .f90 files use their respective forms. No numerical sources are changed. The tests do not establish accuracy over full argument ranges or validate the complete calculator. Dedicated C4 consumer verifies real sinc against a 64-term independent series and sech against a stable exponential formula for 133 real arguments, including zero and signed near-zero values. Finite values, symmetry, range and scalar/array agreement are checked. This driver does not verify the separate C2 cube-root mapping or complex overloads.",
            "evidence": [
              {
                "path": "src/funcs.f90",
                "sha256": "45efe8c3beb31e519578af744301ddf25d90a8942432fd4def62ba3cc08d7084",
                "line": 1
              },
              {
                "path": "src/hyper.f90",
                "sha256": "c6b8444228ccf8accf9d7cf842062d5cdbd6d4e9759c5c26f5c3cec65f2ea26c",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/test.f90",
                "sha256": "e9475b7ba78c098109893540c4e515d2261d972ecf291745563ee64d67b4f2bc"
              }
            ],
            "driver_id": "rpn-sinc-sech-reference"
          },
          {
            "id": "rpn-special",
            "package_id": "rpn-calculator-fortran",
            "revision": "7708e4949f17511d81f4e7dd0271a500f0bc3631",
            "module": "fgamma / i0",
            "procedure": "beta / besi0",
            "gams_codes": [
              "C7",
              "C10"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Numerical routines from the RPN calculator, called directly without its interactive interface. The checked main verifies a negative cube root, sinc and sech at zero, beta(2,3), modified Bessel I0 at zero, and integer gcd/lcm against known results. A checksum-guarded manifest correction sets source-form=default so .f and .f90 files use their respective forms. No numerical sources are changed. The tests do not establish accuracy over full argument ranges or validate the complete calculator. Dedicated C7 consumer verifies 128 positive integer/half-integer beta pairs with independent factorial identities, plus symmetry and both one-step recurrences (512 evaluations). Finite positive values and relative error within 2e-13 are required. C10 Bessel functions, complex beta, poles, large arguments and overflow handling are outside this driver.",
            "evidence": [
              {
                "path": "src/specfun/gamma.f90",
                "sha256": "c556924514869ff8cd007f48d1a4cf256681a9ec358c030f54b27a1a29ca7344",
                "line": 1
              },
              {
                "path": "src/specfun/i0.f",
                "sha256": "b051aff4b48973d3e189f43e567aa2cc0c0484c4693cbf4c3266d79aa1c03a88",
                "line": 1
              }
            ],
            "author_examples": [],
            "driver_id": "rpn-beta-reference"
          },
          {
            "id": "rpn-integer",
            "package_id": "rpn-calculator-fortran",
            "revision": "7708e4949f17511d81f4e7dd0271a500f0bc3631",
            "module": "rat",
            "procedure": "gcd / lcm",
            "gams_codes": [
              "B"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Numerical routines from the RPN calculator, called directly without its interactive interface. The checked main verifies a negative cube root, sinc and sech at zero, beta(2,3), modified Bessel I0 at zero, and integer gcd/lcm against known results. A checksum-guarded manifest correction sets source-form=default so .f and .f90 files use their respective forms. No numerical sources are changed. The tests do not establish accuracy over full argument ranges or validate the complete calculator. Dedicated GAMS B driver: GCD and LCM checked over nonnegative operands 0..64 against independent divisor/multiple searches. LCM(0,0) divides by zero at this pin and is excluded; signed conventions and overflow are not verified.",
            "evidence": [
              {
                "path": "src/rat.f90",
                "sha256": "2add4bee4850778b2bb39432749f19cae1f6649d6896bd0b8d003c619485f729",
                "line": 1
              }
            ],
            "author_examples": [],
            "driver_id": "rpn-gcd-lcm-reference"
          }
        ],
        "numerical_review": {
          "revision": "7708e4949f17511d81f4e7dd0271a500f0bc3631",
          "archive_sha256": "7c34218defbc2d92ef87a9be222acbc9085737121b4894c1235b723cd5644d9c",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "rpn-elementary",
            "rpn-special",
            "rpn-integer"
          ],
          "notes": "Numerical routines from the RPN calculator, called directly without its interactive interface. The checked main verifies a negative cube root, sinc and sech at zero, beta(2,3), modified Bessel I0 at zero, and integer gcd/lcm against known results. A checksum-guarded manifest correction sets source-form=default so .f and .f90 files use their respective forms. No numerical sources are changed. The tests do not establish accuracy over full argument ranges or validate the complete calculator."
        }
      },
      "playground": {
        "package_id": "rpn-calculator-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rpn-calculator-fortran",
        "package_revision": "7708e4949f17511d81f4e7dd0271a500f0bc3631",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/rpn-calculator-fortran.f90",
          "sha256": "af4f82c0bea3a05b9032fbfbd1d5c5cb051add7b2d5ca4be9fb39e742ce3cce5"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "7708e4949f17511d81f4e7dd0271a500f0bc3631",
        "verified_at": "2026-10-29T00:57:33.593173+00:00",
        "packages": []
      }
    },
    {
      "id": "github:scm-nv/ftl",
      "name": "ftl",
      "repository": {
        "host": "github",
        "owner": "SCM-NV",
        "name": "ftl",
        "url": "https://github.com/SCM-NV/ftl"
      },
      "description": "Template-based containers and strings with selected precompiled instantiations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data structures"
      ],
      "license": {
        "label": "LGPL-3.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "containers",
          "fortran",
          "templates"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 118,
        "stars_updated_at": "2026-10-29T12:53:38.105617+00:00"
      },
      "curation": {
        "topics": [
          "dynamic-arrays",
          "generic-containers",
          "hash-maps",
          "strings",
          "templates"
        ],
        "gams_codes": [
          "N",
          "N4",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Selected Fortran Template Library instantiations: integer dynamic arrays and ftlString-to-integer hash maps, plus their unmodified support modules. A checksum-guarded adapter adds CPP-disabled module/dependency declarations so FPM 0.12 can discover modules emitted by templates. Original and adapted compiler-preprocessed output match apart from blank lines. Implicit-external checking is left at the upstream convention to avoid a GNU diagnostic in a character-length specification expression. The checked main verifies array growth, contents and pop, map insertion/replacement, presence, lookup and erase, then explicitly deletes both containers. Sources otherwise remain unchanged, and template headers remain in the source archive. Other instantiations, general algorithms, regex and every ownership/finalization case are not offered or validated.",
        "reviewed_revision": "e6598dae7db68f68544dc1ca0e64f5bce3744c42",
        "procedures": [
          {
            "id": "ftl-containers",
            "package_id": "ftl",
            "revision": "e6598dae7db68f68544dc1ca0e64f5bce3744c42",
            "module": "ftlDynArrayIntModule / ftlHashMapStringIntModule",
            "procedure": "New / PushBack / PopBack / Set / Get / Erase",
            "gams_codes": [
              "N4",
              "N5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Selected Fortran Template Library instantiations: integer dynamic arrays and ftlString-to-integer hash maps, plus their unmodified support modules. A checksum-guarded adapter adds CPP-disabled module/dependency declarations so FPM 0.12 can discover modules emitted by templates. Original and adapted compiler-preprocessed output match apart from blank lines. Implicit-external checking is left at the upstream convention to avoid a GNU diagnostic in a character-length specification expression. The checked main verifies array growth, contents and pop, map insertion/replacement, presence, lookup and erase, then explicitly deletes both containers. Sources otherwise remain unchanged, and template headers remain in the source archive. Other instantiations, general algorithms, regex and every ownership/finalization case are not offered or validated.",
            "evidence": [
              {
                "path": "src/ftlDynArray.F90_template",
                "sha256": "b475cfab7238d2807333604b7c67c96ba435e36e9761f6a29367c1136accd105",
                "line": 1
              },
              {
                "path": "src/ftlHashMap.F90_template",
                "sha256": "1027ca703e870885410c7b7ae6809cc178d196a72170913a470cffeb6f2ef2ab",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "tests/ftlDynArrayTests.F90",
                "sha256": "add3978b2f47be7d7da7b775506527cf39321d204e11593a8787760132eae67b"
              },
              {
                "path": "tests/ftlHashMapTests.F90",
                "sha256": "5df81a943d5d0fa611a32cfc34b48a7c5e0fc3124fa00785720e5c32b650a327"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "ftl",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ftl",
        "package_revision": "e6598dae7db68f68544dc1ca0e64f5bce3744c42",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ftl.f90",
          "sha256": "718f527c8ba8a7d5d56063f493b03af3c5e74ced04d50c1f9f9b86c1ff81243d"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e6598dae7db68f68544dc1ca0e64f5bce3744c42",
        "verified_at": "2026-10-29T12:54:09.059921+00:00",
        "packages": []
      }
    },
    {
      "id": "github:sebastiandyrda/lib_statistics",
      "name": "lib_statistics",
      "repository": {
        "host": "github",
        "owner": "sebastiandyrda",
        "name": "lib_statistics",
        "url": "https://github.com/sebastiandyrda/lib_statistics"
      },
      "description": "Logistic regression using iteratively reweighted least squares.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Statistics"
      ],
      "license": {
        "label": "Not specified upstream",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "least-squares",
          "logistic-regression",
          "regression",
          "statistics"
        ],
        "gams_codes": [
          "L",
          "L8",
          "L9"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "056740db259fc3599dca0d8858f04e94845a6769",
        "procedures": [
          {
            "id": "lib-statistics-logistic",
            "package_id": "lib_statistics",
            "revision": "056740db259fc3599dca0d8858f04e94845a6769",
            "module": "Logistic_Regression",
            "procedure": "logistic",
            "gams_codes": [
              "L8"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Logistic regression of binomial data, not ordinary linear least squares. The dedicated L8 driver checks selected fits against independent closed-form references. See docs/gams-regression.md for the error model, covariance convention and limitations.",
            "evidence": [
              {
                "path": "src/mod_logistic.f90",
                "sha256": "40e89b78f4a1296b8f976b8968d4d1112c87a82871ccc5970decd0a4b3181da5",
                "line": 36
              }
            ],
            "author_examples": [
              {
                "path": "tests/t_lgmc.f90",
                "sha256": "4b4e4f6e3354149f8aaa2dc791b4c8cb1fcfa5e9accf7a96bdcc3e779f4023d4"
              }
            ],
            "driver_id": "logistic-grouped-binomial-reference"
          }
        ],
        "numerical_review": {
          "revision": "056740db259fc3599dca0d8858f04e94845a6769",
          "archive_sha256": "94479fc46f071c05c1cc2940d23a3e6ef2491ae3e3db0f780ed6079adc58e579",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "lib-statistics-logistic"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "lib_statistics",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=lib_statistics",
        "package_revision": "056740db259fc3599dca0d8858f04e94845a6769",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/lib_statistics.f90",
          "sha256": "bbdb2e776946afde6ac6f51b271b0865ce62124c1600367cebd3cafb7594c673"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "056740db259fc3599dca0d8858f04e94845a6769",
        "verified_at": "2026-10-27T22:36:01.378932+00:00",
        "packages": []
      }
    },
    {
      "id": "github:shatrovoa/dtfft",
      "name": "dtfft",
      "repository": {
        "host": "github",
        "owner": "ShatrovOA",
        "name": "dtFFT",
        "url": "https://github.com/ShatrovOA/dtFFT"
      },
      "description": "CPU multidimensional FFTs with MPICH and FFTW; checked single-process round trip.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Fourier transforms"
      ],
      "license": {
        "label": "GPL-3.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "cuda",
          "fft",
          "high-performance-computing",
          "hpc",
          "mpi",
          "multiprocessing"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 11,
        "stars_updated_at": "2026-10-30T00:25:47.873438+00:00"
      },
      "curation": {
        "topics": [
          "fft",
          "fftw",
          "mpi",
          "multidimensional-fft",
          "parallel-computing"
        ],
        "gams_codes": [
          "J",
          "J1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The CPU-only Fortran target is configured upstream with FFTW enabled, MPICH, input checks, and no C/C++/Python API, GPU, compression or OpenMP support. Its complete generated configuration header and source selection are checksum-locked. The checked main initializes exactly one MPI process with self/shared-memory UCX transports, transforms an 8-by-8 complex impulse, independently checks that every forward coefficient equals one, then verifies inverse reconstruction after normalization. J1 covers the multidimensional Fourier transform. Multiple processes, distributed performance and other FFT executors are not verified by this example. Local exports require compatible MPICH and FFTW development libraries and locally appropriate include/link flags. GPL-3.0-or-later notices are retained.",
        "reviewed_revision": "bbfd6746be7482bd8366ccb09a73b72882573984",
        "procedures": [
          {
            "id": "dtfft-cpu-c2c",
            "package_id": "dtfft",
            "revision": "bbfd6746be7482bd8366ccb09a73b72882573984",
            "module": "dtfft / dtfft_plan_c2c_t",
            "procedure": "create / execute / destroy",
            "gams_codes": [
              "J1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The CPU-only Fortran target is configured upstream with FFTW enabled, MPICH, input checks, and no C/C++/Python API, GPU, compression or OpenMP support. Its complete generated configuration header and source selection are checksum-locked. The checked main initializes exactly one MPI process with self/shared-memory UCX transports, transforms an 8-by-8 complex impulse, independently checks that every forward coefficient equals one, then verifies inverse reconstruction after normalization. J1 covers the multidimensional Fourier transform. Multiple processes, distributed performance and other FFT executors are not verified by this example. Local exports require compatible MPICH and FFTW development libraries and locally appropriate include/link flags. GPL-3.0-or-later notices are retained.",
            "evidence": [
              {
                "path": "src/dtfft_plan.F90",
                "sha256": "06ddc7b3ac9bd0e362541ea351d0f78dc804bf8897c419e7a41093f10984f57e",
                "line": 1
              },
              {
                "path": "src/interfaces/fft/fftw/dtfft_executor_fftw_m.F90",
                "sha256": "e30fba2febfec7104d4cfce5567d961bbdcc4cdfc146d1f8f797a6220b81b82a",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "tests/fortran/test_c2c_2d_f.F90",
                "sha256": "4269311c14a3ccb335b45e65637d4f67e27e9ea1a43a659102bc8e807c3df6ef"
              }
            ],
            "driver_id": "dtfft-2d-reference"
          }
        ],
        "numerical_review": {
          "revision": "bbfd6746be7482bd8366ccb09a73b72882573984",
          "archive_sha256": "9ca97e043f23997f490f73eeba01abe0e3a787005d1a7a37d25b4d196810de48",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "dtfft-cpu-c2c"
          ],
          "notes": "The CPU-only Fortran target is configured upstream with FFTW enabled, MPICH, input checks, and no C/C++/Python API, GPU, compression or OpenMP support. Its complete generated configuration header and source selection are checksum-locked. The checked main initializes exactly one MPI process with self/shared-memory UCX transports, transforms an 8-by-8 complex impulse, independently checks that every forward coefficient equals one, then verifies inverse reconstruction after normalization. J1 covers the multidimensional Fourier transform. Multiple processes, distributed performance and other FFT executors are not verified by this example. Local exports require compatible MPICH and FFTW development libraries and locally appropriate include/link flags. GPL-3.0-or-later notices are retained."
        }
      },
      "playground": {
        "package_id": "dtfft",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dtfft",
        "package_revision": "bbfd6746be7482bd8366ccb09a73b72882573984",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/dtfft.f90",
          "sha256": "f51037db5a92c6cc10076759ad32474d544c75effc497180914135c4d629a68b"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "bbfd6746be7482bd8366ccb09a73b72882573984",
        "verified_at": "2026-10-30T00:29:48.037366+00:00",
        "packages": []
      }
    },
    {
      "id": "github:shinobuamasaki/forgex",
      "name": "forgex",
      "repository": {
        "host": "github",
        "owner": "ShinobuAmasaki",
        "name": "forgex",
        "url": "https://github.com/ShinobuAmasaki/forgex"
      },
      "description": "Regular expressions with Unicode support and full or substring matching.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Text parsing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "regex",
          "regular-expression"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 30,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "pattern-matching",
          "regular-expressions",
          "text-processing",
          "unicode"
        ],
        "gams_codes": [
          "N",
          "N3",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "e79f4792a1ac776fb0b1612de560f7791795ea8e"
      },
      "playground": {
        "package_id": "forgex",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forgex",
        "package_revision": "e79f4792a1ac776fb0b1612de560f7791795ea8e",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/forgex.f90",
          "sha256": "0b0604d446957d70b5484fd1185141c92eb9fbc95a369dced5b1944e47b112a7"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e79f4792a1ac776fb0b1612de560f7791795ea8e",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:shinobuamasaki/uint-fortran",
      "name": "uint-fortran",
      "repository": {
        "host": "github",
        "owner": "ShinobuAmasaki",
        "name": "uint-fortran",
        "url": "https://github.com/ShinobuAmasaki/uint-fortran"
      },
      "description": "Unsigned integer derived types with arithmetic, comparisons and conversions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "General utilities"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "unsigned-integers"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 9,
        "stars_updated_at": "2026-10-28T23:25:51.211120+00:00"
      },
      "curation": {
        "topics": [
          "c-interoperability",
          "integer-arithmetic",
          "modular-arithmetic",
          "unsigned-integers"
        ],
        "gams_codes": [
          "A",
          "A1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Fixed-width unsigned integer derived types. The main checks 16/32-bit upper boundaries, 32-bit arithmetic above the signed boundary, comparisons, modular addition/subtraction and conversion of a negative assignment. It imports the current int_m conversion API explicitly. This is not arbitrary-precision arithmetic or validation of every kind, operation or C interoperability path.",
        "reviewed_revision": "487f806c76a5d107c5a8982198bafb295065eba7",
        "procedures": [
          {
            "id": "uint-fortran-arithmetic",
            "package_id": "uint-fortran",
            "revision": "487f806c76a5d107c5a8982198bafb295065eba7",
            "module": "unsigned_m / addition_m / int_m",
            "procedure": "uint16 / uint32 / arithmetic operators / int",
            "gams_codes": [
              "A1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Fixed-width unsigned integer derived types. The main checks 16/32-bit upper boundaries, 32-bit arithmetic above the signed boundary, comparisons, modular addition/subtraction and conversion of a negative assignment. It imports the current int_m conversion API explicitly. This is not arbitrary-precision arithmetic or validation of every kind, operation or C interoperability path.",
            "evidence": [
              {
                "path": "src/types/uint32_t.f90",
                "sha256": "2762ad640ff97116e6c97cfe3f1c082b35644d0c8ae346dce4f1471f1a3cf4f9",
                "line": 10
              },
              {
                "path": "src/intrinsic_operators_overload/the_four_arithmetic_operations/addition_m.f90",
                "sha256": "98c8be1a1a7620ad34ba3d5dea778c6d83724c24ff1752882bb493f778e79864",
                "line": 1
              },
              {
                "path": "src/intrinsic_functions_overload/int_m.f90",
                "sha256": "8bbfcd149ac96e31657f0d5ba7c2ef4763f12fa14a550770ac415600c0a750b5",
                "line": 25
              }
            ],
            "author_examples": [
              {
                "path": "test/check-assign-negative_uint32.f90",
                "sha256": "5835847506ba4a190bb452d61d72efd7ea441a2282181bb2b63ceff00e359d5b"
              }
            ],
            "driver_id": "uint-arithmetic-reference"
          }
        ],
        "numerical_review": {
          "revision": "487f806c76a5d107c5a8982198bafb295065eba7",
          "archive_sha256": "7f36d0391da9e6877965053a4de3404281c71a82a9aa2ea8a6ae253b40e8ab4d",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "uint-fortran-arithmetic"
          ],
          "notes": "Fixed-width unsigned integer derived types. The main checks 16/32-bit upper boundaries, 32-bit arithmetic above the signed boundary, comparisons, modular addition/subtraction and conversion of a negative assignment. It imports the current int_m conversion API explicitly. This is not arbitrary-precision arithmetic or validation of every kind, operation or C interoperability path."
        }
      },
      "playground": {
        "package_id": "uint-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=uint-fortran",
        "package_revision": "487f806c76a5d107c5a8982198bafb295065eba7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/uint-fortran.f90",
          "sha256": "5e1eaa1f34cc871f60c32fa95db5efe870004ece24769c368ca48b491f2f577d"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "487f806c76a5d107c5a8982198bafb295065eba7",
        "verified_at": "2026-10-28T23:33:50.254249+00:00",
        "packages": []
      }
    },
    {
      "id": "github:slicot/slicot-reference",
      "name": "slicot",
      "repository": {
        "host": "github",
        "owner": "SLICOT",
        "name": "SLICOT-Reference",
        "url": "https://github.com/SLICOT/SLICOT-Reference"
      },
      "description": "Numerical methods for systems and control, including matrix equations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Dynamics and control"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "control-systems",
          "control-systems-design",
          "descriptor-systems",
          "eigenvalues",
          "filtering",
          "fortran",
          "lapack",
          "linear-algebra",
          "periodic-systems",
          "slicot",
          "system-identification"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 76,
        "stars_updated_at": "2026-10-29T13:59:01.916745+00:00"
      },
      "curation": {
        "topics": [
          "control-systems",
          "linear-algebra",
          "lyapunov-equation",
          "matrix-equations"
        ],
        "gams_codes": [
          "D",
          "D8"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Full upstream SLICOT FPM source library, linked to compatible LP64 BLAS/LAPACK with the manifest BLAS metapackage resolved explicitly. Sources are unchanged; legacy compiler compatibility flags retain upstream conventions. The main uses the author slicot module interface for SB03MD, constructs a stable nondiagonal 2-by-2 continuous Lyapunov problem from a known symmetric solution and checks both the independently computed matrix residual and the recovered solution including the solver scale factor. It requests the condition/error estimates but does not validate those estimates independently. Other matrix equations, model reduction, identification, robust control and every library routine are not validated.",
        "reviewed_revision": "5eeb845d84f5a60f6069754b7819dad468951933",
        "procedures": [
          {
            "id": "slicot-lyapunov",
            "package_id": "slicot",
            "revision": "5eeb845d84f5a60f6069754b7819dad468951933",
            "module": "slicot",
            "procedure": "SB03MD",
            "gams_codes": [
              "D8"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Dedicated D8 driver checks continuous/discrete Lyapunov with transpose options and Schur reuse using constructed known solutions, finite outputs, explicit success status and independently recomputed residuals. See docs/gams-matrix-equations.md for equations, storage, scaling and limitations.",
            "evidence": [
              {
                "path": "src/SB03MD.f",
                "sha256": "ec56d7ab0490594d9b24953112fa0bae05f9bd9d6714300e7ae7c4f289b4de7d",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/TSB03MD.f",
                "sha256": "1af2213d711f4abf976d2cab23493524d26d29677e695dc8fa05ad78bf285adb"
              }
            ],
            "driver_id": "slicot-lyapunov-known-matrix"
          },
          {
            "id": "slicot-sb04md",
            "package_id": "slicot",
            "revision": "5eeb845d84f5a60f6069754b7819dad468951933",
            "module": "slicot",
            "procedure": "SB04MD",
            "gams_codes": [
              "D8"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Dedicated D8 driver checks continuous rectangular Sylvester AX+XB=C using constructed known solutions, finite outputs, explicit success status and independently recomputed residuals. See docs/gams-matrix-equations.md for equations, storage, scaling and limitations.",
            "evidence": [
              {
                "path": "src/SB04MD.f",
                "sha256": "c0de18733b8b0953fd8eab41d11efdde9fcbf3078362ff47481050e26af51179",
                "line": 4
              }
            ],
            "author_examples": [
              {
                "path": "examples/TSB04MD.f",
                "sha256": "ec8d827aa98382e27a2b019ff7033acc96a795b26ecdd6f85da687600353770f"
              }
            ],
            "driver_id": "slicot-continuous-sylvester"
          },
          {
            "id": "slicot-sb04qd",
            "package_id": "slicot",
            "revision": "5eeb845d84f5a60f6069754b7819dad468951933",
            "module": "slicot",
            "procedure": "SB04QD",
            "gams_codes": [
              "D8"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Dedicated D8 driver checks discrete rectangular Sylvester X+AXB=C using constructed known solutions, finite outputs, explicit success status and independently recomputed residuals. See docs/gams-matrix-equations.md for equations, storage, scaling and limitations.",
            "evidence": [
              {
                "path": "src/SB04QD.f",
                "sha256": "a3835483ab8b168b3b80edb03ebb36f4e72a00ac73f85e158797520e1c66d5b6",
                "line": 4
              }
            ],
            "author_examples": [
              {
                "path": "examples/TSB04QD.f",
                "sha256": "f601fad0903033dab9c5f79b35cc5dae95254becbbf4e273f7db8e468b0325c6"
              }
            ],
            "driver_id": "slicot-discrete-sylvester"
          }
        ],
        "numerical_review": {
          "revision": "5eeb845d84f5a60f6069754b7819dad468951933",
          "archive_sha256": "22bf29340f5d3019d9adcfc862968c9eb10ccc0afdc821dd5b71cb4661884350",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "slicot-lyapunov",
            "slicot-sb04md",
            "slicot-sb04qd"
          ],
          "notes": "The full upstream SLICOT library is precompiled with compatible LP64 BLAS/LAPACK. Dedicated D8 drivers now verify selected continuous/discrete Lyapunov and rectangular Sylvester equations using known solutions and independent residuals. Scaling, transpose modes and Schur-factor reuse are checked for SB03MD. Condition/error estimates, model reduction, identification, robust control and other routines are not validated."
        }
      },
      "playground": {
        "package_id": "slicot",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=slicot",
        "package_revision": "5eeb845d84f5a60f6069754b7819dad468951933",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/slicot.f90",
          "sha256": "aa5b7af78cadc67c08b78e00f10d95d82c06d4c8b758f8667078f2f7320d6bf9"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5eeb845d84f5a60f6069754b7819dad468951933",
        "verified_at": "2026-10-29T14:04:20.544152+00:00",
        "packages": []
      }
    },
    {
      "id": "github:sourceryinstitute/smart-pointers",
      "name": "smart-pointers",
      "repository": {
        "host": "github",
        "owner": "sourceryinstitute",
        "name": "smart-pointers",
        "url": "https://github.com/sourceryinstitute/smart-pointers"
      },
      "description": "Reference-counted smart pointers with automatic resource cleanup.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Memory management"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "garbage-collection",
          "reference-counting",
          "smart-pointers"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 34,
        "stars_updated_at": "2026-10-29T00:20:04.805639+00:00"
      },
      "curation": {
        "topics": [
          "memory-management",
          "reference-counting",
          "resource-management"
        ],
        "gams_codes": [
          "R"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Reference-counted resource management. Adapted from the author example: a user type extends sp_smart_pointer_t and implements free. The checked main shares one integer resource, verifies reference counts and shared target, checks no premature cleanup and confirms exactly one cleanup after subroutine return. No source edits. This is not exhaustive compiler finalization conformance testing.",
        "reviewed_revision": "35130adc4be4384a14b2369e5edd36d4665cd994",
        "procedures": [
          {
            "id": "smart-pointer-lifetime",
            "package_id": "smart-pointers",
            "revision": "35130adc4be4384a14b2369e5edd36d4665cd994",
            "module": "sp_smart_pointer_m",
            "procedure": "sp_smart_pointer_t%start_counter / reference_count",
            "gams_codes": [
              "R"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Reference-counted resource management. Adapted from the author example: a user type extends sp_smart_pointer_t and implements free. The checked main shares one integer resource, verifies reference counts and shared target, checks no premature cleanup and confirms exactly one cleanup after subroutine return. No source edits. This is not exhaustive compiler finalization conformance testing.",
            "evidence": [
              {
                "path": "src/smart_pointer/sp_smart_pointer_m.f90",
                "sha256": "4ba59dde067669f5bab6a37c8f2f4402ebdc10e50ce5b4fc765ca25eeae7d257",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/user_object_smart_pointer.f90",
                "sha256": "9aae793e04b1e65fd2eee344c063a1a0e15903c62c03da93fcffa57722fe663e"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "smart-pointers",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=smart-pointers",
        "package_revision": "35130adc4be4384a14b2369e5edd36d4665cd994",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/smart-pointers.f90",
          "sha256": "b47909cd67469bbe4c0e212b838aae77f8526191b9da038d842cfb37259b849a"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "35130adc4be4384a14b2369e5edd36d4665cd994",
        "verified_at": "2026-10-29T00:34:23.456367+00:00",
        "packages": []
      }
    },
    {
      "id": "github:st-maxwell/ryu_fortran",
      "name": "ryu_fortran",
      "repository": {
        "host": "github",
        "owner": "St-Maxwell",
        "name": "ryu_fortran",
        "url": "https://github.com/St-Maxwell/ryu_fortran"
      },
      "description": "Ryu conversion of floating-point numbers to short decimal representations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Strings"
      ],
      "license": {
        "label": "Not specified upstream (manifest placeholder)",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "floating-point",
          "string"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 16,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "floating-point",
          "number-formatting",
          "strings",
          "type-conversion"
        ],
        "gams_codes": [
          "A",
          "A6",
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "6c508144398d58143618c5598d816f20c40ac053",
        "procedures": [
          {
            "id": "ryu-fortran-d2shortest",
            "package_id": "ryu_fortran",
            "revision": "6c508144398d58143618c5598d816f20c40ac053",
            "module": "ryu",
            "procedure": "d2shortest",
            "gams_codes": [
              "A6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Shortest round-tripping decimal representation of binary floating-point data. Dedicated A6 driver checks 132 finite IEEE binary64 bit patterns spanning signed zeros, subnormals, exponent boundaries and maximum finite values, using intrinsic decimal reads and bitwise equality. This does not prove shortest-length optimality, all-input correctness or special-value spelling.",
            "evidence": [
              {
                "path": "src/real64_to_shortest.f90",
                "sha256": "984a49e1782e02c2786e40b6e1516956744c71303e881c0c7e3a367fb2dc6e9e",
                "line": 640
              }
            ],
            "author_examples": [
              {
                "path": "test/test_d2shortest/test_d2shortest.f90",
                "sha256": "1b0748c34b29fa18deffe925ee73b410d8af2a2f8eadfa2676479ddbce9333c1"
              }
            ],
            "driver_id": "ryu-binary64-roundtrip"
          }
        ],
        "numerical_review": {
          "revision": "6c508144398d58143618c5598d816f20c40ac053",
          "archive_sha256": "67b79bc6e4d41941ddc6d8f72241e1da959d77942c7058298b5096ea18d50994",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "ryu-fortran-d2shortest"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "ryu_fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ryu_fortran",
        "package_revision": "6c508144398d58143618c5598d816f20c40ac053",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ryu_fortran.f90",
          "sha256": "c49d0d9b2991d5900fca4e1692e4b3ea099b6e3d6216d33c219b7e21ea8769f6"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "6c508144398d58143618c5598d816f20c40ac053",
        "verified_at": "2026-10-27T23:25:35.966397+00:00",
        "packages": []
      }
    },
    {
      "id": "github:st-maxwell/utf8-f",
      "name": "utf8-f",
      "repository": {
        "host": "github",
        "owner": "St-Maxwell",
        "name": "utf8-f",
        "url": "https://github.com/St-Maxwell/utf8-f"
      },
      "description": "UTF-8 character counting, indexing, slicing and text manipulation.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Strings"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "utf-8"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "strings",
          "text-processing",
          "unicode",
          "utf-8"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "9e89210ba66191295f6565bee277de6e4f9f84de"
      },
      "playground": {
        "package_id": "utf8-f",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=utf8-f",
        "package_revision": "9e89210ba66191295f6565bee277de6e4f9f84de",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/utf8-f.f90",
          "sha256": "4606c09a0fae42ad204140f425c8bb20c6336807a4bfac52c64bce9b64729b56"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "9e89210ba66191295f6565bee277de6e4f9f84de",
        "verified_at": "2026-10-27T23:25:35.966397+00:00",
        "packages": []
      }
    },
    {
      "id": "github:swig-fortran/flibcpp",
      "name": "flibcpp",
      "repository": {
        "host": "github",
        "owner": "swig-fortran",
        "name": "flibcpp",
        "url": "https://github.com/swig-fortran/flibcpp"
      },
      "description": "C++ standard-library wrappers with checked sorting and binary-search examples.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interoperability"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 35,
        "stars_updated_at": "2026-10-30T00:25:47.768458+00:00"
      },
      "curation": {
        "topics": [
          "binary-search",
          "containers",
          "cpp",
          "interoperability",
          "random-numbers",
          "sorting"
        ],
        "gams_codes": [
          "N",
          "N5",
          "N6",
          "S"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The upstream SWIG-generated Fortran modules and C++ wrappers are built together; SWIG is not run. The upstream CMake configuration supplies only a small version-definition source. FPM 0.12 ignores .cxx, so the catalog stages unchanged wrapper contents as .cpp and preserves all original source files. The checked consumer verifies a sorted seven-element array, an existing-key position and a missing-key result. N5 and N6 classify searching and sorting, while S identifies the interoperability utility. Upstream vector, map, set, string and random facilities are included but not exercised by this consumer. MIT notices and the Apache-2.0 CMake helper notice remain intact. Local exports need compatible C++ and Fortran compilers.",
        "reviewed_revision": "334b2250230afbb419402ca2f1c0649c3b12a693",
        "procedures": [
          {
            "id": "flibcpp-sort-search",
            "package_id": "flibcpp",
            "revision": "334b2250230afbb419402ca2f1c0649c3b12a693",
            "module": "flc_algorithm",
            "procedure": "sort / binary_search",
            "gams_codes": [
              "N5",
              "N6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The upstream SWIG-generated Fortran modules and C++ wrappers are built together; SWIG is not run. The upstream CMake configuration supplies only a small version-definition source. FPM 0.12 ignores .cxx, so the catalog stages unchanged wrapper contents as .cpp and preserves all original source files. The checked consumer verifies a sorted seven-element array, an existing-key position and a missing-key result. N5 and N6 classify searching and sorting, while S identifies the interoperability utility. Upstream vector, map, set, string and random facilities are included but not exercised by this consumer. MIT notices and the Apache-2.0 CMake helper notice remain intact. Local exports need compatible C++ and Fortran compilers.",
            "evidence": [
              {
                "path": "src/flc_algorithm.f90",
                "sha256": "60fa72366cca9f6d1e3a4610ff7e7973d7badcfacb4782108b84908ea5e461fb",
                "line": 1
              },
              {
                "path": "src/flc_algorithmFORTRAN_wrap.cxx",
                "sha256": "a98d6c82b6d3bc985e3e484f8701ef292ab63802568cca37fbad3416e62d04f8",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/sort.f90",
                "sha256": "5d435568ad2a129e23bf71deb2ed76723e8b303222a9856d2ff23536d2bddc7b"
              },
              {
                "path": "test/test_algorithm.F90",
                "sha256": "47b1c910ebe10e315c21cac1b1f44f855be48653f6f9f3b5808b6ad26d47f9e7"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "flibcpp",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=flibcpp",
        "package_revision": "334b2250230afbb419402ca2f1c0649c3b12a693",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/flibcpp.f90",
          "sha256": "00b121584e0a4b8cc56e2bb02b0dcdedd6afe298107f682514ae98a0df14e282"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "334b2250230afbb419402ca2f1c0649c3b12a693",
        "verified_at": "2026-10-30T00:29:48.037366+00:00",
        "packages": []
      }
    },
    {
      "id": "github:synthfi/fortran-messagepack",
      "name": "fortran-messagepack",
      "repository": {
        "host": "github",
        "owner": "synthfi",
        "name": "fortran-messagepack",
        "url": "https://github.com/synthfi/fortran-messagepack"
      },
      "description": "Serialize and deserialize structured values in the compact MessagePack binary format.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "messagepack"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 6,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "binary-data",
          "messagepack",
          "serialization"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "2b2c9fc78bf3f7212ec9e35c675febdd508b7830"
      },
      "playground": {
        "package_id": "fortran-messagepack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran-messagepack",
        "package_revision": "2b2c9fc78bf3f7212ec9e35c675febdd508b7830",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran-messagepack.f90",
          "sha256": "329da28498c7f5d33b6ffc03f23bd964b22941e4a4560438f8d7775fa23228d9"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2b2c9fc78bf3f7212ec9e35c675febdd508b7830",
        "verified_at": "2026-10-28T01:33:45.255776+00:00",
        "packages": []
      }
    },
    {
      "id": "github:szaghi/befor64",
      "name": "befor64",
      "repository": {
        "host": "github",
        "owner": "szaghi",
        "name": "BeFoR64",
        "url": "https://github.com/szaghi/BeFoR64"
      },
      "description": "Base64 encoding and decoding of text and numerical data.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Encoding and compression"
      ],
      "license": {
        "label": "Multiple licenses",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "base64",
          "decoding",
          "encoding",
          "fortran",
          "oop"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 22,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "base64",
          "encoding",
          "serialization"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "1dd004ea296b7e5aca60a9704bab81c610f87cff"
      },
      "playground": {
        "package_id": "befor64",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=befor64",
        "package_revision": "1dd004ea296b7e5aca60a9704bab81c610f87cff",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/befor64.f90",
          "sha256": "5b3968e0d0cd11b2eb02fefeccbcd0b526d44bc1ae31c6d0a43ffc1d712b1840"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "1dd004ea296b7e5aca60a9704bab81c610f87cff",
        "verified_at": "2026-10-27T23:52:44.682584+00:00",
        "packages": [
          {
            "id": "github:szaghi/penf",
            "repository": "szaghi/PENF",
            "revision": "65061235982495b158412b70c05b228af4320d94"
          }
        ]
      }
    },
    {
      "id": "github:szaghi/penf",
      "name": "penf",
      "repository": {
        "host": "github",
        "owner": "szaghi",
        "name": "PENF",
        "url": "https://github.com/szaghi/PENF"
      },
      "description": "Numerical kind parameters, format strings and number-to-string conversions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Numerical utilities"
      ],
      "license": {
        "label": "MIT OR BSD-2-Clause OR BSD-3-Clause OR GPL-3.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "codes-portability",
          "fortran",
          "precision"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 43,
        "stars_updated_at": "2026-10-29T12:15:32.322175+00:00"
      },
      "curation": {
        "topics": [
          "number-formatting",
          "numerical-kinds",
          "portability",
          "type-conversion"
        ],
        "gams_codes": [
          "N",
          "N3",
          "R",
          "R1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Portable numerical kinds, formats and number/string conversions. The latest archive is blocked by a symlink, so this entry uses exactly the older revision already verified as a BeFoR64 dependency. The checked main calls penf_init, verifies integer and real conversion round trips with status checks, zero-padded integer output, real byte size and formatted real output. Sources are unchanged; this adds an independent editable main for the pinned library. Every kind, character encoding, endian platform and invalid conversion is not validated.",
        "reviewed_revision": "65061235982495b158412b70c05b228af4320d94",
        "procedures": [
          {
            "id": "numerical-portability",
            "package_id": "penf",
            "revision": "65061235982495b158412b70c05b228af4320d94",
            "module": "penf",
            "procedure": "penf_init / str / strz / cton / byte_size / numerical kind and size constants",
            "gams_codes": [
              "R1",
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Portable numerical kinds, formats and number/string conversions. The latest archive is blocked by a symlink, so this entry uses exactly the older revision already verified as a BeFoR64 dependency. The checked main calls penf_init, verifies integer and real conversion round trips with status checks, zero-padded integer output, real byte size and formatted real output. Sources are unchanged; this adds an independent editable main for the pinned library. Every kind, character encoding, endian platform and invalid conversion is not validated. The R1 driver verifies ISO kind correspondence, six type widths, public size/max/normal-minimum constants, byte inquiries, byte order, repeated initialization and measured real32/real64 roundoff. It does not verify the separate N3 conversion mapping, quadruple precision or arbitrary platforms.",
            "evidence": [
              {
                "path": "src/lib/penf.F90",
                "sha256": "13e0e3c92bd79d03fbaa775307405f31bf8143c468874373bbe5b936e7cca209",
                "line": 1
              },
              {
                "path": "src/lib/penf_stringify.F90",
                "sha256": "c45429dcaf7e434c739a812f2425c0a15582680219d1ca25fb8211050f87e52b",
                "line": 1
              },
              {
                "path": "src/lib/penf_global_parameters_variables.F90",
                "sha256": "7c2f4c7117beeabb8ca088b1fb87870589410c06faede466f8e0d8a9a2bc7fc3",
                "line": 39
              }
            ],
            "author_examples": [
              {
                "path": "src/tests/penf/penf-doctest-3.f90",
                "sha256": "266bf91126ea85f9fa2660b1ddeb2657b0dd915a4191cae4cf5caa9fe4c75d70"
              }
            ],
            "driver_id": "penf-machine-reference"
          }
        ]
      },
      "playground": {
        "package_id": "penf",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=penf",
        "package_revision": "65061235982495b158412b70c05b228af4320d94",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/penf.f90",
          "sha256": "23fc78b22918aeda32e5738dc68100b13b7813cc46f9135ac19514aa57f1b216"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "65061235982495b158412b70c05b228af4320d94",
        "verified_at": "2026-10-29T12:13:59.407766+00:00",
        "packages": []
      }
    },
    {
      "id": "github:toml-f/jonquil",
      "name": "jonquil",
      "repository": {
        "host": "github",
        "owner": "toml-f",
        "name": "jonquil",
        "url": "https://github.com/toml-f/jonquil"
      },
      "description": "JSON parsing and serialization compatible with TOML Fortran types.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "Apache-2.0 OR MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran-library",
          "fortran-package-manager",
          "json",
          "json-parser",
          "serde"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 10,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "json",
          "parsing",
          "serialization",
          "toml"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "191b6d8e4007b2d15f428aed26fe9d9a32aca3ca"
      },
      "playground": {
        "package_id": "jonquil",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=jonquil",
        "package_revision": "191b6d8e4007b2d15f428aed26fe9d9a32aca3ca",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/jonquil.f90",
          "sha256": "7c5ae8e23c1bcd20c8bde9c608f99cfcc22abd8b3fe3e42fd7d5bff3d1b36eef"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "191b6d8e4007b2d15f428aed26fe9d9a32aca3ca",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": [
          {
            "id": "github:toml-f/toml-f",
            "repository": "toml-f/toml-f",
            "revision": "51a26158c6d52bbc59cb482bdd13f00d7fd032a3"
          }
        ]
      }
    },
    {
      "id": "github:toml-f/toml-f",
      "name": "toml-f",
      "repository": {
        "host": "github",
        "owner": "toml-f",
        "name": "toml-f",
        "url": "https://github.com/toml-f/toml-f"
      },
      "description": "Parse and write TOML configuration files.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "Apache-2.0 OR MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran-library",
          "fortran-package-manager",
          "serde",
          "toml",
          "toml-parser"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 127,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "configuration",
          "file-io",
          "parsing",
          "toml"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "f9ff54793b2d1a3edca7d6890548d18d48c98e36"
      },
      "playground": {
        "package_id": "toml-f",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=toml-f",
        "package_revision": "f9ff54793b2d1a3edca7d6890548d18d48c98e36",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/toml-f.f90",
          "sha256": "e83d6c5167577c76eeb027e879ce88e38a7838a2c8680ec0b5f5d4c5da0e44f9"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f9ff54793b2d1a3edca7d6890548d18d48c98e36",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:tueda/paramcard",
      "name": "paramcard",
      "repository": {
        "host": "github",
        "owner": "tueda",
        "name": "paramcard",
        "url": "https://github.com/tueda/paramcard"
      },
      "description": "Named input parameters, defaults, string parsing and configuration summaries.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Command-line tools"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "command-line",
          "fortran",
          "fortran-library",
          "fortran2008"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 8,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "configuration",
          "defaults",
          "input-parameters",
          "parsing"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "ffd6bfc0066f3aaa493333179a01257011b77f78"
      },
      "playground": {
        "package_id": "paramcard",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=paramcard",
        "package_revision": "ffd6bfc0066f3aaa493333179a01257011b77f78",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/paramcard.f90",
          "sha256": "70b2485d4de08d92c6ea25726ca81d0b4d0baea1dddd93234ded50954c9716f0"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "ffd6bfc0066f3aaa493333179a01257011b77f78",
        "verified_at": "2026-10-28T00:11:51.121365+00:00",
        "packages": []
      }
    },
    {
      "id": "github:unidata/netcdf-fortran",
      "name": "netcdf-fortran",
      "repository": {
        "host": "github",
        "owner": "Unidata",
        "name": "netcdf-fortran",
        "url": "https://github.com/Unidata/netcdf-fortran"
      },
      "description": "Read and write NetCDF classic scientific datasets using the Fortran API.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data formats"
      ],
      "license": {
        "label": "NetCDF AND Apache-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "dataset",
          "hacktoberfest",
          "netcdf-fortran",
          "netcdf-library",
          "unidata"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 271,
        "stars_updated_at": "2026-10-29T20:10:45.271323+00:00"
      },
      "curation": {
        "topics": [
          "array-io",
          "c-interoperability",
          "file-formats",
          "netcdf",
          "scientific-data"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Selected serial classic-format Fortran sources follow the upstream CMake classic-library source set and use the unchanged public netCDF-C API. The operator-owned FPM wrapper retains original include files and sets HAVE_F2008, HAVE_TS29113_SUPPORT and NO_NETCDF_2 for the GNU 16 Linux environment; no library sources are edited. The native libnetcdf-dev package is locked to 1:4.9.3-1. The consumer writes a 3-by-2 real array and units attribute to a classic dataset, reopens it, checks dimension lengths, attribute and every value, then removes the file. NetCDF-4-specific Fortran interfaces, the old V2 API, parallel I/O and all data types are outside this selected build and verification scope. Source exports require the native netCDF C development library.",
        "reviewed_revision": "48d67b73cb2a671d6d27075eb7e53085d5f9538a",
        "procedures": [
          {
            "id": "netcdf-classic-io",
            "package_id": "netcdf-fortran",
            "revision": "48d67b73cb2a671d6d27075eb7e53085d5f9538a",
            "module": "netcdf",
            "procedure": "nf90_create / nf90_def_dim / nf90_def_var / nf90_put_var / nf90_get_var / nf90_close",
            "gams_codes": [
              "N1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Selected serial classic-format Fortran sources follow the upstream CMake classic-library source set and use the unchanged public netCDF-C API. The operator-owned FPM wrapper retains original include files and sets HAVE_F2008, HAVE_TS29113_SUPPORT and NO_NETCDF_2 for the GNU 16 Linux environment; no library sources are edited. The native libnetcdf-dev package is locked to 1:4.9.3-1. The consumer writes a 3-by-2 real array and units attribute to a classic dataset, reopens it, checks dimension lengths, attribute and every value, then removes the file. NetCDF-4-specific Fortran interfaces, the old V2 API, parallel I/O and all data types are outside this selected build and verification scope. Source exports require the native netCDF C development library.",
            "evidence": [
              {
                "path": "fortran/netcdf.F90",
                "sha256": "4514a999bb49a74e8d93da6a313b52ca1fe93b33c913e94ed2f891229c032f3f",
                "line": 1
              },
              {
                "path": "fortran/netcdf_file.F90",
                "sha256": "eb2f6eec6966a50d0db30287aea437ac3f0afed4cc786f8e6ccbb3f19bf0de66",
                "line": 1
              },
              {
                "path": "fortran/nf_control.F90",
                "sha256": "0e01e31155a5fc5bb7513ee0232f84e5417dbda359cea11940e07c08fb1d2ead",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/F90/simple_xy_wr.F90",
                "sha256": "e64d5c7475c1433e79bcc8fe1aa50a0eb478fbd23568d391f1d372a703de7bf5"
              },
              {
                "path": "examples/F90/simple_xy_rd.F90",
                "sha256": "1212c63bb5db42052a2385d16ae18a02114d67b48fc56f0b193f17b838fb3bbf"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "netcdf-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=netcdf-fortran",
        "package_revision": "48d67b73cb2a671d6d27075eb7e53085d5f9538a",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/netcdf-fortran.f90",
          "sha256": "8ddeb807c1756ebadc44ef51f5c33e0da181b503855c08817ae9ff545da87946"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "48d67b73cb2a671d6d27075eb7e53085d5f9538a",
        "verified_at": "2026-10-29T20:13:47.719614+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_attr",
      "name": "m_attr",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_attr",
        "url": "https://github.com/urbanjost/M_attr"
      },
      "description": "Terminal styling markup with a plain-text output mode.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Command-line tools"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "ansi-escape-sequences",
          "fortran",
          "fortran-package-manager",
          "terminal"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 6,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "command-line",
          "terminal-styling",
          "text-processing"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "5a2b6332332530fe371481314a5013b070ebb798"
      },
      "playground": {
        "package_id": "m_attr",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_attr",
        "package_revision": "5a2b6332332530fe371481314a5013b070ebb798",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_attr.f90",
          "sha256": "5af6ab0ffcdcab0047650b74e1fcf18d24f15645946e95d8f4a53d5a7ff687ea"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "5a2b6332332530fe371481314a5013b070ebb798",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_calculator",
      "name": "m_calculator",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_calculator",
        "url": "https://github.com/urbanjost/M_calculator"
      },
      "description": "Evaluate mathematical expressions and named variables supplied as text.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Expression parsing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "expression",
          "expression-evaluator",
          "fortran",
          "fortran-package-manager",
          "parse"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "expression-parsing",
          "mathematical-expressions",
          "parsing"
        ],
        "gams_codes": [
          "C",
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "N3 covers expression text processing. C remains broad pending an inventory of built-in functions; numeric evaluation is not symbolic algebra.",
        "reviewed_revision": "b6bbc08f81eb158a6908a42016059815fe72217d",
        "procedures": [
          {
            "id": "m-calculator-dnum0",
            "package_id": "m_calculator",
            "revision": "b6bbc08f81eb158a6908a42016059815fe72217d",
            "module": "M_calculator",
            "procedure": "dnum0",
            "gams_codes": [
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Evaluates numeric expressions in strings; not symbolic computation.",
            "evidence": [
              {
                "path": "src/M_calculator.f90",
                "sha256": "82b9e626ce3de502daba907258f0cb0b0dda33afc65323df145aec718c375fe9",
                "line": 3021
              }
            ],
            "author_examples": [
              {
                "path": "example/demo_dnum0.f90",
                "sha256": "9d9022a7e745e248f0ed7700f679bf87a2e8ac7e0547c0f56bfa4a9ceae65d61"
              }
            ],
            "driver_id": "m-calculator-identities"
          }
        ],
        "numerical_review": {
          "revision": "b6bbc08f81eb158a6908a42016059815fe72217d",
          "archive_sha256": "50081a2e5022fbd40bbb8d9b70759481f9bd7a0c811132b48931a3538e355441",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "m-calculator-dnum0"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "m_calculator",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_calculator",
        "package_revision": "b6bbc08f81eb158a6908a42016059815fe72217d",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_calculator.f90",
          "sha256": "b0a2e2aaf2a00ffd4c58329cfe673ee23f94c0f3b6d6a2320b53952b29d3296f"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b6bbc08f81eb158a6908a42016059815fe72217d",
        "verified_at": "2026-10-27T23:52:44.682584+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_cli",
      "name": "m_cli",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_CLI",
        "url": "https://github.com/urbanjost/M_CLI"
      },
      "description": "Command-line parsing through a prototype command and NAMELIST, including typed scalar and array options.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Command-line interfaces"
      ],
      "license": {
        "label": "Unlicense",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "argument",
          "command",
          "command-line",
          "commandline-interface",
          "fortran",
          "fortran-package-manager",
          "fpm",
          "namelist",
          "parsing"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 13,
        "stars_updated_at": "2026-10-30T18:11:46.121287+00:00"
      },
      "curation": {
        "topics": [
          "argument-parsing",
          "command-line",
          "namelist",
          "text-processing"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The original M_CLI FPM library is unchanged. The checked consumer adapts the author example/demo3.f90, translating a prototype command into NAMELIST text and checking integer, real, logical, character and three-element real array defaults before using the scaled sum. No stdin or program arguments are required; the editable prototype supplies the defaults. Actual command-line overrides, help/error paths and interactive examples are not runtime-verified here. N1/N3 cover command input and character parsing; no numerical-method classification is inferred. Public-domain/Unlicense notices are retained.",
        "reviewed_revision": "45a7cbcdc12b71b828c482fb4c33498db7fb5618",
        "procedures": [
          {
            "id": "m-cli-demo-api",
            "package_id": "m_cli",
            "revision": "45a7cbcdc12b71b828c482fb4c33498db7fb5618",
            "module": "M_CLI",
            "procedure": "commandline / check_commandline",
            "gams_codes": [
              "N1",
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The original M_CLI FPM library is unchanged. The checked consumer adapts the author example/demo3.f90, translating a prototype command into NAMELIST text and checking integer, real, logical, character and three-element real array defaults before using the scaled sum. No stdin or program arguments are required; the editable prototype supplies the defaults. Actual command-line overrides, help/error paths and interactive examples are not runtime-verified here. N1/N3 cover command input and character parsing; no numerical-method classification is inferred. Public-domain/Unlicense notices are retained.",
            "evidence": [
              {
                "path": "src/M_CLI.f90",
                "sha256": "33469b27731b15117ffe050d478ce00e4c05417cbb292ee11a6534c187c4e7a8",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/demo3.f90",
                "sha256": "03954d1c75dc0fa49cb89cfc83ef36b12371e6320df03f5a95b3a51c783c62c8",
                "line": 1
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "m_cli",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_cli",
        "package_revision": "45a7cbcdc12b71b828c482fb4c33498db7fb5618",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_cli.f90",
          "sha256": "ed92f727647b8441916944a369f30d8bc983b2ac5ab94ac0bf9c24ac78bac3c7"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "45a7cbcdc12b71b828c482fb4c33498db7fb5618",
        "verified_at": "2026-10-30T18:16:48.566372+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_cli2",
      "name": "m_cli2",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_CLI2",
        "url": "https://github.com/urbanjost/M_CLI2"
      },
      "description": "Typed command-line parsing with defaults and help text.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Command-line tools"
      ],
      "license": {
        "label": "CC0-1.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "argument",
          "command-line",
          "fortran",
          "fortran-package-manager",
          "parsing"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 26,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "argument-parsing",
          "command-line",
          "configuration",
          "help-text"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "a6934890178377cd92444d290aa3d3198ba9954d"
      },
      "playground": {
        "package_id": "m_cli2",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_cli2",
        "package_revision": "a6934890178377cd92444d290aa3d3198ba9954d",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_cli2.f90",
          "sha256": "441887cf9fabc705700021c82b6bd83a9886f2e1cd58c43ec85edc476c25b329"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "a6934890178377cd92444d290aa3d3198ba9954d",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_color",
      "name": "m_color",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_color",
        "url": "https://github.com/urbanjost/M_color"
      },
      "description": "Convert color names and RGB, HLS, HSV, and other color models.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Colors"
      ],
      "license": {
        "label": "Public Domain",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "color-conversion",
          "color-models",
          "fortran",
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 2,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "color-conversion",
          "colors",
          "hls",
          "hsv",
          "rgb"
        ],
        "gams_codes": [
          "Q"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "2e52d6ee6fde8e94ac17ab2cc54cbc497c15962c"
      },
      "playground": {
        "package_id": "m_color",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_color",
        "package_revision": "2e52d6ee6fde8e94ac17ab2cc54cbc497c15962c",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_color.f90",
          "sha256": "049b4f836d885f3fab9ccbca8739728069f637f2918083d25d3d7c9d2e5aa6c0"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2e52d6ee6fde8e94ac17ab2cc54cbc497c15962c",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_draw",
      "name": "m_draw",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_draw",
        "url": "https://github.com/urbanjost/M_draw"
      },
      "description": "Portable vector drawing with file-output drivers and a Fortran interface.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Graphics"
      ],
      "license": {
        "label": "Unlicense",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "graphics",
          "vector"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-29T20:10:45.271323+00:00"
      },
      "curation": {
        "topics": [
          "c-interoperability",
          "drawing",
          "ppm",
          "raster-images",
          "vector-graphics"
        ],
        "gams_codes": [
          "Q"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Upstream mixed C/Fortran FPM library, with a checksum-guarded manifest edit adding its src/inc header directory. The X11 link dependency is retained but the checked main uses the PPM file driver, requiring no display server or Hershey font files. A 20-segment blue parabola is rendered with the PPM driver; the consumer checks P3 magic, image dimensions, color range, every pixel range and the presence of blue curve pixels. The ordinary image collector converts the generated PPM to a bounded PNG browser preview. The SVG driver aborted during font initialization when no Hershey fonts were supplied; no upstream driver code is patched, and the example uses PPM. Interactive drivers, all drawing primitives, software text/font setup and SVG output are not validated.",
        "reviewed_revision": "a70c305f607cdc1b3e95d5c2ed3b723dcc803204",
        "procedures": [
          {
            "id": "m-draw-raster",
            "package_id": "m_draw",
            "revision": "a70c305f607cdc1b3e95d5c2ed3b723dcc803204",
            "module": "M_draw",
            "procedure": "voutput / vinit / ortho2 / move2 / draw2 / vexit",
            "gams_codes": [
              "Q"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Upstream mixed C/Fortran FPM library, with a checksum-guarded manifest edit adding its src/inc header directory. The X11 link dependency is retained but the checked main uses the PPM file driver, requiring no display server or Hershey font files. A 20-segment blue parabola is rendered with the PPM driver; the consumer checks P3 magic, image dimensions, color range, every pixel range and the presence of blue curve pixels. The ordinary image collector converts the generated PPM to a bounded PNG browser preview. The SVG driver aborted during font initialization when no Hershey fonts were supplied; no upstream driver code is patched, and the example uses PPM. Interactive drivers, all drawing primitives, software text/font setup and SVG output are not validated.",
            "evidence": [
              {
                "path": "src/M_draw.F90",
                "sha256": "3586514c7b68daef344244927c7bee30aa6e1cb7374aa112ac452984a9e057b7",
                "line": 1
              },
              {
                "path": "src/drivers/C-ppm.c",
                "sha256": "718e5ddbee0a0adb4706d2eb1919a6c501b2c1d8fb720b30e3a86f90e377ceed",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/demo_arc.f90",
                "sha256": "fe797b5c0f872f704029aa31d59ea364390132b58e626077828cf96ebb7ce7ef"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "m_draw",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_draw",
        "package_revision": "a70c305f607cdc1b3e95d5c2ed3b723dcc803204",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_draw.f90",
          "sha256": "7dfd427c9916881a5336dff723348d77dd14f8d9905ea6d17aa29c13321394f9"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "a70c305f607cdc1b3e95d5c2ed3b723dcc803204",
        "verified_at": "2026-10-29T20:13:47.719614+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_framework",
      "name": "m_framework",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_framework",
        "url": "https://github.com/urbanjost/M_framework"
      },
      "description": "Unit testing, floating-point comparisons, and diagnostic formatting.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Testing"
      ],
      "license": {
        "label": "CC0-1.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "fpm",
          "unit-testing"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 6,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "assertions",
          "diagnostics",
          "floating-point",
          "numerical-testing",
          "unit-testing"
        ],
        "gams_codes": [
          "S",
          "S3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "05134b388078ce5e2e8391ceba5e04a6dce7a640"
      },
      "playground": {
        "package_id": "m_framework",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_framework",
        "package_revision": "05134b388078ce5e2e8391ceba5e04a6dce7a640",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_framework.f90",
          "sha256": "ad7bbad2a2569a58aa995e1cfe9b65f1f7814656726ecbeb7dcbe1447f862537"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "05134b388078ce5e2e8391ceba5e04a6dce7a640",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_history",
      "name": "m_history",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_history",
        "url": "https://github.com/urbanjost/M_history"
      },
      "description": "Command-line history, recall and text editing; the example scripts edits through a scratch input unit.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Command-line interfaces"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "editor",
          "fortran",
          "fortran-package-manager",
          "history",
          "input"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-30T17:10:55.680552+00:00"
      },
      "curation": {
        "topics": [
          "command-history",
          "interactive-input",
          "line-editing",
          "text-processing"
        ],
        "gams_codes": [
          "N",
          "N1",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The unmodified M_history redo editor records two commands in its scratch history file. The self-contained main supplies editing directives through the optional lun argument, recalls line 1, changes 290 to 300 and checks the result, then recalls line 2 and verifies that its original text remains unchanged. No shell command is executed and no interactive terminal is required. The main follows the author application in using a 1024-character buffer. An initial 120-character buffer triggered an upstream bounds error at cin(1:255); that diagnostic is retained separately, and shorter buffers are not verified/supported by this catalog example. N1/N3 cover command input and character editing; no numerical-method classification is inferred. MIT library notices and the public-domain author application notice are retained.",
        "reviewed_revision": "fe7dd940a5d15792653233962d8df9cb3b5443f6",
        "procedures": [
          {
            "id": "m-history-demo-api",
            "package_id": "m_history",
            "revision": "fe7dd940a5d15792653233962d8df9cb3b5443f6",
            "module": "M_history",
            "procedure": "redo",
            "gams_codes": [
              "N1",
              "N3"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The unmodified M_history redo editor records two commands in its scratch history file. The self-contained main supplies editing directives through the optional lun argument, recalls line 1, changes 290 to 300 and checks the result, then recalls line 2 and verifies that its original text remains unchanged. No shell command is executed and no interactive terminal is required. The main follows the author application in using a 1024-character buffer. An initial 120-character buffer triggered an upstream bounds error at cin(1:255); that diagnostic is retained separately, and shorter buffers are not verified/supported by this catalog example. N1/N3 cover command input and character editing; no numerical-method classification is inferred. MIT library notices and the public-domain author application notice are retained.",
            "evidence": [
              {
                "path": "src/M_history.f90",
                "sha256": "59dcb8f8c0ffea5641d8890fb5909dab2c4d1cb8da94dc6b15091d52c4c70f8e",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "app/redo.f90",
                "sha256": "b12efc0e63635c4af61a0b4d4a494e63d7a5b3817dee3cedd10941065aa062b3",
                "line": 1
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "m_history",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_history",
        "package_revision": "fe7dd940a5d15792653233962d8df9cb3b5443f6",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_history.f90",
          "sha256": "7e822e70809767485bb4375dba7606103c0290659ea9ff8076c3d35a266718ac"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "fe7dd940a5d15792653233962d8df9cb3b5443f6",
        "verified_at": "2026-10-30T17:14:08.367055+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_io",
      "name": "m_io",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_io",
        "url": "https://github.com/urbanjost/M_io"
      },
      "description": "Convenience routines for reading text files, tables, and paths.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Files and processes"
      ],
      "license": {
        "label": "CC0-1.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "io"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 10,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "file-io",
          "filesystem",
          "paths",
          "tabular-data",
          "text-files"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "f7b53819ade14f3e53470929dac3e55bc695cf0e"
      },
      "playground": {
        "package_id": "m_io",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_io",
        "package_revision": "f7b53819ade14f3e53470929dac3e55bc695cf0e",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_io.f90",
          "sha256": "85e04b68f945638605b22ff738e316386345f971d531fc7dddcce6ea0fa0090a"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f7b53819ade14f3e53470929dac3e55bc695cf0e",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_la",
      "name": "m_la",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_LA",
        "url": "https://github.com/urbanjost/M_LA"
      },
      "description": "Magic squares, reduced row-echelon forms and other small matrix utilities.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "Unlicense",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "determinant",
          "fortran-package-manager",
          "linear-algebra",
          "magic-square",
          "matrix-inverse"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-28T21:31:23.622331+00:00"
      },
      "curation": {
        "topics": [
          "linear-algebra",
          "magic-squares",
          "matrices",
          "row-reduction"
        ],
        "gams_codes": [
          "D",
          "D1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Matrix construction, illustrated by magic squares of orders three through six with independent row, column, diagonal and permutation checks. This mapping does not classify every other M_LA procedure.",
        "reviewed_revision": "db59eeab0deab7e84eadf2542ad49c1c719dfb94",
        "procedures": [
          {
            "id": "m-la-api",
            "package_id": "m_la",
            "revision": "db59eeab0deab7e84eadf2542ad49c1c719dfb94",
            "module": "M_LA",
            "procedure": "mat_magic",
            "gams_codes": [
              "D1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Matrix construction, illustrated by magic squares of orders three through six with independent row, column, diagonal and permutation checks. This mapping does not classify every other M_LA procedure.",
            "evidence": [
              {
                "path": "src/M_LA.f90",
                "line": 1561,
                "sha256": "5c15fc609dd2c8222df65e6a005f0704b379f51fa44d73d476be299432c7555a"
              }
            ],
            "author_examples": [],
            "driver_id": "m-la-magic-reference"
          }
        ],
        "numerical_review": {
          "revision": "db59eeab0deab7e84eadf2542ad49c1c719dfb94",
          "archive_sha256": "6c9d8e1e456852e076e14207f31751ecdd4a60cb0b80bb975f7818b15802932c",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "m-la-api"
          ],
          "notes": "Matrix construction, illustrated by magic squares of orders three through six with independent row, column, diagonal and permutation checks. This mapping does not classify every other M_LA procedure."
        }
      },
      "playground": {
        "package_id": "m_la",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_la",
        "package_revision": "db59eeab0deab7e84eadf2542ad49c1c719dfb94",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_la.f90",
          "sha256": "3c89dd90d25d689aeca1509f2914fe94e2243be10dfc5e1ca156ed79a223f4de"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "db59eeab0deab7e84eadf2542ad49c1c719dfb94",
        "verified_at": "2026-10-28T21:40:06.974444+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_list",
      "name": "m_list",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_list",
        "url": "https://github.com/urbanjost/M_list"
      },
      "description": "Maintain sorted arrays and small dictionaries through insertion and lookup.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "Public Domain",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "dictionaries",
          "searching",
          "sorted-arrays"
        ],
        "gams_codes": [
          "N",
          "N4",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "c7836531355f0aa95296bd668f0a3d60969ea5fc"
      },
      "playground": {
        "package_id": "m_list",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_list",
        "package_revision": "c7836531355f0aa95296bd668f0a3d60969ea5fc",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_list.f90",
          "sha256": "12f0b5c7628f7d9bb316f72b4a47bb29e7c94f4ccae1b08c216dec12e6f7d730"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "c7836531355f0aa95296bd668f0a3d60969ea5fc",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_match",
      "name": "m_match",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_match",
        "url": "https://github.com/urbanjost/M_match"
      },
      "description": "Pattern matching with a compact grep-style regular expression syntax.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Text parsing"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "bre",
          "fortran",
          "fortran-package-manager",
          "regex",
          "regular-expressions"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 10,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "pattern-matching",
          "regular-expressions",
          "text-processing"
        ],
        "gams_codes": [
          "N",
          "N3",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "8bfa9eb4b45a32e6e32234ce4dd6d883a032bb6b"
      },
      "playground": {
        "package_id": "m_match",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_match",
        "package_revision": "8bfa9eb4b45a32e6e32234ce4dd6d883a032bb6b",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_match.f90",
          "sha256": "b58d08d9a70fb18f84583ac49dbe9e43e0efda1b17e8e1fa7312ec5288f7f835"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "8bfa9eb4b45a32e6e32234ce4dd6d883a032bb6b",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_process",
      "name": "m-process",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_process",
        "url": "https://github.com/urbanjost/M_process"
      },
      "description": "POSIX pipes for reading and writing subprocess streams.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interoperability"
      ],
      "license": {
        "label": "Unlicense",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "popen",
          "process",
          "reading",
          "writing"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 13,
        "stars_updated_at": "2026-10-29T19:03:06.361094+00:00"
      },
      "curation": {
        "topics": [
          "interoperability",
          "pipes",
          "posix",
          "subprocess"
        ],
        "gams_codes": [
          "S"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Unmodified Fortran/C POSIX pipe interfaces in the restricted Linux sandbox. Following the upstream process_open_read example, the consumer opens a local printf command, reads and checks the integers 7 and 11, verifies end of output and requires a successful process_close status. Commands run under the ordinary sandbox restrictions; this does not add network or host-system access. Interactive terminals, graphical subprocesses, arbitrary process behavior, write pipes and Windows portability are not verified.",
        "reviewed_revision": "a38afc744f991a602eded0f7782beb2eff87c8cd",
        "procedures": [
          {
            "id": "m-process-pipe",
            "package_id": "m-process",
            "revision": "a38afc744f991a602eded0f7782beb2eff87c8cd",
            "module": "M_process",
            "procedure": "process_open_read / process_readline / process_close",
            "gams_codes": [
              "S"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Unmodified Fortran/C POSIX pipe interfaces in the restricted Linux sandbox. Following the upstream process_open_read example, the consumer opens a local printf command, reads and checks the integers 7 and 11, verifies end of output and requires a successful process_close status. Commands run under the ordinary sandbox restrictions; this does not add network or host-system access. Interactive terminals, graphical subprocesses, arbitrary process behavior, write pipes and Windows portability are not verified.",
            "evidence": [
              {
                "path": "src/M_process.f90",
                "sha256": "7e7bb3db4cedb1ca4f0c443c1af6f3424f14db48d8efb1f66daf619516f26618",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/demo_process_open_read.f90",
                "sha256": "8942bfbad8b2f77d370b89e428421f8ff6c404e5d9b1ede7f739994ebd61be4d"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "m-process",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m-process",
        "package_revision": "a38afc744f991a602eded0f7782beb2eff87c8cd",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m-process.f90",
          "sha256": "f3674d182a3bf395dff8b07eefd55321368436ba85bb1f7550d061cf81688090"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "a38afc744f991a602eded0f7782beb2eff87c8cd",
        "verified_at": "2026-10-29T19:04:24.801783+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_sets",
      "name": "m_sets",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_sets",
        "url": "https://github.com/urbanjost/M_sets"
      },
      "description": "Union, intersection, membership, and unique values for arrays.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "CC0-1.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "matlab",
          "sets"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 9,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "searching",
          "sets",
          "unique-values"
        ],
        "gams_codes": [
          "N",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "0c00adef65781ba0cd979236ed25eedab8fb48c4"
      },
      "playground": {
        "package_id": "m_sets",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_sets",
        "package_revision": "0c00adef65781ba0cd979236ed25eedab8fb48c4",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_sets.f90",
          "sha256": "b75c6c035576c4144133ea87d63652d04a3a370987c8672fac88fcf7f5e3ce89"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "0c00adef65781ba0cd979236ed25eedab8fb48c4",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": [
          {
            "id": "github:urbanjost/m_orderpack",
            "repository": "urbanjost/M_orderpack",
            "revision": "9696eee2670beae1601ae59e125ff9f10e6c88a7"
          }
        ]
      }
    },
    {
      "id": "github:urbanjost/m_sort",
      "name": "m_sort",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_sort",
        "url": "https://github.com/urbanjost/M_sort"
      },
      "description": "Shell sort, heapsort, quicksort, and related sorting utilities.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Strings and sorting"
      ],
      "license": {
        "label": "Public Domain",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "fpm",
          "sort",
          "sorting",
          "sorting-algorithms"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 7,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "heapsort",
          "quicksort",
          "sorting"
        ],
        "gams_codes": [
          "N",
          "N6"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "0a1dfd05a642590d4b02af9242fe0b03dfe9b3a5"
      },
      "playground": {
        "package_id": "m_sort",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_sort",
        "package_revision": "0a1dfd05a642590d4b02af9242fe0b03dfe9b3a5",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_sort.f90",
          "sha256": "060eae02913a585a01593d76ea1a4e53b2b8d3e6742c1cc78ed1051ce35289be"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "0a1dfd05a642590d4b02af9242fe0b03dfe9b3a5",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_strings",
      "name": "m_strings",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_strings",
        "url": "https://github.com/urbanjost/M_strings"
      },
      "description": "String manipulation, case conversion, tokenization, and formatting.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Strings and sorting"
      ],
      "license": {
        "label": "CC0-1.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "fpm",
          "string-manipulation",
          "strings"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 32,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "formatting",
          "strings",
          "text-processing",
          "tokenization"
        ],
        "gams_codes": [
          "N",
          "N3"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "928e1576d4b3e7cd41ef4117227a8a4d2d88871a"
      },
      "playground": {
        "package_id": "m_strings",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_strings",
        "package_revision": "928e1576d4b3e7cd41ef4117227a8a4d2d88871a",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_strings.f90",
          "sha256": "4523737fbe04fb871a900181ebb3bb6300cfdab0a7c78f39c569841f239a2a65"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "928e1576d4b3e7cd41ef4117227a8a4d2d88871a",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_system",
      "name": "m-system",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_system",
        "url": "https://github.com/urbanjost/M_system"
      },
      "description": "POSIX system interfaces for files, directories, permissions and process information.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "File system"
      ],
      "license": {
        "label": "Unlicense",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "fpm",
          "posix",
          "system"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 19,
        "stars_updated_at": "2026-10-29T18:43:21.308518+00:00"
      },
      "curation": {
        "topics": [
          "directories",
          "filesystem",
          "posix",
          "system-interface"
        ],
        "gams_codes": [
          "N",
          "N1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Unmodified mixed C/Fortran POSIX system library in the Linux/glibc sandbox. The checked example creates a local directory with owner-only permissions, writes and reads back the integer 42, checks directory and regular-file types, removes both and confirms cleanup. Other system calls, processes, networking, permissions changes and Windows portability are not validated or promised. Upstream development dependencies and applications are not part of the consumer demonstration.",
        "reviewed_revision": "cb558fe8be200783e603e33a66aaba0289b6d3d1",
        "procedures": [
          {
            "id": "m-system-files",
            "package_id": "m-system",
            "revision": "cb558fe8be200783e603e33a66aaba0289b6d3d1",
            "module": "M_system",
            "procedure": "system_mkdir / system_isdir / system_isreg / system_remove / system_rmdir",
            "gams_codes": [
              "N1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Unmodified mixed C/Fortran POSIX system library in the Linux/glibc sandbox. The checked example creates a local directory with owner-only permissions, writes and reads back the integer 42, checks directory and regular-file types, removes both and confirms cleanup. Other system calls, processes, networking, permissions changes and Windows portability are not validated or promised. Upstream development dependencies and applications are not part of the consumer demonstration.",
            "evidence": [
              {
                "path": "src/M_system.F90",
                "sha256": "878c50af04e6fa0077f543625b65959b3f24ff5c74f773b3ac9046a6a2440e0e",
                "line": 1
              },
              {
                "path": "src/C-M_system.c",
                "sha256": "60524d848b54f607341af5291d86069b5f40fdfc17c85af1a0cb75c4e28a4927",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/demo_system_mkdir.f90",
                "sha256": "8648e512659961f31ef973e8edd9a94beb35341be8056f386831a97aa5b9a782"
              },
              {
                "path": "example/demo_system_remove.f90",
                "sha256": "83099379d359fac75ac25dbad65ba70496273f39ae5ae28341947046581c5254"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "m-system",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m-system",
        "package_revision": "cb558fe8be200783e603e33a66aaba0289b6d3d1",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m-system.f90",
          "sha256": "90bf33650f228e6e7459b32bf77852d18e1e6d8cd961a1354653fc3e923b69cd"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "cb558fe8be200783e603e33a66aaba0289b6d3d1",
        "verified_at": "2026-10-29T18:44:12.105846+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/m_time",
      "name": "m_time",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "M_time",
        "url": "https://github.com/urbanjost/M_time"
      },
      "description": "Calendar arithmetic, Julian dates, and date/time formatting.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Dates and times"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "calendar",
          "date",
          "date-formatting",
          "datetime",
          "fortran",
          "fortran-package-manager",
          "fpm",
          "time"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 6,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "calendar-arithmetic",
          "date-time",
          "formatting",
          "julian-dates"
        ],
        "gams_codes": [
          "R"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "R has no immediate date/time subclass. Calendar services retain the parent assignment.",
        "reviewed_revision": "e3e5dde125388c30dd54e225cbc14816984ab776"
      },
      "playground": {
        "package_id": "m_time",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=m_time",
        "package_revision": "e3e5dde125388c30dd54e225cbc14816984ab776",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/m_time.f90",
          "sha256": "28c73e93ad55bf79b211f2e616df6a8f385a70d2090d5a1618d0e6196946a965"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e3e5dde125388c30dd54e225cbc14816984ab776",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:urbanjost/orderpack",
      "name": "orderpack",
      "repository": {
        "host": "github",
        "owner": "urbanjost",
        "name": "orderpack",
        "url": "https://github.com/urbanjost/orderpack"
      },
      "description": "Sorting, ranking, medians, and partial ordering of arrays.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Strings and sorting"
      ],
      "license": {
        "label": "license",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "fpm",
          "sort"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 9,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "medians",
          "order-statistics",
          "ranking",
          "sorting"
        ],
        "gams_codes": [
          "L",
          "L1",
          "N",
          "N6"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "9696eee2670beae1601ae59e125ff9f10e6c88a7",
        "procedures": [
          {
            "id": "orderpack-rank",
            "package_id": "orderpack",
            "revision": "9696eee2670beae1601ae59e125ff9f10e6c88a7",
            "module": "M_orderpack",
            "procedure": "rank",
            "gams_codes": [
              "N6"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Indices that sort an array; not a statistical rank-based inference procedure.",
            "evidence": [
              {
                "path": "src/M_orderpack.f90",
                "sha256": "2413fc033ff4a130f83a26329057cc528159cdb80f3e7d17613263b820a66084",
                "line": 7
              }
            ],
            "author_examples": [
              {
                "path": "example/demo_rank.f90",
                "sha256": "dad238a2309021a2bd27169ded67a24cc984322de64270a7a96c8a7997363fb2"
              }
            ],
            "driver_id": "orderpack-ranking-reference"
          }
        ],
        "numerical_review": {
          "revision": "9696eee2670beae1601ae59e125ff9f10e6c88a7",
          "archive_sha256": "54a5156b7b9e10267d742316c42eb87fa05bb7dbe8cad68820fc7e1d59c8e244",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "orderpack-rank"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "orderpack",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=orderpack",
        "package_revision": "9696eee2670beae1601ae59e125ff9f10e6c88a7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/orderpack.f90",
          "sha256": "c8dd69f84ff91a5bdf7030b73747a992373f8b345f12f49ca1e79ce242db62f5"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "9696eee2670beae1601ae59e125ff9f10e6c88a7",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:vmagnin/cairo-fortran",
      "name": "cairo-fortran",
      "repository": {
        "host": "github",
        "owner": "vmagnin",
        "name": "cairo-fortran",
        "url": "https://github.com/vmagnin/cairo-fortran"
      },
      "description": "Cairo bindings for drawing vector graphics into PNG and other output formats.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Images"
      ],
      "license": {
        "label": "GPL-3.0-or-later WITH GCC-exception-3.1",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "bindings",
          "cairo",
          "fortran",
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 8,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "drawing",
          "images",
          "language-bindings",
          "png",
          "vector-graphics"
        ],
        "gams_codes": [
          "Q"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "89c31edd87ac1a5ad37db71165965a30cc9b7d61"
      },
      "playground": {
        "package_id": "cairo-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=cairo-fortran",
        "package_revision": "89c31edd87ac1a5ad37db71165965a30cc9b7d61",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/cairo-fortran.f90",
          "sha256": "cb77368a72462d5a754000b8f0a7b0c81e58be5a483e429db088041088e29c15"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "89c31edd87ac1a5ad37db71165965a30cc9b7d61",
        "verified_at": "2026-10-28T01:15:41.906948+00:00",
        "packages": []
      }
    },
    {
      "id": "github:vmagnin/forcolormap",
      "name": "forcolormap",
      "repository": {
        "host": "github",
        "owner": "vmagnin",
        "name": "forcolormap",
        "url": "https://github.com/vmagnin/forcolormap"
      },
      "description": "Scientific colormaps mapping scalar values to RGB colors.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Colors"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "colormaps",
          "fortran",
          "fortran-package-manager"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 26,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "colormaps",
          "colors",
          "rgb",
          "visualization"
        ],
        "gams_codes": [
          "Q"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "e720711cbe941e1c586da567315464cb344859c4"
      },
      "playground": {
        "package_id": "forcolormap",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forcolormap",
        "package_revision": "e720711cbe941e1c586da567315464cb344859c4",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/forcolormap.f90",
          "sha256": "9c11ca340892983113e0630fc3180ceb33839e18cf16f499b4b5744dc351ec78"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "e720711cbe941e1c586da567315464cb344859c4",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": [
          {
            "id": "github:gha3mi/forimage",
            "repository": "gha3mi/forimage",
            "revision": "65f53ce6a53c3a3ee38f05e6a065505bc3fa0dfb"
          }
        ]
      }
    },
    {
      "id": "github:vmagnin/forsudoku",
      "name": "forsudoku",
      "repository": {
        "host": "github",
        "owner": "vmagnin",
        "name": "ForSudoku",
        "url": "https://github.com/vmagnin/ForSudoku"
      },
      "description": "Solve Sudoku puzzles and generate new grids with configurable clues.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Games and puzzles"
      ],
      "license": {
        "label": "GPL-3.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "sudoku"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 4,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "constraint-solving",
          "puzzles",
          "sudoku"
        ],
        "gams_codes": [
          "Z"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "a849a7fe87c3e19aea1bd8ed4caef15e651c3208"
      },
      "playground": {
        "package_id": "forsudoku",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forsudoku",
        "package_revision": "a849a7fe87c3e19aea1bd8ed4caef15e651c3208",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/forsudoku.f90",
          "sha256": "174a010095521ed72fcb94eef466b8a1ecf0119d4e2ff9106731eee268303316"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "a849a7fe87c3e19aea1bd8ed4caef15e651c3208",
        "verified_at": "2026-10-28T01:15:41.906948+00:00",
        "packages": []
      }
    },
    {
      "id": "github:vmagnin/fundamental_constants",
      "name": "fundamental_constants",
      "repository": {
        "host": "github",
        "owner": "vmagnin",
        "name": "fundamental_constants",
        "url": "https://github.com/vmagnin/fundamental_constants"
      },
      "description": "CODATA fundamental physical constants with explicitly selectable editions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Physical constants"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "codata",
          "fortran",
          "fortran-package-manager",
          "nist"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 16,
        "stars_updated_at": "2026-10-29T00:50:30.284213+00:00"
      },
      "curation": {
        "topics": [
          "codata",
          "nist",
          "physical-constants",
          "physics"
        ],
        "gams_codes": [
          "R"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "CODATA physical constants. The checked main imports the explicit 2022 edition, computes the energy of a 500 nm photon in joules and electron volts, and compares it with independent decimal reference values. The source modules are pre-generated; no network request or Python generation is needed to use them. No source edits. This is a check of three constants and one calculation, not revalidation of the complete CODATA tables or uncertainty propagation.",
        "reviewed_revision": "3e18620ab7813fd9f02e8dcf05c48f0ca13f2ec0",
        "procedures": [
          {
            "id": "fundamental-codata",
            "package_id": "fundamental_constants",
            "revision": "3e18620ab7813fd9f02e8dcf05c48f0ca13f2ec0",
            "module": "CODATA_2022_constants",
            "procedure": "Planck_constant / speed_of_light_in_vacuum / elementary_charge",
            "gams_codes": [
              "R"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "CODATA physical constants. The checked main imports the explicit 2022 edition, computes the energy of a 500 nm photon in joules and electron volts, and compares it with independent decimal reference values. The source modules are pre-generated; no network request or Python generation is needed to use them. No source edits. This is a check of three constants and one calculation, not revalidation of the complete CODATA tables or uncertainty propagation.",
            "evidence": [
              {
                "path": "src/CODATA_2022_constants.f90",
                "sha256": "e64197ed448efd752673b980ca3ce137e6cf68c5fa4dc3dfd959214936cbe957",
                "line": 1
              }
            ],
            "author_examples": []
          }
        ]
      },
      "playground": {
        "package_id": "fundamental_constants",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fundamental_constants",
        "package_revision": "3e18620ab7813fd9f02e8dcf05c48f0ca13f2ec0",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fundamental_constants.f90",
          "sha256": "f4976cc7b2e3d1fa4ebd8db656192a5a8fa86990f1b65ab5fdbc5beaef83d1b9"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "3e18620ab7813fd9f02e8dcf05c48f0ca13f2ec0",
        "verified_at": "2026-10-29T00:57:33.593173+00:00",
        "packages": []
      }
    },
    {
      "id": "github:vmagnin/gtk-fortran",
      "name": "gtk-fortran",
      "repository": {
        "host": "github",
        "owner": "vmagnin",
        "name": "gtk-fortran",
        "url": "https://github.com/vmagnin/gtk-fortran"
      },
      "description": "GTK-fortran 4.8 bindings to GTK 4.18 and Cairo; the checked example draws a PNG without a window or display server.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Graphics"
      ],
      "license": {
        "label": "GPL-3.0-or-later WITH GCC-exception-3.1",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "bindings",
          "cross-platform",
          "fortran",
          "fortran-package-manager",
          "graphical-user-interface",
          "graphics",
          "gtk",
          "gtk-fortran",
          "gtk4",
          "gui"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 289,
        "stars_updated_at": "2026-10-30T18:11:46.121287+00:00"
      },
      "curation": {
        "topics": [
          "cairo",
          "graphics",
          "gtk",
          "gui",
          "headless",
          "iso-c-binding",
          "png"
        ],
        "gams_codes": [
          "Q"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The original gtk-fortran 4.8.0 FPM manifest is unchanged and builds the core bindings and high-level helper modules. GNU 16 compilation initially stopped in gtk-hl-dialog.f90 because f_c_string was resolved as a function rather than the legacy subroutine alias. Eleven checksum-guarded call-name replacements use the equivalent convert_f_string generic already provided by gtk_sup, matching current upstream spelling; arguments and implementations are unchanged. The unpatched diagnostic is retained. This release targets GTK 4.18.4/GLib 2.84.1 and is linked against pinned Debian GTK 4.18.6, with Cairo 1.18.4. The example adapts the author Cairo drawing API to an image surface, checks Cairo statuses and PNG signature/size, and draws curves, circles and text without gtk_init, a window or a display server. The returned browser preview is visually reviewed. Q covers graphics. Desktop widgets, events, interactive GUI sessions and the full upstream tests are not runtime-verified. GPL-3.0-or-later with GCC Runtime Library Exception 3.1 notices are retained.",
        "reviewed_revision": "6f731807228c55bcc0551d15f6d1f7f50bf1fe49",
        "procedures": [
          {
            "id": "gtk-fortran-demo-api",
            "package_id": "gtk-fortran",
            "revision": "6f731807228c55bcc0551d15f6d1f7f50bf1fe49",
            "module": "cairo / gtk",
            "procedure": "cairo_image_surface_create / cairo_curve_to / cairo_arc / cairo_surface_write_to_png",
            "gams_codes": [
              "Q"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The original gtk-fortran 4.8.0 FPM manifest is unchanged and builds the core bindings and high-level helper modules. GNU 16 compilation initially stopped in gtk-hl-dialog.f90 because f_c_string was resolved as a function rather than the legacy subroutine alias. Eleven checksum-guarded call-name replacements use the equivalent convert_f_string generic already provided by gtk_sup, matching current upstream spelling; arguments and implementations are unchanged. The unpatched diagnostic is retained. This release targets GTK 4.18.4/GLib 2.84.1 and is linked against pinned Debian GTK 4.18.6, with Cairo 1.18.4. The example adapts the author Cairo drawing API to an image surface, checks Cairo statuses and PNG signature/size, and draws curves, circles and text without gtk_init, a window or a display server. The returned browser preview is visually reviewed. Q covers graphics. Desktop widgets, events, interactive GUI sessions and the full upstream tests are not runtime-verified. GPL-3.0-or-later with GCC Runtime Library Exception 3.1 notices are retained.",
            "evidence": [
              {
                "path": "src/cairo-auto.f90",
                "sha256": "baa4875fd7a70488f39b687ba01a75500aa6babb531a362ab35ea16eb18bfe81",
                "line": 1
              },
              {
                "path": "src/gtk.f90",
                "sha256": "ce4eda58abfd94229da86174c84d44412e428a6f3dc61773b8d043825ea710d7",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "examples/cairo-basics.f90",
                "sha256": "ae78b90994cca1b3444e98b006a1936b7cbbad004305c27a5b744710d3f58f59",
                "line": 1
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "gtk-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=gtk-fortran",
        "package_revision": "6f731807228c55bcc0551d15f6d1f7f50bf1fe49",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/gtk-fortran.f90",
          "sha256": "afc6575739b8b1a2d194a790129a6328b9f2c250d6971996b8560a5e0e1a276c"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "6f731807228c55bcc0551d15f6d1f7f50bf1fe49",
        "verified_at": "2026-10-30T18:16:48.566372+00:00",
        "packages": []
      }
    },
    {
      "id": "github:vtopt/delaunaysparse",
      "name": "delaunaysparse",
      "repository": {
        "host": "github",
        "owner": "vtopt",
        "name": "DelaunaySparse",
        "url": "https://github.com/vtopt/DelaunaySparse"
      },
      "description": "Multivariate interpolation using sparse Delaunay simplices; version 1.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interpolation"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "delaunay-interpolation",
          "delaunay-triangulation",
          "fortran",
          "fortran2003",
          "interpolation"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 21,
        "stars_updated_at": "2026-10-29T12:53:38.105617+00:00"
      },
      "curation": {
        "topics": [
          "barycentric-coordinates",
          "delaunay-triangulation",
          "multivariate-interpolation",
          "scattered-data"
        ],
        "gams_codes": [
          "E",
          "E2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Version 1 multivariate interpolation using sparse Delaunay simplices. Version 2 bundles BQPD with a research-only redistribution notice, so the selected pin uses the earlier MIT-licensed version 1 with its bundled SLATEC/BLAS/LAPACK sources. An FPM wrapper retains fixed/free source forms, legacy implicit typing/interfaces and -fallow-argument-mismatch for the SLATEC scalar-zero/zero-stride BLAS convention. OpenMP is enabled to link the library; the checked driver uses the serial routine. It verifies exact linear-function reproduction at three interior 2D points, zero status codes, valid simplex indices and barycentric weight sums/signs. No numerical source edits. Convex-hull projection/extrapolation, all degenerate inputs, high-dimensional behavior and parallel variants are not validated.",
        "reviewed_revision": "f3ffef04e24281aa42a0e5ec81f5c68f6bb5fb01",
        "procedures": [
          {
            "id": "delaunay-interpolation",
            "package_id": "delaunaysparse",
            "revision": "f3ffef04e24281aa42a0e5ec81f5c68f6bb5fb01",
            "module": "DELSPARSE_MOD",
            "procedure": "DELAUNAYSPARSES",
            "gams_codes": [
              "E2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Version 1 multivariate interpolation using sparse Delaunay simplices. Version 2 bundles BQPD with a research-only redistribution notice, so the selected pin uses the earlier MIT-licensed version 1 with its bundled SLATEC/BLAS/LAPACK sources. An FPM wrapper retains fixed/free source forms, legacy implicit typing/interfaces and -fallow-argument-mismatch for the SLATEC scalar-zero/zero-stride BLAS convention. OpenMP is enabled to link the library; the checked driver uses the serial routine. It verifies exact linear-function reproduction at three interior 2D points, zero status codes, valid simplex indices and barycentric weight sums/signs. No numerical source edits. Convex-hull projection/extrapolation, all degenerate inputs, high-dimensional behavior and parallel variants are not validated. The class-specific E2 driver verifies six 3D interior queries with ten irregular points, three output fields, affine/constant reproduction, unique nondegenerate simplex vertices and barycentric reconstruction of preserved original coordinates. The nonlinear field is checked as piecewise-linear interpolation; exact nonlinear-function recovery and the empty-circumsphere property are not certified.",
            "evidence": [
              {
                "path": "src/delsparse.f90",
                "sha256": "0842e0271d5ec15f746057161d672b99b3dceaffb2c624638f8ac0aa5834cd26",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "src/test_install.f90",
                "sha256": "e3e50b48007270fe4eb107af8b2efc791188880ff614b1fb865f84d48e13ec7f"
              }
            ],
            "driver_id": "delaunay-affine-reference"
          }
        ],
        "numerical_review": {
          "revision": "f3ffef04e24281aa42a0e5ec81f5c68f6bb5fb01",
          "archive_sha256": "9632cb8bd406845f3df62786582b9075b5d41eab6278d9bb336e7370c67e761f",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "delaunay-interpolation"
          ],
          "notes": "Version 1 multivariate interpolation using sparse Delaunay simplices. Version 2 bundles BQPD with a research-only redistribution notice, so the selected pin uses the earlier MIT-licensed version 1 with its bundled SLATEC/BLAS/LAPACK sources. An FPM wrapper retains fixed/free source forms, legacy implicit typing/interfaces and -fallow-argument-mismatch for the SLATEC scalar-zero/zero-stride BLAS convention. OpenMP is enabled to link the library; the checked driver uses the serial routine. It verifies exact linear-function reproduction at three interior 2D points, zero status codes, valid simplex indices and barycentric weight sums/signs. No numerical source edits. Convex-hull projection/extrapolation, all degenerate inputs, high-dimensional behavior and parallel variants are not validated."
        }
      },
      "playground": {
        "package_id": "delaunaysparse",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=delaunaysparse",
        "package_revision": "f3ffef04e24281aa42a0e5ec81f5c68f6bb5fb01",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/delaunaysparse.f90",
          "sha256": "2639f6d3c276b1ee5073fa48a4e8fef728eaf0007f649fb32991b65d3358242c"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "f3ffef04e24281aa42a0e5ec81f5c68f6bb5fb01",
        "verified_at": "2026-10-29T12:54:09.059921+00:00",
        "packages": []
      }
    },
    {
      "id": "github:vtopt/qnstop",
      "name": "qnstop",
      "repository": {
        "host": "github",
        "owner": "vtopt",
        "name": "qnstop",
        "url": "https://github.com/vtopt/qnstop"
      },
      "description": "Serial quasi-Newton stochastic and global optimization with bound constraints.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 11,
        "stars_updated_at": "2026-10-29T13:26:21.447807+00:00"
      },
      "curation": {
        "topics": [
          "bound-constraints",
          "global-optimization",
          "optimization",
          "quasi-newton",
          "stochastic-optimization"
        ],
        "gams_codes": [
          "G",
          "G2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Serial QNSTOP for bound-constrained stochastic and global optimization. An FPM wrapper selects unmodified REAL_PRECISION, ZIGARRAY, QNSTOPS and bundled BLAS/LAPACK sources. Explicit CPP suffix handling lets FPM discover .f95 files. Legacy implicit typing/interfaces and argument-mismatch compatibility retain the upstream calling conventions. The seeded two-variable quadratic example checks normal stopping status, bounds, objective value and distance from its known minimizer. It is an accuracy smoke test, not a general global-optimum guarantee. The parallel QNSTOPP driver, noisy objectives, all stopping rules and performance are not validated.",
        "reviewed_revision": "39e8273247f586fca8305ef3d8e879b27b6512d0",
        "procedures": [
          {
            "id": "qnstop-bounded",
            "package_id": "qnstop",
            "revision": "39e8273247f586fca8305ef3d8e879b27b6512d0",
            "module": "QNSTOPS_MOD",
            "procedure": "QNSTOPS",
            "gams_codes": [
              "G2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Serial QNSTOP for bound-constrained stochastic and global optimization. An FPM wrapper selects unmodified REAL_PRECISION, ZIGARRAY, QNSTOPS and bundled BLAS/LAPACK sources. Explicit CPP suffix handling lets FPM discover .f95 files. Legacy implicit typing/interfaces and argument-mismatch compatibility retain the upstream calling conventions. The seeded two-variable quadratic example checks normal stopping status, bounds, objective value and distance from its known minimizer. It is an accuracy smoke test, not a general global-optimum guarantee. The parallel QNSTOPP driver, noisy objectives, all stopping rules and performance are not validated. Dedicated G2 consumer checks four seeded diagonal-quadratic box problems with known interior minimizers in two/three variables. Verifies normal stopping status, feasibility, finite output, evaluation count, returned-objective consistency and unchanged coordinate/objective tolerances. Active-bound probes failed the position tolerance at both 500 and 2000 iterations; source and actual results are retained under docs/gams-candidates/qnstop. Those face probes and an unreached corner fixture are not counted as verified. Seeds use the pinned GNU intrinsic RNG; this is a deterministic accuracy smoke check, not a general global guarantee. Noisy objectives, parallel variants and all stopping/input modes are not verified.",
            "evidence": [
              {
                "path": "src/qnstops.f95",
                "sha256": "b57bdbf67a13552540f0e0cf60e48df194b25a8fa45871295896f98c4cbfa454",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "src/sample_main_s.f95",
                "sha256": "45d31a6a6960a9d8e7e0f82c9a17e185348dd2d2b23766985ca133db34edc5ea"
              }
            ],
            "driver_id": "qnstop-box-reference"
          }
        ],
        "numerical_review": {
          "revision": "39e8273247f586fca8305ef3d8e879b27b6512d0",
          "archive_sha256": "7a7c95f9f1990dda7284bfab28b8ec7cce80eedebb0d6a6cc3979174b1cb7b65",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "qnstop-bounded"
          ],
          "notes": "Serial QNSTOP for bound-constrained stochastic and global optimization. An FPM wrapper selects unmodified REAL_PRECISION, ZIGARRAY, QNSTOPS and bundled BLAS/LAPACK sources. Explicit CPP suffix handling lets FPM discover .f95 files. Legacy implicit typing/interfaces and argument-mismatch compatibility retain the upstream calling conventions. The seeded two-variable quadratic example checks normal stopping status, bounds, objective value and distance from its known minimizer. It is an accuracy smoke test, not a general global-optimum guarantee. The parallel QNSTOPP driver, noisy objectives, all stopping rules and performance are not validated."
        }
      },
      "playground": {
        "package_id": "qnstop",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=qnstop",
        "package_revision": "39e8273247f586fca8305ef3d8e879b27b6512d0",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/qnstop.f90",
          "sha256": "105572adfcf27d0389cc2046ac5a1e2b4ef01bb8ca2935e416138cf1f60166be"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "39e8273247f586fca8305ef3d8e879b27b6512d0",
        "verified_at": "2026-10-29T13:30:57.553160+00:00",
        "packages": []
      }
    },
    {
      "id": "github:vtopt/vtmop",
      "name": "vtmop",
      "repository": {
        "host": "github",
        "owner": "vtopt",
        "name": "VTMOP",
        "url": "https://github.com/vtopt/VTMOP"
      },
      "description": "Derivative-free multiobjective optimization with surrogate models.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Roots and optimization"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "blackbox-optimization",
          "fortran",
          "fortran2008",
          "global-optimization",
          "multicriteria-optimization",
          "multiobjective-optimization",
          "response-surface-methodology",
          "simulation-optimization",
          "trust-region-methods"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-29T13:59:01.916745+00:00"
      },
      "curation": {
        "topics": [
          "bound-constraints",
          "derivative-free",
          "multiobjective-optimization",
          "pareto-front",
          "surrogate-models"
        ],
        "gams_codes": [
          "G",
          "G2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Serial derivative-free, bound-constrained multiobjective optimization. An FPM wrapper selects the unchanged solver, surrogate and test-function sources with bundled SLATEC support and links system LP64 BLAS/LAPACK rather than recompiling those bundled libraries. OpenMP linking is enabled, but the checked run uses the serial driver and one execution thread; heap trampolines support internal callbacks in the sandbox. Adapted from the author serial driver and CONVEX function, the seeded 3-variable/2-objective example uses a small evaluation budget, checks feasible design bounds, recomputes both quadratic objectives independently and verifies that no returned point dominates another. It requires multiple distinct trade-off points. This checks the finite returned set, not convergence to the exact global Pareto front or comparative performance. Parallel evaluation, checkpoint recovery, every surrogate and other problem classes are not validated.",
        "reviewed_revision": "794a1de23801731ef6edd1924b52d69b679af6a0",
        "procedures": [
          {
            "id": "vtmop-tradeoffs",
            "package_id": "vtmop",
            "revision": "794a1de23801731ef6edd1924b52d69b679af6a0",
            "module": "VTMOP_LIB",
            "procedure": "VTMOP_SOLVE",
            "gams_codes": [
              "G2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "None required; derivative-free black-box objectives.",
            "notes": "Serial derivative-free, bound-constrained multiobjective optimization. An FPM wrapper selects the unchanged solver, surrogate and test-function sources with bundled SLATEC support and links system LP64 BLAS/LAPACK rather than recompiling those bundled libraries. OpenMP linking is enabled, but the checked run uses the serial driver and one execution thread; heap trampolines support internal callbacks in the sandbox. Adapted from the author serial driver and CONVEX function, the seeded 3-variable/2-objective example uses a small evaluation budget, checks feasible design bounds, recomputes both quadratic objectives independently and verifies that no returned point dominates another. It requires multiple distinct trade-off points. This checks the finite returned set, not convergence to the exact global Pareto front or comparative performance. Parallel evaluation, checkpoint recovery, every surrogate and other problem classes are not validated.",
            "evidence": [
              {
                "path": "src/vtmop.f90",
                "sha256": "4b5db5a56f174a9c46825e8cf76cd98b2c9fc5227440b0a44c171acdbd7bef6c",
                "line": 1
              },
              {
                "path": "src/vtmop_func.f90",
                "sha256": "dece151174a3c7185be48e657bfdce86b18229d3852a511151a7ec7d59767fb6",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "src/samples.f90",
                "sha256": "1828a3c86abdddcb3a9f6834b5c597b0d973cb8c5dff4ac78df8045a60ad2bc4"
              }
            ]
          }
        ],
        "numerical_review": {
          "revision": "794a1de23801731ef6edd1924b52d69b679af6a0",
          "archive_sha256": "5c49ebb6c9f0ea852161d3e3d28bbba41481eeaf601019f5e2b51aafc31ca5e7",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "vtmop-tradeoffs"
          ],
          "notes": "Serial derivative-free, bound-constrained multiobjective optimization. An FPM wrapper selects the unchanged solver, surrogate and test-function sources with bundled SLATEC support and links system LP64 BLAS/LAPACK rather than recompiling those bundled libraries. OpenMP linking is enabled, but the checked run uses the serial driver and one execution thread; heap trampolines support internal callbacks in the sandbox. Adapted from the author serial driver and CONVEX function, the seeded 3-variable/2-objective example uses a small evaluation budget, checks feasible design bounds, recomputes both quadratic objectives independently and verifies that no returned point dominates another. It requires multiple distinct trade-off points. This checks the finite returned set, not convergence to the exact global Pareto front or comparative performance. Parallel evaluation, checkpoint recovery, every surrogate and other problem classes are not validated."
        }
      },
      "playground": {
        "package_id": "vtmop",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=vtmop",
        "package_revision": "794a1de23801731ef6edd1924b52d69b679af6a0",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/vtmop.f90",
          "sha256": "95b24a88eb09b2f229352e69cc91dc8a19c102c3d6b976dfd9401fdb64e4ce48"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "794a1de23801731ef6edd1924b52d69b679af6a0",
        "verified_at": "2026-10-29T14:04:20.544152+00:00",
        "packages": []
      }
    },
    {
      "id": "github:warrenweckesser/dde_solver",
      "name": "dde_solver",
      "repository": {
        "host": "github",
        "owner": "WarrenWeckesser",
        "name": "dde_solver",
        "url": "https://github.com/WarrenWeckesser/dde_solver"
      },
      "description": "Adaptive integration and interpolation for delay differential equations.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "delay-differential-equations",
          "differential-equations",
          "fortran"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 13,
        "stars_updated_at": "2026-10-28T16:54:18.541524+00:00"
      },
      "curation": {
        "topics": [
          "adaptive-methods",
          "delay-differential-equations",
          "initial-value-problems",
          "interpolation"
        ],
        "gams_codes": [
          "I"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "90d3389ce5d5733ab2b6e7ed7d2dad273b4d0c6b",
        "procedures": [
          {
            "id": "dde-solver-api",
            "package_id": "dde_solver",
            "revision": "90d3389ce5d5733ab2b6e7ed7d2dad273b4d0c6b",
            "module": "DDE_SOLVER_M",
            "procedure": "DDE_SOLVER",
            "gams_codes": [
              "I"
            ],
            "review_level": "source-reviewed",
            "derivatives": "problem-specific source or delayed derivative callback",
            "notes": "Delay differential equations: retain the broad differential-equation class rather than assume the ODE subclasses describe delayed problems. Dedicated I consumer checks twelve scalar constant-delay equations against independently specified method-of-steps polynomials through four delay intervals, and three oscillators against exact sine solutions. Verifies solver status and 975 finite dense-output samples including delay knots, with signed history scaling. Module callbacks use no copied upstream code. State-dependent/neutral/multiple delays, events, derivative interpolation, stiffness and all error paths are not verified.",
            "evidence": [
              {
                "path": "dde_solver_m.f90",
                "sha256": "068d219497dbf4c4454ab3ad04dd9a3ba27ac76b89c720481fcbb6c0d8ebe5f4",
                "line": 376
              }
            ],
            "author_examples": [
              {
                "path": "tests/delay_oscillator/delay_oscillator.f90",
                "sha256": "0ee6a4289e8867936430383690d860f4a855673d3a8e2a9205182079bdaf633d"
              },
              {
                "path": "tests/delay_oscillator/delay_oscillator_test.f90",
                "sha256": "b0ceac14d917d2fbe09a33b472e0ba37f36fe6ddab8cc9e91405f48220c4dd56"
              }
            ],
            "driver_id": "dde-method-steps-reference"
          }
        ],
        "numerical_review": {
          "revision": "90d3389ce5d5733ab2b6e7ed7d2dad273b4d0c6b",
          "archive_sha256": "c84c9462604a7a1ef49549bc9ec74f9e320fab08ec678075ac5a683adc57b381",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "dde-solver-api"
          ],
          "notes": "Delay differential equations: retain the broad differential-equation class rather than assume the ODE subclasses describe delayed problems. Source APIs reviewed at this exact revision. Sandbox verification covers the supplied consumer, not all routines."
        }
      },
      "playground": {
        "package_id": "dde_solver",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dde_solver",
        "package_revision": "90d3389ce5d5733ab2b6e7ed7d2dad273b4d0c6b",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/dde_solver.f90",
          "sha256": "f148c34fd0d7dcc82add9f5d55764ccb109c16179eaf54f924475ecd174a0de8"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "90d3389ce5d5733ab2b6e7ed7d2dad273b4d0c6b",
        "verified_at": "2026-10-28T16:55:51.932132+00:00",
        "packages": []
      }
    },
    {
      "id": "github:wavebitscientific/datetime-fortran",
      "name": "datetime-fortran",
      "repository": {
        "host": "github",
        "owner": "wavebitscientific",
        "name": "datetime-fortran",
        "url": "https://github.com/wavebitscientific/datetime-fortran"
      },
      "description": "Date/time objects, durations, and calendar arithmetic.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Dates and times"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "datetime",
          "fortran",
          "strftime",
          "timedelta"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 152,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "calendar-arithmetic",
          "date-time",
          "durations"
        ],
        "gams_codes": [
          "R"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "R has no immediate date/time subclass. Calendar services retain the parent assignment.",
        "reviewed_revision": "c49fcfcc54364db8235130149c4480b2bd0a72a0"
      },
      "playground": {
        "package_id": "datetime-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=datetime-fortran",
        "package_revision": "c49fcfcc54364db8235130149c4480b2bd0a72a0",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/datetime-fortran.f90",
          "sha256": "f4f5ebd1215bee07dae37d8de2d4679e21f2f08da404b2a2266e98a2c34b50d0"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "c49fcfcc54364db8235130149c4480b2bd0a72a0",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:wavebitscientific/functional-fortran",
      "name": "functional-fortran",
      "repository": {
        "host": "github",
        "owner": "wavebitscientific",
        "name": "functional-fortran",
        "url": "https://github.com/wavebitscientific/functional-fortran"
      },
      "description": "Functional array operations including map, filter, fold, and ranges.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "General utilities"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "functional-programming"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 438,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "functional-programming",
          "map-filter-reduce"
        ],
        "gams_codes": [
          "N",
          "N4",
          "S"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "N4 covers array/container operations. The general programming support remains at S rather than claiming transformation or analysis tools.",
        "reviewed_revision": "2457a66531b3b803db36928fec21d74a20434830"
      },
      "playground": {
        "package_id": "functional-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=functional-fortran",
        "package_revision": "2457a66531b3b803db36928fec21d74a20434830",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/functional-fortran.f90",
          "sha256": "77ebc1e031eb2edbfe9b9986f7f93fce6f1c20b055c2cfac95e17a279e3d57a0"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "2457a66531b3b803db36928fec21d74a20434830",
        "verified_at": "2026-10-27T01:59:01.746663+00:00",
        "packages": []
      }
    },
    {
      "id": "github:wcota/rndgen-fortran",
      "name": "rndgen-fortran",
      "repository": {
        "host": "github",
        "owner": "wcota",
        "name": "rndgen-fortran",
        "url": "https://github.com/wcota/rndgen-fortran"
      },
      "description": "Seeded KISS random number generators with multiple independent states and replay.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Random numbers"
      ],
      "license": {
        "label": "GPL-3.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "fpm",
          "kiss-rng",
          "random",
          "random-number-generator",
          "rng"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 4,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "kiss-generator",
          "pseudorandom",
          "random-numbers",
          "reproducibility"
        ],
        "gams_codes": [
          "L",
          "L6",
          "L6a",
          "L6a21"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "3fa553608324913eed6cb178b398e7f661e4f63a",
        "procedures": [
          {
            "id": "rndgen-fortran-rnd",
            "package_id": "rndgen-fortran",
            "revision": "3fa553608324913eed6cb178b398e7f661e4f63a",
            "module": "rndgen_mod",
            "procedure": "rndgen%rnd",
            "gams_codes": [
              "L6a21"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Uniform pseudorandom generation with independently seeded states.",
            "evidence": [
              {
                "path": "src/rndgen.f90",
                "sha256": "30663beef8311da766de70db3453626aaa1deecd944127a100c2daa4eb52e5a5",
                "line": 59
              }
            ],
            "author_examples": [
              {
                "path": "example/PL.f90",
                "sha256": "cfd506aa3841afc95bb42f6117ca2d73932dcde2fd2a6f62544b80e7da4ce113"
              },
              {
                "path": "example/simple.f90",
                "sha256": "9b427282e44ddcec31be811f7ddd4ed55466838159a02267fd080d5b20f11e4c"
              }
            ],
            "driver_id": "rndgen-kiss-reference"
          }
        ],
        "numerical_review": {
          "revision": "3fa553608324913eed6cb178b398e7f661e4f63a",
          "archive_sha256": "1cc8e4216e9b878c16a4369b18cd53147c42fe9eeaf8ea7d33cb5f85b3a4fe08",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "rndgen-fortran-rnd"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "rndgen-fortran",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rndgen-fortran",
        "package_revision": "3fa553608324913eed6cb178b398e7f661e4f63a",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/rndgen-fortran.f90",
          "sha256": "d73dcb206e00f10f75f1ee43db7855bc3dd061b60ed138437ac39d1b934de9f4"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "3fa553608324913eed6cb178b398e7f661e4f63a",
        "verified_at": "2026-10-27T22:20:55.737826+00:00",
        "packages": []
      }
    },
    {
      "id": "github:willdickson/minres",
      "name": "minres",
      "repository": {
        "host": "github",
        "owner": "willdickson",
        "name": "minres",
        "url": "https://github.com/willdickson/minres"
      },
      "description": "Iterative solution of symmetric sparse systems, including indefinite matrices.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "iterative-solvers",
          "linear-algebra",
          "linear-systems",
          "sparse-matrices",
          "symmetric-systems"
        ],
        "gams_codes": [
          "D",
          "D2",
          "D2b",
          "D2b4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "c7bb4c7a0ddf13729d3556878ccc688a208a052a",
        "procedures": [
          {
            "id": "minres-minres-solver",
            "package_id": "minres",
            "revision": "c7bb4c7a0ddf13729d3556878ccc688a208a052a",
            "module": "minres",
            "procedure": "minres_solver",
            "gams_codes": [
              "D2b4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "MINRES for real symmetric sparse/operator systems, including indefinite systems. The checked driver solves two known right-hand sides, checks finite results and successful termination, and independently recomputes the residual and scaled normwise backward error.",
            "evidence": [
              {
                "path": "src/minres/minres_mod.f90",
                "sha256": "eb0c478c0cdc848be7759da199d29712d1679c36486b53ffd44a6b3d9665c03c",
                "line": 40
              }
            ],
            "author_examples": [
              {
                "path": "test/minres_test.f90",
                "sha256": "bcf9d77d6bb70eef605e41a61e52f1ee6dd63c6d141c0ec5c2b7ceed200cdb32"
              }
            ],
            "driver_id": "minres-indefinite-solve"
          }
        ],
        "numerical_review": {
          "revision": "c7bb4c7a0ddf13729d3556878ccc688a208a052a",
          "archive_sha256": "cd1417ed2e800503336fb9e9d9a9acba834c22b81fb3cffe1c359bea2ce58624",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "minres-minres-solver"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "minres",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=minres",
        "package_revision": "c7bb4c7a0ddf13729d3556878ccc688a208a052a",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/minres.f90",
          "sha256": "4e41f67bb64d01e0e81603f15c419a4febead71fc58dc7bc213ba3844002e22c"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "c7bb4c7a0ddf13729d3556878ccc688a208a052a",
        "verified_at": "2026-10-27T22:36:01.378932+00:00",
        "packages": []
      }
    },
    {
      "id": "github:william-dawson/ntpoly",
      "name": "ntpoly",
      "repository": {
        "host": "github",
        "owner": "william-dawson",
        "name": "NTPoly",
        "url": "https://github.com/william-dawson/NTPoly"
      },
      "description": "Sparse matrix functions and inverse solvers; single-process MPI example.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Linear algebra"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "centrality",
          "density-functional-theory",
          "electronic-structure",
          "graph-algorithms",
          "high-performance-computing",
          "linear-algebra",
          "massively-parallel",
          "matrix-functions",
          "matrix-library",
          "quantum-chemistry",
          "sparse-matrices",
          "sparse-matrix"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 26,
        "stars_updated_at": "2026-10-29T21:15:52.018636+00:00"
      },
      "curation": {
        "topics": [
          "matrix-functions",
          "matrix-inverse",
          "matrix-square-root",
          "mpi",
          "sparse-matrices"
        ],
        "gams_codes": [
          "D",
          "D2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The upstream Fortran library source set is wrapped for FPM with pinned MPICH and OpenBLAS native dependencies. The verified example uses exactly one MPI process, serialized MPI thread support and shared-memory/self UCX transports in the restricted sandbox. For a real symmetric positive-definite 2-by-2 matrix with eigenvalues 1 and 9, it checks SquareRoot, InverseSquareRoot and Invert against analytic matrices and independent product residuals, rejecting nonfinite values. D covers matrix functions and D2 covers inversion. Multiple MPI processes, distributed scaling, complex matrices and other solver families are outside this verification scope. Local exports require MPI/OpenBLAS development libraries and locally appropriate compiler/linker flags.",
        "reviewed_revision": "7b3d22f76226af1402e9b0a5be18a496e4addc28",
        "procedures": [
          {
            "id": "ntpoly-matrix-square-roots",
            "package_id": "ntpoly",
            "revision": "7b3d22f76226af1402e9b0a5be18a496e4addc28",
            "module": "SquareRootSolversModule",
            "procedure": "SquareRoot / InverseSquareRoot",
            "gams_codes": [
              "D"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The upstream Fortran library source set is wrapped for FPM with pinned MPICH and OpenBLAS native dependencies. The verified example uses exactly one MPI process, serialized MPI thread support and shared-memory/self UCX transports in the restricted sandbox. For a real symmetric positive-definite 2-by-2 matrix with eigenvalues 1 and 9, it checks SquareRoot, InverseSquareRoot and Invert against analytic matrices and independent product residuals, rejecting nonfinite values. D covers matrix functions and D2 covers inversion. Multiple MPI processes, distributed scaling, complex matrices and other solver families are outside this verification scope. Local exports require MPI/OpenBLAS development libraries and locally appropriate compiler/linker flags. Dedicated D consumer checks 24 known SPD matrices in dimensions 2/3 and their principal square/inverse-square roots against independently constructed orthogonal-factor formulas. Three rotations and four positive-root pairs give 48 matrix-function calls; scalar products check root squared, inverse-root congruence and mutual inverse identity. Exactly one MPI process. Does not verify the separate Invert/D2 API, distributed scaling, complex/indefinite/singular matrices or large sparse behavior.",
            "evidence": [
              {
                "path": "Source/Fortran/SquareRootSolversModule.F90",
                "sha256": "50a943931ac1e718efc00df818ff600da71c08f9b298b09d9f0cf08d43b1d93f",
                "line": 30
              }
            ],
            "author_examples": [
              {
                "path": "Examples/PremadeMatrix/main.f90",
                "sha256": "fa981337fe9303ec4ffa6faebbb197ccb66ecab37563b059c5c2e55bfb95d667"
              }
            ],
            "driver_id": "ntpoly-matrix-root-reference"
          },
          {
            "id": "ntpoly-inversion",
            "package_id": "ntpoly",
            "revision": "7b3d22f76226af1402e9b0a5be18a496e4addc28",
            "module": "InverseSolversModule",
            "procedure": "Invert",
            "gams_codes": [
              "D2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The upstream Fortran library source set is wrapped for FPM with pinned MPICH and OpenBLAS native dependencies. The verified example uses exactly one MPI process, serialized MPI thread support and shared-memory/self UCX transports in the restricted sandbox. For a real symmetric positive-definite 2-by-2 matrix with eigenvalues 1 and 9, it checks SquareRoot, InverseSquareRoot and Invert against analytic matrices and independent product residuals, rejecting nonfinite values. D covers matrix functions and D2 covers inversion. Multiple MPI processes, distributed scaling, complex matrices and other solver families are outside this verification scope. Local exports require MPI/OpenBLAS development libraries and locally appropriate compiler/linker flags.",
            "evidence": [
              {
                "path": "Source/Fortran/InverseSolversModule.F90",
                "sha256": "427ed4e544e1ba88b4c7155979e715b7088bc3f086e997f2afd5bf61580ef699",
                "line": 29
              }
            ],
            "author_examples": [
              {
                "path": "Examples/PremadeMatrix/main.f90",
                "sha256": "fa981337fe9303ec4ffa6faebbb197ccb66ecab37563b059c5c2e55bfb95d667"
              }
            ],
            "driver_id": "ntpoly-inverse-reference"
          }
        ],
        "numerical_review": {
          "revision": "7b3d22f76226af1402e9b0a5be18a496e4addc28",
          "archive_sha256": "006771f80f6ef604da7eb2480d95c492437cd633be5c8e79ef63b8616a419a7a",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "ntpoly-matrix-square-roots",
            "ntpoly-inversion"
          ],
          "notes": "The upstream Fortran library source set is wrapped for FPM with pinned MPICH and OpenBLAS native dependencies. The verified example uses exactly one MPI process, serialized MPI thread support and shared-memory/self UCX transports in the restricted sandbox. For a real symmetric positive-definite 2-by-2 matrix with eigenvalues 1 and 9, it checks SquareRoot, InverseSquareRoot and Invert against analytic matrices and independent product residuals, rejecting nonfinite values. D covers matrix functions and D2 covers inversion. Multiple MPI processes, distributed scaling, complex matrices and other solver families are outside this verification scope. Local exports require MPI/OpenBLAS development libraries and locally appropriate compiler/linker flags."
        }
      },
      "playground": {
        "package_id": "ntpoly",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=ntpoly",
        "package_revision": "7b3d22f76226af1402e9b0a5be18a496e4addc28",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/ntpoly.f90",
          "sha256": "7d4371cca19c9871a0c7e884d0076c9f98b414ac5cdefd939cf1126f87f6c02c"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "7b3d22f76226af1402e9b0a5be18a496e4addc28",
        "verified_at": "2026-10-29T21:18:06.912825+00:00",
        "packages": []
      }
    },
    {
      "id": "github:willklausler/fortran_cubatures",
      "name": "fortran_cubatures",
      "repository": {
        "host": "github",
        "owner": "willklausler",
        "name": "fortran_cubatures",
        "url": "https://github.com/willklausler/fortran_cubatures"
      },
      "description": "Gaussian cubature rules for finite-element reference lines, triangles, quadrilaterals, tetrahedra, hexahedra and wedges.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Integration"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "cubature",
          "finite-elements",
          "fortran",
          "fpm",
          "numerical-integration",
          "quadrature"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "cubature",
          "finite-elements",
          "gaussian-quadrature",
          "multidimensional",
          "quadrature"
        ],
        "gams_codes": [
          "H",
          "H2",
          "H2c"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "aca04975d09aed329fd4210defd7052926dc01c1",
        "procedures": [
          {
            "id": "fortran-cubatures-cubature",
            "package_id": "fortran_cubatures",
            "revision": "aca04975d09aed329fd4210defd7052926dc01c1",
            "module": "cubatures",
            "procedure": "cubature",
            "gams_codes": [
              "H2c"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Returns cubature nodes and weights for reference elements; not an adaptive integrator. The dedicated checked driver uses analytic references, finite-data checks and explicit tolerances. See docs/gams-cubature.md for the exact configurations and limitations.",
            "evidence": [
              {
                "path": "src/cubatures.f90",
                "sha256": "6d53402e15c1fead86546723ec195f9e4658ee4b641d535fe8f8a11338257b6d",
                "line": 100
              }
            ],
            "author_examples": [
              {
                "path": "test/test_cubatures.f90",
                "sha256": "049cbb33a825108fb242ee7c3278a15ce7f814d1cde503c3b8725195dff2e86f"
              }
            ],
            "driver_id": "cubatures-simplex-moments"
          }
        ],
        "numerical_review": {
          "revision": "aca04975d09aed329fd4210defd7052926dc01c1",
          "archive_sha256": "5ad21717dd6f860eb607797bcd21c2baf9ad7fa8ee194cd773effb0b49e20d3d",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortran-cubatures-cubature"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fortran_cubatures",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortran_cubatures",
        "package_revision": "aca04975d09aed329fd4210defd7052926dc01c1",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortran_cubatures.f90",
          "sha256": "d1890191799fbfc3ce7421e74b3e1342c4148d0548fc682ac9d4b64f847137dc"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "aca04975d09aed329fd4210defd7052926dc01c1",
        "verified_at": "2026-10-28T01:52:04.654432+00:00",
        "packages": []
      }
    },
    {
      "id": "github:ylikx/forpy",
      "name": "forpy",
      "repository": {
        "host": "github",
        "owner": "ylikx",
        "name": "forpy",
        "url": "https://github.com/ylikx/forpy"
      },
      "description": "Embed Python in Fortran and exchange arrays with NumPy.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Interoperability"
      ],
      "license": {
        "label": "LGPL-3.0-or-later",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-library",
          "fortran2003",
          "interoperability",
          "language-bindings",
          "numpy",
          "python"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 242,
        "stars_updated_at": "2026-10-29T20:54:40.271634+00:00"
      },
      "curation": {
        "topics": [
          "arrays",
          "c-bindings",
          "interoperability",
          "numpy",
          "python"
        ],
        "gams_codes": [
          "S"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The existing generated upstream forpy_mod.F90 source is wrapped for FPM without running Fypp or changing the library. It embeds the sandbox Python 3.12 runtime using the linker flags advertised by python3-config --embed --ldflags, with an explicit runtime library search path. The consumer copies a 2-by-3 Fortran real64 array to NumPy, calls numpy.sum and numpy.linalg.norm, verifies both returned scalars independently in Fortran and checks finite values and every API status. Python references are destroyed before finalization. Other Python versions, no-copy array lifetimes, callbacks, Python extension modules and plotting are not validated. Exported projects need Python and NumPy and linker flags appropriate to the local Python installation.",
        "reviewed_revision": "b4fc550c7282ed0751d6559c4d867a60af3718a7",
        "procedures": [
          {
            "id": "forpy-embedding",
            "package_id": "forpy",
            "revision": "b4fc550c7282ed0751d6559c4d867a60af3718a7",
            "module": "forpy_mod",
            "procedure": "forpy_initialize / ndarray_create / import_py / call_py / cast / forpy_finalize",
            "gams_codes": [
              "S"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The existing generated upstream forpy_mod.F90 source is wrapped for FPM without running Fypp or changing the library. It embeds the sandbox Python 3.12 runtime using the linker flags advertised by python3-config --embed --ldflags, with an explicit runtime library search path. The consumer copies a 2-by-3 Fortran real64 array to NumPy, calls numpy.sum and numpy.linalg.norm, verifies both returned scalars independently in Fortran and checks finite values and every API status. Python references are destroyed before finalization. Other Python versions, no-copy array lifetimes, callbacks, Python extension modules and plotting are not validated. Exported projects need Python and NumPy and linker flags appropriate to the local Python installation.",
            "evidence": [
              {
                "path": "forpy_mod.F90",
                "sha256": "742b3ac5c934d124a071dc01d60263e9ec2556467349b4ddec242b662dbcf666",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "README.md",
                "sha256": "5ed77874875b55074a785b4389a43b4dd0dd6a49fa24107915aeb5f2f4e57852"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "forpy",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forpy",
        "package_revision": "b4fc550c7282ed0751d6559c4d867a60af3718a7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/forpy.f90",
          "sha256": "df55ba9f556143bbeeb8122ee2e47bafbcea7b5cb21162d7e818a3ff97815180"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b4fc550c7282ed0751d6559c4d867a60af3718a7",
        "verified_at": "2026-10-29T20:53:30.579816+00:00",
        "packages": []
      }
    },
    {
      "id": "github:zaneham/dcuhre",
      "name": "dcuhre",
      "repository": {
        "host": "github",
        "owner": "Zaneham",
        "name": "dcuhre",
        "url": "https://github.com/Zaneham/dcuhre"
      },
      "description": "Adaptive multidimensional integration over hyperrectangles with vector integrands and error estimates.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Integration"
      ],
      "license": {
        "label": "ACM",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "dcuhre",
          "fortran",
          "fortran-package-manager",
          "integration",
          "mathematics",
          "multidimensional-integration",
          "numerical-integration",
          "quadrature"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 8,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "adaptive-methods",
          "cubature",
          "error-estimation",
          "multidimensional",
          "quadrature"
        ],
        "gams_codes": [
          "H",
          "H2",
          "H2b",
          "H2b1",
          "H2b1a",
          "H2b1a1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "da8becb7f5313c1d7387066ef2106be9e156e20c",
        "procedures": [
          {
            "id": "dcuhre-dcuhre",
            "package_id": "dcuhre",
            "revision": "da8becb7f5313c1d7387066ef2106be9e156e20c",
            "module": "external",
            "procedure": "dcuhre",
            "gams_codes": [
              "H2b1a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "none",
            "notes": "Adaptive vector-valued integration over hyperrectangles with error estimates. The dedicated checked driver uses analytic references, finite-data checks and explicit tolerances. See docs/gams-cubature.md for the exact configurations and limitations.",
            "evidence": [
              {
                "path": "src/dcuhre.f",
                "sha256": "81a7c80b32794447c47f8ec1c7c2d159e811c0864d7c9c515bf4583d37cb627a",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "test/dtest1.f",
                "sha256": "1f75afe36fdb7663ef29fbfe9b8d1c95f7dfac2659a0d41c41e90acc46e603c4"
              }
            ],
            "driver_id": "dcuhre-box-integrals"
          }
        ],
        "numerical_review": {
          "revision": "da8becb7f5313c1d7387066ef2106be9e156e20c",
          "archive_sha256": "f8310453858037e0cbfd81904cb9aebe299a510f73d0925956d7e7020e358549",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "dcuhre-dcuhre"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "dcuhre",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=dcuhre",
        "package_revision": "da8becb7f5313c1d7387066ef2106be9e156e20c",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/dcuhre.f90",
          "sha256": "87739e99718d2575ed4d63ecca092cd9121838b85335f820e1b9ab37f37af95c"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "da8becb7f5313c1d7387066ef2106be9e156e20c",
        "verified_at": "2026-10-28T02:10:15.391492+00:00",
        "packages": []
      }
    },
    {
      "id": "github:zerothi/fdict",
      "name": "fdict",
      "repository": {
        "host": "github",
        "owner": "zerothi",
        "name": "fdict",
        "url": "https://github.com/zerothi/fdict"
      },
      "description": "Mixed-type dictionaries and variables, with checked scalar, string and array lookups.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Containers and graphs"
      ],
      "license": {
        "label": "MPL-2.0",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "dictionary",
          "fortran",
          "pointer"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 77,
        "stars_updated_at": "2026-10-29T23:19:15.682106+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "data-structures",
          "dictionaries",
          "hash-tables",
          "mixed-types"
        ],
        "gams_codes": [
          "N",
          "N4",
          "N5"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The current upstream Fypp templates produce fdict_types, variable and dictionary modules. Fypp 3.2 generates a checksum-locked asset with standard integer/real/complex/logical kinds, arrays through rank five, iso_fortran_env, optional extended kinds disabled and the upstream CMake default of non-pure interfaces. No CMake or Fypp runs in visitor preparation. The checked consumer stores and retrieves integer, real64, string and integer-array values, checks each returned value and frees the dictionary. N4 covers container storage and N5 covers key lookup. Earlier v0.7.1 preparation failed on missing generated includes; the current template generation resolves that blocker without downloading release assets or weakening archive checks. MPL-2.0 notices remain intact.",
        "reviewed_revision": "6ac903d4c0c524d45b948281a18b9656936c0197",
        "procedures": [
          {
            "id": "fdict-dictionary",
            "package_id": "fdict",
            "revision": "6ac903d4c0c524d45b948281a18b9656936c0197",
            "module": "dictionary / variable",
            "procedure": ".kv. / concatenation / assign / delete",
            "gams_codes": [
              "N4",
              "N5"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The current upstream Fypp templates produce fdict_types, variable and dictionary modules. Fypp 3.2 generates a checksum-locked asset with standard integer/real/complex/logical kinds, arrays through rank five, iso_fortran_env, optional extended kinds disabled and the upstream CMake default of non-pure interfaces. No CMake or Fypp runs in visitor preparation. The checked consumer stores and retrieves integer, real64, string and integer-array values, checks each returned value and frees the dictionary. N4 covers container storage and N5 covers key lookup. Earlier v0.7.1 preparation failed on missing generated includes; the current template generation resolves that blocker without downloading release assets or weakening archive checks. MPL-2.0 notices remain intact.",
            "evidence": [
              {
                "path": "src/dictionary.fypp",
                "sha256": "9c468bd4e3887e551c1fa58c1e68a15c4c7474818eff22fee6bd61c5d3e4f5d3",
                "line": 1
              },
              {
                "path": "src/variable.fypp",
                "sha256": "7ed4e87b6b2ddc865aa8e0101f046935226e9006c9bb81fe5d62f1785427b475",
                "line": 1
              },
              {
                "path": "src/fdict_common.fypp",
                "sha256": "947e9f3a924e3625a6130a857cac076d09a1464376686b7cc3ac4c37918f4689",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "README.md",
                "sha256": "8657f78e4ea688cf44fb136f8d08eafa4d279f772f7a9f49f66d11af8fd3cd84"
              },
              {
                "path": "test/tst_dict_a_.f90",
                "sha256": "d93a4a1b25736a4b49d38c584ad7b0c4d38cd7f7a41e8869f1350712111c9a1b"
              },
              {
                "path": "test/tst_dict_multiple.f90",
                "sha256": "a9a5afe209cfd485a37f558a7b67f183421184c987e2312c0417a9f30aa7d7a0"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "fdict",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fdict",
        "package_revision": "6ac903d4c0c524d45b948281a18b9656936c0197",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fdict.f90",
          "sha256": "f99733f2e0e1405eed7bf2940ed17a05275a5f25c4a596ef8ec4cd6201862331"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "6ac903d4c0c524d45b948281a18b9656936c0197",
        "verified_at": "2026-10-29T23:21:45.294111+00:00",
        "packages": []
      }
    },
    {
      "id": "github:zgimbutas/nufft1d",
      "name": "nufft1d",
      "repository": {
        "host": "github",
        "owner": "zgimbutas",
        "name": "nufft1d",
        "url": "https://github.com/zgimbutas/nufft1d"
      },
      "description": "Nonuniform Fourier transforms in 1 dimension.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Fourier transforms"
      ],
      "license": {
        "label": "BSD-2-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-29T19:26:39.127603+00:00"
      },
      "curation": {
        "topics": [
          "fourier-transform",
          "nonuniform-fft",
          "spectral-methods"
        ],
        "gams_codes": [
          "J",
          "J1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Original one-dimensional nonuniform Fourier code using the dynamically allocated Fortran 90 interface and bundled Netlib FFT implementation. Forty-nine checksum-guarded edits change legacy extent-one FFT dummy-array declarations to assumed size; every changed array is checked against its containing procedure argument list. No local arrays, transform formulas or global bounds-checking settings are changed. Legacy workspace argument type punning is accepted with the package-specific -fallow-argument-mismatch option. The example evaluates a type-1 transform of 96 deterministic nonuniform points into 32 modes for both exponent signs and compares every complex coefficient with an independent direct sum, including the documented 1/nj normalization. Status and finite values are checked. Types 2/3, the static Fortran 77 interface and every bundled FFT routine are not verified.",
        "reviewed_revision": "42a04333f882f474b0674936cae049899784f56e",
        "procedures": [
          {
            "id": "nufft1d-transform",
            "package_id": "nufft1d",
            "revision": "42a04333f882f474b0674936cae049899784f56e",
            "module": "classic Fortran 90 interface",
            "procedure": "nufft1d1f90",
            "gams_codes": [
              "J1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Original one-dimensional nonuniform Fourier code using the dynamically allocated Fortran 90 interface and bundled Netlib FFT implementation. Forty-nine checksum-guarded edits change legacy extent-one FFT dummy-array declarations to assumed size; every changed array is checked against its containing procedure argument list. No local arrays, transform formulas or global bounds-checking settings are changed. Legacy workspace argument type punning is accepted with the package-specific -fallow-argument-mismatch option. The example evaluates a type-1 transform of 96 deterministic nonuniform points into 32 modes for both exponent signs and compares every complex coefficient with an independent direct sum, including the documented 1/nj normalization. Status and finite values are checked. Types 2/3, the static Fortran 77 interface and every bundled FFT routine are not verified. The class-specific J1 driver adds 24 type-1 transforms: 80 nonuniform sources, 15/16/31/32 modes, three deterministic strength patterns and both exponent signs, checked against independently accumulated trigonometric sums and the exact zero mode. Type 2/3 and performance remain unverified.",
            "evidence": [
              {
                "path": "nufft1df90.f",
                "sha256": "2154f18f1d8bbc51e5ed6da22c459a70e7cd6486383403be853aee8b13da684a",
                "line": 1
              },
              {
                "path": "dfft.f",
                "sha256": "b93834232be328117712bae5bcccfb563a7e48a44fb89e167b71794430af56aa",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "nufft1d_demof90.f",
                "sha256": "74cacab9ee0aa5b8b8908aab3b45bf49d066ef1ee689c195d574fd20b644d1ab"
              }
            ],
            "driver_id": "nufft1d-sum-reference"
          }
        ],
        "numerical_review": {
          "revision": "42a04333f882f474b0674936cae049899784f56e",
          "archive_sha256": "29835ccf24027743db9d0f47148fb41e2c738a9231a443e4330d0c0b91d56ca7",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "nufft1d-transform"
          ],
          "notes": "Original one-dimensional nonuniform Fourier code using the dynamically allocated Fortran 90 interface and bundled Netlib FFT implementation. Forty-nine checksum-guarded edits change legacy extent-one FFT dummy-array declarations to assumed size; every changed array is checked against its containing procedure argument list. No local arrays, transform formulas or global bounds-checking settings are changed. Legacy workspace argument type punning is accepted with the package-specific -fallow-argument-mismatch option. The example evaluates a type-1 transform of 96 deterministic nonuniform points into 32 modes for both exponent signs and compares every complex coefficient with an independent direct sum, including the documented 1/nj normalization. Status and finite values are checked. Types 2/3, the static Fortran 77 interface and every bundled FFT routine are not verified."
        }
      },
      "playground": {
        "package_id": "nufft1d",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nufft1d",
        "package_revision": "42a04333f882f474b0674936cae049899784f56e",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/nufft1d.f90",
          "sha256": "7db0f10921945887f8216b155b90e64032864c33d5df6489603241e865553172"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "42a04333f882f474b0674936cae049899784f56e",
        "verified_at": "2026-10-29T19:30:07.012330+00:00",
        "packages": []
      }
    },
    {
      "id": "github:zgimbutas/nufft2d",
      "name": "nufft2d",
      "repository": {
        "host": "github",
        "owner": "zgimbutas",
        "name": "nufft2d",
        "url": "https://github.com/zgimbutas/nufft2d"
      },
      "description": "Nonuniform Fourier transforms in 2 dimensions.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Fourier transforms"
      ],
      "license": {
        "label": "BSD-2-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 0,
        "stars_updated_at": "2026-10-29T19:26:39.127603+00:00"
      },
      "curation": {
        "topics": [
          "fourier-transform",
          "multidimensional-transforms",
          "nonuniform-fft",
          "spectral-methods"
        ],
        "gams_codes": [
          "J",
          "J1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Original two-dimensional nonuniform Fourier code using the dynamically allocated Fortran 90 interface and bundled Netlib FFT implementation. Forty-nine checksum-guarded edits change legacy extent-one FFT dummy-array declarations to assumed size after checking that each is a procedure argument; no formulas or local arrays change and bounds checking remains enabled. Legacy workspace argument type punning uses the package-specific -fallow-argument-mismatch option. The example transforms 96 deterministic scattered points onto a 16-by-18 mode grid for both exponent signs, checking status, finite values and all coefficients against an independent direct sum with the documented 1/nj normalization. Types 2/3, the static Fortran 77 interface, every FFT routine and multidimensional performance are not verified.",
        "reviewed_revision": "8353c5fb20cd0a8fe6821fae18355e303ed23ed3",
        "procedures": [
          {
            "id": "nufft2d-transform",
            "package_id": "nufft2d",
            "revision": "8353c5fb20cd0a8fe6821fae18355e303ed23ed3",
            "module": "classic Fortran 90 interface",
            "procedure": "nufft2d1f90",
            "gams_codes": [
              "J1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Original two-dimensional nonuniform Fourier code using the dynamically allocated Fortran 90 interface and bundled Netlib FFT implementation. Forty-nine checksum-guarded edits change legacy extent-one FFT dummy-array declarations to assumed size after checking that each is a procedure argument; no formulas or local arrays change and bounds checking remains enabled. Legacy workspace argument type punning uses the package-specific -fallow-argument-mismatch option. The example transforms 96 deterministic scattered points onto a 16-by-18 mode grid for both exponent signs, checking status, finite values and all coefficients against an independent direct sum with the documented 1/nj normalization. Types 2/3, the static Fortran 77 interface, every FFT routine and multidimensional performance are not verified.",
            "evidence": [
              {
                "path": "nufft2df90.f",
                "sha256": "4565753328752aaed934c31986d84e963e1b853a46c8ddf1147edffef0dea1e2",
                "line": 1
              },
              {
                "path": "dfft.f",
                "sha256": "4e34b7e5d9c11dcfb1b42ce7de3e309331f579d57ee7af44c7cb2a47d2ffea3d",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "nufft2d_demof90.f",
                "sha256": "991c1737849d3fa9bf081c774a01018b438bfa77f065c71af3fb6abb15319dab"
              }
            ],
            "driver_id": "nufft2d-direct-reference"
          }
        ],
        "numerical_review": {
          "revision": "8353c5fb20cd0a8fe6821fae18355e303ed23ed3",
          "archive_sha256": "12c15079e3a81fc2c58b95ee568193e70d5010edca08ab28296fd5d4956e12ee",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "nufft2d-transform"
          ],
          "notes": "Original two-dimensional nonuniform Fourier code using the dynamically allocated Fortran 90 interface and bundled Netlib FFT implementation. Forty-nine checksum-guarded edits change legacy extent-one FFT dummy-array declarations to assumed size after checking that each is a procedure argument; no formulas or local arrays change and bounds checking remains enabled. Legacy workspace argument type punning uses the package-specific -fallow-argument-mismatch option. The example transforms 96 deterministic scattered points onto a 16-by-18 mode grid for both exponent signs, checking status, finite values and all coefficients against an independent direct sum with the documented 1/nj normalization. Types 2/3, the static Fortran 77 interface, every FFT routine and multidimensional performance are not verified."
        }
      },
      "playground": {
        "package_id": "nufft2d",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=nufft2d",
        "package_revision": "8353c5fb20cd0a8fe6821fae18355e303ed23ed3",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/nufft2d.f90",
          "sha256": "79b500a9e11d45ed81a7b0ea2edef4b672aace42506443cf357590c7ca41aabe"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "8353c5fb20cd0a8fe6821fae18355e303ed23ed3",
        "verified_at": "2026-10-29T19:30:07.012330+00:00",
        "packages": []
      }
    },
    {
      "id": "github:zoziha/easy_plplot",
      "name": "easy-plplot",
      "repository": {
        "host": "github",
        "owner": "zoziha",
        "name": "easy_plplot",
        "url": "https://github.com/zoziha/easy_plplot"
      },
      "description": "Matplotlib-inspired PLplot interface; PNG plotting example.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Plotting"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-library",
          "fortran-package-manager",
          "fpm",
          "matplotlib",
          "plot",
          "plotting",
          "plplot",
          "plplot-bindings"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 10,
        "stars_updated_at": "2026-10-29T21:52:47.845574+00:00"
      },
      "curation": {
        "topics": [
          "data-visualization",
          "graphics",
          "plotting",
          "plplot",
          "png"
        ],
        "gams_codes": [
          "Q"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "The existing upstream FPM package is compiled against pinned PLplot native libraries and the Cairo file driver. The main plots sine and cosine over [0,2*pi] using the pngcairo device, checks that the output file exists and is nontrivial, and the restricted sandbox must return a valid PNG preview for browser display. GUI devices, animation, interactive windows and other plotting routines are outside verification scope. Q describes the tested graphics functionality.",
        "reviewed_revision": "77b0ac9b30d732196e99438064c35f4c1914eb7c",
        "procedures": [
          {
            "id": "easy-plplot-png",
            "package_id": "easy-plplot",
            "revision": "77b0ac9b30d732196e99438064c35f4c1914eb7c",
            "module": "easy_plplot_m",
            "procedure": "setup / figure / subplot / plot / show",
            "gams_codes": [
              "Q"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "The existing upstream FPM package is compiled against pinned PLplot native libraries and the Cairo file driver. The main plots sine and cosine over [0,2*pi] using the pngcairo device, checks that the output file exists and is nontrivial, and the restricted sandbox must return a valid PNG preview for browser display. GUI devices, animation, interactive windows and other plotting routines are outside verification scope. Q describes the tested graphics functionality.",
            "evidence": [
              {
                "path": "src/easy_plplot.f90",
                "sha256": "8a2414379a97b340bf1f314a5fe051460092af4a44d8752bca51b15fc1d80f7e",
                "line": 1
              },
              {
                "path": "src/utilities.f90",
                "sha256": "f4b542085d7c2835f8fd0b8f176d8040f5514e73e6f3df78ff3f1f765a525c74",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/basic.f90",
                "sha256": "c1515a496d35ff9d193e2da5523c922ed2de728a48ab4021b8264ab8af52efa6"
              },
              {
                "path": "example/logo.f90",
                "sha256": "8360fba9b1e32f1f17e35aa63882a4f214a1d06dabcdfbdfe31d246a2a031f01"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "easy-plplot",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=easy-plplot",
        "package_revision": "77b0ac9b30d732196e99438064c35f4c1914eb7c",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/easy-plplot.f90",
          "sha256": "a07bfbe9ab19a5e608cfa599d1637f2fefd27c862b3463b91edf7ab96cfb1b29"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "77b0ac9b30d732196e99438064c35f4c1914eb7c",
        "verified_at": "2026-10-29T21:51:26.765767+00:00",
        "packages": []
      }
    },
    {
      "id": "github:zoziha/forlab",
      "name": "forlab",
      "repository": {
        "host": "github",
        "owner": "zoziha",
        "name": "forlab",
        "url": "https://github.com/zoziha/forlab"
      },
      "description": "MATLAB/NumPy-style numerical utilities, linear algebra, interpolation and statistics.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "General utilities"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 8,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "interpolation",
          "linear-algebra",
          "matlab-like",
          "numerical-methods",
          "statistics"
        ],
        "gams_codes": [
          "D",
          "D1",
          "D2",
          "D9",
          "D9a",
          "D9a1",
          "E",
          "E1",
          "L",
          "L1"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "416e5612167b6133100bef4cec116322890f66f7",
        "procedures": [
          {
            "id": "forlab-solve",
            "package_id": "forlab",
            "revision": "416e5612167b6133100bef4cec116322890f66f7",
            "module": "forlab",
            "procedure": "solve (rectangular real system)",
            "gams_codes": [
              "D9a1"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Rectangular least-squares solve demonstrated by polynomial fitting; square solves have another classification.",
            "evidence": [
              {
                "path": "src/forlab.F90",
                "sha256": "4f9be44e66ad2fdb67841ee14d0156b7fa315b137f33333b84abb100f7e48246",
                "line": 7796
              }
            ],
            "author_examples": [],
            "driver_id": "forlab-least-squares-reference"
          }
        ],
        "numerical_review": {
          "revision": "416e5612167b6133100bef4cec116322890f66f7",
          "archive_sha256": "784431a7c880c6a6dcfdd7687e3b0f2f8340dc13bd187a3546acd09d883628f3",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "forlab-solve"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "forlab",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=forlab",
        "package_revision": "416e5612167b6133100bef4cec116322890f66f7",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/forlab.f90",
          "sha256": "83758192f74c1288c8e451e74fe6eceac7fe1b40da0f3fc8625e75e93edc6640"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "416e5612167b6133100bef4cec116322890f66f7",
        "verified_at": "2026-10-28T02:10:15.391492+00:00",
        "packages": []
      }
    },
    {
      "id": "github:zoziha/fortsa",
      "name": "fortsa",
      "repository": {
        "host": "github",
        "owner": "zoziha",
        "name": "fortsa",
        "url": "https://github.com/zoziha/fortsa"
      },
      "description": "Time-series autocorrelations, partial correlations and ARIMA modeling through CTSA.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Statistics"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "arima",
          "arma",
          "bindings",
          "fortran",
          "fpm",
          "time-series",
          "time-series-analysis",
          "tsa"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "arima",
          "autocorrelation",
          "statistics",
          "time-series"
        ],
        "gams_codes": [
          "L",
          "L10",
          "L10a",
          "L10a2",
          "L10a2a",
          "L11"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "d31da12286617ab82e06e9fa0a6f20d11778581c",
        "procedures": [
          {
            "id": "fortsa-acvf",
            "package_id": "fortsa",
            "revision": "d31da12286617ab82e06e9fa0a6f20d11778581c",
            "module": "fortsa_stats_m",
            "procedure": "acvf, acvf2acf",
            "gams_codes": [
              "L10a2a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Sample autocovariances and autocorrelations of a single time series; ARIMA fitting is a different API. Dedicated L10a2a driver checks 12 direct/FFT autocovariance calls and 9 normalization calls on base, shifted, scaled and constant 8-point series, at all lags 0..7, against independent centered scalar lag sums divided by N. Zero-variance correlation is not requested; missing data, ARIMA and other estimators are outside the driver.",
            "evidence": [
              {
                "path": "src/fortsa_stats.f90",
                "sha256": "fce5c670872c3a7b1c92e9aabd7bb7c35a036d7be826b19a3569cd37c8b15c0a",
                "line": 18
              }
            ],
            "author_examples": [
              {
                "path": "test/stats/test_stats.f90",
                "sha256": "22f40ddc4af069a795cdb0dec9148e35028d3949f3d25ffd949cc10657e4bc1d"
              }
            ],
            "driver_id": "fortsa-autocorrelation-reference"
          }
        ],
        "numerical_review": {
          "revision": "d31da12286617ab82e06e9fa0a6f20d11778581c",
          "archive_sha256": "e2fdf8e436b3ab2919df6298c88cb4f8c4a3d1f74422baab3a5df76765b6caa2",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "fortsa-acvf"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "fortsa",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=fortsa",
        "package_revision": "d31da12286617ab82e06e9fa0a6f20d11778581c",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/fortsa.f90",
          "sha256": "7fa0280eee93568dce8f8baca7a38d8170cc567b4b416cc09c13de5d36864265"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "d31da12286617ab82e06e9fa0a6f20d11778581c",
        "verified_at": "2026-10-28T01:15:41.906948+00:00",
        "packages": []
      }
    },
    {
      "id": "github:zoziha/kissfft-f",
      "name": "kissfft-f",
      "repository": {
        "host": "github",
        "owner": "zoziha",
        "name": "kissfft-f",
        "url": "https://github.com/zoziha/kissfft-f"
      },
      "description": "Fortran bindings to the compact KISS FFT library for fast Fourier transforms.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Transforms"
      ],
      "license": {
        "label": "BSD-3-Clause",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fft",
          "fortran",
          "fortran-package-manager",
          "kissfft",
          "mesonbuild",
          "modern-fortran",
          "oop",
          "wrapper-api"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 3,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "fft",
          "fourier-transforms",
          "language-bindings",
          "signal-processing"
        ],
        "gams_codes": [
          "J",
          "J1",
          "J1a",
          "J1a2"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "b89c5e1d0aff9993db79200fc94a467948ff3923",
        "procedures": [
          {
            "id": "kissfft-f-perform",
            "package_id": "kissfft-f",
            "revision": "b89c5e1d0aff9993db79200fc94a467948ff3923",
            "module": "kissfft",
            "procedure": "fft%perform",
            "gams_codes": [
              "J1a2"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Complex one-dimensional FFT through KISS FFT bindings.",
            "evidence": [
              {
                "path": "src/kissfft-f.f90",
                "sha256": "b8284decd81fc5adc335c127c055f0280b941a6cba72945b86e8e4664bb48a26",
                "line": 11
              }
            ],
            "author_examples": [
              {
                "path": "example/fft.f90",
                "sha256": "d1caeddf7e4250ae67224e0ffe79c5cd3b091cff2023654467378eae8a18f117"
              }
            ],
            "driver_id": "kissfft-f-complex-transform"
          }
        ],
        "numerical_review": {
          "revision": "b89c5e1d0aff9993db79200fc94a467948ff3923",
          "archive_sha256": "f7b54c2261190cc8282abf451dd84e215c5be2300ac14aaccb1e36405d9b5b8e",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "kissfft-f-perform"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "kissfft-f",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=kissfft-f",
        "package_revision": "b89c5e1d0aff9993db79200fc94a467948ff3923",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/kissfft-f.f90",
          "sha256": "19e559aa2d6d004c9bbd095f3338ea89a8ec2136bdd266f483f391753e0282e2"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "b89c5e1d0aff9993db79200fc94a467948ff3923",
        "verified_at": "2026-10-27T23:52:44.682584+00:00",
        "packages": []
      }
    },
    {
      "id": "github:zoziha/rkf45",
      "name": "rkf45",
      "repository": {
        "host": "github",
        "owner": "zoziha",
        "name": "rkf45",
        "url": "https://github.com/zoziha/rkf45"
      },
      "description": "Classic adaptive Runge-Kutta-Fehlberg fourth/fifth-order ODE integration.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Differential equations"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fehlberg",
          "fortran",
          "fortran-package-manager",
          "fourth-fifth-order",
          "ode",
          "rkf45",
          "runge-kutta"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 5,
        "stars_updated_at": "2026-10-28T10:57:46.582127+00:00"
      },
      "curation": {
        "topics": [
          "adaptive-methods",
          "initial-value-problems",
          "ode",
          "runge-kutta"
        ],
        "gams_codes": [
          "I",
          "I1",
          "I1a",
          "I1a1",
          "I1a1a"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "",
        "reviewed_revision": "93cd129369357ee08e34be7868256b21a500cc98",
        "procedures": [
          {
            "id": "rkf45-rkf45",
            "package_id": "rkf45",
            "revision": "93cd129369357ee08e34be7868256b21a500cc98",
            "module": "rkf45_module",
            "procedure": "rkf45",
            "gams_codes": [
              "I1a1a"
            ],
            "review_level": "source-reviewed",
            "derivatives": "right-hand side only",
            "notes": "Explicit adaptive Runge-Kutta-Fehlberg fourth/fifth-order initial-value integration.",
            "evidence": [
              {
                "path": "src/rkf45.F90",
                "sha256": "b9d84e241f910f8cad01b182d765b1f29ecd30b9ddf443f7cf74fbd0cbc06a99",
                "line": 57
              }
            ],
            "author_examples": [
              {
                "path": "test/test_rkf45.f90",
                "sha256": "127d966b1717ace0d1bffc78ef1d540363b694873cfb8c889b23cbb0c7b32182"
              }
            ],
            "driver_id": "rkf45-analytic-reference"
          }
        ],
        "numerical_review": {
          "revision": "93cd129369357ee08e34be7868256b21a500cc98",
          "archive_sha256": "7ba93563d7f60b085708b0866297c7814ffb85592411377af58bb878fc1adfd2",
          "status": "procedure-reviewed",
          "procedure_ids": [
            "rkf45-rkf45"
          ],
          "notes": "Public APIs and source evidence reviewed at the pinned revision. Other package capabilities remain discovery assignments; linked author examples/tests are candidates, not newly sandbox-verified drivers."
        }
      },
      "playground": {
        "package_id": "rkf45",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=rkf45",
        "package_revision": "93cd129369357ee08e34be7868256b21a500cc98",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/rkf45.f90",
          "sha256": "7ba540221dc22212c61437f4ea22982026da428de0ff4ab151dfbfeb6160e842"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "93cd129369357ee08e34be7868256b21a500cc98",
        "verified_at": "2026-10-28T02:10:15.391492+00:00",
        "packages": []
      }
    },
    {
      "id": "github:zoziha/slinked-list",
      "name": "slinked-list",
      "repository": {
        "host": "github",
        "owner": "zoziha",
        "name": "slinked-list",
        "url": "https://github.com/zoziha/slinked-list"
      },
      "description": "Generic singly linked list with reusable storage for small datasets.",
      "languages": [
        "Fortran"
      ],
      "build_systems": [
        "fpm"
      ],
      "categories": [
        "Data structures"
      ],
      "license": {
        "label": "MIT",
        "spdx_expression": null
      },
      "github": {
        "topics": [
          "fortran",
          "fortran-package-manager",
          "linked-list",
          "singly-linked-list"
        ],
        "topics_updated_at": "2026-10-28T10:57:46.582127+00:00",
        "stars": 1,
        "stars_updated_at": "2026-10-29T01:58:05.528366+00:00"
      },
      "curation": {
        "topics": [
          "containers",
          "data-structures",
          "linked-lists",
          "polymorphism"
        ],
        "gams_codes": [
          "N",
          "N4"
        ],
        "gams_review_level": "discovery",
        "gams_notes": "Generic singly linked list for small datasets. The main checks integer and real payloads in insertion order, list size, iteration count, emptying, retained capacity and the value stored after reuse; iterator and list cleanup are explicit. A checksum-guarded compatibility edit removes PURE from node_init, whose result has a polymorphic allocatable component. Constructor allocation and copying are unchanged, and the call sites are impure. This patched root retains its own small archive instead of sharing an unmodified graph export. No display dependency is needed for the custom consumer. Large-data performance, all mutation operations and ownership of pointer-containing derived types are not validated.",
        "reviewed_revision": "aa04fcb392466e52277200d7380913fe071fe620",
        "procedures": [
          {
            "id": "linked-list-values",
            "package_id": "slinked-list",
            "revision": "aa04fcb392466e52277200d7380913fe071fe620",
            "module": "sll_module",
            "procedure": "sll%push_back / empty / size / iterator%next",
            "gams_codes": [
              "N4"
            ],
            "review_level": "source-reviewed",
            "derivatives": "not applicable",
            "notes": "Generic singly linked list for small datasets. The main checks integer and real payloads in insertion order, list size, iteration count, emptying, retained capacity and the value stored after reuse; iterator and list cleanup are explicit. A checksum-guarded compatibility edit removes PURE from node_init, whose result has a polymorphic allocatable component. Constructor allocation and copying are unchanged, and the call sites are impure. This patched root retains its own small archive instead of sharing an unmodified graph export. No display dependency is needed for the custom consumer. Large-data performance, all mutation operations and ownership of pointer-containing derived types are not validated.",
            "evidence": [
              {
                "path": "src/sll_linked_list.f90",
                "sha256": "292aa0f950a72cbbe7b7203a324a3b71e618f1915b85ad63ae4e479d30945f5a",
                "line": 1
              },
              {
                "path": "src/sll_iterator.f90",
                "sha256": "3add761beb7b1cc638f0af2ad20dda11afd559fd0cb8d7c3cc0886afb9b62273",
                "line": 1
              }
            ],
            "author_examples": [
              {
                "path": "example/example_reuse.f90",
                "sha256": "8a0b8f40f7aa3ea53b1ce32be8a8c5234aa8e0a83d6edbe5e0ee95d41be40c91"
              }
            ]
          }
        ]
      },
      "playground": {
        "package_id": "slinked-list",
        "catalog_status": "selected",
        "url": "https://beliavsky.github.io/fortran-playground/fpm/?package=slinked-list",
        "package_revision": "aa04fcb392466e52277200d7380913fe071fe620",
        "live_service_checked": false,
        "example": {
          "path": "fpm_catalog/demos/slinked-list.f90",
          "sha256": "c15e46b73b6a9b1bb85f8488fa2fac82f0bf0690d8be708a95544f7832d678b3"
        }
      },
      "dependencies": {
        "scope": "resolved-build-repositories",
        "root_revision": "aa04fcb392466e52277200d7380913fe071fe620",
        "verified_at": "2026-10-29T01:58:37.812754+00:00",
        "packages": []
      }
    }
  ],
  "owners": {
    "0382": {
      "login": "0382",
      "display_name": "0382",
      "account_type": "User",
      "profile_url": "https://github.com/0382",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/0382"
    },
    "14ngiestas": {
      "login": "14NGiestas",
      "display_name": "Ian Giestas Pauli",
      "account_type": "User",
      "profile_url": "https://github.com/14NGiestas",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/14ngiestas"
    },
    "2decomp-fft": {
      "login": "2decomp-fft",
      "display_name": null,
      "account_type": "Organization",
      "profile_url": "https://github.com/2decomp-fft",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/2decomp-fft"
    },
    "acbbullock": {
      "login": "acbbullock",
      "display_name": "Austin Bullock",
      "account_type": "User",
      "profile_url": "https://github.com/acbbullock",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/acbbullock"
    },
    "alex-robinson": {
      "login": "alex-robinson",
      "display_name": "Alex",
      "account_type": "User",
      "profile_url": "https://github.com/alex-robinson",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/alex-robinson"
    },
    "apes-suite": {
      "login": "apes-suite",
      "display_name": "APES Suite",
      "account_type": "Organization",
      "profile_url": "https://github.com/apes-suite",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/apes-suite"
    },
    "aradi": {
      "login": "aradi",
      "display_name": "Bálint Aradi",
      "account_type": "User",
      "profile_url": "https://github.com/aradi",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/aradi"
    },
    "archaeologic-inc": {
      "login": "Archaeologic-Inc",
      "display_name": null,
      "account_type": "Organization",
      "profile_url": "https://github.com/Archaeologic-Inc",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/archaeologic-inc"
    },
    "arjenmarkus": {
      "login": "arjenmarkus",
      "display_name": "Arjen Markus",
      "account_type": "User",
      "profile_url": "https://github.com/arjenmarkus",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/arjenmarkus"
    },
    "art-rasa": {
      "login": "art-rasa",
      "display_name": null,
      "account_type": "User",
      "profile_url": "https://github.com/art-rasa",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/art-rasa"
    },
    "astrofrog": {
      "login": "astrofrog",
      "display_name": "Thomas Robitaille",
      "account_type": "User",
      "profile_url": "https://github.com/astrofrog",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/astrofrog"
    },
    "atomic-solvers": {
      "login": "atomic-solvers",
      "display_name": null,
      "account_type": "Organization",
      "profile_url": "https://github.com/atomic-solvers",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/atomic-solvers"
    },
    "awvwgk": {
      "login": "awvwgk",
      "display_name": "Sebastian Ehlert",
      "account_type": "User",
      "profile_url": "https://github.com/awvwgk",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/awvwgk"
    },
    "berkeleylab": {
      "login": "BerkeleyLab",
      "display_name": "Berkeley Lab",
      "account_type": "Organization",
      "profile_url": "https://github.com/BerkeleyLab",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/berkeleylab"
    },
    "cambridge-iccs": {
      "login": "Cambridge-ICCS",
      "display_name": "Institute of Computing for Climate Science",
      "account_type": "Organization",
      "profile_url": "https://github.com/Cambridge-ICCS",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/cambridge-iccs"
    },
    "carltoffel": {
      "login": "Carltoffel",
      "display_name": "Carl",
      "account_type": "User",
      "profile_url": "https://github.com/Carltoffel",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/carltoffel"
    },
    "certik": {
      "login": "certik",
      "display_name": "Ondřej Čertík",
      "account_type": "User",
      "profile_url": "https://github.com/certik",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/certik"
    },
    "computationalsciencelaboratory": {
      "login": "ComputationalScienceLaboratory",
      "display_name": "Computational Science Laboratory",
      "account_type": "Organization",
      "profile_url": "https://github.com/ComputationalScienceLaboratory",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/computationalsciencelaboratory"
    },
    "cp2k": {
      "login": "cp2k",
      "display_name": "CP2K",
      "account_type": "Organization",
      "profile_url": "https://github.com/cp2k",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/cp2k"
    },
    "darmar-lt": {
      "login": "darmar-lt",
      "display_name": null,
      "account_type": "User",
      "profile_url": "https://github.com/darmar-lt",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/darmar-lt"
    },
    "davidpfister": {
      "login": "davidpfister",
      "display_name": null,
      "account_type": "User",
      "profile_url": "https://github.com/davidpfister",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/davidpfister"
    },
    "degawa": {
      "login": "degawa",
      "display_name": "Tomohiro Degawa",
      "account_type": "User",
      "profile_url": "https://github.com/degawa",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/degawa"
    },
    "dftbplus": {
      "login": "dftbplus",
      "display_name": "DFTB+ Project",
      "account_type": "Organization",
      "profile_url": "https://github.com/dftbplus",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/dftbplus"
    },
    "dftd4": {
      "login": "dftd4",
      "display_name": "DFT-D4",
      "account_type": "Organization",
      "profile_url": "https://github.com/dftd4",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/dftd4"
    },
    "electronicstructurelibrary": {
      "login": "ElectronicStructureLibrary",
      "display_name": "Electronic Structure Library",
      "account_type": "Organization",
      "profile_url": "https://github.com/ElectronicStructureLibrary",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/electronicstructurelibrary"
    },
    "euler-37": {
      "login": "Euler-37",
      "display_name": null,
      "account_type": "User",
      "profile_url": "https://github.com/Euler-37",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/euler-37"
    },
    "everythingfunctional": {
      "login": "everythingfunctional",
      "display_name": "Brad Richardson",
      "account_type": "User",
      "profile_url": "https://github.com/everythingfunctional",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/everythingfunctional"
    },
    "exepulveda": {
      "login": "exepulveda",
      "display_name": "Exequiel Sepulveda",
      "account_type": "User",
      "profile_url": "https://github.com/exepulveda",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/exepulveda"
    },
    "exequantcode": {
      "login": "ExeQuantCode",
      "display_name": "Exeter Quantum Codes",
      "account_type": "Organization",
      "profile_url": "https://github.com/ExeQuantCode",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/exequantcode"
    },
    "fedebenelli": {
      "login": "fedebenelli",
      "display_name": "Federico E. Benelli",
      "account_type": "User",
      "profile_url": "https://github.com/fedebenelli",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/fedebenelli"
    },
    "filippolipparini": {
      "login": "filippolipparini",
      "display_name": "Filippo Lipparini",
      "account_type": "User",
      "profile_url": "https://github.com/filippolipparini",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/filippolipparini"
    },
    "flatironinstitute": {
      "login": "flatironinstitute",
      "display_name": "Flatiron Institute",
      "account_type": "Organization",
      "profile_url": "https://github.com/flatironinstitute",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/flatironinstitute"
    },
    "fluidnumerics": {
      "login": "FluidNumerics",
      "display_name": "Fluid Numerics",
      "account_type": "Organization",
      "profile_url": "https://github.com/FluidNumerics",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/fluidnumerics"
    },
    "fortran-lang": {
      "login": "fortran-lang",
      "display_name": "The Fortran Programming Language",
      "account_type": "Organization",
      "profile_url": "https://github.com/fortran-lang",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/fortran-lang"
    },
    "fpenunuri": {
      "login": "fpenunuri",
      "display_name": "F. Peñuñuri",
      "account_type": "User",
      "profile_url": "https://github.com/fpenunuri",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/fpenunuri"
    },
    "freevryheid": {
      "login": "freevryheid",
      "display_name": "Andre Smit",
      "account_type": "User",
      "profile_url": "https://github.com/freevryheid",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/freevryheid"
    },
    "furstj": {
      "login": "furstj",
      "display_name": "Jiří Fürst",
      "account_type": "User",
      "profile_url": "https://github.com/furstj",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/furstj"
    },
    "geospace-code": {
      "login": "geospace-code",
      "display_name": "Geospace code",
      "account_type": "Organization",
      "profile_url": "https://github.com/geospace-code",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/geospace-code"
    },
    "gha3mi": {
      "login": "gha3mi",
      "display_name": "Ali",
      "account_type": "User",
      "profile_url": "https://github.com/gha3mi",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/gha3mi"
    },
    "gnikit": {
      "login": "gnikit",
      "display_name": null,
      "account_type": "User",
      "profile_url": "https://github.com/gnikit",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/gnikit"
    },
    "goddard-fortran-ecosystem": {
      "login": "Goddard-Fortran-Ecosystem",
      "display_name": "GFE",
      "account_type": "Organization",
      "profile_url": "https://github.com/Goddard-Fortran-Ecosystem",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/goddard-fortran-ecosystem"
    },
    "grofz": {
      "login": "grofz",
      "display_name": "Zdenek Grof",
      "account_type": "User",
      "profile_url": "https://github.com/grofz",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/grofz"
    },
    "gronki": {
      "login": "gronki",
      "display_name": "Dominik Gronkiewicz",
      "account_type": "User",
      "profile_url": "https://github.com/gronki",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/gronki"
    },
    "guntherwillems": {
      "login": "guntherwillems",
      "display_name": "Gunther Willems",
      "account_type": "User",
      "profile_url": "https://github.com/guntherwillems",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/guntherwillems"
    },
    "haozeke": {
      "login": "HaoZeke",
      "display_name": "Rohit Goswami",
      "account_type": "User",
      "profile_url": "https://github.com/HaoZeke",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/haozeke"
    },
    "hugomvale": {
      "login": "HugoMVale",
      "display_name": "Hugo Vale",
      "account_type": "User",
      "profile_url": "https://github.com/HugoMVale",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/hugomvale"
    },
    "interkosmos": {
      "login": "interkosmos",
      "display_name": "Philipp",
      "account_type": "User",
      "profile_url": "https://github.com/interkosmos",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/interkosmos"
    },
    "ivan-pi": {
      "login": "ivan-pi",
      "display_name": "Ivan Pribec",
      "account_type": "User",
      "profile_url": "https://github.com/ivan-pi",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/ivan-pi"
    },
    "jacobwilliams": {
      "login": "jacobwilliams",
      "display_name": "Jacob Williams",
      "account_type": "User",
      "profile_url": "https://github.com/jacobwilliams",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/jacobwilliams"
    },
    "jaiken17": {
      "login": "jaiken17",
      "display_name": "Joshua Aiken",
      "account_type": "User",
      "profile_url": "https://github.com/jaiken17",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/jaiken17"
    },
    "jalvesz": {
      "login": "jalvesz",
      "display_name": "José Alves",
      "account_type": "User",
      "profile_url": "https://github.com/jalvesz",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/jalvesz"
    },
    "jannisteunissen": {
      "login": "jannisteunissen",
      "display_name": "Jannis Teunissen",
      "account_type": "User",
      "profile_url": "https://github.com/jannisteunissen",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/jannisteunissen"
    },
    "jchristopherson": {
      "login": "jchristopherson",
      "display_name": "Jason Christopherson",
      "account_type": "User",
      "profile_url": "https://github.com/jchristopherson",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/jchristopherson"
    },
    "jeyemhex": {
      "login": "jeyemhex",
      "display_name": "Jeyemhex",
      "account_type": "User",
      "profile_url": "https://github.com/jeyemhex",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/jeyemhex"
    },
    "jlokimlin": {
      "login": "jlokimlin",
      "display_name": "Jon Lo Kim Lin",
      "account_type": "User",
      "profile_url": "https://github.com/jlokimlin",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/jlokimlin"
    },
    "jmhodges": {
      "login": "jmhodges",
      "display_name": "Jeff Hodges",
      "account_type": "User",
      "profile_url": "https://github.com/jmhodges",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/jmhodges"
    },
    "jordan4ibanez": {
      "login": "jordan4ibanez",
      "display_name": null,
      "account_type": "User",
      "profile_url": "https://github.com/jordan4ibanez",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/jordan4ibanez"
    },
    "konrad1991": {
      "login": "Konrad1991",
      "display_name": "Konrad",
      "account_type": "User",
      "profile_url": "https://github.com/Konrad1991",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/konrad1991"
    },
    "kookma": {
      "login": "kookma",
      "display_name": "Mohammad Rahmani",
      "account_type": "User",
      "profile_url": "https://github.com/kookma",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/kookma"
    },
    "ladaf": {
      "login": "LadaF",
      "display_name": "Vladimír Fuka",
      "account_type": "User",
      "profile_url": "https://github.com/LadaF",
      "retrieved_at": "2026-10-30T15:46:28.305145+00:00",
      "source_url": "https://api.github.com/users/ladaf"
    },
    "lauvergn": {
      "login": "lauvergn",
      "display_name": null,
      "account_type": "User",
      "profile_url": "https://github.com/lauvergn",
      "source_url": "https://github.com/lauvergn",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "leonfoks": {
      "login": "leonfoks",
      "display_name": "Leon Foks",
      "account_type": "User",
      "profile_url": "https://github.com/leonfoks",
      "source_url": "https://github.com/leonfoks",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "lewisfish": {
      "login": "lewisfish",
      "display_name": "Lewis McMillan",
      "account_type": "User",
      "profile_url": "https://github.com/lewisfish",
      "source_url": "https://github.com/lewisfish",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "libmbd": {
      "login": "libmbd",
      "display_name": "libMBD",
      "account_type": "Organization",
      "profile_url": "https://github.com/libmbd",
      "source_url": "https://github.com/libmbd",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "lkedward": {
      "login": "lkedward",
      "display_name": "Laurence Kedward",
      "account_type": "User",
      "profile_url": "https://github.com/lkedward",
      "source_url": "https://github.com/lkedward",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "loiseaujc": {
      "login": "loiseaujc",
      "display_name": "Jean-Christophe Loiseau",
      "account_type": "User",
      "profile_url": "https://github.com/loiseaujc",
      "source_url": "https://github.com/loiseaujc",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "mardiehl": {
      "login": "mardiehl",
      "display_name": "Martin Diehl",
      "account_type": "User",
      "profile_url": "https://github.com/mardiehl",
      "source_url": "https://github.com/mardiehl",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "metoffice": {
      "login": "metoffice",
      "display_name": "Met Office",
      "account_type": "Organization",
      "profile_url": "https://github.com/metoffice",
      "source_url": "https://github.com/metoffice",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "milanskocic": {
      "login": "milanskocic",
      "display_name": "Milan Skocic",
      "account_type": "User",
      "profile_url": "https://github.com/milanskocic",
      "source_url": "https://github.com/milanskocic",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "minard-jules": {
      "login": "minard-jules",
      "display_name": "Jules Minard",
      "account_type": "User",
      "profile_url": "https://github.com/minard-jules",
      "source_url": "https://github.com/minard-jules",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "modern-fortran": {
      "login": "modern-fortran",
      "display_name": "Modern Fortran",
      "account_type": "Organization",
      "profile_url": "https://github.com/modern-fortran",
      "source_url": "https://github.com/modern-fortran",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "mredies": {
      "login": "mredies",
      "display_name": "Matthias Redies",
      "account_type": "User",
      "profile_url": "https://github.com/mredies",
      "source_url": "https://github.com/mredies",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "nedtaylor": {
      "login": "nedtaylor",
      "display_name": "Ned Taylor",
      "account_type": "User",
      "profile_url": "https://github.com/nedtaylor",
      "source_url": "https://github.com/nedtaylor",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "nekstab": {
      "login": "nekstab",
      "display_name": "nekStab",
      "account_type": "Organization",
      "profile_url": "https://github.com/nekstab",
      "source_url": "https://github.com/nekstab",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "nicholaswogan": {
      "login": "nicholaswogan",
      "display_name": "Nick Wogan",
      "account_type": "User",
      "profile_url": "https://github.com/nicholaswogan",
      "source_url": "https://github.com/nicholaswogan",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "ofmla": {
      "login": "ofmla",
      "display_name": "Oscar Mojica",
      "account_type": "User",
      "profile_url": "https://github.com/ofmla",
      "source_url": "https://github.com/ofmla",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "opencollab": {
      "login": "opencollab",
      "display_name": "opencollab",
      "account_type": "Organization",
      "profile_url": "https://github.com/opencollab",
      "source_url": "https://github.com/opencollab",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "perazz": {
      "login": "perazz",
      "display_name": "Federico Perini",
      "account_type": "User",
      "profile_url": "https://github.com/perazz",
      "source_url": "https://github.com/perazz",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "pierugit": {
      "login": "pierugit",
      "display_name": null,
      "account_type": "User",
      "profile_url": "https://github.com/pierugit",
      "source_url": "https://github.com/pierugit",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "plplot": {
      "login": "PLplot",
      "display_name": null,
      "account_type": "Organization",
      "profile_url": "https://github.com/PLplot",
      "retrieved_at": "2026-10-30T17:14:57.421749+00:00",
      "source_url": "https://api.github.com/users/plplot"
    },
    "princemahajan": {
      "login": "princemahajan",
      "display_name": "Bharat Mahajan",
      "account_type": "User",
      "profile_url": "https://github.com/princemahajan",
      "source_url": "https://github.com/princemahajan",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "reinh-bader": {
      "login": "reinh-bader",
      "display_name": null,
      "account_type": "User",
      "profile_url": "https://github.com/reinh-bader",
      "source_url": "https://github.com/reinh-bader",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "renatomatz": {
      "login": "renatomatz",
      "display_name": "Renato Zimmermann",
      "account_type": "User",
      "profile_url": "https://github.com/renatomatz",
      "source_url": "https://github.com/renatomatz",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "rjabi": {
      "login": "rjabi",
      "display_name": "Ryan Bignell",
      "account_type": "User",
      "profile_url": "https://github.com/rjabi",
      "source_url": "https://github.com/rjabi",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "samharrison7": {
      "login": "samharrison7",
      "display_name": "Sam Harrison",
      "account_type": "User",
      "profile_url": "https://github.com/samharrison7",
      "source_url": "https://github.com/samharrison7",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "scientific-computing": {
      "login": "scientific-computing",
      "display_name": "Scientific Computing",
      "account_type": "Organization",
      "profile_url": "https://github.com/scientific-computing",
      "source_url": "https://github.com/scientific-computing",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "scifortran": {
      "login": "scifortran",
      "display_name": "SciFortran",
      "account_type": "Organization",
      "profile_url": "https://github.com/scifortran",
      "source_url": "https://github.com/scifortran",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "scipy": {
      "login": "scipy",
      "display_name": "SciPy",
      "account_type": "Organization",
      "profile_url": "https://github.com/scipy",
      "source_url": "https://github.com/scipy",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "scivision": {
      "login": "scivision",
      "display_name": null,
      "account_type": "User",
      "profile_url": "https://github.com/scivision",
      "source_url": "https://github.com/scivision",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "scm-nv": {
      "login": "scm-nv",
      "display_name": "SCM - Software for Chemistry and Materials",
      "account_type": "Organization",
      "profile_url": "https://github.com/scm-nv",
      "source_url": "https://github.com/scm-nv",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "sebastiandyrda": {
      "login": "sebastiandyrda",
      "display_name": "Sebastian Dyrda",
      "account_type": "User",
      "profile_url": "https://github.com/sebastiandyrda",
      "source_url": "https://github.com/sebastiandyrda",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "shatrovoa": {
      "login": "shatrovoa",
      "display_name": "Oleg Shatrov",
      "account_type": "User",
      "profile_url": "https://github.com/shatrovoa",
      "source_url": "https://github.com/shatrovoa",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "shinobuamasaki": {
      "login": "shinobuamasaki",
      "display_name": "Amasaki Shinobu",
      "account_type": "User",
      "profile_url": "https://github.com/shinobuamasaki",
      "source_url": "https://github.com/shinobuamasaki",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "slicot": {
      "login": "slicot",
      "display_name": "SLICOT",
      "account_type": "Organization",
      "profile_url": "https://github.com/slicot",
      "source_url": "https://github.com/slicot",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "sourceryinstitute": {
      "login": "sourceryinstitute",
      "display_name": "sourceryinstitute",
      "account_type": "Organization",
      "profile_url": "https://github.com/sourceryinstitute",
      "source_url": "https://github.com/sourceryinstitute",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "st-maxwell": {
      "login": "st-maxwell",
      "display_name": "St Maxwell",
      "account_type": "User",
      "profile_url": "https://github.com/st-maxwell",
      "source_url": "https://github.com/st-maxwell",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "swig-fortran": {
      "login": "swig-fortran",
      "display_name": "SWIG-Fortran",
      "account_type": "Organization",
      "profile_url": "https://github.com/swig-fortran",
      "source_url": "https://github.com/swig-fortran",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "synthfi": {
      "login": "synthfi",
      "display_name": "Kelly Schultz",
      "account_type": "User",
      "profile_url": "https://github.com/synthfi",
      "source_url": "https://github.com/synthfi",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "szaghi": {
      "login": "szaghi",
      "display_name": "Stefano Zaghi",
      "account_type": "User",
      "profile_url": "https://github.com/szaghi",
      "source_url": "https://github.com/szaghi",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "toml-f": {
      "login": "toml-f",
      "display_name": "TOML Fortran project",
      "account_type": "Organization",
      "profile_url": "https://github.com/toml-f",
      "source_url": "https://github.com/toml-f",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "tueda": {
      "login": "tueda",
      "display_name": "Takahiro Ueda",
      "account_type": "User",
      "profile_url": "https://github.com/tueda",
      "source_url": "https://github.com/tueda",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "unidata": {
      "login": "unidata",
      "display_name": "NSF Unidata",
      "account_type": "Organization",
      "profile_url": "https://github.com/unidata",
      "source_url": "https://github.com/unidata",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "urbanjost": {
      "login": "urbanjost",
      "display_name": null,
      "account_type": "User",
      "profile_url": "https://github.com/urbanjost",
      "source_url": "https://github.com/urbanjost",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "vmagnin": {
      "login": "vmagnin",
      "display_name": "Vincent Magnin",
      "account_type": "User",
      "profile_url": "https://github.com/vmagnin",
      "source_url": "https://github.com/vmagnin",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "vtopt": {
      "login": "vtopt",
      "display_name": "VTopt",
      "account_type": "Organization",
      "profile_url": "https://github.com/vtopt",
      "source_url": "https://github.com/vtopt",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "warrenweckesser": {
      "login": "warrenweckesser",
      "display_name": "Warren Weckesser",
      "account_type": "User",
      "profile_url": "https://github.com/warrenweckesser",
      "source_url": "https://github.com/warrenweckesser",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "wavebitscientific": {
      "login": "wavebitscientific",
      "display_name": "Wavebit Scientific",
      "account_type": "Organization",
      "profile_url": "https://github.com/wavebitscientific",
      "source_url": "https://github.com/wavebitscientific",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "wcota": {
      "login": "wcota",
      "display_name": "Wesley Cota",
      "account_type": "User",
      "profile_url": "https://github.com/wcota",
      "source_url": "https://github.com/wcota",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "willdickson": {
      "login": "willdickson",
      "display_name": "Will Dickson",
      "account_type": "User",
      "profile_url": "https://github.com/willdickson",
      "source_url": "https://github.com/willdickson",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "william-dawson": {
      "login": "william-dawson",
      "display_name": null,
      "account_type": "User",
      "profile_url": "https://github.com/william-dawson",
      "source_url": "https://github.com/william-dawson",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "willklausler": {
      "login": "willklausler",
      "display_name": "Will Klausler",
      "account_type": "User",
      "profile_url": "https://github.com/willklausler",
      "source_url": "https://github.com/willklausler",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "ylikx": {
      "login": "ylikx",
      "display_name": "Elias Rabel",
      "account_type": "User",
      "profile_url": "https://github.com/ylikx",
      "source_url": "https://github.com/ylikx",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "zaneham": {
      "login": "zaneham",
      "display_name": "Zane Hambly",
      "account_type": "User",
      "profile_url": "https://github.com/zaneham",
      "source_url": "https://github.com/zaneham",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "zerothi": {
      "login": "zerothi",
      "display_name": "Nick Papior",
      "account_type": "User",
      "profile_url": "https://github.com/zerothi",
      "source_url": "https://github.com/zerothi",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "zgimbutas": {
      "login": "zgimbutas",
      "display_name": "Zydrunas Gimbutas",
      "account_type": "User",
      "profile_url": "https://github.com/zgimbutas",
      "source_url": "https://github.com/zgimbutas",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    },
    "zoziha": {
      "login": "zoziha",
      "display_name": "ZUO Zhihua",
      "account_type": "User",
      "profile_url": "https://github.com/zoziha",
      "source_url": "https://github.com/zoziha",
      "retrieved_at": "2026-10-30T15:48:13.641855+00:00"
    }
  },
  "attributions": {
    "schema": 1,
    "owner_names": {
      "lauvergn": {
        "name": "David Lauvergnat",
        "status": "inferred",
        "scope": "Possible account-to-person connection; not used as an owner display-name override.",
        "rationale": "The public source credits David Lauvergnat as author and copyright holder. This supports source authorship but does not independently establish the identity behind the repository-owner account.",
        "reviewed_on": "2026-10-30",
        "evidence": [
          {
            "url": "https://github.com/lauvergn/AD_dnSVM/blob/32db0bd122ce1dae290e9cf4c1fda4ab8f3de6f1/APP/Example_dnS.f90#L53",
            "description": "Explicit public author credit in the pinned example source."
          }
        ]
      }
    },
    "project_authors": {
      "github:lauvergn/ad_dnsvm": [
        {
          "name": "David Lauvergnat",
          "status": "confirmed",
          "scope": "Author credited in APP/Example_dnS.f90.",
          "rationale": "The pinned example explicitly names David Lauvergnat in its author annotation and copyright notice. This records the stated source credit, not sole authorship of the package or ownership of the GitHub account.",
          "reviewed_on": "2026-10-30",
          "evidence": [
            {
              "url": "https://github.com/lauvergn/AD_dnSVM/blob/32db0bd122ce1dae290e9cf4c1fda4ab8f3de6f1/APP/Example_dnS.f90#L53",
              "description": "Explicit author annotation."
            },
            {
              "url": "https://github.com/lauvergn/AD_dnSVM/blob/32db0bd122ce1dae290e9cf4c1fda4ab8f3de6f1/APP/Example_dnS.f90#L8",
              "description": "Copyright notice naming the same author."
            }
          ]
        }
      ]
    }
  },
  "snapshot_id": "sha256:f14de5de5c6c1d9bc95ce239f66d94cc15febc5c88e412e1de590b1ce5e2442a"
}
