subroutine gtdems ( numero ) c ______________________________________________________________________ c c H O M A R D c c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D c c Version originale enregistree le 18 juin 1996 sous le numero 96036 c aupres des huissiers de justice Simart et Lavoir a Clamart c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014 c aupres des huissiers de justice c Lavoir, Silinski & Cherqui-Abrahmi a Clamart c c HOMARD est une marque deposee d'Electricite de France c c Copyright EDF 1996 c Copyright EDF 1998 c Copyright EDF 2002 c Copyright EDF 2020 c ______________________________________________________________________ c premiere creation le 30.12.88 gn c ______________________________________________________________________ c c 'Gestion du Temps : DEbut de Mesure de Section' c - - -- - - c ______________________________________________________________________ c c Remarque : en encadrant ce sous-programme par les appels a la fonction c de base dmtemp, on ne prend pas en compte les temps c necessaires a ce sous-programme lui-meme. Cela occasionne c obligatoirement une erreur si on compare le temps total c a la somme des temps particuliers, mais cela permet d'avoir c une bonne precision dans la mesure de chaque section. c c ______________________________________________________________________ c . . . . . c . nom . e/s . taille . description . c .____________________________________________________________________. c . numero . e . 1 . numero de la section a mesurer . c ______________________________________________________________________ c c==== c 0. declarations et dimensionnement c==== c c 0.1. ==> generalites c implicit none save c character*6 nompro parameter ( nompro = 'GTDEMS' ) c #include "genbla.h" #include "gtnbse.h" c c 0.2. ==> communs c c 0.3. ==> arguments c integer numero c c 0.4. ==> variables locales c double precision tuser, tsyst c integer iaux integer ulsort, langue c #include "gtdita.h" c integer nbmess parameter ( nbmess = 10 ) c character*80 texte(nblang,nbmess) c c==== c 1. initialisation des messages c==== c #include "impr01.h" c c==== c 2. mesure du temps ecoule depuis le dernier appel a dmtemp c==== c call dmtemp ( tuser, tsyst ) c c==== c 3. recuperation de l'information c==== c call gttabl ( 1, nbsep1, nbrapp, ouvert, titsec, tpscpu ) c langue = nbrapp(-3) ulsort = nbrapp(0) c c==== c 4. cumul des temps c==== c c 4.1. ==> on incremente tous les compteurs de temps de calcul c correspondant a des sections ouvertes c do 4 , iaux = 1 , nbsep1 c if ( ouvert (iaux) ) then tpscpu (iaux) = tpscpu (iaux) + tuser endif c 4 continue c c 4.2. ==> on cumule le temps d'attente systeme c tpscpu(0) = tpscpu(0) + tsyst c c==== c 5. gestion de la section c==== c c 5.1. ==> verification du numero c if ( numero.lt.1 .or. numero.gt.nbsect ) then write (ulsort,texte(langue,1)) 'Sortie', nompro write (ulsort,51000) numero, nbsect iaux = 1 call gtstop ( nompro , ulsort , iaux ) endif c 51000 format( > 'On veut demarrer la mesure de temps pour la section',i9,'.', >/'C''est impossible. Il faut un numero entre 1 et',i9,'.',/) c c 5.2. ==> etait-ce deja ouvert ? c if ( ouvert(numero) ) then ulsort = nbrapp(0) write (ulsort,texte(langue,1)) 'Sortie', nompro write (ulsort,52000) numero, nbrapp(numero) iaux = 1 call gtstop ( nompro , ulsort , iaux ) endif c 52000 format( > 'On veut demarrer la mesure de temps pour la section',i8,'.', >/'Or elle n''a pas ete close apres la ',i8,'-eme mesure ...',/) c c 5.3. ==> on ouvre la section de cet appel et on ajoute 1 au compteur c ouvert (numero) = .true. nbrapp (numero) = nbrapp (numero) + 1 c c==== c 6. on archive l'information c==== c call gttabl ( 0, nbsep1, nbrapp, ouvert, titsec, tpscpu ) c c==== c 7. nouvel appel a dmtemp pour ignorer le plus possible le temps c mis par ce programme de mesure c==== c call dmtemp ( tuser, tsyst ) c #ifdef _DEBUG_HOMARD_ write (ulsort,texte(langue,1)) 'Sortie', nompro call dmflsh (iaux) #endif c end