| Concetto / Componente |
Descrizione |
Errori comuni / Note |
Soluzione / Best Practice |
| gsUDF (.gsf) |
Script GrADS che definisce una funzione utente dinamica |
Tentare di usare funzioni `.gsf` come normali funzioni numeriche, con campi grigliati, genera errori |
Usare `define` e stringhe per calcolare l’espressione sul campo grigliato |
| Input scalari vs campi grigliati |
Le funzioni gsUDF possono ricevere variabili grigliate (es. `ugrdprs`, `vgrdprs`) |
Versioni troppo semplici di `speed.gsf` assumevano scalari, non campi, generando `Non-numeric args` |
Convertire input in definizioni GrADS con `'define xxxu = ' u` |
| Uso di `define` / `undefine` |
Definisce variabili temporanee in GrADS per ridurre I/O e memoria |
Non liberare variabili può causare consumo e rallentamenti |
Sempre fare `'undefine var'` dopo il calcolo |
| Controllo argomenti |
Verifica se gli input sono vuoti e fornisce messaggi di aiuto |
Saltare questo passaggio porta a errori criptici |
Implementare `if (arg='' arg='arg') ... return` |
| Ritorno dei valori |
La funzione restituisce la stringa della variabile definita GrADS |
Tentare `return` di variabili numeriche direttamente non funziona |
Fare `return 'gsudf'` per restituire il campo calcolato |
| Differenza `dewpt` vs `speed` |
Entrambe sono gsUDF, entrambe operano su campi grigliati |
`speed` versione semplice falliva con campi |
Adattare `speed` nello stile di `dewpt` usando `define/undefine` |
| Errori tipici visti |
“Non-numeric args”, “Syntax Error”, “Unable to locate ENDIF” |
Funzione scritta come GSF numerica invece che string-based |
Scrivere le funzioni nello stile di gsUDF (definizioni string-based) |