source: LMDZ6/branches/DYNAMICO-conv/libf/misc/handle_err_m.F90

Last change on this file was 3065, checked in by Laurent Fairhead, 7 years ago

Continuing LMDZ/DYNAMICO physiqs match-up. First step in replacing dtime in the physics

  • 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:keywords set to Id
File size: 1.2 KB
RevLine 
[1157]1! $Id: handle_err_m.F90 3065 2017-11-10 13:25:09Z aclsce $
2module handle_err_m
3
4  implicit none
5
6contains
7
8  subroutine handle_err(message, ncerr, ncid, varid)
9
10    use netcdf, only: nf90_strerror, nf90_noerr, nf90_close
11
12    character(len=*), intent(in):: message
13    ! (should include name of calling procedure)
14
15    integer, intent(in):: ncerr
16
17    integer, intent(in), optional :: ncid
18    ! (Provide this argument if you want "handle_err" to try to close
19    ! the file.)
20
21    integer, intent(in), optional :: varid
22
23    ! Variable local to the procedure:
24    integer ncerr_close
25
26    !-------------------
27
28    if (ncerr /= nf90_noerr) then
29       print *, message, ":"
30       if (present(varid)) print *, "varid = ", varid
31       print *, trim(nf90_strerror(ncerr))
32       if (present(ncid)) then
33          ! Try to close, to leave the file in a consistent state:
34          ncerr_close = nf90_close(ncid)
35          ! (do not call "nf95_close", we do not want to recurse)
36          if (ncerr_close /= nf90_noerr) then
37             print *, "nf90_close:"
38             print *, trim(nf90_strerror(ncerr_close))
39          end if
40       end if
[3065]41       call abort_physic("NetCDF95 handle_err", "", 1)
[1157]42    end if
43
44  end subroutine handle_err
45
46end module handle_err_m
Note: See TracBrowser for help on using the repository browser.