Salome HOME
Homard executable
[modules/homard.git] / src / tool / AP_Conversion / pcmat0.F
1       subroutine pcmat0 ( rstrto,
2      >                    hettri,
3      >                    famtri, cfatri,
4      >                    ulsort, langue, codret )
5 c ______________________________________________________________________
6 c
7 c                             H O M A R D
8 c
9 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
10 c
11 c Version originale enregistree le 18 juin 1996 sous le numero 96036
12 c aupres des huissiers de justice Simart et Lavoir a Clamart
13 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
14 c aupres des huissiers de justice
15 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
16 c
17 c    HOMARD est une marque deposee d'Electricite de France
18 c
19 c Copyright EDF 1996
20 c Copyright EDF 1998
21 c Copyright EDF 2002
22 c Copyright EDF 2020
23 c ______________________________________________________________________
24 c
25 c    aPres adaptation - Conversion - MAillage connectivite - Triangles
26 c     -                 -            --                      -
27 c    - phase 0
28 c            -
29 c ______________________________________________________________________
30 c
31 c remarque : pcmatr et pcmat0 sont des clones
32 c remarque : pcmaa0, pcmat0 et pcmaq0 sont des clones
33 c ______________________________________________________________________
34 c .        .     .        .                                            .
35 c .  nom   . e/s . taille .           description                      .
36 c .____________________________________________________________________.
37 c . rstrto .  s  .   1    . nombre de triangles actifs et du calcul    .
38 c . hettri . e   . nbtrto . historique de l'etat des triangles         .
39 c . famtri . e   . nbtrto . famille des triangles                      .
40 c . cfatri . e   . nctftr*. codes des familles des triangles           .
41 c .        .     . nbftri .   1 : famille MED                          .
42 c .        .     .        .   2 : type de triangle                     .
43 c .        .     .        .   3 : numero de surface de frontiere       .
44 c .        .     .        .   4 : famille des aretes internes apres raf.
45 c . ulsort . e   .   1    . numero d'unite logique de la liste standard.
46 c . langue . e   .    1   . langue des messages                        .
47 c .        .     .        . 1 : francais, 2 : anglais                  .
48 c . codret . es  .    1   . code de retour des modules                 .
49 c .        .     .        . 0 : pas de probleme                        .
50 c .        .     .        . 1 : probleme                               .
51 c ______________________________________________________________________
52 c
53 c====
54 c 0. declarations et dimensionnement
55 c====
56 c
57 c 0.1. ==> generalites
58 c
59       implicit none
60       save
61 c
62       character*6 nompro
63       parameter ( nompro = 'PCMAT0' )
64 c
65 #include "nblang.h"
66 #include "coftex.h"
67 c
68 c 0.2. ==> communs
69 c
70 #include "envex1.h"
71 c
72 #include "impr02.h"
73 #include "envca1.h"
74 c
75 #include "nbfami.h"
76 #include "nombtr.h"
77 c
78 #include "dicfen.h"
79 c
80 c 0.3. ==> arguments
81 c
82       integer rstrto
83 c
84       integer hettri(nbtrto)
85 c
86       integer cfatri(nctftr,nbftri), famtri(nbtrto)
87 c
88       integer ulsort, langue, codret
89 c
90 c 0.4. ==> variables locales
91 c
92       integer etat
93       integer iaux
94 c
95       integer nbmess
96       parameter ( nbmess = 20 )
97       character*80 texte(nblang,nbmess)
98 c
99 c 0.5. ==> initialisations
100 c ______________________________________________________________________
101 c
102 c====
103 c 1. initialisations
104 c====
105 c
106 #include "impr01.h"
107 c
108 #ifdef _DEBUG_HOMARD_
109       write (ulsort,texte(langue,1)) 'Entree', nompro
110       call dmflsh (iaux)
111 #endif
112 c
113 #include "impr06.h"
114 c
115 c====
116 c 2. Decompte des triangles actifs et du calcul
117 c====
118 c
119       rstrto = 0
120 c
121       do 21 , iaux = 1 , nbtrto
122 c
123 #ifdef _DEBUG_HOMARD_
124       write (ulsort,texte(langue,11)) mess14(langue,2,2), iaux
125       write (ulsort,texte(langue,12))
126      >                     cotyel, cfatri(cotyel,famtri(iaux))
127 #endif
128 c
129         if ( cfatri(cotyel,famtri(iaux)).ne.0 ) then
130 c
131           etat = mod( hettri(iaux) , 10 )
132 c
133 #ifdef _DEBUG_HOMARD_
134       write (ulsort,texte(langue,13)) hettri(iaux), etat
135 #endif
136 c
137           if ( etat.eq.0 .or. hierar.ne.0 ) then
138 c
139             rstrto = nbtrto
140             goto 22
141 c
142           endif
143 c
144         endif
145 c
146    21 continue
147 c
148    22 continue
149 c
150 #ifdef _DEBUG_HOMARD_
151       write (ulsort,texte(langue,18)) mess14(langue,3,2), rstrto
152 #endif
153 c
154 c====
155 c 3. la fin
156 c====
157 c
158       if ( codret.ne.0 ) then
159 c
160 #include "envex2.h"
161 c
162       write (ulsort,texte(langue,1)) 'Sortie', nompro
163       write (ulsort,texte(langue,2)) codret
164 c
165       endif
166 c
167 #ifdef _DEBUG_HOMARD_
168       write (ulsort,texte(langue,1)) 'Sortie', nompro
169       call dmflsh (iaux)
170 #endif
171 c
172       end