1 | MODULE errioipsl_psmile |
---|
2 | !--------------------------------------------------------------------- |
---|
3 | CONTAINS |
---|
4 | != |
---|
5 | SUBROUTINE histerr (plev, pcname, pstr1, pstr2, pstr3) |
---|
6 | !--------------------------------------------------------------------- |
---|
7 | !- INPUT |
---|
8 | !- plev : Category of message to be reported to the user |
---|
9 | !- 1 = Note to the user |
---|
10 | !- 2 = Warning to the user |
---|
11 | !- 3 = Fatal error |
---|
12 | !- pcname : Name of subroutine which has called histerr |
---|
13 | !- pstr1 |
---|
14 | !- pstr2 : String containing the explanations to the user |
---|
15 | !- pstr3 |
---|
16 | !--------------------------------------------------------------------- |
---|
17 | USE mod_kinds_model |
---|
18 | IMPLICIT NONE |
---|
19 | !- |
---|
20 | INTEGER (kind=ip_intwp_p) :: plev |
---|
21 | CHARACTER(LEN=*) :: pcname,pstr1,pstr2,pstr3 |
---|
22 | !- |
---|
23 | CHARACTER(LEN=30),DIMENSION(3) :: pemsg = & |
---|
24 | & (/ "NOTE TO THE USER FROM ROUTINE ", & |
---|
25 | & "WARNING FROM ROUTINE ", & |
---|
26 | & "FATAL ERROR FROM ROUTINE " /) |
---|
27 | !--------------------------------------------------------------------- |
---|
28 | IF ( (plev >= 1).AND.(plev <= 3) ) THEN |
---|
29 | WRITE(*,'(" ")') |
---|
30 | WRITE(*,'(A," ",A)') TRIM(pemsg(plev)),TRIM(pcname) |
---|
31 | WRITE(*,'(" --> ",a)') pstr1 |
---|
32 | WRITE(*,'(" --> ",a)') pstr2 |
---|
33 | WRITE(*,'(" --> ",a)') pstr3 |
---|
34 | ENDIF |
---|
35 | IF (plev == 3) THEN |
---|
36 | STOP 'Fatal error from IOIPSL. See stdout for more details' |
---|
37 | ENDIF |
---|
38 | !------------------------ |
---|
39 | END SUBROUTINE histerr |
---|
40 | != |
---|
41 | !------------------- |
---|
42 | END MODULE errioipsl_psmile |
---|