Salome HOME
Homard executable
[modules/homard.git] / src / tool / Utilitaire / utdhcl.F
1       subroutine utdhcl ( nummoi, numjou, numheu, nummin, numsec,
2      >                    numann, datheu,
3      >                    codret )
4 c ______________________________________________________________________
5 c
6 c                             H O M A R D
7 c
8 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
9 c
10 c Version originale enregistree le 18 juin 1996 sous le numero 96036
11 c aupres des huissiers de justice Simart et Lavoir a Clamart
12 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
13 c aupres des huissiers de justice
14 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
15 c
16 c    HOMARD est une marque deposee d'Electricite de France
17 c
18 c Copyright EDF 1996
19 c Copyright EDF 1998
20 c Copyright EDF 2002
21 c Copyright EDF 2020
22 c ______________________________________________________________________
23 c
24 c convertit la date et l'heure d'une forme compacte en une forme longue
25 c ______________________________________________________________________
26 c .        .     .        .                                            .
27 c .  nom   . e/s . taille .           description                      .
28 c .____________________________________________________________________.
29 c . numjou .  s  .   1    . numero du jour                             .
30 c . numheu .  s  .   1    . numero de l'heure                          .
31 c . nummin .  s  .   1    . numero de la minute                        .
32 c . numsec .  s  .   1    . numero de la seconde                       .
33 c . numann . e   .   1    . numero de l'annee                          .
34 c . datheu . e   .   1    . nombre de secondes depuis le debut de l'an .
35 c . codret .  s  .   1    . code de retour                             .
36 c ______________________________________________________________________
37 c
38 c====
39 c 0. declarations et dimensionnement
40 c====
41 c
42 c 0.1. ==> generalites
43 c
44       implicit none
45       save
46 c
47 c 0.2. ==> communs
48 c
49 c 0.3. ==> arguments
50 c
51       integer datheu
52       integer numann
53       integer nummoi, numjou, numheu, nummin, numsec
54       integer codret
55 c
56 c 0.4. ==> variables locales
57 c
58       integer nbjour
59       integer iaux, jaux, naux
60 c
61       integer lonmoi (12)
62 c
63 c====
64 c 1.  initialisation
65 c====
66 c
67       codret = 0
68 c
69       lonmoi (1) = 31
70       if ( mod(numann,4).eq.0 ) then
71          lonmoi (2) = 29
72       else
73          lonmoi (2) = 28
74       endif
75       lonmoi (3) = 31
76       lonmoi (4) = 30
77       lonmoi (5) = 31
78       lonmoi (6) = 30
79       lonmoi (7) = 31
80       lonmoi (8) = 31
81       lonmoi (9) = 30
82       lonmoi (10) = 31
83       lonmoi (11) = 30
84       lonmoi (12) = 31
85 c
86 c====
87 c 2. mise en forme
88 c====
89 c
90 c 2.1. ==> cumul du nombre de jours pleins passes depuis le debut
91 c          de l'annee, puis du nombre d'heures pleines depuis
92 c          le debut du jour, etc
93 c
94       iaux = mod(datheu,86400)
95       nbjour = (datheu-iaux)/86400 + 1
96 c
97       if ( iaux.ne.0 ) then
98 c
99          jaux = iaux
100          iaux = mod(jaux,3600)
101          numheu = (jaux-iaux)/3600
102 c
103          jaux = iaux
104          iaux = mod(jaux,60)
105          nummin = (jaux-iaux)/60
106 c
107          numsec = iaux
108 c
109       else
110 c
111          numheu = 0
112          nummin = 0
113          numsec = 0
114 c
115       endif
116 c
117 c 2.2. ==> decodage du numero du jour
118 c
119       nummoi = 1
120       numjou = 1
121 c
122       naux = 0
123       do 22 iaux = 1 , 12
124          naux = naux + lonmoi(iaux)
125          if ( naux.ge.nbjour ) then
126             nummoi = iaux
127             numjou = nbjour - naux + lonmoi(iaux)
128             goto 23
129          endif
130    22 continue
131 c
132       if ( numheu .eq. 0 ) then
133          numann = numann + 1
134       else
135          codret = 1
136       endif
137 c
138    23 continue
139 c
140       end