Salome HOME
Homard executable
[modules/homard.git] / src / tool / Gestion_MTU / gmliat.F
1       subroutine gmliat (nom,numero,valeur,codret)
2 c ______________________________________________________________________
3 c
4 c                             H O M A R D
5 c
6 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
7 c
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
13 c
14 c    HOMARD est une marque deposee d'Electricite de France
15 c
16 c Copyright EDF 1996
17 c Copyright EDF 1998
18 c Copyright EDF 2002
19 c Copyright EDF 2020
20 c ______________________________________________________________________
21 c     lire la valeur de l'attribut numero 'numero' de
22 c     l'objet-terminal du nom etendu "nom"
23 c     ...........................................................
24 c
25 c     entrees :
26 c
27 c       nom   : character*(*) : nom etendu
28 c     numero  : integer       : numero de l'attribut
29 c
30 c     ...........................................................
31 c
32 c     sorties : 
33 c      valeur : valeur de l'attribut lue
34 c      codret : code de retour :
35 c       -5    : erreur : nom etendu invalide
36 c       -4    : erreur : objet-terminal pas defini
37 c       -3    : erreur : objet-terminal defini mais pas alloue
38 c       -2    : erreur : objet-terminal n'est pas structure
39 c       -1    : erreur : numero < 1 ou
40 c                      : numero > nombre d'attributs de objet-terminal 
41 c        0    : OK
42 c
43 c     ...........................................................
44 c
45 c====
46 c 0. declarations et dimensionnement
47 c====
48 c
49 c
50 c 0.1. ==> generalites
51 c
52       implicit none
53       save
54 c
55 #include "gmmatc.h"
56 c
57 c 0.2. ==> communs
58 c
59 #include "gmtori.h"
60 #include "gmtoai.h"
61 #include "gmtoas.h"
62 c
63 #include "gmindi.h"
64 c
65 c 0.3. ==> arguments
66 c
67       character*(*) nom 
68       integer       numero,valeur,codret
69 c
70 c 0.4. ==> variables locales
71 c
72       character*8   objrep,objter,chater
73       integer       idec,iob,ity,nba,iat,nroobj
74 c
75 c====
76 c 1.  decodage du nom etendu
77 c====
78 c
79       valeur = 0
80       call gbdnoe(nom,objrep,objter,chater,idec)
81 c
82       if (idec.lt.0) then
83 c
84 c       nom etendu invalide
85 c
86         codret = -5 
87 c
88       else if (idec.eq.1) then
89 c
90 c       objet-terminal non defini 
91 c
92         codret = -4
93 c
94       else if (idec.eq.2) then
95 c
96 c       objet-terminal defini mais non alloue  
97 c
98         codret = -3
99 c
100       else
101 c
102 c       objet-terminal est defini et eventuellement alloue
103 c
104         do  10 , iob = 1,iptobj-1
105           if (nomobj(iob).eq.objter) then
106             nroobj = iob
107             codret = 0
108             goto 20
109           endif
110    10   continue
111 c
112 c       objet-terminal n'est pas structure
113 c
114         codret = -2
115 c
116       endif 
117 c
118 c====
119 c 2. objet structure : lecture de l'attribut
120 c    en cas d'echec, on met une valeur indefinie
121 c====
122 c
123    20 continue
124 c
125       if ( codret.eq.0 ) then
126 c
127       ity = typobj(nroobj)
128       nba = nbratt(ity)
129       codret = -1
130       if ((numero.le.nba).and.(numero.gt.0)) then
131          codret = 0
132          iat = adrdsa(iob)+numero-1
133          valeur = valatt(iat) 
134       endif
135 c
136       endif
137 c
138       if ( codret.ne.0 ) then
139         valeur = iindef
140       endif
141 c
142       end