subroutine jd2000 (iyear,imonth,iday,ihour,imin,sec,djuld,ier) c* c*********************************************************************** c* c* c*PRO MAGLIB c* c*VER 99.03.31 - V 1.0 c*VER 01.06.05 - V 2.0 c*VER 03.01.06 - V 2.1 c* c*AUT spec. CNES - JC KOSIK - juin 1997 c*AUT port. CISI c* c*ROL Theme : Calculs de dates c*ROL Calcule la date julienne ref 2000 c*ROL (origine : 01/01/2000 a 0:00:00) c*ROL a partir d'une date calendaire c*ROL (avec 2 ou 4 digits; 2 digits => 1950 a 2049) c*ROL la date calendaire doit etre comprise entre 01/01/1950 c*ROL et 31/12/2099. c*ROL rq: djuld(2000) = djuld(1950) - 18262.0 c* c*PAR iyear (I) : annee c*PAR imonth (I) : mois c*PAR iday (I) : jour c*PAR ihour (I) : heures c*PAR imin (I) : mimutes c*PAR sec (I) : secondes fractionnaires c* c*PAR djuld (O) : date julienne associee (a partir de 01/01/2000) c* c*PAR ier (O) : code de retour c* c*NOT ier : sans objet c* c*INF utilise : sans objet c* c*HST version 1.0 - 99.03.31 - creation de la maglib au CDPP c*HST version 2.0 - 01.06.05 - correction de commentaires de code c*HST version 2.1 - 03.01.06 - corrections en compilation avec g77 c* c*********************************************************************** c* implicit none c c --------------------------------- c*FON Declaration identificateur rcs_id c --------------------------------- c character rcs_id*100 c c -------------------------- c*FON Declaration des parametres c -------------------------- c integer iyear,imonth,iday,ihour,imin double precision sec double precision djuld integer ier c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c integer l c integer ii c*LOC ii : indice de boucles c SAVE c c --------------------------------- c*FON Affectation identificateur rcs_id c --------------------------------- c data rcs_id /" >$Id$"/ c c ****************** c Debut de programme c ****************** c ier = 0 ii = (14 - imonth) / 12 l = iyear - ii - 1900 * (iyear / 1900) + > 100 * (2000 / (iyear + 1951)) c djuld = dble(iday - 36496 + (1461 * l) / 4 + > (367 * (imonth - 2 + ii * 12)) / 12) djuld = djuld + (dble((ihour * 60 + imin) * 60) + sec) / 864.d2 c c **************** c Fin de programme c **************** c return end