source: LMDZ5/branches/testing/libf/dyn3dpar/abort_gcm.F @ 5080

Last change on this file since 5080 was 2160, checked in by Laurent Fairhead, 10 years ago

Merged trunk changes -r2070:2158 into testing branch. Compilation problems introduced by revision r2155 have been corrected by hand

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.3 KB
RevLine 
[630]1!
[1279]2! $Id: abort_gcm.F 2160 2014-11-28 15:36:29Z abarral $
[630]3!
4c
5c
6      SUBROUTINE abort_gcm(modname, message, ierr)
7     
8#ifdef CPP_IOIPSL
9      USE IOIPSL
[1279]10#else
11! if not using IOIPSL, we still need to use (a local version of) getin_dump
12      USE ioipsl_getincom
[630]13#endif
[1864]14      USE parallel_lmdz
15
16
17
18
[630]19#include "iniprint.h"
20 
21C
22C Stops the simulation cleanly, closing files and printing various
23C comments
24C
25C  Input: modname = name of calling program
26C         message = stuff to print
27C         ierr    = severity of situation ( = 0 normal )
28
[2160]29      character(len=*), intent(in):: modname
[1795]30      integer ierr, ierror_mpi
[2160]31      character(len=*), intent(in):: message
[630]32
33      write(lunout,*) 'in abort_gcm'
34#ifdef CPP_IOIPSL
[985]35c$OMP MASTER
[630]36      call histclo
37      call restclo
[1279]38      if (MPI_rank .eq. 0) then
39         call getin_dump
40      endif
[985]41c$OMP END MASTER
[630]42#endif
[1864]43
44
45
[630]46c     call histclo(2)
47c     call histclo(3)
48c     call histclo(4)
49c     call histclo(5)
50      write(lunout,*) 'Stopping in ', modname
51      write(lunout,*) 'Reason = ',message
52      if (ierr .eq. 0) then
53        write(lunout,*) 'Everything is cool'
54      else
[2160]55        write(lunout,*) 'Houston, we have a problem, ierr = ', ierr
[1795]56#ifdef CPP_MPI
57C$OMP CRITICAL (MPI_ABORT_GCM)
58        call MPI_ABORT(COMM_LMDZ, 1, ierror_mpi)
59C$OMP END CRITICAL (MPI_ABORT_GCM)
60#else
[1425]61        stop 1
[1795]62#endif         
[630]63      endif
64      END
Note: See TracBrowser for help on using the repository browser.