Télécharger date.eso

Retour à la liste

Numérotation des lignes :

date
  1. C DATE SOURCE CB215821 20/03/02 21:15:09 10540
  2. SUBROUTINE DATE
  3. INTEGER ITTIME(6)
  4. INTEGER FONCTI
  5. INTEGER IMOLET
  6. INTEGER NJOUR,NHEURE,NMIN
  7. INTEGER NB_TIC,NTICMAX,NTICSEC
  8. REAL*8 NSEC
  9. INTEGER MSEC
  10. CHARACTER*6 MOTLET(1)
  11. CHARACTER*10 MOTCLF(8)
  12. CHARACTER*4 MOTMOI(12)
  13. CHARACTER*32 CHADA
  14.  
  15. -INC PPARAM
  16. -INC CCOPTIO
  17. DATA MOTLET/'LETTRE'/
  18. DATA MOTCLF/'CONVERSION','EPOCH',
  19. &'ANNEE','MOIS', 'JOUR', 'HEURE', 'MINUTE', 'SECONDE'/
  20. DATA MOTMOI/'jan.','fev.','mars','avr.','mai '
  21. & ,'juin','jui.','aout','sep.','oct.','nov.','dec.'/
  22. CALL LIRMOT(MOTLET,1,IMOLET,0)
  23. CALL LIRMOT(MOTCLF,8,FONCTI,0)
  24. IF(FONCTI.EQ.1) THEN
  25. CALL LIRREE(NSEC,1,IRETOU)
  26. NJOUR = INT (NSEC / 86400.)
  27. NSEC = NSEC - 86400. * FLOAT (NJOUR)
  28. NHEURE = INT (NSEC / 3600.)
  29. NSEC = NSEC - 3600. * FLOAT (NHEURE)
  30. NMIN = INT (NSEC / 60.)
  31. NSEC = NSEC - 60. * FLOAT (NMIN)
  32. WRITE(CHADA,10) NJOUR, NHEURE,NMIN, NSEC
  33. CALL ECRCHA(CHADA)
  34. ELSEIF(FONCTI.EQ.2) THEN
  35. CALL OOOZZ1(ITTIME)
  36. NJOUR=ITTIME(1)
  37. * on se place dans l'hypothese (conservatrice) d'une annee bissextile
  38. if(ITTIME(2).EQ.2) NJOUR=NJOUR+31
  39. if(ITTIME(2).EQ.3) NJOUR=NJOUR+60
  40. if(ITTIME(2).EQ.4) NJOUR=NJOUR+91
  41. if(ITTIME(2).EQ.5) NJOUR=NJOUR+121
  42. if(ITTIME(2).EQ.6) NJOUR=NJOUR+152
  43. if(ITTIME(2).EQ.7) NJOUR=NJOUR+182
  44. if(ITTIME(2).EQ.8) NJOUR=NJOUR+213
  45. if(ITTIME(2).EQ.9) NJOUR=NJOUR+144
  46. if(ITTIME(2).EQ.10) NJOUR=NJOUR+274
  47. if(ITTIME(2).EQ.11) NJOUR=NJOUR+305
  48. if(ITTIME(2).EQ.12) NJOUR=NJOUR+335
  49. NANNEE=ITTIME(3)-1
  50. NJOUR =NJOUR+NANNEE*366
  51.  
  52. C Debordement sur 32bits pour le calcul (SIGABRT)==> On passe ne REAL*8
  53. C MSEC = NJOUR*86400+ITTIME(4)*3600+ITTIME(5)*60+ ITTIME(6)
  54. NSEC=REAL(NJOUR)*86400.D0+REAL(ITTIME(4))*3600.D0+
  55. & REAL(ITTIME(5))*60.D0+ REAL(ITTIME(6))
  56. CALL ECRREE(NSEC)
  57. ELSEIF(FONCTI.EQ.3) THEN
  58. CALL OOOZZ1(ITTIME)
  59. ITTIME(3) = ITTIME(3) + 1900
  60. CALL ECRENT(ITTIME(3))
  61. ELSEIF(FONCTI.EQ.4) THEN
  62. CALL OOOZZ1(ITTIME)
  63. IF(IMOLET.EQ.0) THEN
  64. CALL LIRMOT(MOTLET,1,IMOLET,0)
  65. ENDIF
  66. IF(IMOLET.EQ.0) THEN
  67. CALL ECRENT(ITTIME(2))
  68. ELSE
  69. CHADA = MOTMOI(ITTIME(2))
  70. CALL ECRCHA(CHADA(1:4))
  71. ENDIF
  72. ELSEIF(FONCTI.EQ.5) THEN
  73. CALL OOOZZ1(ITTIME)
  74. CALL ECRENT(ITTIME(1))
  75. ELSEIF(FONCTI.EQ.6) THEN
  76. CALL OOOZZ1(ITTIME)
  77. CALL ECRENT(ITTIME(4))
  78. ELSEIF(FONCTI.EQ.7) THEN
  79. CALL OOOZZ1(ITTIME)
  80. CALL ECRENT(ITTIME(5))
  81. ELSEIF(FONCTI.EQ.8) THEN
  82. CALL OOOZZ1(ITTIME)
  83. CALL ECRENT(ITTIME(6))
  84. ELSE
  85. CALL OOOZZ1(ITTIME)
  86. ITTIME(3) = ITTIME(3) + 1900
  87. IF(IMOLET.EQ.0) THEN
  88. WRITE(CHADA,20) ITTIME(1), ITTIME(2), ITTIME(3), ITTIME(4),
  89. & ITTIME(5),ITTIME(6)
  90. ELSE
  91. WRITE(CHADA,30) ITTIME(1), MOTMOI(ITTIME(2)), ITTIME(3),
  92. & ITTIME(4),ITTIME(5)
  93. ENDIF
  94. CALL ECRCHA(CHADA)
  95. ENDIF
  96. RETURN
  97. 10 FORMAT(I9,'J ',I2.2,'H ',I2.2,'min ',F6.3,'sec')
  98. 20 FORMAT(I2.2,'/',I2.2,'/',I4.4,' - ', I2.2,':',I2.2,':',I2.2)
  99. 30 FORMAT(I2.2,' ',A4,' ',I4.4,' - ', I2.2,'H',I2.2,'min')
  100. END
  101.  
  102.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales