TABLE OF CONTENTS


MLT_RSS/date_and_time.f90/set_date [ Subroutines ]

[ Top ] [ Subroutines ]

NAME

             set_date

PURPOSE

             set_date sets the date and time using 6 different methods.  The method is choosen automatically depending on the

DESCRIPTION

             set_date sets the date and time using 6 different methods.  The method is choosen automatically depending on the
             number and type of the arguments.
             here is a list of the methods:
                   -module procedure set_date_int_r_d          !(r_d,error)   2 integer(4)'s
                           -module procedure set_date_real_r_d         !(r_d,error)   1 real(8) and 1 integer(4)
                           -module procedure set_date_m_d_y                    !(month,day,year,error) 4 integer(4)'s
                           -module procedure set_date_m_d_y_int_t      !(month,day,year,hour,minute,second,error) 7 integer(4)'s
                           -module procedure set_date_m_d_y_real_t     !(month,day,year,hour,minute,second,error) 5 integer(4)'s, 1 real(8), 1 integer(4)
                           -module procedure set_date_m_d_y_m_secs     !(month,day,year,secs_since_midnight,error) 3 integer(4)'s, 1 real(8), 1 integer(4)
                           -module procedure set_date_od_y_msecs       !(secs_since_midnight,ordinal_day#,year,error) 1 real(8), 3 integer(4)'s          !
           RETURN VALUE
               type(date_str)       :: date

USAGE

               date = set_date(month,day,year,hour,minutes,second,error)

MLT_RSS/date_and_time.f90/set_date_2000 [ Subroutines ]

[ Top ] [ Subroutines ]

NAME

             set_date_2000

PURPOSE

             set_date sets the from the date in rd_2000 format.  The method is choosen automatically depending on the

DESCRIPTION

             set_date sets the date and time using 4 different methods.  The method is choosen automatically depending on the
             type of the argument.
             here is a list of the methods:
                   module procedure set_date_2000_real4
                           module procedure set_date_2000_real8
                           module procedure set_date_2000_int4         
                           module procedure set_date_2000_int2
           RETURN VALUE
               type(date_str)       :: date

USAGE

               date = set_date(rd_2000)

MLT_RSS/date_and_time.f90/set_time [ Subroutines ]

[ Top ] [ Subroutines ]

NAME

         set_time 

PURPOSE

            sets the time of day using two different methods.  The method is chosen
            automatically depending on the number and type of arguments

INPUT

               real(8),intent(IN)                      :: msecs   !seconds since midnight

OUTPUT

                           integer(4),intent(OUT)              :: error   !set to zero if no error
           RETURN VALUE
               type(time_str)              :: time

USAGE

               time = set_time(msecs,error)\

                   NAME
              type(time_str) function set_time_hms(hours,minutes,secs,error)

INPUTS

               integer(4)                                      :: hours    !hour of day (0 - 23)
                       integer(4)                                      :: minutes  !minutes in hour
                       real(8),intent(IN)                      :: secs     !seconds in minute

OUTPUT

                       integer(4),intent(OUT)          :: error    !set to zero if no error
           RETURN VALUE
               type(time_str)              :: time

USAGE

               time =set_time(hour,minutes,secs,error)

MLT_RSS/date_and_time.f90 [ Methods ]

[ Top ] [ Methods ]

NAME

    module date_and_time

PURPOSE

    pseudoclass for date and time calculations

DESCRIPTION

    pseudoclass for date and time calculations.

VARIABLES

    the pseudoclass has two important types defined

               type time_str
                       real(8)         :: m_secs               ! seconds since midnight
                       integer(4)      :: hour                 ! hour of day
                       integer(4)      :: minute               ! minute of hour
                       real(8)         :: sec                  ! second of minute
                       logical         :: updated              ! true if m_secs agree with hours,minute and second
               end type time_str
               type date_str
                       real(8)                 :: r_d      ! days since Jan 1, 1, gregorian calender
                       real(8)                 :: rd_2000  ! days since Jan 1, 2000
                       integer(4)              :: year         ! year
                       integer(4)              :: oday         ! ordinal day in the given year
                       integer(4)              :: month        ! month in year
                       integer(4)              :: day          ! day in month
                       type(time_str)  :: time         ! time of day
                       logical                 :: updated  ! true if Jul_day agrees with other info
               end type date_str

REMARKS

       There are 3 overloaded subroutines for setting the date and time
       set_date
       set_date_2000
       set_time

AUTHOR

    Carl Mears, Remote Sensing Systems

COPYRIGHT

   THIS SOFTWARE AND ITS DOCUMENTATION ARE COPYRIGHT 2012 REMOTE SENSING SYSTEMS.
   THEY ARE PROVIDED FOR INFORMATIONAL AND ALGORITHM VERIFICATION PURPOSES ONLY
   AND MAY NOT BE USED IN WHOLE OR IN PART FOR ANY OTHER PURPOSE WITHOUT WRITTEN
   PERMISSION FROM REMOTE SENSING SYSTEMS.  THEY ARE FURNISHED "AS IS." THE
   AUTHORS, THE UNITED STATES GOVERNMENT, ITS INSTRUMENTALITIES, OFFICERS, EMPLOYEES,
   AND AGENTS MAKE NO WARRANTY, EXPRESS OR IMPLIED, AS TO THE USEFULNESS OF THE
   SOFTWARE AND DOCUMENTATION FOR ANY PURPOSE. THEY ASSUME NO RESPONSIBILITY (1) FOR
   THE USE OF THE SOFTWARE AND DOCUMENTATION; OR (2) TO PROVIDE TECHNICAL SUPPORT
   TO USERS.

HISTORY

    2/21/2012 Initial Version prepared for NCDC

USAGE

    use date_and_time