DAMASK_EICMD/src/quit.f90

53 lines
2.3 KiB
Fortran
Raw Normal View History

2018-09-27 23:39:59 +05:30
!--------------------------------------------------------------------------------------------------
!> @author Martin Diehl, Max-Planck-Institut für Eisenforschung GmbH
!> @brief quit subroutine
!> @details exits the program and reports current time and duration. Exit code 0 signals
2020-01-02 18:09:52 +05:30
!> everything is fine. Exit code 1 signals an error, message according to IO_error.
2018-09-27 23:39:59 +05:30
!--------------------------------------------------------------------------------------------------
subroutine quit(stop_id)
#include <petsc/finclude/petscsys.h>
2021-07-22 03:13:55 +05:30
use PETScSys
#if (PETSC_VERSION_MAJOR==3 && PETSC_VERSION_MINOR>14) && !defined(PETSC_HAVE_MPI_F90MODULE_VISIBILITY)
use MPI_f08
#endif
2020-01-03 01:48:56 +05:30
use HDF5
2019-06-16 00:02:53 +05:30
implicit none
integer, intent(in) :: stop_id
integer, dimension(8) :: dateAndTime
integer :: err_HDF5
integer(MPI_INTEGER_KIND) :: err_MPI
PetscErrorCode :: err_PETSc
2019-06-16 00:02:53 +05:30
call h5open_f(err_HDF5)
if (err_HDF5 /= 0_MPI_INTEGER_KIND) write(6,'(a,i5)') ' Error in h5open_f ',err_HDF5 ! prevents error if not opened yet
call h5close_f(err_HDF5)
if (err_HDF5 /= 0_MPI_INTEGER_KIND) write(6,'(a,i5)') ' Error in h5close_f ',err_HDF5
2019-06-16 00:02:53 +05:30
call PetscFinalize(err_PETSc)
CHKERRQ(err_PETSc)
2019-06-16 00:02:53 +05:30
2018-09-27 23:39:59 +05:30
#ifdef _OPENMP
call MPI_finalize(err_MPI)
if (err_MPI /= 0_MPI_INTEGER_KIND) write(6,'(a,i5)') ' Error in MPI_finalize',err_MPI
#else
err_MPI = 0_MPI_INTEGER_KIND
2018-09-27 23:39:59 +05:30
#endif
2019-06-16 00:02:53 +05:30
call date_and_time(values = dateAndTime)
write(6,'(/,a)') ' DAMASK terminated on:'
write(6,'(a,2(i2.2,a),i4.4)') ' Date: ',dateAndTime(3),'/',&
dateAndTime(2),'/',&
dateAndTime(1)
write(6,'(a,2(i2.2,a),i2.2)') ' Time: ',dateAndTime(5),':',&
dateAndTime(6),':',&
dateAndTime(7)
2018-09-27 23:39:59 +05:30
if (stop_id == 0 .and. &
err_HDF5 == 0 .and. &
err_MPI == 0_MPI_INTEGER_KIND .and. &
err_PETSC == 0) stop 0 ! normal termination
2019-06-16 00:02:53 +05:30
stop 1 ! error (message from IO_error)
2018-09-27 23:39:59 +05:30
end subroutine quit