| Class | k_date |
| In: |
k_date.f90
|
| Function : | |||
| result : | real(8) | ||
| year : | integer, intent(in)
| ||
| month : | integer, intent(in)
| ||
| day : | integer, intent(in)
| ||
| hour : | integer, intent(in), optional
| ||
| minute : | integer, intent(in), optional
| ||
| second : | integer, intent(in), optional
|
入力日時から変数 year の通日 (Day of Year) を返す。
real(8) function DayOfYear(year,month,day,hour,minute,second) result(result)
!
! 入力日時から変数 year の通日 (Day of Year) を返す。
!
integer, intent(in) :: year ! 年
integer, intent(in) :: month ! 月
integer, intent(in) :: day ! 日
integer, intent(in), optional :: hour ! 時
integer, intent(in), optional :: minute ! 分
integer, intent(in), optional :: second ! 秒
if (present(second)) then
result = MJD(year,month,day,hour,minute,second)
else if (present(minute)) then
result = MJD(year,month,day,hour,minute)
else if (present(hour)) then
result = MJD(year,month,day,hour)
else
result = MJD(year,month,day)
end if
result = result - MJD(year,1,1) + 1.0
end function DayOfYear
| Function : | |||
| result : | real(8) | ||
| year : | integer, intent(in)
| ||
| month : | integer, intent(in)
| ||
| day : | integer, intent(in)
| ||
| hour : | integer, intent(in), optional
| ||
| minute : | integer, intent(in), optional
| ||
| second : | integer, intent(in), optional
|
入力日時から修正ユリウス通日を返す。
real(8) function MJD(year,month,day,hour,minute,second) result(result)
!
! 入力日時から修正ユリウス通日を返す。
!
integer, intent(in) :: year ! 年
integer, intent(in) :: month ! 月
integer, intent(in) :: day ! 日
integer, intent(in), optional :: hour ! 時
integer, intent(in), optional :: minute ! 分
integer, intent(in), optional :: second ! 秒
integer, external :: julday ! ユリウス日
! (紀元前4713年1月1日12:00)
result = julday(month,day,year) - 2400000.5
if (present(hour)) then
result = result + hour/24.0
end if
if (present(minute)) then
result = result + minute/24.0/60.0
end if
if (present(second)) then
result = result + second/24.0/60.0/60.0
end if
end function MJD
| Subroutine : | |
| year : | integer, intent(out) |
| month : | integer, intent(out) |
| day : | integer, intent(out) |
| hour : | integer, intent(out) |
| minute : | integer, intent(out) |
| second : | integer, intent(out) |
年、月、日、時、分、秒を標準入力から読み込む。
subroutine readDate(year,month,day,hour,minute,second)
!
! 年、月、日、時、分、秒を標準入力から読み込む。
!
integer, intent(out) :: year
integer, intent(out) :: month
integer, intent(out) :: day
integer, intent(out) :: hour
integer, intent(out) :: minute
integer, intent(out) :: second
write(*,*) 'Year ?'
read(*,*) year
write(*,*) 'Month ?'
read(*,*) month
write(*,*) 'Day ?'
read(*,*) day
write(*,*) 'Hour ?'
read(*,*) hour
write(*,*) 'Minute ?'
read(*,*) minute
write(*,*) 'Second ?'
read(*,*) second
write(*,'(a,i4,a,i2,a,i2,a,i2,a,i2,a,i2)') 'date::', year, '/', month, '/', day, ' ', hour, ':', minute, ':', second
end subroutine readDate