PageRenderTime 46ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/src/posix_default.f90

http://github.com/astrofrog/fortranlib
FORTRAN Modern | 64 lines | 29 code | 9 blank | 26 comment | 0 complexity | b7961752c6128fb1e7585e9a210654b9 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. ! ------------------------------------------------------------------------------
  2. ! Copyright (c) 2009-13, Thomas P. Robitaille
  3. !
  4. ! All rights reserved.
  5. !
  6. ! Redistribution and use in source and binary forms, with or without
  7. ! modification, are permitted provided that the following conditions are met:
  8. !
  9. ! * Redistributions of source code must retain the above copyright notice, this
  10. ! list of conditions and the following disclaimer.
  11. !
  12. ! * Redistributions in binary form must reproduce the above copyright notice,
  13. ! this list of conditions and the following disclaimer in the documentation
  14. ! and/or other materials provided with the distribution.
  15. !
  16. ! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  17. ! AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  18. ! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  19. ! DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  20. ! FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  21. ! DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  22. ! SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  23. ! CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  24. ! OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  25. ! OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  26. ! ------------------------------------------------------------------------------
  27. module posix
  28. use iso_c_binding
  29. implicit none
  30. save
  31. interface
  32. subroutine usleep(useconds) bind(C)
  33. use iso_c_binding
  34. implicit none
  35. integer(c_int32_t), value :: useconds
  36. end subroutine usleep
  37. end interface
  38. contains
  39. logical function file_exists(file)
  40. implicit none
  41. character(len=*),intent(in) :: file
  42. integer :: access
  43. file_exists = access(file,' ').eq.0
  44. end function file_exists
  45. logical function dir_exists(dir)
  46. implicit none
  47. character(len=*),intent(in) :: dir
  48. integer :: access
  49. dir_exists = access(dir,' ').eq.0
  50. end function dir_exists
  51. subroutine microsleep(microseconds)
  52. integer,intent(in) :: microseconds
  53. call usleep(int(microseconds, c_int32_t))
  54. end subroutine microsleep
  55. end module posix