Agent skill
glm-basics
Basic usage of the General Lake Model (GLM) for lake temperature simulation. Use when you need to run GLM, understand input files, or modify configuration parameters.
Install this agent skill to your Project
npx add-skill https://github.com/benchflow-ai/skillsbench/tree/main/tasks/glm-lake-mendota/environment/skills/glm-basics
SKILL.md
GLM Basics Guide
Overview
GLM (General Lake Model) is a 1D hydrodynamic model that simulates vertical temperature and mixing dynamics in lakes. It reads configuration from a namelist file and produces NetCDF output.
Running GLM
cd /root
glm
GLM reads glm3.nml in the current directory and produces output in output/output.nc.
Input File Structure
| File | Description |
|---|---|
glm3.nml |
Main configuration file (Fortran namelist format) |
bcs/*.csv |
Boundary condition files (meteorology, inflows, outflows) |
Configuration File Format
glm3.nml uses Fortran namelist format with multiple sections:
&glm_setup
sim_name = 'LakeName'
max_layers = 500
/
&light
Kw = 0.3
/
&mixing
coef_mix_hyp = 0.5
/
&meteorology
meteo_fl = 'bcs/meteo.csv'
wind_factor = 1
lw_factor = 1
ch = 0.0013
/
&inflow
inflow_fl = 'bcs/inflow1.csv','bcs/inflow2.csv'
/
&outflow
outflow_fl = 'bcs/outflow.csv'
/
Modifying Parameters with Python
import re
def modify_nml(nml_path, params):
with open(nml_path, 'r') as f:
content = f.read()
for param, value in params.items():
pattern = rf"({param}\s*=\s*)[\d\.\-e]+"
replacement = rf"\g<1>{value}"
content = re.sub(pattern, replacement, content)
with open(nml_path, 'w') as f:
f.write(content)
# Example usage
modify_nml('glm3.nml', {'Kw': 0.25, 'wind_factor': 0.9})
Common Issues
| Issue | Cause | Solution |
|---|---|---|
| GLM fails to start | Missing input files | Check bcs/ directory |
| No output generated | Invalid nml syntax | Check namelist format |
| Simulation crashes | Unrealistic parameters | Use values within valid ranges |
Best Practices
- Always backup
glm3.nmlbefore modifying - Run GLM after each parameter change to verify it works
- Check
output/directory for results after each run
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
csv-processing
Use this skill when reading sensor data from CSV files, writing simulation results to CSV, processing time-series data with pandas, or handling missing values in datasets.
pid-controller
Use this skill when implementing PID control loops for adaptive cruise control, vehicle speed regulation, throttle/brake management, or any feedback control system requiring proportional-integral-derivative control.
yaml-config
Use this skill when reading or writing YAML configuration files, loading vehicle parameters, or handling config file parsing with proper error handling.
simulation-metrics
Use this skill when calculating control system performance metrics such as rise time, overshoot percentage, steady-state error, or settling time for evaluating simulation results.
vehicle-dynamics
Use this skill when simulating vehicle motion, calculating safe following distances, time-to-collision, speed/position updates, or implementing vehicle state machines for cruise control modes.
web-interface-guidelines
Vercel's comprehensive UI guidelines for building accessible, performant web interfaces. Use this skill when reviewing or building UI components for compliance with best practices around accessibility, performance, animations, and visual stability.
Didn't find tool you were looking for?