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