dcdatetimeparseunits.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

integer function dcdatetimeparseunits (str)
 

Function/Subroutine Documentation

◆ dcdatetimeparseunits()

integer function dcdatetimeparseunits ( character(*), intent(in)  str)

Definition at line 11 of file dcdatetimeparseunits.f90.

References dc_types::token, dc_date_types::unit_day, dc_date_types::unit_hour, dc_date_types::unit_min, dc_date_types::unit_month, dc_date_types::unit_nondim, dc_date_types::unit_sec, dc_date_types::unit_symbol_day, dc_date_types::unit_symbol_err, dc_date_types::unit_symbol_hour, dc_date_types::unit_symbol_min, dc_date_types::unit_symbol_month, dc_date_types::unit_symbol_nondim, dc_date_types::unit_symbol_sec, dc_date_types::unit_symbol_year, and dc_date_types::unit_year.

11  !
12  ! 引数 *str* に与えられた文字列を解釈し, 日時の単位を示す
13  ! シンボルを返します. それぞれ以下の文字列が日時の単位として解釈されます.
14  ! 大文字と小文字は区別されません.
15  !
16  ! 年 :: dc_date_types#UNIT_YEAR
17  ! 月 :: dc_date_types#UNIT_MONTH
18  ! 日 :: dc_date_types#UNIT_DAY
19  ! 時 :: dc_date_types#UNIT_HOUR
20  ! 分 :: dc_date_types#UNIT_MIN
21  ! 秒 :: dc_date_types#UNIT_SEC
22  ! 無次元時間 :: dc_date_types#UNIT_NONDIM
23  !
24  ! 返るシンボル (整数型) は以下の通りです.
25  !
26  ! 年 :: dc_date_types#UNIT_SYMBOL_YEAR
27  ! 月 :: dc_date_types#UNIT_SYMBOL_MONTH
28  ! 日 :: dc_date_types#UNIT_SYMBOL_DAY
29  ! 時 :: dc_date_types#UNIT_SYMBOL_HOUR
30  ! 分 :: dc_date_types#UNIT_SYMBOL_MIN
31  ! 秒 :: dc_date_types#UNIT_SYMBOL_SEC
32  ! 無次元時間 :: dc_date_types#UNIT_SYMBOL_NONDIM
33  !
34  ! これらに該当しない文字列を *str* に与えた場合,
35  ! dc_date_types#UNIT_SYMBOL_ERR が返ります.
36  !
37  use dc_types, only: token
43  use dc_string, only: strieq
44  implicit none
45  character(*), intent(in):: str
46  integer:: symbol
47  integer:: unit_str_size, i
48  character(TOKEN):: unit
49  continue
50  unit = adjustl(str)
51  unit_str_size = size(unit_nondim)
52  do i = 1, unit_str_size
53  if (strieq(trim(unit), trim(unit_nondim(i)))) then
54  symbol = unit_symbol_nondim
55  return
56  end if
57  end do
58 
59  unit_str_size = size(unit_sec)
60  do i = 1, unit_str_size
61  if (strieq(trim(unit), trim(unit_sec(i)))) then
62  symbol = unit_symbol_sec
63  return
64  end if
65  end do
66 
67  unit_str_size = size(unit_min)
68  do i = 1, unit_str_size
69  if (strieq(trim(unit), trim(unit_min(i)))) then
70  symbol = unit_symbol_min
71  return
72  end if
73  end do
74 
75  unit_str_size = size(unit_hour)
76  do i = 1, unit_str_size
77  if (strieq(trim(unit), trim(unit_hour(i)))) then
78  symbol = unit_symbol_hour
79  return
80  end if
81  end do
82 
83  unit_str_size = size(unit_day)
84  do i = 1, unit_str_size
85  if (strieq(trim(unit), trim(unit_day(i)))) then
86  symbol = unit_symbol_day
87  return
88  end if
89  end do
90 
91  unit_str_size = size(unit_month)
92  do i = 1, unit_str_size
93  if (strieq(trim(unit), trim(unit_month(i)))) then
94  symbol = unit_symbol_month
95  return
96  end if
97  end do
98 
99  unit_str_size = size(unit_year)
100  do i = 1, unit_str_size
101  if (strieq(trim(unit), trim(unit_year(i)))) then
102  symbol = unit_symbol_year
103  return
104  end if
105  end do
106 
107  symbol = unit_symbol_err
108 
integer, parameter, public unit_symbol_nondim
character(*), dimension(4), parameter, public unit_min
character(*), dimension(4), parameter, public unit_day
integer, parameter, public unit_symbol_month
integer, parameter, public unit_symbol_err
integer, parameter, public unit_symbol_min
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public unit_symbol_hour
character(*), dimension(8), parameter, public unit_hour
character(*), dimension(1), parameter, public unit_nondim
character(*), dimension(4), parameter, public unit_year
文字型変数の操作.
Definition: dc_string.f90:24
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public unit_symbol_sec
integer, parameter, public unit_symbol_day
integer, parameter, public unit_symbol_year
character(*), dimension(8), parameter, public unit_sec
character(*), dimension(6), parameter, public unit_month