[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KDA3ZAHF4S10CDBQSF173B":3,"skill-same:01M6KDA3ZAHF4S10CDBQSF173B":53},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":36,"ownerHtmlUrl":37,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":38,"install":39,"resources":52},"01M6KDA3ZAHF4S10CDBQSF173B","fortran-namelist",null,"Reading and modifying Fortran namelist configuration files for scientific models","cxcscmu\u002FSkillLearnBench","cxcscmu","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F142838272?v=4","01M6KCQDFQWPDSN0MKZY96MSQP","01M6KCQDM7G70TKJ28NTSQC0RZ",93,"MIT","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fb1-one-shot-claude-haiku-4-5\u002Ftemperature-simulation\u002Ffortran-namelist\u002FSKILL.md",[],[18,19,20,21,22,23,24,25],"fortran","fortran namelist","files","models","configuration","scientific","reading","for","2026-11-10 10:12:30",false,"---\nname: fortran-namelist\ndescription: Reading and modifying Fortran namelist configuration files for scientific models\n---\n\n# Fortran Namelist Skill\n\n## Overview\nFortran namelists are human-readable configuration files used by many scientific models. They use `&section` syntax and key=value pairs. Parsing requires careful handling of Fortran syntax quirks.\n\n## File Format\n\n```fortran\n&section_name\n   parameter1 = value1\n   parameter2 = value2, value3, value4\n   array_param = 1, 2, 3, 4, 5\n\u002F\n```\n\nKey features:\n- Sections enclosed with `&name` and `\u002F`\n- Each section ends with `\u002F`\n- Values can be scalars or comma-separated arrays\n- Comments may appear (starting with `!`)\n- Spaces and newlines are flexible\n\n## Reading Namelists\n\n### Using f90nml Library (Recommended)\n\n```python\nimport f90nml\n\n# Read entire namelist\nnml = f90nml.read('\u002Fpath\u002Fto\u002Fconfig.nml')\n\n# Access values\nkw = nml['light']['Kw']\ncoef_mix = nml['mixing']['coef_mix_hyp']\n\n# Modify values\nnml['light']['Kw'] = 0.35\nnml['mixing']['wind_factor'] = 1.1\n\n# Write back\nnml.write('\u002Fpath\u002Fto\u002Fconfig.nml', force=True)\n```\n\n### Installation\n```bash\npip install f90nml\n```\n\n### Manual Parsing with Regex\n\nFor simple changes without additional dependencies:\n\n```python\nimport re\n\ndef read_nml_parameter(nml_file, section, param):\n    \"\"\"Extract single parameter value from namelist\"\"\"\n    with open(nml_file, 'r') as f:\n        content = f.read()\n\n    # Pattern: find section, then parameter\n    pattern = (r'&' + section + r'.*?' +\n               r'(\\s+' + param + r'\\s*=\\s*)' +\n               r'([^,\\n\u002F]+)')\n    match = re.search(pattern, content, re.DOTALL)\n\n    if match:\n        value_str = match.group(2).strip()\n        try:\n            return float(value_str)\n        except ValueError:\n            return value_str\n    return None\n\ndef update_nml_parameter(nml_file, section, param, value):\n    \"\"\"Update a parameter in namelist\"\"\"\n    with open(nml_file, 'r') as f:\n        content = f.read()\n\n    # Pattern to find and replace parameter in section\n    pattern = (r'(&' + section + r'.*?)' +\n               r'(\\s+' + param + r'\\s*=\\s*)' +\n               r'([^,\\n\u002F]+)')\n    replacement = r'\\g\u003C1>\\g\u003C2>' + str(value)\n\n    new_content = re.sub(pattern, replacement, content,\n                        count=1, flags=re.DOTALL)\n\n    with open(nml_file, 'w') as f:\n        f.write(new_content)\n```\n\n## Working with Arrays\n\nFortran namelists support array values:\n\n```fortran\n&init_profiles\n   the_depths = 0, 1, 2, 3, 4, 5\n   the_temps = 5.1, 5.1, 5.0, 4.9, 4.8, 4.7\n\u002F\n```\n\n### Reading Arrays\n```python\nimport f90nml\n\nnml = f90nml.read('glm3.nml')\ndepths = nml['init_profiles']['the_depths']  # List\ntemps = nml['init_profiles']['the_temps']    # List\n\nprint(depths[0])  # 0\nprint(temps[5])   # 4.7\n```\n\n### Modifying Arrays\nArrays should not be modified for this task, but if needed:\n\n```python\n# Only modify if changing array values entirely\nnml['init_profiles']['the_depths'] = [0, 1, 2, 3, 4, 5, 6]\nnml['init_profiles']['the_temps'] = [5.1, 5.1, 5.0, 4.9, 4.8, 4.7, 4.6]\n```\n\n## Best Practices\n\n1. **Always use f90nml** when available—it handles quirks properly\n2. **Make backup** before modifying: `cp glm3.nml glm3.nml.bak`\n3. **Validate changes** by reading back after write\n4. **Whitespace preservation**: f90nml maintains formatting\n5. **Section case**: Fortran is case-insensitive for sections\u002Fparams\n6. **Comments**: f90nml preserves comments during read\u002Fwrite\n\n## Validation Example\n\n```python\nimport f90nml\n\n# Read original\nnml = f90nml.read('glm3.nml')\nprint(f\"Original Kw: {nml['light']['Kw']}\")\n\n# Modify\nnml['light']['Kw'] = 0.35\nnml.write('glm3.nml', force=True)\n\n# Verify change persisted\nnml2 = f90nml.read('glm3.nml')\nassert nml2['light']['Kw'] == 0.35\nprint(\"Verification passed!\")\n```\n\n## Common Issues\n\n1. **Array syntax**: Use `[...]` in Python, Fortran has `=` with commas\n2. **Type mismatch**: Ensure values match expected types (int vs float)\n3. **Spacing**: f90nml handles this; manual regex may fail on unexpected spacing\n4. **Case sensitivity**: Parameter names are case-insensitive in Fortran\n","# Fortran Namelist Skill\n\n## Overview\nFortran namelists are human-readable configuration files used by many scientific models. They use `&section` syntax and key=value pairs. Parsing requires careful handling of Fortran syntax quirks.\n\n## File Format\n\n```fortran\n&section_name\n   parameter1 = value1\n   parameter2 = value2, value3, value4\n   array_param = 1, 2, 3, 4, 5\n\u002F\n```\n\nKey features:\n- Sections enclosed with `&name` and `\u002F`\n- Each section ends with `\u002F`\n- Values can be scalars or comma-separated arrays\n- Comments may appear (starting with `!`)\n- Spaces and newlines are flexible\n\n## Reading Namelists\n\n### Using f90nml Library (Recommended)\n\n```python\nimport f90nml\n\n# Read entire namelist\nnml = f90nml.read('\u002Fpath\u002Fto\u002Fconfig.nml')\n\n# Access values\nkw = nml['light']['Kw']\ncoef_mix = nml['mixing']['coef_mix_hyp']\n\n# Modify values\nnml['light']['Kw'] = 0.35\nnml['mixing']['wind_factor'] = 1.1\n\n# Write back\nnml.write('\u002Fpath\u002Fto\u002Fconfig.nml', force=True)\n```\n\n### Installation\n```bash\npip install f90nml\n```\n\n### Manual Parsing with Regex\n\nFor simple changes without additional dependencies:\n\n```python\nimport re\n\ndef read_nml_parameter(nml_file, section, param):\n    \"\"\"Extract single parameter value from namelist\"\"\"\n    with open(nml_file, 'r') as f:\n        content = f.read()\n\n    # Pattern: find section, then parameter\n    pattern = (r'&' + section + r'.*?' +\n               r'(\\s+' + param + r'\\s*=\\s*)' +\n               r'([^,\\n\u002F]+)')\n    match = re.search(pattern, content, re.DOTALL)\n\n    if match:\n        value_str = match.group(2).strip()\n        try:\n            return float(value_str)\n        except ValueError:\n            return value_str\n    return None\n\ndef update_nml_parameter(nml_file, section, param, value):\n    \"\"\"Update a parameter in namelist\"\"\"\n    with open(nml_file, 'r') as f:\n        content = f.read()\n\n    # Pattern to find and replace parameter in section\n    pattern = (r'(&' + section + r'.*?)' +\n               r'(\\s+' + param + r'\\s*=\\s*)' +\n               r'([^,\\n\u002F]+)')\n    replacement = r'\\g\u003C1>\\g\u003C2>' + str(value)\n\n    new_content = re.sub(pattern, replacement, content,\n                        count=1, flags=re.DOTALL)\n\n    with open(nml_file, 'w') as f:\n        f.write(new_content)\n```\n\n## Working with Arrays\n\nFortran namelists support array values:\n\n```fortran\n&init_profiles\n   the_depths = 0, 1, 2, 3, 4, 5\n   the_temps = 5.1, 5.1, 5.0, 4.9, 4.8, 4.7\n\u002F\n```\n\n### Reading Arrays\n```python\nimport f90nml\n\nnml = f90nml.read('glm3.nml')\ndepths = nml['init_profiles']['the_depths']  # List\ntemps = nml['init_profiles']['the_temps']    # List\n\nprint(depths[0])  # 0\nprint(temps[5])   # 4.7\n```\n\n### Modifying Arrays\nArrays should not be modified for this task, but if needed:\n\n```python\n# Only modify if changing array values entirely\nnml['init_profiles']['the_depths'] = [0, 1, 2, 3, 4, 5, 6]\nnml['init_profiles']['the_temps'] = [5.1, 5.1, 5.0, 4.9, 4.8, 4.7, 4.6]\n```\n\n## Best Practices\n\n1. **Always use f90nml** when available—it handles quirks properly\n2. **Make backup** before modifying: `cp glm3.nml glm3.nml.bak`\n3. **Validate changes** by reading back after write\n4. **Whitespace preservation**: f90nml maintains formatting\n5. **Section case**: Fortran is case-insensitive for sections\u002Fparams\n6. **Comments**: f90nml preserves comments during read\u002Fwrite\n\n## Validation Example\n\n```python\nimport f90nml\n\n# Read original\nnml = f90nml.read('glm3.nml')\nprint(f\"Original Kw: {nml['light']['Kw']}\")\n\n# Modify\nnml['light']['Kw'] = 0.35\nnml.write('glm3.nml', force=True)\n\n# Verify change persisted\nnml2 = f90nml.read('glm3.nml')\nassert nml2['light']['Kw'] == 0.35\nprint(\"Verification passed!\")\n```\n\n## Common Issues\n\n1. **Array syntax**: Use `[...]` in Python, Fortran has `=` with commas\n2. **Type mismatch**: Ensure values match expected types (int vs float)\n3. **Spacing**: f90nml handles this; manual regex may fail on unexpected spacing\n4. **Case sensitivity**: Parameter names are case-insensitive in Fortran\n",{"name":5,"description":7},"main","726e1f79b96b0cb3d729d0e55a1c847e0b5353ae","skills\u002Fb1-one-shot-claude-haiku-4-5\u002Ftemperature-simulation\u002Ffortran-namelist",7,"https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench","https:\u002F\u002Fcxcscmu.github.io\u002FSkillLearnBench","https:\u002F\u002Fgithub.com\u002Fcxcscmu","2026-10-02 22:55:36",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add cxcscmu\u002FSkillLearnBench --skill fortran-namelist",{"tool":45,"command":46},"bunx","bunx skills add cxcscmu\u002FSkillLearnBench --skill fortran-namelist",{"tool":48,"command":49},"pnpm","pnpm dlx skills add cxcscmu\u002FSkillLearnBench --skill fortran-namelist","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fb1-one-shot-claude-haiku-4-5\u002Ftemperature-simulation\u002Ffortran-namelist\u002FSKILL.md",true,[],[54,72,96,114,134,146],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":65,"publishedAt":26},"01M6KM5KH175P5ABP5JMX2SBDQ","object_counter","Count occurrences of an object in the image using computer vision algorithm.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Fvideo-object-counting\u002Fobject_counter\u002FSKILL.md",[60],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[66,67,68,69,70,71],"object counter","object","vision","computer","Computer Vision","image",{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":81,"publishedAt":26},"01M6KM51TMVXG79MMPCS6Y8G86","travel-planning-workflow","Invoke this skill when performing travel planning. It defines a structured workflow for generating itineraries. Following this workflow is essential to ensure the final plan satisfies user requirements.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftravel-planning\u002Ftravel-planning-workflow\u002FSKILL.md",[78],{"categoryNo":79,"categoryName":80,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000023","Skill与智能体开发",[82,83,84,85,86,87,88,89,90,25,91,92,93,94,95],"workflow","planning","planning workflow","travel","travel planning","travel planning workflow","structured","performing","plan","user","it","requirements","essential","itineraries",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":26},"01M6KM4DY820XHS9YTSK5QP5HD","bundled-dataset-search-tool","invoke this skill when you need to perform database search for travel planning. This skill provides some useful pre-packaged tools to look up accommodations, attractions, cities, driving distance, flights, and restaurants from the bundled dataset.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftravel-planning\u002Fbundled-dataset-search-tool\u002FSKILL.md",[],[103,104,105,106,107,108,109,85,110,111,86,112,25,113,83],"search","tool","dataset","bundled dataset search tool","restaurants","Tools","up","look","flights","you","database",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":26},"01M6KM465BB9PQ0B548HQSVAWZ","glm-output","Output-processing guidance for GLM tasks. Especially useful after glm-basics and glm-calibration when you need verifier-matching metrics from output.nc and a final \u002Froot\u002Fmetrics.json.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftemperature-simulation\u002Fglm-output\u002FSKILL.md",[],[121,122,123,25,124,125,126,127,128,129,130,131,112,132,133],"glm output","output","glm","tasks","metrics","json","basics","guidance","matching","verifier","processing","root","calibration",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":141,"publishedAt":26},"01M6KM40KY3QWDW5W97S39R2BC","glm-calibration","Calibration guidance for GLM tasks. Often most effective after glm-basics has clarified the setup; glm-output is the companion skill for exact final metric computation.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftemperature-simulation\u002Fglm-calibration\u002FSKILL.md",[140],{"categoryNo":79,"categoryName":80,"taxonomyType":63,"taxonomyTypeDesc":64},[142,133,123,122,128,127,124,143,144,25,145],"glm calibration","setup","companion","metric",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":26},"01M6KM3VHHVSGMGHJQB3PPT6YG","glm-basics","A good starting point for GLM calibration tasks. Use to inspect glm3.nml, confirm how GLM runs, and identify the relevant files before moving on to calibration and output evaluation.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftemperature-simulation\u002Fglm-basics\u002FSKILL.md",[],[153,123,127,154,142,133,25,122,155,20,156,157,158,159,124],"glm basics","inspect","relevant","good","use","how","Evaluation"]