{"id":350828,"name":"ClimaOcean.jl","description":"A framework for realistic ocean-only and coupled ocean + sea-ice simulations driven by prescribed atmospheres and based on Oceananigans and ClimaSeaIce.","url":"https://github.com/clima/climaocean.jl","last_synced_at":"2026-05-12T12:30:22.009Z","repository":{"id":61573013,"uuid":"552121954","full_name":"CliMA/ClimaOcean.jl","owner":"CliMA","description":"🌎 Regional-to-global coupled ocean and sea ice simulations based on Oceananigans","archived":false,"fork":false,"pushed_at":"2026-05-01T19:27:04.000Z","size":4886,"stargazers_count":62,"open_issues_count":135,"forks_count":29,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-05-03T08:05:23.132Z","etag":null,"topics":["climate-model","fluid-dynamics","fluid-dynamics-simulator","machine-learning","ocean-modelling"],"latest_commit_sha":null,"homepage":"https://clima.github.io/ClimaOceanDocumentation/stable/","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CliMA.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-15T21:43:56.000Z","updated_at":"2026-05-01T19:27:08.000Z","dependencies_parsed_at":"2023-10-14T19:32:56.607Z","dependency_job_id":"38f96daa-81e1-44d5-afed-b90abf0bc3a4","html_url":"https://github.com/CliMA/ClimaOcean.jl","commit_stats":{"total_commits":219,"total_committers":5,"mean_commits":43.8,"dds":"0.36986301369863017","last_synced_commit":"9125cb5e59334c3705879424952fb0582b98ed3b"},"previous_names":[],"tags_count":63,"template":false,"template_full_name":null,"purl":"pkg:github/CliMA/ClimaOcean.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CliMA","download_url":"https://codeload.github.com/CliMA/ClimaOcean.jl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32642293,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"online","status_checked_at":"2026-05-05T02:00:06.033Z","response_time":54,"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":"CliMA","name":"Climate Modeling Alliance","uuid":"43161188","kind":"organization","description":"An alliance of scientists, engineers and applied mathematicians, dedicated to pioneering a new, data-informed approach to climate modeling","email":"clima@caltech.edu","website":"https://clima.caltech.edu","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/43161188?v=4","repositories_count":67,"last_synced_at":"2023-03-03T21:04:27.588Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/CliMA","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-14T05:33:59.075Z","updated_at":"2023-03-03T21:04:27.734Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CliMA","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CliMA/repositories"},"packages":[{"id":9722798,"name":"ClimaOcean","ecosystem":"julia","description":"🌎 Regional-to-global coupled ocean and sea ice simulations based on Oceananigans","homepage":"https://clima.github.io/ClimaOceanDocumentation/stable/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/CliMA/ClimaOcean.jl","keywords_array":["climate-model","fluid-dynamics","fluid-dynamics-simulator","machine-learning","ocean-modelling"],"namespace":null,"versions_count":60,"first_release_published_at":"2024-03-25T08:15:06.000Z","latest_release_published_at":"2026-03-01T00:00:00.000Z","latest_release_number":"0.9.4","last_synced_at":"2026-04-01T03:57:50.842Z","created_at":"2024-04-12T12:19:21.741Z","updated_at":"2026-04-01T03:57:51.050Z","registry_url":"https://juliahub.com/ui/Packages/General/ClimaOcean/","install_command":"Pkg.add(\"ClimaOcean\")","documentation_url":"https://docs.juliahub.com/General/ClimaOcean/stable/","metadata":{"uuid":"0376089a-ecfe-4b0e-a64f-9c555d74d754"},"repo_metadata":{"id":61573013,"uuid":"552121954","full_name":"CliMA/ClimaOcean.jl","owner":"CliMA","description":"🌎 Regional-to-global coupled ocean and sea ice simulations based on Oceananigans","archived":false,"fork":false,"pushed_at":"2025-10-28T08:16:48.000Z","size":4358,"stargazers_count":53,"open_issues_count":118,"forks_count":22,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-10-28T10:13:43.617Z","etag":null,"topics":["climate-model","fluid-dynamics","fluid-dynamics-simulator","machine-learning","ocean-modelling"],"latest_commit_sha":null,"homepage":"https://clima.github.io/ClimaOceanDocumentation/stable/","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CliMA.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-15T21:43:56.000Z","updated_at":"2025-10-16T21:15:26.000Z","dependencies_parsed_at":"2023-10-14T19:32:56.607Z","dependency_job_id":"e26fd095-c322-42fb-8e4d-3bcdd6bd05f9","html_url":"https://github.com/CliMA/ClimaOcean.jl","commit_stats":{"total_commits":219,"total_committers":5,"mean_commits":43.8,"dds":"0.36986301369863017","last_synced_commit":"9125cb5e59334c3705879424952fb0582b98ed3b"},"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"purl":"pkg:github/CliMA/ClimaOcean.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CliMA","download_url":"https://codeload.github.com/CliMA/ClimaOcean.jl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281510924,"owners_count":26514195,"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-10-28T02:00:06.022Z","response_time":60,"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_record":{"login":"CliMA","name":"Climate Modeling Alliance","uuid":"43161188","kind":"organization","description":"An alliance of scientists, engineers and applied mathematicians, dedicated to pioneering a new, data-informed approach to climate modeling","email":"clima@caltech.edu","website":"https://clima.caltech.edu","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/43161188?v=4","repositories_count":67,"last_synced_at":"2023-03-03T21:04:27.588Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/CliMA","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-14T05:33:59.075Z","updated_at":"2023-03-03T21:04:27.734Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CliMA","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CliMA/repositories"},"tags":[]},"repo_metadata_updated_at":"2026-04-01T03:57:49.325Z","dependent_packages_count":0,"downloads":3485,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":9.576444361879993,"dependent_packages_count":38.64945197845068,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":24.112948170165335},"purl":"pkg:julia/ClimaOcean","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/julia/ClimaOcean","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/julia/ClimaOcean","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/julia/ClimaOcean/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-22T12:06:41.666Z","issues_count":179,"pull_requests_count":654,"avg_time_to_close_issue":3401553.7974683545,"avg_time_to_close_pull_request":1446140.15625,"issues_closed_count":79,"pull_requests_closed_count":544,"pull_request_authors_count":23,"issue_authors_count":19,"avg_comments_per_issue":2.111731843575419,"avg_comments_per_pull_request":3.180428134556575,"merged_pull_requests_count":437,"bot_issues_count":0,"bot_pull_requests_count":55,"past_year_issues_count":121,"past_year_pull_requests_count":507,"past_year_avg_time_to_close_issue":1313175.5357142857,"past_year_avg_time_to_close_pull_request":448244.9290953545,"past_year_issues_closed_count":56,"past_year_pull_requests_closed_count":409,"past_year_pull_request_authors_count":21,"past_year_issue_authors_count":17,"past_year_avg_comments_per_issue":2.2644628099173554,"past_year_avg_comments_per_pull_request":2.978303747534517,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":22,"past_year_merged_pull_requests_count":341,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl/issues","maintainers":[{"login":"glwagner","count":271,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glwagner"},{"login":"simone-silvestri","count":240,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/simone-silvestri"},{"login":"navidcy","count":143,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/navidcy"},{"login":"taimoorsohail","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/taimoorsohail"},{"login":"xkykai","count":12,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/xkykai"},{"login":"Sbozzolo","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Sbozzolo"},{"login":"giordano","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/giordano"},{"login":"NoraLoose","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/NoraLoose"},{"login":"nefrathenrici","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nefrathenrici"},{"login":"juliasloan25","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/juliasloan25"},{"login":"szy21","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/szy21"}],"active_maintainers":[{"login":"simone-silvestri","count":198,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/simone-silvestri"},{"login":"glwagner","count":177,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glwagner"},{"login":"navidcy","count":124,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/navidcy"},{"login":"taimoorsohail","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/taimoorsohail"},{"login":"xkykai","count":12,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/xkykai"},{"login":"giordano","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/giordano"},{"login":"NoraLoose","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/NoraLoose"},{"login":"Sbozzolo","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Sbozzolo"},{"login":"nefrathenrici","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nefrathenrici"},{"login":"juliasloan25","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/juliasloan25"},{"login":"szy21","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/szy21"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages/ClimaOcean/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages/ClimaOcean/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages/ClimaOcean/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages/ClimaOcean/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages/ClimaOcean/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages/ClimaOcean/codemeta","maintainers":[],"registry":{"name":"juliahub.com","url":"https://juliahub.com","ecosystem":"julia","default":true,"packages_count":13689,"maintainers_count":0,"namespaces_count":0,"keywords_count":0,"github":"JuliaRegistries","metadata":{"funded_packages_count":851},"icon_url":"https://github.com/JuliaRegistries.png","created_at":"2022-04-19T16:34:08.340Z","updated_at":"2026-04-03T06:47:58.091Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/namespaces"}}],"commits":{"id":1350291,"full_name":"CliMA/ClimaOcean.jl","default_branch":"main","total_commits":645,"total_committers":26,"total_bot_commits":23,"total_bot_committers":2,"mean_commits":24.807692307692307,"dds":0.6108527131782946,"past_year_total_commits":166,"past_year_total_committers":15,"past_year_total_bot_commits":13,"past_year_total_bot_committers":2,"past_year_mean_commits":11.066666666666666,"past_year_dds":0.6746987951807228,"last_synced_at":"2026-05-11T00:33:26.783Z","last_synced_commit":"f81819dae157cf14e9448beb10adf8b74511a0a5","created_at":"2023-09-12T10:48:20.506Z","updated_at":"2026-05-11T00:33:12.855Z","committers":[{"name":"Gregory Wagner","email":"wagner.greg@gmail.com","login":"glwagner","count":251},{"name":"Simone Silvestri","email":"silvestri.simone0@gmail.com","login":"simone-silvestri","count":176},{"name":"Navid C. Constantinou","email":"navidcy","login":"navidcy","count":121},{"name":"github-actions[bot]","email":"41898282+github-actions[bot]","login":"github-actions[bot]","count":20},{"name":"Julia Sloan","email":"51397186+juliasloan25","login":"juliasloan25","count":16},{"name":"Jago Strong-Wright","email":"jagoosw@protonmail.com","login":"jagoosw","count":9},{"name":"CompatHelper Julia","email":"compathelper_noreply@julialang.org","login":null,"count":7},{"name":"Taimoor Sohail","email":"taimoorsohail@gmail.com","login":"taimoorsohail","count":7},{"name":"Xin Kai Lee","email":"50624521+xkykai","login":"xkykai","count":7},{"name":"Simon Byrne","email":"simonbyrne@gmail.com","login":"simonbyrne","count":6},{"name":"Gabriele Bozzola","email":"gbozzola@caltech.edu","login":"Sbozzolo","count":5},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":3},{"name":"Dave Rumph","email":"60712318+daverumph","login":"daverumph","count":2},{"name":"Jonathan Lauderdale","email":"jonathan.lauderdale@gmail.com","login":"seamanticscience","count":2},{"name":"Nora Loose","email":"NoraLoose","login":"NoraLoose","count":2},{"name":"John Eismeier","email":"42679190+jeis4wpi","login":"jeis4wpi","count":1},{"name":"Josué Martínez Moreno","email":"josue.mtzmo@gmail.com","login":"josuemtzmo","count":1},{"name":"Kevin Broughan","email":"broughan.kevin@gmail.com","login":"waywardpidgeon","count":1},{"name":"Michel Schanen","email":"michel.schanen@gmail.com","login":"michel2323","count":1},{"name":"Mosè Giordano","email":"765740+giordano","login":"giordano","count":1},{"name":"Nat Efrat-Henrici","email":"60049837+nefrathenrici","login":"nefrathenrici","count":1},{"name":"Steve Penny","email":"StevePny","login":"StevePny","count":1},{"name":"Tapio Schneider","email":"tapio@caltech.edu","login":"tapios","count":1},{"name":"Valentin Churavy","email":"vchuravy","login":"vchuravy","count":1},{"name":"William Moses","email":"gh@wsmoses.com","login":"wsmoses","count":1},{"name":"Zhaoyi Shen","email":"11598433+szy21","login":"szy21","count":1}],"past_year_committers":[{"name":"Simone Silvestri","email":"silvestri.simone0@gmail.com","login":"simone-silvestri","count":54},{"name":"Navid C. Constantinou","email":"navidcy","login":"navidcy","count":45},{"name":"Gregory L. Wagner","email":"wagner.greg@gmail.com","login":"glwagner","count":21},{"name":"Julia Sloan","email":"51397186+juliasloan25","login":"juliasloan25","count":16},{"name":"github-actions[bot]","email":"41898282+github-actions[bot]","login":"github-actions[bot]","count":11},{"name":"Xin Kai Lee","email":"50624521+xkykai","login":"xkykai","count":7},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":2},{"name":"Taimoor Sohail","email":"taimoorsohail@gmail.com","login":"taimoorsohail","count":2},{"name":"Dave Rumph","email":"60712318+daverumph","login":"daverumph","count":2},{"name":"Zhaoyi Shen","email":"11598433+szy21","login":"szy21","count":1},{"name":"Tapio Schneider","email":"tapio@caltech.edu","login":"tapios","count":1},{"name":"Nat Efrat-Henrici","email":"60049837+nefrathenrici","login":"nefrathenrici","count":1},{"name":"Josué Martínez Moreno","email":"josue.mtzmo@gmail.com","login":"josuemtzmo","count":1},{"name":"Jonathan Lauderdale","email":"jonathan.lauderdale@gmail.com","login":"seamanticscience","count":1},{"name":"John Eismeier","email":"42679190+jeis4wpi","login":"jeis4wpi","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-11T00:00:23.725Z","repositories_count":6232531,"commits_count":895044206,"contributors_count":34895384,"owners_count":1151502,"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":"CliMA/ClimaOcean.jl","html_url":"https://github.com/CliMA/ClimaOcean.jl","last_synced_at":"2026-05-08T15:19:03.206Z","status":"active","issues_count":182,"pull_requests_count":670,"avg_time_to_close_issue":3358541.175,"avg_time_to_close_pull_request":1450196.52079566,"issues_closed_count":80,"pull_requests_closed_count":553,"pull_request_authors_count":26,"issue_authors_count":22,"avg_comments_per_issue":2.8241758241758244,"avg_comments_per_pull_request":3.1149253731343283,"merged_pull_requests_count":444,"bot_issues_count":1,"bot_pull_requests_count":63,"past_year_issues_count":37,"past_year_pull_requests_count":140,"past_year_avg_time_to_close_issue":2934333.727272727,"past_year_avg_time_to_close_pull_request":398944.69,"past_year_issues_closed_count":11,"past_year_pull_requests_closed_count":100,"past_year_pull_request_authors_count":14,"past_year_issue_authors_count":14,"past_year_avg_comments_per_issue":2.675675675675676,"past_year_avg_comments_per_pull_request":2.757142857142857,"past_year_bot_issues_count":1,"past_year_bot_pull_requests_count":20,"past_year_merged_pull_requests_count":88,"created_at":"2023-09-12T10:48:51.650Z","updated_at":"2026-05-08T15:19:03.206Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/CliMA%2FClimaOcean.jl/issues","issue_labels_count":{"data wrangling":15,"bug":13,"documentation":10,"bathymetry ⛰️":8,"question":7,"user interface":6,"tests":5,"global simulations 🌎":5,"enhancement":3,"help wanted":2,"performance":2,"SDI":1,"sea ice 🧊":1,"extensions 🧬":1,"tagbot-manual":1,"ice-ocean coupling🧊 🌊":1,"output 💾":1,"cleanup 🧹":1},"pull_request_labels_count":{"build docs":75,"documentation":40,"data wrangling":25,"bug":18,"cleanup 🧹":10,"enhancement":9,"Run examples":8,"tests":8,"Built Docs":8,"atmosphere-ocean coupling ⛅️ 🌊":8,"user interface":8,"bathymetry ⛰️":8,"🚨 DO NOT MERGE 🚨":6,"dependencies":6,"extensions 🧬":3,"github_actions":3,"output 💾":3,"ice-ocean coupling🧊 🌊":1,"global simulations 🌎":1},"issue_author_associations_count":{"MEMBER":81,"COLLABORATOR":69,"NONE":26,"CONTRIBUTOR":6},"pull_request_author_associations_count":{"COLLABORATOR":324,"MEMBER":250,"CONTRIBUTOR":58,"NONE":37,"OWNER":1},"issue_authors":{"glwagner":70,"navidcy":35,"simone-silvestri":24,"xkykai":9,"francispoulin":8,"taimoorsohail":8,"waywardpidgeon":7,"NoraLoose":3,"Sbozzolo":3,"sb4233":2,"uganzedo1974":2,"JuliaTagBot":1,"ffrancesco94":1,"kevinbroughan":1,"thopri":1,"michel2323":1,"github-actions[bot]":1,"seamanticscience":1,"juliasloan25":1,"vtamsitt":1,"ferhatelmas":1,"jlk9":1},"pull_request_authors":{"simone-silvestri":218,"glwagner":201,"navidcy":108,"github-actions[bot]":60,"taimoorsohail":20,"Sbozzolo":8,"giordano":6,"xkykai":4,"seamanticscience":4,"michel2323":4,"francispoulin":4,"juliasloan25":4,"vtamsitt":4,"dependabot[bot]":3,"NoraLoose":3,"waywardpidgeon":3,"StevePny":2,"jagoosw":2,"wsmoses":2,"nefrathenrici":2,"vchuravy":2,"the-ethan-hunt":2,"daverumph":1,"jeis4wpi":1,"szy21":1,"peterjuma":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-09T00:00:07.995Z","repositories_count":14542863,"issues_count":34244995,"pull_requests_count":112193959,"authors_count":11258212,"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":{"data wrangling":4,"help wanted":2,"global simulations 🌎":2,"tests":2,"bathymetry ⛰️":2,"performance":1,"question":1,"tagbot-manual":1,"user interface":1,"bug":1,"cleanup 🧹":1,"ice-ocean coupling🧊 🌊":1,"output 💾":1},"past_year_pull_request_labels_count":{"build docs":31,"documentation":17,"data wrangling":11,"atmosphere-ocean coupling ⛅️ 🌊":7,"cleanup 🧹":4,"bug":4,"dependencies":4,"enhancement":4,"user interface":2,"extensions 🧬":2,"bathymetry ⛰️":2,"🚨 DO NOT MERGE 🚨":1,"github_actions":1,"tests":1},"past_year_issue_author_associations_count":{"COLLABORATOR":18,"MEMBER":12,"NONE":6,"CONTRIBUTOR":1},"past_year_pull_request_author_associations_count":{"COLLABORATOR":58,"MEMBER":57,"CONTRIBUTOR":21,"NONE":4},"past_year_issue_authors":{"navidcy":9,"xkykai":7,"simone-silvestri":6,"glwagner":3,"taimoorsohail":3,"ferhatelmas":1,"ffrancesco94":1,"francispoulin":1,"github-actions[bot]":1,"juliasloan25":1,"sb4233":1,"Sbozzolo":1,"thopri":1,"uganzedo1974":1},"past_year_pull_request_authors":{"simone-silvestri":44,"navidcy":36,"github-actions[bot]":19,"glwagner":17,"taimoorsohail":6,"juliasloan25":4,"xkykai":4,"francispoulin":2,"nefrathenrici":2,"vtamsitt":2,"daverumph":1,"dependabot[bot]":1,"jeis4wpi":1,"szy21":1},"maintainers":[{"login":"glwagner","count":271,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glwagner"},{"login":"simone-silvestri","count":242,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/simone-silvestri"},{"login":"navidcy","count":143,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/navidcy"},{"login":"taimoorsohail","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/taimoorsohail"},{"login":"xkykai","count":12,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/xkykai"},{"login":"Sbozzolo","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Sbozzolo"},{"login":"giordano","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/giordano"},{"login":"NoraLoose","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/NoraLoose"},{"login":"juliasloan25","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/juliasloan25"},{"login":"nefrathenrici","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nefrathenrici"},{"login":"daverumph","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/daverumph"},{"login":"szy21","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/szy21"},{"login":"peterjuma","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/peterjuma"}],"active_maintainers":[{"login":"simone-silvestri","count":50,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/simone-silvestri"},{"login":"navidcy","count":45,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/navidcy"},{"login":"glwagner","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glwagner"},{"login":"xkykai","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/xkykai"},{"login":"taimoorsohail","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/taimoorsohail"},{"login":"juliasloan25","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/juliasloan25"},{"login":"nefrathenrici","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nefrathenrici"},{"login":"daverumph","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/daverumph"},{"login":"Sbozzolo","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Sbozzolo"},{"login":"szy21","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/szy21"}]},"events":{"total":{"CreateEvent":374,"CommitCommentEvent":126,"ReleaseEvent":41,"DeleteEvent":298,"MemberEvent":5,"PullRequestEvent":597,"ForkEvent":11,"DiscussionEvent":2,"IssuesEvent":192,"WatchEvent":25,"IssueCommentEvent":1789,"PushEvent":2842,"PullRequestReviewCommentEvent":858,"PullRequestReviewEvent":1101},"last_year":{"CreateEvent":122,"CommitCommentEvent":35,"ReleaseEvent":10,"DeleteEvent":97,"PullRequestEvent":180,"ForkEvent":1,"DiscussionEvent":2,"IssuesEvent":51,"WatchEvent":7,"IssueCommentEvent":514,"PushEvent":893,"PullRequestReviewEvent":389,"PullRequestReviewCommentEvent":312}},"keywords":["climate-model","fluid-dynamics","fluid-dynamics-simulator","machine-learning","ocean-modelling"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/CompatHelper.yml","sha":null,"kind":"manifest","created_at":"2023-09-26T02:41:00.072Z","updated_at":"2023-09-26T02:41:00.072Z","repository_link":"https://github.com/CliMA/ClimaOcean.jl/blob/main/.github/workflows/CompatHelper.yml","dependencies":[{"id":13941619657,"package_name":"julia-actions/setup-julia","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/DocPreviewCleanup.yml","sha":null,"kind":"manifest","created_at":"2023-09-26T02:41:00.087Z","updated_at":"2023-09-26T02:41:00.087Z","repository_link":"https://github.com/CliMA/ClimaOcean.jl/blob/main/.github/workflows/DocPreviewCleanup.yml","dependencies":[{"id":13941619658,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/Documenter.yml","sha":null,"kind":"manifest","created_at":"2023-09-26T02:41:00.118Z","updated_at":"2023-09-26T02:41:00.118Z","repository_link":"https://github.com/CliMA/ClimaOcean.jl/blob/main/.github/workflows/Documenter.yml","dependencies":[{"id":13941619660,"package_name":"styfle/cancel-workflow-action","ecosystem":"actions","requirements":"0.8.0","direct":true,"kind":"composite","optional":false},{"id":13941619661,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13941619662,"package_name":"julia-actions/setup-julia","ecosystem":"actions","requirements":"latest","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/TagBot.yml","sha":null,"kind":"manifest","created_at":"2023-09-26T02:41:00.148Z","updated_at":"2023-09-26T02:41:00.148Z","repository_link":"https://github.com/CliMA/ClimaOcean.jl/blob/main/.github/workflows/TagBot.yml","dependencies":[{"id":13941619663,"package_name":"JuliaRegistries/TagBot","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2023-09-26T02:41:00.203Z","updated_at":"2023-09-26T02:41:00.203Z","repository_link":"https://github.com/CliMA/ClimaOcean.jl/blob/main/.github/workflows/ci.yml","dependencies":[{"id":13941619664,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13941619665,"package_name":"julia-actions/setup-julia","ecosystem":"actions","requirements":"latest","direct":true,"kind":"composite","optional":false},{"id":13941619666,"package_name":"actions/cache","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13941619667,"package_name":"julia-actions/julia-buildpkg","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":13941619668,"package_name":"julia-actions/julia-runtest","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":13941619669,"package_name":"julia-actions/julia-processcoverage","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":13941619670,"package_name":"codecov/codecov-action","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]}],"score":16.697523589954095,"created_at":"2026-04-06T09:14:26.148Z","updated_at":"2026-05-12T12:30:22.011Z","avatar_url":"https://github.com/CliMA.png","language":"Julia","category":"Cryosphere","sub_category":"Sea Ice","monthly_downloads":3485,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"\u003c!-- Title --\u003e\n\u003ch1 align=\"center\"\u003e\n  ClimaOcean.jl\n\u003c/h1\u003e\n\n\u003c!-- description --\u003e\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e🌎 A framework for realistic ocean-only and coupled ocean + sea-ice simulations driven by prescribed atmospheres and based on \u003ca href=https://github.com/CliMA/Oceananigans.jl\u003eOceananigans\u003c/a\u003e and \u003ca href=https://github.com/CliMA/ClimaSeaIce.jl\u003eClimaSeaIce\u003c/a\u003e\u003c/strong\u003e.\n\u003c/p\u003e\n\n###\n\n\u003e [!IMPORTANT]\n\u003e The generic coupling framework and data wrangling utilities originally developed in ClimaOcean are being moved to [**NumericalEarth.jl**](https://github.com/NumericalEarth/NumericalEarth.jl), a new package for building coupled Earth system models with interchangeable components.\n\u003e ClimaOcean.jl will continue to exist as a focused package for realistic ocean and ocean + sea-ice simulations built on [Oceananigans](https://github.com/CliMA/Oceananigans.jl) and [ClimaSeaIce](https://github.com/CliMA/ClimaSeaIce.jl), depending on NumericalEarth for shared functionality.\n\u003e See the [discussion](https://github.com/CliMA/ClimaOcean.jl/discussions/675) for more details.\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7677442.svg?style=flat-square)](https://doi.org/10.5281/zenodo.7677442)\n[![Build status](https://badge.buildkite.com/3113cca353b83df3b5855d3f0d69827124614aef7017c835d2.svg?style=flat-square)](https://buildkite.com/clima/climaocean-ci)\n[![Documentation](https://img.shields.io/badge/documentation-stable%20release-blue?style=flat-square)](https://clima.github.io/ClimaOceanDocumentation/stable/)\n[![Documentation](https://img.shields.io/badge/documentation-in%20development-orange?style=flat-square)](https://clima.github.io/ClimaOceanDocumentation/dev/)\n\n## Installation\n\nClimaOcean is a registered package. To install from a Julia REPL:\n\n```julia\njulia\u003e using Pkg\n\njulia\u003e Pkg.add(\"ClimaOcean\")\n\njulia\u003e Pkg.instantiate()\n```\n\nUse `Pkg.add(url=\"https://github.com/CliMA/ClimaOcean.jl.git\", rev=\"main\")` to install the latest version of `ClimaOcean`.\nFor more information, see the [documentation for `Pkg.jl`](https://pkgdocs.julialang.org).\n\n## Why? What's the difference between ClimaOcean and [Oceananigans](https://github.com/CliMA/Oceananigans.jl)?\n\nOceananigans is a general-purpose library for ocean-flavored fluid dynamics.\nClimaOcean implements a framework for driving realistic Oceananigans simulations with prescribed atmospheres, and coupling them to prognostic sea ice simulations.\n\n### A core abstraction: `ClimaOcean.OceanSeaIceModel`\n\nOur system for realistic modeling is anchored by `ClimaOcean.OceanSeaIceModel`, which encapsulates the ocean simulation, sea ice simulation, prescribed atmospheric state, and specifies how the three communicate.\nTo illustrate how `OceanSeaIceModel` works we set up a simulation on a grid with 10 vertical levels and 1/4-degree horizontal resolution:\n\n```julia\nusing Oceananigans\nusing Oceananigans.Units\nusing Dates\nusing CUDA\nimport ClimaOcean\n\narch = GPU()\ngrid = LatitudeLongitudeGrid(arch,\n                             size = (1440, 560, 10),\n                             halo = (7, 7, 7),\n                             longitude = (0, 360),\n                             latitude = (-70, 70),\n                             z = (-3000, 0))\n\nbathymetry = ClimaOcean.regrid_bathymetry(grid) # builds gridded bathymetry based on ETOPO1\ngrid = ImmersedBoundaryGrid(grid, GridFittedBottom(bathymetry))\n\n# Build an ocean simulation initialized to the ECCO state estimate version 2 on Jan 1, 1993\nocean = ClimaOcean.ocean_simulation(grid)\nstart_date = DateTime(1993, 1, 1)\nset!(ocean.model,\n     T=ClimaOcean.Metadatum(:temperature; date=start_date, dataset=ClimaOcean.ECCO2Daily()),\n     S=ClimaOcean.Metadatum(:salinity;    date=start_date, dataset=ClimaOcean.ECCO2Daily()))\n\n# Build and run an OceanSeaIceModel (with no sea ice component) forced by JRA55 reanalysis\natmosphere = ClimaOcean.JRA55PrescribedAtmosphere(arch)\ncoupled_model = ClimaOcean.OceanSeaIceModel(ocean; atmosphere)\nsimulation = Simulation(coupled_model, Δt=20minutes, stop_time=30days)\nrun!(simulation)\n```\n\nThe simulation above achieves approximately 8 simulated years per day of wall time on an Nvidia H100 GPU.\n\nSince `ocean.model` is an `Oceananigans.HydrostaticFreeSurfaceModel`, we can leverage `Oceananigans` features in our scripts.\nFor example, to plot the surface speed at the end of the simulation we write\n\n```julia\nu, v, w = ocean.model.velocities\nspeed = Field(sqrt(u^2 + v^2))\ncompute!(speed)\n\nusing GLMakie\nheatmap(view(speed, :, :, ocean.model.grid.Nz), colorrange=(0, 0.5), colormap=:magma, nan_color=:lightgray)\n```\n\nwhich produces\n\n![image](https://github.com/user-attachments/assets/4c484b93-38fe-4840-bf7d-63a3a59d29e1)\n\n### Additional features: a utility for `ocean_simulation`s and data wrangling\n\nA second core abstraction in ClimaOcean is `ocean_simulation`. `ocean_simulation` configures an Oceananigans model for realistic simulations including temperature and salinity, the TEOS-10 equation of state, boundary conditions to store computed air-sea fluxes, the automatically-calibrated turbulence closure `CATKEVerticalDiffusivity`, and the [`WENOVectorInvariant` advection scheme](https://doi.org/10.1029/2023MS004130) for mesoscale-turbulence-resolving simulations.\n\nClimaOcean also provides convenience features for wrangling datasets of bathymetry, ocean temperature, salinity, ocean velocity fields, and prescribed atmospheric states.\n\nClimaOcean is built on top of Oceananigans and [ClimaSeaIce](https://github.com/CliMA/ClimaSeaIce.jl), so it's important that ClimaOcean users become proficient with [Oceananigans](https://github.com/CliMA/Oceananigans.jl).\nNote that though ClimaOcean is currently focused on hydrostatic modeling with `Oceananigans.HydrostaticFreeSurfaceModel`, realistic nonhydrostatic modeling is also within the scope of this package.\n\n\n### Citing\n\nIf you use ClimaOcean for your research, teaching, or fun 🤩, everyone in our community will be grateful\nif you give credit by citing the corresponding Zenodo record, e.g.,\n\n\u003e Wagner, G. L. et al. (2025). CliMA/ClimaOcean.jl: v0.8.10 (v0.8.10). Zenodo. https://doi.org/10.5281/zenodo.7677442\n\nand also the recent [preprint submitted to the Journal of Advances in Modeling Earth Systems](https://doi.org/10.48550/arXiv.2502.14148) that presents an overview of all the things that make Oceananigans unique:\n\n\u003e \"High-level, high-resolution ocean modeling at all scales with Oceananigans\"\n\u003e\n\u003e by Gregory L. Wagner, Simone Silvestri, Navid C. Constantinou, Ali Ramadhan, Jean-Michel Campin,\n\u003e Chris Hill, Tomas Chor, Jago Strong-Wright, Xin Kai Lee, Francis Poulin, Andre Souza, Keaton J. Burns,\n\u003e Siddhartha Bishnu, John Marshall, and Raffaele Ferrari\n\u003e\n\u003e submitted to the Journal of Advances in Modeling Earth Systems, arXiv:[2502.14148](https://doi.org/10.48550/arXiv.2502.14148)\n\n\u003cdetails\u003e\u003csummary\u003ebibtex\u003c/summary\u003e\n  \u003cpre\u003e\u003ccode\u003e@article{Oceananigans-overview-paper-2025,\n  title = {{High-level, high-resolution ocean modeling at all scales with Oceananigans}},\n  author = {G. L. Wagner and S. Silvestri and N. C. Constantinou and A. Ramadhan and J.-M. Campin and C. Hill and T. Chor and J. Strong-Wright and X. K. Lee and F. Poulin and A. Souza and K. J. Burns and S. Bishnu and J. Marshall and R. Ferrari},\n  journal = {arXiv preprint},\n  year = {2025},\n  archivePrefix = {arXiv},\n  eprint = {2502.14148},\n  doi = {10.48550/arXiv.2502.14148},\n  notes = {submitted to the Journal of Advances in Modeling Earth Systems},\n}\u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.5281/zenodo.7677442","https://doi.org/10.1029/2023MS004130","https://doi.org/10.48550/arXiv.2502.14148"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["data-assimilation","climate","climate-change","ocean","climate-science","land","land-surface-model","eddies","oceanography","partial-differential-equations"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/350828","html_url":"https://ost.ecosyste.ms/projects/350828"}