da_get_time_slots.inc
References to this file elsewhere.
1 subroutine da_get_time_slots(nt,tmin,tana,tmax,time_slots)
2
3 !------------------------------------------------------------------------------
4 ! Purpose: Calculate time slots for FGAT option.
5 !------------------------------------------------------------------------------
6
7 implicit none
8
9 integer, intent (in) :: nt ! number of time slots
10 character(len=19), intent (in) :: tmin ! begin of time window
11 character(len=19), intent (in) :: tana ! center of time window
12 character(len=19), intent (in) :: tmax ! end of time window
13 real, intent (out) :: time_slots(0:nt) !
14
15 integer :: min_yyyy,min_mm,min_dd,min_hh,min_mn,min_ss
16 integer :: max_yyyy,max_mm,max_dd,max_hh,max_mn,max_ss
17 character :: s
18 real :: dt
19 integer :: it
20
21 if (trace_use) call da_trace_entry("da_get_time_slots")
22
23 read(unit=tmin,fmt='(i4,5(a1,i2))') min_yyyy,s,min_mm,s,min_dd,s,min_hh,s,min_mn,s,min_ss
24 read(unit=tmax,fmt='(i4,5(a1,i2))') max_yyyy,s,max_mm,s,max_dd,s,max_hh,s,max_mn,s,max_ss
25
26 if (print_detail_rad) then
27 write(unit=stdout,fmt='(3X,A,I4,5(1X,I2))') 'Start julian time : ',min_yyyy,min_mm,min_dd,min_hh,min_mn,min_ss
28 write(unit=stdout,fmt='(3X,A,I4,5(1X,I2))') 'End julian time : ',max_yyyy,max_mm,max_dd,max_hh,max_mn,max_ss
29 end if
30
31 call da_get_julian_time(min_yyyy,min_mm,min_dd,min_hh,min_mn,time_slots(0))
32 call da_get_julian_time(max_yyyy,max_mm,max_dd,max_hh,max_mn,time_slots(nt))
33
34 if (nt > 1) then
35 dt = (time_slots(nt)-time_slots(0))/float(nt-1)
36 time_slots(1) = time_slots(0)+dt*0.5
37 do it=2,nt-1
38 time_slots(it) = time_slots(it-1)+dt
39 end do
40 end if
41
42 if (print_detail_rad) then
43 write(unit=stdout,fmt='(3x,a,12f10.0)') 'Time_slots ', time_slots(0:nt)
44 write (unit=stdout,fmt='(A)') " "
45 end if
46
47 if (trace_use) call da_trace_exit("da_get_time_slots")
48
49 end subroutine da_get_time_slots
50
51