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.
npxskills add benchflow-ai/skillsbench--skill glm-basicsLoading…
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.
npxskills add benchflow-ai/skillsbench--skill glm-basicsLoading…
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.
cd /root
glm
GLM reads glm3.nml in the current directory and produces output in output/output.nc.
| File | Description |
|---|---|
glm3.nml | Main configuration file (Fortran namelist format) |
bcs/*.csv | Boundary condition files (meteorology, inflows, outflows) |
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'
/
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})
| 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 |
glm3.nml before modifyingoutput/ directory for results after each runCreate or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).