c@a
c@versb
C-----------------------------------------------------------------------
C
CVERS                  Code_Saturne version 1.3
C                      ------------------------
C
C     This file is part of the Code_Saturne Kernel, element of the
C     Code_Saturne CFD tool.
C
C     Copyright (C) 1998-2008 EDF S.A., France
C
C     contact: saturne-support@edf.fr
C
C     The Code_Saturne Kernel is free software; you can redistribute it
C     and/or modify it under the terms of the GNU General Public License
C     as published by the Free Software Foundation; either version 2 of
C     the License, or (at your option) any later version.
C
C     The Code_Saturne Kernel is distributed in the hope that it will be
C     useful, but WITHOUT ANY WARRANTY; without even the implied warranty
C     of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
C     GNU General Public License for more details.
C
C     You should have received a copy of the GNU General Public License
C     along with the Code_Saturne Kernel; if not, write to the
C     Free Software Foundation, Inc.,
C     51 Franklin St, Fifth Floor,
C     Boston, MA  02110-1301  USA
C
C-----------------------------------------------------------------------
c@verse
                        SUBROUTINE ELLECD
C                       *****************
C***********************************************************************
C  FONCTION  :
C  ---------
c@foncb
CFONC
CFONC  LECTURE DU FICHIER DE DONNEES PHYSIQUE PARTICULIERE
CFONC             RELATIF AU MODULE ELECTRIQUE
CFONC
c@fonce
C-----------------------------------------------------------------------
C                             ARGUMENTS
c@argub
CARGU .______________.____._____.______________________________________.
CARGU !    NOM       !TYPE!MODE !                   ROLE               !
CARGU !______________!____!_____!______________________________________!
CARGU !______________!____!_____!______________________________________!
c@argue
C
c@commb
CCOMM                             COMMONS
CCOMM .______________.____._____.______________________________________.
CCOMM !    NOM       !TYPE!MODE !                   ROLE               !
CCOMM !______________!____!_____!______________________________________!
CCOMM !______________!____!_____!______________________________________!
c@comme
C
C     TYPE : E (ENTIER), R (REEL), A (ALPHANUMERIQUE), T (TABLEAU)
C            L (LOGIQUE)   .. ET TYPES COMPOSES (EX : TR TABLEAU REEL)
C     MODE : -> DONNEE, <- RESULTAT, <-> DONNEE MODIFIEE,
C            - TABLEAU DE TRAVAIL
C***********************************************************************
C
      IMPLICIT NONE
C
C***********************************************************************
C     DONNEES EN COMMON
C***********************************************************************
C
      INCLUDE "paramx.h"
      INCLUDE "pointe.h"
      INCLUDE "vector.h"
      INCLUDE "entsor.h"
      INCLUDE "cstnum.h"
      INCLUDE "cstphy.h"
      INCLUDE "ppppar.h"
      INCLUDE "ppthch.h"
      INCLUDE "ppincl.h"
      INCLUDE "elincl.h"
C
C***********************************************************************
C
C ARGUMENTS
C
C VARIABLES LOCALES
C
      INTEGER          IT, IOS , IESP, II , I
C
C***********************************************************************
C=======================================================================
C 0. INITIALISATION
C=======================================================================
C
      NGAZG = 1
C
C=======================================================================
C 1. LECTURE DU FICHIER DONNEES SPECIFIQUES
C=======================================================================
C
C --> Ouverture du fichier
C
      IF ( IPPMOD(IELARC).GE.1 .OR. IPPMOD(IELJOU).EQ.3
     &                         .OR. IPPMOD(IELJOU).EQ.4 ) THEN
        OPEN ( UNIT=IMPFPP, FILE=FICFPP,
     &        STATUS='OLD', FORM='FORMATTED', ACCESS='SEQUENTIAL',
     &                                        IOSTAT=IOS, ERR=99 )
        REWIND ( UNIT=IMPFPP,ERR=99 )
      ENDIF
C
C==========================================
C 2. LECTURE D'UN FICHIER ARC ELECTRIQUE
C==========================================
C     Il n'y a pas de lecture de fichier prevue pour l'effet Joule
C
C
C
C  on transporte l'enthalpie, on suppose qu'il y a du rayonnement
C  la conductivite, la masse volumique, l'emissivite et
C  la viscosite dependent de la temperature
C
      IF ( IPPMOD(IELARC).GE.1 ) THEN
C
        NGAZG = 0
C
C ----- NB de constituants et Nb de points de tabulation
C     on saute les lignes de commentaires
        DO II = 1, 7
          READ (IMPFPP,*)
        ENDDO
        READ ( IMPFPP,*,ERR=999,END=999 ) NGAZG,NPO
C
        IF ( NPO.GT.NPOT ) THEN
          WRITE(NFECRA,8000) NPOT
          CALL CSEXIT (1)
C         ===========
        ENDIF
C
        IF ( NGAZG.GT. NGAZGM) THEN
          WRITE(NFECRA,8001) NGAZGM, NGAZG
          CALL CSEXIT (1)
C         ===========
        ENDIF
C
        IF ( NGAZG.LT. 1) THEN
          WRITE(NFECRA,8002)NGAZG
          CALL CSEXIT (1)
C         ===========
        ENDIF
C
C -----  Lecture de l'indicateur pour savoir ce que represente XKABEL
C      on saute les lignes de commentaires
        DO II = 1, 5
          READ (IMPFPP,*)
        ENDDO
        READ ( IMPFPP,*,ERR=999,END=999 ) IXKABE
        IF ( IXKABE .LT. 0 .OR. IXKABE .GE. 3 ) THEN
          WRITE(NFECRA,8003) IXKABE
          CALL CSEXIT (1)
C         ===========
        ENDIF
C     Si IXKABE=1, il faut activer explicitement le rayonnement
        IF (IXKABE.EQ.1) IRAYPP = 1
C
C ----- En fonction de la temperature pour chaque espece courante
C          Enthalpie massique
C          Masse volumique
C          Chaleur massique
C          Conductivite electrique
C          Viscosite laminaire
C          Conductivite Thermique
C          Coefficent d'absorption (rayonnement)
C     on saute les lignes de commentaires au debut
C
        IF(NGAZG.GT.0.AND.NPO.GT.0) THEN
          DO II = 1, 7
            READ (IMPFPP,*)
          ENDDO
          DO IESP = 1, NGAZG
            DO IT = 1, NPO
              READ (IMPFPP,*,ERR=999,END=999 )
     &             TH(IT)         ,EHGAZG(IESP,IT),RHOEL(IESP,IT),
     &             CPEL(IESP,IT)  ,SIGEL(IESP,IT) ,
     &             VISEL(IESP,IT) ,XLABEL(IESP,IT),
     &             XKABEL(IESP,IT)
            ENDDO
          ENDDO
        ENDIF
C
      ENDIF
C
C==========================================
C 3. LECTURE D'UN FICHIER EFFET JOULE
C==========================================
C
      IF ( IPPMOD(IELJOU).EQ. 3 .OR. IPPMOD(IELJOU).EQ. 4 ) THEN
C
C ----- Lecture du transfo de reference
C
        READ (IMPFPP,*,ERR=999,END=999 ) NTFREF
C
C ----- Nombre de transfo
C
C       on saute 2 lignes de commentaires
        READ (IMPFPP,*)
        READ (IMPFPP,*)
        READ (IMPFPP,*,ERR=999,END=999 ) NBTRF
C
C     Boucle sur le nombre de transfo
C
        DO I=1,NBTRF
C
C         on saute la ligne de commentaire
          READ (IMPFPP,*)
C
C         Tension primaire
          READ (IMPFPP,*,ERR=999,END=999 ) TENSPR(I)
C
C         Rapport du nombre de spires
          READ (IMPFPP,*,ERR=999,END=999 ) RNBS(I)
C
C         Impedances complexes
          READ (IMPFPP,*,ERR=999,END=999 ) ZR(I),ZI(I)
C
C         Type de branchement primaire
          READ (IMPFPP,*,ERR=999,END=999 ) IBRPR(I)
C
C         Type de branchement secondaire
          READ (IMPFPP,*,ERR=999,END=999 ) IBRSEC(I)
C
        ENDDO
C
C ----- Nombre d'electrodes
C
        READ (IMPFPP,*)
        READ (IMPFPP,*)
        READ (IMPFPP,*,ERR=999,END=999 ) NBELEC
C
C       Boucle sur le nombre d'electrodes
C
        DO I=1,NBELEC
C
C         Tension primaire
          READ (IMPFPP,*,ERR=999,END=999 ) IELECC(I),IELECT(I),
     &                                     IELECB(I)
C
        ENDDO
C
      ENDIF
C
C==========================================
C 4. LECTURE D'UN FICHIER MIGRATION IONIQUE
C==========================================
C
C    c'est plus complique (chaque espece peut avoir sa propre mobilite)
C    mais il n'y a pas forcement de rayonnement, ni meme de
C    chauffage significatif par effet Joule
C
C======================================
C 5. CALCULS DE DONNEES COMPLEMENTAIRES
C======================================
C
C
      RETURN
C
C
C====================
C 3. SORTIE EN ERREUR
C====================
C
  99  CONTINUE
      WRITE ( NFECRA,9998 )
      CALL CSEXIT (1)
C     ===========
C
  999 CONTINUE
      WRITE ( NFECRA,9999 )
      CALL CSEXIT (1)
C     ===========
C
C
C--------
C FORMATS
C--------
C
C
 8000 FORMAT (
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/,
     &'@ @@ ATTENTION : ARRET A L''ENTREE DES DONNEES (ELLECD)      ',/,
     &'@    *********                                               ',/,
     &'@      PHYSIQUE PARTICULIERE (VERSIONS ELECTRIQUES)          ',/,
     &'@                                                            ',/,
     &'@  Le nombre de points de tabulation lu dans le fichier de   ',/,
     &'@    donnees doit etre un entier inferieur ou egal           ',/,
     &'@              a NPOT   = ',I10                               ,/,
     &'@    Il vaut ici NPO    = ',I10                               ,/,
     &'@                                                            ',/,
     &'@  Le calcul ne sera pas execute.                            ',/,
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/)
 8001 FORMAT (
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/,
     &'@ @@ ATTENTION : ARRET A L''ENTREE DES DONNEES (ELLECD)      ',/,
     &'@    *********                                               ',/,
     &'@      PHYSIQUE PARTICULIERE (VERSIONS ELECTRIQUES)          ',/,
     &'@                                                            ',/,
     &'@  Le nombre d''especes courantes lu dans le fichier de      ',/,
     &'@    doit etre un entier inferieur ou egal                   ',/,
     &'@              a NGAZGM = ',I10                               ,/,
     &'@    Il vaut ici NGAZG  = ',I10                               ,/,
     &'@                                                            ',/,
     &'@  Le calcul ne sera pas execute.                            ',/,
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/)
 8002 FORMAT (
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/,
     &'@ @@ ATTENTION : ARRET A L''ENTREE DES DONNEES (ELLECD)      ',/,
     &'@    *********                                               ',/,
     &'@      PHYSIQUE PARTICULIERE (VERSIONS ELECTRIQUES)          ',/,
     &'@                                                            ',/,
     &'@  Le nombre d''especes courantes lu dans le fichier de      ',/,
     &'@    doit etre un entier superieur ou egal a 1.              ',/,
     &'@    Il vaut ici NGAZG = ',I10                                ,/,
     &'@                                                            ',/,
     &'@  Le calcul ne sera pas execute.                            ',/,
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/)
 8003 FORMAT (
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/,
     &'@ @@ ATTENTION : ARRET A L''ENTREE DES DONNEES (ELLECD)      ',/,
     &'@    *********                                               ',/,
     &'@      PHYSIQUE PARTICULIERE (VERSIONS ELECTRIQUES)          ',/,
     &'@                                                            ',/,
     &'@  La valeur de l''indicateur pour le rayonnement            ',/,
     &'@    doit etre comprise entre 0 et 2                         ',/,
     &'@    elle vaut ici IXKABE = ',I10                             ,/,
     &'@                                                            ',/,
     &'@  Le calcul ne sera pas execute.                            ',/,
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/)
C
 9998 FORMAT(
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/,
     &'@ @@ ATTENTION : ARRET A L''ENTREE DES DONNEES (ELLECD)      ',/,
     &'@    *********                                               ',/,
     &'@      PHYSIQUE PARTICULIERE (VERSIONS ELECTRIQUES)          ',/,
     &'@                                                            ',/,
     &'@  Erreur a l''ouverture du fichier parametrique.            ',/,
     &'@                                                            ',/,
     &'@  Le calcul ne sera pas execute.                            ',/,
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/)
 9999 FORMAT(
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/,
     &'@ @@ ATTENTION : ARRET A L''ENTREE DES DONNEES (ELLECD)      ',/,
     &'@    *********                                               ',/,
     &'@      PHYSIQUE PARTICULIERE (VERSIONS ELECTRIQUES)          ',/,
     &'@                                                            ',/,
     &'@  Erreur a la lecture du fichier parametrique.              ',/,
     &'@    Le fichier a ete ouvert mais est peut etre incomplet    ',/,
     &'@    ou son format inadapte.                                 ',/,
     &'@                                                            ',/,
     &'@  Le calcul ne sera pas execute.                            ',/,
     &'@                                                            ',/,
     &'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,
     &'@                                                            ',/)
C
      END
C
C
c@z
