[updated 7.Nov.2002]

Librairie lecdire > Fichier lcfloc.f

Qui appelle lcfloc ?

line
      SUBROUTINE LCFLOC (NUNATU,NIVIMP,IMPMES)
line
  Auteur : O.DeBayser (Mai 1989)
  Derniere modification : D.Martin (1er Mars 2000)
  Version 1.0.1
   
  LeCture de la nature d'un terme element Finis LOCalise 
   
 -- Argument d'entree --
  NIVIMP niveau d'impression en lecture des directives
  IMPMES numero d'unite d'impression des messages
   
 -- Arguments de sortie --
  NUNATU numero de nature du terme ELFLOC ....
 
 -- Sous-directives de la sous-directive NATURE 
    NATURE + <VARIATIONNELLE/SPECTRALE> EN <COLONNE/LIGNE> 
 -- Valeur de NUNATU
  On a NUNATU = NUNATUC (en colonne) + NUNATUL (en ligne)  avec :  
       NUNATU(C ou L) = 2 si nature spectrale  
       NUNATU(C ou L) = 1 si nature variationelle en colonne 
       NUNATU(C ou L) = 0 si nature variationelle en ligne
  de telle sorte que l'on ait le tableau suivant:  
   
                               -----------------------------------------
                               I                  COLONNE              I
                               I    Variationelle    I    Spectrale    I
        ----------------------------------------------------------------
        I       Variationelle  I      NUNATU=1       I    NUNATU=2     I
        I LIGNE---------------------------------------------------------
        I       Spectrale      I      NUNATU=3       I    NUNATU=4     I
        ----------------------------------------------------------------
   
line
      INTEGER          NUNATU,NIVIMP,IMPMES
   
      DOUBLE PRECISION FLOT
      CHARACTER        TEXTE*80
      INTEGER          NFIX,IRE,NER,NCAR,ILU,IOP
     &                ,LUDIRE,NUCOLI,NUVRSP
      COMMON/REDCO1/   FLOT,NFIX,IRE,NER,NCAR,ILU,IOP(5)
      COMMON/REDCOM/   TEXTE 
line
      CALL PRFXMJ (1,'*LcFloc*')
   
      LUDIRE=0 
      NUNATU=0 
      NUCOLI=0 
      NUVRSP=0 
4     CALL REDLE
      IF (IRE.NE.3) CALL REDERR (13,' ')
      IF (IMPMES.GT.0.AND.NIVIMP.GT.0) 
     &   WRITE (IMPMES,10003) '*LcFloc*',TEXTE(1:NCAR)
 
      IF (TEXTE(1:NCAR).EQ.'COLONNE') THEN
         NUCOLI=1
      ELSEIF (TEXTE(1:NCAR).EQ.'LIGNE') THEN
         NUCOLI=2
      ELSEIF (TEXTE(1:NCAR).EQ.'VARIATIONNELLE') THEN
         NUVRSP=1
      ELSEIF (TEXTE(1:NCAR).EQ.'SPECTRALE') THEN
         NUVRSP=2
      ELSE
         GOTO 999
      ENDIF
 
      LUDIRE=LUDIRE+1  
      LUDIRE sert a deux choses  1)lire par paire  
                                 2)calculer NUNATU pour chaque paire
      IF (LUDIRE.EQ.2) THEN 
         IF (NUCOLI*NUVRSP.EQ.0) CALL REDERR (3,TEXTE(1:NCAR))
         IF (NUVRSP.EQ.1) THEN 
            si variationelle en colonne 
            LUDIRE=1
            si variationelle en ligne
            IF (NUCOLI.EQ.2) LUDIRE=0
         ENDIF 
         si spectrale en colonne ou en ligne LUDIRE vaut 2
         NUNATU=NUNATU+LUDIRE  
         LUDIRE=0  
         NUCOLI=0  
         NUVRSP=0  
      ENDIF
      GOTO 4  
999   CALL PRFXMJ (-1,'*LcFloc*')
line
10001 FORMAT(T6,A8,T56,' , suivi de nombre : ',I12)
10002 FORMAT(T6,A8,T56,' , suivi de nombre : ',E12.4)
10003 FORMAT(T6,A8,T56,' , suivi du mot : ',A)
10004 FORMAT(T2,A8,T56,' , suivi de la chaine (*',I2,') : ',A) 
                                                                    END !LcFloc
line
top

lcfloc est appelé dans (2 procédures)

top