Salome HOME
Homard executable
[modules/homard.git] / src / tool / Gestion_MTU / gmtyoj.F
1       subroutine gmtyoj ( nom, typobj, simple, 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
22 c    determine le type d'un objet
23 c ______________________________________________________________________
24 c .        .     .        .                                            .
25 c .  nom   . e/s . taille .           description                      .
26 c .____________________________________________________________________.
27 c . nom    . e   .char*(*). nom etendu de l'objet                      .
28 c . typobj .  s  . char*8 . type de l'objet                            .
29 c . simple .  s  . ent    . 1 : l'objet est simple                     .
30 c .        .     .        . 0 : l'objet est compose                    .
31 c . codret .  s  . ent    . code retour de l'operation                 .
32 c .        .     .        .  0 : OK                                    .
33 c .        .     .        . -1 : objet-terminal non alloue             .
34 c .        .     .        . -2 : objet-terminal non defini             .
35 c .        .     .        . -3 : nom etendu invalide                   .
36 c ______________________________________________________________________
37 c
38 c====
39 c 0. declarations et dimensionnement
40 c====
41 c
42 c
43 c 0.1. ==> generalites
44 c
45       implicit none
46       save
47       character*6 nompro
48       parameter ( nompro = 'GMTYOJ' )
49 c
50 c
51 #include "genbla.h"
52 c
53 #include "gmmatc.h"
54 c
55 c 0.2. ==> communs
56 c
57 #include "gmtoas.h"
58 c
59 #include "gmimpr.h"
60 #include "gmlang.h"
61 #include "gminds.h"
62 c
63 c 0.3. ==> arguments
64 c
65       character*(*) nom
66       character*8 typobj
67 c
68       integer simple, codret
69 c
70 c 0.4. ==> variables locales
71 c
72       character*8 objrep,objter,chater
73 c
74       integer iaux, idec, ioal, letype
75 c
76       integer nbmess
77       parameter ( nbmess = 20 )
78       character*80 texte(nblang,nbmess)
79 c
80 c 0.5. ==> initialisations
81 c ______________________________________________________________________
82 c
83 c====
84 c 1. messages
85 c====
86 c
87 #include "impr01.h"
88 c
89 #ifdef _DEBUG_HOMARD_
90       write (ulsort,texte(langue,1)) 'Entree', nompro
91       call dmflsh (iaux)
92 #endif
93 c
94       texte(1,10) = '(''Nom de l''''objet en memoire centrale :'')'
95       texte(1,11) = '(''L''''objet n''''est pas alloue.'')'
96       texte(1,12) = '(''L''''objet n''''est pas defini.'')'
97       texte(1,13) = '(''Le nom est invalide.'')'
98 c
99       texte(2,10) = '(''Name of the object in central memory :'')'
100       texte(2,11) = '(''The object is not allocated.'')'
101       texte(2,12) = '(''The object is not defined.'')'
102       texte(2,13) = '(''Bad name in central memory.'')'
103 #ifdef _DEBUG_HOMARD_
104       write (ulsort,90000)
105         write (ulsort,texte(langue,1)) 'Sortie', nompro
106       write (ulsort,texte(langue,10))
107       write (ulsort,*) nom
108 #endif
109 c
110 c====
111 c 2. on se base sur le nom interne pour travailler
112 c====
113 c
114       typobj = sindef
115 c
116       codret = 0
117 c
118 c 2.1. ==> appel de la fonction generique
119 c
120       call gbdnoe ( nom, objrep, objter, chater, idec )
121 c
122       if (idec.lt.0) then
123 c
124 c 2.2. ==> nom etendu invalide
125 c
126          codret = -3
127 c
128       else if (idec.eq.1) then
129 c
130 c 2.3. ==> objet-terminal non defini
131 c
132          codret = -2
133 c
134       else if (idec.eq.2) then
135 c
136 c 2.4. ==> objet-terminal non alloue
137 c
138          codret = -1
139 c
140       else
141 c
142 c 2.5. ==> sous quel forme l'objet terminal est-il alloue ?
143 c
144          call gbobal ( objter, letype, ioal )
145 c
146          if ( ioal.eq.1 ) then
147             simple = 0
148             typobj = nomtbp(letype)
149          elseif ( ioal.eq.2 ) then
150             simple = 1
151             typobj = nomtbp(letype)
152          else
153             codret = -1
154          endif
155 c
156       endif
157 c
158 c 2.6. ==> bilan
159 c
160       if ( codret.ne.0 ) then
161          goto 91
162       endif
163 c
164 c====
165 c 9. gestion des erreurs
166 c====
167 c
168    91 continue
169 c
170       if ( codret.ne.0 ) then
171 c
172          iaux = 10+abs(codret)
173 c
174          write (ulsort,90000)
175          write (ulsort,texte(langue,1)) 'Sortie', nompro
176          write (ulsort,texte(langue,10))
177          write (ulsort,*) nom
178          write (ulsort,texte(langue,iaux))
179          write (ulsort,90000)
180 c
181       endif
182 c
183 90000 format (70('='))
184 c
185 #ifdef _DEBUG_HOMARD_
186       write (ulsort,90000)
187 #endif
188       end