
      real*8 abst00,abst

      call ABSTM(abst00,2000,1,1,0,0)                     
c      write(*,*) abst00
      write(*,*) ' Enter Julian time (days) relative to 2000-01-01'
      read(*,*) ajultd
      ajultm = ajultd*24.*60.
      abst = abst00 + ajultm
      call CDATE(NYEAR,NMONTH,NDAY,NHOUR,NMINUT,SEC,ABST)
      write(*,*) NYEAR,NMONTH,NDAY,NHOUR,NMINUT,SEC

      stop
      end
C
C*********************************************************************          
      SUBROUTINE CDATE(NYEAR,NMONTH,NDAY,NHOUR,NMINUT,SEC,ABST)
C*********************************************************************          
      DOUBLE PRECISION ABST, ABST1, MINYR4, MINYR, MINMON(13),                  
     & MINDAY, MINMN(13)                                                        
      DATA MINYR4, MINYR, MINDAY/210384D+01,5256D+02,144D+01/                   
      DATA MINMN/0D+00,4464D+01,8496D+01,1296D+02,                              
     & 1728D+02,21744D+01,26064D+01,30528D+01,34992D+01,                        
     & 39312D+01,43776D+01,48096D+01,5256D+02/                                  
      ABST1 = ABST                                                              
      DO 1 I = 1, 13                                                            
    1   MINMON(I) = MINMN(I)                                                    
      NYEAR = ABST1/MINYR4 + 1.D-08                                             
      ABST1 = ABST1 - NYEAR*MINYR4                                              
      NY = ABST1/MINYR + 1.D-07                                                 
      NYEAR = 4*NYEAR + NY + 1                                                  
      ABST1 = ABST1 - NY*MINYR                                                  
      DO 2 I = 2, 13                                                            
        NMONTH = I - 1                                                          
        IF(MOD(NYEAR,4).EQ.0.AND.I.GT.2) MINMON(I)=MINMON(I)+MINDAY             
        IF(ABST1.LT.MINMON(I)) GO TO 3                                          
    2 CONTINUE                                                                  
      WRITE (*,100)                                                             
  100 FORMAT (' ERROR! ')
      STOP                                                                      
    3 ABST1 = ABST1 - MINMON(NMONTH)                                            
      NDAY = ABST1/MINDAY + 1.D-05                                              
      ABST1 = ABST1 - NDAY*MINDAY                                               
      NDAY = NDAY + 1                                                           
C     NHOUR = ABST1/60 + 0.001
C     NMINUT = ABST1 - NHOUR*60 + 0.1
      NHOUR = ABST1/60
      NMINUT = ABST1 - NHOUR*60
      SEC = (ABST1 - NHOUR*60-NMINUT)*60.
      RETURN                                                                    
      END                                                                       
C
C***********************************************************************        
      SUBROUTINE ABSTM(ABST,NYEAR,NMONTH,NDAY,NHOUR,NMINUT)                     
C***********************************************************************        
      DOUBLE PRECISION ABST, MINYR, MINMON(12), MINDAY                          
      DATA MINYR, MINDAY/5256D+02,144D+01/                                      
      DATA MINMON/0D+00,4464D+01,8496D+01,1296D+02,                             
     & 1728D+02,21744D+01,26064D+01,30528D+01,34992D+01,                        
     & 39312D+01,43776D+01,48096D+01/                                           
      IF(NMONTH.LT.1.OR.NMONTH.GT.12) GO TO 1                                   
      IF(NDAY.GT.31) GO TO 1                                                    
      IF(NHOUR.LT.0.OR.NHOUR.GT.23) GO TO 1                                     
      IF(NMINUT.LT.0.OR.NMINUT.GT.59) GO TO 1                                   
      IF((NMONTH.EQ.4.OR.NMONTH.EQ.6.OR.NMONTH.EQ.9.OR.                         
     & NMONTH.EQ.11).AND.NDAY.GT.30) GO TO 1                                    
      IF(MOD(NYEAR,4).NE.0.AND.NMONTH.EQ.2.AND.NDAY.GT.28)                      
     & GO TO 1                                                                  
      IF(NMONTH.EQ.2.AND.NDAY.GT.29) GO TO 1                                    
      NY = NYEAR - 1                                                            
C     ABST = NY*MINYR + ((NY/4)+NDAY-1)*MINDAY + MINMON(NMONTH) +
C    & NHOUR*60 + NMINUT + 0.1
      ABST = NY*MINYR + ((NY/4)+NDAY-1)*MINDAY + MINMON(NMONTH) +               
     & NHOUR*60 + NMINUT
      IF(MOD(NYEAR,4).EQ.0.AND.NMONTH.GT.2) ABST = ABST + MINDAY                
      RETURN                                                                    
    1 WRITE (*,100)                                                             
  100 FORMAT (' ERROR IN DATE! ')
      STOP                                                                      
      END                                                                       
c
