2 use mpi_f08,
only: mpi_comm_rank, mpi_initialized, mpi_bcast, &
65 character(len=*),
intent(in) :: filename
66 type(json_file) :: json
68 logical :: mpi_is_initialized
69 integer :: rank, ierr, length
70 character(len=:),
allocatable :: json_buffer
71 character(len=4) :: suffix
74 call filename_suffix(filename, suffix)
76 if (trim(suffix) .ne.
'json' .and. trim(suffix) .ne.
'case' )
then
77 call neko_error(
'Invalid case file')
82 mpi_is_initialized = .false.
85 call mpi_initialized(mpi_is_initialized, ierr)
86 if (mpi_is_initialized)
call mpi_comm_rank(mpi_comm_world, rank, ierr)
90 call json%load_file(filename = trim(filename))
94 if (mpi_is_initialized)
then
95 if (rank .eq. 0)
call json%print_to_string(json_buffer)
97 length = len(json_buffer)
98 call mpi_bcast(length, 1, mpi_integer, 0, mpi_comm_world, ierr)
100 if (rank .ne. 0)
allocate(
character(len=length) :: json_buffer)
101 call mpi_bcast(json_buffer, length, mpi_character, 0, mpi_comm_world, &
105 call json%load_from_string(json_buffer)
106 deallocate(json_buffer)
character(len=:) function, allocatable, public json_key_fallback(json, lookup, fallback)
Create a json_string based on fallback logic. If the lookup key is present in the json object,...