Salome HOME
Homard executable
[modules/homard.git] / src / tool / Suivi_Frontiere / sflgeo.F
1       subroutine sflgeo ( lgopti, taopti, lgopts, taopts,
2      >                    lgetco, taetco,
3      >                    ulsort, langue, codret)
4 c ______________________________________________________________________
5 c
6 c                             H O M A R D
7 c
8 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
9 c
10 c Version originale enregistree le 18 juin 1996 sous le numero 96036
11 c aupres des huissiers de justice Simart et Lavoir a Clamart
12 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
13 c aupres des huissiers de justice
14 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
15 c
16 c    HOMARD est une marque deposee d'Electricite de France
17 c
18 c Copyright EDF 1996
19 c Copyright EDF 1998
20 c Copyright EDF 2002
21 c Copyright EDF 2020
22 c ______________________________________________________________________
23 c
24 c   Suivi de Frontiere - Lecture de la GEOmetrie
25 c   -        -           -             ---
26 c ______________________________________________________________________
27 c .  nom   . e/s . taille .           description                      .
28 c .____________________________________________________________________.
29 c . lgopti . e   .   1    . longueur du tableau des options            .
30 c . taopti . e   . lgopti . tableau des options                        .
31 c . lgopts . e   .   1    . longueur du tableau des options caracteres .
32 c . taopts . e   . lgopts . tableau des options caracteres             .
33 c . lgetco . e   .   1    . longueur du tableau de l'etat courant      .
34 c . taetco . e   . lgetco . tableau de l'etat courant                  .
35 c . ulsort . e   .   1    . numero d'unite logique de la liste standard.
36 c . langue . e   .    1   . langue des messages                        .
37 c .        .     .        . 1 : francais, 2 : anglais                  .
38 c . codret . es  .    1   . code de retour des modules                 .
39 c .        .     .        . 0 : pas de probleme                        .
40 c .        .     .        . 2 : probleme avec la memoire               .
41 c .        .     .        . 3 : probleme avec le fichier               .
42 c .        .     .        . 5 : contenu incorrect                      .
43 c ______________________________________________________________________
44 c
45 c====
46 c 0. declarations et dimensionnement
47 c====
48 c
49 c 0.1. ==> generalites
50 c
51       implicit none
52       save
53 c
54       character*6 nompro
55       parameter ( nompro = 'SFLGEO' )
56 c
57 #include "nblang.h"
58 c
59 c 0.2. ==> communs
60 c
61 #include "envex1.h"
62 c
63 #include "motcle.h"
64 c 0.3. ==> arguments
65 c
66       integer lgopti
67       integer taopti(lgopti)
68 c
69       integer lgopts
70       character*8 taopts(lgopts)
71 c
72       integer lgetco
73       integer taetco(lgetco)
74 c
75       integer ulsort, langue, codret
76 c
77 c 0.4. ==> variables locales
78 c
79       integer codava
80       integer nrosec
81       integer nretap, nrsset
82       integer iaux
83 c
84       character*6 saux
85       character*8 nofich, nomail
86 c
87       integer nbmess
88       parameter ( nbmess = 10 )
89       character*80 texte(nblang,nbmess)
90 c
91 c 0.5. ==> initialisations
92 c ______________________________________________________________________
93 c
94 c====
95 c 1. messages
96 c====
97 c
98       codava = codret
99 c
100 c=======================================================================
101       if ( codava.eq.0 ) then
102 c=======================================================================
103 c
104 c 1.1. ==> le debut des mesures de temps
105 c
106       nrosec = taetco(4)
107       call gtdems (nrosec)
108 c
109 c 1.3. ==> les messages
110 c
111 #include "impr01.h"
112 c
113 #ifdef _DEBUG_HOMARD_
114       write (ulsort,texte(langue,1)) 'Entree', nompro
115       call dmflsh (iaux)
116 #endif
117 c
118       texte(1,4) = '(/,a6,'' LECTURE DE LA FRONTIERE DISCRETE'')'
119       texte(1,5) = '(39(''=''),/)'
120       texte(1,6) = '(''Le maillage fourni est de degre'',i3)'
121       texte(1,7) = '(''Il doit etre de degre 1.'')'
122 c
123       texte(2,4) = '(/,a6,'' READINGS OF DISCRETE BOUNDARY'')'
124       texte(2,5) = '(36(''=''),/)'
125       texte(2,6) = '(''Degree of the mesh is :'',i3)'
126       texte(2,7) = '(''It should be linear.'')'
127 c
128 #include "impr03.h"
129 c
130 c 1.4. ==> le numero de sous-etape
131 c
132       nretap = taetco(1)
133       nrsset = taetco(2) + 1
134       taetco(2) = nrsset
135 c
136       call utcvne ( nretap, nrsset, saux, iaux, codret )
137 c
138 c 1.5. ==> le titre
139 c
140       write (ulsort,texte(langue,4)) saux
141       write (ulsort,texte(langue,5))
142 c
143 c====
144 c 2. lecture de la frontiere discrete depuis le fichier MED
145 c====
146 c
147       if ( codret.eq.0 ) then
148 c
149       nofich = mccdfr
150       nomail = mccnmf
151       iaux = 1
152 #ifdef _DEBUG_HOMARD_
153       write (ulsort,texte(langue,3)) 'ESLMMD', nompro
154 #endif
155       call eslmmd ( nofich, nomail,
156      >              taopti(11), taopts(16),
157      >              iaux, taopti(9),
158      >              ulsort, langue, codret )
159 c
160       endif
161 c
162 c====
163 c 3. Controle du degre
164 c====
165 c
166       if ( codret.eq.0 ) then
167 c
168       call gmliat ( taopts(16), 3, iaux, codret )
169 c
170       endif
171 c
172       if ( codret.eq.0 ) then
173 c
174       if ( iaux.ne.1 ) then
175 c
176         write (ulsort,texte(langue,6)) iaux
177         write (ulsort,texte(langue,7))
178         codret = 1
179 c
180       endif
181 c
182       endif
183 c
184 c====
185 c 4. la fin
186 c====
187 c
188 c 4.1. ==> message si erreur
189 c
190       if ( codret.ne.0 ) then
191 c
192 #include "envex2.h"
193 c
194       write (ulsort,texte(langue,1)) 'Sortie', nompro
195       write (ulsort,texte(langue,2)) codret
196 c
197       endif
198 c
199 c 4.2. ==> fin des mesures de temps de la section
200 c
201       call gtfims (nrosec)
202 c
203 #ifdef _DEBUG_HOMARD_
204       write (ulsort,texte(langue,1)) 'Sortie', nompro
205       call dmflsh (iaux)
206 #endif
207 c
208 c=======================================================================
209       endif
210 c=======================================================================
211 c
212       end