Salome HOME
Homard executable
[modules/homard.git] / src / tool / Gestion_MTU / gmadoj.F
1       subroutine gmadoj ( nom, iadres, long, iret)
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     rechercher l'adresse memoire de l' objet-terminal simple
22 c     d'un nom etendu et la taille de cet objet
23 c     ...........................................................
24 c
25 c     entrees :
26 c       nom   : character*(*) : nom etendu
27 c     ...........................................................
28 c
29 c     sorties :
30 c     iadres  : adresse memoire de l'objet-terminal
31 c      long   : la taille de cet objet (en mots)
32 c      iret   : code de retour :
33 c       -4    : erreur : nom etendu invalide
34 c       -3    : erreur : objet-terminal de'nom' non defini
35 c       -2    : erreur : objet-terminal de'nom' est un objet
36 c                      : structure
37 c       -1    : erreur : objet-terminal de 'nom' est defini
38 c                      : mais non alloue
39 c        0    : OK
40 c     ...........................................................
41 c
42 c====
43 c 0. declarations et dimensionnement
44 c====
45 c
46 c 0.1. ==> generalites
47 c
48       implicit none
49       save
50 c
51 c 0.2. ==> communs
52 c
53 #include "gmindi.h"
54 #include "gmimpr.h"
55 #include "gmcoer.h"
56 c
57 c 0.3. ==> arguments
58 c
59       character*(*) nom
60       integer       iadres,long,iret
61 c
62 c 0.4. ==> variables locales
63 c
64       character*8   objrep,objter,chater
65       character*8   letype
66       integer       idec,ioal,ityp,iadr
67       integer nrotab
68 c
69 c 0.5. ==> initialisations
70 c ______________________________________________________________________
71 c
72 c====
73 c 1. les initialisations
74 c====
75 c
76       iret   = 0
77       iadres = iindef
78       long   = iindef
79 c
80 c 1.  decodage du nom etendu
81 c
82       call gbdnoe(nom,objrep,objter,chater,idec)
83 c
84       if (idec.lt.0) then
85 c
86 c        nom etendu invalide
87 c
88          iret = -4
89 c
90       else if (idec.eq.1) then
91 c
92 c        objet-terminal non defini
93 c
94          iret = -3
95 c
96       else if (idec.eq.2) then
97 c
98 c        objet-terminal defini mais non alloue
99 c
100          iret = -1
101 c
102       else
103 c
104          if (idec.eq.0) then
105 c
106 c           'nom' n'a qu'un element
107 c
108             call gbobal(objter,ityp,ioal)
109 c
110             if (ioal.eq.0) then
111 c
112 c              objet non alloue
113 c
114                iret = -1
115 c
116             endif
117 c
118          endif
119 c
120 c 2.     objet-terminal defini et alloue : appel gbcara
121 c
122          if ( iret.eq.0 ) then
123 c
124            call gbcara(objter,nrotab,iadr,long,letype)
125 c
126            if (coergm.gt.1) then
127             write(ulsort,*) ' gmadoj -> retour gbcara > 1'
128             call ugstop('gmadoj',ulsort,1,1,1)
129            endif
130            if (coergm.eq.0) then
131               iret = 0
132               iadres = iadr
133            else
134               iret = -2
135            endif
136 c
137          endif
138 c
139       endif
140 c
141       end