1 |
|
|
! |
2 |
|
|
! $Id: abort_gcm.F 2100 2014-07-22 16:33:56Z lguez $ |
3 |
|
|
! |
4 |
|
|
c |
5 |
|
|
c |
6 |
|
4 |
SUBROUTINE abort_gcm(modname, message, ierr) |
7 |
|
|
|
8 |
|
|
#ifdef CPP_IOIPSL |
9 |
|
|
USE IOIPSL |
10 |
|
|
#else |
11 |
|
|
! if not using IOIPSL, we still need to use (a local version of) getin_dump |
12 |
|
|
USE ioipsl_getincom |
13 |
|
|
#endif |
14 |
|
|
|
15 |
|
|
#ifdef CPP_XIOS |
16 |
|
|
! ug Pour les sorties XIOS |
17 |
|
|
USE wxios |
18 |
|
|
#endif |
19 |
|
|
|
20 |
|
|
#include "iniprint.h" |
21 |
|
|
|
22 |
|
|
C |
23 |
|
|
C Stops the simulation cleanly, closing files and printing various |
24 |
|
|
C comments |
25 |
|
|
C |
26 |
|
|
C Input: modname = name of calling program |
27 |
|
|
C message = stuff to print |
28 |
|
|
C ierr = severity of situation ( = 0 normal ) |
29 |
|
|
|
30 |
|
|
character(len=*), intent(in):: modname |
31 |
|
|
integer, intent(in):: ierr |
32 |
|
|
character(len=*), intent(in):: message |
33 |
|
|
|
34 |
|
1 |
write(lunout,*) 'in abort_gcm' |
35 |
|
|
|
36 |
|
|
#ifdef CPP_XIOS |
37 |
|
|
!Fermeture propre de XIOS |
38 |
|
|
CALL wxios_close() |
39 |
|
|
#endif |
40 |
|
|
|
41 |
|
|
#ifdef CPP_IOIPSL |
42 |
|
1 |
call histclo |
43 |
|
1 |
call restclo |
44 |
|
|
#endif |
45 |
|
1 |
call getin_dump |
46 |
|
|
c call histclo(2) |
47 |
|
|
c call histclo(3) |
48 |
|
|
c call histclo(4) |
49 |
|
|
c call histclo(5) |
50 |
|
1 |
write(lunout,*) 'Stopping in ', modname |
51 |
|
1 |
write(lunout,*) 'Reason = ',message |
52 |
✓✗ |
1 |
if (ierr .eq. 0) then |
53 |
|
1 |
write(lunout,*) 'Everything is cool' |
54 |
|
1 |
stop |
55 |
|
|
else |
56 |
|
|
write(lunout,*) 'Houston, we have a problem, ierr = ', ierr |
57 |
|
|
stop 1 |
58 |
|
|
endif |
59 |
|
|
END |