Salome HOME
Homard executable
[modules/homard.git] / src / tool / Gestion_MTU / gtfims.F
1       subroutine gtfims ( numero )
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                                       premiere creation le 30.12.88 gn
22 c ______________________________________________________________________
23 c
24 c    'Gestion du Temps : FIn de Mesure de Section'
25 c     -          -       --     -         -
26 c
27 c ______________________________________________________________________
28 c
29 c Remarque : en encadrant ce sous-programme par les appels a la fonction
30 c            de base dmtemp, on ne prend pas en compte les temps
31 c            necessaires a ce sous-programme lui-meme. Cela occasionne
32 c            obligatoirement une erreur si on compare le temps total
33 c            a la somme des temps particuliers, mais cela permet d'avoir
34 c            une bonne precision dans la mesure de chaque section.
35 c ______________________________________________________________________
36 c .        .     .        .                                            .
37 c .  nom   . e/s . taille .           description                      .
38 c .____________________________________________________________________.
39 c . numero . e   .    1   . numero de la section a mesurer             .
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       character*6 nompro
52       parameter ( nompro = 'GTFIMS' )
53 c
54 #include "genbla.h"
55 #include "gtnbse.h"
56 c
57 c 0.2. ==> communs
58 c
59 c 0.3. ==> arguments
60 c
61       integer numero
62 c
63 c 0.4. ==> variables locales
64 c
65       double precision tuser, tsyst
66 c
67       integer iaux
68       integer ulsort, langue
69 c
70 #include "gtdita.h"
71 c
72       integer nbmess
73       parameter ( nbmess = 10 )
74 c
75       character*80 texte(nblang,nbmess)
76 c
77 c====
78 c 1. initialisation des messages
79 c====
80 c
81 #include "impr01.h"
82 c
83 c====
84 c 2. mesure du temps ecoule depuis le dernier appel a dmtemp
85 c====
86 c
87       call dmtemp ( tuser, tsyst )
88 c
89 c====
90 c 3. recuperation de l'information
91 c====
92 c
93       call gttabl ( 1, nbsep1, nbrapp, ouvert, titsec, tpscpu )
94 c
95       langue = nbrapp(-3)
96       ulsort = nbrapp(0)
97 c
98 c====
99 c 4. cumul des temps
100 c====
101 c
102 c 4.1. ==> on incremente tous les compteurs de temps de calcul
103 c         correspondants a des sections ouvertes
104 c
105       do 4 , iaux = 1 , nbsep1
106 c
107         if ( ouvert (iaux) ) then
108           tpscpu (iaux) = tpscpu (iaux) + tuser
109         endif
110 c
111     4 continue
112 c
113 c 4.2. ==> on cumule le temps d'attente systeme
114 c
115       tpscpu(0) = tpscpu(0) + tsyst
116 c
117 c====
118 c 5. gestion de la section
119 c====
120 c
121 c 5.1. ==> verification du numero
122 c
123       if ( numero.lt.1 .or. numero.gt.nbsect ) then
124         write (ulsort,texte(langue,1)) 'Sortie', nompro
125         write (ulsort,51000) numero, nbsect
126         iaux = 1
127         call gtstop ( nompro , ulsort , iaux )
128       endif
129 c
130 51000 format(
131      >  'On veut finir la mesure de temps pour la section',i9,'.',
132      >/,'C''est impossible. Il faut un numero entre 1 et',i9,'.',/)
133 c
134 c 5.2. ==> etait-ce deja ouvert ?
135 c
136       if ( .not. ouvert(numero) ) then
137         write (ulsort,texte(langue,1)) 'Sortie', nompro
138         write (ulsort,52000) numero
139         iaux = 1
140         call gtstop ( nompro , ulsort , iaux )
141       endif
142 c
143 52000 format(
144      >  'On veut finir la mesure de temps pour la section',i8,'.',
145      >/,'Or elle n''a jamais ete commencee ...',/)
146 c
147 c 5.3. ==> c'est bon, on peut fermer
148 c
149       ouvert (numero) = .false.
150 c
151 c====
152 c 6. on archive l'information
153 c====
154 c
155       call gttabl ( 0, nbsep1, nbrapp, ouvert, titsec, tpscpu )
156 c
157 c====
158 c 7. nouvel appel a dmtemp pour ignorer le plus possible le temps
159 c    mis par ce programme de mesure
160 c====
161 c
162       call dmtemp ( tuser, tsyst )
163 c
164 #ifdef _DEBUG_HOMARD_
165       write (ulsort,texte(langue,1)) 'Sortie', nompro
166       call dmflsh (iaux)
167 #endif
168 c
169       end