19 INTEGER :: n_l=6, ilv_cur=0, ilv_max=0
20 LOGICAL :: ioipsl_debug=.FALSE., lact_mode=.TRUE.
25 SUBROUTINE ipslnlf (new_number,old_number)
42 INTEGER,
OPTIONAL,
INTENT(IN) :: new_number
43 INTEGER,
OPTIONAL,
INTENT(OUT) :: old_number
45 IF (present(old_number))
THEN
48 IF (present(new_number))
THEN
54 SUBROUTINE ipslerr (plev,pcname,pstr1,pstr2,pstr3)
73 CHARACTER(LEN=*) :: pcname,pstr1,pstr2,pstr3
75 CHARACTER(LEN=30),
DIMENSION(3) :: pemsg = &
76 & (/
"NOTE TO THE USER FROM ROUTINE ", &
77 &
"WARNING FROM ROUTINE ", &
78 &
"FATAL ERROR FROM ROUTINE " /)
80 IF ( (plev >= 1).AND.(plev <= 3) )
THEN
82 ilv_max = max(ilv_max,plev)
83 WRITE(n_l,
'(/,A," ",A)') trim(pemsg(plev)),trim(pcname)
84 WRITE(n_l,
'(3(" --> ",A,/))') trim(pstr1),trim(pstr2),trim(pstr3)
86 IF ( (plev == 3).AND.lact_mode)
THEN
87 stop
'Fatal error from IOIPSL. See stdout for more details'
112 LOGICAL,
OPTIONAL,
INTENT(IN) :: new_mode
113 LOGICAL,
OPTIONAL,
INTENT(OUT) :: old_mode
115 IF (present(old_mode))
THEN
118 IF (present(new_mode))
THEN
142 INTEGER,
OPTIONAL,
INTENT(OUT) :: current_level,maximum_level
144 IF (present(current_level))
THEN
145 current_level = ilv_cur
147 IF (present(maximum_level))
THEN
148 maximum_level = ilv_max
153 SUBROUTINE histerr (plev,pcname,pstr1,pstr2,pstr3)
168 CHARACTER(LEN=*) :: pcname,pstr1,pstr2,pstr3
170 CHARACTER(LEN=30),
DIMENSION(3) :: pemsg = &
171 & (/
"NOTE TO THE USER FROM ROUTINE ", &
172 &
"WARNING FROM ROUTINE ", &
173 &
"FATAL ERROR FROM ROUTINE " /)
175 IF ( (plev >= 1).AND.(plev <= 3) )
THEN
177 WRITE(*,
'(A," ",A)') trim(pemsg(plev)),trim(pcname)
178 WRITE(*,
'(" --> ",A)') pstr1
179 WRITE(*,
'(" --> ",A)') pstr2
180 WRITE(*,
'(" --> ",A)') pstr3
183 stop
'Fatal error from IOIPSL. See stdout for more details'
206 LOGICAL,
OPTIONAL,
INTENT(IN) :: new_status
207 LOGICAL,
OPTIONAL,
INTENT(OUT) :: old_status
209 IF (present(old_status))
THEN
210 old_status = ioipsl_debug
212 IF (present(new_status))
THEN
213 ioipsl_debug = new_status