1 subroutine gtfims ( numero )
2 c ______________________________________________________________________
6 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
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
14 c HOMARD est une marque deposee d'Electricite de France
20 c ______________________________________________________________________
21 c premiere creation le 30.12.88 gn
22 c ______________________________________________________________________
24 c 'Gestion du Temps : FIn de Mesure de Section'
27 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 ______________________________________________________________________
37 c . nom . e/s . taille . description .
38 c .____________________________________________________________________.
39 c . numero . e . 1 . numero de la section a mesurer .
40 c ______________________________________________________________________
43 c 0. declarations et dimensionnement
46 c 0.1. ==> generalites
52 parameter ( nompro = 'GTFIMS' )
63 c 0.4. ==> variables locales
65 double precision tuser, tsyst
68 integer ulsort, langue
73 parameter ( nbmess = 10 )
75 character*80 texte(nblang,nbmess)
78 c 1. initialisation des messages
84 c 2. mesure du temps ecoule depuis le dernier appel a dmtemp
87 call dmtemp ( tuser, tsyst )
90 c 3. recuperation de l'information
93 call gttabl ( 1, nbsep1, nbrapp, ouvert, titsec, tpscpu )
102 c 4.1. ==> on incremente tous les compteurs de temps de calcul
103 c correspondants a des sections ouvertes
105 do 4 , iaux = 1 , nbsep1
107 if ( ouvert (iaux) ) then
108 tpscpu (iaux) = tpscpu (iaux) + tuser
113 c 4.2. ==> on cumule le temps d'attente systeme
115 tpscpu(0) = tpscpu(0) + tsyst
118 c 5. gestion de la section
121 c 5.1. ==> verification du numero
123 if ( numero.lt.1 .or. numero.gt.nbsect ) then
124 write (ulsort,texte(langue,1)) 'Sortie', nompro
125 write (ulsort,51000) numero, nbsect
127 call gtstop ( nompro , ulsort , iaux )
131 > 'On veut finir la mesure de temps pour la section',i9,'.',
132 >/,'C''est impossible. Il faut un numero entre 1 et',i9,'.',/)
134 c 5.2. ==> etait-ce deja ouvert ?
136 if ( .not. ouvert(numero) ) then
137 write (ulsort,texte(langue,1)) 'Sortie', nompro
138 write (ulsort,52000) numero
140 call gtstop ( nompro , ulsort , iaux )
144 > 'On veut finir la mesure de temps pour la section',i8,'.',
145 >/,'Or elle n''a jamais ete commencee ...',/)
147 c 5.3. ==> c'est bon, on peut fermer
149 ouvert (numero) = .false.
152 c 6. on archive l'information
155 call gttabl ( 0, nbsep1, nbrapp, ouvert, titsec, tpscpu )
158 c 7. nouvel appel a dmtemp pour ignorer le plus possible le temps
159 c mis par ce programme de mesure
162 call dmtemp ( tuser, tsyst )
164 #ifdef _DEBUG_HOMARD_
165 write (ulsort,texte(langue,1)) 'Sortie', nompro