1 subroutine guinit ( enstul, sostul, langdf,
2 > nfconf, lfconf, codret )
3 c ______________________________________________________________________
7 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
9 c Version originale enregistree le 18 juin 1996 sous le numero 96036
10 c aupres des huissiers de justice Simart et Lavoir a Clamart
11 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
12 c aupres des huissiers de justice
13 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
15 c HOMARD est une marque deposee d'Electricite de France
21 c ______________________________________________________________________
23 c but : initialiser la gestion des unites logiques
24 c - a priori tout est disponible
25 c - on reserve l'entree standard
26 c - on reserve la sortie standard
27 c - on archive ce point de depart
28 c ______________________________________________________________________
30 c . nom . e/s . taille . description .
31 c .____________________________________________________________________.
32 c . enstul . e . 1 . entree standard : numero de l'unite logique.
33 c . sostul . e . 1 . sortie standard : numero de l'unite logique.
34 c . langdf . e . 1 . langue des messages par defaut .
35 c . . . . 1 : francais .
36 c . . . . 2 : anglais .
37 c . nfconf . e . ch<200 . nom du fichier de configuration .
38 c . lfconf . e . 1 . longueur du nom du fichier .
39 c . codret . s . 1 . 0 : tout va bien .
40 c . . . . 3 : problemes .
41 c ______________________________________________________________________
44 c 0. declarations et dimensionnement
47 c 0.1. ==> generalites
53 parameter ( nompro = 'GUINIT' )
69 integer enstul, sostul, langdf, lfconf
72 c 0.4. ==> variables locales
74 integer entrst, sortst
75 integer ulsort, langue
80 integer gunmbr(lgunmb)
81 integer statut(mbmxul), lnomfi(mbmxul)
83 character*200 nomfic(mbmxul)
87 double precision rindef
93 parameter ( nbmess = 3 )
94 character*80 texte(nblang,nbmess)
96 c 0.5. ==> initialisations
98 data dejavu / .false. /
101 c ______________________________________________________________________
109 c 1.1. ==> au debut, tout va bien ...
113 c 1.2. ==> les valeurs indefinies
115 call dmindf ( iindef, rindef, sindef )
117 c 1.3. ==> on verifie que l'initialisation n'a pas deja ete faite
122 call gutabl ( code, gunmbr, statut, nomfic, lnomfi )
128 if ( typarr.eq.0 ) then
131 call gustop ( nompro, ulsort, guimp, raison )
138 c 1.4. ==> tout est libre
140 if ( codret.eq.0 ) then
142 do 141 , iaux = 1 , 25
143 nomaux(8*(iaux-1)+1:8*iaux) = sindef
146 do 142 , iaux = 1 , mbmxul
148 lnomfi(iaux) = iindef
149 nomfic(iaux) = nomaux
152 do 143 , iaux = 1 , lgunmb
153 gunmbr(iaux) = iindef
159 c 2. reservation des unites standard
162 if ( codret.eq.0 ) then
164 c 2.1. ==> on verifie que les numeros donnes pour les unites
165 c d'entree/sorties standard sont corrects.
166 c . s'ils le sont, on declare la sortie standard comme etant
167 c l'unite des messages par defaut.
168 c . s'ils ne le sont pas, on arrete.
169 c remarque : si l'unite logique souhaitee pour la sortie
170 c standard, sostul, il faut imprimer un message.
171 c or on ne sait pas ou : on le fait sur l'unite
172 c "ecran", faute de mieux.
176 if ( sostul.lt.1 .or. sostul.gt.mbmxul ) then
177 call dmunit ( entrst , sortst )
179 write (ulsort,texte(langue,1)) 'Sortie', nompro
180 write(sortst,21010) 'Sortie', sostul
182 if ( .not.dejavu ) then
189 if ( enstul.lt.1 .or. enstul.gt.mbmxul ) then
191 write (ulsort,texte(langue,1)) 'Sortie', nompro
192 write(ulsort,21010) 'Entree', enstul
196 if ( enstul.eq.sostul ) then
198 write (ulsort,texte(langue,1)) 'Sortie', nompro
199 write(ulsort,21020) enstul
203 if ( iaux.ne.0 ) then
204 if ( typarr.eq.0 ) then
207 call gustop ( nompro, ulsort, guimp, raison )
213 c 2.2. ==> reservation
215 if ( codret.eq.0 ) then
225 c 3. on archive l'information
228 if ( codret.eq.0 ) then
230 c (1): nbre maxi d'unites ouvertes form/sequ
233 c (2): nbre maxi d'unites ouvertes bina/sequ
236 c (3): nbre maxi d'unites ouvertes bina/dire standard
239 c (4): nbre maxi d'unites ouvertes bina/dire special
242 c (5): nbre total d'unites ouvertes form/sequ
245 c (6): nbre total d'unites ouvertes bina/sequ
248 c (7): nbre total d'unites ouvertes bina/dire standard
251 c (8): nbre total d'unites ouvertes bina/dire special
254 c (9): nbre actuel d'unites ouvertes form/sequ
257 c (10): nbre actuel d'unites ouvertes bina/sequ
260 c (11): nbre actuel d'unites ouvertes bina/dire standard
263 c (12): nbre actuel d'unites ouvertes bina/dire special
266 c (13): nb maxi d'unites ouvertes tous types
269 c (14): numero de l'entree standard
272 c (15): numero de la sortie standard
275 c (16): numero de l'unite des messages du gu
278 c (17): langue des messages du gu
281 c (18): type d'arret du gestionnaire
285 call gutabl ( code, gunmbr, statut, nomfic, lnomfi )
290 c 4. on note que l'on est deja passe par l'initialisation
293 if ( codret.eq.0 ) then
298 call ugtabl ( code, tabges, sostul)
303 call ugtabl ( code, tabges, sostul)
308 c 5. recherche du mode d'arret
311 call gumoge ( nfconf, lfconf, codret )
318 >/,'L''initialisation de GU a deja ete faite.',//)
320 >/,a6,' standard : l''unite ',i8,' est incorrecte.',
321 >/,'Il faut un numero compris entre 1 et mbmxul.',//)
323 >/,'L''entree et la sortie standard sont sur la meme unite ',i8,
324 >/,'Ce n''est pas bon, mes amis ...',//)