2 |
|
implicit none |
3 |
|
PRIVATE |
4 |
|
|
5 |
+ |
#define __FORTRAN90 |
6 |
+ |
#include "simError.h" |
7 |
|
|
8 |
< |
character(len=1), parameter :: null = char(0) |
9 |
< |
interface |
10 |
< |
subroutine c_info(cMessage) |
11 |
< |
character(len=*),intent(in) :: cMessage |
10 |
< |
end subroutine c_info |
8 |
> |
character(len=1), parameter :: nullchar = char(0) |
9 |
> |
character(len=1), parameter :: newline = char(10) |
10 |
> |
character(len=1), parameter :: tab = char(9) |
11 |
> |
INTEGER, PARAMETER:: statusMsgSize = MAX_SIM_ERROR_MSG_LENGTH |
12 |
|
|
13 |
< |
end interface |
14 |
< |
interface |
15 |
< |
subroutine c_warning(cMessage) |
16 |
< |
character(len=*), intent(in) :: cMessage |
17 |
< |
end subroutine c_warning |
13 |
> |
!!$interface |
14 |
> |
!!$ |
15 |
> |
!!$ subroutine c_simError(painCave) |
16 |
> |
!!$ type(errorStruct), pointer :: painCave |
17 |
> |
!!$ end subroutine c_simError |
18 |
> |
!!$ |
19 |
> |
!!$end interface |
20 |
|
|
21 |
< |
end interface |
19 |
< |
interface |
20 |
< |
subroutine c_error(cMessage) |
21 |
< |
character(len=*),intent(in) :: cMessage |
22 |
< |
end subroutine c_error |
23 |
< |
end interface |
24 |
< |
|
25 |
< |
public :: info |
21 |
> |
public :: handleInfo |
22 |
|
public :: handleError |
23 |
< |
public :: warning |
23 |
> |
public :: handleWarning |
24 |
> |
public :: statusMsgSize |
25 |
|
|
29 |
– |
|
26 |
|
contains |
27 |
|
|
28 |
< |
|
33 |
< |
subroutine info(myRoutine,myMessage) |
28 |
> |
subroutine handleInfo(myRoutine, myMessage) |
29 |
|
character(len=*), intent(inout) :: myRoutine |
30 |
|
character(len=*), intent(inout) :: myMessage |
36 |
– |
character(len=len_trim(myRoutine) + len_trim(myMessage) + 10) :: cMessage |
31 |
|
|
32 |
+ |
painCave%errMsg = "ROUTINE:" // trim(myRoutine) // newline // & |
33 |
+ |
tab // trim(myMessage) // newline // nullchar |
34 |
|
|
35 |
< |
cMessage = cMessage//"ROUTINE:"//trim(myRoutine)//trim(myMessage)//null |
35 |
> |
painCave%severity = OOPSE_INFO |
36 |
> |
painCave%isFatal = .false. |
37 |
|
|
38 |
< |
call c_info(cMessage) |
39 |
< |
end subroutine info |
38 |
> |
call c_simError(painCave) |
39 |
> |
end subroutine handleInfo |
40 |
|
|
41 |
|
|
42 |
< |
subroutine handleError(myRoutine,myMessage) |
42 |
> |
subroutine handleError(myRoutine, myMessage) |
43 |
|
character(len=*), intent(in) :: myRoutine |
44 |
|
character(len=*), intent(in) :: myMessage |
48 |
– |
character(len=len_trim(myRoutine) + len_trim(myMessage) + 10) :: cMessage |
45 |
|
|
46 |
< |
cMessage = cMessage//"ROUTINE:"//trim(myRoutine)//trim(myMessage)//null |
46 |
> |
painCave%errMsg = "ROUTINE:" // trim(myRoutine) // newline // & |
47 |
> |
tab // trim(myMessage) // newline // nullchar |
48 |
|
|
49 |
< |
call c_error(cMessage) |
49 |
> |
painCave%severity = OOPSE_ERROR |
50 |
> |
painCave%isFatal = .true. |
51 |
> |
|
52 |
> |
call c_simError(painCave) |
53 |
> |
|
54 |
|
end subroutine handleError |
55 |
|
|
56 |
< |
|
56 |
< |
|
57 |
< |
|
58 |
< |
|
59 |
< |
subroutine warning(myRoutine,myMessage) |
56 |
> |
subroutine handleWarning(myRoutine, myMessage) |
57 |
|
character(len=*), intent(in) :: myRoutine |
58 |
|
character(len=*), intent(in) :: myMessage |
62 |
– |
character(len=len_trim(myRoutine) + len_trim(myMessage) + 10) :: cMessage |
59 |
|
|
60 |
< |
cMessage = cMessage//"ROUTINE:"//trim(myRoutine)//trim(myMessage)//null |
60 |
> |
painCave%errMsg = "ROUTINE:" // trim(myRoutine) // newline // & |
61 |
> |
tab // trim(myMessage) // newline // nullchar |
62 |
|
|
63 |
< |
call c_warning(cMessage) |
64 |
< |
end subroutine warning |
63 |
> |
painCave%severity = OOPSE_WARNING |
64 |
> |
painCave%isFatal = .false. |
65 |
|
|
66 |
+ |
call c_simError(painCave) |
67 |
|
|
68 |
< |
|
69 |
< |
|
72 |
< |
|
73 |
< |
|
74 |
< |
|
75 |
< |
|
76 |
< |
|
77 |
< |
|
68 |
> |
end subroutine handleWarning |
69 |
> |
|
70 |
|
end module status |