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 MEMT1D
C                       *****************
C     -------------------------------------------------------------
     & ( IDBIA0 , IDBRA0 ,
     &   NFABOR , IFNIA1 , IFNRA1 , IFNIA2 , IFNRA2 ,
     &   IFINIA , IFINRA , IA     , RA     )
C     -------------------------------------------------------------
C***********************************************************************
C
C  FONCTION
C  --------
c@foncb
CFONC
CFONC   GESTION MEMOIRE POUR LE MODULE THERMIQUE 1D EN PAROI
CFONC
c@fonce
C-----------------------------------------------------------------------
C                                  ARGUMENTS
c@argub
CARGU .______________.____._____.______________________________________.
CARGU !    NOM       !TYPE!MODE !                   ROLE               !
CARGU !______________!____!_____!______________________________________!
CARGU ! IDBIA0/IDBRA0! E  !  -> ! POINTEUR DE LA PREMIERE CAS LIBRE DES!
CARGU !              !    !     !  TABLEAUX IA/RA                      !
CARGU ! NFABOR       ! E  !  -> ! NOMBRE DE FACES DE BORD              !
CARGU ! IFNIA1       ! E  ! <-  ! POINTEUR DE LA PREMIERE CAS LIBRE    !
CARGU !              !    !     !  DANS IA APRES LIBERATION TOUT SAUF  !
CARGU !              !    !     !                               IFPT1D !
CARGU ! IFNRA1         E  ! <-  ! POINTEUR DE LA PREMIERE CAS LIBRE    !
CARGU !              !    !     !  DANS RA APRES LIBERATION TOUT SAUF  !
CARGU !              !    !     !                               TPPT1D !
CARGU ! IFNIA2       ! E  ! <-  ! POINTEUR DE LA PREMIERE CAS LIBRE    !
CARGU !              !    !     !  DANS IA APRES LIBERATION DE NPPT1D  !
CARGU ! IFNRA2         E  ! <-  ! POINTEUR DE LA PREMIERE CAS LIBRE    !
CARGU !              !    !     !  DANS RA APRES LIBERATION DE RGPT1D  !
CARGU !              !    !     !  ET EPPT1D                           !
CARGU ! IFINIA       ! E  ! <-  ! POINTEUR DE LA PREMIERE CAS LIBRE    !
CARGU !              !    !     !  DANS IA EN SORTIE                   !
CARGU ! IFINRA       ! E  ! <-  ! POINTEUR DE LA PREMIERE CAS LIBRE    !
CARGU !              !    !     !  DANS IA EN SORTIE                   !
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 "cstnum.h"
      INCLUDE "optcal.h"
      INCLUDE "numvar.h"
      INCLUDE "entsor.h"
      INCLUDE "pointe.h"
      INCLUDE "parall.h"
C***********************************************************************
C
C     ARGUMENTS
      INTEGER          IDBIA0 ,IDBRA0
      INTEGER          NFABOR
      INTEGER          IFINIA, IFINRA, IFNIA1, IFNRA1, IFNIA2, IFNRA2
      INTEGER          IA(*)
      DOUBLE PRECISION RA(*)
C
C VARIABLES LOCALES
C
      INTEGER          IDEBIA, IDEBRA
      INTEGER          IOK1, IFAC

C
C***********************************************************************

C---> INITIALISATION
C
      IDEBIA = IDBIA0
      IDEBRA = IDBRA0

C---> VERIFICATION DES DIMENSIONS
C
      IOK1 = 0
      IF(NFPT1D.GT.NFABOR .OR. NFPT1D.LT.0) THEN
        WRITE(NFECRA,1000) NFPT1D
        IOK1 = 1
      ENDIF
      IF(IOK1.NE.0) THEN
        CALL CSEXIT (1)
      ENDIF
C
C---> CALCUL DU NOMBRE DE FACES DE PAROI AVEC MODULE 1D TOTAL
C
      NFPT1T = NFPT1D
C
      IF (IRANGP.GE.0) THEN
        CALL PARCPT(NFPT1T)
      ENDIF
C
C---> QUELQUES MESSAGES
C
      IF(NFPT1T.EQ.0) THEN
        WRITE(NFECRA,2000) NFPT1T
      ELSE
        WRITE(NFECRA,2001) NFPT1T, NFPT1D
      ENDIF
      WRITE(NFECRA,3000)
C
C---> PLACE MEMOIRE RESERVEE AVEC DEFINITION DE IFINIA IFINRA
C
      IFINIA = IDEBIA
      IFINRA = IDEBRA

C
      IIFPT1 = IFINIA
      IFNIA1 = IIFPT1 + NFPT1D
      IICLT1 = IFNIA1
      IFNIA2 = IICLT1 + NFPT1D
      INPPT1 = IFNIA2
      IFINIA = INPPT1 + NFPT1D
C
      ITPPT1 = IFINRA
      IFNRA1 = ITPPT1 + NFPT1D
      ITEPT1 = IFNRA1
      IHEPT1 = ITEPT1 + NFPT1D
      IFEPT1 = IHEPT1 + NFPT1D
      IXLMT1 = IFEPT1 + NFPT1D
      IRCPT1 = IXLMT1 + NFPT1D
      IDTPT1 = IRCPT1 + NFPT1D
      IFNRA2 = IDTPT1 + NFPT1D
      IEPPT1 = IFNRA2
      IRGPT1 = IEPPT1 + NFPT1D
      IFINRA = IRGPT1 + NFPT1D
C
C---> VERIFICATION
C
      CALL IASIZE('MEMT1D',IFINIA)
C     ==========
C
      CALL RASIZE('MEMT1D',IFINRA)
C     ==========
C
C---> INITIALISATION DES TABLEAUX
C     a des valeurs sortant en erreur dans vert1d
C     sauf pour les variables de conditions aux limites
C     qui sont initialisees a des valeurs standard
C     (flux nul, Timpose=0, coef d'echange infini)
      DO IFAC = 1, NFPT1D
        IA(IIFPT1+IFAC-1) = -999
        IA(INPPT1+IFAC-1) = -999
        IA(IICLT1+IFAC-1) = 3
        RA(IEPPT1+IFAC-1) = -999.D0
        RA(IRGPT1+IFAC-1) = -999.D0
        RA(ITPPT1+IFAC-1) = 0.D0
        RA(ITEPT1+IFAC-1) = 0.D0
        RA(IHEPT1+IFAC-1) = RINFIN
        RA(IFEPT1+IFAC-1) = 0.D0
        RA(IXLMT1+IFAC-1) = -999.D0
        RA(IRCPT1+IFAC-1) = -999.D0
        RA(IDTPT1+IFAC-1) = -999.D0
      ENDDO

C---> FORMATS
C
 1000 FORMAT(/,' SORTIE DANS MEMT1D CAR LA DIMENSIONS DU TABLEAU ',/,
     &         '   RELATIF AUX FACES DE BORD COUPLEES AU MODULE ',/,
     &         '   THERMIQUE 1D DE PAROI EST INCORRECTE ',/,
     &         '   NFPT1D = ',I10)
C
 2000 FORMAT(
     &    /,'TTES PHASES  : MODULE THERMIQUE 1D DE PAROI NON ACTIVE ',/,
     &      '                 NFPT1D = ',I10,/)
 2001 FORMAT(
     &    /,'TTES PHASES  : MODULE THERMIQUE 1D EN PAROI ACTIVE     ',/,
     &      '   SUR UN TOTAL DE ',I10,' FACES DE BORD',/,
     &      '   (',I10,' FACES DE BORD EN LOCAL)',/)
C
 3000 FORMAT(
     &'-------------------------------------------------------------',/)
C
      RETURN
      END
c@z
