C PRE42F    SOURCE    KK2000    14/04/10    21:15:31     8032
      SUBROUTINE PRE42F(ORDTEM)
C************************************************************************
C
C PROJET            :  CASTEM 2000
C
C NOM               :  PRE42F
C
C DESCRIPTION       :  Voir PRE2F
C
C                      Two Fluid flow
C
C                      2nd order in space 1st or 2nd order in time
C
C                      Creation of the objects MCHAML IALPHF, IUVF, IULF,
C                      IPF, ITVF, ITLF, IRVF, IRLF
C
C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
C
C AUTEUR            :  A. BECCANTINI, DRN/DMT/SEMT/TTMF
C                      Modified for two-fluid flow by
C                      Jose R. Garcia-Cascales
C
C************************************************************************
C
C APPELES (Outils)  :  LIRTAB, ACMO, LEKTAB, QUETYP, ERREUR, LIROBJ,
C                      QUEPOI, ECROBJ
C
C
C APPELES (Calcul)  :  PRE52F (2D) PRE62F (3D)
C
C************************************************************************
C
C HISTORIQUE (Anomalies et modifications éventuelles)
C
C HISTORIQUE :  Créée le 26/04/2002.
C
C************************************************************************
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)

C
C**** Les variables
C
      INTEGER   ORDTEM, ICOND,  IRETOU, INDIC, NBCOMP,
     &          IDOMA, ICEN, IFACE, IFACEL, INORM,
     &          IALPH, IGRALP, IALALP,
     &          IUVC, IGRUVC, IALUVC,
     &          IULC, IGRULC, IALULC,
     &          IPC,  IGRPC,  IALPC,
     &          ITVC, IGRTVC, IALTVC,
     &          ITLC, IGRTLC, IALTLC,
     &          IRVC, IRLC,
     &          IALPHF, IUVF, IULF, IPF, ITVF, ITLF, IRVF, IRLF
      REAL*8 VALER, VAL1, VAL2, DELTAT
      CHARACTER*(4)  NOMTOT(9)
      CHARACTER*(8) MTYPR
      CHARACTER*(40) MESERR
      LOGICAL LOGAN,LOGNEG, LOGBOR,LOGTEM
C
C**** Les Includes
C

-INC PPARAM
-INC CCOPTIO
C
C
C**** Initialisation des parametres d'erreur
C
      LOGAN = .FALSE.
      LOGNEG  = .FALSE.
      LOGBOR  = .FALSE.
      MESERR = '                                        '
      MOTERR(1:40) = MESERR(1:40)
      VALER = 0.0D0
      VAL1 = 0.0D0
      VAL2 = 0.0D0
C
C**** Initialisation des NOMTOT
C
      NOMTOT(1) = '    '
      NOMTOT(2) = '    '
      NOMTOT(3) = '    '
      NOMTOT(4) = '    '
      NOMTOT(5) = '    '
      NOMTOT(6) = '    '
      NOMTOT(7) = '    '
      NOMTOT(8) = '    '
      NOMTOT(9) = '    '
C
C**** Lecture de la TABLE domaine (IDOMA)
C
      ICOND = 1
      CALL LIRTAB('DOMAINE',IDOMA,ICOND,IRETOU)
      IF (IERR .NE. 0) GOTO 9999
C
C**** Lecture du MELEME SPG des points CENTRE.
C
C
C     CALL LEKTAB(IDOMA,'CENTRE',IP)
C
C**** Probleme du LEKTAB: si IDOMA.'CENTRE' n'existe pas,
C     il crèe IDOMA.'CENTRE' sans recrèer 'FACEL'
C     -> la correspondance global des noeuds saut!
C
C     On peut utilizer ACCTAB ou ACMO
C
      MTYPR = 'MAILLAGE'
      CALL ACMO(IDOMA,'CENTRE',MTYPR,ICEN)
      IF(IERR.NE.0)GOTO 9999
C
C**** Lecture du MELEME 'FACE'
C
      MTYPR = 'MAILLAGE'
      CALL ACMO(IDOMA,'FACE',MTYPR,IFACE)
      IF(IERR.NE.0)GOTO 9999
C
C**** Lecture du MELEME 'FACEL'
C
      MTYPR = 'MAILLAGE'
      CALL ACMO(IDOMA,'FACEL',MTYPR,IFACEL)
      IF(IERR.NE.0)GOTO 9999
C
C**** Lecture du CHPOINT contenant les normales aux faces
C
      IF(IDIM .EQ. 2)THEN
C        Que les normales
         CALL LEKTAB(IDOMA,'XXNORMAF',INORM)
         IF(IERR .NE. 0) GOTO 9999
      ELSE
C      Les normales et les tangentes
      MTYPR = ' '
      CALL ACMO(IDOMA,'MATROT',MTYPR,INORM)
      IF (MTYPR .NE. 'CHPOINT ') THEN
         CALL MATRAN(IDOMA,INORM)
         IF(IERR .NE. 0) GOTO 9999
      ENDIF

C
      ENDIF
C
C**** N.B. On veut lire les objets sequentiellement.
C     Donc on utilise QUETYP pour controler que
C     le type de l'objet soit le bon.
C
C**** Lecture du CHPOINT IALPH, VOID FRACTION
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IALPH,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
C     INDIC = 1   -> on impose le pointeur du support geometrique (IM1)
C     INDIC = 0   -> on ne fait que verifier le support geometrique (IM1)
C
C     NBCOMP > 0 -> numero des composantes
C
C     NOMTOT(1) = ' ' obligatoire s'on connais pas les noms des composantes
C
      INDIC = 1
      NBCOMP = 1
      NOMTOT(1) = 'SCAL'
      CALL QUEPOI(IALPH, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN

C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO1 = ???                             '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT GRADALP, void fraction gradient
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IGRALP,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
C     INDIC = 1   -> on impose le pointeur du support geometrique (IM1)
C     INDIC = 0   -> on ne fait que verifier le support geometrique (IM1)
C
C     NBCOMP = 2 -> on teste le noms des composantes
C
C     NOMTOT(1) = ' ' obligatoire s'on connais pas les noms des composantes
C
      INDIC = 1
      NBCOMP = IDIM
      NOMTOT(1) = 'P1DX'
      NOMTOT(2) = 'P1DY'
      IF(IDIM .EQ. 3) NOMTOT(3) = 'P1DZ'
      CALL QUEPOI(IGRALP, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO2 = ???                             '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IALALP, limited void fraction gradient
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IALALP,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
      INDIC = 1
      NBCOMP = 1
      NOMTOT(1) = 'P1'
      CALL QUEPOI(IALALP, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN

C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO3 = ???                             '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IUVC, VAPOUR VELOCITY
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IUVC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT
C
      INDIC = 1
      NBCOMP = IDIM
      NOMTOT(1) = 'UVX '
      NOMTOT(2) = 'UVY '
      IF(IDIM .EQ. 3) NOMTOT(3) = 'UVZ '
      CALL QUEPOI(IUVC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN

C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO4 = ???                             '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT GRADUVC, vapour velocity gradient
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IGRUVC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
      INDIC = 1
      IF(IDIM .EQ.2)THEN
         NBCOMP = 4
         NOMTOT(1) = 'P1DX'
         NOMTOT(2) = 'P1DY'
         NOMTOT(3) = 'P2DX'
         NOMTOT(4) = 'P2DY'
      ELSE
         NBCOMP = 9
         NOMTOT(1) = 'P1DX'
         NOMTOT(2) = 'P1DY'
         NOMTOT(3) = 'P1DZ'
         NOMTOT(4) = 'P2DX'
         NOMTOT(5) = 'P2DY'
         NOMTOT(6) = 'P2DZ'
         NOMTOT(7) = 'P3DX'
         NOMTOT(8) = 'P3DY'
         NOMTOT(9) = 'P3DZ'
      ENDIF
      CALL QUEPOI(IGRUVC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO5 = ???                             '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IALUVC, limited vapour velocity
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IALUVC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
      INDIC = 1
      NBCOMP = IDIM
      NOMTOT(1) = 'P1'
      NOMTOT(2) = 'P2'
      IF(IDIM .EQ. 3) NOMTOT(3) = 'P3  '
      CALL QUEPOI(IALUVC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO6 = ???                             '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IULC, LIQUID VELOCITY
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IULC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT
C
      INDIC = 1
      NBCOMP = IDIM
      NOMTOT(1) = 'ULX '
      NOMTOT(2) = 'ULY '
      IF(IDIM .EQ. 3) NOMTOT(3) = 'ULZ '
      CALL QUEPOI(IULC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO4 = ???                             '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT GRADULC, liquid velocity gradient
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IGRULC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
      INDIC = 1
      IF(IDIM .EQ.2)THEN
         NBCOMP = 4
         NOMTOT(1) = 'P1DX'
         NOMTOT(2) = 'P1DY'
         NOMTOT(3) = 'P2DX'
         NOMTOT(4) = 'P2DY'
      ELSE
         NBCOMP = 9
         NOMTOT(1) = 'P1DX'
         NOMTOT(2) = 'P1DY'
         NOMTOT(3) = 'P1DZ'
         NOMTOT(4) = 'P2DX'
         NOMTOT(5) = 'P2DY'
         NOMTOT(6) = 'P2DZ'
         NOMTOT(7) = 'P3DX'
         NOMTOT(8) = 'P3DY'
         NOMTOT(9) = 'P3DZ'
      ENDIF
      CALL QUEPOI(IGRULC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO5 = ???                             '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IALULC, limited vapour velocity
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IALULC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
      INDIC = 1
      NBCOMP = IDIM
      NOMTOT(1) = 'P1'
      NOMTOT(2) = 'P2'
      IF(IDIM .EQ. 3) NOMTOT(3) = 'P3  '
      CALL QUEPOI(IALULC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO6 = ???                             '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IPC, PRESSURE
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IPC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT
C
      INDIC = 1
      NBCOMP = 1
      NOMTOT(1) = 'SCAL'
      CALL QUEPOI(IPC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO7 = ???                             '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IGRPC, pressure gradient
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IGRPC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
C
      INDIC = 1
      NBCOMP = IDIM
      NOMTOT(1) = 'P1DX'
      NOMTOT(2) = 'P1DY'
      IF( IDIM  .EQ. 3) NOMTOT(3) = 'P1DZ'
      CALL QUEPOI(IGRPC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO8 = ???                             '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IALPC, limited pressure gradient
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IALPC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
      INDIC = 1
      NBCOMP = 1
      NOMTOT(1) = 'P1'
      CALL QUEPOI(IALPC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO9 = ???                             '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT ITVC, VAPOUR TEMPERATURE
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,ITVC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT
C
      INDIC = 1
      NBCOMP = 1
      NOMTOT(1) = 'SCAL'
      CALL QUEPOI(ITVC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO10 = ???                            '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IGRTVC, vapour temprerature gradient
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IGRTVC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
C
      INDIC = 1
      NBCOMP = IDIM
      NOMTOT(1) = 'P1DX'
      NOMTOT(2) = 'P1DY'
      IF( IDIM  .EQ. 3) NOMTOT(3) = 'P1DZ'
      CALL QUEPOI(IGRTVC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO11 = ???                            '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IALTVC, limited vapour temperature gradient
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IALTVC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
      INDIC = 1
      NBCOMP = 1
      NOMTOT(1) = 'P1'
      CALL QUEPOI(IALTVC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO12 = ???                            '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT ITLC, LIQUID TEMPERATURE
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,ITLC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT
C
      INDIC = 1
      NBCOMP = 1
      NOMTOT(1) = 'SCAL'
      CALL QUEPOI(ITLC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO10 = ???                            '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IGRTLC, liquid temprerature gradient
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IGRTLC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
C
      INDIC = 1
      NBCOMP = IDIM
      NOMTOT(1) = 'P1DX'
      NOMTOT(2) = 'P1DY'
      IF( IDIM  .EQ. 3) NOMTOT(3) = 'P1DZ'
      CALL QUEPOI(IGRTLC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO13 = ???                            '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IALTLC, limited liquid temperature gradient
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IALTLC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF
C
C**** Control du CHPOINT: QUEPOI
C
      INDIC = 1
      NBCOMP = 1
      NOMTOT(1) = 'P1'
      CALL QUEPOI(IALTLC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40)  = 'CHPO14 = ???                            '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IRVC, VAPOUR DENSITY
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IRVC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF

      INDIC = 1
      NBCOMP = 1
      NOMTOT(1) = 'SCAL'
      CALL QUEPOI(IRVC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40) = 'CHPO15 = ???   '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
C
C**** Lecture du CHPOINT IRLC, LIQUID DENSITY
C
      ICOND = 1
      CALL QUETYP(MTYPR,ICOND,IRETOU)
      IF(IERR .NE. 0)GOTO 9999
      IF(MTYPR .NE. 'CHPOINT ')THEN
C
C******* Message d'erreur standard
C        37 2
C        On ne trouve pas d'objet de type %m1:8
C
         MOTERR(1:8) = 'CHPOINT '
         CALL ERREUR(37)
         GOTO 9999
      ELSE
         ICOND = 1
         CALL LIROBJ(MTYPR,IRLC,ICOND,IRETOU)
         IF (IERR.NE.0) GOTO 9999
      ENDIF

      INDIC = 1
      NBCOMP = 1
      NOMTOT(1) = 'SCAL'
      CALL QUEPOI(IRLC, ICEN, INDIC, NBCOMP, NOMTOT)
      IF(IERR .NE. 0)THEN
C
C******* Message d'erreur standard
C        -301 0 %m1:40
C
         MOTERR(1:40) = 'CHPO16 = ???   '
         CALL ERREUR(-301)

         GOTO 9999
      ENDIF
      IF(ORDTEM .EQ. 1)THEN
C
C******* Deux Dimensions, Une Espece, 2er ordre en espace, 1er ordre en
C        temps
C
         LOGTEM = .FALSE.
         DELTAT = 0.0D0
      ELSE
         LOGTEM = .TRUE.
         ICOND = 1
         CALL LIRREE(DELTAT,ICOND,IRETOU)
         IF(IERR .NE. 0)GOTO 9999
      ENDIF
      IF(IDIM .EQ. 2)THEN
C
C******* Deux Dimensions, Une Espece, 1er ordre en espace, 1er ordre en
C        temps
C
      CALL PRE52F(LOGTEM,
     &     ICEN,IFACE,IFACEL,INORM,
     &     IALPH, IGRALP, IALALP,
     &     IUVC, IGRUVC, IALUVC,
     &     IULC, IGRULC, IALULC,
     &     IPC,  IGRPC,  IALPC,
     &     ITVC, IGRTVC, IALTVC,
     &     ITLC, IGRTLC, IALTLC,
     &     IRVC, IRLC,
     &     DELTAT,
     &     IALPHF, IUVF, IULF, IPF, ITVF, ITLF,
     &     IRVF, IRLF,
     &     LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2)
      ELSE
C
C******* Trois Dimensions, Une Espece, 1er ordre en espace, 1er ordre en
C        temps
C
      CALL PRE62F(LOGTEM,
     &     ICEN,IFACE,IFACEL,INORM,
     &     IALPH, IGRALP, IALALP,
     &     IUVC, IGRUVC, IALUVC,
     &     IULC, IGRULC, IALULC,
     &     IPC,  IGRPC,  IALPC,
     &     ITVC, IGRTVC, IALTVC,
     &     ITLC, IGRTLC, IALTLC,
     &     IRVC, IRLC,
     &     DELTAT,
     &     IALPHF, IUVF, IULF, IPF, ITVF, ITLF,
     &     IRVF, IRLF,
     &     LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2)
      ENDIF
C
C
C**** Messages d'erreur
C
      IF(LOGAN)THEN
C
C******* Anomalie detectée
C
C
C******* Message d'erreur standard
C        -301 0
C        %m1:40
C
         MOTERR(1:40) =  MESERR(1:40)
         CALL ERREUR(-301)
C
C******* Message d'erreur standard
C        5 3
C        Erreur anormale.contactez votre support
C
         CALL ERREUR(5)
         GOTO 9999
C
      ELSEIF(LOGNEG)THEN
C
C******* Message d'erreur standard
C        41 2
C        %m1:8 = %r1 inférieur à %r2
C
         MOTERR(1:8) = MESERR(1:8)
         REAERR(1) = REAL(VALER)
         REAERR(2) = 0.0
         CALL ERREUR(41)
         GOTO 9999
      ELSEIF(LOGBOR)THEN
C
C******* Message d'erreur standard
C        42 2
C        %m1:8 = %r1 non compris entre %r2 et %r3
C
         MOTERR(1:8) = MESERR(1:8)
         REAERR(1) = REAL(VALER)
         REAERR(2) = REAL(VAL1)
         REAERR(3) = REAL(VAL2)
         CALL ERREUR(42)
         GOTO 9999
      ELSE
C
C******* Ecriture de IALPHF, IUVF, IULF, IPF,
C                    ITVF, ITLF, IRVF, IRLF
         MTYPR = 'MCHAML'
         CALL ECROBJ(MTYPR, IALPHF)
         CALL ECROBJ(MTYPR, IUVF)
         CALL ECROBJ(MTYPR, IULF)
         CALL ECROBJ(MTYPR, IPF)
         CALL ECROBJ(MTYPR, ITVF)
         CALL ECROBJ(MTYPR, ITLF)
         CALL ECROBJ(MTYPR, IRVF)
         CALL ECROBJ(MTYPR, IRLF)
      ENDIF
C
 9999 CONTINUE
C
      RETURN
      END







