dcdatetimeputline.f90

Path: dc_utils/dcdatetimeputline.f90
Last Update: Mon May 25 19:01:34 +0900 2009

dc_date_types#DC_DATETIME, dc_date_types#DC_DIFFTIME の印字

Authors:Yasuhiro MORIKAWA
Version:$Id: dcdatetimeputline.f90,v 1.2 2009-05-25 10:01:34 morikawa Exp $
Tag Name:$Name: gtool5-20090729 $
Copyright:Copyright (C) GFD Dennou Club, 2000-2005. All rights reserved.
License:See COPYRIGHT

このファイルで提供される手続き群は dc_date モジュールにて提供されます。

Methods

Included Modules

dc_date_types dc_date_generic dc_string dc_trace dc_types dc_scaledsec

Public Instance methods

Subroutine :
time :type(DC_DATETIME), intent(in)
unit :integer, intent(in), optional
: 出力先の装置番号. デフォルトの出力先は標準出力.

Unit number for output. Default value is standard output.

indent :character(*), intent(in), optional
: 表示されるメッセージの字下げ.

Indent of displayed messages.

引数 time に設定されている情報を印字します. デフォルトではメッセージは標準出力に出力されます. unit に装置番号を指定することで, 出力先を変更することが可能です.

Print information of time. By default messages are output to standard output. Unit number for output can be changed by unit argument.

[Source]

subroutine DCDateTimePutLine( time, unit, indent )
  !
  ! 引数 *time* に設定されている情報を印字します. 
  ! デフォルトではメッセージは標準出力に出力されます. 
  ! *unit* に装置番号を指定することで, 出力先を変更することが可能です. 
  !
  ! Print information of *time*. 
  ! By default messages are output to standard output. 
  ! Unit number for output can be changed by *unit* argument. 
  !
  use dc_date_types, only: DC_DATETIME
  use dc_date_generic, only: toChar
  use dc_string, only: Printf
  use dc_trace, only: BeginSub, EndSub
  use dc_types, only: STDOUT, STRING
  use dc_scaledsec, only: DCScaledSecPutLine
  implicit none
  type(DC_DATETIME), intent(in) :: time
  integer, intent(in), optional :: unit
                              ! 出力先の装置番号. 
                              ! デフォルトの出力先は標準出力. 
                              !
                              ! Unit number for output. 
                              ! Default value is standard output. 
  character(*), intent(in), optional:: indent
                              ! 表示されるメッセージの字下げ. 
                              !
                              ! Indent of displayed messages. 

  integer :: out_unit
  integer:: indent_len
  character(STRING):: indent_str
  character(*), parameter :: subname = 'DCDateTimePutLine'
continue
  call BeginSub(subname)
  if (present(unit)) then
    out_unit = unit
  else
    out_unit = STDOUT
  end if

  indent_len = 0
  indent_str = ''
  if ( present(indent) ) then
    if ( len(indent) /= 0 ) then
      indent_len = len(indent)
      indent_str(1:indent_len) = indent
    end if
  end if

  call Printf(out_unit, indent_str(1:indent_len) // '#<DC_DATETIME:: @date=%c @caltype=%d @zone=%c', i=(/time % caltype/), c1=trim(toChar(time)), c2=trim(time % zone) )

  call Printf(out_unit, indent_str(1:indent_len) // '                @day=' )
  call DCScaledSecPutLine( time % day, unit = unit, indent = indent_str(1:indent_len) // '                     ' )

  call Printf(out_unit, indent_str(1:indent_len) // '                @sec=' )
  call DCScaledSecPutLine( time % sec, unit = unit, indent = indent_str(1:indent_len) // '                     ' )

  call Printf(out_unit, indent_str(1:indent_len) // '>' )

999 continue
  call EndSub(subname)
end subroutine DCDateTimePutLine
Subroutine :
time :type(DC_DATETIME), intent(in)
unit :integer, intent(in), optional

[Source]

subroutine DCDateTimePutLine_bc(time, unit)
  use dc_date_types, only: DC_DATETIME
  use dc_date_generic, only: DCDateTimePutLine
  type(DC_DATETIME), intent(in) :: time
  integer, intent(in), optional :: unit
continue
  call DCDateTimePutLine( time, unit )
end subroutine DCDateTimePutLine_bc
Subroutine :
diff :type(DC_DIFFTIME), intent(in)
unit :integer, intent(in), optional
: 出力先の装置番号. デフォルトの出力先は標準出力.

Unit number for output. Default value is standard output.

indent :character(*), intent(in), optional
: 表示されるメッセージの字下げ.

Indent of displayed messages.

引数 diff に設定されている情報を印字します. デフォルトではメッセージは標準出力に出力されます. unit に装置番号を指定することで, 出力先を変更することが可能です.

Print information of diff. By default messages are output to standard output. Unit number for output can be changed by unit argument.

[Source]

subroutine DCDiffTimePutLine( diff, unit, indent )
  !
  ! 引数 *diff* に設定されている情報を印字します. 
  ! デフォルトではメッセージは標準出力に出力されます. 
  ! *unit* に装置番号を指定することで, 出力先を変更することが可能です. 
  !
  ! Print information of *diff*. 
  ! By default messages are output to standard output. 
  ! Unit number for output can be changed by *unit* argument. 
  !
  use dc_date_types, only: DC_DIFFTIME
  use dc_date_generic, only: toChar
  use dc_string, only: Printf
  use dc_trace, only: BeginSub, EndSub
  use dc_types, only: STDOUT, STRING
  use dc_scaledsec, only: DCScaledSecPutLine
  implicit none
  type(DC_DIFFTIME), intent(in) :: diff
  integer, intent(in), optional :: unit
                              ! 出力先の装置番号. 
                              ! デフォルトの出力先は標準出力. 
                              !
                              ! Unit number for output. 
                              ! Default value is standard output. 
  character(*), intent(in), optional:: indent
                              ! 表示されるメッセージの字下げ. 
                              !
                              ! Indent of displayed messages. 

  integer :: out_unit
  integer:: indent_len
  character(STRING):: indent_str
  character(*), parameter :: subname = 'DCDiffTimePutLine'
continue
  call BeginSub(subname)
  if (present(unit)) then
    out_unit = unit
  else
    out_unit = STDOUT
  end if

  indent_len = 0
  indent_str = ''
  if ( present(indent) ) then
    if ( len(indent) /= 0 ) then
      indent_len = len(indent)
      indent_str(1:indent_len) = indent
    end if
  end if

  call Printf(out_unit, indent_str(1:indent_len) // '#<DC_DIFFTIME:: @diff=%c @nondim=%b', c1 = trim(toChar(diff)), l = (/ diff % nondim_flag /) )

  call Printf(out_unit, indent_str(1:indent_len) // '                @mon=' )
  call DCScaledSecPutLine( diff % mon, unit = unit, indent = indent_str(1:indent_len) // '                     ' )

  call Printf(out_unit, indent_str(1:indent_len) // '                @day=' )
  call DCScaledSecPutLine( diff % day, unit = unit, indent = indent_str(1:indent_len) // '                     ' )

  call Printf(out_unit, indent_str(1:indent_len) // '                @sec=' )
  call DCScaledSecPutLine( diff % sec, unit = unit, indent = indent_str(1:indent_len) // '                     ' )

  call Printf(out_unit, indent_str(1:indent_len) // '>' )

999 continue
  call EndSub(subname)
end subroutine DCDiffTimePutLine
Subroutine :
diff :type(DC_DIFFTIME), intent(in)
unit :integer, intent(in), optional

[Source]

subroutine DCDiffTimePutLine_bc(diff, unit)
  use dc_date_types, only: DC_DIFFTIME
  use dc_date_generic, only: DCDiffTimePutLine
  type(DC_DIFFTIME), intent(in) :: diff
  integer, intent(in), optional :: unit
continue
  call DCDiffTimePutLine( diff, unit )
end subroutine DCDiffTimePutLine_bc

[Validate]