Salome HOME
Homard executable
[modules/homard.git] / src / tool / Utilitaire / utbide.F
1       subroutine utbide ( codebi, nbval1, tabaux )
2 c ______________________________________________________________________
3 c
4 c                             H O M A R D
5 c
6 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
7 c
8 c Version originale enregistree le 18 juin 1996 sous le numero 96036
9 c aupres des huissiers de justice Simart et Lavoir a Clamart
10 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
11 c aupres des huissiers de justice
12 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
13 c
14 c    HOMARD est une marque deposee d'Electricite de France
15 c
16 c Copyright EDF 1996
17 c Copyright EDF 1998
18 c Copyright EDF 2002
19 c Copyright EDF 2020
20 c ______________________________________________________________________
21 c
22 c     UTilitaire : du BInaire vers le DEcimal
23 c     --              --              --
24 c ______________________________________________________________________
25 c .        .     .        .                                            .
26 c .  nom   . e/s . taille .           description                      .
27 c .____________________________________________________________________.
28 c . codebi . e   .  1     . code binaire a decoder (<4095=2*12-1)      .
29 c . nbval1 .  s  .  1     . nombre de valeurs 1                        .
30 c . tabaux .  s  .  12    . valeurs 0/1                                .
31 c .____________________________________________________________________.
32 c
33 c====
34 c 0. declarations et dimensionnement
35 c====
36 c
37 c 0.1. ==> generalites
38 c
39       implicit none
40       save
41 c
42 c 0.2. ==> communs
43 c
44 c 0.3. ==> arguments
45 c
46       integer codebi
47       integer nbval1, tabaux(12)
48 c
49 c 0.4. ==> variables locales
50 c
51       integer iaux
52       integer valeur, reste
53 c
54 c 0.5. ==> initialisations
55 c ______________________________________________________________________
56 c
57 c====
58 c 1. traitement
59 c    Remarque : on pourrait proceder avec des if sucessifs.
60 c    Est-ce plus economique ?
61 c====
62 c
63       nbval1 = 0
64       valeur = codebi
65       do 10 , iaux = 1 , 12
66 c
67         reste = mod(valeur,2)
68         if ( reste.eq.0 ) then
69           tabaux(iaux) = 0
70         else
71           tabaux(iaux) = 1
72           valeur = valeur - 1
73           nbval1 = nbval1 + 1
74         endif
75         valeur = valeur/2
76 c
77    10 continue
78 c
79       end