Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
! ldate plain text only
! Copyright 2015-2022 Rivoreo
! Permission is hereby granted, free of charge, to any person obtaining
! a copy of this software and associated documentation files (the
! "Software"), to deal in the Software without restriction, including
! without limitation the rights to use, copy, modify, merge, publish,
! distribute, sublicense, and/or sell copies of the Software, and to
! permit persons to whom the Software is furnished to do so, subject to
! the following conditions:
! The above copyright notice and this permission notice shall be
! included in all copies or substantial portions of the Software.
! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
! EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
! NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE
! FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
! CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
! WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
PROGRAM LDATE
USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY : OUTPUT_UNIT
USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_INT
IMPLICIT NONE
INTERFACE
SUBROUTINE USLEEP(USEC) BIND(C, NAME="usleep")
IMPORT C_INT
INTEGER(C_INT), VALUE :: USEC
END SUBROUTINE
END INTERFACE
INTEGER,DIMENSION(8) :: DT
DO
CALL DATE_AND_TIME(VALUES=DT)
WRITE (
> UNIT=OUTPUT_UNIT,
> FMT="(A,I5,A,I2.2,A,I2.2,A,I2.2,A,I2.2,A,I2.2)",
> ADVANCE="NO"
> ),
> 13, DT(1), "-", DT(2), "-", DT(3),
> 32, DT(5), ":", DT(6), ":", DT(7)
FLUSH OUTPUT_UNIT
CALL USLEEP((1000 - DT(8)) * 1000)
END DO
END PROGRAM
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment