Loading...
Searching...
No Matches
Functions/Subroutines
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 10 of file dcdatetimeparseunits.f90.

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
character(*), dimension(6), parameter, public unit_month
integer, parameter, public unit_symbol_err
integer, parameter, public unit_symbol_hour
integer, parameter, public unit_symbol_min
integer, parameter, public unit_symbol_month
character(*), dimension(1), parameter, public unit_nondim
integer, parameter, public unit_symbol_sec
integer, parameter, public unit_symbol_nondim
character(*), dimension(4), parameter, public unit_day
character(*), dimension(8), parameter, public unit_sec
character(*), dimension(8), parameter, public unit_hour
integer, parameter, public unit_symbol_day
character(*), dimension(4), parameter, public unit_year
integer, parameter, public unit_symbol_year
character(*), dimension(4), parameter, public unit_min
種別型パラメタを提供します。
Definition dc_types.f90:49
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition dc_types.f90:109

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.