Salome HOME
Homard executable
[modules/homard.git] / src / tool / Creation_Maillage / cmcp1c.F
1       subroutine cmcp1c ( indtri, triint,
2      >                    lesare,
3      >                    areqtr, niveau,
4      >                    aretri, famtri, hettri,
5      >                    filtri, pertri, nivtri,
6      >                    ulsort, langue, codret )
7 c ______________________________________________________________________
8 c
9 c                             H O M A R D
10 c
11 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
12 c
13 c Version originale enregistree le 18 juin 1996 sous le numero 96036
14 c aupres des huissiers de justice Simart et Lavoir a Clamart
15 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
16 c aupres des huissiers de justice
17 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
18 c
19 c    HOMARD est une marque deposee d'Electricite de France
20 c
21 c Copyright EDF 1996
22 c Copyright EDF 1998
23 c Copyright EDF 2002
24 c Copyright EDF 2020
25 c ______________________________________________________________________
26 c
27 c    Creation du Maillage - Conformite - decoupage des Pentaedres
28 c    -           -          -                          -
29 c                         - cas 1, phase C
30 c                               -        -
31 c    Construction des triangles internes
32 c ______________________________________________________________________
33 c .        .     .        .                                            .
34 c .  nom   . e/s . taille .           description                      .
35 c .____________________________________________________________________.
36 c . indtri . es  .   1    . indice du dernier triangle cree            .
37 c . triint .  s  .   2    . triangles internes au pentaedre            .
38 c .        .     .        .  1 = bordant la face f1                    .
39 c .        .     .        .  2 = bordant la face f2                    .
40 c . lesare . e   .   2    . liste des aretes du pentaedre utiles       .
41 c .        .     .        .  1 = arete non decoupee face 1 et pyramide .
42 c .        .     .        .  2 = arete non decoupee face 2 et pyramide .
43 c . areqtr . e   .  (2,2) . aretes tri tracees sur les faces decoupees .
44 c . aretri . es  .nouvtr*3. numeros des 3 aretes des triangles         .
45 c . hettri . es  . nouvtr . historique de l'etat des triangles         .
46 c . filtri . es  . nouvtr . premier fils des triangles                 .
47 c . pertri . es  . nouvtr . pere des triangles                         .
48 c . nivtri . es  . nouvtr . niveau des triangles                       .
49 c . famtri . es  . nouvtr . famille des triangles                      .
50 c . niveau . e   . 1      . niveau a attribuer aux triangles           .
51 c . ulsort . e   .   1    . unite logique de la sortie generale        .
52 c . langue . e   .    1   . langue des messages                        .
53 c .        .     .        . 1 : francais, 2 : anglais                  .
54 c . codret . es  .    1   . code de retour des modules                 .
55 c .        .     .        . 0 : pas de probleme                        .
56 c .        .     .        . 1 : aucune arete ne correspond             .
57 c ______________________________________________________________________
58 c
59 c====
60 c 0. declarations et dimensionnement
61 c====
62 c
63 c 0.1. ==> generalites
64 c
65       implicit none
66       save
67 c
68       character*6 nompro
69       parameter ( nompro = 'CMCP1C' )
70 c
71 #include "nblang.h"
72 c
73 c 0.2. ==> communs
74 c
75 #include "envex1.h"
76 c
77 #include "nouvnb.h"
78 c
79 c 0.3. ==> arguments
80 c
81       integer indtri
82       integer niveau
83       integer triint(2)
84       integer lesare(2)
85       integer areqtr(2,2)
86       integer aretri(nouvtr,3), famtri(nouvtr)
87       integer hettri(nouvtr), filtri(nouvtr), pertri(nouvtr)
88       integer nivtri(nouvtr)
89 c
90       integer ulsort, langue, codret
91 c
92 c 0.4. ==> variables locales
93 c
94       integer iaux
95       integer codetr
96 c
97       integer nbmess
98       parameter ( nbmess = 10 )
99       character*80 texte(nblang,nbmess)
100 c ______________________________________________________________________
101 c
102 c====
103 c 1. initialisations
104 c====
105 c
106 c 1.1. ==> messages
107 c
108 #include "impr01.h"
109 c
110 #ifdef _DEBUG_HOMARD_
111       write (ulsort,texte(langue,1)) 'Entree', nompro
112       call dmflsh (iaux)
113 #endif
114 c
115       codret = 0
116 c
117       codetr = 1
118 c
119 c====
120 c 2. Les triangles s'appuient sur les 2 aretes non decoupees
121 c    triint(1) = borde la face triangulaire F1
122 c    triint(2) = borde la face triangulaire F2
123 c====
124 c
125       indtri = indtri + 1
126       triint(1) = indtri
127 #ifdef _DEBUG_HOMARD_
128       write (ulsort,texte(langue,3)) 'CMCTRI_1', nompro
129 #endif
130       call cmctri ( aretri, famtri, hettri,
131      >              filtri, pertri, nivtri,
132      >              indtri, areqtr(2,1), areqtr(1,1), lesare(1),
133      >              codetr, niveau )
134 c
135       indtri = indtri + 1
136       triint(2) = indtri
137 #ifdef _DEBUG_HOMARD_
138       write (ulsort,texte(langue,3)) 'CMCTRI_2', nompro
139 #endif
140       call cmctri ( aretri, famtri, hettri,
141      >              filtri, pertri, nivtri,
142      >              indtri, areqtr(1,2), areqtr(2,2), lesare(2),
143      >              codetr, niveau )
144 c
145 c====
146 c 3. la fin
147 c====
148 c
149       if ( codret.ne.0 ) then
150 c
151 #include "envex2.h"
152 c
153       write (ulsort,texte(langue,1)) 'Sortie', nompro
154       write (ulsort,texte(langue,2)) codret
155 c
156       endif
157 c
158 #ifdef _DEBUG_HOMARD_
159       write (ulsort,texte(langue,1)) 'Sortie', nompro
160       call dmflsh (iaux)
161 #endif
162 c
163       end