{"id":264,"name":"FTorch","description":"FTorch: a library for coupling PyTorch models to Fortran - Published in JOSS (2025)","url":"https://github.com/cambridge-iccs/ftorch","last_synced_at":"2025-09-04T15:58:06.366Z","repository":{"id":61432132,"uuid":"551546945","full_name":"Cambridge-ICCS/FTorch","owner":"Cambridge-ICCS","description":"A library for directly calling PyTorch ML models from Fortran.","archived":false,"fork":false,"pushed_at":"2025-08-26T08:52:59.000Z","size":10128,"stargazers_count":137,"open_issues_count":69,"forks_count":29,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-08-29T18:12:55.678Z","etag":null,"topics":["deep-learning","fortran","hacktoberfest","interoperability","libtorch","machine-learning","python","pytorch","torch"],"latest_commit_sha":null,"homepage":"https://cambridge-iccs.github.io/FTorch/","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cambridge-ICCS.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-10-14T15:56:34.000Z","updated_at":"2025-08-16T16:28:03.000Z","dependencies_parsed_at":"2023-11-21T14:44:46.336Z","dependency_job_id":"730543ec-8e30-492e-b842-53b342f860d4","html_url":"https://github.com/Cambridge-ICCS/FTorch","commit_stats":{"total_commits":131,"total_committers":12,"mean_commits":"10.916666666666666","dds":0.6030534351145038,"last_synced_commit":"2653bf80d0b807786df72e9ca701208e3ba8f510"},"previous_names":["cambridge-iccs/ftorch","cambridge-iccs/fortran-pytorch-lib"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Cambridge-ICCS/FTorch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cambridge-ICCS%2FFTorch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cambridge-ICCS%2FFTorch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cambridge-ICCS%2FFTorch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cambridge-ICCS%2FFTorch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cambridge-ICCS","download_url":"https://codeload.github.com/Cambridge-ICCS/FTorch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cambridge-ICCS%2FFTorch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273589294,"owners_count":25132860,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"Cambridge-ICCS","name":"Institute of Computing for Climate Science","uuid":"97293575","kind":"organization","description":"Institute of Computing for Climate Science at the University of Cambridge","email":null,"website":"https://cambridge-iccs.github.io/","location":null,"twitter":"Cambridge_ICCS","company":null,"icon_url":"https://avatars.githubusercontent.com/u/97293575?v=4","repositories_count":8,"last_synced_at":"2023-03-05T02:54:20.742Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/Cambridge-ICCS","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-15T04:48:47.535Z","updated_at":"2023-03-05T02:54:20.769Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cambridge-ICCS","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cambridge-ICCS/repositories"},"packages":[],"commits":{"id":1397313,"full_name":"Cambridge-ICCS/FTorch","default_branch":"main","committers":[{"name":"jatkinson1000","email":"109271713+jatkinson1000","login":"jatkinson1000","count":152},{"name":"Joe Wallwork","email":"22053413+jwallwork23","login":"jwallwork23","count":105},{"name":"tommelt","email":"thomas.meltzer1@gmail.com","login":"TomMelt","count":38},{"name":"ElliottKasoar","email":"ElliottKasoar","login":"ElliottKasoar","count":37},{"name":"Dominic Orchard","email":"dom.orchard@gmail.com","login":"dorchard","count":19},{"name":"Athena Elafrou","email":"ae488@cam.ac.uk","login":null,"count":15},{"name":"Niccolò Zanotti","email":"74741715+niccolozanotti","login":"niccolozanotti","count":10},{"name":"Simon Clifford","email":"sjc306@cam.ac.uk","login":"SimonClifford","count":5},{"name":"Mikolaj-A-Kowalski","email":"32641577+Mikolaj-A-Kowalski","login":"Mikolaj-A-Kowalski","count":2},{"name":"Daniel S. Katz","email":"d.katz@ieee.org","login":"danielskatz","count":1},{"name":"helgehr","email":"38046421+helgehr","login":"helgehr","count":1},{"name":"mondus","email":"p.richmond@sheffield.ac.uk","login":"mondus","count":1},{"name":"vopikamm","email":"39192175+vopikamm","login":"vopikamm","count":1},{"name":"Simon Clifford","email":"s.clifford@imperial.ac.uk","login":null,"count":1}],"total_commits":388,"total_committers":14,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":27.714285714285715,"dds":0.6082474226804124,"past_year_committers":[{"name":"Joe Wallwork","email":"22053413+jwallwork23","login":"jwallwork23","count":70},{"name":"Jack Atkinson","email":"jwa34@cam.ac.uk","login":"jatkinson1000","count":60},{"name":"tommelt","email":"thomas.meltzer1@gmail.com","login":"TomMelt","count":28},{"name":"Niccolò Zanotti","email":"74741715+niccolozanotti","login":"niccolozanotti","count":10},{"name":"Dominic Orchard","email":"dom.orchard@gmail.com","login":"dorchard","count":4},{"name":"Mikolaj-A-Kowalski","email":"32641577+Mikolaj-A-Kowalski","login":"Mikolaj-A-Kowalski","count":2},{"name":"Daniel S. Katz","email":"d.katz@ieee.org","login":"danielskatz","count":1}],"past_year_total_commits":175,"past_year_total_committers":7,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":25.0,"past_year_dds":0.6,"last_synced_at":"2025-08-07T05:52:01.757Z","last_synced_commit":"46f4bc855e35550af3603b587fd57d9ff78233da","created_at":"2023-10-05T12:34:48.765Z","updated_at":"2025-08-07T05:52:01.961Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cambridge-ICCS%2FFTorch/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-08-30T00:00:08.254Z","repositories_count":5479765,"commits_count":853310318,"contributors_count":31095240,"owners_count":906558,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"Cambridge-ICCS/FTorch","html_url":"https://github.com/Cambridge-ICCS/FTorch","last_synced_at":"2025-09-04T14:44:18.966Z","status":"active","issues_count":159,"pull_requests_count":288,"avg_time_to_close_issue":5400036.263736264,"avg_time_to_close_pull_request":1366243.7662337662,"issues_closed_count":91,"pull_requests_closed_count":231,"pull_request_authors_count":17,"issue_authors_count":23,"avg_comments_per_issue":1.371069182389937,"avg_comments_per_pull_request":1.4826388888888888,"merged_pull_requests_count":204,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":87,"past_year_pull_requests_count":221,"past_year_avg_time_to_close_issue":1597451.8695652173,"past_year_avg_time_to_close_pull_request":639595.9378531073,"past_year_issues_closed_count":46,"past_year_pull_requests_closed_count":177,"past_year_pull_request_authors_count":9,"past_year_issue_authors_count":12,"past_year_avg_comments_per_issue":0.9195402298850575,"past_year_avg_comments_per_pull_request":1.3212669683257918,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":159,"created_at":"2023-10-05T12:34:51.266Z","updated_at":"2025-09-04T14:44:18.966Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cambridge-ICCS%2FFTorch","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cambridge-ICCS%2FFTorch/issues","issue_labels_count":{"enhancement":37,"documentation":37,"bug":31,"autograd":20,"testing":15,"good first issue":10,"hackathon":9,"gpu":9,"question":5,"build":4,"online-training":4,"potential placement":1,"help wanted":1},"pull_request_labels_count":{"documentation":64,"enhancement":50,"bug":40,"autograd":38,"testing":36,"hackathon":9,"gpu":9,"good first issue":4,"build":1,"Hacktoberfest":1},"issue_author_associations_count":{"MEMBER":66,"CONTRIBUTOR":53,"COLLABORATOR":24,"NONE":16},"pull_request_author_associations_count":{"MEMBER":116,"COLLABORATOR":99,"CONTRIBUTOR":66,"NONE":7},"issue_authors":{"jatkinson1000":57,"jwallwork23":53,"ElliottKasoar":11,"TomMelt":7,"ma595":4,"mondus":4,"dorchard":3,"IsidreMas":2,"niccolozanotti":2,"timothyas":2,"SimonClifford":2,"nckxneoro52449":1,"anand-me":1,"christopheredsall":1,"siddanib":1,"vbalmer":1,"ch21d012":1,"Mikolaj-A-Kowalski":1,"smhassanerfani":1,"matthewfeickert":1,"lm2612":1,"vopikamm":1,"KingLLee":1},"pull_request_authors":{"jwallwork23":124,"jatkinson1000":97,"niccolozanotti":16,"TomMelt":16,"dorchard":9,"ElliottKasoar":8,"Mikolaj-A-Kowalski":5,"aysha2016":3,"ma595":2,"danielskatz":1,"mondus":1,"helgehr":1,"zhenkunl":1,"vopikamm":1,"vbalmer":1,"christopheredsall":1,"SimonClifford":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-04T00:00:25.939Z","repositories_count":10080233,"issues_count":31311624,"pull_requests_count":96148338,"authors_count":10693059,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"autograd":20,"enhancement":19,"documentation":17,"bug":17,"testing":15,"gpu":9,"good first issue":5,"build":4,"hackathon":4,"question":4,"online-training":2},"past_year_pull_request_labels_count":{"documentation":49,"autograd":37,"testing":35,"bug":32,"enhancement":31,"gpu":9,"hackathon":5,"build":1,"good first issue":1,"Hacktoberfest":1},"past_year_issue_author_associations_count":{"MEMBER":34,"CONTRIBUTOR":25,"COLLABORATOR":22,"NONE":6},"past_year_pull_request_author_associations_count":{"COLLABORATOR":98,"MEMBER":86,"CONTRIBUTOR":36,"NONE":1},"past_year_issue_authors":{"jwallwork23":43,"jatkinson1000":25,"ma595":4,"TomMelt":4,"IsidreMas":2,"niccolozanotti":2,"timothyas":2,"anand-me":1,"dorchard":1,"matthewfeickert":1,"Mikolaj-A-Kowalski":1,"smhassanerfani":1},"past_year_pull_request_authors":{"jwallwork23":110,"jatkinson1000":69,"niccolozanotti":16,"TomMelt":12,"dorchard":5,"Mikolaj-A-Kowalski":5,"ma595":2,"zhenkunl":1,"danielskatz":1},"maintainers":[{"login":"jatkinson1000","count":154,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jatkinson1000"},{"login":"jwallwork23","count":102,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jwallwork23"},{"login":"niccolozanotti","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/niccolozanotti"},{"login":"TomMelt","count":17,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/TomMelt"},{"login":"ma595","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ma595"},{"login":"dorchard","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dorchard"},{"login":"SimonClifford","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/SimonClifford"}],"active_maintainers":[{"login":"jwallwork23","count":102,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jwallwork23"},{"login":"jatkinson1000","count":94,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jatkinson1000"},{"login":"niccolozanotti","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/niccolozanotti"},{"login":"TomMelt","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/TomMelt"},{"login":"ma595","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ma595"},{"login":"dorchard","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dorchard"}]},"events":{"total":{"ForkEvent":13,"CreateEvent":119,"CommitCommentEvent":1,"ReleaseEvent":1,"IssuesEvent":137,"WatchEvent":55,"DeleteEvent":119,"MemberEvent":2,"IssueCommentEvent":370,"PushEvent":847,"PullRequestReviewCommentEvent":461,"PullRequestReviewEvent":550,"PullRequestEvent":238},"last_year":{"ForkEvent":13,"CreateEvent":121,"CommitCommentEvent":1,"ReleaseEvent":1,"IssuesEvent":137,"WatchEvent":55,"DeleteEvent":119,"MemberEvent":2,"IssueCommentEvent":370,"PushEvent":848,"PullRequestReviewCommentEvent":461,"PullRequestReviewEvent":550,"PullRequestEvent":240}},"keywords":["deep-learning","fortran","hacktoberfest","interoperability","libtorch","machine-learning","python","pytorch","torch"],"dependencies":[{"ecosystem":"pypi","filepath":"examples/n_c_and_cpp/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-09-26T17:55:49.729Z","updated_at":"2023-09-26T17:55:49.729Z","repository_link":"https://github.com/Cambridge-ICCS/FTorch/blob/main/examples/n_c_and_cpp/requirements.txt","dependencies":[{"id":13955217516,"package_name":"torch","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13955217517,"package_name":"torchvision","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"examples/1_SimpleNet/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-10-11T17:01:46.045Z","updated_at":"2023-10-11T17:01:46.045Z","repository_link":"https://github.com/Cambridge-ICCS/FTorch/blob/main/examples/1_SimpleNet/requirements.txt","dependencies":[{"id":14153891403,"package_name":"torch","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"examples/2_ResNet18/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-10-11T17:01:46.071Z","updated_at":"2023-10-11T17:01:46.071Z","repository_link":"https://github.com/Cambridge-ICCS/FTorch/blob/main/examples/2_ResNet18/requirements.txt","dependencies":[{"id":14153891404,"package_name":"torch","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":14153891405,"package_name":"torchvision","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/python_qc.yaml","sha":null,"kind":"manifest","created_at":"2023-11-21T14:44:45.936Z","updated_at":"2023-11-21T14:44:45.936Z","repository_link":"https://github.com/Cambridge-ICCS/FTorch/blob/main/.github/workflows/python_qc.yaml","dependencies":[{"id":14638396159,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":14638396160,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":14638396161,"package_name":"psf/black","ecosystem":"actions","requirements":"stable","direct":true,"kind":"composite","optional":false}]}],"score":7.96693349840484,"created_at":"2025-09-04T09:17:32.382Z","updated_at":"2025-10-07T08:04:24.071Z","avatar_url":"https://github.com/Cambridge-ICCS.png","language":"Fortran","category":"Scientific Software","sub_category":"Peer-reviewed","monthly_downloads":0,"funding_links":[],"readme_doi_urls":["https://doi.org/10.21105/joss.07602","https://doi.org/10.1029/2024MS004292","https://doi.org/10.1029/2024MS004398","https://doi.org/10.3390/atmos16010060","https://doi.org/10.1029%2F2024MS004618"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/264","html_url":"https://science.ecosyste.ms/projects/264","bibtex_url":"https://science.ecosyste.ms/projects/264/export.bibtex","apalike_url":"https://science.ecosyste.ms/projects/264/export.apalike"}