#include "flang/Runtime/io-api.h" #include "flang/Runtime/main.h" #include "flang/Runtime/stop.h" #include #include using namespace Fortran::runtime::io; void output1() { auto io{IONAME(BeginExternalListOutput)()}; const char str[]{"Hello, world!"}; IONAME(OutputAscii)(io, str, std::strlen(str)); IONAME(OutputInteger64)(io, 678); IONAME(OutputReal64)(io, 0.0); IONAME(OutputReal64)(io, 2.0 / 3.0); IONAME(OutputReal64)(io, 1.0e99); IONAME(OutputReal64)(io, std::numeric_limits::infinity()); IONAME(OutputReal64)(io, -std::numeric_limits::infinity()); IONAME(OutputReal64)(io, std::numeric_limits::quiet_NaN()); IONAME(OutputComplex64)(io, 123.0, -234.0); IONAME(OutputLogical)(io, false); IONAME(OutputLogical)(io, true); IONAME(EndIoStatement)(io); } void input1() { auto io{IONAME(BeginExternalListOutput)()}; const char prompt[]{"Enter an integer value:"}; IONAME(OutputAscii)(io, prompt, std::strlen(prompt)); IONAME(EndIoStatement)(io); io = IONAME(BeginExternalListInput)(); std::int64_t n{-666}; IONAME(InputInteger)(io, n); IONAME(EndIoStatement)(io); io = IONAME(BeginExternalListOutput)(); const char str[]{"Result:"}; IONAME(OutputAscii)(io, str, std::strlen(str)); IONAME(OutputInteger64)(io, n); IONAME(EndIoStatement)(io); } int main(int argc, const char *argv[], const char *envp[]) { RTNAME(ProgramStart)(argc, argv, envp); output1(); input1(); RTNAME(PauseStatement)(); RTNAME(ProgramEndStatement)(); return 0; }