1 subroutine hoavec ( 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 AVant 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 = 'HOAVEC' )
64 c 0.4. ==> variables locales
66 integer ulsort, langue, codava
67 integer adopti, lgopti
68 integer adopts, lgopts
69 integer adetco, lgetco
70 integer nrsect, nrssse
71 integer nretap, nrsset
79 parameter ( nbmess = 10 )
80 character*80 texte(nblang,nbmess)
82 c 0.5. ==> initialisations
83 c ______________________________________________________________________
86 c 1. les initialisations
91 c=======================================================================
92 if ( codava.eq.0 ) then
93 c=======================================================================
96 call gmprsx (nompro, nndoad )
97 call gmprsx (nompro, nndoad//'.OptEnt' )
98 call gmprsx (nompro, nndoad//'.OptRee' )
99 call gmprsx (nompro, nndoad//'.OptCar' )
100 call gmprsx (nompro, nndoad//'.EtatCour' )
103 c 1.2. ==> le numero d'unite logique de la liste standard
105 call utulls ( ulsort, codret )
107 c 1.3. ==> la langue des messages
109 call gmadoj ( nndoad//'.OptEnt', adopti, lgopti, codret )
110 if ( codret.eq.0 ) then
111 langue = imem(adopti)
117 c 1.4. ==> Va-t-on ecrire ?
120 if ( codret.eq.0 ) then
121 cgn print *,imem(adopti+20),imem(adopti+4)
122 if ( imem(adopti+20).eq.1 ) then
123 if ( mod(imem(adopti+4),2).eq.0 ) then
127 cgn print *,imem(adopti+3),imem(adopti+4)
128 if ( imem(adopti+3) .eq.-3 .and.
129 > mod(imem(adopti+4),2).eq.0 .and.
130 > imem(adopti+26).eq.1 ) then
133 if ( imem(adopti+3) .eq.5 ) then
138 c-----------------------------------------------------------------------
139 if ( iaux.eq.1 ) then
140 c-----------------------------------------------------------------------
142 c 1.5. ==> l'etat courant
144 call gmadoj ( nndoad//'.EtatCour', adetco, lgetco, codret )
145 if ( codret.eq.0 ) then
146 nretap = imem(adetco) + 1
147 imem(adetco) = nretap
149 imem(adetco+1) = nrsset
150 nrsect = imem(adetco+2) + 10
151 imem(adetco+2) = nrsect
153 imem(adetco+3) = nrssse
162 c 1.6. ==> le debut des mesures de temps
166 c 1.7. ==> les messages
170 #ifdef _DEBUG_HOMARD_
171 write (ulsort,texte(langue,1)) 'Entree', nompro
176 > '(//,a6,'' E C R I T U R E D E S F I C H I E R S'')'
177 texte(1,5) = '(48(''=''),/)'
179 texte(2,4) = '(//,a6,'' W R I T I N G O F F I L E S'')'
180 texte(2,5) = '(38(''=''),/)'
184 call utcvne ( nretap, nrsset, saux, iaux, codret )
186 write (ulsort,texte(langue,4)) saux
187 write (ulsort,texte(langue,5))
190 imem(adetco+1) = nrsset
192 c 1.9. ==> les noms d'objets a conserver
194 if ( codret.eq.0 ) then
195 call gmadoj ( nndoad//'.OptCar', adopts, lgopts, codret )
196 if ( codret.ne.0 ) then
202 c 2. ecriture eventuelle du maillage
205 imem(adetco+3) = imem(adetco+3) + 1
207 if ( codret.eq.0 ) then
209 if ( imem(adopti+20).eq.1 .or. imem(adopti+3).eq.5 ) then
211 if ( mod(imem(adopti+4),2).eq.0 ) then
214 nrssse = imem(adetco+3)
215 nrsset = imem(adetco+1) + 1
216 imem(adetco+1) = nrsset
218 #ifdef _DEBUG_HOMARD_
219 write (ulsort,texte(langue,3)) 'ESEMHO', nompro
221 call esemho ( typobs, nrssse, nretap, nrsset,
223 > imem(adopti+28), smem(adopts+15),
224 > ulsort, langue, codret)
237 c 3.1. ==> message si erreur
239 if ( codret.ne.0 ) then
241 write (ulsort,texte(langue,1)) 'Sortie', nompro
242 write (ulsort,texte(langue,2)) codret
246 c 3.2. ==> fin des mesures de temps de la section
250 #ifdef _DEBUG_HOMARD_
251 write (ulsort,texte(langue,1)) 'Sortie', nompro
255 c-----------------------------------------------------------------------
257 c-----------------------------------------------------------------------
260 c 4. Mise a jour du compteur des sections temporelles
261 c si rien n'a ete fait
264 call gmadoj ( nndoad//'.EtatCour', adetco, lgetco, codret )
265 if ( codret.eq.0 ) then
266 nrsect = imem(adetco+2) + 10
267 imem(adetco+2) = nrsect
269 c-----------------------------------------------------------------------
271 c-----------------------------------------------------------------------
272 c=======================================================================
274 c=======================================================================