dcdatetimeeq.f90
Go to the documentation of this file.
1 != 利用者定義演算子 (==) のための関数
2 != Functions for user defined operation (==)
3 !
4 ! Authors:: Yasuhiro MORIKAWA
5 ! Version:: $Id: dcdatetimeeq.f90,v 1.1 2009-05-25 10:01:34 morikawa Exp $
6 ! Tag Name:: $Name: $
7 ! Copyright:: Copyright (C) GFD Dennou Club, 2000-2005. All rights reserved.
8 ! License:: See COPYRIGHT[link:../../COPYRIGHT]
9 !
10  logical function dcdatetime_eq_tt(time1, time2) result(result)
11  !
12  ! 2 つの引数の日時を比較します.
13  ! 1 つ目の引数に格納される日時が 2 つ目の引数に格納される日時
14  ! と同じ場合, .true. が返ります.
15  !
18  use dc_scaledsec, only: dc_scaled_sec, &
19  & operator(==), operator(<), operator(>), operator(<=), operator(>=), &
20  & operator(+), assignment(=)
21  implicit none
22  type(dc_datetime), intent(in):: time1, time2
23  type(dc_scaled_sec):: year1, year2, time1_sec, time2_sec
24  continue
25  call eval(time1, sclyear=year1)
26  call eval(time2, sclyear=year2)
27  time1_sec = evalsclsec(time1) + evalsclsec(zonetodiff(time1 % zone))
28  time2_sec = evalsclsec(time2) + evalsclsec(zonetodiff(time2 % zone))
29  if (year1 == year2 .and. time1_sec == time2_sec) then
30  result = .true.
31  else
32  result = .false.
33  end if
34  end function dcdatetime_eq_tt
35 
36 
37  logical function dcdatetime_eq_ff(diff1, diff2) result(result)
38  !
39  ! 2 つの引数の日時差を比較します.
40  ! 1 つ目の引数に格納される日時差が 2 つ目の引数に格納される日時差
41  ! と同じ場合, .true. が返ります.
42  !
43  use dc_scaledsec, only: operator(==)
45  implicit none
46  type(dc_difftime), intent(in):: diff1, diff2
47  continue
48  if ( diff1 % mon == diff2 % mon &
49  & .and. diff1 % day == diff2 % day &
50  & .and. diff1 % sec == diff2 % sec ) then
51  result = .true.
52  else
53  result = .false.
54  end if
55  end function dcdatetime_eq_ff
56 
57  logical function dcdatetime_eq_if(i, diff) result(result)
58  !
59  ! 引数 *diff* の日時差が *i* と等しいかどうかを比較します. *diff*
60  ! を秒数に換算した値と *i* とが等しい場合, .true. が返ります.
61  !
62  use dc_date_generic, only: operator(==)
64  implicit none
65  type(dc_difftime), intent(in):: diff
66  integer, intent(in):: i
67  continue
68  result = real(i) == diff
69  end function dcdatetime_eq_if
70 
71  logical function dcdatetime_eq_fi(diff, i) result(result)
72  use dc_date_generic, only: operator(==)
74  implicit none
75  type(dc_difftime), intent(in):: diff
76  integer, intent(in):: i
77  continue
78  result = i == diff
79  end function dcdatetime_eq_fi
80 
81  logical function dcdatetime_eq_rf(r, diff) result(result)
82  !
83  ! 引数 *diff* の日時差が *r* と等しいかどうかを比較します. *diff*
84  ! を秒数に換算した値と *r* とが等しい場合, .true. が返ります.
85  !
86  use dc_scaledsec, only: operator(==)
87  use dc_date_generic, only: evalsclsec
89  implicit none
90  type(dc_difftime), intent(in):: diff
91  real, intent(in):: r
92  continue
93  if (evalsclsec(diff) == r) then
94  result = .true.
95  else
96  result = .false.
97  end if
98  end function dcdatetime_eq_rf
99 
100  logical function dcdatetime_eq_fr(diff, r) result(result)
101  use dc_date_generic, only: operator(==)
103  implicit none
104  type(dc_difftime), intent(in):: diff
105  real, intent(in):: r
106  continue
107  result = r == diff
108  end function dcdatetime_eq_fr
109 
110  logical function dcdatetime_eq_df(d, diff) result(result)
111  !
112  ! 引数 *diff* の日時差が *d* と等しいかどうかを比較します. *diff*
113  ! を秒数に換算した値と *d* とが等しい場合, .true. が返ります.
114  !
115  use dc_date_generic, only: evalsclsec
117  use dc_scaledsec, only: operator(==)
118  use dc_types, only: dp
119  implicit none
120  type(dc_difftime), intent(in):: diff
121  real(DP), intent(in):: d
122  continue
123  if (evalsclsec(diff) == d) then
124  result = .true.
125  else
126  result = .false.
127  end if
128  end function dcdatetime_eq_df
129 
130  logical function dcdatetime_eq_fd(diff, d) result(result)
131  use dc_date_generic, only: operator(==)
132  use dc_types, only: dp
134  implicit none
135  type(dc_difftime), intent(in):: diff
136  real(DP), intent(in):: d
137  continue
138  result = d == diff
139  end function dcdatetime_eq_fd
logical function dcdatetime_eq_fr(diff, r)
logical function dcdatetime_eq_ff(diff1, diff2)
logical function dcdatetime_eq_fd(diff, d)
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
logical function dcdatetime_eq_rf(r, diff)
種別型パラメタを提供します。
Definition: dc_types.f90:49
logical function dcdatetime_eq_fi(diff, i)
logical function dcdatetime_eq_df(d, diff)
logical function dcdatetime_eq_tt(time1, time2)
logical function dcdatetime_eq_if(i, diff)