Replies: 1 comment
-
The issue has been resolved. It was caused by not using YAML libraries with the API to read .fst files, along with some other coding issues. The project has been updated for anyone interested. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I’m developing a custom C++ driver using the OpenFAST C++ API. While the exact same .fst files run fine with the standard openfast command-line executable, I consistently get parse errors in my C++ code:
“DT_out must be at least DT” even though DT_Out ≥ DT in the .fst.
Here’s what I’ve tried so far:
Rewrote the .fst file from scratch multiple times to remove any quotes, BOM, Windows carriage returns, or parentheses.
Verified the file paths and used absolute paths in my driver.
Rebuilt OpenFAST from scratch (v4.0.0) in both shared and static library modes, ensuring my driver links the same libraries used by the standalone executable.
Confirmed via ldd that my C++ driver is referencing the same libopenfast* files as the standalone.
Tested with booleans as True/False and as T/F, removed trailing comments/braces, and tried older parameter names.
Despite all this, the C++ API build sees DT_Out as a string ("0.05") in the echo. The standalone openfast binary (using the same library) has no trouble parsing the file (although echo is exactly the same).
My Question:
Has anyone else encountered this mismatch or parsing bug with the C++ API? Are there additional known pitfalls (beyond BOM, locale issues, or library mismatch) that could force numeric fields like DT_Out to appear as quoted strings?
I’d appreciate any guidance or advice on where else to look or how to fully synchronize the C++ API parser behavior with the standard Fortran driver.
Thank you!
Link to my project: https://github.com/ata-ardic/OPENFAST2API
Beta Was this translation helpful? Give feedback.
All reactions