1 subroutine gmlboj ( nom, 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 liberation de l'objet terminal de nom etendu "nom"
23 c tous les attachements de l'objet sont supprimes
24 c ______________________________________________________________________
26 c . nom . e/s . taille . description .
27 c .____________________________________________________________________.
28 c . nom . e .char(*) . nom etendu de l'objet a liberer .
29 c . codret . s . ent . code retour de l'operation .
30 c . . . . 1 : nom d'objet temporaire inconnu .
32 c . . . . -1 : objet-terminal non alloue .
33 c . . . . -2 : objet-terminal non defini .
34 c . . . . -3 : nom etendu invalide .
35 c . . . . -4 : support introuvable dans les tables .
36 c . . . . -5 : champ introuvable dans les tables .
37 c ______________________________________________________________________
40 c 0. declarations et dimensionnement
43 c 0.1. ==> generalites
49 parameter ( nompro = 'GMLBOJ' )
67 c 0.4. ==> variables locales
70 character*8 objrep, objter, chater
74 integer icar, imin, imax
77 parameter ( nbmess = 10 )
78 character*80 texte(nblang,nbmess)
87 write (ulsort,texte(langue,1)) 'Entree', nompro
91 c 1. decodage du nom etendu
94 call gbdnoe(nom,objrep,objter,chater,idec)
102 else if (idec.eq.1) then
104 c objet-terminal non defini
108 else if (idec.eq.2) then
110 c objet-terminal defini mais non alloue
117 c 2. liberation de l'objet alloue
118 c detachement de l'objet de tous ses supports
119 c si c'est un objet temporaire et que c'est une tete, on le raye
123 call gblboj ( objter )
125 if ( coergm.eq.0 ) then
128 call gbdtoj ( nomaux, objter )
137 if ( idec.eq.0 .and. codret.eq.0 ) then
139 if ( nom(1:1).eq.caint1 ) then
141 c avant de supprimer le nom de la liste des noms d'objets temporaires,
142 c on verifie que le nom (terminal) a bien la structure d'un nom
143 c temporaire : un certain nombre (>0) de caracteres caint1 (% a priori),
144 c suivis d'un entier (le tout, code sur 8 caracteres).
149 iaux = index('0123456789'//caint1, objter(icar:icar))
150 if (iaux.lt.imin.or.iaux.gt.imax) then
160 call gbntde ( objter , iaux )
174 if ( codret.ne.0 ) then