1 subroutine hoapec ( codret )
2 c ______________________________________________________________________
6 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
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
14 c HOMARD est une marque deposee d'Electricite de France
20 c ______________________________________________________________________
22 c HOMARD : interface APres adaptation : ECritures
24 c ______________________________________________________________________
26 c . nom . e/s . taille . description .
27 c .____________________________________________________________________.
28 c . codret . es . 1 . code de retour des modules .
29 c . . . . en entree = celui du module d'avant .
30 c . . . . en sortie = celui du module en cours .
31 c . . . . 0 : pas de probleme .
32 c . . . . 1 : manque de temps cpu .
33 c . . . . 2x : probleme dans les memoires .
34 c . . . . 3x : probleme dans les fichiers .
35 c . . . . 5 : mauvaises options .
36 c . . . . 6 : problemes dans les noms d'objet .
37 c ______________________________________________________________________
40 c 0. declarations et dimensionnement
43 c 0.1. ==> generalites
49 parameter ( nompro = 'HOAPEC' )
67 c 0.4. ==> variables locales
69 integer ulsort, langue, codava
70 integer adopti, lgopti
71 integer adetco, lgetco
72 integer adopts, lgopts
73 integer nrsect, nrssse
74 integer nretap, nrsset
81 parameter ( nbmess = 10 )
82 character*80 texte(nblang,nbmess)
84 c 0.5. ==> initialisations
85 c ______________________________________________________________________
88 c 1. les initialisations
95 c=======================================================================
96 if ( codava.eq.0 ) then
97 c=======================================================================
100 call gmprsx (nompro, nndoad )
101 call gmprsx (nompro, nndoad//'.OptEnt' )
102 call gmprsx (nompro, nndoad//'.OptRee' )
103 call gmprsx (nompro, nndoad//'.OptCar' )
104 call gmprsx (nompro, nndoad//'.EtatCour' )
107 c 1.2. ==> le numero d'unite logique de la liste standard
109 call utulls ( ulsort, codret )
111 c 1.3. ==> la langue des messages
113 call gmadoj ( nndoad//'.OptEnt', adopti, lgopti, codret )
114 if ( codret.eq.0 ) then
115 langue = imem(adopti)
121 c 1.4. ==> l'etat courant
123 call gmadoj ( nndoad//'.EtatCour', adetco, lgetco, codret )
124 if ( codret.eq.0 ) then
125 nretap = imem(adetco) + 1
126 imem(adetco) = nretap
128 imem(adetco+1) = nrsset
129 nrsect = imem(adetco+2) + 10
130 imem(adetco+2) = nrsect
132 imem(adetco+3) = nrssse
141 c 1.4. ==> le debut des mesures de temps
145 c 1.5. ==> les messages
149 #ifdef _DEBUG_HOMARD_
150 write (ulsort,texte(langue,1)) 'Entree', nompro
155 > '(//,a6,'' E C R I T U R E D E S F I C H I E R S'')'
156 texte(1,5) = '(48(''=''),/)'
158 texte(2,4) = '(//,a6,'' W R I T I N G O F F I L E S'')'
159 texte(2,5) = '(38(''=''),/)'
163 call utcvne ( nretap, nrsset, saux, iaux, codret )
165 write (ulsort,texte(langue,4)) saux
166 write (ulsort,texte(langue,5))
169 imem(adetco+1) = nrsset
171 c 1.7. ==> les noms d'objets a conserver
173 if ( codret.eq.0 ) then
174 call gmadoj ( nndoad//'.OptCar', adopts, lgopts, codret )
175 if ( codret.ne.0 ) then
181 c 2. Ecriture eventuelle du maillage HOMARD
183 #ifdef _DEBUG_HOMARD_
184 write (ulsort,90002) '2. Maillage HOMARD ; codret', codret
187 if ( codret.eq.0 ) then
189 imem(adetco+3) = imem(adetco+3) + 1
191 if ( mod(imem(adopti+4),3).eq.0 ) then
194 nrssse = imem(adetco+3)
195 nrsset = imem(adetco+1) + 1
196 imem(adetco+1) = nrsset
198 #ifdef _DEBUG_HOMARD_
199 write (ulsort,texte(langue,3)) 'ESEMHO', nompro
201 call esemho ( typobs, nrssse, nretap, nrsset,
203 > imem(adopti+28), smem(adopts+15),
204 > ulsort, langue, codret )
211 c 3. Ecriture eventuelle du maillage de calcul
213 #ifdef _DEBUG_HOMARD_
214 write (ulsort,90002) '3. Maillage de calcul ; codret', codret
217 if ( codret.eq.0 ) then
219 imem(adetco+3) = imem(adetco+3) + 1
221 if ( imem(adopti+21).eq.1 ) then
225 #ifdef _DEBUG_HOMARD_
226 write (ulsort,texte(langue,3)) 'HOAPEM', nompro
228 call hoapem ( lgopti, imem(adopti), lgopts, smem(adopts),
229 > lgetco, imem(adetco),
230 > ulsort, langue, codret )
237 c 4. ecriture eventuelle de solutions
239 #ifdef _DEBUG_HOMARD_
240 write (ulsort,90002) '4. Solutions ; codret', codret
243 if ( codret.eq.0 ) then
245 imem(adetco+3) = imem(adetco+3) + 1
247 if ( imem(adopti+27).eq.1 .or. imem(adopti+11).gt.1 ) then
249 #ifdef _DEBUG_HOMARD_
250 write (ulsort,texte(langue,3)) 'HOAPES', nompro
252 call hoapes ( lgopti, imem(adopti), lgopts, smem(adopts),
253 > lgetco, imem(adetco),
254 > ulsort, langue, codret )
264 c 5.1. ==> message si erreur
266 if ( codret.ne.0 ) then
270 write (ulsort,texte(langue,1)) 'Sortie', nompro
271 write (ulsort,texte(langue,2)) codret
275 c 5.2. ==> fin des mesures de temps de la section
279 #ifdef _DEBUG_HOMARD_
280 write (ulsort,texte(langue,1)) 'Sortie', nompro
284 c=======================================================================
286 c=======================================================================