Salome HOME
Homard executable
[modules/homard.git] / src / tool / Utilitaire / utdhcl.F
diff --git a/src/tool/Utilitaire/utdhcl.F b/src/tool/Utilitaire/utdhcl.F
new file mode 100644 (file)
index 0000000..ba5b64d
--- /dev/null
@@ -0,0 +1,140 @@
+      subroutine utdhcl ( nummoi, numjou, numheu, nummin, numsec,
+     >                    numann, datheu,
+     >                    codret )
+c ______________________________________________________________________
+c
+c                             H O M A R D
+c
+c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
+c
+c Version originale enregistree le 18 juin 1996 sous le numero 96036
+c aupres des huissiers de justice Simart et Lavoir a Clamart
+c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
+c aupres des huissiers de justice
+c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
+c
+c    HOMARD est une marque deposee d'Electricite de France
+c
+c Copyright EDF 1996
+c Copyright EDF 1998
+c Copyright EDF 2002
+c Copyright EDF 2020
+c ______________________________________________________________________
+c
+c convertit la date et l'heure d'une forme compacte en une forme longue
+c ______________________________________________________________________
+c .        .     .        .                                            .
+c .  nom   . e/s . taille .           description                      .
+c .____________________________________________________________________.
+c . numjou .  s  .   1    . numero du jour                             .
+c . numheu .  s  .   1    . numero de l'heure                          .
+c . nummin .  s  .   1    . numero de la minute                        .
+c . numsec .  s  .   1    . numero de la seconde                       .
+c . numann . e   .   1    . numero de l'annee                          .
+c . datheu . e   .   1    . nombre de secondes depuis le debut de l'an .
+c . codret .  s  .   1    . code de retour                             .
+c ______________________________________________________________________
+c
+c====
+c 0. declarations et dimensionnement
+c====
+c
+c 0.1. ==> generalites
+c
+      implicit none
+      save
+c
+c 0.2. ==> communs
+c
+c 0.3. ==> arguments
+c
+      integer datheu
+      integer numann
+      integer nummoi, numjou, numheu, nummin, numsec
+      integer codret
+c
+c 0.4. ==> variables locales
+c
+      integer nbjour
+      integer iaux, jaux, naux
+c
+      integer lonmoi (12)
+c
+c====
+c 1.  initialisation
+c====
+c
+      codret = 0
+c
+      lonmoi (1) = 31
+      if ( mod(numann,4).eq.0 ) then
+         lonmoi (2) = 29
+      else
+         lonmoi (2) = 28
+      endif
+      lonmoi (3) = 31
+      lonmoi (4) = 30
+      lonmoi (5) = 31
+      lonmoi (6) = 30
+      lonmoi (7) = 31
+      lonmoi (8) = 31
+      lonmoi (9) = 30
+      lonmoi (10) = 31
+      lonmoi (11) = 30
+      lonmoi (12) = 31
+c
+c====
+c 2. mise en forme
+c====
+c
+c 2.1. ==> cumul du nombre de jours pleins passes depuis le debut
+c          de l'annee, puis du nombre d'heures pleines depuis
+c          le debut du jour, etc
+c
+      iaux = mod(datheu,86400)
+      nbjour = (datheu-iaux)/86400 + 1
+c
+      if ( iaux.ne.0 ) then
+c
+         jaux = iaux
+         iaux = mod(jaux,3600)
+         numheu = (jaux-iaux)/3600
+c
+         jaux = iaux
+         iaux = mod(jaux,60)
+         nummin = (jaux-iaux)/60
+c
+         numsec = iaux
+c
+      else
+c
+         numheu = 0
+         nummin = 0
+         numsec = 0
+c
+      endif
+c
+c 2.2. ==> decodage du numero du jour
+c
+      nummoi = 1
+      numjou = 1
+c
+      naux = 0
+      do 22 iaux = 1 , 12
+         naux = naux + lonmoi(iaux)
+         if ( naux.ge.nbjour ) then
+            nummoi = iaux
+            numjou = nbjour - naux + lonmoi(iaux)
+            goto 23
+         endif
+   22 continue
+c
+      if ( numheu .eq. 0 ) then
+         numann = numann + 1
+      else
+         codret = 1
+      endif
+c
+   23 continue
+c
+      end