mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 14:15:42 -04:00
including write_message access from the C side
This commit is contained in:
parent
8c2a88243b
commit
a1a033f1b7
4 changed files with 31 additions and 3 deletions
|
|
@ -265,4 +265,13 @@ contains
|
|||
|
||||
end subroutine write_message
|
||||
|
||||
subroutine write_message_from_c(message, message_len, level) bind(C)
|
||||
integer(C_INT), intent(in), value :: message_len
|
||||
character(kind=C_CHAR), intent(in) :: message(message_len)
|
||||
integer(C_INT), intent(in), value :: level
|
||||
character(message_len+1) :: message_out
|
||||
write(message_out, *) message
|
||||
call write_message(message_out, level)
|
||||
end subroutine write_message_from_c
|
||||
|
||||
end module error
|
||||
|
|
|
|||
21
src/error.h
21
src/error.h
|
|
@ -11,7 +11,8 @@ namespace openmc {
|
|||
|
||||
extern "C" void fatal_error_from_c(const char* message, int message_len);
|
||||
extern "C" void warning_from_c(const char* message, int message_len);
|
||||
|
||||
extern "C" void write_message_from_c(const char* message, int message_len,
|
||||
int level);
|
||||
|
||||
inline
|
||||
void fatal_error(const char *message)
|
||||
|
|
@ -43,5 +44,23 @@ void warning(const std::stringstream& message)
|
|||
warning(message.str());
|
||||
}
|
||||
|
||||
inline
|
||||
void write_message(const char* message, int level)
|
||||
{
|
||||
write_message_from_c(message, strlen(message), level);
|
||||
}
|
||||
|
||||
inline
|
||||
void write_message(const std::string& message, int level)
|
||||
{
|
||||
write_message_from_c(message.c_str(), message.length(), level);
|
||||
}
|
||||
|
||||
inline
|
||||
void write_message(const std::stringstream& message, int level)
|
||||
{
|
||||
write_message(message.str(), level);
|
||||
}
|
||||
|
||||
} // namespace openmc
|
||||
#endif // ERROR_H
|
||||
|
|
|
|||
|
|
@ -19,8 +19,7 @@ add_mgxs_c(hid_t file_id, char* name, const int energy_groups,
|
|||
double_1dvec temperature;
|
||||
temperature.assign(temps, temps + n_temps);
|
||||
|
||||
// TODO: C++ replacement for write_message
|
||||
// write_message("Loading " + std::string(names[i]) + " data...", 6);
|
||||
write_message("Loading " + std::string(name) + " data...", 6);
|
||||
|
||||
// Check to make sure cross section set exists in the library
|
||||
hid_t xs_grp;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#ifndef MGXS_INTERFACE_H
|
||||
#define MGXS_INTERFACE_H
|
||||
|
||||
#include "error.h"
|
||||
#include "mgxs.h"
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue