Salome HOME
Homard executable
[modules/homard.git] / src / tool / ES_MED / eslch5.F
1       subroutine eslch5 ( nrtafo,
2      >                    nbtafo, nbpg, nbvalc, nbcomp,
3      >                    vafonc, trav1,
4      >                    obcham, objech,
5      >                    ulsort, langue, codret )
6 c ______________________________________________________________________
7 c
8 c                             H O M A R D
9 c
10 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
11 c
12 c Version originale enregistree le 18 juin 1996 sous le numero 96036
13 c aupres des huissiers de justice Simart et Lavoir a Clamart
14 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
15 c aupres des huissiers de justice
16 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
17 c
18 c    HOMARD est une marque deposee d'Electricite de France
19 c
20 c Copyright EDF 1996
21 c Copyright EDF 1998
22 c Copyright EDF 2002
23 c Copyright EDF 2020
24 c ______________________________________________________________________
25 c
26 c  Entree-Sortie - Lecture d'un CHamp au format MED - phase 5
27 c  -      -        -            --                          -
28 c  Ce programme est le symetrique de ESECH2
29 c  Remarque : eslch5 et eslch8 sont des clones
30 c             5 : double precision
31 c             8 : entier
32 c ______________________________________________________________________
33 c .        .     .        .                                            .
34 c .  nom   . e/s . taille .           description                      .
35 c .____________________________________________________________________.
36 c . nrtafo . es  .   1    . numero courant du tableau de la fonction   .
37 c . nbtafo . e   .   1    . nombre de tableaux de la fonction          .
38 c . nbpg   . e   .   1    . nombre de points de Gauss, s'il y en a     .
39 c .        .     .        . si le champ est sans point de Gauss, nbpg  .
40 c .        .     .        . vaut 1 pour aider au traitement            .
41 c . nbvalc . e   .   1    . nombre de valeurs par composante           .
42 c . nbcomp . e   .   1    . nombre de composantes du champ             .
43 c . vafonc . es  .   *    . valeurs de la fonction                     .
44 c . trav1  . e   .   *    . valeurs lues                               .
45 c . obcham . e   . char8  . nom de l'objet de type 'InfoCham' associe  .
46 c . objech . es  . nbtafo . nom de l'objet de type 'InfoCham' associe  .
47 c . ulsort . e   .   1    . numero d'unite logique de la liste standard.
48 c . langue . e   .    1   . langue des messages                        .
49 c .        .     .        . 1 : francais, 2 : anglais                  .
50 c . codret . es  .    1   . code de retour des modules                 .
51 c .        .     .        . 0 : pas de probleme                        .
52 c .        .     .        . 1 : probleme                               .
53 c ______________________________________________________________________
54 c
55 c====
56 c 0. declarations et dimensionnement
57 c====
58 c
59 c 0.1. ==> generalites
60 c
61       implicit none
62       save
63 c
64       character*6 nompro
65       parameter ( nompro = 'ESLCH5' )
66 c
67 #include "nblang.h"
68 c
69 c 0.2. ==> communs
70 c
71 #include "envex1.h"
72 c
73 c 0.3. ==> arguments
74 c
75       integer nrtafo
76       integer nbtafo
77       integer nbpg, nbvalc, nbcomp
78 c
79       double precision trav1(nbpg,nbvalc,nbcomp)
80       double precision vafonc(nbtafo,nbpg,*)
81 c
82       character*8 obcham
83       character*8 objech(*)
84 c
85       integer ulsort, langue, codret
86 c
87 c 0.4. ==> variables locales
88 c
89       integer iaux
90       integer nrcomp, nugaus
91 c
92       integer nbmess
93       parameter ( nbmess = 10 )
94       character*80 texte(nblang,nbmess)
95 c
96 c 0.5. ==> initialisations
97 c ______________________________________________________________________
98 c
99 c====
100 c 1. initialisations
101 c====
102 c
103 #include "impr01.h"
104 c
105 #ifdef _DEBUG_HOMARD_
106       write (ulsort,texte(langue,1)) 'Entree', nompro
107       call dmflsh (iaux)
108 #endif
109 c
110       texte(1,4) = '(''. '',a,'' = '',i8)'
111       texte(1,5) = '(''. Premiere valeur : '',g14.7)'
112       texte(1,6) = '(''. Derniere valeur : '',g14.7)'
113       texte(1,7) = '(''... Composante numero '',i8)'
114 c
115       texte(2,4) = '(''. '',a,'' = '',i8)'
116       texte(2,5) = '(''. First value : '',g14.7)'
117       texte(2,6) = '(''. Last value  : '',g14.7)'
118       texte(2,7) = '(''... Composante # '',i8)'
119 c
120 #ifdef _DEBUG_HOMARD_
121       write (ulsort,texte(langue,4)) 'nbtafo', nbtafo
122       write (ulsort,texte(langue,4)) 'nbpg  ', nbpg
123       write (ulsort,texte(langue,4)) 'nbvalc', nbvalc
124       write (ulsort,texte(langue,4)) 'nbcomp', nbcomp
125       write (ulsort,texte(langue,4)) 'nrtafo au depart', nrtafo
126 #endif
127 c
128 c====
129 c 2. Transfert
130 c====
131 c
132       codret = 0
133 c
134       do 20 , nrcomp = 1 , nbcomp
135 c
136 #ifdef _DEBUG_HOMARD_
137       write (ulsort,texte(langue,7)) nrcomp
138       write (ulsort,texte(langue,4)) '==> nrtafo', nrtafo
139 #endif
140 c
141 cgn             print *,'nrcomp,nrtafo, nbvalc = ',nrcomp,nrtafo, nbvalc
142 c
143 c 2.1. ==> les valeurs numeriques
144 c
145         if ( nbpg.eq.1 ) then
146 c
147           do 21 , iaux = 1 , nbvalc
148 cgn            write(11,*) 'trav1 = ',trav1(1,iaux,nrcomp)
149             vafonc(nrtafo,1,iaux) = trav1(1,iaux,nrcomp)
150  21       continue
151 c
152         else
153 c
154           do 22 , iaux = 1 , nbvalc
155 cgn            print *,'trav1(...,',iaux,',',nrcomp,') = ',
156 cgn     >             (trav1(nugaus,iaux,nrcomp),nugaus=1,nbpg)
157             do 221 , nugaus = 1 , nbpg
158               vafonc(nrtafo,nugaus,iaux) = trav1(nugaus,iaux,nrcomp)
159   221       continue
160    22     continue
161 c
162         endif
163 c
164 #ifdef _DEBUG_HOMARD_
165       write (ulsort,texte(langue,5)) vafonc(nrtafo,1,1)
166       write (ulsort,texte(langue,6)) vafonc(nrtafo,nbpg,nbvalc)
167 #endif
168 c
169 c 2.2. ==> les caracteristiques du champ associe
170 c
171         objech(nrtafo) = obcham
172 c
173 c 2.3. ==> tableau suivant dans la fonction
174 c
175         nrtafo = nrtafo + 1
176 c
177    20 continue
178 c
179 #ifdef _DEBUG_HOMARD_
180       write (ulsort,texte(langue,4)) 'nrtafo a la fin ', nrtafo
181 #endif
182 c
183 c====
184 c 3. la fin
185 c====
186 c
187       if ( codret.ne.0 ) then
188 c
189 #include "envex2.h"
190 c
191       write (ulsort,texte(langue,1)) 'Sortie', nompro
192       write (ulsort,texte(langue,2)) codret
193 c
194       endif
195 c
196 #ifdef _DEBUG_HOMARD_
197       write (ulsort,texte(langue,1)) 'Sortie', nompro
198       call dmflsh (iaux)
199 #endif
200 c
201       end