Salome HOME
Homard executable
[modules/homard.git] / src / tool / ES_MED / eslmmb.F
1       subroutine eslmmb ( idfmed, nomamd,
2      >                    typenh, typent, typgeo,
3      >                    nmadeb, nbmato, nbrfma, nbelem, numfam,
4      >                    typcon, dim1,
5      >                    conmai, fammai,
6      >                    tbiaux,
7      >                    ulsort, langue, codret )
8 c ______________________________________________________________________
9 c
10 c                             H O M A R D
11 c
12 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
13 c
14 c Version originale enregistree le 18 juin 1996 sous le numero 96036
15 c aupres des huissiers de justice Simart et Lavoir a Clamart
16 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
17 c aupres des huissiers de justice
18 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
19 c
20 c    HOMARD est une marque deposee d'Electricite de France
21 c
22 c Copyright EDF 1996
23 c Copyright EDF 1998
24 c Copyright EDF 2002
25 c Copyright EDF 2020
26 c ______________________________________________________________________
27 c
28 c  Entree-Sortie - Lecture d'un Maillage au format MED
29 c  -      -        -            -                  -
30 c                - phase B
31 c                        -
32 c ______________________________________________________________________
33 c .        .     .        .                                            .
34 c .  nom   . e/s . taille .           description                      .
35 c .____________________________________________________________________.
36 c . idfmed . e   .   1    . identificateur du fichier de               .
37 c .        .     .        . maillage de sortie                         .
38 c . nomamd . e   . char64 . nom du maillage MED                        .
39 c . nmadeb . e   .   1    . numero de la maille de debut               .
40 c .        .     .        .  >=0 : le tableau est pris tel quel        .
41 c .        .     .        .   <0 : les descriptions sont inversees     .
42 c . nbmato . e   .   1    . nombre de mailles a lire                   .
43 c . nbrfma . e   .   1    . nbre noeuds par maille si connec. par noeud.
44 c .        .     .        . nbre faces par maille si connectivite desce.
45 c . nbelem . e   .   1    . nombre d'elements, tous types confondus    .
46 c . numfam . e   .   1    . decalage dans la numerotation des familles .
47 c .        .     .        .   1 : le tableau est pris tel quel         .
48 c .        .     .        .  <=0 : le tableau passe negatif et est     .
49 c .        .     .        .        decale de numfam                    .
50 c . typenh . e   .   1    . code des entites au sens homard            .
51 c .        .     .        .  -1 : noeuds                               .
52 c .        .     .        .   0 : mailles-points                       .
53 c .        .     .        .   1 : segments                             .
54 c .        .     .        .   2 : triangles                            .
55 c .        .     .        .   3 : tetraedres                           .
56 c .        .     .        .   4 : quadrangles                          .
57 c .        .     .        .   5 : pyramides                            .
58 c .        .     .        .   6 : hexaedres                            .
59 c .        .     .        .   7 : pentaedres                           .
60 c . typent . e   .   1    . type des entites au sens MED               .
61 c . typgeo . e   .   1    . type geometrique au sens MED               .
62 c . typcon . e   .   1    . type de connectivite                       .
63 c .        .     .        . 0 : par noeud (ednoda)                     .
64 c .        .     .        . 1 : descendente (eddesc)                   .
65 c . dim1   . e   .   1    . 1ere dimension de la connectivite          .
66 c . conmai .  s  .nbelem**. connectivite des mailles                   .
67 c . fammai .  s  . nbelem . famille med des mailles                    .
68 c . tbiaux .     . nbelem . tableau tampon                             .
69 c .        .     . *nbmane.                                            .
70 c . ulsort . e   .   1    . numero d'unite logique de la liste standard.
71 c . langue . e   .    1   . langue des messages                        .
72 c .        .     .        . 1 : francais, 2 : anglais                  .
73 c . codret . es  .    1   . code de retour des modules                 .
74 c .        .     .        . 0 : pas de probleme                        .
75 c .        .     .        . 1 : probleme                               .
76 c ______________________________________________________________________
77 c
78 c====
79 c 0. declarations et dimensionnement
80 c====
81 c
82 c 0.1. ==> generalites
83 c
84       implicit none
85       save
86 c
87       character*6 nompro
88       parameter ( nompro = 'ESLMMB' )
89 c
90 #include "nblang.h"
91 c
92 c 0.2. ==> communs
93 c
94 #include "envex1.h"
95 #include "impr02.h"
96 c
97 c 0.3. ==> arguments
98 c
99       integer*8 idfmed
100       integer typenh, typent, typgeo
101       integer nmadeb, nbmato, nbrfma, nbelem, numfam
102       integer typcon, dim1
103       integer conmai(dim1,*), fammai(nbelem)
104       integer tbiaux(*)
105 c
106       character*64 nomamd
107 c
108       integer ulsort, langue, codret
109 c
110 c 0.4. ==> variables locales
111 c
112       integer iaux
113 c
114       integer nbmess
115       parameter ( nbmess = 150 )
116       character*80 texte(nblang,nbmess)
117 c ______________________________________________________________________
118 c
119 c====
120 c 1. initialisations
121 c====
122 c
123 c 1.1. ==> les messages
124 c
125 #include "impr01.h"
126 c
127 #ifdef _DEBUG_HOMARD_
128       write (ulsort,texte(langue,1)) 'Entree', nompro
129       call dmflsh (iaux)
130 #endif
131 c
132       texte(1,4) = '(''... Lecture des '',i10,1x,a)'
133 c
134       texte(2,4) = '(''... Readings of '',i10,1x,a)'
135 c
136 #include "esimpr.h"
137 c
138 #include "impr03.h"
139 c
140 #ifdef _DEBUG_HOMARD_
141       write (ulsort,texte(langue,4)) nbmato, mess14(langue,3,typenh)
142 #endif
143 c
144       codret = 0
145 c
146 c====
147 c 2. Lecture de la famille d'appartenance
148 c====
149 c
150       if ( codret.eq.0 ) then
151 c
152 #ifdef _DEBUG_HOMARD_
153       write (ulsort,texte(langue,3)) 'ESLMMF', nompro
154 #endif
155       call eslmmf ( idfmed, nomamd,
156      >              typenh, typent, typgeo,
157      >              nmadeb, nbmato, nbelem, numfam,
158      >              typcon,
159      >              fammai,
160      >              tbiaux,
161      >              ulsort, langue, codret )
162 c
163       endif
164 c
165 c====
166 c 3. Lecture de la connectivite des mailles
167 c====
168 c
169       if ( codret.eq.0 ) then
170 c
171 #ifdef _DEBUG_HOMARD_
172       write (ulsort,texte(langue,3)) 'ESLMMC', nompro
173 #endif
174       call eslmmc ( idfmed, nomamd,
175      >              typenh, typent, typgeo,
176      >              nmadeb, nbmato, dim1, nbrfma,
177      >              typcon,
178      >              conmai,
179      >              tbiaux,
180      >              ulsort, langue, codret )
181 c
182       endif
183 c
184 c====
185 c 4. la fin
186 c====
187 c
188       if ( codret.ne.0 ) then
189 c
190 #include "envex2.h"
191 c
192       write (ulsort,texte(langue,1)) 'Sortie', nompro
193       write (ulsort,texte(langue,2)) codret
194       write (ulsort,texte(langue,4)) nbmato, mess14(langue,3,typenh)
195       write (ulsort,texte(langue,78)) nompro, codret
196       write (ulsort,texte(langue,79))
197 c
198       endif
199 c
200 #ifdef _DEBUG_HOMARD_
201       write (ulsort,texte(langue,1)) 'Sortie', nompro
202       call dmflsh (iaux)
203 #endif
204 c
205       end