Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(kind=CK,len=*), | intent(in) | :: | msg |
Throw an exception in the JSON module. This routine sets the error flag, and prevents any subsequent routine from doing anything, until json_clear_exceptions is called.
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module using it.
Solid arrows point from one derived type to another which extends (inherits from) it. Dashed arrows point from a derived type to another type containing it as a components, with a label listing the name(s) of said component(s).
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module.
subroutine json_throw_exception(msg)
implicit none
character(kind=CK,len=*),intent(in) :: msg !the error message
exception_thrown = .true.
err_message = trim(msg)
if (is_verbose) then
write(*,'(A)') '***********************'
write(*,'(A)') 'JSON-Fortran EXCEPTION: '//trim(msg)
!call backtrace() ! gfortran (use -fbacktrace -fall-intrinsics flags)
!call tracebackqq(-1) ! intel (requires "use ifcore" in this routine)
write(*,'(A)') '***********************'
end if
end subroutine json_throw_exception